/* NALVI Student Dashboard 1 · shares the teacher dashboard's visual language. */
#progressHub.nalvi-student-dashboard{padding:18px 0 124px;background:radial-gradient(circle at 84% 8%,rgba(39,166,171,.08),transparent 29rem),radial-gradient(circle at 9% 18%,rgba(88,75,199,.07),transparent 24rem),#f7f9fe}
#progressHub.nalvi-student-dashboard>.shell{display:grid;gap:20px;max-width:1500px}
.nalvi-student-contextbar{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:78px;padding:0 14px;background:transparent}
.nalvi-student-contextbar h2{margin:0;color:#17245d;font-size:clamp(29px,2.5vw,39px);line-height:1.08;letter-spacing:-.025em}
.nalvi-student-contextbar>div:first-child p{margin:7px 0 0;color:#68708b;font-size:14px}
.nalvi-student-subnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:68px;padding:0 22px;border:1px solid #dfe2f0;border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(35,45,89,.06)}
.nalvi-student-subnav button{position:relative;display:flex;align-items:center;justify-content:center;gap:11px;min-width:0;padding:12px 8px;border:0;background:transparent;color:#505979;font:850 14px/1.2 inherit;cursor:pointer}
.nalvi-student-subnav button:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:3px;border-radius:3px 3px 0 0;background:transparent}
.nalvi-student-subnav button:hover,.nalvi-student-subnav button:focus-visible{color:#3d42b3;outline:0}.nalvi-student-subnav button:focus-visible{background:#f8f7ff;border-radius:10px}.nalvi-student-subnav button.active{color:#3d42b3}.nalvi-student-subnav button.active:after{background:#4b4cc6}
.nalvi-student-subnav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#gesaProgressRoot{display:grid;gap:24px;min-width:0}.nalvi-student-overview-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,.9fr);gap:24px}
.nalvi-student-card{min-width:0;padding:24px;border:1px solid #dfe2f0;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(35,45,89,.06)}
.nalvi-student-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.nalvi-student-card h3{margin:0;color:#17245d;font-size:21px}.nalvi-student-card header p,.nalvi-student-card>p{margin:5px 0 0;color:#69708d;font-size:13px;line-height:1.5}
.nalvi-student-today{display:grid;align-content:start;gap:18px}.nalvi-student-today>div{display:flex;align-items:center;gap:18px;padding:12px 4px}.nalvi-student-today hr{width:100%;margin:0;border:0;border-top:1px solid #e4e6f1}.nalvi-student-today p{display:grid;gap:2px;margin:0}.nalvi-student-today p b{color:#11759c;font-size:34px;line-height:1}.nalvi-student-today p small{color:#5c6683;font-size:13px}
.nalvi-student-metric-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:16px}.nalvi-student-metric-icon.tasks{background:#eef8ff;color:#2c8bd1}.nalvi-student-metric-icon.classes{background:#eaf9f7;color:#188c8f}.nalvi-student-metric-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nalvi-student-class-list{display:grid;gap:11px}.nalvi-student-class-row{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid #dfe2ef;border-radius:15px}.nalvi-student-class-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#eaf9f7;color:#188c8f}.nalvi-student-class-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nalvi-student-class-row h4{margin:0 0 4px;color:#17245d}.nalvi-student-class-row small{color:#68708b}.nalvi-student-join-more{margin-top:4px;padding:2px 4px}.nalvi-student-join-more>summary{width:max-content;color:#4546b8;font-size:12px;font-weight:900;cursor:pointer}.nalvi-student-join{display:grid;gap:10px;margin-top:13px;padding:15px;border-radius:14px;background:#f8f8fe}.nalvi-student-join>p{margin:0;color:#69708d;font-size:12px}.nalvi-student-join input{flex:1 1 220px;min-height:45px;padding:10px 13px;border:1px solid #d9dced;border-radius:12px;font:inherit}.nalvi-student-empty-class{display:grid;grid-template-columns:58px minmax(0,1fr);gap:16px;align-items:start}.nalvi-student-empty-class>span{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:#f0eeff;color:#4e4cc5}.nalvi-student-empty-class>span svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nalvi-student-empty-class h4{margin:5px 0 0;color:#17245d}
.nalvi-student-tasks .gesa-state,.nalvi-student-assessments .gesa-state{min-height:92px;border-width:1px}.nalvi-student-tasks .gesa-list-item,.nalvi-student-assessments .gesa-list-item{border-color:#dfe2ef}.nalvi-student-tasks .gesa-status,.nalvi-student-assessments .gesa-status{text-transform:none}
.nalvi-student-lower-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:24px}.nalvi-student-assessments>header{align-items:flex-start}.nalvi-student-certificates>.gesa-inline-actions{margin-top:18px}
#progressHub .nalvi-student-academic{margin:0;padding:24px;border:1px solid #dfe2f0;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(35,45,89,.06)}#progressHub .nalvi-student-academic .nalvi-workflow-head{margin-top:0}
@media(max-width:980px){.nalvi-student-overview-grid,.nalvi-student-lower-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){#progressHub.nalvi-student-dashboard{padding-top:12px}.nalvi-student-contextbar{padding:0}.nalvi-student-subnav{display:flex;overflow-x:auto;padding:0 8px}.nalvi-student-subnav button{flex:0 0 134px}.nalvi-student-card{padding:18px}.nalvi-student-class-row{grid-template-columns:46px minmax(0,1fr)}.nalvi-student-class-row>.mini-btn{grid-column:2;width:100%}.nalvi-student-empty-class{grid-template-columns:minmax(0,1fr)}.nalvi-student-join .gesa-inline-actions{display:grid;grid-template-columns:minmax(0,1fr)}.nalvi-student-join input,.nalvi-student-join .btn{width:100%}}
@media(max-width:430px){.nalvi-student-subnav button{flex-basis:120px}}
