[hidden]{display:none!important}:root{--ink: #20242b;--muted: #68737b;--line: #e8e7e2;--paper: #f7f7f4;--white: #fff;--coral: #ee715e;--coral-soft: #fff0ed;--blue: #526edb;--blue-soft: #edf0ff;--yellow: #f4c84e;--yellow-soft:#fff8dd;--green: #48a879;--green-soft: #e9f7f0;--navy: #252b38;--academy: #254c46;--academy-soft:#eaf2ef;--brass: #c5a35c;--focus-ring: 0 0 0 3px rgba(37,76,70,.22);--shadow: 0 14px 35px rgba(37,43,56,.06);--radius: 8px}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;line-height:1.5}button,select,input,textarea{font:inherit}button{cursor:pointer;border:0;background:none}input,select,textarea{border:1px solid #deded9;border-radius:6px;padding:9px 11px;width:100%;outline:0;background:var(--white);color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:var(--academy);box-shadow:var(--focus-ring)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--brass);outline-offset:3px}textarea{resize:vertical}h1,h2,h3,p{margin:0}a{color:var(--blue)}.mt8{margin-top:8px}.mt16{margin-top:16px}.ml-auto{margin-left:auto}.muted-cell{color:var(--muted)}.green-text{color:var(--green);font-weight:700}.text-danger{color:var(--coral)}hidden,[hidden]{display:none!important}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#999e9f;margin:0 0 8px}.btn-primary{display:inline-block;background:var(--academy);color:#fff;border-radius:6px;padding:11px 16px;font-weight:700;font-size:13px;width:100%;text-align:center;transition:opacity .15s}.btn-primary:hover{opacity:.88}.outline-button{background:var(--white);border:1px solid #deded9;border-radius:6px;color:#555c60;font-size:11px;font-weight:600;padding:10px 14px;width:100%;text-align:left;display:block}.outline-button:hover{border-color:var(--blue);color:var(--blue)}.text-button{color:var(--coral);font-weight:600;font-size:12px;padding:0}.text-button:hover{text-decoration:underline}.round-button{color:#a2a6a7;letter-spacing:2px;font-size:16px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.sm-avatar{width:28px;height:28px;font-size:10px}.coral,.avatar-coral{background:#d18375}.blue,.avatar-blue{background:#7185d6}.green,.avatar-green{background:#62a780}.yellow,.avatar-yellow{background:#c9a543}.student-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:9px;color:#fff;font-weight:700;flex-shrink:0}.status{font-size:10px;border-radius:12px;padding:4px 9px;font-weight:700;white-space:nowrap}.promoted{background:var(--green-soft);color:#2e7d52}.review{background:var(--yellow-soft);color:#a17d0d}.repeat{background:var(--coral-soft);color:#cf6555}.promotion-badge{padding:6px 10px;border-radius:12px;font-size:11px;font-weight:700}.read-only-badge{background:#f1f2f2;color:#6f7778;border-radius:12px;padding:5px 9px;font-size:10px;font-weight:700;white-space:nowrap}.check-badge{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-weight:700;flex-shrink:0}.warn-badge{background:var(--coral-soft);color:var(--coral)}.score{font-weight:700}.subject-chip{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}.chip-coral{background:var(--coral)}.chip-blue{background:var(--blue)}.chip-green{background:var(--green)}.chip-yellow{background:#c9a300}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-group label{font-size:11px;font-weight:600;color:#6a7070}.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.form-row .form-group{flex:1;min-width:140px;margin-bottom:0}.form-row.tight{gap:8px}.form-group-action{flex:0 0 auto}.select-inline{border:1px solid #deded9;border-radius:6px;padding:8px 11px;background:var(--white);font-size:12px;font-weight:600;outline:0;width:auto}.form-feedback{font-size:11px}.form-feedback.error{color:var(--coral)}.form-feedback.success{color:var(--green)}.form-feedback.pending{color:#596675}.gate-checkin-form .form-row>label,.pickup-pin-panel .form-row>label{display:flex;flex:1 1 220px;flex-direction:column;gap:6px;min-width:min(100%,210px);color:var(--ink);font-size:12px;font-weight:700}.gate-checkin-form .gate-actor-toggle{display:flex;flex:1 1 320px;flex-wrap:wrap;gap:8px;min-width:min(100%,300px);margin:0;padding:0;border:0}.gate-actor-toggle legend{width:100%;margin-bottom:6px;font-size:12px;font-weight:700}.gate-actor-toggle label{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);cursor:pointer;font-size:12px}.gate-actor-toggle label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}.gate-actor-toggle input{width:auto;margin:0;accent-color:var(--blue)}.gate-checkin-form h3{color:var(--ink);font-size:15px}.gate-checkin-form .gate-submit{min-height:52px;font-size:15px}.gate-checkin-form button:disabled,.pickup-pin-panel button:disabled{cursor:wait;opacity:.65}.gate-checkin-form #gate-selected-student{min-height:18px;font-size:11px;font-weight:400}.gate-checkin-form #gate-caregiver-fields{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.pickup-pin-panel .form-row{align-items:flex-end}.pickup-pin-panel .form-row>button{flex:1 1 200px;min-height:42px}.gate-checkin-form .form-feedback{min-height:17px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:var(--navy);color:#fff;padding:12px 22px;border-radius:8px;font-size:13px;font-weight:600;z-index:999;box-shadow:0 8px 24px #0000002e;animation:fadeup .2s ease}.toast-error{background:var(--coral)}@keyframes fadeup{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toggle-row{display:flex;align-items:center;gap:10px}.toggle-btn{background:#f1f2f2;border-radius:6px;padding:7px 13px;font-size:11px;font-weight:700;border:1px solid var(--line)}.toggle-pill{padding:7px 16px;border-radius:20px;font-size:11px;font-weight:700;background:#f1f2f2;color:var(--muted);border:1px solid var(--line);transition:.2s}.toggle-pill.on{background:var(--green-soft);color:var(--green);border-color:var(--green)}.open-label{color:var(--green);font-weight:700;font-size:12px}.closed-label{color:var(--muted);font-size:12px}.login-screen{min-height:100vh;display:flex}.login-card{width:min(480px,100%);padding:clamp(32px,5vw,64px) clamp(24px,5vw,56px);background:var(--white);display:flex;flex-direction:column;justify-content:center;box-shadow:4px 0 30px #252b380d}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:42px}.login-logo{width:40px;height:40px;border-radius:10px;background:var(--academy);color:#fff;display:grid;place-items:center;font-family:IBM Plex Sans,sans-serif;font-size:22px;font-weight:700;box-shadow:inset 0 0 0 1px #fff3,0 5px 14px #254c4633}.login-brand strong{display:block;font-family:IBM Plex Sans,sans-serif;font-size:17px}.login-brand span{display:block;font-size:10px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.login-title{font:700 clamp(28px,4vw,36px)/1.1 "IBM Plex Sans",sans-serif;letter-spacing:-1.5px;margin-bottom:8px}.login-sub{color:var(--muted);margin-bottom:32px}.login-btn{margin-top:8px}.login-btn:disabled{opacity:.55;cursor:not-allowed}.login-error{color:var(--coral);font-size:12px;margin:4px 0}.login-status{font-size:12px;margin:4px 0}.login-help-row{display:flex;justify-content:flex-end;margin:-4px 0 10px}.login-help-link{padding:4px 0;background:transparent;color:var(--blue);font-size:12px;font-weight:600}.login-help-link:hover{text-decoration:underline}.auth-recovery-overlay[hidden]{display:none}.auth-recovery-form{display:flex;flex-direction:column;min-height:0}.password-wrap{position:relative}.password-wrap input{padding-right:40px}.toggle-pw{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--muted);line-height:1}.demo-section{margin-top:32px}.demo-label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin-bottom:10px}.demo-note{margin:-4px 0 12px;color:var(--muted);font-size:11px;line-height:1.45}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.demo-btn{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 8px;font-size:11px;font-weight:600;color:var(--ink);text-align:center;transition:.15s}.demo-btn:hover{background:var(--blue-soft);border-color:var(--blue);color:var(--blue)}.demo-mode-banner{padding:9px 14px;background:var(--yellow-soft);color:#765b13;border-bottom:1px solid #eadba4;font-size:12px;font-weight:600}.login-visual{flex:1;background:radial-gradient(circle at 75% 22%,rgba(197,163,92,.18),transparent 30%),linear-gradient(145deg,#252b38,#254c46);display:flex;align-items:center;justify-content:center;padding:48px}.login-visual-inner{max-width:380px}.lv-stat{margin-bottom:32px}.lv-stat strong{display:block;font:700 42px/1 IBM Plex Sans,sans-serif;color:#d5b875;letter-spacing:-1.5px}.lv-stat span{color:#8a93a6;font-size:13px;margin-top:4px;display:block}.lv-quote{color:#6a7588;font-size:13px;line-height:1.6;border-top:1px solid #333d4e;padding-top:24px;margin-top:8px;font-style:italic}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--navy);color:#eef0f5;width:240px;flex-shrink:0;position:fixed;inset:0 auto 0 0;height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#566174 transparent;padding:28px 16px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 10px;font-family:IBM Plex Sans,sans-serif;font-size:18px;letter-spacing:-.6px}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--academy);color:#fff;display:grid;place-items:center;font-size:18px;box-shadow:inset 0 0 0 1px #ffffff2e,0 2px 8px #00000024}.brand strong{display:block;line-height:15px}.brand span{font-family:DM Sans;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#9ea6b8}.school-year{margin:32px 10px 24px;color:#9ea6b8;font-size:11px;display:flex;align-items:center;gap:8px}.pulse,.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #48a87924}.nav-label{font-size:10px;color:#aeb6c5;text-transform:uppercase;letter-spacing:1.4px;margin:18px 10px 7px}.nav-group:first-child .nav-label{margin-top:0}.secondary-label{margin-top:24px}.nav,.sidebar-footer{flex-shrink:0}.nav-item{width:100%;background:transparent;color:#9ea6b8;text-align:left;border-radius:7px;padding:10px 12px;display:flex;align-items:center;gap:12px;margin:2px 0;font-size:13px;transition:.15s}.nav-item:hover,.nav-item.active{background:#333b4c;color:#fff}.nav-icon{width:18px;text-align:center;font-size:12px;font-weight:700;color:#aeb6c5}.nav-icon{display:grid;place-items:center;flex:0 0 18px;height:18px}.nav-icon svg{width:17px;height:17px}.nav-item.active .nav-icon{color:#d5b875}.nav-item.active{background:#ffffff17;box-shadow:inset 3px 0 var(--brass)}.sidebar-footer{margin-top:auto}.user-row{display:flex;align-items:center;gap:9px;border-top:1px solid #394150;padding:16px 5px 0}.user-row strong{display:block;font-size:11px}.user-row small{color:#8f98aa;font-size:10px;margin-top:2px;display:block}.more{margin-left:auto;color:#8f98aa;font-size:14px}.logout-btn{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 9px;border:1px solid #485265;border-radius:7px;color:#c0c7d3;font-size:10px;font-weight:650;white-space:nowrap}.logout-btn svg{width:15px;height:15px}.logout-btn:hover{border-color:#d59a91;color:#f2b2a8;background:#ffffff0d}.logout-btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.main-content{flex:1;min-width:0;margin-left:240px;display:flex;flex-direction:column}.topbar{height:66px;border-bottom:1px solid var(--line);background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:0 clamp(20px,4vw,52px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.crumb{display:flex;gap:10px;align-items:center;color:#a2a5a8;font-size:13px}.crumb b{font-weight:400;color:#d2d1cb}.crumb strong{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:18px}.icon-button{position:relative;color:#747b84;font-size:18px}.icon-button i{position:absolute;top:1px;right:0;width:6px;height:6px;border-radius:50%;background:var(--coral)}.topbar-user{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.mobile-menu{display:none;font-size:20px;color:var(--ink);margin-right:8px}.page-wrap{max-width:1400px;margin:0 auto;padding:36px clamp(20px,4vw,52px) 60px;width:100%}.welcome-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:16px}.welcome-row h1{font:700 clamp(34px,3.7vw,46px)/1.06 "IBM Plex Sans",sans-serif;letter-spacing:-1.5px;margin:0}.subcopy{color:var(--muted);margin-top:8px}.term-badge{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--line);padding:9px 14px;border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dashboard-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.stat-top{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:12px;color:#68737b}.stat-icon{width:26px;height:26px;border-radius:7px;background:var(--coral-soft);color:var(--coral);display:grid;place-items:center;font-size:11px;font-weight:700}.accent-blue .stat-icon{background:var(--blue-soft);color:var(--blue)}.accent-yellow .stat-icon{background:var(--yellow-soft);color:#c3940f}.accent-green .stat-icon{background:var(--green-soft);color:var(--green)}.accent-teal .stat-icon{background:#e8f4f1;color:#287b70}.admin-dashboard-metrics .stat-card{padding:16px 17px;min-width:0}.admin-dashboard-metrics .stat-label{font-size:11px}.admin-dashboard-metrics .stat-icon{width:30px;height:30px;border-radius:8px}.admin-dashboard-metrics .stat-icon svg{width:17px;height:17px}.admin-dashboard-metrics .stat-card>strong{font-size:27px;margin:15px 0 6px;font-variant-numeric:tabular-nums}.admin-dashboard-metrics .stat-trend{font-size:10px;font-weight:500}.stat-card>strong{font:700 28px/1 IBM Plex Sans,sans-serif;display:block;margin:12px 0 7px;letter-spacing:-1px}.stat-trend{font-size:11px;color:var(--green);font-weight:700}.stat-trend span{color:#a2a5a6;font-weight:400;margin-left:4px}.stat-trend.up{color:var(--green)}.stat-trend.down{color:var(--coral)}.stat-trend.neutral{color:var(--ink)}.student-stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:17px 19px}.student-stat span,.student-stat small{display:block;color:#929898;font-size:11px}.student-stat strong{display:block;font:700 26px/1 IBM Plex Sans,sans-serif;letter-spacing:-1px;margin:9px 0 5px}.student-stat small{color:#6f7778}.coral-stat strong{color:var(--coral)}.green-stat strong{color:var(--green)}.yellow-stat strong{color:#9a7200}.blue-stat strong{color:var(--blue)}.panel{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:22px 24px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel h2{font:700 21px/1.12 IBM Plex Sans,sans-serif;letter-spacing:-.6px;margin:0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:18px;margin-bottom:18px}.admin-analytics-grid{grid-template-columns:minmax(0,1.8fr) minmax(285px,.9fr);align-items:stretch;gap:14px;margin-bottom:14px}.admin-analytics-grid .panel{min-width:0;padding:21px 22px}.admin-attendance-panel .panel-heading{align-items:center}.admin-attendance-panel .panel-heading .subcopy{font-size:11px;margin-top:4px}.admin-attendance-chart{min-width:0;overflow-x:auto}.admin-chart-legend{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:7px 0 2px;font-size:11px;color:var(--muted)}.admin-chart-legend>span{display:inline-flex;align-items:center;gap:8px}.admin-chart-legend i{width:8px;height:8px;border-radius:50%;background:#428b82}.admin-chart-legend>strong{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}.admin-chart-legend small{margin-left:4px;color:var(--muted);font-size:10px;font-weight:500}.admin-attendance-svg{display:block;width:100%;height:222px;overflow:visible}.admin-chart-gridline line{stroke:#e9ece9;stroke-width:1}.admin-chart-gridline text{fill:#7a8585;font:10px DM Sans,sans-serif}.admin-chart-period-label{fill:#6b7777;font:10px DM Sans,sans-serif}.admin-chart-area{fill:url(#admin-attendance-fill)}.admin-chart-line{fill:none;stroke:#287b70;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.admin-chart-marker{fill:#fff;stroke:#287b70;stroke-width:2.5}.admin-class-performance{display:flex;flex-direction:column;gap:17px}.admin-class-row{min-width:0}.admin-class-row-top,.admin-class-row-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-class-row-top{color:var(--ink);font-size:12px}.admin-class-row-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-class-average{font-variant-numeric:tabular-nums;font-weight:700}.admin-class-track{height:5px;overflow:hidden;border-radius:4px;background:#edf0ee;margin:8px 0 6px}.admin-class-track span{display:block;height:100%;border-radius:inherit;background:#438b82}.admin-class-row-meta{color:var(--muted);font-size:10px}.admin-class-row-meta .status{font-size:9px;padding:3px 7px}.admin-chart-empty{color:var(--muted);font-size:12px;padding:16px 0}.admin-chart-empty-state{min-height:178px;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted)}.admin-chart-empty-state strong{display:block;color:var(--ink);font-size:12px}.admin-chart-empty-state p{margin-top:4px;font-size:11px}.admin-chart-empty-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#e8f4f1;color:#287b70}.admin-chart-empty-mark svg{width:22px;height:22px}.admin-operations-panel{display:flex;flex-direction:column;gap:22px}.admin-operations-section+.admin-operations-section{border-top:1px solid var(--line);padding-top:19px}.admin-operations-section .timeline{margin-top:14px}.admin-operations-section .timeline-item{margin-bottom:15px}.lower-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:18px}.role-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:18px}.student-grid-top,.student-grid-bottom{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,1fr);gap:18px;margin-bottom:18px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}th{text-align:left;color:#a0a4a4;font-size:10px;font-weight:600;border-bottom:1px solid var(--line);padding:0 12px 10px 0}td{border-bottom:1px solid #f1f1ed;padding:11px 12px 11px 0}tr:last-child td{border-bottom:0}.student{display:flex;align-items:center;gap:8px;font-weight:600}.admin-student-cell{min-width:190px}.admin-student-cell>span:not(.student-avatar){overflow:hidden;text-overflow:ellipsis}.admin-student-cell .row-menu-wrap{flex:0 0 auto;margin-left:auto}.table-actions{display:flex;gap:8px;align-items:center}.search{border:1px solid #e4e4de;border-radius:6px;display:flex;align-items:center;padding:0 8px;color:#9b9f9f}.search input{border:0;padding:8px 4px;width:130px;font-size:11px;outline:0}.role-table-head,.role-table-row{display:grid;grid-template-columns:1.8fr .9fr 1fr 28px;align-items:center;gap:12px}.role-table-head{color:#9b9f9f;font-size:10px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:10px}.role-table-row{padding:12px 0;border-bottom:1px solid #f0f0ec;font-size:12px}.role-table-row:last-child{border-bottom:0}.timeline{margin-top:16px}.timeline-item{display:flex;gap:13px;margin-bottom:20px;position:relative}.timeline-item:not(:last-child):after{content:"";position:absolute;left:16px;top:32px;width:1px;height:22px;background:#e6e6e0}.timeline-item time{font:700 16px/13px IBM Plex Sans,sans-serif;text-align:center;color:var(--coral);width:32px;flex-shrink:0}.timeline-item time small{font:700 8px/1 DM Sans,sans-serif;display:block;letter-spacing:1px;margin-top:3px}.timeline-item strong,.timeline-item span{display:block}.timeline-item strong{font-size:12px}.timeline-item span{font-size:10px;color:#9b9f9f;margin-top:3px}.upload-toggles{display:flex;flex-direction:column;gap:14px;margin-top:18px}.upload-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--paper);border-radius:7px}.upload-toggle-row strong{display:block;font-size:12px}.upload-toggle-row small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.support-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #f0f0ec}.support-item strong,.support-item small{display:block}.support-item strong{font-size:12px}.support-item small{font-size:10px;color:var(--muted);margin-top:3px}.support-item>span:last-child{margin-left:auto;color:var(--coral)}.support-icon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex-shrink:0;font-weight:700}.role-muted{font-size:11px;color:#999f9f;line-height:1.5;margin:14px 0 4px}.role-welcome{align-items:center}.feedback-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px}.feedback-card{display:flex;flex-direction:column;gap:10px}.feedback-student{display:flex;align-items:center;gap:10px}.feedback-student strong,.feedback-student small{display:block}.feedback-student strong{font-size:13px}.feedback-student small{font-size:10px;color:var(--muted)}.feedback-textarea{border:1px solid var(--line);border-radius:7px;padding:10px 12px;font-size:12px;line-height:1.55;background:var(--paper);resize:vertical}.upload-zone{border:2px dashed #d0d3d0;border-radius:8px;text-align:center;padding:28px 18px;background:#fcfcfa}.upload-symbol{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:var(--coral-soft);color:var(--coral);font-size:20px}.upload-zone strong,.upload-zone small{display:block}.upload-zone strong{font-size:13px}.upload-zone small{font-size:10px;color:var(--muted);margin:6px 0 14px}.upload-zone .outline-button{width:auto;display:inline-block;margin:0}.upload-helper{display:flex;gap:14px;color:var(--muted);font-size:10px;flex-wrap:wrap}.teacher-assignment{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #f0f0ec;padding:13px 0}.teacher-assignment strong,.teacher-assignment small{display:block}.teacher-assignment strong{font-size:12px}.teacher-assignment small{font-size:10px;color:var(--muted);margin-top:3px}.teacher-assignment time{font-size:10px;color:var(--muted);white-space:nowrap}.dept-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin-bottom:14px}.dept-card:last-child{margin-bottom:0}.dept-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dept-card-header strong{font-size:14px;font-weight:700}.dept-subjects{display:flex;flex-direction:column;gap:0}.dept-subject-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e8e8e4}.dept-subject-row:first-child{border-top:0;padding-top:0}.dept-sub-info{flex:1;min-width:0}.dept-sub-info strong{display:block;font-size:12px}.dept-sub-info small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.subject-results{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;padding:4px 0}.subject-results div{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;font-size:12px}.subject-results b{font-size:12px}.subject-results i{grid-column:1/-1;height:5px;background:#f0efeb;border-radius:5px;overflow:hidden}.subject-results em{display:block;height:100%;background:var(--green);border-radius:5px}.promotion-circle{width:120px;height:120px;border-radius:50%;margin:20px auto 18px;background:conic-gradient(var(--green) 0 100%,#e8f4ed 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 12px #fff}.promotion-circle strong{font:700 26px/1 IBM Plex Sans,sans-serif}.promotion-circle span{font-size:10px;color:#9a9f9f;margin-top:3px}.requirement-list>div{display:flex;align-items:center;gap:8px;border-top:1px solid #f0f0ec;padding:9px 0;font-size:11px}.requirement-list b{margin-left:auto}.requirement-check{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-size:10px;flex-shrink:0}.req-fail{background:var(--coral-soft);color:var(--coral)}.assignment-list{display:flex;flex-direction:column}.assignment-item{display:flex;align-items:center;gap:10px;border-top:1px solid #f0f0ec;padding:11px 0}.assignment-item:first-child{border-top:0}.assignment-type{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff}.assignment-item strong,.assignment-item small{display:block}.assignment-item strong{font-size:12px}.assignment-item small{font-size:10px;color:var(--muted);margin-top:2px}.assignment-item time{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}.mentor-header{display:flex;align-items:center;gap:12px}.mentor-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.mentor-info{flex:1}.mentor-info strong{display:block;font-size:13px}.mentor-info span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.mentor-bio{font-size:11px;color:var(--muted);line-height:1.55}.child-card{border-top:1px solid #f0f0ec;padding:16px 0}.child-card .student-profile{margin-bottom:12px}.student-profile{display:flex;align-items:center;gap:10px}.student-profile strong,.student-profile span{display:block}.student-profile strong{font-size:13px}.student-profile span{font-size:10px;color:var(--muted);margin-top:2px}.child-metrics{display:grid;grid-template-columns:1fr 1fr auto auto;align-items:end;gap:12px}.child-metrics small,.child-metrics b{display:block}.child-metrics small{font-size:10px;color:var(--muted)}.child-metrics b{font-size:15px;margin-top:3px}.timetable-gen-panel .form-row{align-items:flex-end}.timetable-gen-panel .form-group-action{flex:1 1 190px;min-width:190px}.timetable-generate-btn{min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1.25}.timetable-wrap{overflow-x:auto}.timetable-table{width:100%;min-width:720px}.timetable-table th{background:var(--paper);padding:10px 14px}.timetable-table td{padding:10px 14px;min-width:112px}.timetable-table .tt-day{min-width:98px;text-align:left;color:var(--ink)}.timetable-table thead th:not(:first-child){min-width:118px}.tt-period{display:block}.tt-time{display:block;margin-top:3px}.tt-period{font-weight:700;font-size:11px;color:var(--muted)}.tt-time{font-size:10px;white-space:nowrap}.event-mini-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-top:1px solid #f0f0ec}.event-mini-row:first-child{border-top:0;padding-top:0}.event-mini-row strong,.event-mini-row small{display:block}.event-mini-row strong{font-size:12px}.event-mini-row small{font-size:10px;color:var(--muted);margin-top:2px}.event-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:4px}.event-academic{background:var(--blue)}.event-meeting{background:var(--coral)}.event-event{background:var(--green)}.event-session{background:var(--yellow)}.tab-bar{display:flex;gap:4px;margin-bottom:0}.tab-btn{padding:9px 18px;border-radius:7px 7px 0 0;font-size:12px;font-weight:600;color:var(--muted);background:#f0efea;border:1px solid var(--line);border-bottom:0;transition:.15s}.tab-btn.active{background:var(--white);color:var(--ink);border-color:var(--line)}.tab-btn+.panel{border-top-left-radius:0}.session-selector-wrap{margin-bottom:12px}.session-eyebrow{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.session-select{margin-bottom:12px}.session-summary-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.term-tabs{display:flex;gap:6px;margin-bottom:16px}.prev-session-loading{padding:32px 0;text-align:center;color:var(--muted);font-size:13px}.prev-session-error{background:#fff0f0;border-radius:8px;padding:14px;color:var(--coral);font-size:12px;margin-top:12px}.growth-snapshot{display:flex;flex-direction:column;gap:8px}.growth-badge-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border-radius:20px;padding:4px 10px;font-size:11px}.report-drawer{display:none}.report-drawer.open{display:block}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#191d2459;z-index:50}.drawer{position:fixed;z-index:51;right:0;top:0;height:100vh;width:min(420px,100%);background:var(--white);padding:40px 30px;box-shadow:-16px 0 40px #0000001f;overflow-y:auto}.close-drawer{position:absolute;right:22px;top:20px;font-size:26px;color:#8d9292}.close-drawer:hover{color:var(--coral)}.drawer h2{font:700 28px/1 IBM Plex Sans,sans-serif;letter-spacing:-1px}.drawer-meta{color:#959b9b;margin:6px 0 22px;font-size:12px}.report-score{display:flex;justify-content:space-between;align-items:center;background:var(--paper);padding:16px;border-radius:8px}.report-score span:first-child{display:block;color:#8e9494;font-size:11px}.report-score strong{font:700 36px/1 IBM Plex Sans,sans-serif;display:block;margin-top:5px}.formula{font-size:10px;color:#a0a4a4;margin:13px 0 22px}.report-subjects{border-top:1px solid var(--line)}.subject-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid #f0f0ec;font-size:12px}.subject-row>div>span{display:block}.subject-row small{display:block;color:#a0a4a4;font-size:9px;margin-top:2px}.subject-row b{font-size:13px}.subject-row-score{text-align:right;flex-shrink:0}.drawer-note{background:#fff8de;padding:14px;margin-top:20px;border-radius:7px}.drawer-note strong{font-size:11px}.drawer-note p{font-size:10px;line-height:1.5;color:#817754;margin-top:6px}.drawer-mentor-chip{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:10px 12px;font-size:11px}.chip-label{font-size:9px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#191d2466;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.modal{background:var(--white);border-radius:10px;width:min(480px,100%);box-shadow:0 24px 60px #0003;overflow:hidden;max-height:calc(100vh - 40px);display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line);flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font:700 20px/1.15 IBM Plex Sans,sans-serif}.close-modal{font-size:22px;color:var(--muted)}.close-modal:hover{color:var(--coral)}.modal-body{padding:22px 24px 10px;overflow-y:auto;flex:1;min-height:0}.modal-footer{padding:14px 24px 20px;display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}.setup-form{padding-top:4px}@media (max-width: 1100px){.stat-grid{grid-template-columns:1fr 1fr}.admin-dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid,.lower-grid,.role-grid,.student-grid-top,.student-grid-bottom,.setup-grid{grid-template-columns:1fr}.admin-analytics-grid{grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr)}}@media (max-width: 860px){.sidebar{z-index:40;left:-250px;top:0;bottom:0;height:100vh;height:100dvh;transition:.22s}.sidebar.open{left:0}.main-content{margin-left:0}.mobile-menu{display:block}.feedback-grid,.subject-results{grid-template-columns:1fr}.child-metrics{grid-template-columns:1fr 1fr}.login-visual{display:none}.login-card{width:100%}}@media (max-width: 560px){.stat-grid,.student-stat-grid{grid-template-columns:1fr 1fr;gap:10px}.admin-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid.two{grid-template-columns:1fr}.welcome-row{flex-direction:column;align-items:flex-start}.page-wrap{padding:22px 16px 48px}.panel{padding:16px}.demo-grid{grid-template-columns:1fr}.form-row{flex-direction:column}.admin-analytics-grid{grid-template-columns:1fr}.admin-analytics-grid .panel{padding:17px 15px}.admin-attendance-chart{margin-right:-4px}.admin-attendance-svg{min-width:490px;height:205px}.admin-attendance-panel .panel-heading{align-items:flex-start;flex-direction:column}.admin-attendance-panel .panel-heading .text-button{min-height:32px}}.att-input{width:52px;padding:6px 8px;text-align:center;border:1px solid var(--line);border-radius:5px;font-size:12px;font-weight:600}.att-input:focus{border-color:var(--blue);outline:0}.btn-sm-save{background:var(--green-soft);color:var(--green);border:1px solid var(--green);border-radius:5px;padding:5px 10px;font-size:11px;font-weight:700;white-space:nowrap}.btn-sm-save:hover{background:var(--green);color:#fff}tr.att-focused{background:var(--blue-soft)}.dept-assign-line{display:flex;align-items:center;gap:5px;padding:3px 0;color:var(--muted)}.class-report-table{width:100%;border-collapse:collapse;font-size:11px}.class-report-table th,.class-report-table td{padding:8px 6px;border-bottom:1px solid #f0f0ec;text-align:center;white-space:nowrap}.class-report-table thead th{background:#fafaf7;font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.class-report-table thead tr:nth-child(2) th{border-top:1px solid #ececE6}.class-report-table .report-subject-head{text-align:left;text-transform:none;letter-spacing:0;font-size:11px;color:var(--ink);white-space:nowrap}.class-report-table .report-subject-head .subject-chip{margin-right:4px}.class-report-table td.report-student,.class-report-table th.report-student{text-align:left;position:sticky;left:0;background:#fff;z-index:1}.class-report-table thead th.report-student{background:#fafaf7}.class-report-table .report-student .student small{display:block;font-size:9px}.class-report-table tbody tr:hover td,.class-report-table tbody tr:hover td.report-student{background:#fcfcf9}.dept-report-card{margin-bottom:16px}.dept-report-card h2{display:flex;align-items:center;gap:6px}.subject-row.report-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ca-exam{display:flex;gap:14px}.ca-exam>span{display:flex;flex-direction:column;align-items:center;min-width:34px}.ca-exam small{font-size:9px;color:#999f9f;text-transform:uppercase;letter-spacing:.04em}.ca-exam b{font-size:13px}.child-mentor{display:flex;align-items:center;gap:6px;margin-left:auto}.child-card .student-profile{display:flex;align-items:center;gap:10px}.setup-grid>:nth-child(3){grid-column:1 / -1}.level-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.02em;background:#f0f0ec;color:var(--muted);vertical-align:middle}.level-jss{background:var(--blue-soft);color:var(--blue)}.level-ss{background:var(--green-soft);color:var(--green)}.level-both{background:var(--yellow-soft);color:#a3820c}.stream-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;background:#f0f0ec;color:var(--muted);vertical-align:middle}.stream-science{background:var(--blue-soft);color:var(--blue)}.stream-commercial{background:var(--green-soft);color:var(--green)}.stream-arts{background:var(--coral-soft);color:var(--coral)}.required-tag{margin-left:4px;padding:1px 6px;border-radius:8px;background:var(--coral-soft);color:var(--coral);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.row-menu-wrap{position:relative;display:inline-block}.row-menu{padding:4px 8px;border-radius:5px;color:var(--muted);font-size:13px;letter-spacing:1px;line-height:1}.row-menu:hover{background:var(--paper);color:var(--ink)}.row-menu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:190px;padding:5px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 34px #252b3829;text-align:left;white-space:nowrap}.row-menu-list.row-menu-floating{position:fixed;right:auto;top:auto}.row-menu-list button{display:block;width:100%;padding:8px 10px;border-radius:5px;font-size:12px;font-weight:500;color:var(--ink)}.row-menu-list button:hover{background:var(--paper)}.cr-cell{text-align:center}.cr-empty{color:#c9ccca}.cr-pass{color:var(--green);font-weight:700}.cr-fail{color:var(--coral);font-weight:700}.cr-sub-head{vertical-align:bottom}.cr-sub-name{font-size:9px;color:var(--muted);text-transform:none;letter-spacing:0}.cr-sum-row .student{gap:6px}.cr-caexam{font-size:11px;white-space:nowrap}.cr-plus{color:var(--muted)}.cr-eq{color:var(--muted);padding:0 2px}.cr-remark{max-width:190px;white-space:normal;font-size:11px}.cr-sub-row th{font-size:9px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:2px 6px 5px}.cr-split{font-size:11px;white-space:nowrap;text-align:center}.cr-split b{display:block;font-size:13px;font-weight:700}.cr-split small{color:var(--muted);font-size:9px}.tt-class-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.tt-class-block:first-of-type{margin-top:0;padding-top:0;border-top:0}.tt-class-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;margin-bottom:2px}.timetable-table td{vertical-align:top}.tt-subject{display:block;font-size:11px;font-weight:600;margin-top:4px}.tt-teacher{display:block;font-size:10px;color:var(--muted);margin-top:1px}.tt-free{margin-top:0;color:var(--muted);font-weight:500;font-style:italic}.dept-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.dept-check{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font-size:12px;cursor:pointer;background:var(--white)}.dept-check:hover{background:var(--paper)}.dept-check input{width:auto;flex-shrink:0;margin:0;accent-color:var(--blue)}.topic-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #f0f0ec;font-size:12px}.topic-row:first-child{border-top:0}.topic-row strong,.topic-row small{display:block}.topic-row strong{font-size:12px}.topic-row small{font-size:10px;color:var(--muted);margin-top:3px}.approval-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #f0f0ec;font-size:12px}.approval-row:first-child{border-top:0}.approval-row .approval-sub{display:block;font-size:10px;color:var(--muted);margin-top:3px}.approval-row .approval-actions{display:inline-flex;gap:6px;align-items:center;flex-shrink:0}.twelve{font-size:12px}.btn-sm-outline{padding:4px 10px;border-radius:6px;border:1px solid var(--line);background:transparent;color:var(--coral);font-size:11px;cursor:pointer}.btn-sm-outline:hover{background:var(--coral-soft)}.mentee-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid #f0f0ec}.mentee-row:first-child{border-top:0;padding-top:0}.mentee-row>div{flex:1;min-width:0}.mentee-row strong,.mentee-row small{display:block}.mentee-row strong{font-size:12px}.mentee-row small{font-size:10px;color:var(--muted);margin-top:2px}.support-icon.coral-bg{background:var(--coral-soft);color:var(--coral)}.support-icon.yellow-bg{background:var(--yellow-soft);color:#a3820c}.modal-wide{width:min(1080px,94vw)}.print-only{display:none}.print-header{display:none;margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--blue);font-size:12px}.print-header strong{display:block;font-size:15px}.print-header span{color:var(--muted)}.print-footer{display:none;margin-top:14px;padding-top:8px;border-top:1px solid #dcdcd6;font-size:10px;color:var(--muted)}.role-table-row .role-row-actions{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end}.rp-name{margin:0 0 16px;font-size:12px;color:var(--muted)}@page{size:A4 portrait;margin:14mm}@media print{html,body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body:after{content:"";position:fixed;top:50%;left:50%;width:78%;transform:translate(-50%,-50%);background:url(/assets/hma-watermark-BbFQ7joC.svg) no-repeat center center;background-size:contain;opacity:.07;pointer-events:none;z-index:-1}.sidebar,.mobile-menu,.drawer,.toast,.row-menu-wrap,.topbar button,.text-button,.outline-button,.btn-primary,.toggle-row,.setup-form,.nav{display:none!important}.app-shell{display:block!important}.main-content{display:block!important;overflow:visible!important}.page-wrap{padding:0!important;display:block!important}.page-wrap[hidden]{display:none!important}.panel{border:1px solid #d8d8d2;box-shadow:none;break-inside:avoid;margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:11px}thead{display:table-header-group}tfoot{display:table-footer-group}tr{break-inside:avoid}th,td{border:1px solid #d8d8d2;padding:5px 7px;text-align:left}th{background:#eef3f5;font-weight:600}.status,.stat-card,.subject-chip{border:1px solid #d8d8d2;background:none!important;color:#000!important}.status{padding:1px 6px;border-radius:3px;font-size:10px}.print-only,.print-header,.print-footer{display:block!important}a[href]:after{content:""}body.printing-report .report-drawer{display:block!important;position:static!important}body.printing-report .drawer{display:block!important;position:static!important;width:auto!important;max-width:none!important;height:auto!important;overflow:visible!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important}body.printing-report .drawer-backdrop,body.printing-report .close-drawer{display:none!important}}.count-badge{background:var(--blue-soft);color:var(--blue);border-radius:12px;padding:5px 10px;font-size:11px;font-weight:700;white-space:nowrap}.btn-primary.small{padding:7px 12px;font-size:11px;width:auto;margin:0}.ls-body{white-space:pre-wrap;font-size:12px;line-height:1.7}.quiz-question{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px;background:#fff}.quiz-fieldset{border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 14px}.quiz-fieldset legend{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 6px}.quiz-question-text{font-weight:600;margin:0 0 10px}.path-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.path-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer;display:block;background:#fff;transition:border-color .15s,background .15s}.path-card input{margin-right:8px;accent-color:var(--blue)}.path-card strong{display:block;margin:6px 0 2px;font-size:13px}.path-card span{font-size:11px;line-height:1.5}.path-card.selected{border-color:var(--blue);background:var(--blue-soft)}.path-status{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:14px;font-size:12px}.path-status.approved{background:var(--green-soft);border-color:#c9e3d4}.path-status.pending{background:var(--yellow-soft);border-color:#ecd97a}.att-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.att-week{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}.att-week strong{display:block;font-size:12px}.att-week span{font-size:11px;color:var(--muted)}.att-week-future{background:#f1f2ef;border-style:dashed;border-color:#d6dad5;color:#777e79;filter:grayscale(1)}.att-week-future>span,.att-week-future .att-day,.att-week-future .att-future-placeholder{opacity:.48}.att-week-status{display:inline-block;margin-left:6px;font-size:9px;font-weight:600;color:var(--muted)}.att-future-note{margin:0 0 8px}.att-future-placeholder{display:block;margin-top:7px;font-size:10px}.attendance-save-hint{margin:8px 0 0}.lesson-week-heading th{padding:10px 12px 7px 0;color:var(--blue);background:var(--blue-soft);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.learning-snapshot-context{margin:12px 0 0;max-width:62ch;line-height:1.55}.results-locked-notice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fff}.results-locked-notice p{min-width:0;margin:0;line-height:1.55;overflow-wrap:anywhere;white-space:normal}.student-results-panel{min-width:0}.results-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.results-panel-heading h2{margin:0}.results-panel-heading p{margin-top:6px}.student-results-table{white-space:normal}.section-load-error{max-width:720px}.section-load-error h2{margin:0}.section-load-error p{overflow-wrap:anywhere}.leaderboard-picker{display:grid;gap:9px;min-width:min(320px,100%)}.leaderboard-picker-label{display:block;margin-bottom:5px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.leaderboard-toggle-list{display:flex;flex-wrap:wrap;gap:5px}.leaderboard-toggle{min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:7px;background:var(--white);color:var(--ink);font:inherit;font-size:11px;font-weight:600;line-height:1.2;cursor:pointer}.leaderboard-toggle:hover{border-color:var(--blue);color:var(--blue)}.leaderboard-toggle.active{border-color:var(--blue);background:var(--blue);color:#fff}.leaderboard-toggle:focus-visible{outline:2px solid var(--brass);outline-offset:2px}@media (max-width: 640px){.results-panel-heading{flex-direction:column}.results-panel-heading .select-inline{width:100%}.leaderboard-picker{min-width:0;width:100%}.leaderboard-toggle-list{max-width:100%}.logout-btn{gap:4px;padding:7px 6px;font-size:9px}}.leaderboard-selectors{align-items:center}.leaderboard-selectors select{min-width:132px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.att-summary{display:flex;gap:12px;flex-wrap:wrap}.att-summary>div{flex:1;min-width:120px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--paper)}.att-summary span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.att-summary b{font:700 18px/1.2 IBM Plex Sans,sans-serif;color:var(--blue)}.thread-card{border:1px solid var(--line);border-radius:10px;padding:13px 15px;margin-bottom:12px;background:#fff;font-size:12px}.att-daily-bar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.att-daily-bar label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.att-daily-bar select{min-width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:600 13px/1.2 IBM Plex Sans,sans-serif;color:var(--ink);background:#fff}.att-day-title{font:700 14px/1.2 IBM Plex Sans,sans-serif;color:var(--blue);margin-bottom:6px}.att-day-count{font:700 13px/1 IBM Plex Sans,sans-serif;color:var(--muted);margin-bottom:6px}.att-daily-actions{display:flex;gap:8px;align-items:center;margin-bottom:2px}.att-status-cell{width:1%;white-space:nowrap}.att-toggle{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.att-toggle input{position:absolute;opacity:0;pointer-events:none}.att-toggle-track{position:relative;width:44px;height:24px;border-radius:999px;background:#fdecec;border:1px solid #ea4335;flex:none;transition:background .15s ease,border-color .15s ease}.att-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease,background .15s ease}.att-toggle input:checked+.att-toggle-track{background:#e8f6ec;border-color:#34a853}.att-toggle input:checked+.att-toggle-track:after{transform:translate(20px);background:#34a853}.att-toggle-label{font:700 12px/1 IBM Plex Sans,sans-serif;color:#b42318}.att-toggle-label.on{color:#1e7d3a}.att-legend{font-size:11px;color:var(--muted)}.att-days{display:flex;gap:4px;margin-top:8px}.att-day{min-width:18px;height:18px;padding:0 4px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font:700 10px/1 IBM Plex Sans,sans-serif}.att-day.present{background:#e8f6ec;color:#1e7d3a}.att-day.late{background:#fdf3d7;color:#9a6b00}.att-day.absent{background:#fdecec;color:#b42318}.att-day.off{background:#f2f4f7;color:#b6bdca}.midterm-actions{display:flex;gap:8px;align-items:center}.strong-neutral{font-weight:600;color:var(--ink)}.event-other{background:var(--muted)}.xp-breakdown{display:grid;gap:10px}.xp-row{display:grid;grid-template-columns:1fr 1.4fr 64px;gap:10px;align-items:center}.xp-row>span{font-size:13px;color:var(--ink)}.xp-row>b{font-size:13px;text-align:right;white-space:nowrap}.xp-track{display:block;height:8px;border-radius:999px;background:#eef1f6;overflow:hidden}.xp-track em{display:block;height:100%;border-radius:999px}.xp-high{background:var(--green)}.xp-mid{background:var(--blue)}.xp-low{background:var(--yellow)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.badge-chip{display:flex;gap:10px;align-items:flex-start;border:1px solid #e6eaf2;border-radius:10px;padding:10px 12px;background:#fafbfd}.badge-chip>span{font-size:22px;line-height:1}.badge-chip strong{display:block;font-size:13px;color:var(--ink)}.badge-chip small{font-size:11.5px;color:var(--muted);display:block;margin-top:2px}.guardian-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.guard-stat{border:1px solid #e6eaf2;border-radius:10px;padding:10px 12px;background:#fafbfd}.guard-stat small{display:block;font-size:11px;color:var(--muted)}.guard-stat b{font-size:18px;color:var(--ink)}.rec-leaderboard{display:grid;gap:8px}.leaderboard-row{display:flex;align-items:center;gap:10px;border:1px solid #e6eaf2;border-radius:10px;padding:10px 12px;background:#fafbfd}.leaderboard-row.lb-leader{border-color:var(--blue);background:var(--blue-soft)}.lb-rank{width:26px;height:26px;border-radius:50%;background:#eef1f6;color:var(--muted);display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}.lb-name{flex:1;min-width:0}.lb-name strong{font-size:13px;color:var(--ink)}.lb-name small{font-size:11.5px;color:var(--muted);display:block;margin-top:1px}.lb-points{font-size:15px;color:var(--blue);white-space:nowrap}.avatar+.lb-name{margin-left:0}.passport-modal{width:min(820px,100%)}.passport-sheet{background:#fff;color:#1a1a1a;border:1px solid #e3e7ee;border-radius:8px;font-family:Arial,Helvetica,sans-serif;font-size:12.5px;line-height:1.45}.p-head{display:flex;align-items:center;gap:14px;border-bottom:3px double #c9a227;padding:16px 20px}.p-crest{width:46px;height:46px;border-radius:50%;border:2px solid #8a6d1a;color:#8a6d1a;display:grid;place-items:center;font-size:11px;font-weight:700;line-height:1;text-align:center;flex-shrink:0}.p-crest small{font-size:7.5px;font-weight:400;display:block;margin-top:3px;letter-spacing:1px}.p-brand{flex:1}.p-brand strong{display:block;font-size:16px;letter-spacing:.5px;color:#7a1d16}.p-brand span{font-size:11px;color:#555}.p-code{font-size:11px;color:#555;text-align:right;white-space:nowrap}.p-code b{color:#7a1d16;font-family:Consolas,monospace}.p-banner{display:flex;gap:14px;align-items:center;padding:14px 20px;background:#f7f5ee;border-bottom:1px solid #e7e2d2}.p-id{flex:1;min-width:0}.p-name{font-size:19px;color:#7a1d16;display:block}.p-id span{display:block;font-size:11.5px;color:#555;margin-top:1px}.p-snapshot{display:grid;grid-template-columns:repeat(3,auto);gap:12px}.p-snapshot span{text-align:center;border-left:1px solid #ddd6c0;padding-left:12px}.p-snapshot .avatar~*{border-left:1px solid #ddd6c0}.p-snapshot small{display:block;font-size:10px;color:#888}.p-snapshot b{font-size:15px;color:#1a1a1a}.p-section{padding:14px 20px;border-bottom:1px dashed #dbd6c8}.p-section h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#7a1d16}.p-table{width:100%;border-collapse:collapse;font-size:12px}.p-table th{text-align:left;border-bottom:2px solid #1a1a1a;padding:4px 6px;font-size:10.5px;text-transform:uppercase;color:#555}.p-table td{border-bottom:1px solid #eee;padding:5px 6px}.p-subj{font-weight:600}.p-comp{display:grid;grid-template-columns:1fr 2fr 40px;gap:10px;align-items:center;margin-bottom:6px}.p-comp>span{font-size:12px}.p-comp>b{font-size:12px;text-align:right}.p-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.p-card{border:1px solid #e3e7ee;border-radius:6px;padding:8px 10px;background:#fafbfd}.p-card strong{display:block;font-size:11.5px;color:#1a1a1a;text-transform:capitalize}.p-card span,.p-card small{font-size:11px;color:#555;display:block}.p-card.p-badge strong{color:#8a6d1a}.p-footer{display:flex;align-items:center;gap:16px;padding:14px 20px}.p-qr{width:62px;height:62px;border:1px solid #bbb;flex-shrink:0;display:grid;place-items:center;font-family:Consolas,monospace;font-size:15px;color:#1a1a1a;font-weight:700}.p-foot-note{flex:1;font-size:10px;color:#777}.p-sign{display:grid;gap:26px;flex-shrink:0}.p-sign span{font-size:11px;color:#1a1a1a;border-top:1px solid #1a1a1a;padding-top:4px;min-width:110px;text-align:center}@media print{body.printing *{visibility:hidden!important}body.printing .modal-overlay{display:block!important;position:static!important;background:none!important;padding:0!important}body.printing #passport-sheet,body.printing #passport-sheet *{visibility:visible!important}body.printing #passport-sheet{position:static!important;width:100%!important;border:none!important;border-radius:0!important;box-shadow:none!important}body.printing-report *{visibility:hidden!important}body.printing-report .report-drawer,body.printing-report .report-drawer *{visibility:visible!important}}.att-3state{display:flex;gap:6px;flex-wrap:wrap}.att-state-btn{padding:5px 12px;border-radius:6px;border:1.5px solid #d1d5db;background:#f9fafb;font:600 12px/1 DM Sans,sans-serif;cursor:pointer;color:#6b7280;transition:background .12s,border-color .12s,color .12s}.att-state-btn:hover{background:#f3f4f6;border-color:#9ca3af}.att-state-btn.active-present,.att-state-btn[data-status=present]:focus{background:#ecfdf5;border-color:#10b981;color:#065f46}.att-state-btn.active-late,.att-state-btn[data-status=late]:focus{background:#fffbeb;border-color:#f59e0b;color:#92400e}.att-state-btn.active-absent,.att-state-btn[data-status=absent]:focus{background:#fef2f2;border-color:#ef4444;color:#991b1b}.leaderboard-rank{font-size:16px;font-weight:700;color:var(--muted)}.leaderboard-rank.top-1{color:gold;font-size:20px}.leaderboard-rank.top-2{color:silver;font-size:18px}.leaderboard-rank.top-3{color:#cd7f32;font-size:18px}.att-all-absent-btn{background:var(--coral-soft)!important;color:var(--coral)!important;border-color:var(--coral)!important}.att-all-absent-btn:hover{background:var(--coral)!important;color:#fff!important}.attendance-save-state{min-height:20px;margin:4px 0 12px;font-size:12px}.attendance-save-state.success{color:#256548}.attendance-save-state.error{color:#a83f32}.score-save-feedback{min-height:20px;margin:0 0 12px;font-size:12px}.score-save-feedback.success{color:#256548}.score-save-feedback.error{color:#a83f32}.score-save-feedback.pending{color:#596675}.score-input[aria-invalid=true]{border-color:#b84d3c;box-shadow:0 0 0 2px #b84d3c24}.nav-account{margin-top:12px}.fee-setup-panel,.grading-setup-panel{min-width:0}.fee-item-form{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(100px,.7fr) minmax(150px,1fr) auto;gap:12px;align-items:end}.fee-item-form .form-group{margin:0}.fee-item-form .btn-primary{width:auto;margin:0;white-space:nowrap}.fee-items-list{display:grid;gap:10px}.fee-item-row{border:1px solid var(--line);border-radius:10px;background:var(--paper)}.fee-edit-fields{display:grid;grid-template-columns:minmax(130px,1fr) minmax(90px,.5fr) minmax(140px,.7fr);gap:12px;padding:12px 15px}.fee-edit-fields label{display:grid;gap:5px;color:var(--muted);font-size:12px}.fee-edit-fields input,.fee-edit-fields select{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:8px 9px;color:var(--ink);background:#fff}.fee-item-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px}.fee-item-summary>div{display:flex;align-items:baseline;gap:12px}.fee-item-summary>div span,.fee-class-rates summary span{color:var(--muted);font-size:12px}.fee-class-rates{border-top:1px solid var(--line);padding:10px 15px}.fee-class-rates summary{cursor:pointer;font-weight:600}.fee-class-rates summary span{margin-left:6px;font-weight:400}.fee-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;padding:14px 0}.fee-class-grid label{display:grid;gap:5px;color:var(--ink);font-size:12px}.fee-class-input{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:7px;padding:0 9px;background:#fff}.fee-class-input input{width:100%;min-width:0;border:0;outline:0;padding:8px 0;background:transparent;color:var(--ink)}.fee-class-input small{color:var(--muted);white-space:nowrap}.fee-item-actions{display:flex;align-items:center;gap:14px}.grading-bands-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.grading-band-row{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:9px}.grading-band-row label{display:grid;gap:6px;color:var(--muted);font-size:12px}.grading-band-row label>input{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px 9px;color:var(--ink);background:#fff}.grading-band-row .fee-class-input{max-width:130px}@media (max-width: 760px){.fee-item-form{grid-template-columns:1fr 1fr}.fee-item-form .form-group:first-child{grid-column:1 / -1}}@media (max-width: 440px){.fee-item-form{grid-template-columns:1fr}.fee-item-form .form-group:first-child{grid-column:auto}.fee-item-summary,.fee-item-summary>div{align-items:flex-start;flex-direction:column;gap:4px}.fee-edit-fields{grid-template-columns:1fr 1fr}.fee-edit-fields label:first-child{grid-column:1 / -1}}.att-register-table{width:100%}.att-status-col{white-space:nowrap;width:1%}.att-term-col{white-space:nowrap}.att-heatmap{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.att-week-group{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px 5px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.att-week-number{flex:0 0 100%;color:var(--muted);font-size:8px;line-height:1.2;text-align:center}.att-week-group-future{border-style:dashed;background:#f1f2ef;filter:grayscale(1);opacity:.55}.att-week-group .att-day{min-width:16px;height:16px;font-size:9px}.xs-avatar{width:22px;height:22px;font-size:9px}.drawer-actions{display:flex;gap:8px;align-items:stretch;margin-top:16px}.drawer-actions .btn-primary,.drawer-actions .outline-button{flex:1;margin:0;width:auto}.att-student-att{padding-left:32px;display:block;margin-top:2px}.att-student-att .status,.att-student-att-badge{font-size:9px}.att-weekly-td{text-align:center}.att-term-col-note{font-size:10px;font-weight:400}.quiz-desc-label{font-weight:400}.quiz-item-desc{font-size:10px;margin-top:2px}.quiz-q-text-group{flex:2}.quiz-q-remove{margin-top:22px}.quiz-answer-input{max-width:300px}.quiz-action-btn{width:auto;margin:0}.flex-1{flex:1}.text-center{text-align:center}.p16{padding:16px}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.segmented button{border:0;background:#fff;padding:7px 14px;cursor:pointer;font:600 12px/1 IBM Plex Sans,sans-serif;color:var(--muted)}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--blue);color:#fff}.att-month-wrap{overflow-x:auto}.att-month{width:100%;border-collapse:collapse;font-size:12px}.att-month th,.att-month td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}.att-month th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.thread-post,.thread-reply-box{margin-top:8px}.thread-reply-box textarea{width:100%}.remark-review{padding:12px 0;border-top:1px solid #f0f0ec}.remark-review:first-of-type{border-top:0;padding-top:0}.remark-review input{width:100%}.term-date-row{padding:12px 0;border-top:1px solid #f0f0ec}.term-date-row:first-child{border-top:0;padding-top:0}.term-date-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.session-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #f0f0ec}.session-row:first-child{border-top:0;padding-top:0}.session-row strong{display:block;font-size:13px}.session-row small{display:block;font-size:10px;color:var(--muted);margin-top:2px}#view-admin-overview{display:flex;flex-direction:column}#view-admin-overview>.welcome-row{order:0}#view-admin-overview>.admin-dashboard-metrics{order:1}#view-admin-overview>.lower-grid{order:2}#view-admin-overview>.admin-analytics-grid{order:3}.admin-priority-grid{grid-template-columns:minmax(0,1.75fr) minmax(290px,.85fr);align-items:stretch}.admin-priority-grid>.admin-operations-panel{order:0;grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:0;padding:18px 20px;border:1px solid var(--line);box-shadow:none}.admin-priority-grid>.table-panel{order:1;grid-column:1 / -1}.admin-analytics-grid .admin-attendance-panel{align-self:start}.admin-analytics-grid{grid-template-columns:minmax(0,1fr)}.admin-analytics-grid .admin-class-performance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px}.admin-priority-grid .admin-operations-section{min-width:0}.admin-priority-grid .admin-operations-section+.admin-operations-section{border-top:0;border-left:1px solid var(--line);padding:0 0 0 22px;margin-left:22px}.admin-priority-grid>.table-panel{min-width:0}.sidebar-backdrop{display:none}.mobile-menu svg{display:block;width:22px;height:22px}@media (max-width: 1100px){.admin-priority-grid{grid-template-columns:1fr}.admin-priority-grid>.table-panel{order:1}.admin-priority-grid>.admin-operations-panel{order:0}.admin-analytics-grid .admin-class-performance{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 920px){.admin-analytics-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 860px){.sidebar{z-index:60;inset:0 auto 0 0;left:0;width:min(320px,calc(100vw - 48px));height:100vh;height:100dvh;padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));transform:translate(-105%);transition:transform .22s cubic-bezier(.2,.75,.25,1);box-shadow:14px 0 38px #10182233}.sidebar.open{left:0;transform:translate(0)}.sidebar-backdrop:not([hidden]){display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;width:100%;height:100%;padding:0;border:0;border-radius:0;background:#0e141d85;touch-action:manipulation}body.nav-open{overflow:hidden}.main-content{margin-left:0}.topbar{z-index:35}.mobile-menu{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin:0;border-radius:8px;color:var(--ink);touch-action:manipulation}.mobile-menu:hover{background:var(--paper)}.nav-item{min-height:44px}.sidebar-footer .logout-btn{min-height:40px}.feedback-grid,.subject-results{grid-template-columns:1fr}.child-metrics{grid-template-columns:1fr 1fr}.login-visual{display:none}.login-card{width:100%}}@media (max-width: 640px){.topbar{height:auto;min-height:62px;padding:8px 14px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-areas:"menu crumb" "actions actions";gap:5px 8px}.mobile-menu{grid-area:menu}.crumb{grid-area:crumb;min-width:0;gap:0;font-size:12px}.crumb span,.crumb b{display:none}.crumb strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.top-actions{grid-area:actions;min-width:0;width:100%;min-height:44px;padding-top:5px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:5px 8px}.top-actions>.active-school-control{order:-1;margin-right:auto;min-width:0}.active-school-control select{min-height:40px;max-width:min(48vw,220px)}.top-actions .btn-sm-save{min-height:40px;padding:7px 9px;font-size:11px}.icon-button{display:grid;place-items:center;width:44px;height:44px}.topbar-user{min-width:40px;min-height:40px;justify-content:flex-end}.topbar-user>span:last-child{display:none}.page-wrap{padding:22px 14px max(48px,env(safe-area-inset-bottom))}.welcome-row{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:18px}.welcome-row h1{font-size:clamp(28px,7vw,36px);line-height:1.08;letter-spacing:-1px;overflow-wrap:anywhere}.welcome-row .subcopy{max-width:56ch;font-size:13px}.welcome-row>button,.welcome-row .btn-primary{width:100%;min-height:44px}.term-badge{align-self:flex-start;min-height:40px}.stat-grid,.student-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.admin-dashboard-metrics .stat-card{padding:13px 12px}.admin-dashboard-metrics .stat-label{font-size:11px;line-height:1.35}.admin-dashboard-metrics .stat-icon{width:28px;height:28px}.admin-dashboard-metrics .stat-card>strong{font-size:24px;margin:12px 0 5px}.admin-dashboard-metrics .stat-trend{font-size:10px;line-height:1.35}.stat-grid.two{grid-template-columns:1fr}.dashboard-grid,.lower-grid,.role-grid,.student-grid-top,.student-grid-bottom,.setup-grid{grid-template-columns:minmax(0,1fr)}.panel{min-width:0;padding:15px}.panel-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.panel h2{font-size:19px}.admin-analytics-grid{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:12px}.admin-analytics-grid .panel{padding:16px 14px}.admin-attendance-panel .panel-heading{align-items:flex-start;flex-direction:column}.admin-attendance-panel .panel-heading .text-button{min-height:40px;padding:8px 0}.admin-attendance-chart{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.admin-attendance-svg{min-width:490px;height:205px}.admin-priority-grid{gap:12px}.admin-priority-grid>.admin-operations-panel{grid-template-columns:minmax(0,1fr);gap:17px;padding:15px}.admin-priority-grid .admin-operations-section+.admin-operations-section{border-left:0;border-top:1px solid var(--line);margin:0;padding:15px 0 0}.admin-priority-grid .admin-operations-section .outline-button{min-height:44px}.admin-analytics-grid .admin-class-performance{grid-template-columns:minmax(0,1fr);gap:15px}.table-wrap,.timetable-wrap,.att-month-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:620px}.table-panel .panel-heading{margin-bottom:10px}.table-actions{width:100%;flex-wrap:wrap}.table-actions>*{min-width:0}.search{flex:1 1 180px}.search input,input,select,textarea{min-height:44px;font-size:16px}.form-row{flex-direction:column;align-items:stretch}.form-row .form-group{min-width:0;width:100%}.btn-primary,.outline-button,.btn-sm-save,.text-button,.segmented button{min-height:44px}.modal-overlay{align-items:flex-end;padding:0}.modal{width:100%;max-height:min(92dvh,780px);border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal-header{padding:16px 18px}.modal-body{padding:18px 18px 10px}.modal-footer{padding:12px 18px 16px;flex-wrap:wrap}.modal-footer>button{flex:1 1 140px;min-height:44px}.close-modal{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px}.demo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-btn{min-height:44px}.owner-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 380px){.topbar{padding-inline:10px}.page-wrap{padding-inline:11px}.admin-dashboard-metrics .stat-card{padding:11px 10px}.admin-dashboard-metrics .stat-card>strong{font-size:22px}.owner-stat-grid{grid-template-columns:1fr}.owner-stat-grid .stat-card,.panel{padding:13px}.demo-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.sidebar,.sidebar-backdrop{transition:none!important}}.active-school-control[hidden]{display:none}.active-school-control{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:650}.active-school-control select{max-width:210px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);padding:7px 9px;font:600 12px/1.2 IBM Plex Sans,sans-serif}@media (max-width: 760px){.active-school-control select{max-width:130px}}:root{--ink: #1d252b;--muted: #5b6870;--line: #e0e5e2;--paper: #f2f4f2;--white: #fff;--navy: #202a33;--academy: #254c46;--academy-soft: #e8f0ed;--coral: #df6b5b;--coral-soft: #fff0ed;--blue: #4e65c8;--blue-soft: #edf0ff;--green: #337c58;--green-soft: #e9f5ed;--yellow: #c28b18;--yellow-soft: #fff6dc;--brass: #c5a35c;--radius: 12px;--shadow: 0 8px 24px rgba(23, 38, 34, .055);--focus-ring: 0 0 0 3px rgba(37, 76, 70, .24)}body{background:var(--paper);color:var(--ink);font-size:14px;line-height:1.55;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}::selection{background:#cde1d9;color:#173b35}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#aab6b1;border:3px solid transparent;border-radius:10px;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.sidebar{background:var(--navy);width:248px;padding:24px 16px 18px;scrollbar-color:#52616b transparent}.brand{min-height:46px;gap:11px;padding:0 8px}.brand-mark{width:38px;height:38px;border-radius:11px;background:var(--academy);box-shadow:none}.brand strong{font-family:IBM Plex Sans,sans-serif;font-size:16px;line-height:1.2;letter-spacing:-.35px;white-space:nowrap}.brand span{color:#bdc8c4;font-size:9px;letter-spacing:1.45px;margin-top:4px}.school-year{margin:26px 10px 22px;color:#c0c9c6}.nav-label{color:#b4bfbb;font-size:10px;letter-spacing:1.25px;margin:16px 10px 6px}.nav-item{min-height:40px;margin:2px 0;padding:9px 11px;border-radius:8px;color:#d0d7d4;font-size:13px}.nav-item:hover{background:#ffffff14;color:#fff}.nav-item.active{background:#ffffff1f;color:#fff;box-shadow:inset 3px 0 var(--brass)}.nav-item.active .nav-icon{color:#e2c57f}.sidebar-footer .user-row{border-color:#3d4a50}.logout-btn{border-color:#536168;border-radius:8px}.main-content{margin-left:248px;background:var(--paper)}.topbar{min-height:68px;height:auto;padding:0 clamp(22px,3vw,44px);background:#fffffff5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}.crumb{color:#68756f;font-size:13px}.crumb b{color:#99a39f}.crumb strong{color:var(--ink);font-weight:700}.top-actions{gap:14px}.topbar-user{font-size:13px}.icon-button{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;color:#475651}.icon-button:hover{background:var(--paper)}.icon-button i{top:6px;right:5px;width:7px;height:7px}.btn-sm-save{border-radius:8px;min-height:38px;padding:0 13px;font-size:12px}.page-wrap{max-width:1500px;padding:30px clamp(22px,3vw,44px) 52px}.welcome-row{align-items:center;margin-bottom:22px;gap:20px}.welcome-row h1{font-size:clamp(28px,2.7vw,36px);line-height:1.12;letter-spacing:-.9px}.subcopy{color:#58656a;max-width:68ch;margin-top:7px}.welcome-row .eyebrow:not(#admin-date-label),.panel-heading .eyebrow{display:none}#admin-date-label{display:block;color:#53645e;font-size:12px;letter-spacing:.01em;text-transform:none;margin:0 0 7px}.term-badge,.read-only-badge,.check-badge{border-radius:999px}.panel,.stat-card,.student-stat,.child-card,.owner-tier-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}.panel{background:var(--white);padding:22px}.panel-heading{align-items:center;gap:12px;margin-bottom:2px}.panel-heading h2{color:var(--ink);font-size:19px;line-height:1.3;letter-spacing:-.3px}.panel-heading h3{font-size:16px;line-height:1.35}.role-muted{color:#5b6870}.stat-grid{gap:12px;margin-bottom:16px}.stat-card{background:var(--white);padding:17px 18px}.stat-label,.student-stat>span{color:#596761;font-size:12px}.stat-card>strong,.student-stat>strong{font-size:29px;letter-spacing:-.65px;font-variant-numeric:tabular-nums}.stat-icon{border-radius:8px}.admin-dashboard-metrics .stat-card:first-child{background:var(--navy);border-color:var(--navy);color:#fff}.admin-dashboard-metrics .stat-card:first-child .stat-label,.admin-dashboard-metrics .stat-card:first-child .stat-trend{color:#d3ddd9}.admin-dashboard-metrics .stat-card:first-child .stat-icon{background:#ffffff21;color:#fff}.student-stat{background:#fff;padding:18px}.dashboard-grid,.lower-grid,.role-grid{gap:14px}.mt16{margin-top:14px}#view-admin-overview .admin-priority-grid{order:1}#view-admin-overview .admin-dashboard-metrics{order:2}#view-admin-overview .admin-analytics-grid{order:3}#view-admin-overview .admin-operations-panel{order:0}#view-admin-overview .admin-priority-grid>.table-panel{order:1}#view-subject-dashboard,#view-student-dashboard,#view-parent-dashboard{display:flex;flex-direction:column}#view-subject-dashboard .role-grid{order:1}#view-subject-dashboard .role-grid>article:nth-child(2){order:0}#view-subject-dashboard .role-grid>article:nth-child(3){order:1}#view-subject-dashboard .role-grid>article:nth-child(1){order:2}#view-subject-dashboard .role-grid>article:nth-child(4){order:3}#view-subject-dashboard>.stat-grid{order:2}#view-subject-dashboard>.panel{order:3}#view-student-dashboard>.student-grid-bottom{order:1}#view-student-dashboard>.student-grid-top{order:2}#view-student-dashboard>.stat-grid{order:3}#view-student-dashboard>.panel{order:4}#view-parent-dashboard>.role-grid{order:1}#view-parent-dashboard>.role-grid>article:nth-child(2){order:0}#view-parent-dashboard>.role-grid>article:nth-child(1){order:1}#view-parent-dashboard>.stat-grid{order:2}.admin-operations-section{border-color:var(--line)}.admin-chart-legend{color:#56645e}.admin-attendance-panel,.admin-class-panel,.admin-operations-panel{min-width:0}.table-wrap{border-radius:9px}table{border-collapse:separate;border-spacing:0}thead th{background:#f5f7f5;color:#52615b;font-size:10px;letter-spacing:.06em;text-transform:uppercase}tbody td{border-bottom-color:#e8ece9}tbody tr:hover td{background:#f8faf8}.search,.select-inline,.segmented{border-radius:8px}input,select,textarea{border-color:#d7dfda;border-radius:8px;min-height:42px}input:focus,select:focus,textarea:focus{border-color:var(--academy)}.btn-primary{border-radius:8px;min-height:44px;background:var(--academy);transition:background-color .16s ease,transform .16s ease}.btn-primary:hover{background:#1d403b;opacity:1}.btn-primary:active{transform:translateY(1px)}.outline-button{border-radius:8px;font-size:12px}.text-button{color:var(--academy)}button:disabled{cursor:not-allowed;opacity:.58}.demo-mode-banner{background:#fff7dd;color:#614709;border-bottom-color:#ead89c}.owner-onboarding-panel{max-width:960px}.owner-onboarding-section{border-color:var(--line)}.owner-tier-card{background:#fff}.owner-tier-card:has(input:checked){border-color:var(--academy);background:#f4f8f5}.form-feedback.error{color:#a93629}.form-feedback.success{color:#226746}@media (max-width: 1100px){.sidebar{width:230px}.main-content{margin-left:230px}.page-wrap{padding-left:24px;padding-right:24px}.admin-dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 860px){.sidebar{width:270px}.main-content{margin-left:0}.topbar{min-height:62px;padding:8px 18px}.page-wrap{padding:24px 20px 42px}}@media (max-width: 640px){.topbar{min-height:60px;padding:8px 14px;gap:8px}.crumb{gap:6px;font-size:12px}.top-actions{gap:6px}.topbar-user>span:last-child{display:none}.topbar-user .avatar{width:32px;height:32px}#push-enable-btn,#install-app-btn{font-size:11px;padding:0 9px;min-height:34px}.page-wrap{padding:21px 14px 34px}.welcome-row{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:17px}.welcome-row h1{font-size:29px}.subcopy{font-size:13px}.panel{padding:16px;border-radius:11px}.panel-heading h2{font-size:17px}.stat-grid,.admin-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-dashboard-metrics .stat-card{padding:13px 12px}.admin-dashboard-metrics .stat-card>strong,.student-stat>strong{font-size:24px}.lower-grid,.dashboard-grid,.role-grid{grid-template-columns:minmax(0,1fr)}.admin-priority-grid>.admin-operations-panel{order:0}.admin-priority-grid>.table-panel{order:1}.table-wrap{overflow-x:auto}.table-wrap table{min-width:620px}.owner-onboarding-panel{padding:16px}}.owner-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.owner-schools-panel{margin-top:16px}.owner-school-status{display:block;margin-top:3px;color:var(--muted);font-size:10px;text-transform:capitalize}.owner-onboarding-panel{max-width:920px;margin:0 auto;padding:26px}.owner-onboarding-panel>.subcopy{margin:8px 0 22px}.owner-step-count{color:var(--muted);font-size:12px;font-weight:650}.owner-onboarding-form{margin-top:18px}.owner-onboarding-section{padding:22px 0;border-top:1px solid var(--line)}.owner-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.owner-section-heading h3{margin:0;color:var(--ink);font-size:16px;line-height:1.3}.owner-section-heading p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.owner-role-badge{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--teal) 10%,white);color:var(--teal);font-size:11px;font-weight:700}.owner-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.owner-form-grid .form-group{display:grid;gap:7px;color:var(--ink);font-size:12px;font-weight:650}.owner-form-grid input,.owner-form-grid select{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:500 13px DM Sans,sans-serif}.owner-form-grid input:focus,.owner-form-grid select:focus{outline:2px solid color-mix(in srgb,var(--teal) 28%,transparent);border-color:var(--teal)}.owner-form-grid small{font-weight:500}.owner-admin-note{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.owner-tier-fieldset{min-width:0;margin:0;padding:0;border:0}.owner-tier-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:12px}.owner-tier-card{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:10px;min-height:94px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.owner-tier-card:has(input:checked){border-color:var(--teal);background:color-mix(in srgb,var(--teal) 5%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 12%,transparent)}.owner-tier-card:focus-within{outline:2px solid color-mix(in srgb,var(--teal) 28%,transparent);outline-offset:2px}.owner-tier-card input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--teal)}.owner-tier-copy,.owner-tier-price{display:grid;gap:5px}.owner-tier-copy strong{color:var(--ink);font-size:14px}.owner-tier-copy small,.owner-tier-price small{color:var(--muted);font-size:10px;font-weight:500}.owner-tier-price{justify-items:end;color:var(--ink);font-size:13px;font-weight:750;text-align:right;white-space:nowrap}.owner-plan-price{min-height:18px;margin:11px 0 17px;color:var(--teal);font-size:12px;font-weight:650}.owner-prepaid-grid{max-width:600px}.owner-onboarding-actions{display:flex;justify-content:flex-end;margin-top:22px}.owner-onboarding-success{display:grid;gap:8px;margin-top:18px;padding:16px;border:1px solid #b9e5d2;border-radius:10px;background:#f1fbf6;color:#176647;font-size:13px;overflow-wrap:anywhere}.owner-onboarding-success small{color:var(--muted)}.owner-invite-next{margin-top:4px;padding-top:12px;border-top:1px solid #ccebdd}.owner-refresh-note{color:#87510b}.owner-onboarding-panel [hidden]{display:none!important}@media (max-width: 760px){.owner-stat-grid{grid-template-columns:1fr}}@media (max-width: 640px){.owner-onboarding-panel{padding:18px}.owner-form-grid,.owner-tier-options{grid-template-columns:1fr;gap:12px}.owner-section-heading{align-items:flex-start;flex-direction:column}.owner-tier-price{font-size:12px}}.brand span,.nav-label,.user-row small,.logout-btn,.stat-label,.stat-trend,.role-muted,.muted-cell,.owner-school-status,.owner-tier-copy small,.owner-tier-price small,.form-group label,.owner-form-grid .form-group,.owner-step-count,.owner-role-badge,.owner-plan-price,thead th,small{font-size:max(12px,.8em)}.brand span,.nav-label,.user-row small,.stat-label,.stat-trend,.role-muted,.muted-cell,.owner-school-status,.owner-tier-copy small,.owner-tier-price small,.owner-step-count,.form-feedback,.admin-chart-legend,.admin-class-row-meta,.timeline-item span,.event-mini-row small{color:#5b6870}.text-button,a:hover,.btn-coral:hover,.text-button:hover{color:#a84538}.sidebar .brand span,.sidebar .nav-label,.sidebar .muted-cell,.sidebar .role-muted,.sidebar small{color:#bdc8c4}.avatar-coral,.coral{background-color:#a94d41}@media (max-width: 640px){.nav-label{font-size:12px}.stat-label,.stat-trend,.muted-cell,small{font-size:max(12px,.86em)}.owner-tier-copy small,.owner-tier-price small{font-size:12px}}@media (max-width: 640px){.gate-checkin-form .form-row>label,.pickup-pin-panel .form-row>label{flex:0 1 auto;min-height:0;min-width:100%}}@media (max-width: 640px){.admin-priority-grid .admin-operations-section+.admin-operations-section{padding-right:12px;padding-left:12px}}
