.student-page{gap:20px;width:min(1180px,100%);margin:0 auto;display:grid}.student-page-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.student-page-header h1{color:var(--color-navy);font-size:clamp(1.5rem,3vw,2rem)}.student-page-header p{color:var(--color-text-muted);margin-top:6px}.student-welcome,.student-identity{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:18px;padding:28px}.student-welcome p,.student-identity p{color:var(--color-text-muted)}.student-welcome h1,.student-identity h2{color:var(--color-navy);margin:5px 0 12px}.student-identity{text-align:center}.student-badges{justify-content:inherit;flex-wrap:wrap;gap:8px;display:flex}.student-badges span{background:var(--color-primary-soft);color:var(--color-navy);border-radius:7px;padding:5px 10px;font-size:.75rem;font-weight:700}.student-card{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);border-radius:16px;overflow:hidden}.student-card__header{border-bottom:1px solid var(--color-border);background:var(--color-surface-header);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.student-card__header h2{color:var(--color-navy);font-size:1rem}.student-card__header span{color:var(--color-text-muted);font-size:.8rem;font-weight:700}.student-card__body{padding:20px}.student-state{text-align:center;color:var(--color-text-muted);justify-items:center;gap:14px;padding:44px 20px;display:grid}.student-state--error{border:1px solid var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger);border-radius:12px}.student-spinner{border:3px solid var(--color-border-strong);border-top-color:var(--color-navy);border-radius:50%;width:34px;height:34px;animation:.75s linear infinite student-spin}.student-spinner--small{border-width:2px;border-color:var(--color-control-on-primary);border-top-color:var(--color-surface);width:17px;height:17px}@keyframes student-spin{to{transform:rotate(360deg)}}.student-alert{border:1px solid;border-radius:10px;padding:13px 16px;line-height:1.45}.student-alert--error{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-strong)}.student-alert--success{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success-strong)}.student-alert--warning{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning-strong)}.student-alert--info{border-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info-strong)}.student-date-badge{background:var(--color-navy);color:var(--color-surface);border-radius:14px;justify-self:center;justify-items:center;padding:10px 24px;display:grid}.student-date-badge span{color:var(--color-text-on-primary-muted);letter-spacing:.5px;text-transform:uppercase;font-size:.7rem}.student-date-badge strong{margin-top:2px;font-size:1.1rem}.student-form{gap:20px;display:grid}.student-form fieldset{border:0}.student-form legend,.student-field label{color:var(--color-text);margin-bottom:9px;font-size:.875rem;font-weight:700}.student-slot-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;display:grid}.student-slot-grid legend{grid-column:1/-1}.student-slot{border:2px solid var(--color-border);cursor:pointer;border-radius:11px;gap:5px;padding:14px;display:grid}.student-slot input{opacity:0;position:absolute}.student-slot span,.student-slot small{color:var(--color-text-muted)}.student-slot--selected{border-color:var(--color-primary);background:var(--color-warning-soft)}.student-slot--disabled{cursor:not-allowed;opacity:.55}.student-form__chapter{grid-template-columns:2fr 1fr;gap:16px;display:grid}.student-field{align-content:start;display:grid}.student-field select,.student-field input{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);font:inherit;border-radius:9px;padding:9px 11px}.student-field small{color:var(--color-text-muted);margin-top:6px}.student-checkbox{cursor:pointer;align-items:center;gap:9px;width:fit-content;font-weight:700;display:flex}.student-checkbox input{width:18px;height:18px;accent-color:var(--color-primary)}.student-booking-step{border-bottom:1px solid var(--color-border);gap:16px;padding-bottom:20px;display:grid}.student-booking-step__heading{align-items:flex-start;gap:11px;display:flex}.student-booking-step__heading>span{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-subtle);width:28px;height:28px;color:var(--color-primary);flex:0 0 28px;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:inline-flex}.student-booking-step__heading h3{color:var(--color-text);font-size:.92rem;line-height:1.35}.student-booking-step__heading p{color:var(--color-text-muted);margin-top:2px;font-size:.76rem}.student-booking-confirmation{z-index:2;background:var(--color-surface);justify-content:space-between;align-items:center;gap:16px;padding:14px 0 2px;display:flex;position:sticky;bottom:0}.student-booking-confirmation>div{gap:2px;min-width:0;display:grid}.student-booking-confirmation>div strong{font-size:.86rem}.student-booking-confirmation>div span{color:var(--color-text-muted);font-size:.75rem}.student-button{cursor:pointer;width:fit-content;min-height:40px;font:inherit;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:8px 15px;font-size:.82rem;font-weight:700;display:inline-flex}.student-button:disabled{cursor:wait;opacity:.65}.student-button--primary{background:var(--color-primary);min-width:130px;color:var(--color-surface)}.student-button--secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-navy)}.student-button--danger{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.student-bookings{margin:0;padding:0;list-style:none}.student-bookings li{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.student-bookings li:last-child{border-bottom:0}.student-bookings li>div{gap:3px;display:grid}.student-bookings span{color:var(--color-text-muted);font-size:.82rem}.student-grade-list{gap:12px;display:grid}.student-grade-card{border:1px solid var(--color-border);background:var(--color-background);border-radius:12px;padding:17px}.student-grade-card--cancelled{opacity:.62}.student-grade-card header{color:var(--color-navy);justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.student-grade-card header span,.student-grade-card__meta{color:var(--color-text-muted);font-size:.8rem}.student-grade-card>p{margin:8px 0}.student-grade-card dl{grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0;display:grid}.student-grade-card dt{color:var(--color-text-muted);letter-spacing:.4px;text-transform:uppercase;margin-bottom:5px;font-size:.68rem;font-weight:700}.student-grade-card dd{margin:0;font-weight:700}.student-grade-card blockquote{background:var(--color-surface);color:var(--color-text-body);border-radius:8px;padding:10px;font-size:.82rem}.student-cancelled,.student-grade,.student-attendance{border-radius:6px;padding:4px 9px;font-size:.72rem;font-weight:800;display:inline-block}.student-cancelled,.student-grade--retest,.student-grade--pending,.student-attendance--absent{background:var(--color-danger-soft);color:var(--color-danger-strong)}.student-grade--a,.student-grade--a-plus,.student-attendance--present{background:var(--color-success-soft);color:var(--color-success-strong)}.student-grade--b,.student-grade--c,.student-attendance--no-class{background:var(--color-warning-soft);color:var(--color-warning-strong)}.student-stat-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.student-stat-grid>div{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:14px;gap:5px;padding:20px;display:grid}.student-stat-grid strong{color:var(--color-navy);font-size:1.65rem}.student-stat-grid span{color:var(--color-text-muted);font-size:.8rem}.student-progress{gap:16px;display:grid}.student-progress__heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.student-progress__heading h2{color:var(--color-navy);font-size:1.2rem}.student-progress__heading p{color:var(--color-text-muted);margin-top:4px;font-size:.82rem}.student-progress__heading>strong{color:var(--color-primary);font-size:1.6rem}.student-progress__bar{background:var(--color-progress-track);border-radius:999px;height:10px;overflow:hidden}.student-progress__bar span{border-radius:inherit;background:var(--color-primary);height:100%;display:block}.student-stat-grid--progress{grid-template-columns:repeat(4,1fr)}.student-progress__details{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.student-progress__details .student-card{height:100%}.student-progress__details .student-state{padding:18px 8px}.student-progress__details p{color:var(--color-text);margin:0;line-height:1.5}.student-progress__syllabus{gap:10px;margin:0;padding:0;list-style:none;display:grid}.student-progress__syllabus li{border-bottom:1px solid var(--color-border);gap:2px;padding-bottom:9px;display:grid}.student-progress__syllabus li:last-child{border-bottom:0;padding-bottom:0}.student-progress__syllabus span,.student-progress__syllabus small{color:var(--color-text-muted)}.student-progress__summary{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;display:grid}.student-progress__summary div{text-align:center}.student-progress__summary dt{color:var(--color-text-muted);font-size:.72rem}.student-progress__summary dd{color:var(--color-navy);margin:5px 0 0;font-size:1.3rem;font-weight:800}.student-table-wrap{overflow-x:auto}.student-table{border-collapse:collapse;width:100%}.student-table th,.student-table td{border-bottom:1px solid var(--color-border);text-align:left;padding:13px 10px}.student-table th{color:var(--color-text-muted);letter-spacing:.4px;text-transform:uppercase;font-size:.72rem}.student-button:focus-visible,.student-field :focus-visible,.student-checkbox input:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.student-slot:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=640px){.student-page-header{flex-direction:column;align-items:start}.student-stat-grid,.student-form__chapter,.student-progress__details,.student-progress__summary{grid-template-columns:1fr}.student-card__body,.student-welcome,.student-identity{padding:16px}.student-bookings li{flex-direction:column;align-items:start}.student-grade-card dl{grid-template-columns:1fr}.student-grade-card header{flex-direction:column}.student-booking-step{gap:14px;padding-bottom:16px}.student-booking-confirmation{flex-direction:column;align-items:stretch}.student-booking-confirmation .student-button{width:100%;min-height:44px}}@media (prefers-reduced-motion:reduce){.student-spinner{animation-duration:1.5s}}.student-page--results{width:min(1320px,100%)}.student-page--results .student-card__body{padding:0}.student-results-toolbar{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);align-items:end;gap:10px;padding:12px 16px;display:flex}.student-results-toolbar label{min-width:190px;color:var(--color-text-muted);letter-spacing:.25px;text-transform:uppercase;gap:4px;font-size:.7rem;font-weight:800;display:grid}.student-results-toolbar select{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text);font:inherit;text-transform:none;border-radius:7px;padding:6px 9px;font-size:.8rem}.student-results-table-wrap{overflow-x:auto}.student-results-table{border-collapse:collapse;width:100%;min-width:900px}.student-results-table th,.student-results-table td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:9px 11px}.student-results-table thead th{background:var(--color-surface-muted);color:var(--color-text-muted);letter-spacing:.35px;text-transform:uppercase;font-size:.68rem}.student-results-table tbody tr:not(.student-result-details):hover{background:var(--color-surface-subtle)}.student-results-table td{font-size:.78rem}.student-results-table td strong,.student-results-table td>span{display:block}.student-results-table td strong{color:var(--color-navy)}.student-results-table td>span:not(.student-grade):not(.student-cancelled){color:var(--color-text-muted);margin-top:2px;font-size:.68rem}.student-result-row--cancelled{opacity:.62}.student-results-table .student-cancelled{width:fit-content;margin-top:4px}.student-remarks-toggle{color:var(--color-text-muted);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;gap:5px;padding:5px 7px;font-size:.7rem;font-weight:700;display:inline-flex}.student-remarks-toggle--available{color:var(--color-navy)}.student-remarks-toggle--available span{color:var(--color-primary)}.student-remarks-toggle:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.student-result-details td{background:var(--color-surface-subtle);padding:12px 16px}.student-progress{gap:18px;padding:20px}.student-progress__heading{align-items:center}.student-progress__heading p{max-width:66ch;line-height:1.5}.student-stat-grid{gap:14px}.student-form{gap:22px}.student-form legend,.student-field label{margin-bottom:7px;font-size:.8rem;font-weight:600;line-height:1.4}.student-field input,.student-field select,.student-field textarea{min-height:42px;padding:9px 11px}.student-bookings{gap:0}.student-bookings li{gap:16px;min-height:64px;padding:14px 0}.student-table tbody tr:last-child>*,.student-results-table tbody tr:last-child>*{border-bottom:0}.student-results-toolbar{flex-wrap:wrap}@media (width<=900px){.student-stat-grid--progress{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.student-progress{gap:16px;padding:16px}.student-stat-grid--progress{grid-template-columns:1fr}}.student-result-details dl{gap:36px;margin:0;display:flex}.student-result-details dt{color:var(--color-text-muted);text-transform:uppercase;font-size:.65rem;font-weight:800}.student-result-details dd{margin:4px 0 0;font-size:.8rem}@media (width<=640px){.student-page--results .student-card__body{padding:0}.student-results-toolbar{flex-direction:column;align-items:stretch}.student-results-toolbar label,.student-results-toolbar .student-button{width:100%;min-width:0}.student-results-table{min-width:0}.student-results-table thead{display:none}.student-results-table tbody,.student-results-table tr,.student-results-table td{width:100%;display:block}.student-results-table tbody tr:not(.student-result-details){border-bottom:1px solid var(--color-border);padding:10px 14px}.student-results-table tbody tr:not(.student-result-details) td{border:0;grid-template-columns:110px minmax(0,1fr);align-items:center;padding:6px 0;display:grid}.student-results-table tbody tr:not(.student-result-details) td:before{content:attr(data-label);color:var(--color-text-muted);text-transform:uppercase;font-size:.64rem;font-weight:800}.student-result-details td{display:block}.student-result-details dl{flex-direction:column;gap:12px}}@media (width>=641px){.student-results-toolbar{gap:12px;min-height:64px;padding:14px 16px}.student-results-toolbar label{gap:6px;font-weight:650}.student-results-toolbar select{min-height:40px;padding:8px 10px}.student-results-table th,.student-results-table td{height:48px;padding:10px 12px}.student-results-table thead th{height:44px}}.student-journey-page .student-page-header{margin-bottom:2px}.student-journey__progress{border-left:3px solid var(--color-accent);box-shadow:var(--shadow-xs)}.student-journey__activity,.student-journey__result{min-width:0;display:grid}.student-learning-record{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:16px;margin:0;display:grid}.student-learning-record>div{border-left:1px solid var(--color-accent);align-content:start;gap:4px;min-width:0;padding-left:12px;display:grid}.student-learning-record dt{color:var(--color-text-muted);letter-spacing:.065em;text-transform:uppercase;font-size:.66rem;font-weight:700}.student-learning-record dd{color:var(--color-text);margin:0;font-size:.9rem;font-weight:650;line-height:1.45}.student-learning-record__comment{border-radius:var(--radius-md);background:var(--color-surface-subtle);border:0;grid-column:1/-1;padding:13px 14px}.student-journey__guidance{gap:7px;display:grid}.student-journey__guidance strong{color:var(--color-text);font-size:.95rem}.student-journey__guidance p{max-width:68ch;color:var(--color-text-body);margin:0;line-height:1.6}.student-dashboard .dashboard-quick-actions{opacity:.94}.student-dashboard .dashboard-action-grid{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}.student-dashboard .dashboard-action-card{min-height:112px;padding:16px 18px}.student-booking-page .student-date-badge{border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-lg);background:var(--color-surface-subtle);color:var(--color-text);justify-self:stretch;justify-items:start;padding:14px 18px}.student-booking-page .student-date-badge span{color:var(--color-text-muted)}.student-booking-page .student-form__chapter{border-left:2px solid var(--color-accent);background:var(--color-surface-subtle);padding:16px}.student-booking-page .student-slot-grid{border-top:1px solid var(--color-border);padding-top:20px}.student-booking-page .student-slot{background:var(--color-input);border-width:1px;align-content:center;min-height:92px}.student-booking-page .student-slot--selected{border-color:var(--color-accent);background:var(--color-accent-soft)}.student-booking-page .student-form>.student-button--primary{justify-self:end}#root .student-history-page .student-results-table{border-collapse:separate;border-spacing:0 8px}#root .student-history-page .student-results-table tbody tr:not(.student-result-details){background:var(--color-surface-subtle)}#root .student-history-page .student-results-table tbody tr:not(.student-result-details) td{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}#root .student-history-page .student-results-table tbody tr:not(.student-result-details) td:first-child{border-left:2px solid var(--color-accent)}#root .student-history-page .student-result-details td{border:1px solid var(--color-border);background:var(--color-surface-header);padding:16px 18px}.student-attendance-page .student-stat-grid{grid-template-columns:minmax(180px,1.2fr) repeat(2,minmax(140px,1fr))}.student-attendance-page__primary-stat{border-left:3px solid var(--color-accent)}.student-attendance-page__primary-stat strong{font-size:1.7rem}@media (width<=640px){.student-learning-record,.student-attendance-page .student-stat-grid{grid-template-columns:minmax(0,1fr)}.student-booking-page .student-form__chapter{padding:14px}.student-booking-page .student-form>.student-button--primary{justify-self:stretch;width:100%}#root .student-history-page .student-results-table{border-spacing:0}#root .student-history-page .student-results-table tbody tr:not(.student-result-details) td{border-top:0;border-bottom:0}#root .student-history-page .student-results-table tbody tr:not(.student-result-details) td:first-child{border-left:0}}.login-page{--login-primary:var(--color-primary);--login-navy:var(--color-primary);--login-navy-light:var(--color-primary-hover);--login-background:var(--color-background);--login-surface:var(--color-surface);--login-text:var(--color-text);--login-body:var(--color-text-body);--login-muted:var(--color-text-muted);--login-border:var(--color-border);background:var(--login-background);min-height:100vh;color:var(--login-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-page *,.login-page :before,.login-page :after{box-sizing:border-box}.login-page__header{z-index:1;border-bottom:1px solid var(--color-border);background:var(--color-header);justify-content:center;align-items:center;min-height:72px;padding:16px 24px;display:flex;position:relative}.login-page__header:after{background:var(--color-border);content:"";height:1px;position:absolute;bottom:0;left:0;right:0}.login-page__brand{color:var(--color-text);text-align:center;font-size:1.0625rem;font-weight:650;line-height:1.3}.login-page__main{justify-content:center;align-items:center;min-height:calc(100vh - 72px);padding:40px 20px 20px;display:flex;position:relative;overflow:hidden}.login-page__main:before,.login-page__main:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.login-page__main:before{background:var(--color-primary-soft);opacity:.45;width:500px;height:500px;top:-220px;right:-220px}.login-page__main:after{background:var(--color-accent-soft);opacity:.38;width:420px;height:420px;bottom:-180px;left:-180px}.login-page__content{z-index:1;justify-items:center;width:min(100%,460px);display:grid;position:relative}.login-page__logo{object-fit:contain;width:auto;max-width:min(220px,72vw);height:88px;margin-bottom:20px;display:block}.login-page__card,.login-page__contact{border:1px solid var(--login-border);background:var(--login-surface);box-shadow:var(--shadow-md)}.login-page__card{border-radius:20px;width:100%;padding:32px}.login-page__eyebrow{color:var(--login-primary);letter-spacing:1.5px;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:12px;font-size:.6875rem;font-weight:700;display:flex}.login-page__eyebrow:before{background:var(--color-primary);content:"";border-radius:1px;width:20px;height:2px}.login-page__title{color:var(--login-text);letter-spacing:-.5px;margin:0 0 8px;font-size:1.4rem;font-weight:650;line-height:1.25}.login-page__description{color:var(--login-body);margin:0 0 24px;font-size:.875rem;line-height:1.55}.login-form__field{margin-bottom:16px;position:relative}.login-form__label{color:var(--login-body);margin:0 0 6px 2px;font-size:.75rem;font-weight:650;display:block}.login-form__input{border:1px solid var(--color-border);background:var(--color-input);width:100%;min-height:48px;color:var(--login-text);font:inherit;border-radius:12px;outline:none;font-size:.875rem;font-weight:500;transition:border-color .16s,background-color .16s,box-shadow .16s}.login-form__input--with-leading-icon,.login-form__input--password{padding:13px 68px 13px 46px}.login-form__input::placeholder{color:var(--color-text-muted);font-weight:400}.login-form__input:focus{border-color:var(--login-navy);background:var(--color-surface);box-shadow:var(--focus-ring)}.login-form__input[aria-invalid=true]{border-color:var(--color-danger)}.login-form__input-icon{z-index:1;min-width:18px;color:var(--color-text-muted);letter-spacing:-.4px;pointer-events:none;font-size:.6875rem;font-weight:800;position:absolute;top:49px;left:16px;transform:translateY(-50%)}.login-form__password-toggle{color:var(--color-text-muted);cursor:pointer;font:inherit;background:0 0;border:0;font-size:.75rem;font-weight:600;position:absolute;top:49px;right:14px;transform:translateY(-50%)}.login-form__password-toggle:hover,.login-form__password-toggle:focus-visible{color:var(--login-navy)}.login-form__password-toggle:focus-visible{outline:2px solid var(--login-navy);outline-offset:2px;border-radius:4px}.login-form__field-error{color:var(--color-danger);margin:6px 2px 0;font-size:.75rem;line-height:1.35}.login-form__alert{border:1px solid var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger);border-radius:10px;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:.8125rem;font-weight:500;line-height:1.5;display:flex}.login-form__alert>:first-child{border:1px solid;border-radius:50%;flex:0 0 18px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.6875rem;font-weight:800;display:inline-flex}.login-form__submit{background:var(--login-navy);width:100%;min-height:50px;color:var(--color-surface);cursor:pointer;font:inherit;letter-spacing:.3px;border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;margin-top:4px;padding:14px;font-size:.875rem;font-weight:700;transition:background-color .16s,box-shadow .16s,transform .16s;display:flex}.login-form__submit:hover:not(:disabled){background:var(--login-navy-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.login-form__submit:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.login-form__submit:disabled{cursor:not-allowed;opacity:.7}.login-form__spinner{border:2px solid var(--color-control-on-primary);border-top-color:var(--color-surface);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite login-spin}.login-page__hint{color:var(--login-muted);text-align:center;margin:20px 0 0;font-size:.75rem;line-height:1.4}.login-page__hint strong{color:var(--login-body);font-weight:600}.login-page__contact{border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:16px;margin-top:20px;padding:18px;display:grid}.login-page__contact-icon{background:var(--login-navy);width:44px;height:44px;color:var(--color-surface);border-radius:12px;justify-content:center;align-items:center;font-size:1.125rem;display:flex}.login-page__contact-title{color:var(--login-text);margin:0 0 4px;font-size:.875rem;font-weight:700;line-height:1.35}.login-page__contact-text{color:var(--login-muted);margin:0;font-size:.8125rem;line-height:1.5}.login-page__footer{color:var(--login-muted);letter-spacing:.3px;text-align:center;padding:16px 20px;font-size:.6875rem;line-height:1.5}.login-page__footer span{color:var(--login-primary);font-weight:600}.login-page__footer a{color:var(--login-primary);text-underline-offset:2px;font-weight:600}.login-form__sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes login-spin{to{transform:rotate(360deg)}}@media (width<=768px){.login-page__main{align-items:flex-start;padding-top:32px}.login-page__card{padding:32px}}@media (width<=480px){.login-page__header{min-height:60px;padding:12px 16px}.login-page__brand{font-size:.9375rem}.login-page__main{min-height:calc(100vh - 60px);padding:24px 14px 16px}.login-page__card{border-radius:16px;padding:24px 20px}.login-page__logo{height:72px;margin-bottom:16px}.login-page__title{font-size:1.4rem}.login-page__description{margin-bottom:24px}.login-page__contact{grid-template-columns:auto 1fr;gap:12px;padding:16px}}@media (prefers-reduced-motion:reduce){.login-form__input,.login-form__submit{transition:none}.login-form__spinner{animation-duration:1.4s}}.profile-page{gap:var(--space-6);width:min(960px,100%);margin:0 auto;display:grid}.profile-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs);overflow:hidden}.profile-card>header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-accent);background:var(--color-surface-header);display:flex}.profile-card>header>div{gap:3px;display:grid}.profile-card h2{color:var(--color-text);font-size:var(--font-size-lg)}.profile-card header p{color:var(--color-text-muted);font-size:var(--font-size-sm)}.profile-details{gap:var(--space-5);padding:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.profile-details--personal{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.profile-details>div{min-width:0}.profile-details dt{color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;font-weight:700}.profile-details dd{overflow-wrap:anywhere;color:var(--color-text);margin:4px 0 0;font-weight:650}.profile-card__body{padding:var(--space-5)}.profile-placeholder{color:var(--color-text-muted);font-size:var(--font-size-sm)}.profile-future-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-button{border-radius:var(--radius-sm);cursor:pointer;min-height:38px;font:inherit;font-size:var(--font-size-sm);border:1px solid #0000;justify-content:center;align-items:center;padding:8px 14px;font-weight:700;display:inline-flex}.profile-button--primary{background:var(--color-primary);color:var(--color-text-on-primary)}.profile-button--secondary{border-color:var(--color-accent);color:var(--color-text);background:0 0}.profile-button:disabled{cursor:wait;opacity:.58}.profile-alert{border-radius:var(--radius-md);border:1px solid;padding:13px 16px}.profile-alert--success{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success-strong)}.profile-alert--error{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-strong)}.profile-state{min-height:220px;color:var(--color-text-muted);place-items:center;display:grid}.profile-dialog-backdrop{z-index:1400;padding:var(--space-4);background:var(--color-overlay);place-items:center;display:grid;position:fixed;inset:0}.profile-dialog{width:min(560px,100%);max-height:calc(100dvh - (2 * var(--space-4)));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.profile-dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-accent);background:var(--color-surface-header);display:flex}.profile-dialog__header>div{gap:var(--space-2);display:grid}.profile-dialog__header h2{color:var(--color-text);font-size:1.15rem;line-height:1.3}.profile-dialog__header p{color:var(--color-text-body);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.profile-dialog__close{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);width:38px;height:38px;color:var(--color-text);cursor:pointer;flex:0 0 38px;place-items:center;font-size:1.35rem;display:grid}.profile-dialog__form{flex-direction:column;min-height:0;display:flex}.profile-dialog__body{gap:var(--space-4);padding:var(--space-5);display:grid;overflow-y:auto}.profile-field{color:var(--color-text);font-size:var(--font-size-sm);gap:7px;font-weight:650;display:grid}.profile-field input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-input);width:100%;min-height:42px;color:var(--color-text);font:inherit;padding:9px 11px}.profile-field small{color:var(--color-danger-strong);font-weight:600}.profile-dialog__footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-subtle);display:flex}.profile-button:focus-visible,.profile-dialog__close:focus-visible,.profile-field input:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=640px){.profile-page{gap:var(--space-4)}.profile-card>header{padding:var(--space-4);flex-direction:column;align-items:flex-start}.profile-card>header .profile-button{width:100%}.profile-details,.profile-future-grid{grid-template-columns:minmax(0,1fr)}.profile-details,.profile-card__body{padding:var(--space-4)}.profile-dialog-backdrop{padding:var(--space-3);align-items:end}.profile-dialog{max-height:calc(100dvh - (2 * var(--space-3)))}.profile-dialog__header,.profile-dialog__body{padding:var(--space-4)}.profile-dialog__footer{padding:var(--space-4);flex-direction:column-reverse}.profile-dialog__footer .profile-button{width:100%;min-height:44px}}.app-shell{--app-header-height:68px;--app-sidebar-width:264px;background:var(--color-background);min-height:100vh;color:var(--color-text)}.app-shell__skip-link{z-index:1200;background:var(--color-surface);color:var(--color-navy);border-radius:8px;padding:10px 14px;font-weight:700;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.app-shell__skip-link:focus{outline:3px solid var(--color-focus);outline-offset:2px;transform:translateY(0)}.app-header{z-index:1000;height:var(--app-header-height);border-bottom:1px solid var(--color-accent);background:var(--color-header);box-shadow:none;color:var(--color-text);justify-content:space-between;align-items:center;gap:20px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.app-header__brand-group,.app-header__actions,.app-user-menu__trigger{align-items:center;display:flex}.app-header__brand-group{gap:12px;min-width:0}.app-header__logo{object-fit:contain;flex:none;width:auto;max-width:132px;height:52px;display:block}.app-header__title{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.app-header__menu-toggle{border:1px solid var(--color-border);background:var(--color-sidebar);width:42px;height:42px;color:var(--color-primary);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;font-size:1.25rem;display:none}.app-header__actions{flex:none;gap:12px}.app-header__logout{border:1px solid var(--color-primary);background:var(--color-primary);min-height:38px;color:var(--color-text-on-primary);cursor:pointer;font:inherit;border-radius:9px;padding:8px 15px;font-size:.8125rem;font-weight:700}.app-header__logout:hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover);color:var(--color-text-on-primary)}.app-user-menu{position:relative}.app-user-menu__trigger{border:1px solid var(--color-border);background:var(--color-surface);min-height:44px;color:var(--color-text);cursor:pointer;font:inherit;text-align:left;border-radius:10px;gap:10px;padding:4px 9px 4px 5px}.app-user-menu__avatar{background:var(--color-primary);width:34px;height:34px;color:var(--color-text-on-primary);border-radius:9px;justify-content:center;align-items:center;font-size:.875rem;font-weight:800;display:inline-flex}.app-user-menu__summary{min-width:100px;display:grid}.app-user-menu__name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.8125rem;font-weight:700;overflow:hidden}.app-user-menu__role{color:var(--color-text-muted);letter-spacing:.4px;font-size:.6875rem}.app-user-menu__chevron{color:var(--color-secondary)}.app-user-menu__panel{z-index:1100;border:1px solid var(--color-border);background:var(--color-surface);width:260px;box-shadow:var(--shadow-lg);color:var(--color-text);border-radius:12px;padding:16px;position:absolute;top:calc(100% + 10px);right:0}.app-user-menu__panel-name{border-bottom:1px solid var(--color-border);overflow-wrap:anywhere;margin-bottom:12px;padding-bottom:12px;font-size:.9375rem;font-weight:800}.app-user-menu__panel-row{color:var(--color-text-muted);justify-content:space-between;gap:12px;padding:5px 0;font-size:.75rem;display:flex}.app-user-menu__panel-row strong{min-width:0;color:var(--color-text-body);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-user-menu__settings{border-top:1px solid var(--color-border);color:var(--color-primary);margin-top:12px;padding-top:12px;font-size:.8125rem;font-weight:700;text-decoration:none;display:inline-flex}.app-user-menu__settings:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.app-sidebar{z-index:900;top:var(--app-header-height);width:var(--app-sidebar-width);border-right:1px solid var(--color-border);background:var(--color-sidebar);color:var(--color-text);padding:24px 14px;position:fixed;bottom:0;left:0;overflow-y:auto}.app-sidebar__heading{color:var(--color-text-muted);letter-spacing:1.4px;text-transform:uppercase;margin:0 12px 12px;font-size:.6875rem;font-weight:700}.app-navigation{gap:4px;margin:0;padding:0;list-style:none;display:grid}.app-navigation__link{min-height:44px;color:var(--color-text-body);border-radius:9px;align-items:center;gap:12px;padding:10px 12px;font-size:.8125rem;font-weight:600;text-decoration:none;display:flex;position:relative}.app-navigation__link:hover{background:var(--color-sidebar-hover);color:var(--color-text)}.app-navigation__link--active{background:var(--color-sidebar-active);color:var(--color-text);font-weight:650}.app-navigation__link--active:before{border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:var(--color-accent);content:"";width:4px;position:absolute;top:8px;bottom:8px;left:0}.app-navigation__marker{border:1px solid;border-radius:50%;flex:0 0 7px;width:7px;height:7px}.app-navigation__link--active .app-navigation__marker{border-color:var(--color-accent);background:var(--color-accent)}.app-content{min-height:100vh;margin-left:var(--app-sidebar-width);padding:calc(var(--app-header-height) + 32px) 32px 32px;background:var(--color-background);overflow:auto}.app-content>*{min-width:0}.app-content__loading{min-height:220px;color:var(--color-text-muted);place-items:center;font-size:.875rem;display:grid}.app-shell__backdrop{display:none}.app-header button:focus-visible,.app-user-menu button:focus-visible,.app-navigation__link:focus-visible,.app-shell__backdrop:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media (width<=1024px){.app-header__menu-toggle{display:inline-flex}.app-sidebar{z-index:1050;transition:transform .18s;transform:translate(-100%)}.app-sidebar[data-open=true]{transform:translate(0)}.app-content{margin-left:0;padding-left:24px;padding-right:24px}.app-shell[data-sidebar-open=true] .app-shell__backdrop{z-index:1040;top:var(--app-header-height);background:var(--color-mobile-overlay);cursor:pointer;border:0;width:100%;display:block;position:fixed;bottom:0;left:0;right:0}}@media (width<=640px){.app-shell{--app-header-height:64px;--app-sidebar-width:min(82vw, 288px)}.app-header{gap:10px;padding:0 12px}.app-header__brand-group{gap:8px}.app-header__logo{width:auto;max-width:104px;height:44px}.app-header__title,.app-user-menu__summary,.app-user-menu__chevron{display:none}.app-user-menu__trigger{background:0 0;border:0;min-height:40px;padding:2px}.app-user-menu__panel{width:min(280px,100vw - 24px);right:-56px}.app-user-menu__panel-row{flex-direction:column;align-items:start;gap:2px}.app-user-menu__panel-row strong{white-space:normal;max-width:100%}.app-header__logout{padding:7px 10px;font-size:.75rem}.app-content{padding:calc(var(--app-header-height) + 22px) 16px 24px}}@media (prefers-reduced-motion:reduce){.app-sidebar{transition:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#f2e6cf;--color-surface:#f8f1e3;--color-surface-subtle:#f5ead5;--color-surface-muted:#efe2c8;--color-surface-header:#ead9bb;--color-input:#fbf3e3;--color-header:#f4e9d5;--color-sidebar:#efe2c8;--color-surface-96:#f8f1e3f5;--color-surface-94:#f8f1e3f0;--color-surface-88:#f8f1e3e0;--color-primary:#465a87;--color-primary-hover:#536b9c;--color-primary-soft:#e2dfdc;--color-row-hover:#a8743214;--color-secondary:#796b59;--color-secondary-hover:#675a4b;--color-accent:#a87432;--color-accent-hover:#936329;--color-accent-strong:#76501f;--color-accent-soft:#dfc59a;--color-success:#72835a;--color-success-strong:#52623f;--color-success-soft:#e2e6d5;--color-warning:#a87432;--color-warning-strong:#725022;--color-warning-soft:#eee0c3;--color-danger:#a45a4e;--color-danger-strong:#7d4038;--color-danger-soft:#eedbd4;--color-info:#64749a;--color-info-strong:#465a87;--color-info-soft:#dedfe3;--color-text:#2e261d;--color-text-body:#493e33;--color-text-muted:#5e5244;--color-text-on-primary:#fff;--color-text-on-accent:#2e261d;--color-text-on-primary-muted:#ffffffb8;--color-control-on-primary:#ffffff73;--color-border:#c9ae86;--color-border-strong:#ad9067;--color-focus:#465a87;--focus-ring:0 0 0 3px #465a8733;--color-progress-track:#dfcfb1;--shadow-xs:0 1px 2px #46301906;--shadow-sm:0 2px 5px #46301909;--shadow-md:0 5px 14px #4630190b;--shadow-lg:0 10px 24px #46301911;--color-overlay:#2f3b4d57;--color-mobile-overlay:#2f3b4d4d;--dashboard-overlay:#f2e6cf33;--radius-sm:7px;--radius-md:10px;--radius-lg:12px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--font-size-xs:.6875rem;--font-size-sm:.75rem;--font-size-md:.8125rem;--font-size-lg:.95rem;--line-height-compact:1.25;--line-height-normal:1.5;--line-height-relaxed:1.6;--color-primary-dark:var(--color-primary-hover);--color-primary-light:var(--color-secondary);--color-navy:var(--color-primary);--color-navy-light:var(--color-primary-hover);--color-sidebar-hover:#a8743217;--color-sidebar-active:var(--color-accent-soft)}#root :is(.admin-page,.student-page,.teacher-page){gap:var(--space-6)}#root :is(.admin-page,.student-page,.teacher-page,.enrollment-page),#root :is(.admin-card,.student-card,.teacher-card,.enrollment-card),#root :is(.admin-card__body,.student-card__body,.teacher-card__body,.enrollment-card__body,.enrollment-card__details),#root :is(.admin-page-header,.student-page-header,.teacher-page-header)>*{min-width:0}#root :is(.admin-card,.student-card,.teacher-card,.enrollment-card){height:100%}#root :is(.admin-card__body,.student-card__body,.teacher-card__body,.enrollment-card__body){align-content:start}#root :is(.admin-page,.student-page,.teacher-page,.enrollment-page) :is(p,dd,td,th,strong,span,small,label){overflow-wrap:anywhere}#root :is(.admin-page-header,.student-page-header,.teacher-page-header){align-items:flex-start;min-height:42px}#root :is(.admin-page-header,.student-page-header,.teacher-page-header)>div{gap:var(--space-1);display:grid}#root :is(.admin-page-header,.student-page-header,.teacher-page-header)>:last-child:not(div){flex:none}#root :is(.admin-page-header,.student-page-header,.teacher-page-header) h1,#root .dashboard-heading h1{font-size:clamp(1.4rem,2.4vw,1.75rem);font-weight:750;line-height:var(--line-height-compact);padding-bottom:10px;position:relative}#root :is(.admin-page-header,.student-page-header,.teacher-page-header) h1:after,#root .dashboard-heading h1:after{background:var(--color-accent);content:"";width:46px;height:2px;position:absolute;bottom:2px;left:0}#root :is(.admin-page-header,.student-page-header,.teacher-page-header) p{max-width:66ch;line-height:var(--line-height-normal);margin-top:3px}#root :is(.dashboard-section-heading,.student-dashboard__section-heading) h2,#root .enrollment-section>h2,#root .teacher-summary>h2{width:fit-content;color:var(--color-text);letter-spacing:.025em;text-transform:none;padding-bottom:8px;font-weight:700;position:relative}#root :is(.dashboard-section-heading,.student-dashboard__section-heading) h2:after,#root .enrollment-section>h2:after,#root .teacher-summary>h2:after{background:var(--color-accent);content:"";width:34px;height:1px;position:absolute;bottom:1px;left:0}#root :is(.admin-card,.student-card,.teacher-card,.enrollment-card,.current-enrollment,.enrollment-request-card,.student-progress,.admin-modal,.login-page__card,.login-page__contact,.dashboard-action-card){border-color:var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}#root :is(.admin-card>header,.student-card>header,.student-card__header,.teacher-card>header,.enrollment-card>header,.enrollment-card__header,.admin-modal__header){min-height:52px;padding:13px clamp(var(--space-4), 2vw, var(--space-5));border-bottom:1px solid var(--color-accent);background:var(--color-surface-header);align-items:center}#root :is(.admin-card>header,.student-card>header,.student-card__header,.teacher-card>header,.enrollment-card>header,.enrollment-card__header) :is(h2,h3){color:var(--color-text);font-size:var(--font-size-lg);letter-spacing:.015em;font-weight:700}#root :is(.admin-card__body,.student-card__body,.teacher-card__body,.enrollment-card__body,.enrollment-card__details){padding:clamp(var(--space-4), 2vw, 22px)}#root :is(.enrollment-card__action,.admin-modal__footer){border-top:1px solid var(--color-border);background:var(--color-surface-subtle)}#root :is(.admin-stats,.student-stat-grid,.teacher-stats,.student-dashboard__stats)>div{min-height:88px;padding:var(--space-4) 14px;border:1px solid var(--color-border);border-top:2px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-surface-subtle);box-shadow:none;align-content:center;gap:7px;position:relative}#root :is(.admin-stats,.student-stat-grid,.teacher-stats,.student-dashboard__stats)>div>strong{color:var(--color-primary);font-size:1.45rem;font-weight:700;line-height:1.05}#root :is(.admin-stats,.student-stat-grid,.teacher-stats,.student-dashboard__stats)>div>:is(span,small){color:var(--color-text-muted);font-size:var(--font-size-sm);letter-spacing:.025em;font-weight:600}#root :is(.admin-button,.student-button,.teacher-button){border-radius:var(--radius-sm);letter-spacing:.01em;min-height:36px;padding:7px 13px;font-size:.77rem;font-weight:650}#root :is(.admin-button--primary,.student-button--primary,.teacher-button--primary){background:var(--color-primary);color:var(--color-text-on-primary)}#root :is(.admin-button--primary,.student-button--primary,.teacher-button--primary):hover:not(:disabled){background:var(--color-primary-hover)}#root :is(.admin-button--danger,.student-button--danger,.teacher-button--danger){border-color:var(--color-danger);color:var(--color-danger-strong);background:0 0}#root :is(.admin-button--danger,.student-button--danger,.teacher-button--danger):hover:not(:disabled){background:var(--color-danger-soft)}#root :is(.admin-button,.student-button,.teacher-button):disabled{filter:saturate(.65);opacity:.52}#root .login-form__submit{border-radius:var(--radius-md);min-height:42px;color:var(--color-text-on-primary);padding:10px 14px;font-size:.8rem;font-weight:650}#root .login-form__submit:hover:not(:disabled){box-shadow:none;transform:none}#root :is(.admin-button,.student-button,.teacher-button):hover:not(:disabled){box-shadow:none}#root :is(.admin-button--secondary,.student-button--secondary,.teacher-button--secondary){border-color:var(--color-accent);color:var(--color-text);background:0 0}#root :is(.admin-button--secondary,.student-button--secondary,.teacher-button--secondary):hover:not(:disabled){border-color:var(--color-accent-hover);background:var(--color-accent-soft);color:var(--color-text)}#root :is(.admin-field,.student-field,.teacher-search,.teacher-grade-form label,.teacher-grading-toolbar label){color:var(--color-text);gap:7px;font-weight:650;line-height:1.35}#root :is(.admin-field,.student-field,.teacher-search)>:is(input,select,textarea):hover:not(:disabled),#root .admin-table :is(input,select,textarea):hover:not(:disabled){border-color:var(--color-secondary)}#root :is(.admin-badge,.enrollment-badge,.enrollment-indicator,.teacher-badge,.student-attendance){vertical-align:middle;justify-content:center;align-items:center;min-height:24px;padding-block:4px;font-weight:650;line-height:1.25}#root :is(.admin-page,.student-page,.teacher-page) :is(input,select,textarea):focus-visible{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:0}#root :is(.admin-alert,.student-alert,.teacher-alert){border-radius:var(--radius-md);box-shadow:var(--shadow-xs);line-height:var(--line-height-normal)}#root .login-form__input{border-color:var(--color-border);background:var(--color-input);color:var(--color-text)}#root .enrollment-program-option{border-color:var(--color-border);background:var(--color-input)}#root .enrollment-program-option:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}#root :is(.admin-field,.student-field,.teacher-search,.teacher-grade-form label,.teacher-grading-toolbar label)>:is(input,select,textarea),#root :is(.admin-table,.teacher-page) :is(input,select,textarea){border-color:var(--color-border);background:var(--color-input);color:var(--color-text)}#root :is(.admin-table,.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table){border-collapse:separate;border-spacing:0;width:100%}#root :is(.admin-table-wrap,.student-table-wrap,.student-results-table-wrap,.teacher-table-wrap,.teacher-grading-table-wrap){border-radius:var(--radius-sm);overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}#root :is(.admin-table,.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) :is(th,td){vertical-align:middle}#root :is(.admin-table,.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) :is(th,td):last-child{padding-right:var(--space-4)}#root :is(.student-results-toolbar,.teacher-grading-toolbar){gap:var(--space-3);min-height:64px;padding:14px var(--space-4)}#root :is(.student-results-toolbar,.teacher-grading-toolbar) label{gap:6px;font-weight:650}#root :is(.admin-filter-grid,.admin-form-grid){gap:14px}#root :is(.admin-row-actions,.admin-volunteer-filter-actions){align-items:center;gap:var(--space-2)}#root :is(.admin-filter-grid,.admin-form-grid,.student-form-grid,.teacher-grading-toolbar)>*{min-width:0}#root :is(.admin-field,.student-field,.teacher-search,.teacher-grade-form label,.teacher-grading-toolbar label)>:is(input,select){min-height:40px}#root :is(.admin-field,.student-field,.teacher-search,.teacher-grade-form label,.teacher-grading-toolbar label)>textarea{resize:vertical;min-height:96px}#root .admin-pagination{min-height:48px;padding-top:var(--space-2);align-items:center}#root .admin-table thead th{border-width:0 0 1px;border-color:var(--color-accent);background:var(--color-surface-header);height:44px;color:var(--color-text);letter-spacing:.075em;padding:13px 12px;font-size:.67rem;font-weight:700}#root .admin-table tbody :is(th,td){border-width:0 0 1px;border-color:var(--color-border);height:48px;padding:14px 12px}#root .admin-table tbody tr:nth-child(2n){background:var(--color-surface-subtle)}#root .admin-table tbody tr:hover{background:var(--color-row-hover)}@media (width>=641px){#root :is(.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) thead th{border-width:0 0 1px;border-color:var(--color-accent);background:var(--color-surface-header);height:44px;color:var(--color-text);letter-spacing:.075em;padding:13px 12px;font-size:.67rem;font-weight:700}#root :is(.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) tbody :is(th,td){border-width:0 0 1px;border-color:var(--color-border);height:48px;padding:14px 12px}#root :is(.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) tbody tr:nth-child(2n){background:var(--color-surface-subtle)}#root :is(.student-table,.student-results-table,.teacher-attendance-table,.teacher-grading-table) tbody tr:hover{background:var(--color-row-hover)}}#root .app-navigation{gap:7px}#root .app-navigation__link{min-height:40px;padding:9px 14px;font-weight:600}#root .app-navigation__link--active{color:var(--color-text);background:0 0;font-weight:750}#root :is(.admin-state,.student-state,.teacher-state){align-content:center;gap:var(--space-3);min-height:152px;padding:clamp(var(--space-6), 3vw, 30px) clamp(var(--space-4), 2vw, var(--space-5));color:var(--color-text-muted);line-height:var(--line-height-relaxed)}#root :is(.admin-state,.student-state,.teacher-state)>p{max-width:56ch;margin:0 auto}#root :is(.admin-spinner,.student-spinner,.teacher-spinner){border-width:2px;border-color:var(--color-border);border-top-color:var(--color-accent);width:28px;height:28px}#root .admin-modal__header{padding:15px 20px}#root .admin-modal__body{gap:var(--space-5);padding:clamp(var(--space-4), 2vw, 22px)}#root .admin-modal__footer{min-height:58px;padding:var(--space-3) clamp(var(--space-4), 2vw, var(--space-5));align-items:center;gap:9px}#root .admin-modal__footer>*{flex:none}#root .admin-modal__close:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}#root .enrollment-timeline{gap:var(--space-5)}#root .enrollment-timeline__step:before{border-color:var(--color-accent);background:var(--color-surface-header);box-shadow:none}#root .enrollment-timeline__step:not(:last-child):after{background:var(--color-border)}#root .enrollment-timeline__step--current:before{background:var(--color-accent)}@media (width<=900px){#root :is(.admin-page,.student-page,.teacher-page){gap:var(--space-5)}}@media (width<=640px){#root :is(.admin-page,.student-page,.teacher-page){gap:var(--space-4)}#root :is(.admin-page-header,.student-page-header,.teacher-page-header){min-height:0}#root :is(.student-results-toolbar,.teacher-grading-toolbar){min-height:0;padding:14px}#root :is(.admin-page-header,.student-page-header,.teacher-page-header){align-items:stretch;gap:var(--space-3);flex-direction:column}#root :is(.admin-page-header,.student-page-header,.teacher-page-header)>:last-child:not(div){width:100%}#root .admin-modal-backdrop{padding:var(--space-3);align-items:end}#root .admin-modal{width:100%;max-height:calc(100dvh - (2 * var(--space-3)))}#root .admin-modal__footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){#root :is(.admin-spinner,.student-spinner,.teacher-spinner){animation-duration:1.5s}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--color-background);width:100%;height:100%;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{line-height:1.5;overflow-x:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s,opacity .15s}::selection{background:var(--color-primary-soft);color:var(--color-text)}
