:root{color-scheme:light;--ink: #1b2435;--muted: #7a8395;--line: #eaedf2;--canvas: #f7f8fb;--white: #fff;--navy: #162544;--blue: #4169e1;--blue-soft: #eef2ff;--green: #1c9b72;--green-soft: #e8f7f1;--amber: #bd8124;--amber-soft: #fff5e3;--red: #c45b5b;--shadow: 0 10px 35px rgba(28, 43, 76, .07);font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{background:var(--white);border-right:1px solid var(--line);bottom:0;display:flex;flex-direction:column;left:0;padding:25px 16px 14px;position:fixed;top:0;width:250px;z-index:10}.app-shell.sidebar-collapsed .sidebar{transform:translate(-105%)}.app-shell.sidebar-collapsed .main-area{margin-left:0}.sidebar,.main-area{transition:transform .22s ease,margin-left .22s ease}.brand{align-items:center;color:var(--navy);display:flex;font:800 20px Manrope,sans-serif;gap:10px;letter-spacing:-1px;margin:0 11px 29px;text-decoration:none}.brand-light{color:#8590a3;font-weight:600}.brand-mark{display:grid;gap:3px;grid-template-columns:repeat(2,8px);transform:rotate(-9deg)}.brand-mark span{background:#5c78e9;border-radius:2px;height:8px;width:8px}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:#9ab2ff}.school-switcher{align-items:center;background:#fafbfe;border:1px solid var(--line);border-radius:10px;display:flex;gap:10px;margin-bottom:27px;padding:10px 9px}.school-avatar{align-items:center;background:#edf0ff;border-radius:8px;color:#4968dc;display:flex;font:700 16px Manrope,sans-serif;height:36px;justify-content:center;width:36px}.school-info,.user-info{display:grid;gap:3px;min-width:0}.school-info strong,.user-info strong{font-size:12px;font-weight:700}.school-info span,.user-info span{color:var(--muted);font-size:11px}.school-info{flex:1}.icon-button{align-items:center;background:transparent;border:0;color:#7c8495;display:inline-flex;justify-content:center}.switch-caret{font-size:16px}.nav-label{color:#9aa1af;font-size:9px;font-weight:700;letter-spacing:1.15px;margin:0 12px 10px}.nav-label-spaced{margin-top:24px}.main-nav{display:flex;flex:1;flex-direction:column;gap:3px;min-height:0;overflow-y:auto}.nav-link{align-items:center;background:transparent;border:0;border-radius:7px;color:#687286;display:flex;font-size:12px;gap:12px;min-height:38px;padding:0 12px;text-align:left;transition:background .18s,color .18s;width:100%}.nav-link:hover{background:#f7f8fc;color:var(--navy)}.nav-link.active{background:var(--blue-soft);color:#4160cf;font-weight:700}.nav-icon{align-items:center;display:inline-flex;font-size:17px;height:19px;justify-content:center;width:18px}.nav-count{background:#f0f2f7;border-radius:20px;color:#8790a0;font-size:10px;margin-left:auto;padding:3px 7px}.sidebar-bottom{margin-top:auto}.help-card{background:#f7f8fd;border:1px solid #eef0f6;border-radius:10px;margin:0 3px 18px;padding:13px 13px 12px}.help-icon{align-items:center;background:#e9edff;border-radius:7px;color:#5572dd;display:flex;font-size:16px;height:28px;justify-content:center;margin-bottom:11px;width:28px}.help-card strong{font-size:11px}.help-card p{color:var(--muted);font-size:10px;line-height:1.5;margin:5px 0 10px}.help-link{background:transparent;border:0;color:#536ed0;font-size:10px;font-weight:700;padding:0}.help-link span{margin-left:4px}.settings-link{margin-bottom:13px}.sidebar-user{align-items:center;border-top:1px solid var(--line);display:flex;gap:9px;padding:14px 5px 0}.user-avatar{align-items:center;background:#f8e9d6;border-radius:50%;color:#8e633b;display:flex;font-size:10px;font-weight:700;height:32px;justify-content:center;width:32px}.user-info{flex:1}.more-button{font-size:20px}.main-area{margin-left:250px;min-height:100vh}.topbar{align-items:center;background:#fffffff0;border-bottom:1px solid var(--line);display:flex;height:72px;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:5}.breadcrumb{align-items:center;color:#969eac;display:flex;font-size:12px;gap:10px;white-space:nowrap}.breadcrumb strong{color:var(--ink);font-weight:600}.crumb-divider{color:#c2c7d0}.topbar-actions{align-items:center;display:flex;gap:18px}.search-box{align-items:center;background:#f8f9fb;border:1px solid #eff0f4;border-radius:7px;color:#8b93a2;display:flex;gap:8px;height:35px;padding:0 9px;width:203px}.search-box>span{font-size:19px;transform:rotate(-20deg)}.search-box input{background:transparent;border:0;color:var(--ink);font-size:11px;min-width:0;outline:0;width:100%}.search-box input::placeholder{color:#a3a9b4}kbd{background:#fff;border:1px solid #e5e8ed;border-radius:4px;color:#a2a9b4;font:9px DM Sans,sans-serif;padding:2px 4px;white-space:nowrap}.notification-button{font-size:17px;position:relative}.notification-button i{background:#ef7979;border:2px solid white;border-radius:50%;height:7px;position:absolute;right:-1px;top:1px;width:7px}.topbar-divider{background:var(--line);height:30px;width:1px}.term-control{display:grid;gap:4px}.term-label{color:#a1a8b5;font-size:8px;font-weight:700;letter-spacing:.8px}.term-control select{appearance:none;background:transparent;border:0;color:#384256;font-size:11px;font-weight:600;outline:0;padding-right:14px}.term-control:after{color:#939baa;content:"⌄";font-size:12px;margin-left:-13px;pointer-events:none;position:relative;top:-19px;width:10px}.term-control select{margin-bottom:-12px}.mobile-menu{background:#f5f7fb;border:1px solid #e6eaf1;border-radius:7px;color:#35425b;display:inline-flex;flex:0 0 40px;font-size:21px;height:40px;margin-right:14px;width:40px}.mobile-menu:hover{background:#eef2ff;color:#4160cf}.sidebar-backdrop{background:#16254470;border:0;display:none;inset:0;position:fixed;z-index:8}.page-content{margin:0 auto;max-width:1440px;min-height:calc(100vh - 120px);padding:32px 36px 40px}.page-heading{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:25px}.eyebrow{color:#939bab;display:block;font-size:9px;font-weight:700;letter-spacing:1.1px;margin-bottom:8px}h1,h2,h3,p{margin-top:0}h1{color:#1d2940;font:700 25px Manrope,sans-serif;letter-spacing:-.7px;margin:0}.page-description{color:#8a92a1;font-size:12px;margin:7px 0 0}.heading-actions{align-items:center;display:flex;gap:9px}.button{align-items:center;border:1px solid transparent;border-radius:6px;display:inline-flex;font-size:11px;font-weight:600;gap:7px;justify-content:center;min-height:35px;padding:0 12px;transition:.15s ease}.button-primary{background:#4d68d9;box-shadow:0 3px 8px #536dd526;color:#fff}.button-primary:hover{background:#3f5aca;transform:translateY(-1px)}.button-secondary{background:#fff;border-color:#e7eaf0;color:#596579}.button-secondary:hover{background:#f8f9fc;border-color:#d9deea}.button-danger{background:#fff5f4;border-color:#f3dddd;color:#b95757}.button-icon{font-size:16px;font-weight:400;line-height:1}.metrics-grid{display:grid;gap:15px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:19px}.metric-card,.panel{background:#fff;border:1px solid #edf0f4;border-radius:9px;box-shadow:0 2px 6px #1f2b4704}.metric-card{min-height:132px;padding:16px 17px}.metric-top{align-items:center;color:#818a9b;display:flex;font-size:10px;justify-content:space-between}.metric-icon{align-items:center;background:var(--icon-bg,#eef2ff);border-radius:8px;color:var(--icon-color,#526de0);display:flex;font-size:17px;height:31px;justify-content:center;width:31px}.metric-value{color:#1c2941;font:700 25px Manrope,sans-serif;letter-spacing:-.8px;margin-top:11px}.metric-foot{align-items:center;color:#929aa8;display:flex;font-size:9px;gap:5px;margin-top:5px}.metric-change{color:var(--green);font-weight:700}.metric-change.neutral{color:#8e98a7}.content-grid{display:grid;gap:17px;grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr)}.panel{padding:18px}.panel-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:17px}.panel-title{color:#26334a;font:700 13px Manrope,sans-serif;margin:0}.panel-subtitle{color:#999fac;font-size:10px;margin:5px 0 0}.text-link{background:transparent;border:0;color:#536dd7;font-size:10px;font-weight:700;padding:3px}.submission-list{display:grid;gap:15px}.submission{align-items:center;display:grid;gap:10px;grid-template-columns:34px minmax(110px,1fr) minmax(100px,1.2fr) 35px}.class-avatar{align-items:center;background:var(--avatar-bg,#eef2ff);border-radius:8px;color:var(--avatar-color,#596ed0);display:flex;font-size:10px;font-weight:700;height:33px;justify-content:center;width:33px}.submission-name{color:#404b60;font-size:10px;font-weight:700}.submission-meta{color:#9ba2ae;font-size:9px;margin-top:4px}.progress-wrap{display:flex;align-items:center;gap:8px}.progress-track{background:#f0f2f5;border-radius:8px;height:5px;overflow:hidden;width:100%}.progress-fill{background:#7190ee;border-radius:inherit;height:100%}.progress-fill.complete{background:#48b28c}.progress-text{color:#939cab;font-size:9px;white-space:nowrap}.status-pill{border-radius:20px;display:inline-flex;font-size:9px;font-weight:600;padding:5px 8px;white-space:nowrap}.status-complete{background:#e8f7f1;color:#228764}.status-pending{background:#fff5e4;color:#a77728}.activity-list{display:grid}.activity-item{align-items:flex-start;display:flex;gap:10px;padding:2px 0 16px;position:relative}.activity-item:not(:last-child):before{background:#ebedf2;content:"";height:calc(100% - 15px);left:12px;position:absolute;top:25px;width:1px}.activity-icon{align-items:center;background:#eef2ff;border-radius:50%;color:#5974dc;display:flex;flex:0 0 25px;font-size:12px;height:25px;justify-content:center;position:relative}.activity-icon.green{background:#e8f7f1;color:#29906d}.activity-icon.amber{background:#fff4e1;color:#b6812d}.activity-copy{color:#687286;font-size:10px;line-height:1.45;padding-top:2px}.activity-copy strong{color:#39455a;font-weight:700}.activity-time{color:#a1a8b4;font-size:9px;margin-top:4px}.quick-row{display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin:18px 0}.quick-action{align-items:center;background:#fff;border:1px solid #edf0f4;border-radius:8px;color:#46536a;display:flex;gap:11px;min-height:65px;padding:10px 13px;text-align:left;transition:.15s}.quick-action:hover{border-color:#cad3f5;box-shadow:0 5px 15px #293f7810;transform:translateY(-1px)}.quick-icon{align-items:center;background:var(--icon-bg,#eef2ff);border-radius:8px;color:var(--icon-color,#516cda);display:flex;flex:0 0 34px;font-size:16px;height:34px;justify-content:center}.quick-action strong{display:block;font-size:10px}.quick-action span:last-child{color:#959dab;display:block;font-size:9px;margin-top:4px}.callout{align-items:center;background:#f0f4ff;border:1px solid #e6ecff;border-radius:8px;color:#6173a7;display:flex;font-size:10px;gap:9px;margin-top:18px;padding:11px 13px}.callout strong{color:#41568f}.table-panel{overflow:hidden;padding:0}.results-filters{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(180px,260px));margin-bottom:16px;padding:16px}.results-filters .form-field{margin:0}.results-filters select{width:100%}.report-filters{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(180px,1fr));margin-bottom:16px;padding:16px}.report-filters .form-field{margin:0}.report-filters select{width:100%}.results-prompt{color:var(--muted);font-size:11px;padding:17px}.table-toolbar{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:14px 17px}.table-toolbar .panel-title{margin:0}.table-toolbar .heading-actions{flex-wrap:wrap}.table-toolbar .heading-actions .table-search{width:180px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;min-width:700px;text-align:left;width:100%}th{background:#fbfcfd;color:#929aa8;font-size:9px;font-weight:700;letter-spacing:.3px;padding:11px 16px;white-space:nowrap}td{border-top:1px solid #f0f2f5;color:#536075;font-size:10px;padding:12px 16px;white-space:nowrap}tbody tr:hover{background:#fcfcfe}.student-cell{align-items:center;display:flex;gap:9px}.student-initials{align-items:center;background:#f0efff;border-radius:50%;color:#685da9;display:flex;font-size:9px;font-weight:700;height:29px;justify-content:center;width:29px}.student-name{color:#354157;font-size:10px;font-weight:700}.student-id{color:#9ba2af;font-size:9px;margin-top:3px}.table-select{background:#fff;border:1px solid #e8ebf0;border-radius:5px;color:#687286;font-size:10px;margin-left:8px;padding:7px 9px}.table-search{background:#fbfcfd;border:1px solid #eaedf2;border-radius:5px;font-size:10px;outline:0;padding:8px 10px;width:180px}.row-actions{background:transparent;border:0;color:#8791a2;font-size:18px}.empty-state{color:#8e97a5;padding:30px;text-align:center}.empty-state strong{color:#3c4960;display:block;margin-bottom:5px}.form-grid{display:grid;gap:15px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-field label{color:#596579;font-size:10px;font-weight:700}.form-field input,.form-field select,.form-field textarea{background:#fff;border:1px solid #e5e9ef;border-radius:6px;color:#3c485c;min-height:37px;outline:0;padding:9px 10px;width:100%}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#8194e6;box-shadow:0 0 0 3px #546ddb17}.form-help{color:#9aa2ae;font-size:9px;line-height:1.45}.modal-layer{align-items:center;background:#1b264399;display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:20}.modal-layer[hidden]{display:none}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 80px #1923413b;max-height:calc(100vh - 36px);max-width:520px;overflow-y:auto;width:100%}.modal-header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:21px 23px 17px}.modal-header h2{color:#1d2940;font:700 19px Manrope,sans-serif;margin:0}.modal-close{font-size:23px}.modal-body{padding:20px 23px 22px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:22px}.modal:has(.promotion-roster){max-width:820px}.promotion-bulk-actions{align-items:center;display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 10px}.promotion-bulk-actions>span{color:#687286;font-size:10px;font-weight:700;margin-right:4px}.promotion-summary{background:#f7f8fc;border-radius:6px;color:#596579;font-size:10px;font-weight:700;margin-bottom:10px;padding:9px 11px}.promotion-roster{max-height:min(48vh,520px)}.promotion-roster table{min-width:560px}.promotion-roster td:last-child{min-width:230px}.promotion-roster select{background:#fff;border:1px solid #e5e9ef;border-radius:6px;color:#3c485c;min-height:34px;padding:6px 8px;width:100%}.toast-region{bottom:20px;display:grid;gap:8px;position:fixed;right:22px;z-index:30}.toast{animation:toast-in .2s ease-out;background:#26334b;border-radius:7px;box-shadow:var(--shadow);color:#fff;font-size:11px;max-width:360px;padding:12px 15px}.toast.success{background:#236e58}.settings-grid{display:grid;gap:10px;grid-template-columns:1fr}.settings-grid .settings-accordion{overflow:hidden;padding:0}.settings-accordion>summary{align-items:center;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:15px 20px}.settings-accordion>summary::-webkit-details-marker{display:none}.settings-accordion>summary>span{display:grid;gap:4px}.settings-accordion>summary strong{color:#26334a;font:700 13px Manrope,sans-serif}.settings-accordion>summary small{color:#999fac;font-size:10px}.settings-accordion>summary i{border-bottom:2px solid #7c8799;border-right:2px solid #7c8799;height:8px;margin-right:4px;transform:rotate(45deg) translateY(-2px);transition:transform .18s;width:8px}.settings-accordion[open]>summary{border-bottom:1px solid var(--line)}.settings-accordion[open]>summary i{transform:rotate(225deg) translate(-2px,-1px)}.settings-accordion-body{padding:20px}.setting-row{align-items:center;border-bottom:1px solid #f0f2f5;display:flex;justify-content:space-between;padding:12px 0}.setting-row:last-child{border-bottom:0}.setting-row strong{color:#465267;display:block;font-size:10px}.setting-row span{color:#929aa8;display:block;font-size:9px;margin-top:4px}.switch{accent-color:#536fdf;height:15px;width:27px}.grade-band-editor{display:grid;gap:10px 12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}.grading-settings,.report-settings-panel{grid-column:1/-1}.report-config-filters{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0}.report-config-filters .form-field{margin:0}.report-config-filters select{width:100%}.archive-close-panel{align-items:center;display:flex;gap:18px;justify-content:space-between;margin-bottom:12px;padding:16px 18px}.archive-close-panel strong{color:#26334a;display:block;font:700 12px Manrope,sans-serif}.archive-close-panel p{color:#8b94a2;font-size:10px;line-height:1.5;margin:5px 0 0}.archive-close-actions{align-items:center;display:flex;gap:9px}.archive-close-actions select,.archive-filters select{background:#fff;border:1px solid #e5e9ef;border-radius:6px;color:#3c485c;min-height:37px;padding:8px 10px}.archive-filters{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;padding:16px}.archive-filters .form-field{margin:0;min-width:0}.archive-filters select{width:100%}.archive-filters select:disabled{background:#f5f6f9;color:#9aa2ae}.grade-band-editor{grid-template-columns:repeat(3,minmax(0,1fr))}.report-card-toolbar{align-items:flex-end;display:flex;gap:15px;justify-content:space-between;margin-bottom:14px}.report-card-toolbar .form-field{flex:1;margin:0;max-width:420px}.report-card-toolbar select{width:100%}.report-sms-page{display:grid;gap:13px;margin-bottom:14px;padding:16px}.report-sms-page>.form-field{margin:0;max-width:430px}.report-sms-context{align-items:center;color:#52658a;display:flex;flex-wrap:wrap;font-size:13px;font-weight:600;gap:8px}.report-sms-context span{background:#eef2ff;border-radius:20px;padding:6px 10px}.report-sms-actions{display:flex;flex-wrap:wrap;gap:8px}.report-sms-roster-heading{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:-7px}.report-sms-roster-heading strong{color:#303c51;font-size:14px}.report-sms-roster-heading span{color:#858e9e;font-size:11px}.report-sms-roster{border:1px solid var(--line);border-radius:7px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px;max-height:250px;overflow:auto;padding:6px 10px}.report-sms-student{align-items:center;border-bottom:1px solid #f0f2f5;display:flex;gap:9px;min-width:0;padding:8px 4px}.report-sms-student input{accent-color:#536fdf;flex:0 0 auto;height:16px;width:16px}.report-sms-student span{display:grid;min-width:0}.report-sms-student strong,.report-sms-student small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-sms-student strong{color:#39465b;font-size:12px}.report-sms-student input:disabled+span{opacity:.56}.report-sms-outcomes{border:1px solid var(--line);border-radius:7px;max-height:300px;overflow:auto}.report-sms-outcomes>div{border-bottom:1px solid var(--line);display:grid;gap:3px;padding:9px 11px}.report-sms-outcomes>div:last-child{border-bottom:0}.report-sms-outcomes strong{color:#39465b;font-size:12px}.report-sms-outcomes span{color:#858e9e;font-size:11px}.report-sms-preview{background:#f8f9fc;border:1px solid var(--line);border-radius:7px;margin:12px 0;padding:9px 11px}.report-sms-preview summary{color:#52658a;cursor:pointer;font-size:12px;font-weight:700}.report-sms-preview pre{color:#39465b;font:12px/1.5 DM Sans,sans-serif;margin:9px 0 0;max-height:180px;overflow:auto;white-space:pre-wrap}.report-sms-message-preview{margin-bottom:18px}.report-sms-message-preview h2{color:#303c51;font:700 16px Manrope,sans-serif;margin:0 0 10px}.report-sms-message-preview pre{background:#f8f9fc;border:1px solid var(--line);border-radius:7px;color:#39465b;font:13px/1.6 DM Sans,sans-serif;margin:0;padding:13px;white-space:pre-wrap}.report-card-page{aspect-ratio:210 / 297;background:#fff;border:1px solid #e1e4e9;box-shadow:0 8px 28px #1c2b4c1a;color:#20232a;display:flex;flex-direction:column;gap:2.5mm;margin:0 auto 32px;max-width:210mm;min-height:720px;overflow:hidden;padding:13mm 13mm 30mm;position:relative;width:100%}.report-card-page.report-card-dense{gap:1.5mm}.report-card-dense .report-card-header{min-height:23mm}.report-card-dense .report-student-summary{gap:1mm 4mm;padding:2mm}.report-card-dense table th,.report-card-dense table td{font-size:13px;padding:.9mm 1.2mm}.report-card-dense .report-student-summary div,.report-card-dense .report-card-school p,.report-card-dense .report-card-school span,.report-card-dense .report-card-school strong,.report-card-dense .report-subjects h2,.report-card-dense .report-grading h2{font-size:13px}.report-card-dense .report-comments{gap:1.5mm 6mm}.report-card-watermark{height:150mm;left:50%;object-fit:contain;opacity:.075;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:150mm;z-index:0}.report-card-page>*:not(.report-card-watermark){position:relative;z-index:1}.report-card-header{align-items:center;border-bottom:1px solid #aeb3bc;display:grid;gap:3mm;grid-template-columns:25mm minmax(0,1fr) 25mm;min-height:26mm;padding-bottom:2mm}.report-card-logo{align-items:center;display:flex;height:24mm;justify-content:center;width:25mm}.report-card-logo img{height:100%;object-fit:contain;width:100%}.report-card-school{align-items:center;display:flex;flex-direction:column;gap:.6mm;text-align:center}.report-card-school h1{color:#20232a;font:800 18px Manrope,sans-serif;letter-spacing:.3px;line-height:1.15;text-transform:uppercase}.report-card-school p,.report-card-school strong,.report-card-school span{margin:0}.report-card-school p,.report-card-school span{font-size:13px;line-height:1.2}.report-card-school strong{font-size:13px}.report-card-motto:empty{display:none}.report-student-summary{border:1px solid #aeb3bc;display:grid;gap:2mm 5mm;grid-template-areas:"student-name academic-year attendance" "student-class student-term student-average" "student-position . .";grid-template-columns:repeat(3,minmax(0,1fr));padding:3mm}.report-student-summary div{display:flex;font-size:13px;gap:4px;min-width:0}.report-student-summary strong{flex:0 0 auto}.report-student-summary span{overflow-wrap:anywhere}.report-student-name{grid-area:student-name}.report-academic-year{grid-area:academic-year}.report-attendance{grid-area:attendance}.report-class{grid-area:student-class}.report-term{grid-area:student-term}.report-average{grid-area:student-average}.report-position{grid-area:student-position}.report-subjects h2,.report-grading h2{color:#20232a;font:700 13px Manrope,sans-serif;margin:0 0 1.2mm}.report-card-page table{border-collapse:collapse;min-width:0;table-layout:fixed;text-align:left;width:100%}.report-card-page th,.report-card-page td{border:2px solid #4a4a4a;color:#20232a;font-size:13px;line-height:1.2;overflow-wrap:anywhere;padding:1.35mm 1.6mm;white-space:normal}.report-card-page th{background:#f5f6f8e0;font-weight:700}.report-subjects th:first-child,.report-subjects td:first-child{width:34%}.report-subjects th:last-child,.report-subjects td:last-child{width:25%}.report-subjects th:nth-child(2),.report-subjects th:nth-child(3),.report-subjects th:nth-child(4),.report-subjects th:nth-child(5){text-align:center;width:9%}.report-subjects td:nth-child(2),.report-subjects td:nth-child(3),.report-subjects td:nth-child(4),.report-subjects td:nth-child(5){text-align:center}.report-grading table{max-width:120mm}.report-grading th:first-child,.report-grading td:first-child{width:20%}.report-grading th:nth-child(2),.report-grading td:nth-child(2){text-align:center;width:26%}.report-comments{align-items:stretch;display:grid;gap:7mm 8mm;grid-template-areas:"attitude conduct" "class-teacher head-teacher";grid-template-columns:repeat(2,minmax(0,1fr));margin-top:auto;padding-top:2mm}.report-comments>div{align-items:baseline;display:flex;font-size:18px;gap:4px;line-height:1.25;min-height:7mm;min-width:0}.report-comments>div>span,.report-comments>div>strong{font-size:18px;line-height:1.25}.report-comments>div>strong{flex:0 0 auto;white-space:nowrap}.report-comments>div>span{border-bottom:1px solid #6d737d;flex:1 1 auto;min-height:6mm;min-width:8mm}.report-attitude{grid-area:attitude}.report-conduct{grid-area:conduct}.report-class-teacher{grid-area:class-teacher}.report-head-teacher{grid-area:head-teacher}.report-card-dates{border-top:1px solid #aeb3bc;display:flex;font-size:16px;justify-content:space-between;padding-top:2mm}#report-print-host{display:none}.score-sheet-controls{margin-bottom:14px}.score-sheet-controls .form-field{max-width:420px}.score-sheet-table{min-width:760px}.score-sheet-table .score-input{background:#fbfcff;border:1px solid #e3e8f0;border-radius:5px;color:#344159;max-width:100px;padding:8px;width:100%}.score-sheet-table .score-input:focus{border-color:#8194e6;outline:2px solid #546ddb17}.score-sheet-footer{align-items:center;color:#818b9b;display:flex;font-size:10px;justify-content:space-between;margin:14px 0}.app-footer{align-items:center;border-top:1px solid var(--line);color:#a0a7b3;display:flex;font-size:9px;justify-content:space-between;padding:13px 36px}.demo-note{align-items:center;display:flex;gap:6px}.demo-dot{background:#dca748;border-radius:50%;height:6px;width:6px}.mobile-overlay{display:none}@keyframes toast-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.sidebar{width:220px}.main-area{margin-left:220px}.topbar{padding:0 22px}.topbar-actions{gap:11px}.search-box{width:170px}.page-content{padding-left:22px;padding-right:22px}.quick-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.sidebar{box-shadow:12px 0 30px #1a294a16;transform:translate(-105%);width:250px}.app-shell:not(.sidebar-collapsed) .sidebar{transform:translate(0)}.app-shell:not(.sidebar-collapsed) .sidebar-backdrop{display:block}.main-area{margin-left:0}.mobile-menu{font-size:20px;margin-right:12px}.topbar{height:62px;justify-content:flex-start;padding:0 16px}.breadcrumb{flex:1}.topbar-actions .search-box,.topbar-actions .topbar-divider,.topbar-actions .term-control:first-of-type{display:none}.topbar-actions{gap:14px}.term-label{display:none}.term-control select{font-size:10px}.page-content{padding:25px 18px 32px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.app-footer{padding:12px 18px}}.nav-link{font-size:14px;min-height:42px}.school-info strong,.user-info strong{font-size:13px}.school-info span,.user-info span{font-size:12px}.breadcrumb{font-size:13px}.signed-in-pill{font-size:12px}.page-content{font-size:15px}.page-heading{margin-bottom:28px}h1{font-size:28px}.page-description{font-size:14px;line-height:1.55}.panel-title{font-size:15px}.panel-subtitle,.button{font-size:12px}.table-toolbar{padding:16px 19px}th{font-size:10px;padding:13px 16px}td{font-size:12px;padding:13px 16px}.form-field>span:first-child{font-size:12px}.form-field input,.form-field select{font-size:13px}.form-help{font-size:11px}.table-search,.table-select,.pager{font-size:12px}.results-prompt{font-size:13px}@media(max-width:540px){.topbar-actions .notification-button{display:none}.topbar-actions{margin-left:auto}.page-heading{align-items:flex-start;flex-direction:column;gap:15px}.page-heading .heading-actions{width:100%}.page-heading .heading-actions .button{flex:1}h1{font-size:24px}.metric-card{min-height:120px;padding:13px}.metric-value{font-size:22px}.quick-row{grid-template-columns:1fr 1fr;gap:8px}.quick-action{gap:8px;min-height:62px;padding:8px}.quick-icon{flex-basis:29px;height:29px}.submission{gap:7px;grid-template-columns:31px minmax(75px,1fr) minmax(80px,1fr)}.submission .status-pill{display:none}.settings-grid,.form-grid,.grade-band-editor,.archive-filters{grid-template-columns:1fr}.form-field.full{grid-column:auto}.panel{padding:14px}.app-footer{align-items:flex-start;flex-direction:column;gap:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}body{min-height:100vh}.auth-screen{background:#fff;display:grid;grid-template-columns:minmax(320px,.95fr) minmax(380px,1.05fr);min-height:100vh}.auth-brand-panel{background:radial-gradient(ellipse at 18% 80%,#334d8b 0,transparent 44%),linear-gradient(145deg,#142240,#1a2e56 70%,#293e69);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:38px clamp(30px,7vw,100px)}.auth-brand-panel .brand{color:#fff;margin:0}.auth-brand-panel .brand-light{color:#b8c5e1}.auth-brand-copy{margin:auto 0;max-width:480px;padding:70px 0}.auth-brand-copy .eyebrow{color:#a7b7df}.auth-brand-copy h1{color:#fff;font-size:clamp(36px,5vw,57px);letter-spacing:-2.4px;line-height:1.1;max-width:460px}.auth-brand-copy p{color:#c0cbe1;font-size:14px;line-height:1.7;margin:16px 0 0;max-width:400px}.auth-brand-footer{color:#a8b6d2;font-size:10px;letter-spacing:.35px}.auth-form-panel{align-items:center;display:flex;justify-content:center;padding:38px 28px}.auth-form-wrap{max-width:390px;width:100%}.auth-form-wrap h2{color:#1d2940;font:700 25px Manrope,sans-serif;letter-spacing:-.5px;margin:0}.auth-form{display:grid;gap:15px;margin-top:26px}.auth-form .form-field span{color:#596579;font-size:11px;font-weight:700}.auth-form .form-field input{height:43px}.auth-submit{height:42px;justify-content:space-between;margin-top:4px;padding:0 14px}.auth-divider{align-items:center;color:#a0a8b5;display:flex;font-size:10px;gap:12px;margin:22px 0 13px}.auth-divider:before,.auth-divider:after{background:#edf0f4;content:"";flex:1;height:1px}.auth-signup{width:100%}.auth-footnote{color:#929aa8;font-size:10px;line-height:1.6;margin:17px 0 0}.auth-back{margin-top:18px}.inline-message{background:#f0f4ff;border:1px solid #dfe7ff;border-radius:7px;color:#455c9d;font-size:11px;line-height:1.55;margin-top:15px;padding:11px 12px}.error-message{background:#fff5f4;border-color:#f1d9d8;color:#a24a4a}.setup-screen,.pending-screen{align-items:center;background:radial-gradient(ellipse at 50% 0,#edf1ff,transparent 50%),#f7f8fb;display:flex;justify-content:center;min-height:100vh;padding:22px}.setup-card,.pending-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-width:540px;padding:32px;width:100%}.setup-brand{margin:0 0 34px}.public-footer{align-items:center;color:#9aa2b0;display:flex;flex-wrap:wrap;font-size:11px;gap:8px;justify-content:center;margin-top:25px}.public-footer a,.privacy-content a,.privacy-footer>a:last-child{color:#4965c9;font-weight:600;text-decoration:none}.public-footer a:hover,.privacy-content a:hover,.privacy-footer>a:last-child:hover{text-decoration:underline}.privacy-page{background:#f7f8fb;margin:0 auto;max-width:1440px;min-height:100vh;padding:0 clamp(22px,6vw,88px)}.privacy-header{align-items:center;border-bottom:1px solid #e9edf3;display:flex;justify-content:space-between;min-height:78px}.privacy-brand{font-size:19px;margin:0}.privacy-home-link{color:#586783;font-size:13px;font-weight:600;text-decoration:none}.privacy-home-link span{color:#5872d6;margin-left:5px}.privacy-home-link:hover{color:#3f5aca}.privacy-hero{background:radial-gradient(ellipse at 8% 0,#eef1ff 0,transparent 54%),#fff;border:1px solid #edf0f5;border-radius:16px;margin:34px auto 28px;max-width:1100px;padding:clamp(27px,5vw,54px)}.privacy-hero .eyebrow{color:#5870ca}.privacy-hero h1{font-size:clamp(32px,5vw,46px);letter-spacing:-1.5px}.privacy-hero>p{color:#6f788a;font-size:16px;line-height:1.7;margin:13px 0 21px;max-width:740px}.privacy-updated{align-items:center;color:#68748a;display:flex;font-size:12px;font-weight:600;gap:8px}.privacy-status-dot{background:#36a47b;border-radius:50%;height:7px;width:7px}.privacy-layout{align-items:start;display:grid;gap:25px;grid-template-columns:235px minmax(0,1fr);margin:0 auto;max-width:1100px}.privacy-toc{background:#fff;border:1px solid #edf0f4;border-radius:12px;display:grid;gap:2px;padding:17px 12px;position:sticky;top:20px}.privacy-toc strong{color:#33415b;font-size:12px;margin:0 9px 8px}.privacy-toc a{border-radius:6px;color:#707b8d;font-size:11px;line-height:1.45;padding:7px 9px;text-decoration:none}.privacy-toc a:hover,.privacy-toc a:focus-visible{background:#f2f4ff;color:#425fc9;outline:none}.privacy-content{background:#fff;border:1px solid #edf0f4;border-radius:12px;padding:clamp(20px,4vw,42px)}.privacy-section{border-bottom:1px solid #edf0f4;display:grid;gap:14px;grid-template-columns:34px minmax(0,1fr);padding:25px 0;scroll-margin-top:20px}.privacy-section:first-child{padding-top:0}.privacy-section:last-child{border-bottom:0;padding-bottom:0}.privacy-section-number{color:#7285da;font:700 11px Manrope,sans-serif;letter-spacing:.5px;padding-top:5px}.privacy-section h2{color:#24314a;font:700 18px Manrope,sans-serif;letter-spacing:-.3px;margin:0 0 12px}.privacy-section p,.privacy-section li{color:#626e81;font-size:13px;line-height:1.8}.privacy-section p{margin:0 0 12px}.privacy-section p:last-child{margin-bottom:0}.privacy-section ul{display:grid;gap:8px;margin:0 0 14px;padding-left:20px}.privacy-section li{padding-left:2px}.privacy-section li::marker{color:#7285da}.privacy-section strong{color:#3f4d65}.privacy-note{background:#f4f6ff;border:1px solid #e6eafe;border-radius:8px;color:#53628a;font-size:12px;line-height:1.65;padding:13px 15px}.privacy-contact{background:#f8f9fc;border:1px solid #edf0f4;border-radius:9px;display:grid;font-style:normal;gap:8px;margin-top:13px;padding:17px}.privacy-contact strong{color:#293751;font-size:14px}.privacy-contact span,.privacy-contact a{color:#667286;font-size:12px}.privacy-contact a{color:#4965c9;text-decoration:none}.privacy-contact a:hover{text-decoration:underline}.privacy-footer{align-items:center;border-top:1px solid #e7ebf1;color:#929aaa;display:flex;font-size:11px;gap:18px;justify-content:space-between;margin:36px auto 0;max-width:1100px;min-height:78px}.privacy-footer>a:last-child{font-size:11px}.legal-footer-links{align-items:center;display:flex;flex-wrap:wrap;gap:14px}.legal-footer-links a{color:#667286;font-size:11px;text-decoration:none}.legal-footer-links a:hover,.legal-footer-links a[aria-current=page]{color:#4965c9}@media(max-width:760px){.privacy-page{padding:0 18px}.privacy-layout{grid-template-columns:1fr}.privacy-toc{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.privacy-toc strong{grid-column:1 / -1}.privacy-content{padding:22px 18px}}@media(max-width:480px){.privacy-header{min-height:66px}.privacy-brand{font-size:17px}.privacy-home-link{font-size:11px}.privacy-hero{margin:22px auto 17px}.privacy-hero>p{font-size:14px}.privacy-toc{grid-template-columns:1fr}.privacy-section{gap:7px;grid-template-columns:27px minmax(0,1fr);padding:21px 0}.privacy-section h2{font-size:16px}.privacy-section p,.privacy-section li{font-size:12px}.privacy-footer{align-items:flex-start;flex-direction:column;gap:10px;padding:18px 0}.public-footer{line-height:1.8}}.setup-card h1,.pending-card h1{font:700 24px Manrope,sans-serif;margin:0 0 8px}.setup-list{color:#697387;font-size:12px;line-height:1.8;margin:20px 0 24px;padding-left:20px}.setup-card code,.setup-list code{background:#f3f5f9;border-radius:3px;color:#4d5f8c;padding:2px 4px}.pending-card .button{margin:12px 8px 0 0}.setup-sql{background:#f3f5f9;border:1px solid var(--line);border-radius:7px;color:#35425b;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;margin:16px 0 10px;overflow-x:auto;padding:12px;white-space:pre}.setup-sql code{font:inherit}.signed-in-pill{color:#858e9e;font-size:10px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delegation-pill{background:#fff4e3;border-radius:16px;color:#9e6c1e;font-size:9px;font-weight:700;padding:7px 10px;white-space:nowrap}.button-small{font-size:9px;min-height:27px;padding:0 8px}.row-actions-wrap{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.form-field{display:grid;gap:6px}.form-field>span:first-child{color:#596579;font-size:10px;font-weight:700}.form-field input,.form-field select{background:#fff;border:1px solid #e5e9ef;border-radius:6px;color:#3c485c;min-height:37px;outline:none;padding:9px 10px;width:100%}.form-field input:focus,.form-field select:focus{border-color:#8194e6;box-shadow:0 0 0 3px #546ddb17}.form-field.full{grid-column:1/-1}.form-help{color:#969eaa;display:block;font-size:9px;line-height:1.55;margin:7px 0}.checkbox-field{align-items:center;display:flex;gap:9px}.checkbox-field input{accent-color:#536fdf;min-height:auto;width:auto}.assignment-options{border:1px solid #e9edf3;border-radius:7px;display:grid;gap:2px;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0;max-height:240px;overflow:auto;padding:11px}.assignment-options legend{color:#596579;font-size:10px;font-weight:700;padding:0 5px}.assignment-options label{align-items:center;border-radius:5px;color:#566176;display:flex;font-size:10px;gap:8px;padding:7px 5px}.assignment-options label:hover{background:#f7f8fc}.assignment-options input{accent-color:#536fdf}.callout{line-height:1.5}.table-toolbar{gap:15px}.table-search{height:33px}.pager{align-items:center;color:#8992a1;display:flex;font-size:10px;justify-content:space-between;padding:13px 2px}.pager>div{display:flex;gap:7px}.pager button:disabled{cursor:not-allowed;opacity:.45}.loading-state{align-items:center;color:#8892a2;display:flex;font-size:11px;gap:10px;justify-content:center;min-height:190px}.loading-spinner{animation:spin .8s linear infinite;border:2px solid #e4e9f4;border-radius:50%;border-top-color:#536fdf;height:17px;width:17px}body.network-loading .loading-state{visibility:hidden}#network-loader{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#e1e7f4b3;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}#network-loader[hidden]{display:none}.network-loader-content{align-items:center;display:flex;flex-direction:column;gap:19px}.network-loader-logo{animation:logo-pulse 1.7s ease-in-out infinite;height:auto;max-width:min(380px,82vw)}.network-loader-message{color:#35425b;font-size:11px;letter-spacing:.2px}.network-loader-track{background:#e5e9f2;border-radius:10px;height:3px;overflow:hidden;width:112px}.network-loader-track span{animation:loader-progress 1.25s ease-in-out infinite;background:#5c78e9;border-radius:inherit;display:block;height:100%;width:42%}.grade{color:#526bd2;font-weight:700}.archive-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:14px;margin-bottom:12px;padding-bottom:13px}.archive-heading img{height:50px;object-fit:contain;width:58px}.archive-heading div{display:grid;gap:4px}.archive-heading strong{color:#303c51;font:700 14px Manrope,sans-serif}.archive-heading span{color:#7d8798;font-size:9px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes logo-pulse{0%,to{opacity:.78;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}@keyframes loader-progress{0%{transform:translate(-115%)}to{transform:translate(255%)}}@media(prefers-reduced-motion:reduce){.network-loader-logo,.network-loader-track span{animation:none}}@media(max-width:800px){.auth-screen{grid-template-columns:1fr}.auth-brand-panel{min-height:280px;padding:24px}.auth-brand-copy{margin:32px 0 0;padding:8px 0 20px}.auth-brand-copy h1{font-size:34px}.auth-form-panel{padding:32px 23px 45px}.signed-in-pill,.delegation-pill{display:none}.assignment-options,.report-config-filters{grid-template-columns:1fr}.report-card-toolbar{align-items:stretch;flex-direction:column}.report-card-toolbar .form-field{max-width:none}.report-sms-roster{grid-template-columns:1fr}.archive-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-close-panel,.archive-close-actions{align-items:stretch;flex-direction:column}.archive-close-actions select{width:100%}}@media(max-width:540px){.promotion-bulk-actions{align-items:stretch}.promotion-bulk-actions>span{flex-basis:100%}.promotion-bulk-actions .button{flex:1 1 auto}.settings-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.table-toolbar{align-items:flex-start;flex-direction:column}.table-search{width:100%}.results-filters,.report-filters{grid-template-columns:1fr}.table-toolbar .heading-actions{width:100%}.table-toolbar .heading-actions .table-search{flex:1 1 160px;width:auto}.page-heading .heading-actions{flex-wrap:wrap}.page-heading .heading-actions .button{flex:1 1 auto}.row-actions-wrap{align-items:flex-start;flex-direction:column}}#page-content{font-size:16px;line-height:1.5}#page-content .page-heading h1{font-size:30px;line-height:1.2}#page-content .eyebrow{font-size:11px}#page-content .page-description{font-size:15px}#page-content .panel-title,.settings-accordion>summary strong{font-size:17px}#page-content .panel-subtitle,.metric-top,.metric-foot,.submission-name,.submission-meta,#page-content .activity-copy,.activity-time,.quick-action strong,.quick-action span:last-child,#page-content .callout,.status-pill,.progress-text,.text-link,.results-prompt,#page-content .form-help,.table-search,.table-select,.pager,.score-sheet-footer,#page-content .setting-row strong,.setting-row span,.archive-close-panel p{font-size:13px}#page-content .metric-value{font-size:30px}#page-content .quick-action{font-size:14px}#page-content .button,.table-toolbar .button{font-size:14px;min-height:40px}#page-content .table-panel th{font-size:12px}#page-content .table-panel td{font-size:14px}#page-content .form-field>span:first-child,#page-content .assignment-options legend,#page-content .assignment-options label,#page-content .report-config-filters label,#page-content .report-filters label{font-size:14px}#page-content .form-field input,#page-content .form-field select,#page-content .form-field textarea,#page-content .results-filters select,#page-content .report-filters select,#page-content .report-config-filters select,#page-content .archive-filters select,#page-content .archive-close-actions select{font-size:14px;min-height:42px}#page-content .nav-count{font-size:12px}#modal-layer .modal-body{font-size:15px;line-height:1.5}#modal-layer .modal-body .form-help,#modal-layer .modal-body .callout,#modal-layer .modal-body .form-field>span:first-child,#modal-layer .modal-body .assignment-options label{font-size:13px}#modal-layer .modal-body .form-field input,#modal-layer .modal-body .form-field select{font-size:14px;min-height:42px}#modal-layer .modal-body th{font-size:12px}#modal-layer .modal-body td{font-size:14px}#modal-layer .promotion-bulk-actions>span,#modal-layer .promotion-summary{font-size:13px}@media print{body{background:#fff}body:not(.printing-results) .app-shell{display:none!important}body.printing-results .sidebar,body.printing-results .topbar,body.printing-results .app-footer,body.printing-results .heading-actions,body.printing-results .table-toolbar,body.printing-results .pager{display:none!important}body.printing-results .app-shell{display:block!important}body.printing-results .main-area{margin:0!important}body.printing-results .page-content{min-height:0!important;padding:0!important}body.printing-results .page-heading{display:block!important;margin-bottom:12px!important}#modal-layer{background:#fff!important;display:block!important;inset:auto!important;overflow:visible!important;padding:0!important;position:static!important}#modal-layer[hidden]{display:none!important}#modal-layer .modal{border:0!important;box-shadow:none!important;max-height:none!important;max-width:none!important;overflow:visible!important;width:100%!important}#modal-layer .modal-header,.modal-footer,.modal-close{display:none!important}#modal-layer .modal-body{padding:0!important}#modal-layer .table-scroll{overflow:visible!important}#modal-layer table{min-width:0!important}#modal-layer th,#modal-layer td{color:#222!important;font-size:9px!important;padding:5px!important;white-space:normal!important}@page{size:A4 portrait;margin:0}body.printing-report-cards{background:#fff!important;margin:0!important}body.printing-report-cards #app,body.printing-report-cards #toast-region,body.printing-report-cards #network-loader{display:none!important}body.printing-report-cards #report-print-host{display:block!important}body.printing-report-cards .report-card-page{aspect-ratio:auto!important;border:0!important;box-shadow:none!important;height:297mm!important;margin:0!important;max-width:none!important;min-height:0!important;padding:13mm 13mm 30mm!important;width:210mm!important}body.printing-report-cards .report-card-page:not(:last-child){break-after:page;page-break-after:always}body.printing-report-cards .report-card-page:last-child{break-after:auto;page-break-after:auto}}
