.state-view{min-height:180px;color:var(--color-text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.state-view svg{color:var(--color-primary)}.state-full{background:var(--color-background);min-height:100vh}.state-spinner{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.password-field{border:1px solid var(--color-border);background:#fff;border-radius:8px;display:flex;overflow:hidden}.password-field:focus-within{outline:3px solid var(--color-primary-soft);border-color:var(--color-primary)}.password-field input{outline:0;flex:1;min-width:0;border:0!important}.password-field button{color:var(--color-text-muted);background:0 0;border:0;padding:0 12px}.password-field svg{width:18px}.remember{color:var(--color-text-muted);align-items:center;gap:9px;font-size:12px;display:flex}.remember input{accent-color:var(--color-primary)}.login-error{color:var(--color-danger);background:#fff1f1;border:1px solid #f2bcbc;border-radius:8px;padding:11px 12px;font-size:12px}.login-options{justify-content:space-between;align-items:center;gap:16px;display:flex}.forgot-password-link{color:var(--color-primary);font-size:12px;font-weight:700;text-decoration:none}.forgot-password-link:hover{text-decoration:underline}.weekly-word-card{overflow-wrap:anywhere;border-radius:var(--radius-lg);width:calc(100% - clamp(2rem,7vw,5rem));max-width:46rem;box-shadow:var(--shadow-md);color:var(--color-text);background:#fffffff5;border:1px solid #8ed8dc6b;margin:0 auto clamp(1rem,3vh,2rem);padding:clamp(1rem,2vw,1.4rem)}.weekly-word-label{color:var(--color-primary-600);letter-spacing:.12em;text-align:center;text-transform:uppercase;font-size:.7rem;font-weight:800}.weekly-word-card h2{margin-top:var(--space-2);color:var(--color-primary-700);text-align:center;font-size:clamp(1.3rem,2.2vw,1.8rem);line-height:1.15}.weekly-word-details{gap:var(--space-2);margin-top:var(--space-4);font-size:clamp(.76rem,1.05vw,.88rem);line-height:1.45;display:grid}.weekly-word-details>div{gap:var(--space-2);grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr);display:grid}.weekly-word-details dt{color:var(--color-primary-700);font-weight:800}.weekly-word-details dd{min-width:0;color:var(--color-text-soft)}@media (width<=58rem){.weekly-word-card{grid-area:weekly-word;width:auto;max-width:42rem;margin:clamp(.8rem,3vw,1.5rem) clamp(1rem,5vw,2rem) 0}}@media (width<=42rem){.weekly-word-card{padding:.9rem}.weekly-word-card h2{font-size:1.3rem}.weekly-word-details{gap:.65rem;font-size:.78rem}.weekly-word-details>div{display:block}.weekly-word-details dd{margin-top:.1rem}}.login-brand{align-items:center;gap:10px;margin-bottom:9vh;font-size:20px;font-weight:800;display:flex}.login-help{color:var(--color-text-muted);text-align:center;margin-top:20px;font-size:11px}.login-animation{object-fit:cover;transform-origin:50%;width:100%;height:100%;display:block;transform:scale(.5)}@media (width<=720px){.login-brand{margin-bottom:12vh}.login-panel h1{font-size:29px}}.class-roster-filters{gap:var(--space-4);grid-template-columns:minmax(14rem,2fr) minmax(12rem,1fr);display:grid;overflow:visible}.class-roster-sections{gap:var(--space-5);display:grid}.class-roster-section{margin-bottom:0}.class-roster-heading{justify-content:space-between}.class-roster-heading h2{font-size:1.05rem}.class-roster-heading span{color:var(--color-text-muted);font-size:.76rem;font-weight:700}.class-roster-grid{gap:var(--space-5);padding:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));display:grid}.class-roster-student{justify-items:center;gap:var(--space-2);min-width:0;padding:var(--space-3);text-align:center;display:grid}.class-roster-student .profile-avatar-roster{width:7rem;height:7rem;margin-bottom:var(--space-1);font-size:1.6rem}.class-roster-student strong{max-width:100%;color:var(--color-text);overflow-wrap:anywhere;font-size:.85rem;line-height:1.35}.class-roster-last-name{text-transform:uppercase}.class-roster-student small{color:var(--color-text-muted);font-size:.75rem}.class-roster-empty{padding:var(--space-6);color:var(--color-text-muted);text-align:center}@media (width<=58rem){.class-roster-grid{grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}}@media (width<=42rem){.class-roster-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.class-roster-heading{flex-direction:row;align-items:center}.class-roster-grid{gap:var(--space-3);padding:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(7.25rem,100%),1fr))}.class-roster-student .profile-avatar-roster{width:5.75rem;height:5.75rem;font-size:1.25rem}}@media (width<=22rem){.class-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.class-roster-student-trigger{justify-items:center;gap:var(--space-2);width:100%;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:grid}.class-roster-student-trigger:focus-visible{outline:3px solid var(--color-primary);outline-offset:5px;border-radius:12px}.class-roster-preview{z-index:90;width:min(22rem,100vw - 1.5rem);max-height:min(30rem,100dvh - 1.5rem);padding:var(--space-4);border:1px solid color-mix(in srgb, var(--color-border) 82%, var(--color-primary));background:var(--color-surface);pointer-events:auto;border-radius:14px;animation:.12s ease-out class-roster-preview-in;position:fixed;overflow:hidden auto;box-shadow:0 16px 38px #0f172a33}.class-roster-preview:before{border-radius:inherit;box-shadow:inset 0 3px 0 color-mix(in srgb, var(--color-primary) 65%, transparent);content:"";pointer-events:none;position:absolute;inset:0}.class-roster-preview-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);display:flex}.class-roster-preview-head>div{gap:.1rem;min-width:0;display:grid}.class-roster-preview-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.class-roster-preview-head span{color:var(--color-text-muted);font-size:.74rem}.class-roster-preview-label{background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));border-radius:999px;flex:none;padding:.22rem .5rem;font-weight:750;color:var(--color-primary)!important}.class-roster-preview .async-state{min-height:auto;margin:var(--space-3) 0 0;padding:var(--space-3)}.class-roster-preview-empty{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:.82rem}.class-roster-preview-content{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.class-roster-preview-content section{min-width:0;padding:var(--space-3);border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 94%, var(--color-primary));border-radius:10px}.class-roster-preview-content h3{margin:0 0 var(--space-2);letter-spacing:.01em;font-size:.76rem}.class-roster-preview-content p,.class-roster-preview-content ul{color:var(--color-text-muted);margin:0;font-size:.72rem;line-height:1.45}.class-roster-preview-content ul{gap:.18rem;padding-left:1rem;display:grid}.class-roster-preview-content li{overflow-wrap:anywhere}.class-roster-preview-content small{margin-top:var(--space-1);color:var(--color-primary);font-size:.68rem;font-weight:700;display:block}.class-roster-preview-clamp{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.class-roster-preview-documents{flex-wrap:wrap;gap:.3rem;display:flex}.class-roster-preview-documents button{appearance:none;border:1px solid var(--color-border);cursor:pointer;background:var(--color-surface);max-width:100%;color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:.2rem .42rem;font-size:.66rem;overflow:hidden}.class-roster-preview-documents button:hover,.class-roster-preview-documents button:focus-visible{border-color:var(--color-primary);color:var(--color-primary)}.class-roster-preview-documents button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.class-roster-preview-documents button:disabled{cursor:wait;opacity:.65}.class-roster-preview-document-error{margin-top:var(--space-2)!important;color:var(--color-danger)!important}@keyframes class-roster-preview-in{0%{opacity:0;transform:translateY(3px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=42rem){.class-roster-preview{width:min(20rem,100vw - 1rem);padding:var(--space-3)}.class-roster-preview-content{grid-template-columns:repeat(2,minmax(0,1fr));max-height:20rem;overflow-y:auto}}@media (prefers-reduced-motion:reduce){.class-roster-preview{animation:none}}.child-selector{background:#ffffff14;border:1px solid #ffffff59;border-radius:10px;margin:0 8px 16px;padding:12px}.child-selector label{color:#fff;font-size:12px;font-weight:700;display:block}.child-selector-heading{align-items:center;gap:9px;display:flex}.child-selector select{border:0;border-radius:7px;width:100%;margin-top:8px;padding:9px}.child-selector small{color:#c9f1f3;margin-top:7px;display:block}.alert-list{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.alert-card{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-left:4px solid var(--color-warning,#b7791f);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.alert-card p{margin:0}.alert-card-head{justify-content:space-between;gap:var(--space-3);align-items:start;display:flex}.alert-card-head time,.alert-card-muted{color:var(--color-text-soft);font-size:.78rem}.alert-acknowledgement{align-items:center;gap:var(--space-2);width:fit-content;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-weight:600;display:flex}.alert-acknowledgement.is-acknowledged{color:var(--color-success,#237a57);cursor:default}.alert-acknowledgement input{margin:0}.alert-card-link{width:fit-content;font-weight:700;text-decoration:none}.alert-card-actions{justify-content:flex-end;display:flex}.alert-card-link:hover,.alert-card-link:focus-visible{text-decoration:underline}@media (width<=48rem){.alert-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.alert-card{gap:.35rem;min-width:0;padding:.5rem}.alert-card-head{gap:.35rem}.alert-card,.alert-card-head time,.alert-card-muted,.alert-acknowledgement{font-size:clamp(.55rem,2.5vw,.7rem)}}.student-summary-grid,.student-card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.student-summary-card,.student-item-card{background:var(--surface,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:14px;padding:1rem;box-shadow:0 4px 14px #0f172a0d}.student-summary-card strong{margin-bottom:.25rem;font-size:1.5rem;display:block}.student-item-card h3{margin:0 0 .35rem}.student-item-card p{margin:.2rem 0}.student-muted{color:var(--text-muted,#64748b);font-size:.9rem}.student-score{margin:.65rem 0;font-size:1.45rem;font-weight:700}.student-status{background:#eef2ff;border-radius:999px;padding:.25rem .6rem;font-size:.82rem;font-weight:600;display:inline-flex}.student-toolbar{flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;display:flex}.student-toolbar select{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;min-width:180px;padding:.55rem .7rem}.student-check{align-items:center;gap:.5rem;margin-top:.8rem;display:flex}.student-section-title{margin:1.5rem 0 .75rem}.student-dashboard-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.student-list{gap:.75rem;display:grid}.student-list-row{border-bottom:1px solid var(--border-color,#e5e7eb);padding:.8rem}.student-latest-communication{margin:1rem 0}.student-dashboard-settings{border:1px solid var(--border-color,#e5e7eb);background:var(--surface,#fff);border-radius:14px;margin:1rem 0;padding:1rem}.student-dashboard-settings summary{cursor:pointer;font-weight:700}.student-widget-settings-list{gap:.5rem;margin-top:.75rem;display:grid}.student-widget-setting{justify-content:space-between;align-items:center;gap:1rem;display:flex}.student-widget-setting label{align-items:center;gap:.5rem;display:flex}.student-widget-setting button{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:6px;margin-left:.35rem;padding:.3rem .55rem}.student-dashboard-widget{display:contents}.student-quick-link{color:inherit;text-decoration:none;display:grid}.student-profile-readonly{gap:1rem;display:grid}.student-profile-heading{align-items:center;gap:1rem;display:flex}.student-profile-heading h2{margin:0}.student-profile-fields{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.student-profile-fields div{border:1px solid var(--border-color,#e5e7eb);border-radius:10px;padding:.75rem}.student-profile-fields dt{color:var(--text-muted,#64748b);font-size:.82rem}.student-profile-fields dd{overflow-wrap:anywhere;margin:.25rem 0 0;font-weight:600}.student-attendance-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.student-attendance-stat{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-sm);align-items:flex-start;gap:.9rem;padding:1.15rem;display:flex}.student-attendance-stat-icon{border-radius:.8rem;flex:none;place-items:center;width:2.65rem;height:2.65rem;display:grid}.student-attendance-stat>div:last-child{min-width:0}.student-attendance-stat-label{color:var(--color-text-soft);margin-bottom:.25rem;font-size:.82rem;font-weight:700;display:block}.student-attendance-stat strong{color:var(--color-text);font-size:1.65rem;line-height:1.15;display:block}.student-attendance-stat small{color:var(--color-text-muted);margin-top:.4rem;font-size:.78rem;line-height:1.45;display:block}.student-attendance-stat.is-presence .student-attendance-stat-icon{color:var(--color-success);background:var(--color-success-soft)}.student-attendance-stat.is-absence .student-attendance-stat-icon{color:var(--color-danger);background:var(--color-danger-soft)}.student-attendance-stat.is-late .student-attendance-stat-icon{color:var(--color-warning);background:var(--color-warning-soft)}.student-attendance-stat.is-alert .student-attendance-stat-icon{color:var(--color-info);background:var(--color-info-soft)}.student-attendance-section{margin-bottom:1.5rem}.student-attendance-section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.student-attendance-section-heading h2{margin:0;font-size:1.05rem}.student-attendance-section-heading p{color:var(--color-text-muted);margin:.3rem 0 0;font-size:.85rem}.student-section-count{border-radius:var(--radius-pill);min-width:2rem;height:2rem;color:var(--color-warning);background:var(--color-warning-soft);justify-content:center;align-items:center;padding:0 .65rem;font-size:.82rem;font-weight:800;display:inline-flex}.student-attendance-filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.student-attendance-filters button{border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-soft);background:var(--color-surface);font:inherit;cursor:pointer;padding:.55rem .85rem;font-size:.8rem;font-weight:700;transition:border-color .15s,background .15s,color .15s}.student-attendance-filters button:hover{border-color:var(--color-primary-500)}.student-attendance-filters button.is-active{border-color:var(--color-primary-600);color:var(--color-primary-700);background:var(--color-primary-050)}.student-attendance-history{gap:1.5rem;display:grid}.student-attendance-week{margin:0}.student-attendance-week>h3{color:var(--color-text-soft);margin:0 0 .7rem;font-size:.86rem;font-weight:800}.student-attendance-events{gap:.65rem;display:grid}.student-attendance-event{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem 1rem;display:grid;position:relative;overflow:hidden}.student-attendance-event:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.student-attendance-event.is-present:before{background:var(--color-success)}.student-attendance-event.is-late:before{background:var(--color-warning)}.student-attendance-event.is-absent:before{background:var(--color-danger)}.student-attendance-event-status span{border-radius:var(--radius-pill);align-items:center;width:fit-content;padding:.3rem .55rem;font-size:.72rem;font-weight:800;display:inline-flex}.student-attendance-event.is-present .student-attendance-event-status span{color:var(--color-success);background:var(--color-success-soft)}.student-attendance-event.is-late .student-attendance-event-status span{color:var(--color-warning);background:var(--color-warning-soft)}.student-attendance-event.is-absent .student-attendance-event-status span{color:var(--color-danger);background:var(--color-danger-soft)}.student-attendance-event-main{min-width:0}.student-attendance-event-title{justify-content:space-between;align-items:center;gap:1rem;display:flex}.student-attendance-event-title strong{font-size:.9rem}.student-attendance-event-title time{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem}.student-attendance-event-main>p{color:var(--color-text-soft);margin:.2rem 0 0;font-size:.8rem}.student-attendance-event-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:.35rem 1rem;margin-top:.35rem;font-size:.75rem;display:flex}.student-attendance-event-details{text-align:right;justify-items:end;min-width:110px;display:grid}.student-attendance-event-details strong{color:var(--color-text);font-size:.82rem}.student-attendance-event-details span{color:var(--color-text-muted);margin-top:.15rem;font-size:.72rem}.student-attendance-event-comment{border-top:1px solid var(--color-border);color:var(--color-text-soft);grid-column:2/-1;padding-top:.6rem;font-size:.78rem}.student-attendance-empty-filter{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);text-align:center;padding:2rem 1rem}@media (width<=1100px){.student-attendance-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.student-attendance-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.student-attendance-event{grid-template-columns:minmax(4.5rem,.45fr) minmax(0,1fr) auto}.student-attendance-event-details{text-align:right;justify-items:end}.student-attendance-event-comment{grid-column:2/-1}.student-attendance-event-title{align-items:flex-start}}.communication-section{gap:.75rem;margin-bottom:1.5rem;display:grid}.birthday-list{gap:.75rem;display:grid}.birthday-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.birthday-card p{margin:.25rem 0 0}.birthday-emoji-actions{flex-wrap:wrap;gap:.4rem;display:flex}.birthday-emoji-actions button{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:999px;padding:.4rem .6rem;font-size:1.2rem}.birthday-celebration-backdrop{z-index:1000;background:#0f172aa6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.birthday-celebration{border-radius:var(--radius-lg);background:var(--color-surface);text-align:center;width:min(34rem,100%);box-shadow:var(--shadow-lg);padding:2rem;animation:.45s ease-out birthday-pop}.birthday-confetti,.birthday-message-content{overflow-wrap:anywhere;font-size:2rem}.birthday-message-content{margin:1.25rem 0}@keyframes birthday-pop{0%{opacity:0;transform:translateY(1rem)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.birthday-celebration{animation:none}}@media (width<=650px){.birthday-card{flex-direction:row;align-items:center;gap:.45rem;padding:.55rem}}.student-dashboard-page .student-dashboard-alerts{background:#fff;border:1px solid #e3eaf2;border-radius:14px;margin:1rem 0;padding:1rem}.student-dashboard-page .student-dashboard-alerts-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;display:flex}.student-dashboard-page .student-dashboard-alerts-head h2,.student-dashboard-page .student-dashboard-alerts-head p{margin:0}.student-dashboard-page .student-dashboard-alerts-head p{color:#66758a}@media (width<=580px){.student-dashboard-page .student-dashboard-alerts-head{flex-direction:column}}.student-dashboard-page{background:#f8fafc;gap:1.25rem;display:grid}.student-dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;display:grid}.student-dashboard-summary-card,.student-dashboard-communication,.student-dashboard-card,.student-dashboard-customizer{background:#fff;border:1px solid #e3e9f0;box-shadow:0 5px 18px #2134480b}.student-dashboard-summary-card{border-radius:15px;align-items:center;gap:1rem;min-height:90px;padding:1rem 1.15rem;display:flex}.student-dashboard-summary-card div{gap:.2rem;display:grid}.student-dashboard-summary-card strong{color:#14213d;font-size:1.42rem}.student-dashboard-summary-card div span{color:#61718b;font-size:.84rem}.student-summary-icon,.student-widget-icon,.student-customizer-heading-icon{border-radius:50%;flex:none;place-items:center;width:42px;height:42px;display:inline-grid}.student-summary-blue .student-summary-icon{color:#1473e6;background:#eaf3ff}.student-summary-red .student-summary-icon{color:#e72552;background:#fff0f3}.student-summary-orange .student-summary-icon{color:#ef6c00;background:#fff2e8}.student-summary-green .student-summary-icon{color:#18864b;background:#eaf9f0}.student-dashboard-communication{border-radius:15px;align-items:flex-start;gap:1rem;padding:1rem 1.15rem;display:flex}.student-dashboard-communication>div{gap:.2rem;min-width:0;display:grid}.student-dashboard-communication h2,.student-dashboard-communication p{margin:0}.student-dashboard-communication h2{margin-bottom:.2rem;font-size:.94rem}.student-dashboard-communication p,.student-dashboard-communication small{color:#61718b}.student-dashboard-widget-grid{grid-template-columns:repeat(auto-fit,minmax(245px,1fr));align-items:stretch;gap:1rem;display:grid}.student-dashboard-card{border-radius:15px;min-width:0;min-height:190px;padding:.95rem}.student-dashboard-card>header{border-bottom:1px solid #edf1f5;align-items:center;gap:.65rem;padding-bottom:.7rem;display:flex}.student-dashboard-card>header h2{margin:0;font-size:.9rem}.student-dashboard-card>header>a{color:#17233c;flex:1;justify-content:space-between;align-items:center;gap:.4rem;min-width:0;text-decoration:none;display:flex}.student-widget-icon{border-radius:11px;width:36px;height:36px}.student-widget-icon-green{color:#15905a;background:#eaf9f1}.student-widget-icon-purple{color:#7048e8;background:#f1edff}.student-widget-icon-orange{color:#e86600;background:#fff1e6}.student-widget-icon-blue{color:#1473e6;background:#eaf3ff}.student-widget-icon-cyan{color:#087ea4;background:#e9f8fc}.student-widget-icon-pink{color:#e72552;background:#fff0f3}.student-widget-icon-red{color:#c92a2a;background:#fff0f0}.student-widget-icon-indigo{color:#4263eb;background:#edf2ff}.student-widget-icon-teal{color:#087f5b;background:#e6fcf5}.student-widget-rows{display:grid}.student-widget-rows>a{color:#1c2940;border-bottom:1px solid #edf1f5;flex-wrap:wrap;justify-content:space-between;gap:.2rem .65rem;min-width:0;padding:.72rem .1rem;text-decoration:none;display:flex}.student-widget-rows>a:last-child{border-bottom:0}.student-widget-rows>a>span:not(.student-widget-score){min-width:0;display:grid}.student-widget-rows b,.student-widget-rows strong{color:#1c2940;font-size:.79rem}.student-widget-rows small,.student-widget-clamp{color:#6b7b92;width:100%;font-size:.73rem}.student-widget-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.student-widget-score{white-space:nowrap;background:#eaf9f0;border-radius:8px;align-self:center;padding:.25rem .5rem;color:#18864b!important}.student-widget-empty{color:#6b7b92;text-align:center;margin:1.1rem 0 0;font-size:.82rem}.student-attendance-mini{grid-template-columns:repeat(auto-fit,minmax(65px,1fr));gap:.5rem;padding:.8rem 0 .35rem;display:grid}.student-attendance-mini span{text-align:center;background:#f7f9fc;border-radius:10px;padding:.55rem;display:grid}.student-attendance-mini b{color:#17233c}.student-attendance-mini small{color:#6b7b92;font-size:.68rem}.student-dashboard-customizer{border-radius:15px;padding:1.1rem 1.25rem}.student-customizer-heading,.student-customizer-title{align-items:center;gap:.8rem;display:flex}.student-customizer-heading{justify-content:space-between;margin-bottom:.9rem}.student-customizer-title h2,.student-customizer-title p{margin:0}.student-customizer-title h2{font-size:.94rem}.student-customizer-title p{color:#6b7b92;margin-top:.2rem;font-size:.77rem}.student-customizer-heading-icon{color:#37516f;background:#f0f4f8;width:34px;height:34px}.student-show-all{color:#27364d;background:#fff;border:1px solid #e0e7ef;border-radius:10px;align-items:center;gap:.4rem;padding:.55rem .75rem;font-weight:700;display:inline-flex}.student-widget-controls{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:.55rem;display:grid}.student-widget-control{background:#fff;border:1px solid #e4eaf1;border-radius:11px;align-items:center;gap:.55rem;min-width:0;min-height:52px;padding:.45rem .55rem;display:flex}.student-drag-handle{color:#8190a4;cursor:grab;touch-action:none;background:0 0;border:0;flex:none;place-items:center;width:28px;height:32px;padding:0;display:inline-grid}.student-drag-handle:active{cursor:grabbing}.student-drag-handle:focus-visible{outline-offset:2px;outline:2px solid #1473e6}.student-widget-control .student-widget-icon{width:31px;height:31px}.student-widget-control-label{color:#27364d;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.78rem;font-weight:700;overflow:hidden}.student-switch{cursor:pointer;flex:none;display:inline-flex;position:relative}.student-switch input{opacity:0;width:1px;height:1px;position:absolute}.student-switch>span:first-of-type{background:#cbd5e1;border-radius:999px;width:39px;height:22px;transition:background .15s;position:relative}.student-switch>span:first-of-type:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0f172a38}.student-switch input:checked+span{background:#1473e6}.student-switch input:checked+span:after{transform:translate(17px)}.student-switch input:focus-visible+span{outline-offset:2px;outline:2px solid #1473e6}.student-mobile-order-buttons{gap:.2rem;display:none}.student-mobile-order-buttons button{color:#52647c;background:#fff;border:1px solid #e0e7ef;border-radius:7px;place-items:center;width:28px;height:28px;padding:0;display:inline-grid}.student-auto-save{color:#6b7b92;text-align:center;margin:.85rem 0 0;font-size:.73rem}.student-auto-save-saving{color:#8a5a00}.student-auto-save-error{color:#b42318}.student-auto-save-saved{color:#167447}@media (width<=820px){.student-dashboard-widget-grid,.student-widget-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.student-mobile-order-buttons{display:inline-flex}}@media (width<=580px){.student-dashboard-page{padding-inline:.75rem}.student-dashboard-summary,.student-dashboard-widget-grid,.student-widget-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.student-customizer-heading,.student-customizer-title{align-items:flex-start}.student-show-all{padding:.5rem;font-size:.72rem}.student-dashboard-customizer{padding:.9rem}.student-dashboard-card{min-height:0}}.student-customizer-actions,.tutorial-actions{flex-wrap:wrap;gap:.75rem;display:flex}.tutorial-backdrop{z-index:1200;background:#0a182db8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.tutorial-card{background:var(--surface,#fff);width:min(100%,34rem);max-height:calc(100dvh - 2rem);color:var(--text,#172033);border-radius:1rem;padding:2rem;position:relative;overflow:auto;box-shadow:0 1.5rem 4rem #00000040}.tutorial-card progress{width:100%;margin:1rem 0}.tutorial-close{position:absolute;top:1rem;right:1rem}@media (width<=640px){.student-customizer-heading{align-items:flex-start}.student-customizer-actions,.student-customizer-actions .btn{width:auto}.tutorial-card{padding:1.25rem}.tutorial-actions .btn{flex:1}}.password-policy{border:1px solid var(--color-border);background:var(--color-surface-subtle,#f8fafb);color:var(--color-text-muted);border-radius:10px;padding:12px 14px;font-size:12px}.password-policy strong{color:var(--color-text);margin-bottom:8px;display:block}.password-policy ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.password-policy li{align-items:center;gap:7px;display:flex}.password-policy svg{flex:none;width:14px;height:14px}.password-policy li.is-valid{color:var(--color-success,#217a4b)}.password-security-panel{gap:0}.password-security-panel .login-brand{margin-bottom:clamp(36px,7vh,72px)}.password-security-form{gap:var(--space-4);margin-top:var(--space-6);display:grid}.password-security-form .btn{width:100%}.password-security-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.password-security-link{color:var(--color-primary);font-size:12px;font-weight:700;text-decoration:none}.password-security-link:hover{text-decoration:underline}.password-security-code{letter-spacing:.32em;text-align:center;font-size:24px;font-weight:700}.password-security-message{border:1px solid var(--color-border);background:var(--color-surface-subtle,#f8fafb);color:var(--color-text-muted);border-radius:8px;padding:11px 12px;font-size:12px;line-height:1.55}.password-security-success{color:#217a4b;background:#eefaf3;border-color:#b8dfc9}@media (width<=520px){.password-security-actions{flex-flow:wrap;align-items:center}}button.password-security-link{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary-700:#0b626a;--color-primary-600:#0f7b84;--color-primary-500:#1598a1;--color-primary-100:#dff4f5;--color-primary-050:#effafb;--color-background:#f4f7f8;--color-surface:#fff;--color-surface-muted:#f8fafb;--color-surface-strong:#edf2f3;--color-text:#17363b;--color-text-soft:#476167;--color-text-muted:#71868b;--color-border:#d8e3e5;--color-border-strong:#becfd2;--color-success:#237a58;--color-success-soft:#e6f6ee;--color-warning:#a96514;--color-warning-soft:#fff4df;--color-danger:#be3e45;--color-danger-soft:#fff0f1;--color-info:#2d6fa5;--color-info-soft:#eaf4fc;--font-sans:Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--radius-sm:.45rem;--radius-md:.75rem;--radius-lg:1.05rem;--radius-pill:999px;--shadow-sm:0 1px 2px #12373d0f;--shadow-md:0 12px 32px #12373d17;--focus-ring:0 0 0 3px #1598a133;--sidebar-width:16.5rem;--topbar-height:4.25rem;--content-max-width:100rem}*,:before,:after{box-sizing:border-box}html{background:var(--color-background);text-rendering:optimizelegibility;min-width:20rem;min-height:100%}body,#root{min-height:100vh;margin:0}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-sans);font-size:.9375rem;line-height:1.5}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled,select:disabled,input:disabled,textarea:disabled{cursor:not-allowed}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,p,dl,dd{margin:0}ul,ol{margin:0;padding:0}table{border-collapse:collapse}h1,h2,h3,strong,b{color:var(--color-text);font-weight:700}h1{letter-spacing:-.035em;font-size:clamp(1.65rem,2vw,2.1rem);line-height:1.15}h2{letter-spacing:-.015em;font-size:1.05rem}h3{font-size:.95rem}p,dd,td,th{overflow-wrap:anywhere}small{color:var(--color-text-muted);font-size:.76rem}.muted{color:var(--color-text-muted)}.eyebrow{color:var(--color-primary-600);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800}.app-shell{min-height:100vh}.sidebar{z-index:40;width:var(--sidebar-width);padding:var(--space-5) var(--space-4);color:#fff;background:linear-gradient(#103f46 0%,#0b3036 100%);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;box-shadow:8px 0 30px #08282d1f}.brand-block{padding:var(--space-2) var(--space-3) var(--space-6);gap:.1rem;display:grid}.brand-block strong{color:#fff;letter-spacing:.11em;font-size:1.08rem}.brand-block span{color:#a8d9dc;letter-spacing:.08em;font-size:.68rem;font-weight:700}.nav-list{flex-direction:column;flex:1;gap:.22rem;display:flex}.nav-link{border-radius:var(--radius-md);color:#cee7e9;border:1px solid #0000;align-items:center;gap:.7rem;min-height:2.6rem;padding:.65rem .75rem;font-size:.82rem;font-weight:600;transition:background .16s,color .16s,border-color .16s;display:flex}.nav-link:hover{color:#fff;background:#ffffff12}.nav-link.active{color:#fff;background:#ffffff1f;border-color:#ffffff1f}.nav-choice{gap:.15rem;display:grid}.nav-choice-trigger{color:#cee7e9;cursor:pointer;width:100%;font:inherit;text-align:left;appearance:none;background:0 0;border:1px solid #0000}.nav-choice-trigger svg:last-child{margin-left:auto;transition:transform .16s}.nav-choice-chevron-open{transform:rotate(180deg)}.nav-choice-menu{gap:.15rem;padding:.1rem 0 .2rem 2.2rem;display:grid}.nav-choice-option{border-radius:var(--radius-md);color:#b8dadd;align-items:center;min-height:2rem;padding:.45rem .65rem;font-size:.76rem;font-weight:600;transition:background .16s,color .16s;display:flex}.nav-choice-option:hover{color:#fff;background:#ffffff12}.sidebar-footer{gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4) var(--space-2) 0;border-top:1px solid #ffffff1f;display:grid}.sidebar-user{align-items:center;gap:var(--space-3);min-width:0;display:flex}.sidebar-user-copy{min-width:0;display:grid}.sidebar-user-copy>span{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;overflow:hidden}.sidebar-user-copy small{color:#a8d9dc}.profile-avatar{color:#075b60;background:#dff3f4;border:2px solid #007a8033;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-avatar-small{border-color:#ffffff59;width:2.25rem;height:2.25rem;font-size:.72rem}.profile-avatar-medium{width:3rem;height:3rem;font-size:.9rem}.profile-avatar-large{width:6rem;height:6rem;font-size:1.5rem}.logout-cta{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);color:#eaf8f9;background:0 0;border:1px solid #ffffff2e;width:100%;padding:.62rem;font-size:.78rem;font-weight:700;display:flex}.logout-cta:hover{background:#ffffff14}.app-main{min-height:100vh;margin-left:var(--sidebar-width)}.topbar{z-index:20;height:var(--topbar-height);align-items:center;gap:var(--space-3);padding:0 var(--space-8);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;display:flex;position:sticky;top:0}.topbar>strong{font-size:.92rem}.top-role{border-radius:var(--radius-pill);background:var(--color-primary-100);color:var(--color-primary-700);margin-left:auto;padding:.28rem .58rem;font-size:.7rem;font-weight:800}.content{width:min(100%, var(--content-max-width));padding:var(--space-8);margin-inline:auto}.sidebar-backdrop,.mobile-toggle{display:none}.role-switcher{position:relative}.role-switcher-trigger{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:.55rem;align-items:center;gap:.4rem;padding:.45rem .65rem;display:inline-flex}.role-switcher-trigger:hover,.role-switcher-trigger:focus-visible{background:var(--surface-muted,#eef3f8)}.role-switcher-menu{z-index:80;border:1px solid var(--border,#dbe2ea);background:var(--surface,#fff);border-radius:.7rem;min-width:15rem;padding:.4rem;display:grid;position:absolute;top:calc(100% + .4rem);left:0;box-shadow:0 12px 32px #14233c2e}.role-switcher-menu button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.45rem;padding:.7rem .8rem}.role-switcher-menu button:hover:not(:disabled){background:var(--surface-muted,#eef3f8)}.role-switcher-menu button[aria-current=page]{color:var(--primary,#245d9c);font-weight:700}@media (width<=560px){.role-switcher-menu{top:var(--topbar-height);min-width:0;position:fixed;left:.75rem;right:.75rem}.topbar .role-switcher-trigger strong{font-size:.9rem}}:focus-visible{box-shadow:var(--focus-ring);outline:none}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-6);display:flex}.page-header-copy{gap:var(--space-2);max-width:58rem;display:grid}.page-back-link{justify-self:start;width:fit-content}.header-actions,.inline-actions,.table-actions,.form-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.header-actions{justify-content:flex-end}.btn{border-radius:var(--radius-md);border:1px solid #0000;justify-content:center;align-items:center;gap:.48rem;min-height:2.45rem;padding:.58rem .88rem;font-size:.78rem;font-weight:750;line-height:1;transition:transform .14s,background .14s,border-color .14s,box-shadow .14s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.58}.btn-primary{background:var(--color-primary-600);color:#fff;box-shadow:0 5px 14px #0f7b842e}.btn-primary:hover:not(:disabled){background:var(--color-primary-700)}.btn-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text-soft)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary-500);color:var(--color-primary-700)}.btn-danger{background:var(--color-danger);color:#fff}.btn-compact{min-height:2rem;padding:.42rem .62rem;font-size:.72rem}.icon-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:2.35rem;height:2.35rem;color:var(--color-text-soft);place-items:center;padding:0;display:inline-grid}.section,.dashboard-panel,.metric-card,.detail-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}.section{margin-bottom:var(--space-5);overflow:hidden}.section-compact{padding:var(--space-4)}.section-head,.toolbar{align-items:center;gap:var(--space-3);min-height:3.7rem;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex}.section-body{padding:var(--space-5)}.toolbar-spacer,.spacer{flex:1}.form-panel{overflow:visible}.form-panel form{gap:var(--space-5);display:grid}.form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-field,.form-group,.filter-field{color:var(--color-text-soft);align-content:start;gap:.4rem;font-size:.76rem;font-weight:700;display:grid}.form-field-wide{grid-column:1/-1}.form-field>span,.form-group>span,.filter-field>span{color:var(--color-text-soft)}input,select,textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-height:2.55rem;color:var(--color-text);outline:none;padding:.62rem .72rem;font-size:.82rem;transition:border-color .14s,box-shadow .14s}textarea{resize:vertical;min-height:6.5rem}select[multiple]{min-height:8rem}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-500);box-shadow:var(--focus-ring)}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-strong);color:var(--color-text-muted)}.form-actions{padding-top:var(--space-4);border-top:1px solid var(--color-border);justify-content:flex-end}.filter-bar{align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.filter-field{min-width:min(18rem,100%)}.multi-checkbox{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);gap:.35rem;max-height:13rem;padding:.45rem;display:grid;overflow-y:auto}.multi-checkbox-option{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-soft);cursor:pointer;padding:.48rem .55rem;font-size:.78rem;font-weight:600;display:flex}.multi-checkbox-option:hover,.multi-checkbox-option.selected{background:var(--color-primary-100);color:var(--color-primary-700)}.multi-checkbox-option input{width:auto;min-height:auto;accent-color:var(--color-primary-600)}.multi-checkbox-empty{padding:var(--space-3);color:var(--color-text-muted);font-size:.75rem}.table-wrap{width:100%;overflow-x:auto}table{width:100%;min-width:42rem}caption{padding:var(--space-3) var(--space-5);color:var(--color-text-muted);text-align:left}th,td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:.85rem 1rem}th{background:var(--color-surface-muted);color:var(--color-text-muted);letter-spacing:.045em;text-transform:uppercase;font-size:.68rem;font-weight:800}td{color:var(--color-text-soft);font-size:.78rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfdfd}.table-cell-wrap{white-space:normal;min-width:14rem;max-width:32rem}.table-action{color:var(--color-primary-700);background:0 0;border:0;align-items:center;gap:.35rem;padding:.35rem .48rem;font-size:.72rem;font-weight:750;display:inline-flex}.table-action:hover{text-decoration:underline}.table-action-danger{color:var(--color-danger)}.badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;padding:.28rem .55rem;font-size:.66rem;font-weight:800;display:inline-flex}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.notice{border-radius:var(--radius-md);border:1px solid;padding:.85rem 1rem;font-size:.8rem}.notice p+p,.notice-list{margin-top:var(--space-2)}.notice-info{background:var(--color-info-soft);color:#245c85;border-color:#bfd9ed}.notice-success{background:var(--color-success-soft);color:var(--color-success);border-color:#b8dfcd}.notice-warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:#efd5a4}.notice-danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:#edc2c5}.async-state{min-height:7rem;padding:var(--space-6);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-muted);text-align:center;place-items:center;display:grid}.async-state-error{color:var(--color-danger)}.async-state-error p{margin-top:var(--space-1)}.tabs{margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:.2rem;padding:.3rem;display:flex;overflow-x:auto}.tab{border-radius:var(--radius-sm);color:var(--color-text-muted);background:0 0;border:0;flex:none;padding:.55rem .72rem;font-size:.74rem;font-weight:700}.tab:hover,.tab.active{background:var(--color-primary-100);color:var(--color-primary-700)}.detail-card{gap:var(--space-4);padding:var(--space-5);display:grid}.detail-card-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.detail-list{border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.detail-list-row{gap:var(--space-3);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(7rem,.8fr) minmax(0,1.2fr);padding:.75rem .85rem;display:grid}.detail-list-row:nth-last-child(-n+2){border-bottom:0}.detail-list-row:nth-child(odd){border-right:1px solid var(--color-border)}.detail-list dt{color:var(--color-text-muted);font-size:.72rem;font-weight:700}.detail-list dd{color:var(--color-text-soft);font-size:.78rem}.detail-subsection,.subject-results{gap:var(--space-3);margin-top:var(--space-3);display:grid}.pagination{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex}.secretary-billing-total strong{color:var(--color-primary-700)}.secretary-billing-remaining strong{color:var(--color-warning)}.secretary-billing-filters{align-items:end}.secretary-billing-search{flex:22rem}.secretary-billing-search-control{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:2.75rem;color:var(--color-text-muted);align-items:center;padding-left:.8rem;display:flex}.secretary-billing-search-control:focus-within{border-color:var(--color-primary-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary-500) 18%, transparent)}.secretary-billing-search-control input{min-width:0;box-shadow:none;background:0 0;border:0}.secretary-billing-search-control input:focus{box-shadow:none}.secretary-billing-search-clear{width:2.5rem;height:2.5rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.secretary-billing-pagination{align-items:center}.secretary-billing-pagination label{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:.85rem;display:flex}.secretary-billing-pagination select{width:auto;min-width:4rem}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:var(--color-primary-600);padding:0}.multi-checkbox-field{gap:.55rem;display:grid}.multi-checkbox-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.multi-checkbox-search{align-items:center;gap:var(--space-3);display:flex}.multi-checkbox-search input{flex:1}.multi-checkbox-search span{color:var(--color-text-muted);flex:none;font-size:.75rem;font-weight:600}@media (width<=520px){.multi-checkbox-search{flex-direction:column;align-items:stretch}}.choice-list{gap:var(--space-2);max-height:20rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid;overflow:auto}.choice-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);display:flex}.choice-row:hover{background:var(--color-surface-muted)}.student-selection-panel,.student-autocomplete,.invoice-payment-manager,.form-panel-inline{gap:var(--space-4);display:grid}.student-choice-list{max-height:24rem}.selected-student{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);flex-wrap:wrap;display:flex}.autocomplete-results{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:20rem;box-shadow:var(--shadow-md);display:grid;overflow:auto}.autocomplete-results button{justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:0;border-bottom:1px solid var(--color-border);color:inherit;text-align:left;cursor:pointer;background:0 0;display:flex}.autocomplete-results button:hover{background:var(--color-surface-muted)}.modal-card-wide{width:min(70rem,100vw - 2rem);max-height:calc(100vh - 2rem);overflow:auto}.form-panel-inline{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.attendance-status-locked{gap:var(--space-1);color:var(--color-text-muted);display:grid}@media (width<=700px){.selected-student,.student-selection-panel .toolbar{flex-direction:column;align-items:stretch}.autocomplete-results button{flex-direction:column}}.secretary-course-attendance-modal{width:fit-content;min-width:min(52rem,100vw - 2rem);max-width:calc(100vw - 2rem);max-height:none;overflow:visible}.secretary-course-attendance-modal .table-wrap{overflow:visible}.secretary-course-attendance-modal table{width:100%;min-width:0}.secretary-course-attendance-modal .attendance-event-actions{flex-wrap:nowrap}@media (width<=900px){.secretary-course-attendance-modal{width:calc(100vw - 1.25rem);min-width:0;max-width:none;padding:1rem}.secretary-course-attendance-modal table{table-layout:fixed}.secretary-course-attendance-modal th,.secretary-course-attendance-modal td{overflow-wrap:anywhere;padding:.65rem .5rem}.secretary-course-attendance-modal .attendance-event-actions{flex-direction:column;align-items:stretch}.secretary-course-attendance-modal .attendance-event-actions .btn{width:100%}}.metric-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.metric-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{padding:var(--space-5);gap:.25rem;display:grid}.metric-card strong{color:var(--color-primary-700);font-size:clamp(1.25rem,2vw,1.65rem)}.metric-card span{color:var(--color-text-muted);font-size:.75rem;font-weight:650}.dashboard-grid{gap:var(--space-5);grid-template-columns:minmax(0,2fr) minmax(16rem,.8fr);display:grid}.dashboard-panel{padding:var(--space-5)}.dashboard-panel h2{margin-bottom:var(--space-4)}.dashboard-panel-compact{align-self:start}.dashboard-row{gap:var(--space-3);border-bottom:1px solid var(--color-border);grid-template-columns:auto 1fr;padding:.78rem 0;display:grid}.dashboard-row.has-action{grid-template-columns:auto minmax(0,1fr) minmax(13rem,auto);align-items:center}.dashboard-acknowledgement{align-items:center;gap:var(--space-2);cursor:pointer;font-size:.78rem;font-weight:600;display:flex}.dashboard-acknowledgement.is-acknowledged{color:var(--color-success,#237a57);cursor:default}.dashboard-acknowledgement input{margin:0}.dashboard-row:last-child{border-bottom:0}.dashboard-row>div{gap:.18rem;display:grid}.dashboard-row b{font-size:.8rem}.dashboard-dot{background:var(--color-primary-500);width:.55rem;height:.55rem;box-shadow:0 0 0 4px var(--color-primary-100);border-radius:50%;margin-top:.32rem}.empty-inline{padding:var(--space-5) 0;color:var(--color-text-muted);font-size:.78rem}.quick-links{gap:var(--space-2);display:grid}.quick-links a{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-primary-700);padding:.72rem .8rem;font-size:.76rem;font-weight:700}.quick-links a:hover{border-color:var(--color-primary-500);background:var(--color-primary-050)}.planning-wrap{width:100%;overflow-x:auto}.planning-grid{min-width:calc(9rem + (var(--planning-days) * 12rem));grid-template-columns:9rem repeat(var(--planning-days), minmax(12rem, 1fr));display:grid}.planning-head,.time-cell,.day-cell{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);min-height:4.8rem;padding:.72rem}.planning-head{background:var(--color-surface-muted);min-height:3rem;color:var(--color-text-soft);font-size:.72rem}.time-cell{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.7rem;font-weight:750}.day-cell{align-content:start;gap:var(--space-2);display:grid}.planning-head-holiday{background:#f3f3f3}.planning-holiday-label{color:var(--color-text);margin-top:.35rem;font-size:.68rem;font-weight:800;display:block}.day-cell-holiday{background:repeating-linear-gradient(-45deg,#00000006,#00000006 8px,#0000000e 8px 16px)}.course-card{border:1px solid var(--course-border,#add9dd);border-radius:var(--radius-sm);background:var(--course-background,var(--color-primary-050));width:100%;color:var(--course-text,var(--color-text-soft));text-align:left;gap:.18rem;padding:.62rem;display:grid}.course-card:hover:not(:disabled){border-color:var(--course-border,var(--color-primary-500));background:var(--course-background,var(--color-primary-100));filter:brightness(.97)}.course-card:disabled{cursor:default}.course-card strong,.course-card small,.course-card .course-state{color:var(--course-text,var(--color-primary-700))}.course-card strong{font-size:.75rem}.course-time-badge{width:fit-content;max-width:100%;color:var(--course-text,var(--color-primary-700));white-space:nowrap;border:1px solid;border-radius:999px;padding:.12rem .38rem;font-size:.64rem;font-weight:800;line-height:1.2;display:inline-flex}.course-card-complete{box-shadow:inset 0 0 0 3px #3f9b5f}.course-card-overdue{box-shadow:inset 0 0 0 3px #c94b4b}.course-state{margin-top:.2rem;font-weight:750}.notice-link{color:inherit;font:inherit;background:0 0;border:0;padding:0;font-weight:750;text-decoration:underline}.attendance-form,.attendance-list{gap:var(--space-4);display:grid}.attendance-form .attendance-submit-button{height:90px;font-size:1.25rem}.attestation-character-count{color:var(--color-text-muted);text-align:right;margin-top:.3rem;font-size:.72rem;display:block}.attendance-row{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:minmax(12rem,1fr) repeat(3,minmax(9rem,.8fr));align-items:end;display:grid}.attendance-row>div,.attendance-row label{gap:.3rem;display:grid}.attendance-row span,.attendance-row small{color:var(--color-text-muted);font-size:.72rem}.attendance-session-list .dashboard-row{grid-template-columns:1fr auto;align-items:center}@media (width<=900px){.attendance-row{grid-template-columns:1fr}}.multi-course-cell{gap:var(--space-2);display:grid}.login-page{background:var(--color-surface);grid-template-columns:minmax(20rem,.85fr) minmax(26rem,1.15fr);min-height:100vh;display:grid}.login-panel{flex-direction:column;justify-content:center;width:min(100%,31rem);padding:clamp(2rem,7vw,5.5rem);display:flex}.login-showcase{background:#055c6c;flex-direction:column;min-width:0;min-height:100vh;display:flex}.login-panel h1,.login-panel>.muted{margin-top:var(--space-3)}.login-form{gap:var(--space-4);margin-top:var(--space-6);display:grid}.login-form .btn{width:100%}.login-visual{color:#d9f4f5;background:#055c6c;flex:1;min-height:14rem;padding:0;overflow:hidden}.login-visual .eyebrow{color:#8ed8dc}.login-visual h2{max-width:36rem;margin-top:var(--space-4);color:#fff;font-size:clamp(2rem,4vw,3.4rem);line-height:1.06}.login-visual>p{max-width:38rem;margin-top:var(--space-5);color:#c1e2e4}.brand-mark{border-radius:var(--radius-md);background:var(--color-primary-600);color:#fff;place-items:center;width:2.15rem;height:2.15rem;font-weight:800;display:inline-grid}.secretary-summary{margin-bottom:1.5rem}.attendance-filters{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.data-table td small{color:var(--color-text-muted);margin-top:.25rem;display:block}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.family-card{border-bottom:1px solid var(--color-border);gap:.25rem;padding:.9rem 0;display:grid}.modal-backdrop{z-index:100;background:#0f172a8c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-lg);background:var(--color-surface);width:min(560px,100%);box-shadow:var(--shadow-lg);gap:1rem;padding:1.5rem;display:grid}.modal-card label{gap:.4rem;display:grid}.modal-card textarea{resize:vertical;min-height:110px}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.profile-image-field,.person-with-avatar{align-items:center;gap:var(--space-3);display:flex}.profile-image-field>div{gap:var(--space-2);display:grid}.assessment-agenda{gap:var(--space-4);display:grid}.assessment-agenda-toolbar{align-items:center;gap:var(--space-3);grid-template-columns:auto minmax(12rem,1fr) auto;display:grid}.assessment-agenda-toolbar>div{text-align:center;gap:.2rem;display:grid}.assessment-agenda-toolbar small,.assessment-agenda-empty,.assessment-agenda-day-empty{color:var(--color-text-muted)}.assessment-agenda-days{gap:var(--space-3);display:grid}.assessment-agenda-day{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);grid-template-columns:minmax(10rem,.24fr) minmax(0,1fr);display:grid}.assessment-agenda-day h2{color:var(--color-text-soft);text-transform:capitalize;margin:0;font-size:.95rem}.assessment-agenda-events{gap:var(--space-2);display:grid}.assessment-agenda-event{padding:var(--space-3);border:2px solid var(--course-border);border-radius:var(--radius-sm);background:var(--course-background);color:var(--course-text);border-left-width:6px;gap:.38rem;display:grid}.assessment-agenda-event h3,.assessment-agenda-event p,.assessment-agenda-event strong,.assessment-agenda-event small,.assessment-agenda-event .muted{color:var(--course-text)}.assessment-agenda-event h3,.assessment-agenda-event p{margin:0}.assessment-agenda-homework,.assessment-agenda-exam{border-left-width:6px}.assessment-agenda-type{color:#173042;text-transform:uppercase;background:#fff;border-radius:999px;width:fit-content;padding:.2rem .55rem;font-size:.74rem;font-weight:750}.assessment-agenda-meta{gap:var(--space-2);flex-wrap:wrap;display:flex}.assessment-agenda-meta span{color:#173042;background:#fff;border-radius:999px;padding:.2rem .5rem;font-size:.78rem}@media (width<=720px){.assessment-agenda-toolbar,.assessment-agenda-day{grid-template-columns:1fr}.assessment-agenda-toolbar>div{order:-1}}.attendance-agenda-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.attendance-agenda-days,.attendance-agenda-sessions{gap:var(--space-3);display:grid}.attendance-agenda-day{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.attendance-agenda-day h2{margin:0 0 var(--space-3);text-transform:capitalize;font-size:1rem}.attendance-session-card{gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);border:2px solid var(--course-border);background:var(--course-background);color:var(--course-text);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.attendance-session-card h3,.attendance-session-card p,.attendance-session-card strong,.attendance-session-card small,.attendance-session-card .muted{color:var(--course-text)}.attendance-session-card h3,.attendance-session-card p{margin:.2rem 0}.attendance-call-state{border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:750;display:inline-flex}.attendance-call-state-empty{color:#495057;background:#f1f3f5}.attendance-call-state-pending{color:#7c5b00;background:#fff3bf}.attendance-call-state-submitted{color:#256029;background:#d3f9d8}@media (width<=700px){.dashboard-row.has-action{grid-template-columns:auto 1fr}.dashboard-row.has-action .dashboard-acknowledgement{grid-column:2}.attendance-agenda-toolbar,.attendance-session-card{flex-direction:column;grid-template-columns:1fr;align-items:stretch}}.attendance-agenda-days{grid-template-columns:repeat(6,minmax(14rem,1fr));align-items:start;overflow-x:auto}.attendance-agenda-day{min-height:100%}.attendance-session-card{grid-template-columns:1fr;align-items:stretch}.attendance-session-card .btn{width:100%}.attendance-row{border-left-width:5px;grid-template-columns:minmax(12rem,1fr) minmax(22rem,1.4fr) minmax(8rem,.5fr);align-items:center;transition:background-color .12s,border-color .12s}.attendance-row-present{background:#effaf3;border-color:#65a875}.attendance-row-absent{background:#fff1f1;border-color:#d05252}.attendance-row-late{background:#fff4e6;border-color:#dc8b2d}.attendance-status-field,.attendance-late-field{gap:.35rem;display:grid}.attendance-status-options{flex-wrap:wrap;gap:.45rem;display:flex}.attendance-status-option{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;padding:.5rem .7rem;font-size:.8rem;font-weight:700}.attendance-status-option-present[aria-pressed=true]{color:#256029;background:#d3f9d8;border-color:#438b55}.attendance-status-option-absent[aria-pressed=true]{color:#8f2525;background:#ffd8d8;border-color:#bd4141}.attendance-status-option-late[aria-pressed=true]{color:#8a4b08;background:#ffe8cc;border-color:#cb7620}.course-card-attendance-pending{box-shadow:inset 0 0 0 3px #c94b4b}.course-card-attendance-complete{box-shadow:inset 0 0 0 3px #367dc4}@media (width<=900px){.attendance-row{grid-template-columns:1fr}}.period-filter{border:0;gap:.35rem;margin:0;padding:0;display:inline-flex}.period-filter legend{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.period-filter button{border:1px solid var(--border-color,#d9dee8);background:var(--surface,#fff);cursor:pointer;border-radius:.65rem;min-height:42px;padding:.6rem .9rem}.period-filter button.active{color:#fff;border-color:var(--primary,#3157d5);background:var(--primary,#3157d5)}@media (width<=640px){.period-filter{width:100%}.period-filter button{flex:1}}.calendar-date-input{cursor:pointer;width:100%;min-height:48px;padding:.75rem}.attendance-overview-section{gap:1.25rem;display:grid}.attendance-period-row,.attendance-search-row{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.attendance-period-row .period-filter{flex:440px}.attendance-period-row .filter-field,.attendance-search-row .filter-field{min-width:min(260px,100%)}.attendance-search-row .filter-field{flex:320px}.attendance-range-label{color:var(--color-text-muted);padding-bottom:.75rem;font-size:.9rem}.attendance-count-link{border:1px solid var(--color-primary-200);border-radius:var(--radius-md);background:var(--color-primary-50);min-width:2.25rem;color:var(--color-primary-700);font:inherit;cursor:pointer;padding:.4rem .65rem;font-weight:800}.attendance-count-link:hover,.attendance-count-link:focus-visible{border-color:var(--color-primary-500);outline:2px solid var(--color-primary-200)}.attendance-pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.attendance-drawer-backdrop{z-index:110;background:#0f172a8c;justify-content:flex-end;display:flex;position:fixed;inset:0}.attendance-drawer{background:var(--color-surface);width:min(860px,100%);height:100%;box-shadow:var(--shadow-lg);align-content:start;gap:1.25rem;padding:clamp(1rem,3vw,2rem);display:grid;overflow-y:auto}.attendance-drawer-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:start;gap:1rem;padding-bottom:1rem;display:flex}.attendance-drawer-header h2,.attendance-drawer-header p{margin:0}.attendance-drawer-header span{color:var(--color-text-muted)}.attendance-detail-summary{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:.75rem;display:grid}.attendance-detail-summary span{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);gap:.15rem;padding:.85rem;display:grid}.attendance-detail-summary strong{color:var(--color-text);font-size:1.25rem}.attendance-tabs{border-bottom:1px solid var(--color-border);gap:.5rem;display:flex}.attendance-tabs button{color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:.75rem 1rem;font-weight:700}.attendance-tabs button.active{border-bottom-color:var(--color-primary-600);color:var(--color-primary-700)}.attendance-event-list{gap:1rem;display:grid}.attendance-event-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-background);gap:1rem;padding:1.1rem;display:grid}.attendance-event-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.attendance-event-heading>div{gap:.2rem;display:grid}.attendance-event-heading span:not(.status-pill){color:var(--color-text-muted)}.attendance-event-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem 1.25rem;margin:0;display:grid}.attendance-event-grid div{gap:.2rem;display:grid}.attendance-event-grid dt{color:var(--color-text-muted);text-transform:uppercase;font-size:.8rem;font-weight:700}.attendance-event-grid dd{margin:0}.attendance-event-wide{grid-column:1/-1}.justification-detail{border-top:1px solid var(--color-border);gap:.85rem;padding-top:.85rem;display:grid}.attendance-event-actions{flex-wrap:wrap;gap:.6rem;display:flex}.status-pill{border-radius:999px;flex:none;padding:.35rem .65rem;font-size:.8rem;font-weight:800}.status-danger{color:#991b1b;background:#fee2e2}.status-warning{color:#92400e;background:#fef3c7}@media (width<=640px){.attendance-period-row .period-filter{grid-template-columns:repeat(2,1fr);display:grid}.attendance-drawer-header{flex-direction:column;align-items:stretch}.attendance-tabs button{flex:1;padding-inline:.5rem}}.teacher-student-picker{position:relative}.teacher-student-picker>label{font-weight:700}.teacher-student-results{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:280px;box-shadow:var(--shadow-sm);gap:.35rem;padding:.4rem;display:grid;overflow-y:auto}.teacher-student-results button{border-radius:var(--radius-md);width:100%;color:var(--color-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.teacher-student-results button:hover,.teacher-student-results button:focus-visible{background:var(--color-primary-50);outline:2px solid var(--color-primary-200)}.teacher-student-results button span,.teacher-student-search-state,.teacher-student-results p{color:var(--color-text-muted)}.teacher-student-results p{text-align:center;margin:0;padding:.8rem}.teacher-student-selected{border:1px solid var(--color-primary-300);border-radius:var(--radius-md);background:var(--color-primary-50);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex}.teacher-student-selected>div{gap:.15rem;display:grid}.teacher-student-selected span{color:var(--color-text-muted);font-size:.9rem}.teacher-student-selected button{color:var(--color-primary-700);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}@media (width<=520px){.teacher-student-results button,.teacher-student-selected{flex-direction:column;align-items:flex-start}}.required-documents-shell{min-height:100vh;color:var(--color-text,#17243a);background:#f4f7fb;padding-bottom:48px}.required-documents-header{background:#fff;border-bottom:1px solid #dce4ef;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:10px clamp(18px,5vw,72px);display:flex}.required-documents-brand{flex-direction:column;line-height:1.15;display:flex}.required-documents-brand strong{color:#18375f;letter-spacing:.08em;font-size:1.15rem}.required-documents-brand span{color:#61718a;font-size:.82rem}.required-documents-intro,.family-progress,.required-documents-grid,.required-documents-shell>.notice,.required-documents-shell>.async-state{width:min(1120px,100% - 32px);margin-left:auto;margin-right:auto}.required-documents-embedded{background:0 0;min-height:0;padding-bottom:0}.required-documents-embedded .required-documents-intro{width:100%;padding-top:0}.required-documents-embedded .family-progress,.required-documents-embedded .required-documents-grid,.required-documents-embedded>.notice,.required-documents-embedded>.async-state{width:100%}.required-documents-intro{gap:18px;padding:40px 0 24px;display:grid}.required-documents-intro svg{color:#245d9c;flex:none}.required-documents-title{align-items:center;gap:14px;display:flex}.required-documents-intro h1{margin:0 0 8px;font-size:clamp(1.7rem,4vw,2.35rem)}.required-documents-intro p{color:#263d57;margin:0;font-size:1.05rem;line-height:1.65}.required-documents-explanation{background:#eef6ff;border:1px solid #b9d7f3;border-left:5px solid #2877c5;border-radius:14px;align-items:flex-start;gap:14px;padding:clamp(18px,3vw,26px);display:flex;box-shadow:0 8px 24px #245d9c14}.required-documents-explanation svg{margin-top:2px}.family-progress{background:#fff;border:1px solid #dce4ef;border-radius:16px;margin-bottom:24px;padding:20px;box-shadow:0 10px 28px #1c375b12}.family-progress>div{justify-content:space-between;gap:12px;margin-bottom:10px;display:flex}.family-progress progress{accent-color:#2877c5;width:100%;height:13px;display:block}.required-documents-grid{gap:20px;display:grid}.child-documents-card{background:#fff;border:1px solid #dce4ef;border-radius:18px;padding:clamp(18px,3vw,28px);box-shadow:0 10px 28px #1c375b0f}.child-documents-title{border-bottom:1px solid #e6ebf2;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;display:flex}.child-documents-title h2{margin:0 0 4px;font-size:1.25rem}.child-documents-title p{color:#66758a;margin:0}.document-step{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex}.document-step>div:first-child{flex-direction:column;gap:7px;display:flex}.document-step-actions,.signature-actions,.modal-actions,.row-actions{flex-wrap:wrap;gap:8px;display:flex}.document-status{border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:5px 10px;font-size:.8rem;font-weight:650;display:inline-flex}.status-complete{color:#157347;background:#e8f7ef}.status-pending{color:#8a5a00;background:#fff4d8}.document-workspace{z-index:90;background:#f3f6fa;position:fixed;inset:0;overflow:auto}.document-workspace-header{z-index:2;background:#fff;border-bottom:1px solid #dce4ef;justify-content:space-between;align-items:center;min-height:68px;padding:12px 20px;display:flex;position:sticky;top:0}.document-workspace-header>div{flex-direction:column;display:flex}.document-workspace-body{grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);min-height:calc(100vh - 68px);display:grid}.pdf-viewer-panel,.document-form-panel{padding:clamp(16px,3vw,30px)}.pdf-viewer-panel{background:#dfe5ed}.pdf-viewer-panel iframe{background:#fff;border:0;border-radius:10px;width:100%;height:calc(100vh - 145px);min-height:620px}.document-form-panel{background:#fff;overflow-y:auto}.contract-fields{grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;display:grid}.contract-fields label,.document-form-panel>label,.signature-form>label,.required-admin-filters label,.document-admin-modal label{flex-direction:column;gap:6px;font-size:.88rem;font-weight:600;display:flex}.contract-fields input,.document-form-panel input,.required-admin-filters input,.required-admin-filters select,.document-admin-modal input,.document-admin-modal select{min-height:44px;color:inherit;background:#fff;border:1px solid #cbd5e2;border-radius:9px;padding:9px 11px}.approval-mention{margin:18px 0}.acceptance-checkbox{align-items:flex-start;margin:20px 0;line-height:1.45;flex-direction:row!important}.acceptance-checkbox input{flex:none;width:19px;height:19px;min-height:auto;margin-top:2px}.signature-pad{margin:20px 0}.signature-label{margin-bottom:8px;font-weight:700;display:block}.signature-canvas{touch-action:none;background:#fff;border:2px dashed #9cadc2;border-radius:12px;width:100%;height:190px;display:block}.signature-actions{margin-top:10px}.signature-preview{background:#f8fafc;border:1px solid #d4deea;border-radius:10px;margin-top:12px;padding:10px}.signature-preview span{color:#53647b;font-size:.8rem;display:block}.signature-preview img{object-fit:contain;max-width:100%;height:70px}.field-error{color:#b42318;font-size:.85rem}.required-admin-summary{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin-bottom:18px;display:grid}.required-admin-summary .stat-card{flex-direction:column;justify-content:space-between;min-height:98px;display:flex}.required-admin-summary .stat-card strong{font-size:1.7rem}.required-admin-filters{grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;margin-bottom:18px;display:grid}.required-admin-templates{margin-bottom:18px}.template-list>div{border-top:1px solid #e6ebf2;align-items:center;gap:14px;padding:13px 0;display:flex}.template-list>div>div{flex-direction:column;flex:1;display:flex}.required-parent-warning{color:#9a6700;white-space:nowrap;align-items:center;gap:6px;font-weight:700;display:inline-flex}.required-parent-warning svg{flex:none}.required-admin-table table{border-collapse:collapse;width:100%;min-width:1180px}.required-admin-table th,.required-admin-table td{vertical-align:top;text-align:left;border-bottom:1px solid #e8edf3;padding:11px;font-size:.84rem}.modal-backdrop{z-index:100;background:#0e1a2b9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.document-admin-modal{background:#fff;border-radius:16px;gap:15px;width:min(520px,100%);padding:24px;display:grid;box-shadow:0 24px 70px #0000003d}.document-admin-modal.wide{width:min(850px,100%)}.document-trace{grid-template-columns:150px 1fr;gap:8px 16px;display:grid}.document-trace dt{font-weight:700}.document-trace dd{overflow-wrap:anywhere;margin:0}.signature-trace{background:#f4f7fb;border-radius:9px;flex-direction:column;gap:3px;padding:12px;display:flex}@media (width<=900px){.document-workspace-body{grid-template-columns:1fr}.pdf-viewer-panel iframe{height:70vh;min-height:460px}.required-admin-filters{grid-template-columns:1fr}}@media (width<=620px){.required-documents-header{height:auto;min-height:68px;padding:10px 16px}.required-documents-intro{padding-top:24px}.family-progress>div,.child-documents-title,.document-step{flex-direction:column;align-items:stretch}.contract-fields{grid-template-columns:1fr}.document-workspace-header{padding:10px 14px}.pdf-viewer-panel,.document-form-panel{padding:14px}.signature-canvas{height:160px}.modal-backdrop{padding:10px}}.assignment-status-stack{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.status-physical{color:#3730a3;background:#eef2ff}.status-manual{color:#12633f;background:#e8f7ef}.status-revoked,.status-error{color:#a32020;background:#feecec}.manual-access-panel{background:#f8fbff;border:1px solid #cbdbea;border-radius:12px;gap:16px;padding:18px;display:grid}.manual-access-heading{align-items:flex-start;gap:12px;display:flex}.manual-access-heading h3,.manual-access-heading p{margin:0}.manual-access-heading p{color:#52647b;margin-top:4px;line-height:1.45}.manual-access-icon{color:#12633f;background:#e6f5ed;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.manual-access-history{gap:12px;display:grid}.manual-access-entry{background:#fff;border:1px solid #d9e4ef;border-radius:10px;gap:12px;padding:14px;display:grid}.manual-access-entry.is-active{border-left:4px solid #25835d}.manual-access-entry.is-revoked{border-left:4px solid #b84141}.manual-access-entry-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.manual-access-entry dl{grid-template-columns:130px minmax(0,1fr);gap:7px 12px;margin:0;display:grid}.manual-access-entry dt{font-weight:700}.manual-access-entry dd{overflow-wrap:anywhere;margin:0}.manual-access-form{gap:12px;padding-top:4px;display:grid}.manual-access-form label{gap:6px;font-size:.88rem;font-weight:600;display:grid}.manual-access-form textarea{resize:vertical;width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #cbd5e2;border-radius:9px;padding:10px 11px}@media (width<=620px){.manual-access-heading,.manual-access-entry-head{flex-direction:column;align-items:stretch}.manual-access-entry dl{grid-template-columns:1fr;gap:3px}.manual-access-entry dd{margin-bottom:8px}}.blocking-page-shell{background:var(--page-background,#f4f7fb);place-items:center;min-height:100dvh;padding:1rem;display:grid}.blocking-page-card{background:var(--surface,#fff);text-align:center;border-radius:1rem;width:min(100%,38rem);padding:clamp(1.25rem,4vw,2.5rem);box-shadow:0 1rem 3rem #14233c24}.blocking-page-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}@media (width<=560px){.blocking-page-actions .btn{width:100%}}.communication-resource-list{gap:.65rem;margin-top:.65rem;display:grid}.communication-resource-item{border:1px solid var(--border,#dbe2ea);background:var(--surface-subtle,#f8fafc);border-radius:.7rem;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem;display:flex}.communication-resource-item>span{gap:.2rem;min-width:0;display:grid}.communication-resource-item small{overflow-wrap:anywhere;color:var(--text-muted,#53647b)}.communication-resource-list.is-compact{max-width:38rem}@media (width<=560px){.communication-resource-item{flex-direction:column;align-items:stretch}.communication-resource-item .btn,.communication-resource-item a.btn{justify-content:center;width:100%}}.course-card-shell{min-width:0;position:relative}.course-card-shell .course-card{min-height:100%}.course-card-with-follow-up{padding-bottom:2.35rem}.course-follow-up-anchor{z-index:12;justify-content:flex-end;align-items:flex-end;display:inline-flex;position:absolute;bottom:.48rem;right:.48rem}.course-follow-up-badge{color:#166534;white-space:nowrap;cursor:pointer;background:#f0fdf4f5;border:1px solid #1665345c;border-radius:999px;align-items:center;min-height:1.35rem;padding:.18rem .42rem;font-size:.64rem;font-weight:800;line-height:1;display:inline-flex}.course-follow-up-badge::-webkit-details-marker{display:none}.course-follow-up-badge::marker{content:""}.course-follow-up-badge:focus-visible{outline-offset:2px;outline:2px solid}.course-follow-up-badge-pending{color:#991b1b;cursor:default;background:#fee2e2f7;border-color:#b4231866}.course-follow-up-badge-action{cursor:pointer;font-family:inherit}.course-follow-up-popover{z-index:40;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(20rem,100vw - 2rem);color:var(--color-text);text-align:left;cursor:default;padding:.75rem;display:none;position:absolute;top:100%;right:0;box-shadow:0 14px 35px #0f172a33}.course-follow-up-anchor[open] .course-follow-up-popover{gap:.58rem;display:grid}.course-follow-up-popover>b{color:var(--color-text);font-size:.76rem}.course-follow-up-popover>span{color:var(--color-text-soft);white-space:normal;overflow-wrap:anywhere;gap:.12rem;font-size:.7rem;line-height:1.4;display:grid}.course-follow-up-popover>span>strong{color:var(--color-text);font-size:.68rem}.course-follow-up-history{gap:var(--space-3);display:grid}.course-follow-up-history-item{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);gap:.3rem;display:grid}.course-follow-up-history-item small{color:var(--color-text-muted)}.course-follow-up-history-item p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.dashboard-communication{margin-bottom:var(--space-5)}.dashboard-communication-link{color:inherit;gap:.35rem;padding:.25rem 0;display:grid}.dashboard-communication-link:hover strong{color:var(--color-primary-700);text-decoration:underline}tbody tr.communication-row-selected td{background:var(--color-primary-050);box-shadow:inset 0 2px 0 var(--color-primary-500), inset 0 -2px 0 var(--color-primary-500)}.course-due-homework{border-top:1px solid color-mix(in srgb, currentColor 25%, transparent);text-align:left;white-space:normal;overflow-wrap:anywhere;word-break:break-word;gap:.15rem;min-width:0;max-width:100%;margin-top:.35rem;padding-top:.35rem;font-size:clamp(.46rem,.38rem + .38vw,.72rem);line-height:1.25;display:grid}.course-due-homework>b,.course-due-homework>span{white-space:normal;overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}.course-due-homework>span:before{content:"• "}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (width<=74rem){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media (width<=58rem){.sidebar{transition:transform .18s;transform:translate(-102%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{z-index:30;background:#051a1e85;border:0;display:block;position:fixed;inset:0}.app-main{margin-left:0}.mobile-toggle{display:inline-grid}.topbar{padding-inline:var(--space-4)}.content{padding:var(--space-5)}.page-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:flex-start}.login-page{grid-template:"weekly-word""login-panel"minmax(0,1fr)/1fr}.login-panel{grid-area:login-panel;min-height:0;margin-inline:auto}.login-showcase{display:contents}.login-visual{display:none}}@media (width<=42rem){.content{padding:clamp(.35rem,2vw,.65rem)}.form-grid,.detail-list,.metric-grid,.metric-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-list-row{grid-template-columns:minmax(2.8rem,.72fr) minmax(0,1.28fr)}.header-actions .btn,.inline-actions .btn{flex:0 auto}.top-role{display:none}}@media (width<=48rem){html{min-width:0}html,body,#root,.app-shell,.app-main,.content{width:100%;max-width:100%}body,#root,.app-shell,.app-main,.content,.content>*,.section,.panel,.detail-card,.dashboard-panel,.metric-card,.form-field,.form-group,.filter-field,.toolbar>*,.page-header>*,.header-actions>*,.inline-actions>*{min-width:0}h1,h2,h3,p,a,button,label,span,strong,small,code,dd,dt{overflow-wrap:anywhere}.sidebar{width:min(18rem,100dvw - .75rem);padding:.8rem}.topbar{height:clamp(3rem, 14vw, var(--topbar-height));gap:.35rem;padding-inline:.45rem}.topbar>strong,.topbar .role-switcher-trigger strong{font-size:clamp(.68rem,3vw,.86rem)}.role-switcher-trigger{gap:.2rem;padding:.35rem}.page-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.45rem;margin-bottom:.65rem;display:grid}.page-header-copy{gap:.2rem}.page-header h1{font-size:clamp(1rem,5.2vw,1.35rem);line-height:1.15}.page-header p,.page-header .muted{font-size:clamp(.62rem,2.8vw,.76rem);line-height:1.35}.header-actions,.inline-actions,.table-actions,.form-actions,.modal-actions,.page-actions,.row-actions{gap:.25rem}.header-actions{justify-content:flex-end;max-width:47vw}.btn,.table-action{text-align:center;gap:.2rem;min-width:0;min-height:1.9rem;padding:.34rem .46rem;font-size:clamp(.58rem,2.5vw,.7rem);line-height:1.15}.btn svg,.table-action svg{flex:none;width:.85rem;height:.85rem}.icon-btn,.mobile-toggle{width:2rem;height:2rem}.section{border-radius:.6rem;margin-bottom:.65rem}.section-compact,.section-body,.dashboard-panel,.detail-card,.metric-card,.form-panel-inline{padding:clamp(.45rem,2.4vw,.75rem)}.section-head,.toolbar{gap:.4rem;min-height:2.6rem;padding:.45rem .55rem}.toolbar{flex-wrap:wrap}.form-panel form{gap:.65rem}.form-grid{gap:.55rem}.form-field,.form-group,.filter-field{gap:.22rem;font-size:clamp(.58rem,2.5vw,.7rem)}input,select,textarea{min-width:0;min-height:2.2rem;padding:.44rem .5rem;font-size:max(.75rem,16px)}textarea{min-height:5rem}.filter-bar,.attendance-filters,.required-admin-filters,.filter-grid,.checkbox-grid,.student-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.45rem;display:grid}.filter-field{min-width:0}.attendance-period-row,.attendance-search-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.attendance-period-row .period-filter,.attendance-period-row .filter-field,.attendance-search-row .filter-field,.student-toolbar select{min-width:0}.attendance-period-row .period-filter,.attendance-range-label,.filter-bar>.btn,.filter-bar>.inline-actions,.required-admin-filters>:last-child:nth-child(odd){grid-column:1/-1}.metric-grid,.metric-grid-3,.required-admin-summary,.attendance-detail-summary{gap:.45rem;margin-bottom:.65rem}.metric-card strong,.required-admin-summary .stat-card strong,.attendance-detail-summary strong{font-size:clamp(.95rem,5vw,1.25rem)}.metric-card span,.stat-card span{font-size:clamp(.56rem,2.7vw,.7rem)}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:.5rem}.dashboard-panel h2{margin-bottom:.45rem;font-size:clamp(.78rem,3.6vw,1rem)}.dashboard-row,.dashboard-row.has-action{grid-template-columns:auto minmax(0,1fr);gap:.4rem;padding:.42rem 0}.dashboard-row.has-action .dashboard-acknowledgement{grid-column:2}.dashboard-row b,.dashboard-row span,.dashboard-row small,.dashboard-acknowledgement{font-size:clamp(.56rem,2.6vw,.7rem)}.student-widget-clamp{-webkit-line-clamp:unset;display:block;overflow:visible}.student-widget-score,.student-widget-control-label,.required-parent-warning,.class-roster-preview-head strong,.class-roster-preview-documents button,.sidebar-user-copy>span{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;overflow:visible}.student-attendance-event-details{min-width:0}.detail-card-heading{gap:.5rem}.detail-grid,.student-summary-grid,.student-card-grid,.student-dashboard-columns,.student-profile-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.detail-list-row{gap:.3rem;padding:.42rem}.detail-list dt,.detail-list dd{font-size:clamp(.54rem,2.5vw,.7rem)}.table-wrap,.table-scroll,.required-admin-table,.secretary-course-attendance-modal .table-wrap{width:100%;max-width:100%;overflow:visible}table,.required-admin-table table,.secretary-course-attendance-modal table{table-layout:fixed;width:100%;min-width:0;max-width:100%}th,td,.required-admin-table th,.required-admin-table td{overflow-wrap:anywhere;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;vertical-align:top;min-width:0;padding:clamp(.1rem,.65vw,.22rem);font-size:clamp(.48rem,2.15vw,.62rem);line-height:1.18}th{letter-spacing:0}td input,td select,td textarea{min-height:1.65rem;font-size:inherit;border-radius:.25rem;padding:.12rem}td .btn,td .table-action,td button,.required-admin-table td .btn{width:100%;min-height:1.45rem;font-size:inherit;white-space:normal;padding:.16rem}td svg,th svg{width:.65rem;height:.65rem}.table-cell-wrap{min-width:0;max-width:none}.badge,.status-pill,.document-status{white-space:normal;overflow-wrap:anywhere;max-width:100%;padding:.12rem .2rem;font-size:clamp(.46rem,2vw,.58rem);line-height:1.15}.pagination{gap:.3rem;padding:.45rem}.secretary-billing-filters{align-items:stretch}.secretary-billing-filters>.filter-field{grid-column:1/-1}.secretary-billing-pagination{flex-wrap:wrap;justify-content:center}.tabs,.attendance-tabs{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:.12rem;width:100%;padding:.18rem;display:grid;overflow:visible}.tab,.attendance-tabs button{white-space:normal;min-width:0;padding:.35rem .2rem;font-size:clamp(.52rem,2.4vw,.66rem)}.planning-wrap{width:100%;max-width:100%;overflow:visible}.planning-grid{grid-template-columns:clamp(1.9rem, 10.5vw, 2.5rem) repeat(var(--planning-days), minmax(0, 1fr));width:100%;min-width:0}.planning-head,.time-cell,.day-cell{min-width:0;min-height:3.25rem;padding:clamp(.08rem,.65vw,.2rem)}.planning-head,.time-cell,.planning-head small,.planning-holiday-label{overflow-wrap:anywhere;font-size:clamp(.4rem,1.85vw,.56rem);line-height:1.1}.time-cell{writing-mode:horizontal-tb;word-break:break-all}.day-cell{gap:.14rem}.course-card{border-radius:.25rem;gap:.08rem;min-width:0;padding:clamp(.08rem,.7vw,.22rem)}.course-card strong,.course-card small,.course-card .course-state,.course-time-badge{overflow-wrap:anywhere;word-break:break-word;font-size:clamp(.4rem,1.9vw,.56rem);line-height:1.12}.course-time-badge{white-space:normal;padding:.06rem .12rem}.course-card-with-follow-up{padding-bottom:1.3rem}.course-follow-up-anchor{bottom:.1rem;right:.1rem}.course-follow-up-badge{white-space:normal;overflow-wrap:anywhere;max-width:100%;min-height:.9rem;padding:.08rem .12rem;font-size:clamp(.36rem,1.7vw,.5rem);line-height:1.05}.course-follow-up-popover{overscroll-behavior:contain;visibility:hidden;z-index:80;width:min(20rem,100vw - 1rem);max-height:calc(100dvh - 1rem);position:fixed;inset:auto;overflow-y:auto}.course-follow-up-popover[data-mobile-positioned=true]{visibility:visible}.attendance-agenda-days{grid-template-columns:repeat(6,minmax(0,1fr));gap:.2rem;overflow:visible}.assessment-agenda-toolbar{grid-template-columns:auto minmax(0,1fr) auto;gap:.35rem}.assessment-agenda-toolbar>div{order:initial}.assessment-agenda-day{grid-template-columns:minmax(4.25rem,.28fr) minmax(0,1fr);gap:.4rem;padding:.45rem}.assessment-agenda-event,.attendance-event-card{min-width:0;padding:.5rem}.attendance-agenda-day,.attendance-session-card{min-width:0;padding:.25rem}.attendance-agenda-day h2,.attendance-session-card h3,.attendance-session-card p,.attendance-session-card small,.attendance-session-card .btn{font-size:clamp(.44rem,2vw,.58rem);line-height:1.15}.attendance-row{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(3.5rem,.5fr);gap:.35rem;padding:.45rem}.modal-backdrop,.tutorial-backdrop,.birthday-celebration-backdrop{padding:.35rem}.attendance-drawer{gap:.65rem;width:100dvw;min-width:0;max-width:100dvw;padding:.65rem;overflow-x:clip}.modal-card,.modal-card-wide,.document-admin-modal,.document-admin-modal.wide,.secretary-course-attendance-modal,.tutorial-card,.birthday-celebration{width:calc(100dvw - .7rem);min-width:0;max-width:calc(100dvw - .7rem);max-height:calc(100dvh - .7rem);padding:clamp(.55rem,3vw,.9rem);overflow:clip auto}.autocomplete-results,.teacher-student-results,.role-switcher-menu{max-width:calc(100dvw - .8rem)}.profile-image-field,.person-with-avatar,.selected-student,.teacher-student-selected,.communication-resource-item,.birthday-card{gap:.45rem;min-width:0}.multi-checkbox-search,.selected-student,.student-selection-panel .toolbar,.autocomplete-results button,.secretary-course-attendance-modal .attendance-event-actions,.teacher-student-results button,.teacher-student-selected,.family-progress>div,.child-documents-title,.document-step,.manual-access-heading,.manual-access-entry-head,.communication-resource-item,.student-dashboard-alerts-head{flex-direction:row;align-items:center}.secretary-course-attendance-modal .attendance-event-actions .btn,.communication-resource-item .btn,.communication-resource-item a.btn,.blocking-page-actions .btn{width:auto}.student-dashboard-alerts-head{justify-content:space-between}.template-list>div{gap:.35rem;min-width:0}.template-list>div>div{min-width:0}.profile-avatar-large{width:4rem;height:4rem}iframe,video,canvas,img{max-width:100%}.document-workspace,.document-workspace-body,.pdf-viewer-panel,.document-form-panel{min-width:0;max-width:100dvw}.document-workspace-body{grid-template-columns:1fr}.contract-fields,.required-admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.document-trace,.manual-access-entry dl{grid-template-columns:minmax(4.5rem,.65fr) minmax(0,1.35fr)}.login-panel{width:100%;min-width:0;padding:clamp(1rem,7vw,2rem)}.login-brand{margin-bottom:clamp(2rem,12vh,4.5rem)}}@media (width<=22rem){.content{padding-inline:.25rem}.page-header{grid-template-columns:minmax(0,1fr) minmax(4.5rem,auto)}.dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}.btn{padding-inline:.3rem}}
