/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-serif:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.capitalize{text-transform:capitalize}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@font-face{font-family:Permanent Marker;src:url(/fonts/PermanentMarker-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--font-serif:"Sora Variable";--font-sans:"Manrope Variable";--ink:#101d36;--ink-soft:#273651;--ivory:#f7f3ea;--paper:#fffdf8;--line:#c9bda8;--gold:#8a5f19;--gold-soft:#eee1c7;--green:#08715b;--green-soft:#ddf1e9;--red:#b5463f;--red-soft:#f8e6e2;--slate:#455168;--shadow:0 22px 55px #101d361f}*{box-sizing:border-box}html{min-width:320px}body,html{background:var(--ivory)}body{min-height:100vh;color:var(--ink);font-family:var(--font-sans),sans-serif;margin:0;font-size:15px}button,input,select,textarea{font:inherit}button{color:inherit}a,button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #b38a4259}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-serif),Georgia,serif;letter-spacing:-.018em;font-weight:600}.brand{color:#fff;align-items:center;gap:13px;display:flex}.brand-mark{object-fit:contain;border-radius:12px;width:48px;height:48px;display:block}.brand>div:last-child{gap:5px;line-height:1;display:grid}.brand strong{font-family:var(--font-serif);font-size:22px;font-weight:600}.brand span{color:#c7cfdb;text-transform:uppercase;letter-spacing:.22em;font-size:8px;font-weight:700}.brand.compact .brand-mark{width:42px;height:42px}.brand.compact strong{font-size:19px}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;align-items:center;gap:7px;margin-bottom:12px;font-size:10px;display:inline-flex}.eyebrow.light{color:#e7c47b}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:9px;min-height:45px;padding:0 20px;font-size:13px;font-weight:800;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--gold);color:#101827;box-shadow:0 9px 24px #b38a4233}.button-primary:hover:not(:disabled){background:#c39a4f}.button-dark{background:var(--ink);color:#fff}.button-outline{border:1px solid var(--line);background:#ffffff73}.button-ghost{color:var(--slate);background:0 0;border:0}.button-small{border-radius:8px;min-height:34px;padding:0 10px;font-size:9px}.button-quiet{color:var(--ink);border:1px solid var(--line);background:0 0}.button-wide{width:100%}.button-danger{color:#fff;background:var(--red);box-shadow:0 9px 24px #b5463f2e}.danger-text{color:var(--red)!important}.text-button{color:var(--ink);border:0;align-items:center;gap:4px;padding:4px;font-size:12px;font-weight:800;display:inline-flex}.icon-button,.text-button{cursor:pointer;background:0 0}.icon-button{border:1px solid var(--line);border-radius:10px;place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-button.inverse{color:#fff;background:#ffffff12;border-color:#fff3}.login-page{--login-header-height:clamp(78px,10vh,96px);background:#f4f7fb;min-height:560px}.login-header{background:#fffffff5;border-bottom:1px solid #dce3ed;align-items:center;display:flex}.login-header-inner{justify-content:space-between;align-items:center;gap:24px;width:min(100%,1640px);margin:0 auto;padding:0 clamp(28px,4.5vw,76px);display:flex}.login-header .brand{color:var(--ink)}.brand.institutional .brand-mark{color:#f4cf75;background:linear-gradient(145deg,#142c59,#071a3f);border:2px solid #d4a43e;border-radius:19px 19px 24px 24px;width:65px;height:64px;font-size:16px;position:relative;box-shadow:0 0 0 4px #fff,0 0 0 6px #c18f2ba6}.brand.institutional .brand-mark:before{color:#c7932f;font-size:15px;position:absolute;top:-19px}.brand.institutional strong{color:#0b2a61;font-size:clamp(26px,2.25vw,38px)}.brand.institutional small{color:#b67c16;letter-spacing:.025em;font-size:15px;font-weight:700}.login-support{color:#0d2d67;cursor:pointer;background:#fff;border:1px solid #ccd6e4;border-radius:12px;align-items:center;gap:10px;min-height:52px;padding:0 20px;font-size:13px;font-weight:800;display:inline-flex}.login-support:hover{border-color:#9eacc1;box-shadow:0 8px 22px #101d3612}.login-content{height:calc(100svh - var(--login-header-height));grid-template-columns:minmax(0,1.08fr) minmax(500px,.92fr);min-height:0}.login-story{background:linear-gradient(145deg,#fbfcfe,#eef3f8)}.login-story:after{content:"";pointer-events:none;border:1px solid #1b3f7114;border-radius:50%;width:410px;height:410px;position:absolute;bottom:-160px;right:-120px;box-shadow:0 0 0 70px #1b3f7106}.login-story-inner{z-index:1;flex-direction:column;min-height:0;padding:clamp(24px,4vh,50px) clamp(34px,5vw,80px) 0}.story-copy{z-index:2;max-width:640px;position:relative}.story-copy .eyebrow{color:#a46e0b;margin-bottom:17px}.story-copy h1{color:#0b2a61;margin:0 0 clamp(12px,2vh,22px);font-size:clamp(43px,min(5vw,7vh),68px)}.story-copy h1:after{content:"";background:#c8942c;border-radius:3px;width:58px;height:3px;margin-top:clamp(12px,2vh,20px);display:block}.story-copy h1 em{color:#aa7416}.story-copy p{color:#53627a;max-width:590px;margin-bottom:clamp(14px,2.5vh,28px);font-size:clamp(14px,1.15vw,17px);line-height:1.6}.login-hero-image{border-radius:26px 26px 0 0;flex:1;min-height:0;margin:0 clamp(-34px,-3vw,-18px);position:relative;overflow:hidden;box-shadow:0 -8px 38px #101d3617}.login-hero-image:after{content:"";pointer-events:none;background:linear-gradient(#f4f7fb33,#0000 24%,#0a1f4314);position:absolute;inset:0}.login-hero-image img{display:block}.hero-trust-card{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#091f45e0;border:1px solid #ffffffa6;align-items:center;gap:11px;padding:13px 16px;display:flex;position:absolute;bottom:24px;left:24px;box-shadow:0 14px 30px #05122938}.hero-trust-card>svg{color:#e9bd5e;flex:none}.hero-trust-card span{gap:2px;font-size:11px;display:grid}.login-panel{background:radial-gradient(circle at 95% 90%,#d6e1eebf,#0000 34%),linear-gradient(145deg,#f6f8fb,#e9eff6);place-items:center;min-height:0;padding:clamp(14px,2.8vh,30px) clamp(24px,4vw,54px);display:grid;position:relative}.login-panel:before{content:"";background:#fff3;border:1px solid #26456f14;width:340px;height:340px;position:absolute;bottom:-150px;right:-90px;transform:rotate(45deg)}.login-form-wrap{z-index:1;width:min(100%,540px);max-height:100%;position:relative}.login-card{overscroll-behavior:contain;scrollbar-width:thin;border:1px solid #8497b229;border-radius:22px;max-height:100%;padding:clamp(22px,3.4vh,38px) clamp(26px,3.5vw,44px);overflow-y:auto;box-shadow:0 24px 65px #122b4e1f}.login-card>.eyebrow{justify-content:center;width:100%;margin-bottom:10px}.login-form-wrap h2{color:#0b2a61;text-align:center;margin:0 0 6px;font-size:clamp(38px,5.5vh,46px)}.login-card>.form-intro{text-align:center;margin-bottom:clamp(16px,2.6vh,25px)}.modal h2{margin-bottom:7px;font-size:38px}.form-intro{color:var(--slate);margin-bottom:30px;line-height:1.6}.form-stack{gap:17px;display:grid}.form-grid{gap:16px;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}.schedule-picker{border:1px solid var(--line);background:#f7faff;border-radius:14px;grid-template-columns:1.1fr 1fr 1fr;gap:14px;margin:0;padding:18px;display:grid}.schedule-picker legend{color:var(--brand-navy,var(--ink));padding:0 8px;font-size:14px;font-weight:800}.schedule-picker>p{color:var(--slate);grid-column:1/-1;margin:0;font-size:13px;line-height:1.55}.grade-custom-toggle{align-items:center}.grade-boundary-picker{background:#f5f9ff;border:1px solid #b9cee6;border-radius:14px;margin:0;padding:18px}.grade-boundary-picker legend{color:var(--brand-navy,var(--ink));padding:0 8px;font-size:14px;font-weight:800}.grade-boundary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.grade-boundary-picker>p{color:var(--slate);margin:13px 0 0;font-size:13px;line-height:1.55}.percentage-input{position:relative}.percentage-input input{width:100%;padding-right:40px}.percentage-input b{color:var(--brand-blue,var(--ink));pointer-events:none;font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.late-arrival-block{color:#8f302a;background:var(--red-soft);border:1px solid #efc0bb;border-radius:12px;align-items:flex-start;gap:12px;padding:15px;display:flex}.late-arrival-block svg{flex:none}.late-arrival-block div{gap:4px;display:grid}.late-arrival-block span{color:#764a48;font-size:13px;line-height:1.45}.span-two{grid-column:1/-1}.field{gap:8px;display:grid}.class-checks legend,.field>span{color:var(--ink-soft);letter-spacing:.03em;font-size:11px;font-weight:800}.field input,.field select,.field textarea,.manual-search input{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:#fff;border-radius:10px;padding:11px 13px;transition:border .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:84px}.field input::placeholder{color:#a2a6ad}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #b38a421a}.field small{color:var(--slate);font-size:10px;line-height:1.5}.login-field>span{color:#172a49;font-size:13px}.login-input{color:#72819a;border:1px solid #cbd5e2;border-radius:12px;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;min-height:52px;padding:0 15px;transition:border .15s,box-shadow .15s;display:grid}.login-input input,.login-input input:focus{min-height:50px;box-shadow:none;background:0 0;border:0;padding:0}.login-input input::placeholder{color:#8793a7}.login-input button{color:#183663;cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:38px;height:38px;padding:0;display:grid}.login-input button:hover{background:#eef3f8}.login-options{justify-content:space-between;align-items:center;gap:15px;margin-top:-3px;display:flex}.login-options .text-button{color:#0b4eb4;font-size:13px}.login-remember{color:#53627a;cursor:pointer;align-items:center;gap:9px;font-size:13px;display:inline-flex}.login-remember input{accent-color:#0b2a61;width:18px;height:18px;margin:0}.login-submit{background:linear-gradient(135deg,#0b2a61,#06235b);border-radius:12px;justify-content:space-between;min-height:52px;padding:0 22px 0 28px;font-size:16px;box-shadow:0 13px 30px #08285e33}.login-divider{color:#8490a3;text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:14px;margin:clamp(14px,2.2vh,20px) 0 clamp(11px,1.8vh,16px);font-size:10px;font-weight:800;display:flex}.login-divider:after,.login-divider:before{content:"";background:#dfe5ed;flex:1;height:1px}.login-help{color:#0b4eb4;cursor:pointer;background:#fff;border:1px solid #cbd5e2;border-radius:12px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:47px;font-size:13px;font-weight:800;display:flex}.login-help:hover{background:#f8fafc;border-color:#9fb0c7}.login-card .privacy-note{margin:clamp(10px,1.7vh,16px) 0 0}.form-row-link{justify-content:flex-end;margin-top:-7px;display:flex}.form-message{border-radius:9px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:11px;display:flex}.form-message svg{flex:none;margin-top:1px}.form-message.error{color:#8f302a;background:var(--red-soft)}.form-message.success{color:#075c4b;background:var(--green-soft)}.page-message{margin-bottom:16px}.check-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:11px;align-items:flex-start;gap:11px;padding:13px;display:flex}.check-row input{width:17px;height:17px;accent-color:var(--gold);margin-top:2px}.check-row>span{gap:3px;display:grid}.check-row strong{font-size:11px}.check-row small{color:var(--slate);font-size:9px;line-height:1.5}.privacy-note{color:#8e939b;justify-content:center;margin:24px 0 0;font-size:10px}.privacy-note,.setup-link{align-items:center;gap:6px;display:flex}.setup-link{color:var(--gold);cursor:pointer;background:0 0;border:0;margin:18px auto 0;font-size:11px;font-weight:800}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#081121bd;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid #b38a4238;border-radius:18px;width:min(100%,450px);max-height:calc(100vh - 36px);padding:36px;position:relative;overflow-y:auto;box-shadow:0 35px 90px #0000004d}.modal.wide{width:min(100%,680px)}.modal-close{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:35px;height:35px;display:grid;position:absolute;top:17px;right:17px}.modal-icon{width:45px;height:45px;color:var(--gold);background:var(--gold-soft);border-radius:13px;place-items:center;margin-bottom:17px;display:grid}.done-state{text-align:center;color:var(--slate)}.done-state>svg{color:var(--green);margin:15px auto}.done-state p{margin-bottom:23px}.class-checks{border:0;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;display:grid}.class-checks legend{margin-bottom:9px}.class-check-option{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:11px;padding:12px;display:flex;position:relative}.class-check-option input{width:16px;height:16px;accent-color:var(--gold)}.class-check-option label{cursor:pointer;flex:1;gap:3px;font-size:11px;font-weight:800;display:grid}.class-check-option small{color:var(--slate);font-size:9px;font-weight:500}.sidebar{z-index:30;color:#fff;background:var(--ink);flex-direction:column;width:264px;padding:28px 20px 20px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar:after{content:"";background:#ffffff14;height:1px;position:absolute;inset:auto 0 72px}.sidebar-top{justify-content:space-between;align-items:center;margin:0 5px 38px;display:flex}.mobile-close{display:none}.sidebar nav{scrollbar-width:thin;gap:6px;padding-right:3px;display:grid;overflow-y:auto}.sidebar nav button{color:#abb5c5;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;min-height:45px;padding:0 12px;font-size:12px;font-weight:700;display:flex;position:relative}.sidebar nav button:hover{color:#fff;background:#ffffff0e}.sidebar nav button.active{background:#ffffff17;box-shadow:inset 3px 0 #d7b468}.sidebar nav button.active svg{color:#e4c278}.sidebar nav i{color:#0b4e40;text-transform:uppercase;letter-spacing:.07em;background:#9de0ce;border-radius:20px;margin-left:auto;padding:3px 7px;font-size:8px;font-style:normal}.sidebar-foot{justify-content:space-between;margin-top:auto;padding:19px 4px 0}.mini-profile,.sidebar-foot{align-items:center;display:flex}.mini-profile{gap:10px;min-width:0}.mini-profile>span{gap:3px;min-width:0;display:grid}.mini-profile strong{text-overflow:ellipsis;white-space:nowrap;max-width:125px;font-size:11px;overflow:hidden}.mini-profile small{color:#9da9ba;font-size:9px}.sidebar .icon-button{color:#9da9ba;border-color:#ffffff21}.avatar{color:#fff;width:34px;height:34px;font-family:var(--font-serif);background:#a9803e;border-radius:50%;flex:none;place-items:center;font-size:16px;font-style:normal;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.avatar>span{place-items:center;width:100%;height:100%;display:grid}.avatar.large{width:52px;height:52px;font-size:23px}.avatar.hero{width:82px;height:82px;margin:0 auto 18px;font-size:35px}.app-main{min-height:100vh;margin-left:264px}.content-wrap{width:min(100%,1280px);margin:0 auto;padding:44px clamp(25px,4vw,62px) 70px}.mobile-topbar{display:none}.page-heading{justify-content:space-between;align-items:flex-start;gap:25px;min-height:104px;margin-bottom:30px;display:flex}.page-heading h1{margin-bottom:7px;font-size:clamp(37px,4.5vw,53px);line-height:.98}.page-heading p{color:var(--slate);margin:0;font-size:13px}.page-heading .button{flex:none;margin-top:16px}.page-actions{align-items:center;gap:9px;display:flex}.panel{background:var(--paper);border:1px solid #867d6a33;border-radius:16px;box-shadow:0 10px 35px #101d360b}.panel-dark{color:#fff;background:var(--ink);box-shadow:var(--shadow);border:1px solid #ffffff0d;border-radius:17px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.metric{background:var(--paper);border:1px solid #867d6a33;border-radius:15px;min-height:150px;padding:24px;position:relative;overflow:hidden}.metric>span{color:var(--slate);text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800}.metric strong{font-family:var(--font-serif);margin:12px 0 3px;font-size:42px;font-weight:400;line-height:1;display:block}.metric p{color:var(--slate);margin:0;font-size:10px}.metric svg{color:var(--gold);position:absolute;top:22px;right:21px}.metric.featured{color:#fff;background:var(--ink)}.metric.featured p,.metric.featured>span{color:#aab4c3}.metric.warning strong,.metric.warning svg{color:var(--red)}.metric-action{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}.metric-action:hover{border-color:#bc3d3452;transform:translateY(-2px);box-shadow:0 13px 32px #101d3614}.metric-action:focus-visible{outline-offset:3px;outline:3px solid #b98e414d}.overview-grid{grid-template-columns:1.45fr .75fr;gap:20px;display:grid}.class-list-panel{padding:26px}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.section-heading h2{margin:0;font-size:27px}.section-heading .eyebrow{margin-bottom:7px}.class-list,.class-row{display:grid}.class-row{border-top:1px solid #ebe6dc;grid-template-columns:43px 1fr auto;align-items:center;gap:13px;padding:14px 0}.class-icon,.class-index{border-radius:10px;place-items:center;font-size:10px;font-weight:900;display:grid}.class-index{width:43px;height:43px}.tone-0{color:#875e1c;background:#f0e2c6}.tone-1{color:#176452;background:#dcefe8}.tone-2{color:#344f7d;background:#e2e9f3}.class-row>div:nth-child(2){gap:4px;display:grid}.class-row strong{font-size:12px}.class-row span{color:var(--slate);font-size:10px}.class-row b{font-size:11px}.action-card{padding:28px;position:relative;overflow:hidden}.action-card:after{content:"";background:var(--gold-soft);opacity:.6;border-radius:50%;width:160px;height:160px;position:absolute;top:-70px;right:-70px}.action-orbit{border:1px solid var(--gold);width:78px;height:78px;color:var(--ink);box-shadow:0 0 0 9px var(--gold-soft);background:#fff;border-radius:50%;place-items:center;margin-bottom:28px;display:grid}.action-card h2{margin-bottom:12px;font-size:29px;line-height:1.06}.action-card p{color:var(--slate);margin-bottom:23px;font-size:11px;line-height:1.7}.dashboard-notices{margin-top:20px;padding:26px}.announcement-layout{grid-template-columns:minmax(340px,.82fr) minmax(390px,1.18fr);align-items:start;gap:20px;display:grid}.announcement-form,.announcement-history{padding:27px}.announcement-form{position:sticky;top:20px}.announcement-form h2{margin:2px 0 4px;font-size:31px}.announcement-form-icon{width:52px;height:52px;color:var(--gold);background:var(--gold-soft);border-radius:14px;place-items:center;display:grid}.announcement-history{min-height:0}.record-count{color:var(--slate);font-size:9px}.announcement-feed{gap:10px;display:grid}.announcement-feed.compact{grid-template-columns:repeat(3,1fr)}.announcement-item{background:#fff;border:1px solid var(--line);border-left:3px solid #8590a2;border-radius:11px;grid-template-columns:38px 1fr;gap:12px;padding:15px;display:grid}.announcement-cancelled{border-left-color:var(--red);background:#fffaf8}.announcement-rescheduled{border-left-color:var(--gold);background:#fffdf8}.announcement-general{border-left-color:var(--green)}.announcement-symbol{width:38px;height:38px;color:var(--ink-soft);background:#f1ede5;border-radius:10px;place-items:center;display:grid}.announcement-cancelled .announcement-symbol{color:var(--red);background:var(--red-soft)}.announcement-rescheduled .announcement-symbol{color:#865f1f;background:var(--gold-soft)}.announcement-general .announcement-symbol{color:var(--green);background:var(--green-soft)}.announcement-item>div:last-child{min-width:0}.announcement-meta{justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px;display:flex}.announcement-meta span{color:var(--gold);letter-spacing:.08em;font-size:8px;font-weight:900}.announcement-meta time{color:var(--slate);font-size:8px}.announcement-item strong{font-size:11px;display:block}.announcement-item p{color:var(--slate);white-space:pre-wrap;margin:5px 0 0;font-size:9px}.student-notices{margin-bottom:20px;padding:25px}.student-notices .section-heading>svg{color:var(--gold)}.status{text-transform:uppercase;letter-spacing:.08em;border-radius:50px;align-items:center;width:max-content;padding:5px 9px;font-size:8px;font-weight:900;display:inline-flex}.status-active,.status-paid,.status-present,.status-student,.status-teacher{color:#08604f;background:var(--green-soft)}.status-absent,.status-cancelled,.status-suspended,.status-unpaid{color:#8e342f;background:var(--red-soft)}.status-admin,.status-waived{color:#7a591e;background:var(--gold-soft)}.status-draft{color:#5b626d;background:#e9e9e6}.status-published{color:#08604f;background:var(--green-soft)}.status-neutral{color:#5b626d;background:#e9e9e6}.capitalize{text-transform:capitalize}.scanner-start{width:min(100%,620px);margin:15px auto;padding:38px}.scanner-copy{margin-bottom:28px}.scanner-copy h2{margin-bottom:10px;font-size:36px}.scanner-copy p{color:var(--slate)}.scanner-start .field{margin-bottom:18px}.scanner-layout{grid-template-columns:minmax(330px,.95fr) minmax(300px,.7fr);align-items:start;gap:20px;display:grid}.scanner-stage{padding:24px}.scanner-header{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.scanner-header h2{color:#fff;margin:7px 0 0;font-size:28px}.live-dot{color:#b5c0ce;text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:7px;font-size:9px;font-weight:800;display:inline-flex}.live-dot i{background:#58d0ae;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 5px #58d0ae1f}.camera-frame{aspect-ratio:4/3;background:#071225;border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%}.camera-launch{color:#fff;cursor:pointer;background:radial-gradient(circle,#1a2c49,#0a1528);border:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;font-size:11px;font-weight:800;display:flex;position:absolute;inset:0}.scan-corners{aspect-ratio:1;pointer-events:none;width:52%;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.scan-corners span{border-style:solid;border-color:#e8c77f;width:28px;height:28px;position:absolute}.scan-corners span:first-child{border-width:3px 0 0 3px;border-radius:7px 0 0;top:0;left:0}.scan-corners span:nth-child(2){border-width:3px 3px 0 0;border-radius:0 7px 0 0;top:0;right:0}.scan-corners span:nth-child(3){border-width:0 0 3px 3px;border-radius:0 0 0 7px;bottom:0;left:0}.scan-corners span:nth-child(4){border-width:0 3px 3px 0;border-radius:0 0 7px;bottom:0;right:0}.scanner-hint{color:#9da9ba;text-align:center;margin:12px 0;font-size:9px}.manual-search{grid-template-columns:1fr 45px;gap:8px;display:grid}.manual-search input{color:#fff;background:#ffffff0f;border-color:#ffffff26;min-height:44px}.manual-search button{color:var(--ink);background:var(--gold);cursor:pointer;border:0;border-radius:10px;place-items:center;display:grid}.scan-result{min-height:410px;padding:28px}.student-identity{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:22px;display:flex}.scan-avatar{width:48px;height:48px;font-size:21px}.student-identity>div:last-child{gap:4px;display:grid}.student-identity span{color:var(--gold);letter-spacing:.08em;font-size:9px;font-weight:800}.student-identity h3{margin:0;font-size:17px}.student-identity p{color:var(--slate);margin:0;font-size:10px}.verification-row{border-bottom:1px solid #eee9df;justify-content:space-between;align-items:center;min-height:56px;font-size:11px;display:flex}.success-block{color:var(--green);background:var(--green-soft);border-radius:11px;align-items:center;gap:12px;margin:20px 0 12px;padding:15px;display:flex}.success-block div{gap:2px;display:grid}.success-block strong{font-size:11px}.success-block span{font-size:9px}.attendance-fee-form{background:#fffaf0;border:1px solid #d7c79f;border-radius:13px;gap:13px;margin-top:18px;padding:16px;display:grid}.attendance-fee-heading{color:var(--ink);align-items:center;gap:10px;display:flex}.attendance-fee-heading>svg{color:var(--gold);flex:none}.attendance-fee-heading>span{gap:2px;display:grid}.attendance-fee-heading strong{font-size:15px}.attendance-fee-heading small{color:var(--slate);font-size:12px}.attendance-fee-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.attendance-fee-form .field{gap:5px}.attendance-fee-form .field>span{font-size:12px}.attendance-fee-form .field input,.attendance-fee-form .field select{min-height:44px}.attendance-fee-form .button{margin-top:0}.scan-result>.button{margin-top:12px}.empty-state{min-height:260px;color:var(--slate);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:35px;display:flex}.empty-state.compact{min-height:350px;padding:0}.empty-state svg{color:var(--gold);margin-bottom:15px}.empty-state h3{color:var(--ink);margin-bottom:7px}.empty-state p{max-width:330px;margin:0;font-size:11px;line-height:1.65}.credential-banner,.print-note{color:#075c4b;background:var(--green-soft);border:1px solid #b5ddcf;border-radius:12px;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;display:flex}.credential-banner>div{gap:3px;display:grid}.credential-banner strong{font-size:11px}.credential-banner span{font-size:10px}.credential-banner button{cursor:pointer;background:0 0;border:0;margin-left:auto}.data-panel{overflow:hidden}.table-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.search-static{color:#9a9ea5;width:220px;min-height:38px;font-size:10px}.directory-search,.search-static{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:9px;padding:0 12px;display:flex}.directory-search{width:min(100%,350px);min-height:40px;color:var(--slate)}.directory-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:10px}.table-toolbar>span{color:var(--slate);font-size:10px}.table-actions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:620px}th{color:var(--slate);text-align:left;text-transform:uppercase;letter-spacing:.1em;background:#f7f4ee;padding:12px 18px;font-size:8px}td{border-top:1px solid #eee9df;padding:14px 18px;font-size:10px}.table-person{align-items:center;gap:10px;display:flex}.table-person i{color:#7b5a22;background:var(--gold-soft);width:34px;height:34px;font-family:var(--font-serif);border-radius:50%;place-items:center;font-size:15px;font-style:normal;display:grid}.table-person span{gap:3px;display:grid}.table-person small{color:var(--slate);font-size:8px}.table-avatar{width:34px;height:34px;font-size:15px}.tag-list{flex-wrap:wrap;gap:4px;display:flex}.tag-list span{color:#40516d;background:#e9edf3;border-radius:20px;padding:4px 7px;font-size:8px;font-weight:800}.tag-list em{font-size:9px}.empty-inline,.muted-icon,.tag-list em{color:var(--slate)}.empty-inline{text-align:center;padding:22px 5px;font-size:11px}.class-card-grid{grid-template-columns:repeat(3,1fr);gap:17px;display:grid}.class-card{padding:23px;position:relative}.class-card>.status{position:absolute;top:20px;right:20px}.class-icon{width:44px;height:44px;margin-bottom:24px}.class-card .eyebrow{margin-bottom:7px}.class-card h2{margin-bottom:5px;font-size:25px}.class-card>p{color:var(--slate);font-size:10px}.class-meta{border-top:1px solid var(--line);gap:9px;margin-top:22px;padding-top:17px;display:grid}.class-meta span{color:var(--slate);align-items:center;gap:8px;font-size:9px;display:flex}.class-meta svg{color:var(--gold)}.class-meta .class-block-progress{color:#073273;background:#edf5ff;border:1px solid #c7dcf6;border-radius:9px;width:fit-content;padding:7px 10px;font-weight:700}.class-meta .class-block-progress b{color:#061f4d}.session-state.not_held,.status-not_held{color:#67421b;white-space:normal;background:#fff3df;border:1px solid #e6c891}.class-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;margin-top:17px;padding-top:13px;display:grid}.class-edit,.class-remove,.class-view{cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:38px;font-size:12px;font-weight:800;display:flex}.class-view{color:#fff;border:1px solid var(--ink);background:var(--ink);grid-column:1/-1}.class-edit{color:var(--ink-soft);border:1px solid var(--line)}.class-remove{color:var(--red);border:1px solid #b5463f40}.class-view:hover{background:#1d2c48}.class-edit:hover{border-color:var(--gold);background:var(--gold-soft)}.class-remove:hover{background:var(--red-soft)}.class-edit:disabled,.class-remove:disabled{cursor:wait;opacity:.55}.class-detail-heading .class-back{color:var(--slate);margin:0 0 18px -4px}.class-detail-heading .class-back svg{transform:rotate(180deg)}.class-detail-stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}.class-detail-stats article{align-items:center;gap:14px;min-height:112px;padding:20px;display:flex}.class-detail-stats article>svg{color:var(--gold);flex:none}.class-detail-stats article>span{gap:5px;min-width:0;display:grid}.class-detail-stats strong{overflow-wrap:anywhere;font-family:var(--font-serif);font-size:21px;font-weight:400;line-height:1.15}.class-detail-stats small{color:var(--slate);font-size:12px}.class-roster-panel{padding-top:25px}.class-roster-panel>.section-heading{padding:0 24px}.staff-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.staff-card{align-items:center;gap:15px;padding:21px;display:flex;position:relative}.staff-card>div:nth-child(2){gap:4px;display:grid}.staff-card h3{margin:0;font-size:13px}.staff-card p,.staff-card span{color:var(--slate);font-size:9px}.staff-card p{align-items:center;gap:6px;margin:5px 0 0;display:flex}.staff-card .status{position:absolute;top:18px;right:18px}.staff-card{padding-bottom:55px}.staff-reset{color:var(--slate);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:5px 0;font-size:9px;font-weight:800;display:flex;position:absolute;bottom:16px;left:88px}.fees-layout{grid-template-columns:minmax(380px,1fr) minmax(280px,.68fr);align-items:start;gap:20px;display:grid}.fee-form,.fee-help{padding:28px}.fee-help{position:sticky;top:20px}.fee-help-icon{width:58px;height:58px;color:var(--gold);background:var(--gold-soft);border-radius:14px;place-items:center;margin-bottom:28px;display:grid}.fee-help h2{font-size:30px;line-height:1.08}.fee-help p{color:var(--slate);font-size:11px;line-height:1.75}.status-key{gap:7px;margin-top:20px;display:flex}.pending-fee-panel{margin-bottom:22px}.fee-toolbar{gap:14px}.fee-toolbar .directory-search{flex:320px}.fee-class-filter{color:var(--slate);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.fee-class-filter select{max-width:230px;min-height:42px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;padding:0 34px 0 11px}.fee-phone{color:#8a641f;width:fit-content;font-weight:700;text-decoration:none}.fee-phone:hover{text-decoration:underline}.teacher-readonly{color:var(--slate);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.fee-empty-state{min-height:150px;color:var(--green);justify-content:center;align-items:center;gap:12px;display:flex}.fee-empty-state div{gap:4px;display:grid}.fee-empty-state strong{color:var(--ink)}.fee-empty-state p{color:var(--slate);margin:0}.fee-entry-layout{margin-top:22px;scroll-margin-top:24px}.student-heading{margin-bottom:23px}.student-welcome{align-items:center;gap:17px;display:flex}.student-header-avatar{border:3px solid var(--paper);width:68px;height:68px;font-size:27px;box-shadow:0 9px 24px #101d361f}.student-summary{justify-content:space-between;align-items:center;gap:20px;min-height:190px;margin-bottom:20px;padding:32px 35px;display:flex}.student-summary h2{color:#fff;margin-bottom:9px;font-size:34px}.student-summary p{color:#aeb8c6;margin:0;font-size:10px}.summary-score{border:1px solid #e8c77f6b;border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:112px;height:112px;display:flex;box-shadow:inset 0 0 0 8px #e8c77f0f}.summary-score strong{font-family:var(--font-serif);font-size:37px;font-weight:400}.summary-score strong span{color:#9da9ba;font-size:17px}.summary-score small{color:#e8c77f;text-transform:uppercase;letter-spacing:.1em;font-size:8px}.student-progress{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.student-progress article{background:var(--paper);border:1px solid #867d6a33;border-radius:13px;align-items:center;gap:13px;min-height:78px;padding:16px 18px;display:flex}.student-progress svg{color:var(--gold)}.student-progress span{gap:2px;display:grid}.student-progress strong{font-family:var(--font-serif);font-size:22px;font-weight:400;line-height:1}.student-progress small{color:var(--slate);font-size:8px}.student-pass-panel{grid-template-columns:minmax(0,1fr) 205px;align-items:center;gap:34px;margin-bottom:20px;padding:29px 32px;display:grid;position:relative;overflow:hidden}.student-pass-panel:after{content:"";pointer-events:none;border:1px solid #b38a4233;border-radius:50%;width:245px;height:245px;position:absolute;top:-90px;right:-85px;box-shadow:0 0 0 35px #b38a4209}.student-pass-copy{z-index:1;position:relative}.student-pass-copy h2{margin-bottom:8px;font-size:30px}.student-pass-copy>p{max-width:610px;color:var(--slate);font-size:10px;line-height:1.75}.student-pass-identity{align-items:center;gap:10px;margin:19px 0 16px;display:flex}.student-pass-identity span{gap:3px;display:grid}.student-pass-identity strong{font-size:11px}.student-pass-identity small{color:var(--slate);font-size:8px}.student-pass-copy>.button{width:fit-content;min-height:39px;text-decoration:none}.student-pass-warning{color:var(--slate);align-items:center;gap:6px;margin-top:13px;font-size:8px;display:flex}.student-pass-warning svg{color:var(--gold);flex:none}.student-pass-code{z-index:1;border:1px solid var(--line);background:#fff;border-radius:14px;justify-items:center;padding:14px;display:grid;position:relative;box-shadow:0 12px 28px #101d3614}.student-pass-code .qr-placeholder,.student-pass-code img{width:174px;height:174px;margin:0 0 8px}.student-pass-code span{color:var(--gold);font-family:var(--font-serif);font-size:12px}.student-pass-code strong{color:var(--slate);letter-spacing:.08em;margin-top:3px;font-size:8px}.student-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.payment-history,.student-grid>.panel{padding:25px}.student-class-list,.timeline{display:grid}.student-class{border-top:1px solid #eee9df;justify-content:space-between;gap:14px;padding:14px 0;display:flex}.student-class>div:first-child{gap:3px;display:grid}.student-class>div:first-child>span{color:var(--gold);font-size:8px;font-weight:900}.student-class strong{font-size:11px}.student-class small{color:var(--slate);font-size:9px}.fee-amount{flex-direction:column;align-items:flex-end;gap:7px;display:flex}.fee-amount b{font-size:10px}.timeline>div{border-top:1px solid #eee9df;grid-template-columns:27px 1fr auto;align-items:center;gap:10px;padding:12px 0;display:grid}.timeline i{width:27px;height:27px;color:var(--green);background:var(--green-soft);border-radius:50%;place-items:center;display:grid}.timeline span{gap:3px;display:grid}.timeline strong{font-size:10px}.timeline small{color:var(--slate);font-size:8px}.print-note{color:var(--ink-soft);background:var(--gold-soft);border-color:#e0d2b7;font-size:10px}.label-sheet{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.qr-label{min-height:360px;color:var(--ink);text-align:center;background:#fff;border:1px dashed #a89e8a;border-radius:9px;padding:20px;position:relative;overflow:hidden}.label-brand{justify-content:center;align-items:center;gap:8px;margin-bottom:15px;display:flex}.label-brand .label-logo{object-fit:contain;width:34px;height:34px;margin:0}.label-brand strong{font-family:var(--font-serif);font-size:14px;font-weight:400}.qr-label .qr-code-image,.qr-placeholder{width:175px;height:175px;margin:0 auto 10px}.qr-placeholder{background:#f1eee8}.qr-label h3{margin-bottom:3px;font-size:13px}.qr-label p{color:var(--slate);margin-bottom:5px;font-size:9px}.qr-label small{color:var(--gold);overflow-wrap:anywhere;font-size:8px;font-weight:800;line-height:1.5;display:block}.label-rotate{color:var(--slate);cursor:pointer;background:0 0;border:0;padding:3px 6px;font-size:7px;position:absolute;bottom:7px;right:7px}.account-grid{grid-template-columns:.7fr 1.3fr;align-items:start;gap:20px;display:grid}.password-card,.profile-card{padding:30px}.profile-card{text-align:center}.profile-card h2{margin-bottom:3px;font-size:29px}.profile-card>span{color:var(--slate);margin-bottom:12px;font-size:10px;display:block}.profile-card>.status{margin:0 auto}.photo-actions{justify-content:center;gap:6px;margin:18px 0 8px;display:flex}.photo-actions .button{margin:0}.photo-help{color:var(--slate);font-size:8px;line-height:1.5;display:block}.profile-card>.form-message{text-align:left;margin-top:12px}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.profile-card dl{margin:24px 0 0}.profile-card dl div{border-top:1px solid var(--line);justify-content:space-between;padding:12px 0;font-size:10px;display:flex}.profile-card dt{color:var(--slate)}.profile-card dd{margin:0;font-weight:800}.password-card h2{margin-bottom:8px;font-size:29px}.password-prompt{z-index:25;color:#fff;background:var(--ink);min-width:285px;box-shadow:var(--shadow);cursor:pointer;text-align:left;border:1px solid #ffffff29;border-radius:12px;grid-template-columns:35px 1fr auto;align-items:center;gap:9px;padding:12px;display:grid;position:fixed;bottom:22px;right:22px}.password-prompt>svg:first-child{color:#e8c77f;background:#ffffff14;border-radius:9px;width:35px;height:35px;padding:8px}.password-prompt span{color:#abb5c5;gap:2px;font-size:9px;display:grid}.global-note,.password-prompt strong{color:#fff;font-size:10px}.global-note{z-index:200;background:#8e342f;border-radius:10px;align-items:center;gap:8px;padding:11px 15px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.notice-reach{color:var(--green);margin-top:8px;font-size:8px;font-weight:800;display:block}.scanner-header-actions{flex-wrap:wrap;gap:7px;display:flex}.scanner-close-session{color:#9a302b;background:var(--red-soft);border-color:#e8c4c0}.academic-layout{gap:20px;display:grid}.academic-layout.with-editor{grid-template-columns:minmax(0,1.5fr) minmax(300px,.7fr);align-items:start}.academic-editor,.academic-layout>.panel,.exams-panel,.learning-column,.two-panel-grid>.panel{padding:25px}.academic-editor{position:sticky;top:18px}.event-card,.event-list,.exam-list,.material-list{display:grid}.event-card{border-top:1px solid #eee9df;grid-template-columns:50px 1fr auto;align-items:start;gap:15px;padding:17px 0}.event-card>time{text-align:center;width:50px;height:54px;color:var(--ink);background:var(--gold-soft);border-radius:11px;place-content:center;display:grid}.event-card>time strong{font-family:var(--font-serif);font-size:22px;line-height:1}.event-card>time span{color:#7a591e;text-transform:uppercase;font-size:8px;font-weight:800}.event-card .tag{color:var(--gold);text-transform:uppercase;font-size:8px;font-weight:900}.event-card h3,.exam-card h3,.material-card h3{margin:4px 0;font-size:13px}.event-card p,.event-card small,.exam-card p,.material-card p{color:var(--slate);margin:0;font-size:9px;line-height:1.55}.event-card.is-cancelled{border:1px solid #e8b9b4;border-left:4px solid var(--red);background:#fff7f5;border-radius:12px;margin-block:5px;padding-inline:14px}.event-card.is-cancelled h3{color:#8e342f;text-decoration:line-through;text-decoration-thickness:1px}.event-card-actions{justify-items:end;gap:7px;min-width:105px;display:grid}.learning-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);align-items:start;gap:20px;margin-bottom:20px;display:grid}.material-card{border-top:1px solid #eee9df;grid-template-columns:42px 1fr;gap:13px;padding:16px 0;display:grid}.material-icon{width:42px;height:42px;color:var(--gold);background:var(--gold-soft);border-radius:11px;place-items:center;display:grid}.exam-card>div:first-child>span,.material-card>div:last-child>span{color:var(--gold);font-size:8px;font-weight:800}.inline-actions{flex-wrap:wrap;gap:11px;margin-top:9px;display:flex}.inline-actions a{text-decoration:none}.exams-panel{margin-bottom:20px}.exam-card{border-top:1px solid #eee9df;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:16px 0;display:grid}.exam-actions{justify-items:end;gap:7px;min-width:120px;display:grid}.exam-actions small{color:var(--slate);font-size:8px}.exam-score{justify-items:end;gap:3px;min-width:105px;display:grid}.exam-score strong{font-family:var(--font-serif);color:var(--ink);font-size:27px;font-weight:400}.exam-score span,.exam-score strong small{color:var(--slate);font:9px var(--font-sans)}.two-panel-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.report-section{margin-top:24px;padding:30px;overflow:hidden}.report-section+.report-section{margin-top:28px}.report-section-heading{grid-template-columns:46px 1fr;align-items:start;gap:16px;padding-bottom:24px;display:grid}.plain-section-heading h2,.report-section-heading h2{margin:0 0 6px;font-size:32px}.report-section-heading .eyebrow{margin-bottom:7px}.plain-section-heading p,.report-section-heading p{max-width:720px;color:var(--slate);margin:0;font-size:15px;line-height:1.6}.report-section-number{color:#fff;background:var(--ink);border-radius:12px;place-items:center;width:42px;height:42px;font-size:16px;font-weight:900;display:grid}.report-control-strip{background:#fbf6ea;border-top:1px solid #eadfca;border-bottom:1px solid #eadfca;grid-template-columns:minmax(240px,1.35fr) minmax(200px,.65fr);gap:18px;margin:0 -30px 26px;padding:20px 30px;display:grid}.report-control-strip.single{grid-template-columns:minmax(280px,560px)}.report-control-strip .field>span{color:#714f16}.month-filter{min-width:190px;color:var(--ink-soft);align-self:center;gap:8px;font-size:13px;font-weight:800;display:grid}.month-filter input{min-height:50px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:10px;padding:0 13px}.report-metrics{grid-template-columns:repeat(4,1fr);margin:0}.metric-money{font-size:25px!important}.table-subline{color:var(--slate);margin-top:4px;font-size:13px;font-weight:400;display:block}.growth-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px;display:grid}.growth-summary>div{border:1px solid var(--line);background:#fffdf9;border-radius:13px;align-items:center;gap:13px;min-height:82px;padding:16px 18px;display:flex}.growth-summary svg{color:var(--gold);flex:none}.growth-summary span{gap:2px;display:grid}.growth-summary strong{color:var(--ink);font-family:var(--font-serif);font-size:25px;font-weight:400;line-height:1.15}.growth-summary small{color:var(--slate);font-size:13px}.growth-chart-scroll{border:1px solid var(--line);scrollbar-color:#b8924b #eee7da;background:linear-gradient(#fff,#fbf8f1);border-radius:14px;padding:17px 8px 8px;overflow-x:auto}.growth-chart-scroll:focus{outline-offset:2px;outline:3px solid #b38a4233}.growth-chart{grid-template-columns:36px 1fr;gap:10px;height:300px;display:grid}.growth-axis{height:226px;color:var(--slate);text-align:right;flex-direction:column;justify-content:space-between;padding:7px 0 2px;font-size:12px;display:flex}.growth-columns{background:repeating-linear-gradient(#0000 0 72px,#76674e1f 73px);grid-auto-columns:minmax(52px,1fr);grid-auto-flow:column;align-items:end;gap:8px;height:270px;display:grid}.growth-column{grid-template-rows:22px 204px 21px 18px;place-items:end center;min-width:0;height:270px;display:grid}.growth-value{color:var(--ink);font-size:13px;font-weight:900}.growth-bar-track{background:#b38a421a;border-radius:8px 8px 3px 3px;align-items:flex-end;width:min(34px,74%);height:198px;display:flex;overflow:hidden}.growth-bar{background:linear-gradient(#c99b48,#9a6d22);border-radius:8px 8px 2px 2px;width:100%;min-height:5px}.growth-column strong{color:var(--ink-soft);white-space:nowrap;font-size:12px}.growth-column span{color:var(--slate);white-space:nowrap;font-size:11px}.chart-legend{color:var(--slate);justify-content:space-between;gap:14px;padding-top:13px;font-size:13px;display:flex}.chart-legend span{align-items:center;gap:8px;font-weight:700;display:inline-flex}.chart-legend i{background:var(--gold);border-radius:3px;width:12px;height:12px}.chart-legend small{font-size:12px}.subsection-heading{justify-content:space-between;align-items:center;gap:16px;margin:28px 0 14px;display:flex}.subsection-heading h3{font-family:var(--font-serif);margin:0 0 3px;font-size:23px;font-weight:400}.subsection-heading p{color:var(--slate);margin:0;font-size:13px}.subsection-heading svg{color:var(--gold);flex:none}.table-good,.table-warning{border-radius:999px;justify-content:center;min-width:30px;padding:5px 9px;font-size:13px;font-weight:900;display:inline-flex}.table-warning{color:var(--red);background:var(--red-soft)}.table-good{color:var(--green);background:var(--green-soft)}.student-profile-report{border-top:1px solid var(--line)}.student-profile-header{grid-template-columns:58px 1fr auto;align-items:center;gap:16px;padding:26px 0;display:grid}.student-profile-initial{color:#f0c875;background:var(--ink);border-radius:18px;place-items:center;width:58px;height:58px;display:grid}.student-profile-header .eyebrow{margin-bottom:4px}.student-profile-header h3{margin:0;font-size:31px}.student-profile-header p{color:var(--slate);margin:3px 0 0;font-size:14px}.profile-contact a{border:1px solid var(--line);min-width:245px;color:var(--ink);background:#fffdf9;border-radius:12px;align-items:center;gap:12px;padding:13px 15px;text-decoration:none;display:flex}.profile-contact svg{color:var(--gold)}.profile-contact span{display:grid}.profile-contact b,.profile-contact small{color:var(--slate);font-size:12px;font-weight:600}.profile-contact strong{font-size:14px}.progress-stat-row{border:1px solid var(--line);border-radius:13px;grid-template-columns:repeat(4,1fr);margin-bottom:24px;display:grid;overflow:hidden}.progress-stat-row>div{border-left:1px solid var(--line);gap:4px;padding:18px;display:grid}.progress-stat-row>div:first-child{border-left:0}.progress-stat-row strong{font-family:var(--font-serif);font-size:28px;font-weight:400}.progress-stat-row span{color:var(--slate);font-size:13px}.profile-insight-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.profile-insight-card{border:1px solid var(--line);background:#fffdf9;border-radius:14px;min-width:0;padding:0 20px 20px}.performance-chart{border-bottom:1px solid var(--line);grid-auto-columns:minmax(42px,1fr);grid-auto-flow:column;align-items:end;gap:10px;height:240px;padding-top:20px;display:grid}.performance-column{grid-template-rows:24px 165px 24px;place-items:end center;height:220px;display:grid}.performance-column>strong{font-size:12px}.performance-column>div{background:#101d3612;border-radius:8px 8px 2px 2px;align-items:flex-end;width:min(34px,80%);height:158px;display:flex;overflow:hidden}.performance-column>div span{background:linear-gradient(#bd9349,#876020);border-radius:8px 8px 2px 2px;width:100%;min-height:4px}.performance-column small{color:var(--slate);white-space:nowrap;font-size:11px}.student-class-list{display:grid}.student-class-list article{border-top:1px solid #ede5d8;justify-content:space-between;align-items:center;gap:14px;min-height:70px;padding:14px 0;display:flex}.student-class-list article:first-child{border-top:0}.student-class-list article>div:first-child{gap:2px;display:grid}.student-class-list article strong{font-size:15px}.student-class-list article span:not(.status){color:var(--slate);font-size:13px}.class-quick-status{justify-items:end;gap:7px;display:grid}.class-quick-status small{color:var(--slate);font-size:12px}.profile-history{margin-top:22px;padding-top:1px}.report-section-block{border-top:2px solid var(--ink);margin-top:34px;padding-top:30px}.plain-section-heading{margin-bottom:18px}.reminder-grid{grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;display:grid}.reminder-grid>.panel{padding:27px}.toggle-field{border:1px solid var(--line);background:#fff;border-radius:11px;align-items:flex-start;gap:11px;padding:14px;display:flex}.toggle-field input{width:18px;height:18px;accent-color:var(--gold)}.toggle-field span{gap:4px;display:grid}.toggle-field strong{font-size:10px}.toggle-field small{color:var(--slate);font-size:8px;line-height:1.5}.reminder-action{flex-direction:column;align-items:flex-start;display:flex}.reminder-action>svg{color:var(--gold);margin-bottom:20px}.reminder-action p{color:var(--slate);flex:1;font-size:10px;line-height:1.7}.access-summary{justify-items:end;min-width:100px;padding-top:8px;display:grid}.access-summary strong{font-family:var(--font-serif);color:var(--red);font-size:34px;font-weight:400;line-height:1}.access-summary span{color:var(--slate);text-transform:uppercase;font-size:8px}.restriction-reason{max-width:180px;color:var(--red)}.danger-modal{border-color:#b5463f59}.danger-modal .modal-icon{color:var(--red);background:var(--red-soft)}.backup-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.backup-grid>.panel{padding:30px}.backup-card>svg,.recovery-card>svg{color:var(--gold);margin-bottom:20px}.backup-card p{color:var(--slate);font-size:11px;line-height:1.75}.safety-note{color:var(--ink-soft);background:var(--gold-soft);border-radius:11px;align-items:flex-start;gap:10px;margin-top:23px;padding:14px;font-size:9px;line-height:1.55;display:flex}.safety-note svg{color:var(--gold);flex:none}body{font-size:16px;line-height:1.6}.eyebrow{letter-spacing:.12em;margin-bottom:13px;line-height:1.4}.button-small{min-height:42px;padding-inline:14px}.text-button{min-height:36px;font-size:13px;text-decoration-thickness:1px}.field{gap:9px}.class-checks legend,.field>span{font-size:14px;line-height:1.4}.field input,.field select,.field textarea,.manual-search input{min-height:52px;padding:13px 15px}.field textarea{min-height:112px;line-height:1.55}.check-row small,.class-check-option small,.field small,.photo-help{font-size:13px;line-height:1.55}.check-row{padding:15px}.check-row strong,.class-check-option label{font-size:14px}.form-message{padding:13px 14px;line-height:1.5}.form-message.warning{color:#754f10;background:#fff3d8;border:1px solid #e5ca95}.privacy-note,.setup-link{font-size:13px}.sidebar nav button{min-height:52px;padding-inline:14px}.mini-profile strong{max-width:135px;font-size:14px}.mini-profile small{font-size:13px}.content-wrap{width:min(100%,1340px)}.page-heading{min-height:116px}.page-heading p{max-width:760px;font-size:16px;line-height:1.55}.section-heading h2{font-size:30px}.metric p,.metric>span{line-height:1.45}.class-icon,.class-index{font-size:12px}.action-card p,.class-card>p,.class-meta span,.class-row b,.class-row span,.fee-help p,.staff-card p,.staff-card span{font-size:13px;line-height:1.55}.record-count{font-size:13px}.announcement-history{padding:30px}.announcement-item{grid-template-columns:44px 1fr;gap:14px;padding:18px}.announcement-symbol{width:44px;height:44px}.announcement-meta span,.announcement-meta time{font-size:13px}.announcement-item strong{font-size:15px;line-height:1.4}.announcement-item p{margin-top:7px;font-size:14px;line-height:1.55}.notice-reach{margin-top:10px;font-size:13px;line-height:1.4}.status{padding:6px 10px}.camera-launch,.scanner-copy p{font-size:14px;line-height:1.55}.success-block strong,.verification-row{font-size:14px}.empty-inline,.empty-state p{font-size:14px;line-height:1.6}.credential-banner span,.credential-banner strong,.print-note{line-height:1.5}.directory-search{min-height:46px}th{padding:15px 18px;font-size:13px}td{padding:18px;line-height:1.5}.student-pass-copy>p,.student-summary p{font-size:14px;line-height:1.65}.access-summary span,.event-card .tag,.event-card>time span,.exam-actions small,.exam-card>div:first-child>span,.exam-result-grid span,.global-note,.material-card>div:last-child>span,.month-filter,.password-prompt span,.password-prompt strong,.profile-card dl div,.profile-card>span,.progress-average span,.progress-stat-row span,.report-letterhead small{font-size:13px}.event-card p,.event-card small,.exam-card p,.exam-result-grid p,.material-card p,.reminder-action p,.safety-note,.toggle-field small{font-size:13px;line-height:1.6}.exam-score strong small{font-size:13px}.exam-result-grid b,.exam-result-grid strong,.toggle-field strong{font-size:14px}.month-filter input{font-size:15px}.app-loading,.backup-card p,.loader-mark{font-size:14px}.app-loading{min-height:100vh;color:var(--slate);flex-direction:column;justify-content:center;align-items:center;gap:13px;font-size:11px;display:flex}.loader-mark{object-fit:contain;width:72px;height:72px;animation:breathe 1.5s ease-in-out infinite;display:block}body{font-size:17px;font-weight:500}p{line-height:1.65}.page-heading h1{font-size:clamp(44px,4.8vw,60px);font-weight:600;line-height:1.02}.brand strong,.login-form-wrap h2,.modal h2,.plain-section-heading h2,.report-section-heading h2,.section-heading h2,.student-profile-header h3,.subsection-heading h3{font-weight:600}.page-heading p{color:var(--ink-soft);font-size:17px}.section-heading{border-bottom:1px solid #8a5f1938;padding-bottom:14px}.section-heading h2{font-size:33px;line-height:1.1}.panel{border-color:#c8bba5;box-shadow:0 14px 38px #101d3616}.panel>.section-heading{margin-bottom:20px}.academic-editor,.announcement-form,.fee-form,.progress-picker{border-top:5px solid var(--gold)}.button{min-height:50px;padding-inline:22px;font-size:15px}.button-small{min-height:43px;font-size:13px}.text-button{font-size:14px}.eyebrow{letter-spacing:.1em;font-size:13px;font-weight:800}.brand span{letter-spacing:.15em}.brand span,.brand-mark,.brand.compact .brand-mark{font-size:12px}.class-checks legend,.field>span{color:var(--ink);font-size:15px}.field input,.field select,.field textarea,.manual-search input{border-color:#c5b9a5;min-height:54px;font-size:16px}.check-row small,.class-check-option small,.field small,.photo-help,.privacy-note,.setup-link{color:var(--ink-soft);font-size:14px}.form-message{font-size:14px}.login-divider{font-size:12px}.hero-trust-card span,.hero-trust-card strong{font-size:13px}.sidebar nav button{color:#c4cedc;min-height:54px;font-size:15px}.sidebar nav button.active{color:#fff}.sidebar nav i{font-size:12px}.mini-profile small,.mini-profile strong{font-size:14px}.metric p,.metric>span{color:var(--ink-soft);font-size:14px}.metric strong{font-weight:600}.class-row strong,.staff-card h3,.student-class strong,.timeline strong{font-size:16px}.action-card p,.class-card>p,.class-meta span,.class-row b,.class-row span,.fee-help p,.staff-card p,.staff-card span{color:var(--ink-soft);font-size:14px}.announcement-meta span,.announcement-meta time,.notice-reach,.record-count{font-size:13px}.announcement-item strong{font-size:16px}.announcement-item p{color:var(--ink-soft);font-size:15px}.status{font-size:12px}.camera-launch,.scanner-copy p,.success-block strong,.verification-row{font-size:15px}.live-dot,.scanner-hint,.student-identity p,.student-identity span,.success-block span{font-size:13px}.empty-inline,.empty-state p{color:var(--ink-soft);font-size:15px}.credential-banner span,.credential-banner strong,.print-note{font-size:14px}.directory-search input,.table-toolbar>span{font-size:15px}th{color:var(--ink-soft);background:#f0ebe2;padding:16px 18px;font-size:14px}td{padding:19px 18px;font-size:15px}.table-person strong{font-size:16px}.table-person small,.table-subline,.tag-list em,.tag-list span{color:var(--ink-soft);font-size:13px}.class-edit,.class-remove,.class-view,.staff-reset{min-height:42px;font-size:13px}.student-pass-copy>p,.student-summary p{font-size:15px}.student-class small,.student-class>div:first-child>span,.student-pass-code strong,.student-pass-identity small,.student-pass-warning,.student-progress small,.summary-score small,.timeline small{font-size:13px}.fee-amount b,.student-pass-code span,.student-pass-identity strong{font-size:15px}.global-note,.password-prompt span,.password-prompt strong,.profile-card dl div,.profile-card>span{font-size:14px}.access-summary span,.event-card .tag,.event-card>time span,.exam-actions small,.exam-card>div:first-child>span,.material-card>div:last-child>span,.month-filter,.progress-stat-row span{font-size:13px}.event-card h3,.exam-card h3,.material-card h3{font-size:19px}.backup-card p,.event-card p,.event-card small,.exam-card p,.material-card p,.reminder-action p,.safety-note,.toggle-field small{color:var(--ink-soft);font-size:14px}.exam-result-grid b,.exam-result-grid strong,.exam-score strong small,.toggle-field strong{font-size:14px}.class-quick-status small,.growth-axis,.growth-column strong,.growth-value,.performance-column small,.performance-column>strong,.profile-contact b,.profile-contact small{font-size:13px}.growth-column span{font-size:12px}.chart-legend,.chart-legend small,.student-class-list article span:not(.status),.subsection-heading p{font-size:13px}.app-loading,.loader-mark{font-size:14px}@keyframes breathe{50%{opacity:.78;transform:scale(.94)}}.menu-scrim{display:none}.utility-bar{z-index:18;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f7f3eaf0;border-bottom:1px solid #8a5f1933;justify-content:flex-end;align-items:center;gap:12px;min-height:68px;padding:10px clamp(25px,4vw,62px);display:flex;position:sticky;top:0}.utility-search-shell{width:min(100%,610px);position:relative}.utility-search-shell.search-active{z-index:82}.utility-search{background:var(--paper);border:1px solid #bcae96;border-radius:13px;align-items:center;gap:10px;width:100%;min-height:47px;padding:0 13px;display:flex;position:relative;box-shadow:0 7px 20px #101d360e}.utility-search>svg{color:var(--gold);flex:none}.utility-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-size:15px}.notification-button,.popover-heading button,.utility-search button{cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;min-width:38px;height:38px;display:grid}.notification-button{background:var(--paper);border:1px solid #bcae96;flex:none;position:relative}.notification-button>span{border:2px solid var(--ivory);color:#fff;background:var(--red);border-radius:20px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:10px;font-weight:900;display:grid;position:absolute;top:-7px;right:-6px}.utility-scrim{z-index:70;cursor:default;background:#0811215c;border:0;position:fixed;inset:0}.utility-popover{z-index:80;background:var(--paper);border:1px solid #bcae96;border-radius:17px;width:min(540px,100vw - 36px);max-height:min(660px,100vh - 98px);position:fixed;top:76px;right:clamp(18px,4vw,62px);overflow-y:auto;box-shadow:0 25px 65px #101d363d}.search-popover{overscroll-behavior:contain;border-radius:13px;width:100%;max-height:min(560px,100svh - 104px);animation:search-drop-in .16s ease-out;position:absolute;top:calc(100% + 8px);left:0;right:0}@keyframes search-drop-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.popover-heading{border-bottom:1px solid var(--line);background:#fffdf8f7;justify-content:space-between;align-items:center;gap:12px;min-height:61px;padding:12px 16px;display:flex;position:sticky;top:0}.popover-heading>span{gap:2px;display:grid}.popover-heading strong{font-size:17px}.popover-heading small{color:var(--slate);font-size:12px}.notification-item,.search-result{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c9bda8a6;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;min-height:72px;padding:13px 16px;display:grid}.notification-item:hover,.search-result:hover{background:var(--gold-soft)}.search-result.active,.search-result[aria-selected=true]{outline-offset:-2px;background:#eef6ff;outline:2px solid #1769d2}.notification-item>span,.search-result>span:nth-child(2){gap:3px;min-width:0;display:grid}.notification-item strong,.search-result strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.notification-item small,.notification-item time,.search-result small{color:var(--slate);font-size:13px;line-height:1.45}.search-state{color:#0755b5;align-items:center;gap:13px;min-height:88px;padding:17px 18px;display:flex}.search-loader,.search-state>svg{flex:none}.search-state>span:not(.search-loader){gap:4px;min-width:0;display:grid}.search-state strong{color:var(--ink);font-size:15px}.search-state small{color:var(--slate);font-size:13px;line-height:1.4}.search-state-error{color:var(--red)}.search-loader{border:2px solid #c7d9ef;border-top-color:#0755b5;border-radius:50%;width:19px;height:19px;animation:search-spin .7s linear infinite}@keyframes search-spin{to{transform:rotate(1turn)}}.result-category{min-width:64px;background:var(--gold-soft);text-align:center;text-transform:uppercase;letter-spacing:.05em;border-radius:7px;padding:5px 7px;font-size:10px;font-weight:900}.notification-item>svg:first-child,.result-category{color:var(--gold)}.notification-item.tone-danger{border-left:4px solid var(--red)}.notification-item.tone-warning{border-left:4px solid var(--gold)}.clear-state{border:1px dashed var(--line);min-height:72px;color:var(--green);background:#ddf1e973;border-radius:12px;align-items:center;gap:11px;padding:14px;display:flex}.clear-state.large{margin:18px}.clear-state span{gap:2px;display:grid}.clear-state strong{color:var(--ink);font-size:14px}.clear-state small{color:var(--slate);font-size:12px;line-height:1.45}.today-command{border-top:5px solid var(--ink);margin:0 0 26px;padding:28px}.today-command-grid{grid-template-columns:1.05fr .95fr 1fr;gap:22px;display:grid}.today-command-grid>div{background:#f7f3ea6b;border:1px solid #c9bda8cc;border-radius:14px;min-width:0;padding:18px}.today-command-grid h3{font-family:var(--font-sans);letter-spacing:0;align-items:center;gap:8px;margin-bottom:13px;font-size:16px;display:flex}.today-command-grid h3 svg{color:var(--gold)}.today-command-grid button{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c9bda8a6;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;min-height:66px;padding:10px 5px;display:grid}.today-command-grid button:last-child{border-bottom:0}.today-command-grid button:hover{color:var(--gold)}.attention-list button>span:first-child,.today-command-grid button>span:nth-child(2){gap:3px;min-width:0;display:grid}.today-command-grid button strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.today-command-grid button em,.today-command-grid button small{color:var(--slate);font-size:12px;font-style:normal;line-height:1.4}.attention-list button{grid-template-columns:1fr auto}.attention-list button em{color:var(--red)}.agenda-dot{background:var(--gold);width:10px;height:10px;box-shadow:0 0 0 4px var(--gold-soft);border-radius:50%}.agenda-dot.cancelled{background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}.action-count{min-width:35px;height:35px;color:var(--ink);background:var(--gold-soft);border-radius:10px;place-items:center;font-weight:900;display:grid}.action-count.tone-danger{color:var(--red);background:var(--red-soft)}.action-count.tone-success{color:var(--green);background:var(--green-soft)}.insight-loading{min-height:160px;color:var(--slate);place-items:center;margin-bottom:25px;display:grid}.student-focus-grid{grid-template-columns:repeat(4,1fr);gap:13px;margin:0 0 25px;display:grid}.student-focus-grid button{text-align:left;background:var(--paper);cursor:pointer;border:1px solid #bcae96;border-radius:15px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:110px;padding:17px;display:grid;box-shadow:0 9px 25px #101d3611}.student-focus-grid button:hover{border-color:var(--gold);transform:translateY(-1px)}.student-focus-grid button>svg:first-child{color:var(--gold)}.student-focus-grid button>span{gap:5px;min-width:0;display:grid}.student-focus-grid small{color:var(--slate);font-size:12px;font-weight:700}.student-focus-grid strong{color:var(--ink);text-overflow:ellipsis;font-size:15px;line-height:1.35;overflow:hidden}.operational-reports{margin-top:28px;padding:30px}.report-heading-with-control{grid-template-columns:46px 1fr minmax(210px,280px)}.compact-filter{align-self:center}.compact-filter select{min-height:48px}.operational-grid{grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:20px;display:grid}.academic-comparison,.attendance-trend-card,.fee-ageing-card,.student-history-timeline,.teacher-notes{border:1px solid var(--line);background:#f7f3ea59;border-radius:15px;min-width:0;padding:0 20px 20px}.attendance-trend-card .subsection-heading,.fee-ageing-card .subsection-heading{margin-top:20px}.attendance-bars{grid-template-columns:repeat(12,minmax(24px,1fr));align-items:end;gap:8px;height:255px;padding-top:10px;display:grid;overflow-x:auto}.attendance-bars>div{grid-template-rows:1fr auto auto;justify-items:center;gap:5px;min-width:34px;height:100%;display:grid}.attendance-bars>div>span{justify-content:center;align-items:end;gap:3px;width:100%;min-height:120px;display:flex}.attendance-bars i{border-radius:5px 5px 1px 1px;width:min(11px,42%);min-height:3px}.attendance-bars i.present,.inline-legend i.present{background:var(--green)}.attendance-bars i.absent,.inline-legend i.absent{background:var(--red)}.attendance-bars strong{font-size:11px}.attendance-bars small{color:var(--slate);white-space:nowrap;transform-origin:50%;font-size:9px;transform:rotate(-38deg)}.inline-legend{color:var(--slate);gap:18px;margin-top:15px;font-size:12px;display:flex}.inline-legend span{align-items:center;gap:6px;display:flex}.inline-legend i{border-radius:50%;width:9px;height:9px}.ageing-list{gap:9px;display:grid}.ageing-list article{border:1px solid var(--line);background:var(--paper);border-radius:11px;justify-content:space-between;align-items:center;gap:10px;min-height:65px;padding:12px 13px;display:flex}.ageing-list article.danger{background:var(--red-soft);border-color:#b5463f8c}.ageing-list article span{gap:3px;display:grid}.ageing-list strong{font-size:14px}.ageing-list small{color:var(--slate);font-size:11px}.ageing-list b{font-family:var(--font-serif);font-size:26px}.preference-options input{width:19px;height:19px;accent-color:var(--gold);flex:none}.profile-header-actions{justify-items:end;gap:9px;display:grid}.save-report-view{align-content:end;gap:7px;display:grid}.preference-saved,.saved-view-message{color:var(--green);align-items:center;gap:7px;margin:0;font-size:12px;display:flex}.academic-comparison,.student-history-timeline,.teacher-notes{margin-top:22px;padding:20px}.academic-comparison .subsection-heading,.student-history-timeline .subsection-heading,.teacher-notes .subsection-heading{margin-top:0}.comparison-grid{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.comparison-grid article{border:1px solid var(--line);background:var(--paper);border-radius:11px;gap:9px;min-height:145px;padding:14px;display:grid}.comparison-grid article>span{color:var(--slate);font-size:12px;font-weight:700}.comparison-grid article>strong{font-family:var(--font-serif);font-size:31px}.comparison-grid article>div{justify-content:space-between;align-items:center;gap:8px;display:flex}.comparison-grid small{color:var(--slate);font-size:11px}.comparison-grid b{font-size:12px}.comparison-grid b.up{color:var(--green)}.comparison-grid b.down{color:var(--red)}.history-timeline{gap:0;display:grid;position:relative}.history-timeline article{border-left:2px solid var(--line);grid-template-columns:105px 1fr;gap:13px;min-height:68px;padding:10px 0 10px 29px;display:grid;position:relative}.timeline-dot{border:2px solid var(--paper);background:var(--gold);width:12px;height:12px;box-shadow:0 0 0 2px var(--gold-soft);border-radius:50%;position:absolute;top:18px;left:-7px}.timeline-dot.type-fee{background:var(--green)}.timeline-dot.type-absence{background:var(--red)}.history-timeline time{color:var(--slate);font-size:12px}.history-timeline article>span{gap:3px;display:grid}.history-timeline strong{font-size:14px}.history-timeline small{color:var(--slate);font-size:12px;line-height:1.5}.teacher-note-form{border:1px solid var(--line);background:var(--paper);border-radius:12px;grid-template-columns:1fr minmax(210px,.4fr) auto;align-items:end;gap:13px;padding:16px;display:grid}.teacher-note-form textarea{min-height:86px}.note-list{gap:9px;margin-top:14px;display:grid}.note-list article{border-left:4px solid var(--gold);background:var(--paper);border-radius:7px;padding:13px}.note-list article span{color:var(--slate);text-transform:uppercase;font-size:11px;font-weight:800}.note-list article p{margin:5px 0 0;font-size:14px}.preferences-panel{margin-top:24px;padding:28px}.preferences-panel>p{max-width:760px;color:var(--slate);font-size:15px}.preference-options{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.preference-options label{border:1px solid var(--line);cursor:pointer;background:#f7f3ea80;border-radius:12px;align-items:flex-start;gap:11px;min-height:96px;padding:16px;display:flex}.preference-options label span{gap:5px;display:grid}.preference-options strong{font-size:15px}.preference-options small{color:var(--slate);font-size:13px;line-height:1.5}.preference-saved{margin-top:14px}.mobile-bottom-nav{display:none}.pref-large-text .app-main,.pref-large-text .sidebar{font-size:1.1em}.pref-large-text .button,.pref-large-text .sidebar nav button,.pref-large-text input,.pref-large-text select,.pref-large-text textarea{font-size:16px}.pref-large-text p,.pref-large-text small,.pref-large-text td,.pref-large-text th{font-size:max(14px,1em)}.pref-high-contrast{--ink-soft:#101d36;--slate:#26334a;--line:#88785f;--gold:#684207;--red:#982c25;--green:#005845}.pref-high-contrast .panel,.pref-high-contrast input,.pref-high-contrast select,.pref-high-contrast textarea{border-width:2px}.pref-reduced-motion *,.pref-reduced-motion :after,.pref-reduced-motion :before{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (max-width:1080px){.login-content{grid-template-columns:minmax(0,1fr) minmax(440px,.92fr)}.login-panel{padding-inline:24px}.login-story-inner{padding-left:38px;padding-right:38px}.story-copy h1{font-size:clamp(42px,6.5vh,52px)}.class-card-grid,.class-detail-stats,.label-sheet,.report-metrics{grid-template-columns:repeat(2,1fr)}.today-command-grid{grid-template-columns:1fr 1fr}.attention-list{grid-column:1/-1}.comparison-grid,.student-focus-grid,.teacher-note-form{grid-template-columns:1fr 1fr}.teacher-note-form .field{grid-column:1/-1}}@media (max-width:820px){.login-page{--login-header-height:78px;min-height:540px}.login-header-inner{padding:0 24px}.brand.institutional .brand-mark{border-radius:14px 14px 18px 18px;width:49px;height:48px;font-size:12px}.brand.institutional strong{font-size:24px}.brand.institutional small{font-size:11px}.login-content{height:calc(100svh - var(--login-header-height));grid-template-columns:1fr;display:grid}.login-story{display:none}.login-panel{height:100%;min-height:0;padding:clamp(10px,2.5vh,22px) clamp(14px,4vw,26px)}.login-form-wrap{width:min(100%,560px)}.login-card{padding:clamp(19px,3vh,30px) clamp(20px,5vw,34px)}.sidebar{transition:transform .22s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-close{color:#fff;background:0 0;border:0;place-items:center;width:34px;height:34px;display:grid}.menu-scrim{z-index:20;background:#08112173;border:0;display:block;position:fixed;inset:0}.app-main{margin-left:0}.mobile-topbar{z-index:15;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#101d36f5;grid-template-columns:36px 1fr 36px;align-items:center;height:64px;padding:0 18px;display:grid;position:sticky;top:0}.mobile-topbar>button{color:#fff;background:0 0;border:0;place-items:center;width:36px;height:36px;padding:0;display:grid}.mobile-topbar .topbar-profile{border-radius:50%}.mobile-topbar .topbar-profile .avatar{width:34px;height:34px}.mobile-topbar .brand{justify-self:center}.mobile-topbar .brand span,.mobile-topbar .brand-mark{display:none}.mobile-topbar .brand strong{font-size:20px}.mobile-topbar .avatar{background:#a9803e}.content-wrap{padding:28px 19px 108px}.utility-bar{min-height:61px;padding:7px 18px;top:64px}.utility-popover{max-height:calc(100vh - 154px);top:133px;right:18px}.search-popover{width:100%;max-height:min(480px,100svh - 145px);top:calc(100% + 8px);left:0;right:0}.mobile-bottom-nav{z-index:40;right:9px;bottom:max(8px,env(safe-area-inset-bottom));color:#d9e0ea;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#101d36f7;border:1px solid #ffffff29;border-radius:18px;grid-template-columns:repeat(5,1fr);min-height:66px;padding:6px;display:grid;position:fixed;left:9px;box-shadow:0 16px 40px #08112159}.mobile-bottom-nav button{min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;justify-items:center;gap:3px;padding:6px 2px;display:grid}.mobile-bottom-nav button.active{color:#fff;background:#c19a4f40}.mobile-bottom-nav button.active svg{color:#efc56f}.mobile-bottom-nav span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:800;overflow:hidden}.page-heading{min-height:auto;margin-bottom:25px}.page-heading h1{font-size:43px}.academic-layout.with-editor,.account-grid,.announcement-layout,.backup-grid,.fees-layout,.learning-grid,.overview-grid,.profile-insight-grid,.reminder-grid,.scanner-layout,.student-grid,.two-panel-grid{grid-template-columns:1fr}.report-heading-with-control .month-filter{grid-column:2;width:min(100%,320px)}.announcement-form{position:static}.announcement-feed.compact{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(3,1fr)}.metric{min-height:130px;padding:18px}.metric strong{font-size:34px}.academic-editor,.fee-help{position:static}.operational-grid,.preference-options,.today-command-grid{grid-template-columns:1fr}.attention-list{grid-column:auto}.report-heading-with-control{grid-template-columns:46px 1fr}.report-heading-with-control .compact-filter{grid-column:2;width:min(100%,320px)}}@media (max-width:590px){.login-page{--login-header-height:72px}.login-header-inner{padding:0 16px}.brand.institutional{gap:12px}.brand.institutional .brand-mark{border-width:1px;border-radius:12px 12px 15px 15px;width:45px;height:44px;font-size:12px;box-shadow:0 0 0 3px #fff,0 0 0 4px #c18f2ba6}.brand.institutional .brand-mark:before{font-size:11px;top:-14px}.brand.institutional strong{font-size:22px}.brand.institutional small{font-size:12px}.login-support{justify-content:center;width:43px;min-height:43px;padding:0}.login-support span{display:none}.login-panel{padding:10px 12px}.login-card{border-radius:19px;padding:clamp(17px,2.6vh,24px) 20px}.login-form-wrap h2{font-size:clamp(34px,5.5vh,40px)}.login-card>.form-intro{margin-bottom:clamp(12px,2vh,18px)}.login-options{align-items:flex-start}.login-options .text-button,.login-remember{font-size:14px}.login-card .form-stack{gap:12px}.login-input,.login-input input,.login-input input:focus,.login-submit{min-height:49px}.login-help{min-height:44px}.modal h2{font-size:32px}.modal{padding:30px 22px 24px}.class-checks,.form-grid.two{grid-template-columns:1fr}.class-checks,.span-two{grid-column:1}.page-heading{display:block}.page-heading .button{width:100%}.page-actions{grid-template-columns:1fr 1fr;margin-top:16px;display:grid}.page-actions .button{margin-top:0}.table-toolbar{flex-direction:column;align-items:stretch}.directory-search{width:100%}.fee-class-filter{flex-direction:column;align-items:stretch;gap:5px}.fee-class-filter select{width:100%;max-width:none}.metric-grid{grid-template-columns:1fr 1fr}.metric:first-child{grid-column:1/-1}.class-card-grid,.class-detail-stats,.label-sheet,.staff-grid{grid-template-columns:1fr}.action-card,.class-list-panel,.fee-form,.fee-help,.payment-history,.scan-result,.scanner-stage,.scanner-start,.student-grid>.panel{padding:21px}.attendance-fee-fields{grid-template-columns:1fr}.student-summary{align-items:flex-start;padding:25px}.student-summary h2{font-size:27px}.summary-score{width:83px;height:83px}.summary-score strong{font-size:28px}.student-welcome{align-items:flex-start}.student-header-avatar{width:54px;height:54px}.student-pass-panel,.student-progress{grid-template-columns:1fr}.student-pass-panel{padding:23px}.student-pass-code{justify-self:center;width:min(100%,220px)}.student-pass-copy>.button{width:100%}.report-section{padding:22px 18px}.report-heading-with-control,.report-section-heading{grid-template-columns:38px 1fr;gap:11px}.report-section-number{border-radius:10px;width:36px;height:36px;font-size:14px}.plain-section-heading h2,.report-section-heading h2{font-size:30px}.report-section-heading p{font-size:15px}.report-control-strip{margin:0 -18px 22px;padding:18px}.report-control-strip,.report-control-strip.single{grid-template-columns:1fr}.report-heading-with-control .month-filter{grid-column:1/-1;width:100%}.growth-summary{grid-template-columns:1fr}.growth-summary>div{min-height:70px}.chart-legend{flex-direction:column;align-items:flex-start}.student-profile-header{grid-template-columns:50px 1fr}.student-profile-initial{border-radius:15px;width:50px;height:50px}.student-profile-header h3{font-size:29px}.profile-contact{grid-column:1/-1}.profile-contact a{min-width:0}.exam-result-grid,.progress-stat-row,.report-metrics{grid-template-columns:1fr 1fr}.progress-stat-row>div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.progress-stat-row>div:nth-child(4){border-top:1px solid var(--line)}.event-card{grid-template-columns:44px 1fr}.event-card>.button{grid-column:2;justify-self:start;width:auto}.progress-report{padding:21px}.progress-title,.report-letterhead{flex-direction:column;align-items:flex-start}.progress-average{justify-items:start}.password-prompt{min-width:0;bottom:14px;left:14px;right:14px}.utility-bar{padding-inline:12px}.utility-search input{font-size:14px}.utility-popover{width:calc(100vw - 20px);right:10px}.search-popover{width:100%;right:0}.operational-reports,.preferences-panel,.today-command{padding:20px 16px}.today-command-grid>div{padding:14px}.student-focus-grid{grid-template-columns:1fr}.student-focus-grid button{min-height:82px}.report-heading-with-control .compact-filter{grid-column:1/-1;width:100%}.attendance-trend-card,.fee-ageing-card{padding-inline:13px}.attendance-bars{gap:5px}.comparison-grid{grid-template-columns:1fr}.history-timeline article{grid-template-columns:1fr;gap:4px}.teacher-note-form{grid-template-columns:1fr}.teacher-note-form .field{grid-column:auto}.profile-header-actions{grid-column:1/-1;justify-items:stretch;width:100%}.mobile-bottom-nav span{font-size:11px}}.login-page{--login-header-height:clamp(74px,9vh,84px);color:#0a2859;background:#f5f2ea}.login-header{z-index:10;height:var(--login-header-height);background:#fffffffa;border-color:#d9dfe8;position:relative;box-shadow:0 1px #07235206}.login-header-inner{width:100%;padding-inline:clamp(24px,3.2vw,56px)}.brand.institutional{gap:17px}.brand.institutional .brand-mark{border-width:1px;border-radius:16px 16px 20px 20px;width:56px;height:55px;font-size:14px;box-shadow:0 0 0 3px #fff,0 0 0 5px #c18f2ba8,0 8px 24px #0927531f}.brand.institutional .brand-mark:before{content:"★";font-size:12px;top:-16px}.brand.institutional>div:last-child{gap:5px}.brand.institutional strong{letter-spacing:-.025em;font-size:clamp(27px,2.1vw,34px);font-weight:700}.brand.institutional small{letter-spacing:.03em;font-size:12px;font-weight:800}.login-support{color:#0a326d;border-color:#c7d1df;border-radius:13px;min-height:47px;padding-inline:18px;font-size:12px;box-shadow:0 5px 18px #10294e0a}.login-content{background:#f5f2ea;grid-template-columns:minmax(0,1.38fr) minmax(440px,.92fr)}.login-story{isolation:isolate;background:#071a3b;position:relative}.login-story:after{display:none}.login-story-inner{isolation:isolate;justify-content:flex-end;padding:clamp(36px,5vw,76px);position:relative}.login-story-inner:before{content:"";pointer-events:none;background:linear-gradient(#030f2314 4%,#030f231f 38%,#030f23d6),linear-gradient(90deg,#04142d8f,#04142d14 64%,#04142d33);position:absolute;inset:0}.login-hero-image:after{display:none}.story-copy{text-shadow:0 3px 22px #020c1e6b;width:min(100%,690px);max-width:none;margin-bottom:clamp(2px,1.8vh,18px);margin-right:auto}.story-kicker{color:#f4cc76;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:fit-content;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.13em;background:#061b3d8a;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:8px 11px;font-size:11px;font-weight:800;display:inline-flex;box-shadow:0 8px 28px #020c1e24}.story-copy h1{letter-spacing:-.04em;text-wrap:balance;flex-direction:column;margin:0 0 19px;font-size:clamp(53px,5.15vw,78px);line-height:.92;display:flex}.story-copy h1:after{display:none}.story-copy h1 em{color:#efc66d;margin-top:7px;font-style:normal;display:block}.story-copy p{color:#ffffffdb;max-width:580px;font-family:var(--font-sans);text-shadow:0 2px 16px #020c1e80;margin:0 0 21px;font-size:clamp(15px,1.15vw,17px);font-weight:500;line-height:1.65}.story-feature-row{flex-wrap:wrap;gap:9px;display:flex}.story-feature-row span{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:35px;font-family:var(--font-sans);letter-spacing:.02em;background:#0518367a;border:1px solid #ffffff3d;border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-size:11px;font-weight:700;display:inline-flex}.story-feature-row svg{color:#efc66d}.hero-trust-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05193aad;border-color:#ffffff47;border-radius:14px;min-width:215px;padding:13px 15px;inset:clamp(24px,3.2vw,46px) clamp(24px,3.2vw,46px) auto auto;box-shadow:0 18px 44px #020c1e38}.hero-trust-card>svg{color:#efc66d}.hero-trust-card span{gap:3px;font-size:12px}.hero-trust-card strong{color:#fff;font-size:12px}.hero-trust-card small{color:#ffffffb3;font-size:10px}.login-panel{background:radial-gradient(circle at 100% 0,#e1d5ba6b,#0000 30%),#f5f2ea;padding:clamp(24px,4.5vw,66px)}.login-panel:before{background:0 0;border-color:#b07e2417;width:460px;height:460px;bottom:-210px;right:-175px;box-shadow:0 0 0 68px #b07e2406}.login-panel:after{content:"";opacity:.7;background:#c68e2a;border-radius:3px;width:42px;height:3px;position:absolute;top:12%;left:9%}.login-form-wrap{width:min(100%,470px)}.login-card{background:#fffffff5;border:1px solid #727e8f30;border-radius:25px;padding:clamp(30px,4.5vh,44px) clamp(30px,3.7vw,46px);box-shadow:0 30px 80px #081f4524,0 2px 8px #081f4509}.login-card-heading{margin-bottom:clamp(21px,3vh,30px)}.login-card-heading .eyebrow{color:#a36805;letter-spacing:.15em;width:auto;margin-bottom:9px;font-size:11px}.login-card .privacy-note svg{color:#a7751f;flex:none}.login-divider,.login-help{display:none}@media (max-width:1120px){.login-content{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)}.login-story-inner{padding:40px}.story-copy h1{font-size:clamp(46px,5.4vw,61px)}.story-copy p{font-size:14px}.login-panel{padding-inline:28px}.hero-trust-card{top:24px;right:24px}}@media (max-width:820px){.login-page{--login-header-height:72px}.login-header-inner{padding-inline:18px}.brand.institutional{gap:13px}.brand.institutional .brand-mark{border-radius:13px 13px 16px 16px;width:45px;height:44px;font-size:11px}.brand.institutional .brand-mark:before{font-size:10px;top:-13px}.brand.institutional strong{font-size:23px}.brand.institutional small{font-size:10px}.login-content{height:calc(100svh - var(--login-header-height));grid-template-rows:minmax(155px,29vh) minmax(0,1fr);grid-template-columns:1fr;overflow:hidden}.login-story{min-height:0;display:block}.login-story-inner{padding:22px 24px 25px}.story-copy{margin:auto 0 0}.story-kicker{margin-bottom:10px;padding:6px 9px;font-size:9px}.story-copy h1{margin:0;font-size:clamp(32px,8.2vw,43px);line-height:.94}.story-copy h1 em{margin-top:3px}.hero-trust-card,.story-copy p,.story-feature-row{display:none}.login-hero-image img{object-position:51% 43%}.login-panel{background:#f5f2ea;place-items:start center;height:100%;min-height:0;padding:0 14px 10px;overflow:hidden}.login-panel:after{display:none}.login-form-wrap{width:min(100%,540px);margin-top:-17px}.login-card{border-radius:24px;padding:clamp(20px,3vh,29px) clamp(21px,5.5vw,34px);box-shadow:0 24px 58px #081f4529}.login-card-heading{margin-bottom:18px}.login-form-wrap h2{font-size:clamp(34px,5.5vh,41px)}.login-input,.login-input input,.login-input input:focus{min-height:49px}.login-submit{min-height:50px}.login-card .privacy-note{margin-top:13px;padding-top:12px}}@media (max-width:500px){.login-page{--login-header-height:66px}.login-header-inner{padding-inline:13px}.brand.institutional{gap:10px}.brand.institutional .brand-mark{border-radius:11px 11px 14px 14px;width:39px;height:38px;font-size:9px}.brand.institutional .brand-mark:before{font-size:8px;top:-11px}.brand.institutional strong{font-size:19px}.brand.institutional small{font-size:9px}.login-support{justify-content:center;width:40px;min-height:40px;padding:0}.login-support span{display:none}.login-content{grid-template-rows:minmax(145px,26vh) minmax(0,1fr)}.login-story-inner{padding:18px 18px 24px}.story-kicker{display:none}.story-copy h1{font-size:clamp(30px,9.6vw,38px)}.login-form-wrap{margin-top:-15px}.login-card{border-radius:21px;padding:19px 20px}.login-card-heading{margin-bottom:15px}.login-form-wrap h2{font-size:34px}.login-card-heading .form-intro{font-size:12px}.login-card .form-stack{gap:12px}.login-options .text-button,.login-remember{font-size:12px}.login-card .privacy-note{font-size:9px}}@media (max-height:720px){.login-page{--login-header-height:62px;min-height:0}.login-header-inner{padding-inline:16px}.brand.institutional{gap:10px}.brand.institutional .brand-mark{border-radius:11px 11px 14px 14px;width:39px;height:38px;font-size:9px}.brand.institutional .brand-mark:before{font-size:8px;top:-11px}.brand.institutional strong{font-size:19px}.brand.institutional small{font-size:9px}.login-support{min-height:38px;padding-inline:13px}.login-story-inner{padding:24px 30px}.story-kicker{margin-bottom:9px;padding-block:6px;font-size:9px}.story-copy h1{margin-bottom:10px;font-size:clamp(40px,7.5vh,52px)}.story-copy p{margin-bottom:11px;font-size:12px;line-height:1.45}.story-feature-row span{min-height:29px;font-size:9px}.hero-trust-card{display:none}.login-panel{padding-block:9px}.login-card{padding:20px 28px}.login-card-heading{margin-bottom:13px}.login-card-heading .eyebrow{margin-bottom:5px}.login-form-wrap h2{margin-bottom:4px;font-size:35px}.login-card-heading .form-intro{font-size:12px}.login-card .form-stack{gap:10px}.login-field{gap:5px}.login-input,.login-input input,.login-input input:focus{min-height:45px}.login-options{min-height:22px}.login-submit{min-height:47px}.login-card .privacy-note{margin-top:9px;padding-top:9px;font-size:9px}}@media (max-width:820px) and (max-height:720px){.login-content{grid-template-rows:132px minmax(0,1fr)}.login-story-inner{padding:14px 20px 21px}.story-kicker{display:none}.story-copy h1{margin:0;font-size:30px}.login-panel{padding:0 10px 7px}.login-form-wrap{margin-top:-13px}.login-card{padding:15px 20px}.login-card-heading{margin-bottom:10px}.login-form-wrap h2{font-size:31px}.login-card-heading .form-intro{display:none}.login-card .form-stack{gap:8px}.login-field{gap:4px}.login-input,.login-input input,.login-input input:focus{min-height:42px}.login-submit{min-height:44px}.login-card .privacy-note{display:none}}.app-shell{color:#14213a}.app-shell .access-summary strong,.app-shell .ageing-list b,.app-shell .brand strong,.app-shell .comparison-grid article>strong,.app-shell .growth-summary strong,.app-shell .metric strong,.app-shell .progress-stat-row strong,.app-shell .student-progress strong,.app-shell .summary-score strong,.app-shell h1,.app-shell h2,.app-shell h3{font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:-.025em;font-weight:700}.app-shell .eyebrow{color:#80530b;min-height:27px;letter-spacing:.09em;background:#f5ead4;border:1px solid #b17d1d26;padding:5px 9px;font-size:10px;line-height:1}.app-shell .page-heading{border-bottom:1px solid #dce2eb;min-height:96px;margin-bottom:25px;padding-bottom:22px}.app-shell .page-heading p{color:#5f6c81;max-width:760px;font-size:15px;font-weight:500}.app-shell .section-heading h2{letter-spacing:-.025em;font-size:23px}.app-shell .subsection-heading{border-bottom:1px solid #e5e9ef;margin:25px 0 13px;padding-bottom:10px}.app-shell .subsection-heading h3{letter-spacing:-.015em;margin:0 0 4px;font-size:17px;font-weight:700;line-height:1.35}.app-shell .subsection-heading p{color:#6b778b;font-size:12px}.app-shell .panel{border-color:#dce2ea;box-shadow:0 7px 24px #1126470e}.app-shell .metric{border-color:#dce2ea;box-shadow:0 5px 18px #1126470b}.app-shell .metric p,.app-shell .metric>span{color:#758094;text-transform:uppercase;letter-spacing:.055em;font-size:11px}.app-shell .metric strong{margin-top:10px;font-size:35px}.app-shell .record-count{color:#536077;min-height:27px;font-family:var(--font-serif),sans-serif;letter-spacing:.04em;background:#eef1f6;padding:5px 9px;font-size:10px}.app-shell .class-checks legend,.app-shell .field>span{color:#253650;letter-spacing:.015em;font-size:11px}.app-shell .field input,.app-shell .field select,.app-shell .field textarea,.app-shell .manual-search input{border-color:#ccd4df;font-size:14px}.app-shell .button{letter-spacing:-.005em;font-size:12px}.app-shell .status{font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:.045em;border-radius:6px;font-size:10px;font-weight:700}.app-shell th{color:#667287;letter-spacing:.06em;background:#f2f4f8;font-size:10px}.app-shell td{color:#2c3b53;font-size:13px}.app-shell .announcement-item strong,.app-shell .class-row strong,.app-shell .event-card h3,.app-shell .exam-card h3,.app-shell .material-card h3,.app-shell .staff-card h3,.app-shell .student-class strong,.app-shell .table-person strong{color:#172944;font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:-.01em;font-size:14px;font-weight:700}.app-shell .sidebar nav{gap:4px}.app-shell .sidebar nav button{color:#aeb9ca;min-height:49px;font-family:var(--font-sans),sans-serif;border-radius:8px;font-size:13px}.app-shell .sidebar nav button.active{color:#fff;background:#ffffff18;box-shadow:inset 3px 0 #e1b95f}.app-shell .sidebar nav button.active span{font-weight:700}.app-shell .sidebar nav i{font-family:var(--font-serif),sans-serif;font-size:9px;font-weight:700}.login-page{background:#e9edf4}.login-content{width:calc(100% - 24px);height:calc(100svh - var(--login-header-height) - 24px);background:#f4f6fa;border:1px solid #1c355b1c;border-radius:28px;margin:12px;box-shadow:0 20px 65px #0b22441c}.login-story{border-radius:27px 0 0 27px}.login-panel{background:radial-gradient(circle at 100% 0,#dde4f6d1,#0000 34%),#f5f7fb;border-radius:0 27px 27px 0}.login-card{background:#fffffffa;border-color:#495b7829}.brand.institutional strong,.login-card-heading .eyebrow,.login-field>span,.login-form-wrap h2,.login-submit,.story-copy h1,.story-kicker{font-family:var(--font-serif),var(--font-sans),sans-serif}@media (max-width:820px){.app-shell .page-heading{align-items:flex-start;min-height:auto}.app-shell .page-heading h1{font-size:34px}.app-shell .section-heading h2{font-size:21px}.login-content{width:calc(100% - 12px);height:calc(100svh - var(--login-header-height) - 12px);border-radius:22px;margin:6px}.login-story{border-radius:21px 21px 0 0}.login-panel{border-radius:0 0 21px 21px}}@media (max-height:720px){.login-content{width:calc(100% - 12px);height:calc(100svh - var(--login-header-height) - 12px);margin:6px}}.login-page{--login-coral:#d96550;--login-coral-deep:#c9503b;background:radial-gradient(circle at 11% 17%,#ffffff21 0 86px,transparent 87px),radial-gradient(circle at 91% 83%,#6e20181f 0 145px,transparent 146px),linear-gradient(145deg,#df715b 0,var(--login-coral) 52%,#c95441 100%);place-items:center;width:100%;height:100svh;min-height:0;padding:clamp(14px,2.2vw,28px)}.login-content,.login-page{display:grid;overflow:hidden}.login-content{background:#fff;border:1px solid #091b377a;border-radius:27px;grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr);width:min(1180px,100%);height:min(720px,100%);margin:0;padding:9px;box-shadow:0 34px 95px #48191547,0 5px 20px #1c192629}.login-story{background:#0a244f;border-radius:19px 0 0 19px;min-width:0;overflow:hidden}.login-story-inner{justify-content:flex-start;align-items:flex-start;height:100%;padding:clamp(27px,3.2vw,42px);display:flex}.login-story-inner:before{z-index:-1;background:linear-gradient(135deg,#05183754,#0518370a 50%,#0000 67%),linear-gradient(#061a390d 45%,#061a3966)}.login-hero-image{z-index:-2;width:100%;height:100%;box-shadow:none;border-radius:0;margin:0;position:absolute;inset:0}.login-hero-image img{object-fit:cover;object-position:52% center;filter:saturate(.9)contrast(1.02);width:100%;height:100%}.story-copy{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(100%,430px);text-shadow:none;background:#071f46d1;border:1px solid #fff3;border-radius:18px;margin:0;padding:22px 24px 24px;box-shadow:0 20px 52px #020f2342}.story-kicker{color:#f6cc75;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;letter-spacing:.115em;background:0 0;border:0;margin-bottom:13px;padding:0;font-size:10px}.story-copy h1{color:#fff;letter-spacing:-.045em;text-shadow:none;margin:0 0 13px;font-size:clamp(38px,3.4vw,49px);font-weight:700;line-height:.98}.story-copy h1 em{color:#f3c666;margin-top:4px}.story-copy p{color:#fffc;max-width:360px;text-shadow:none;margin:0;font-size:13px;line-height:1.55}.story-feature-row{display:none}.hero-trust-card{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#071e43d1;border:1px solid #ffffff3b;border-radius:13px;min-width:220px;padding:12px 14px;inset:auto auto clamp(24px,3vw,38px) clamp(24px,3vw,38px);box-shadow:0 16px 38px #020f2338}.login-panel{background:#fffaf6;border-radius:0 19px 19px 0;flex-direction:column;justify-content:space-between;align-items:stretch;min-width:0;padding:clamp(28px,3.4vw,46px) clamp(30px,4vw,54px);display:flex;overflow:hidden}.login-panel:after,.login-panel:before{display:none}.login-panel-header{justify-content:space-between;align-items:center;gap:18px;width:100%;display:flex}.login-panel .brand.institutional{gap:13px;min-width:0}.login-panel .brand.institutional .brand-mark{border-radius:12px 12px 15px 15px;width:43px;height:42px;font-size:10px;box-shadow:0 0 0 2px #fffaf6,0 0 0 4px #c18f2bad}.login-panel .brand.institutional .brand-mark:before{font-size:9px;top:-12px}.login-panel .brand.institutional>div:last-child{gap:5px}.login-panel .brand.institutional strong{color:#092b63;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(17px,1.45vw,20px);font-weight:700;line-height:1.05;overflow:hidden}.login-panel .brand.institutional small{color:#b87913;font-size:9px;font-weight:800}.login-panel .login-support{color:#173d71;min-height:39px;box-shadow:none;background:#fff;border-color:#e2d7ce;border-radius:10px;flex:none;padding:0 13px;font-size:11px}.login-form-wrap{width:min(100%,410px);max-height:none;margin:auto}.login-card{max-height:none;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;overflow:visible}.login-card-heading{text-align:left;margin:0 0 24px}.login-card-heading .eyebrow{color:#a13f2d;letter-spacing:.13em;background:#f9e8e2;border:1px solid #cc5b4524;border-radius:6px;justify-content:flex-start;width:fit-content;min-height:25px;margin-bottom:11px;padding:5px 8px;font-size:9px}.login-form-wrap h2{color:#0a2e64;text-align:left;letter-spacing:-.035em;margin:0 0 7px;font-size:clamp(34px,3.2vw,41px);font-weight:700;line-height:1.05}.login-card-heading .form-intro{color:#647084;text-align:left;margin:0;font-size:13px;font-weight:500;line-height:1.55}.login-card .form-stack{gap:15px}.login-field{gap:7px}.login-field>span{color:#1d2f4b;font-size:11px;font-weight:800}.login-input{color:#7c8798;background:#fff;border-color:#d3d7dd;border-radius:9px;min-height:50px;padding-inline:14px}.login-input input,.login-input input:focus{min-height:48px;font-size:13px;font-weight:600}.login-input:focus-within{border-color:var(--login-coral);box-shadow:0 0 0 4px #d965501f}.login-options{margin-top:0}.login-options .text-button,.login-remember{font-size:11px;font-weight:700}.login-options .text-button{color:#b84632}.login-submit{color:#fff;background:linear-gradient(135deg,#dd694f,var(--login-coral-deep));border-radius:9px;min-height:50px;margin-top:1px;padding-inline:20px 18px;font-size:13px;box-shadow:0 14px 28px #c04b3838}.login-submit:hover:not(:disabled){background:linear-gradient(135deg,#e2765e,#bd4432);box-shadow:0 17px 33px #c04b3847}.login-card .privacy-note{color:#7d8490;border-top:1px solid #e9dfd8;justify-content:flex-start;margin:16px 0 0;padding-top:14px;font-size:9px;line-height:1.45}.login-form-wrap .setup-link{margin-top:10px}@media (max-width:900px){.login-page{padding:9px}.login-content{border-radius:23px;grid-template-rows:minmax(150px,27vh) minmax(0,1fr);grid-template-columns:1fr;width:100%;height:100%;padding:7px}.login-story{border-radius:16px 16px 0 0}.login-story-inner{align-items:flex-end;padding:17px 20px}.login-hero-image img{object-position:51% 43%}.story-copy{border-radius:13px;width:min(100%,310px);padding:13px 15px 15px}.story-kicker{display:none}.story-copy h1{margin:0;font-size:clamp(27px,7vw,34px);line-height:.94}.hero-trust-card,.story-copy p{display:none}.login-panel{border-radius:0 0 16px 16px;height:100%;min-height:0;padding:17px clamp(18px,5.5vw,30px) 18px}.login-panel-header{min-height:45px}.login-panel .brand.institutional .brand-mark{width:37px;height:36px;font-size:8px}.login-panel .brand.institutional .brand-mark:before{font-size:7px;top:-10px}.login-panel .brand.institutional strong{font-size:17px}.login-panel .brand.institutional small{font-size:8px}.login-form-wrap{width:min(100%,450px);margin:auto}.login-card-heading{margin-bottom:15px}.login-card-heading .eyebrow{margin-bottom:7px}.login-form-wrap h2{font-size:31px}.login-card .form-stack{gap:11px}.login-input,.login-input input,.login-input input:focus{min-height:45px}.login-submit{min-height:46px}.login-card .privacy-note{margin-top:10px;padding-top:9px}}@media (max-width:500px){.login-page{padding:6px}.login-content{border-radius:19px;grid-template-rows:minmax(125px,23vh) minmax(0,1fr);padding:5px}.login-story{border-radius:14px 14px 0 0}.login-story-inner{padding:12px 14px}.story-copy{border-radius:10px;width:auto;padding:10px 12px 11px}.story-copy h1{font-size:25px}.login-panel{border-radius:0 0 14px 14px;padding:13px 14px 14px}.login-panel .brand.institutional{gap:10px}.login-panel .brand.institutional strong{max-width:210px;font-size:15px}.login-panel .brand.institutional small{font-size:7px}.login-panel .login-support{justify-content:center;width:37px;min-height:37px;padding:0}.login-panel .login-support span{display:none}.login-card-heading{margin-bottom:13px}.login-form-wrap h2{font-size:29px}.login-card-heading .form-intro{font-size:11px}.login-options .text-button,.login-remember{font-size:10px}.login-card .privacy-note{font-size:8px}}@media (max-height:700px) and (min-width:901px){.login-page{padding:12px}.login-content{height:100%}.login-panel{padding-block:20px}.login-panel-header{min-height:44px}.login-card-heading{margin-bottom:14px}.login-card-heading .eyebrow{margin-bottom:6px}.login-form-wrap h2{font-size:32px}.login-card .form-stack{gap:10px}.login-input,.login-input input,.login-input input:focus{min-height:43px}.login-submit{min-height:45px}.login-card .privacy-note{margin-top:9px;padding-top:8px}.story-copy{padding:18px 20px 20px}.story-copy h1{font-size:39px}}@media (max-width:900px) and (max-height:650px){.login-content{grid-template-rows:96px minmax(0,1fr)}.login-story-inner{padding:8px 12px}.story-copy{padding:8px 10px}.story-copy h1{font-size:22px}.login-panel{padding-block:10px}.login-panel-header{min-height:39px}.login-panel .brand.institutional .brand-mark{width:32px;height:31px}.login-card-heading{margin-bottom:8px}.login-card-heading .eyebrow{display:none}.login-form-wrap h2{margin-bottom:3px;font-size:25px}.login-card-heading .form-intro{display:none}.login-card .form-stack{gap:7px}.login-field{gap:4px}.login-input,.login-input input,.login-input input:focus{min-height:39px}.login-submit{min-height:40px}.login-card .privacy-note{display:none}}.app-shell{--ink:#12213c;--ink-soft:#31415d;--slate:#58677e;--ivory:#f2f5f9;--line:#d5dde8;--gold:#8a5b0d;--gold-soft:#f5ead4;--green-soft:#e1f3ed;--red-soft:#fae8e5;min-height:100vh;font-size:16px;font-weight:500;line-height:1.6}.skip-link{z-index:200;color:#fff;background:#10203d;border-radius:8px;padding:11px 15px;font-weight:800;text-decoration:none;position:fixed;top:10px;left:10px;transform:translateY(-160%);box-shadow:0 9px 25px #00000040}.skip-link:focus{transform:translateY(0)}.app-shell :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-offset:3px!important;outline:3px solid #b87500!important;box-shadow:0 0 0 5px #b8750029!important}.app-main:focus{outline:0}.app-shell .access-summary strong,.app-shell .ageing-list b,.app-shell .brand strong,.app-shell .comparison-grid article>strong,.app-shell .growth-summary strong,.app-shell .metric strong,.app-shell .progress-stat-row strong,.app-shell .student-progress strong,.app-shell .summary-score strong,.app-shell h1,.app-shell h2,.app-shell h3,.app-shell h4{color:var(--ink);font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:-.025em;font-weight:700}.app-shell p{color:var(--ink-soft)}.app-shell small{line-height:1.5;font-size:13px!important}.app-shell .sidebar{background:#10203d;border-right:1px solid #ffffff14;width:278px;padding:25px 18px 18px;box-shadow:12px 0 34px #11224014}.app-shell .sidebar-top{margin:0 6px 25px}.app-shell .sidebar .brand{gap:11px}.app-shell .sidebar .brand-mark{width:42px;height:42px}.app-shell .sidebar .brand strong{color:#fff;font-size:19px}.app-shell .sidebar .brand span{color:#aeb9ca;font-size:10px}.app-shell .sidebar nav{gap:0;padding:0 3px 14px 0}.app-shell .nav-group{gap:4px;display:grid}.app-shell .nav-group+.nav-group{border-top:1px solid #ffffff14;margin-top:16px;padding-top:15px}.app-shell .nav-group-label{color:#8190a7;min-height:20px;font-family:var(--font-serif),var(--font-sans),sans-serif;text-transform:uppercase;letter-spacing:.1em;padding:0 12px 5px;font-size:12px;font-weight:700;line-height:1.25}.app-shell .sidebar nav button{color:#bdc7d6;border-radius:9px;gap:12px;min-height:48px;padding:0 12px;font-size:14px;font-weight:600}.app-shell .sidebar nav button svg{color:#91a0b6;flex:none}.app-shell .sidebar nav button.active,.app-shell .sidebar nav button[aria-current=page]{background:#ffffff1b;font-weight:800;box-shadow:inset 4px 0 #e1b95f}.app-shell .sidebar nav button.active svg{color:#f1ca73}.app-shell .sidebar nav i{padding:4px 7px;font-size:10px;font-weight:800}.app-shell .sidebar-foot{border-top:1px solid #ffffff14;padding-top:17px}.app-shell .mini-profile strong{color:#fff;max-width:140px;font-size:14px}.app-shell .mini-profile small{color:#a7b3c4}.app-shell .app-main{background:var(--ivory);margin-left:278px}.app-shell .utility-bar{border-bottom:1px solid var(--line);background:#fffffff0;min-height:70px;padding:10px clamp(24px,3.5vw,54px);box-shadow:0 5px 18px #12213c09}.app-shell .utility-search{background:#fff;border-color:#c8d1de;border-radius:10px;min-height:48px;box-shadow:0 4px 14px #12213c0b}.app-shell .utility-search input{color:var(--ink);font-size:15px;font-weight:500}.app-shell .utility-search input::placeholder{color:#5f6d82}.app-shell .notification-button,.app-shell .popover-heading button,.app-shell .utility-search button{min-width:44px;min-height:44px}.app-shell .notification-button{border-color:#c8d1de}.app-shell .page-heading{border-bottom:1px solid var(--line);align-items:center;min-height:auto;margin:0 0 28px;padding:0 0 23px}.app-shell .page-heading>div:first-child{max-width:820px}.app-shell .page-heading h1{letter-spacing:-.035em;margin:0 0 8px;font-size:clamp(35px,3.4vw,47px);font-weight:700;line-height:1.08}.app-shell .page-heading p{max-width:780px;color:var(--slate);line-height:1.6}.app-shell .page-heading .button{align-self:center;margin-top:0}.app-shell .eyebrow{color:#754b08;background:var(--gold-soft);width:fit-content;min-height:28px;font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:.075em;border:1px solid #e6d3ad;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:700;line-height:1.2}.app-shell .panel{border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:0 8px 24px #12213c0e}.app-shell .panel-dark{background:#10203d;border-radius:14px}.app-shell .section-heading{border-bottom:1px solid #e1e6ee;align-items:center;margin-bottom:20px;padding-bottom:15px}.app-shell .section-heading h2{margin:0;font-size:24px;font-weight:700;line-height:1.25}.app-shell .section-heading p{color:var(--slate);margin:5px 0 0;font-size:14px;line-height:1.55}.app-shell .section-heading .eyebrow{margin-bottom:7px}.app-shell .subsection-heading{border-bottom:1px solid #e1e6ee;border-left:3px solid #c28c2c;align-items:center;margin:25px 0 15px;padding:1px 0 12px 13px}.app-shell .subsection-heading h3,.app-shell .today-command-grid h3{letter-spacing:-.015em;margin:0 0 4px;font-size:18px;font-weight:700;line-height:1.35}.app-shell .subsection-heading p{color:var(--slate);margin:0;font-size:14px;line-height:1.55}.app-shell .report-section{margin-top:25px;padding:28px}.app-shell .report-section+.report-section{margin-top:25px}.app-shell .report-section-heading{border-bottom:1px solid #e1e6ee;padding-bottom:21px}.app-shell .plain-section-heading h2,.app-shell .report-section-heading h2{margin-bottom:7px;font-size:27px;font-weight:700;line-height:1.22}.app-shell .plain-section-heading p,.app-shell .report-section-heading p{color:var(--slate);font-size:15px;line-height:1.6}.app-shell .report-section-number{font-family:var(--font-serif),sans-serif;background:#153466;border-radius:9px;font-weight:700}.app-shell .record-count{color:#47566e;background:#eef2f7;border-radius:7px;align-items:center;min-height:30px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.app-shell .content-panel{border-top:4px solid #153466}.app-shell .action-panel{border-top:4px solid #ba8425}.app-shell .section-copy{color:var(--slate);margin:-5px 0 3px;font-size:14px;line-height:1.55}.app-shell :is(.academic-editor,.fee-form,.announcement-form,.progress-picker,.recovery-card,.password-card){border-top:4px solid #ba8425}.app-shell .button{min-height:47px;font-family:var(--font-serif),var(--font-sans),sans-serif;border-radius:9px;padding:0 19px;font-size:14px;font-weight:700;line-height:1.2}.app-shell .button-primary{color:#fff;background:#12366d;box-shadow:0 9px 22px #12366d29}.app-shell .button-primary:hover:not(:disabled){color:#fff;background:#194786}.app-shell .button-dark{color:#fff;background:#10203d}.app-shell .button-outline{color:#183252;box-shadow:none;border:1px solid #bdc8d7}.app-shell .button-outline:hover:not(:disabled){background:#f7f9fc;border-color:#8da0b8}.app-shell .button-ghost{color:#4e5e76;background:0 0}.app-shell .button-small{min-height:44px;padding-inline:13px;font-size:13px}.app-shell .button-danger-soft{color:#922f2a;background:#fff0ee;border:1px solid #e8b5b0}.app-shell .button-danger-soft:hover:not(:disabled){background:#fde3e0;border-color:#cf756e}.app-shell .button-danger{color:#fff;background:#ad3d36}.app-shell .text-button{color:#153d76;text-underline-offset:3px;min-height:44px;font-size:13px;-webkit-text-decoration:underline #153d7647;text-decoration:underline #153d7647}.app-shell .icon-button,.app-shell .modal-close{min-width:44px;min-height:44px}.app-shell :is(.class-view,.class-edit,.class-remove,.staff-reset){min-height:44px;font-size:13px}.app-shell .button:disabled,.app-shell button:disabled{opacity:.5;filter:saturate(.45);cursor:not-allowed}.app-shell .form-stack{gap:18px}.app-shell .form-grid{gap:17px}.app-shell .field{gap:8px}.app-shell .class-checks legend,.app-shell .field>span{color:#213652;font-family:var(--font-serif),var(--font-sans),sans-serif;letter-spacing:0;font-size:14px;font-weight:700;line-height:1.4}.app-shell .field input,.app-shell .field select,.app-shell .field textarea,.app-shell .manual-search input{min-height:51px;color:var(--ink);background:#fff;border:1px solid #c7d0dc;border-radius:9px;padding:12px 14px;font-size:16px;font-weight:500}.app-shell .field textarea{min-height:116px;line-height:1.55}.app-shell .field input::placeholder,.app-shell .field textarea::placeholder,.app-shell .manual-search input::placeholder{color:#5f6d82;opacity:1}.app-shell .field small,.app-shell .photo-help{color:var(--slate);font-size:13px}.app-shell .check-row,.app-shell .class-check-option,.app-shell .toggle-field{background:#fff;border-color:#cfd7e2;border-radius:10px}.app-shell :is(.check-row,.class-check-option,.toggle-field) input{flex:none;width:19px;height:19px}.app-shell .status{letter-spacing:.025em;text-transform:capitalize;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;min-height:29px;padding:6px 10px;font-size:13px;font-weight:800;line-height:1.2;display:inline-flex}.app-shell :is(.status-paid,.status-present,.status-active,.status-student,.status-teacher){color:#075d4b;border-color:#b9dfd3}.app-shell :is(.status-unpaid,.status-absent,.status-suspended,.status-cancelled){color:#96342f;border-color:#efc4bf}.app-shell :is(.status-waived,.status-admin){color:#744b08;border-color:#e4cc9d}.app-shell .form-message{border:1px solid #0000;border-left-width:4px;border-radius:9px;align-items:center;min-height:46px;padding:12px 14px;font-size:14px;font-weight:600;line-height:1.5}.app-shell .form-message.error{border-color:#edc0bb;border-left-color:var(--red);color:#8d302b;background:#fff2f0}.app-shell .form-message.success{border-color:#b8ded2;border-left-color:var(--green);color:#075c4b;background:#edf9f5}.app-shell .clear-state,.app-shell .empty-inline,.app-shell .empty-state,.app-shell .fee-empty-state{color:var(--slate);background:#f8fafc;border-color:#cdd6e2;font-size:14px;line-height:1.6}.app-shell .empty-inline{text-align:center;place-items:center;min-height:78px;padding:20px;display:grid}.app-shell .insight-loading{min-height:165px;animation:visibility-loading 1.5s ease-in-out infinite}.app-shell .insight-loading,.app-shell .loading-state{color:var(--slate);background:linear-gradient(100deg,#fff 20%,#f1f4f8 40%,#fff 60%) 0 0/220% 100%;font-size:15px;font-weight:700}.app-shell .loading-state{min-height:96px;border:1px dashed #cbd5e1;border-radius:10px;place-items:center;padding:20px;animation:visibility-loading 1.5s ease-in-out infinite;display:grid}@keyframes visibility-loading{50%{background-position:100% 0}}.app-shell .metric-grid{gap:17px}.app-shell .metric{border-color:var(--line);border-radius:13px;min-height:148px;padding:23px;box-shadow:0 6px 19px #12213c0b}.app-shell .metric p,.app-shell .metric>span{color:var(--slate);letter-spacing:.045em;font-size:13px;font-weight:700;line-height:1.45}.app-shell .metric strong{letter-spacing:-.035em;margin:10px 0 5px;font-size:36px;font-weight:700}.app-shell .metric.featured{background:#10203d}.app-shell .metric.featured strong{color:#fff}.app-shell :is(.class-list-panel,.action-card,.dashboard-notices,.announcement-form,.announcement-history,.student-grid>.panel,.fee-form,.fee-help,.academic-layout>.panel,.learning-column,.academic-editor,.exams-panel,.two-panel-grid>.panel,.payment-history,.data-panel,.backup-grid>.panel,.preferences-panel){scroll-margin-top:90px}.app-shell :is(.class-row,.event-card,.material-card,.exam-card,.announcement-item) strong{color:#172944;font-size:15px}.app-shell :is(.class-row,.event-card,.material-card,.exam-card,.announcement-item) p{color:var(--slate);font-size:14px;line-height:1.55}.app-shell .event-card,.app-shell .exam-card,.app-shell .material-card{border-top-color:#e1e6ee;padding-block:18px}.app-shell .event-card h3,.app-shell .exam-card h3,.app-shell .material-card h3{font-size:18px;line-height:1.35}.app-shell .announcement-item{border-color:#d8dfe9;padding:17px}.app-shell .announcement-meta span,.app-shell .announcement-meta time,.app-shell .event-card .tag,.app-shell .exam-card>div:first-child>span,.app-shell .material-card>div:last-child>span{font-size:12px}.app-shell .today-command{border-top:4px solid #153466;padding:27px}.app-shell .today-command-grid>div{background:#f8fafc;border-color:#d8e0ea;padding:18px}.app-shell .today-command-grid button{min-height:70px}.app-shell .today-command-grid button strong{font-size:15px}.app-shell .today-command-grid button em,.app-shell .today-command-grid button small{color:var(--slate);font-size:13px}.app-shell .student-focus-grid button{border-color:#ccd5e1;border-radius:13px;min-height:108px}.app-shell .student-focus-grid small{color:var(--slate);font-size:13px}.app-shell .student-focus-grid strong{font-size:16px}.app-shell .data-panel{overflow:hidden}.app-shell .table-toolbar{border-bottom:1px solid var(--line);background:#f8fafc;gap:14px;min-height:72px;padding:13px 17px}.app-shell .directory-search{background:#fff;border:1px solid #c6d0dd;border-radius:9px;min-height:46px}.app-shell .directory-search input,.app-shell .table-toolbar>span{color:var(--slate);font-size:14px}.app-shell .table-wrap{border-color:var(--line);scrollbar-gutter:stable}.app-shell table{border-collapse:separate;border-spacing:0;min-width:680px}.app-shell thead{z-index:2;position:sticky;top:0}.app-shell th{color:#526078;font-family:var(--font-serif),var(--font-sans),sans-serif;text-transform:uppercase;letter-spacing:.055em;background:#eef2f7;border-bottom:1px solid #d4dce7;padding:13px 17px;font-size:13px;font-weight:700;line-height:1.35}.app-shell td{color:#263750;vertical-align:middle;border-top:1px solid #e2e7ee;padding:16px 17px;font-size:15px;font-weight:500;line-height:1.55}.app-shell tbody tr:first-child td{border-top:0}.app-shell .table-person strong,.app-shell td strong{color:#152944;font-size:15px;font-weight:700}.app-shell .table-person small,.app-shell .table-subline{color:var(--slate);margin-top:3px;font-size:13px;line-height:1.5}.app-shell .table-actions{gap:7px}.app-shell .table-good,.app-shell .table-warning{min-width:34px;font-size:13px}.app-shell .attendance-bars,.app-shell .growth-chart-scroll{scrollbar-width:thin}.app-shell .growth-chart{min-width:760px}.app-shell .growth-chart.range-2y .growth-columns{grid-auto-columns:minmax(40px,1fr);gap:6px}.app-shell :is(.growth-chart.range-5y,.growth-chart.range-all) .growth-columns{grid-auto-columns:minmax(25px,1fr);gap:4px}.app-shell :is(.growth-chart.range-5y,.growth-chart.range-all) .growth-bar-track{width:min(22px,78%)}.app-shell .growth-column.compact-label :is(.growth-value,strong,span){color:#0000;-webkit-user-select:none;user-select:none}.app-shell .performance-chart{min-width:430px;overflow-x:auto}.app-shell .growth-axis,.app-shell .growth-column span,.app-shell .growth-column strong,.app-shell .growth-value,.app-shell .performance-column small,.app-shell .performance-column>strong{font-size:12px}.app-shell .chart-legend,.app-shell .chart-legend small,.app-shell .inline-legend{color:var(--slate);font-size:13px}.app-shell .attendance-bars{grid-template-columns:repeat(12,minmax(52px,1fr));gap:9px}.app-shell .attendance-bars strong{font-size:12px}.app-shell .attendance-bars small{color:var(--slate);font-size:12px;transform:none}.app-shell .academic-comparison,.app-shell .attendance-trend-card,.app-shell .fee-ageing-card,.app-shell .student-history-timeline,.app-shell .teacher-notes{background:#f8fafc;border-color:#d5dde8}.app-shell .ageing-list article{border-color:#d5dde8;min-height:70px}.app-shell .ageing-list strong{font-size:15px}.app-shell .ageing-list small{color:var(--slate)}.app-shell :is(.metric strong,.growth-value,.growth-column,.attendance-bars,.ageing-list b,.progress-stat-row strong,td){font-variant-numeric:tabular-nums}.app-shell .preference-saved.warning{color:#7a4d06}.app-shell .utility-popover{border-color:#c6d0dd;border-radius:13px}.app-shell .popover-heading{background:#fffffff7}.app-shell .popover-heading strong{font-size:17px}.app-shell .notification-item,.app-shell .search-result{border-bottom-color:#e0e6ed;min-height:76px}.app-shell .notification-item strong,.app-shell .search-result strong{font-size:15px}.app-shell .result-category{min-width:70px;font-size:13px}.app-shell .modal{background:#fff;border-color:#cbd4e0;border-radius:15px;padding:34px}.app-shell .modal h2{padding-right:45px;font-size:31px;line-height:1.15}.app-shell .modal .form-intro{color:var(--slate);font-size:14px}.app-shell.pref-large-text{font-size:18px}.app-shell.pref-large-text :is(p,small,td,th,.field>span,.button,.sidebar nav button){font-size:16px!important}.app-shell.pref-high-contrast{--ink:#07152e;--ink-soft:#142440;--slate:#26364f;--line:#77869b;--gold:#694405;--red:#912b25;--green:#005844}.app-shell.pref-high-contrast :is(.panel,input,select,textarea,.table-wrap,.directory-search,.button-outline){border-width:2px}.app-shell .report-control-strip:not(.single){grid-template-columns:minmax(240px,1.35fr) minmax(200px,.65fr) auto;align-items:end}.app-shell .report-control-strip .save-report-view{min-width:162px}@media (max-width:1120px){.app-shell .sidebar{width:252px;padding-inline:14px}.app-shell .app-main{margin-left:252px}.app-shell .content-wrap,.app-shell .utility-bar{padding-inline:24px}.app-shell .metric-grid{grid-template-columns:repeat(2,1fr)}.app-shell .today-command-grid{grid-template-columns:1fr 1fr}.app-shell .attention-list{grid-column:1/-1}}@media (max-width:820px){.app-shell .sidebar{width:min(88vw,310px);padding:22px 17px 18px}.app-shell .app-main{margin-left:0}.app-shell .mobile-topbar{border-bottom:1px solid #ffffff1c;height:66px;min-height:66px}.app-shell .mobile-topbar>button{width:44px;height:44px}.app-shell .utility-bar{min-height:62px;padding:7px 14px;top:66px}.app-shell .content-wrap{padding:27px 18px 112px}.app-shell .page-heading{align-items:flex-start}.app-shell .page-heading h1{font-size:34px}.app-shell .page-heading p{font-size:15px}.app-shell .section-heading h2{font-size:22px}.app-shell .report-section{padding:22px 18px}.app-shell .plain-section-heading h2,.app-shell .report-section-heading h2{font-size:24px}.app-shell .metric-grid{grid-template-columns:repeat(2,1fr)}.app-shell .metric{min-height:134px;padding:18px}.app-shell .operational-grid,.app-shell .preference-options,.app-shell .today-command-grid{grid-template-columns:1fr}.app-shell .report-control-strip:not(.single){grid-template-columns:1fr;align-items:stretch}.app-shell .report-control-strip .save-report-view{width:100%}.app-shell .mobile-bottom-nav{border-radius:16px;min-height:70px}.app-shell .mobile-bottom-nav button{min-height:54px}.app-shell .mobile-bottom-nav span{font-size:12px}.app-shell .password-prompt{bottom:calc(84px + env(safe-area-inset-bottom))}}@media (max-width:620px){.schedule-picker{grid-template-columns:1fr}.grade-boundary-grid{grid-template-columns:1fr 1fr}.app-shell .content-wrap{padding-inline:14px}.app-shell .page-heading{gap:15px;margin-bottom:22px;padding-bottom:18px;display:grid}.app-shell .page-heading h1{font-size:31px}.app-shell .page-actions,.app-shell .page-heading .button{width:100%}.app-shell .metric-grid,.app-shell .page-actions{grid-template-columns:1fr}.app-shell .metric:first-child{grid-column:auto}.app-shell .metric{min-height:126px}.app-shell .section-heading{flex-direction:column;align-items:flex-start}.app-shell .section-heading>:last-child:not(:first-child){align-self:stretch}.app-shell .section-heading .button{width:100%}.app-shell :is(.class-list-panel,.action-card,.dashboard-notices,.announcement-form,.announcement-history,.student-grid>.panel,.fee-form,.fee-help,.academic-layout>.panel,.learning-column,.academic-editor,.exams-panel,.two-panel-grid>.panel,.payment-history,.backup-grid>.panel,.preferences-panel,.today-command,.operational-reports){padding:19px 16px}.app-shell .class-checks,.app-shell .form-grid.two{grid-template-columns:1fr}.app-shell .table-toolbar{flex-direction:column;align-items:stretch}.app-shell .directory-search{width:100%}.app-shell .table-wrap table{min-width:0}.app-shell .table-wrap thead{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell .table-wrap tbody{gap:10px;padding:10px;display:grid}.app-shell .table-wrap tr{background:#fff;border:1px solid #d4dce7;border-radius:11px;display:grid;overflow:hidden}.app-shell .table-wrap td{border-top:1px solid #e3e8ef;grid-template-columns:minmax(102px,.42fr) minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:12px 13px;font-size:14px;display:grid}.app-shell .table-wrap td:first-child{border-top:0}.app-shell .table-wrap td:before{content:attr(data-label);color:#66748a;font-family:var(--font-serif),var(--font-sans),sans-serif;text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700;line-height:1.35}.app-shell .table-wrap td:not([data-label]){display:table-cell}.app-shell .table-wrap tr:has(td:not([data-label])){border:0;border-radius:0;display:table-row}.app-shell .table-wrap tbody:has(td:not([data-label])){padding:0;display:table-row-group}.app-shell .table-wrap table:has(td:not([data-label])){min-width:680px}.app-shell .table-wrap:has(td:not([data-label])) thead{clip:auto;clip-path:none;white-space:normal;width:auto;height:auto;position:static;overflow:visible}.app-shell .table-actions{flex-direction:column;align-items:stretch}.app-shell .table-actions .button{width:100%}.app-shell .report-heading-with-control,.app-shell .report-section-heading{grid-template-columns:38px 1fr}.app-shell .report-section-number{width:36px;height:36px}.app-shell .growth-chart{min-width:700px}.app-shell .attendance-bars{grid-template-columns:repeat(12,minmax(50px,1fr))}.app-shell .event-card{grid-template-columns:50px minmax(0,1fr)}.app-shell .event-card-actions{flex-wrap:wrap;grid-column:2;justify-content:flex-start;justify-items:start;min-width:0;display:flex}.app-shell .exam-card{grid-template-columns:1fr;align-items:start}.app-shell .exam-actions,.app-shell .exam-score{justify-items:start;min-width:0}.app-shell .modal{padding:28px 20px 22px}.app-shell .modal h2{font-size:27px}}.login-page .login-card-heading .eyebrow{font-size:11px}.login-page .login-card-heading .form-intro{color:#536176;font-size:14px}.login-page .login-field>span{color:#1a2d49;font-size:13px}.login-page .login-input input,.login-page .login-input input:focus{font-size:15px}.login-page .login-input input::placeholder{color:#5f6d82;opacity:1}.login-page .login-options .text-button,.login-page .login-remember{font-size:13px}.login-page .login-card .privacy-note{color:#5b6675;font-size:12px}.login-page .login-input button,.login-page .login-panel .login-support{min-width:44px;min-height:44px}.login-page-reference{--login-navy:#062b61;--login-blue:#0b48a0;--login-orange:#ff9d18;background:radial-gradient(circle at 3% 8%,#1956b014 0 4px,#0000 5px) 0 0/24px 24px,radial-gradient(circle at 101% 0,#0000 0 74px,#1850a412 75px 112px,#0000 113px),linear-gradient(145deg,#fff,#f6f9fd 58%,#eef4fb);flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,1.4vh,14px);width:100%;height:100svh;min-height:100svh;padding:clamp(14px,2.4vh,24px) clamp(22px,4vw,52px) clamp(10px,1.8vh,18px);display:flex;overflow:hidden auto}.login-page-reference .login-content{background:#fff;border:1px solid #cbd6e4;border-radius:22px;grid-template-columns:minmax(0,58fr) minmax(390px,42fr);width:min(82vw,1320px);height:min(710px,100svh - 88px);min-height:0;margin:0;padding:0;display:grid;overflow:hidden;box-shadow:0 24px 70px #10346429,0 4px 16px #1034640f}.login-page-reference .login-story{background:var(--login-navy);border-radius:21px 0 0 21px;min-width:0;position:relative;overflow:hidden}.login-page-reference .login-story:after{display:none}.login-page-reference .login-story-inner{z-index:1;isolation:isolate;flex-direction:column;justify-content:flex-start;align-items:center;height:100%;min-height:0;padding:clamp(28px,3vw,46px);display:flex;position:relative}.login-page-reference .login-story-inner:before{display:none}.login-page-reference .login-hero-image{z-index:-2;width:100%;height:100%;box-shadow:none;border-radius:0;margin:0;position:absolute;inset:0}.login-page-reference .login-hero-image:after{display:none}.login-page-reference .login-hero-image img{object-fit:cover;object-position:center center;filter:saturate(.98)contrast(1.02);width:100%;height:100%}.login-page-reference .story-copy{color:#fff;width:100%;max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-align:center;text-shadow:0 5px 22px #0013307a;background:0 0;border:0;border-radius:0;margin:0;padding:0}.login-page-reference .story-kicker{color:#dceaff;min-height:30px;font-family:var(--font-sans),sans-serif;letter-spacing:.09em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05255294;border:1px solid #ffffff38;border-radius:999px;margin:0 0 15px;padding:6px 11px;font-size:12px;font-weight:800}.login-page-reference .story-copy h1{color:#fff;letter-spacing:0;text-shadow:0 7px 26px #00122c9e;margin:0;font-family:Permanent Marker,Comic Sans MS,cursive;font-size:clamp(50px,5.4vw,80px);font-weight:400;line-height:.96}.login-page-reference .story-copy h1:after{display:none}.login-page-reference .story-title-accent{color:var(--login-orange)}.login-page-reference .story-copy .story-tagline{color:#f4f7fc;max-width:none;font-family:var(--font-sans),sans-serif;margin:16px 0 0;font-size:clamp(17px,1.55vw,23px);font-weight:700;line-height:1.3}.login-page-reference .story-tagline strong{color:var(--login-orange);font-weight:800}.login-page-reference .hero-trust-card{color:#fff;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#032048c2;border:1px solid #ffffff38;border-radius:12px;min-width:0;padding:11px 14px;position:absolute;inset:auto auto 24px 26px;box-shadow:0 14px 34px #00143238}.login-page-reference .hero-trust-card strong{font-size:13px}.login-page-reference .hero-trust-card small{color:#d8e5f7;font-size:12px}.login-page-reference .login-panel{overscroll-behavior:contain;background:#fff;border-radius:0 21px 21px 0;flex-direction:column;justify-content:center;align-items:stretch;min-width:0;min-height:0;padding:clamp(24px,3vh,42px) clamp(28px,3.6vw,50px);display:flex;position:relative;overflow:hidden auto}.login-page-reference .login-panel:after,.login-page-reference .login-panel:before{display:none}.login-page-reference .login-panel-header{justify-content:center;width:100%;margin:0 0 clamp(14px,2vh,24px);display:flex}.login-page-reference .login-brand-lockup{color:var(--login-navy);text-align:center;justify-items:center;gap:9px;display:grid}.login-page-reference .login-brand-mark{border-top-width:3px;background:#fff;border:3px solid var(--login-navy);border-top:1px solid var(--login-navy);border-radius:8px 8px 27px 27px;place-items:center;width:68px;height:58px;display:grid;position:relative;box-shadow:inset 0 -8px #edf3fb}.login-page-reference .login-brand-mark:before{content:"★";color:var(--login-orange);font-size:19px;position:absolute;top:-22px}.login-page-reference .login-brand-mark:after{content:"";border-right:3px solid var(--login-navy);border-bottom:3px solid var(--login-navy);background:#edf3fb;width:26px;height:14px;position:absolute;bottom:-8px;transform:rotate(45deg)}.login-page-reference .login-brand-mark span{z-index:1;font-family:var(--font-sans),sans-serif;letter-spacing:.08em;font-size:17px;font-weight:800;position:relative}.login-page-reference .login-brand-lockup>div:last-child{gap:3px;display:grid}.login-page-reference .login-brand-lockup strong{font-size:17px;font-weight:800}.login-page-reference .login-brand-lockup small{color:#66758b;font-size:11px;font-weight:700}.login-page-reference img.login-brand-mark{object-fit:contain;width:82px;height:82px;box-shadow:none;background:0 0;border:0;border-radius:0;display:block}.login-page-reference .login-form-wrap{width:min(100%,430px);max-height:none;margin:0 auto}.login-page-reference .login-card{max-height:none;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;overflow:visible}.login-page-reference .login-card-heading{text-align:center;margin:0 0 25px}.login-page-reference .login-card-heading .eyebrow{color:#0d4b99;letter-spacing:.09em;background:#f0f6fd;border:1px solid #d9e5f4;border-radius:999px;justify-content:center;min-height:27px;margin:0 auto 10px;padding:5px 9px;font-size:11px}.login-page-reference .login-form-wrap h2{color:var(--login-navy);font-family:var(--font-sans),sans-serif;letter-spacing:-.035em;text-align:center;margin:0 0 7px;font-size:clamp(29px,2.25vw,37px);font-weight:800;line-height:1.12}.login-page-reference .login-card-heading .form-intro{color:#66758b;text-align:center;margin:0;font-size:14px;line-height:1.55}.login-page-reference .login-card .form-stack{gap:15px}.login-page-reference .login-field{gap:7px}.login-page-reference .login-field>span{color:#172b49;font-size:13px;font-weight:800}.login-page-reference .login-input{color:#718198;background:#fff;border:1px solid #c9d5e4;border-radius:10px;min-height:52px}.login-page-reference .login-input:focus-within{border-color:#1b5ab1;box-shadow:0 0 0 4px #1b5ab11f}.login-page-reference .login-input input,.login-page-reference .login-input input:focus{color:#132943;min-height:50px;font-size:15px;font-weight:600}.login-page-reference .login-options{margin:-1px 0 1px}.login-page-reference .login-options .text-button,.login-page-reference .login-remember{min-height:44px;font-size:13px;font-weight:700}.login-page-reference .login-options .text-button{color:#0752bd}.login-page-reference .login-submit{color:#fff;background:linear-gradient(135deg,#164fa7,#07367e);border-radius:10px;min-height:52px;margin:0;font-size:15px;box-shadow:0 12px 27px #0b408f38}.login-page-reference .login-submit:hover:not(:disabled){background:linear-gradient(135deg,#1d61c5,#0a418f)}.login-page-reference .login-card .privacy-note{color:#5b687a;text-align:center;border-top:1px solid #e1e7ef;justify-content:center;margin:17px 0 0;padding:14px 0 0;font-size:12px;line-height:1.5}.login-page-reference .setup-link{min-height:44px;margin-top:7px}.login-page-reference .login-content--setup .login-panel{padding-block:clamp(12px,1.5vh,20px)}.login-page-reference .login-content--setup .login-panel-header{margin-bottom:clamp(8px,1vh,12px)}.login-page-reference .login-content--setup .login-card-heading{margin-bottom:12px}.login-page-reference .login-legal{color:#33445e;width:min(82vw,1320px);font-size:13px;line-height:1.4}.login-page-reference .login-legal-inner{flex-wrap:wrap;justify-content:center;align-items:center;gap:0;min-height:44px;display:flex}.login-page-reference .login-legal-inner>*{align-items:center;min-height:26px;padding:0 28px;display:inline-flex}.login-page-reference .login-legal-inner>*+*{border-left:1px solid #aab5c4}.login-page-reference .login-legal-links{gap:36px;display:inline-flex}.login-page-reference .login-legal a{color:#233955;text-underline-offset:4px;align-items:center;min-height:44px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.login-page-reference .login-legal a:hover{color:#0752bd;text-decoration-color:currentColor}.login-page-reference .login-developer strong{color:#e65e25;margin-left:4px;font-weight:800}@media (max-width:1050px){.login-page-reference .login-content,.login-page-reference .login-legal{width:min(94vw,970px)}.login-page-reference .login-content{grid-template-columns:minmax(0,55fr) minmax(370px,45fr)}.login-page-reference .story-copy h1{font-size:clamp(44px,6vw,64px)}.login-page-reference .login-panel{padding-inline:clamp(25px,4vw,42px)}}@media (max-width:820px){.login-page-reference{justify-content:flex-start;height:auto;min-height:100svh;padding:12px;overflow-y:auto}.login-page-reference .login-content{border-radius:18px;grid-template-rows:clamp(210px,34svh,280px) auto;grid-template-columns:1fr;width:100%;height:auto;min-height:0}.login-page-reference .login-story{border-radius:17px 17px 0 0}.login-page-reference .login-story-inner{padding:22px 20px}.login-page-reference .login-hero-image img{object-position:center 38%}.login-page-reference .story-kicker{margin-bottom:9px;font-size:10px}.login-page-reference .story-copy h1{font-size:clamp(38px,10vw,55px)}.login-page-reference .story-copy .story-tagline{margin-top:9px;font-size:15px}.login-page-reference .hero-trust-card{display:none}.login-page-reference .login-panel{border-radius:0 0 17px 17px;height:auto;padding:31px clamp(20px,6vw,40px) 27px}.login-page-reference .login-panel-header{min-height:0;margin-bottom:21px}.login-page-reference .login-brand-mark{width:58px;height:58px}.login-page-reference .login-form-wrap{width:min(100%,460px)}.login-page-reference .login-legal{width:100%}.login-page-reference .login-legal-inner{gap:5px 0}.login-page-reference .login-legal-inner>*{padding-inline:15px}}@media (max-width:560px){.login-page-reference{gap:10px;padding:7px}.login-page-reference .login-content{grid-template-rows:205px auto}.login-page-reference .login-story-inner{padding:18px 13px}.login-page-reference .story-kicker{min-height:26px;padding:4px 8px;font-size:9px}.login-page-reference .story-copy h1{font-size:clamp(34px,11vw,46px)}.login-page-reference .story-copy .story-tagline{font-size:13px}.login-page-reference .login-panel{padding:28px 17px 23px}.login-page-reference .login-brand-lockup small{font-size:10px}.login-page-reference .login-card-heading{margin-bottom:20px}.login-page-reference .login-card-heading .eyebrow{font-size:10px}.login-page-reference .login-form-wrap h2{font-size:27px}.login-page-reference .login-card-heading .form-intro{font-size:13px}.login-page-reference .login-options{align-items:center}.login-page-reference .login-legal-inner{text-align:center;justify-items:center;display:grid}.login-page-reference .login-legal-inner>*{min-height:36px;padding:0 8px;border-left:0!important}.login-page-reference .login-legal-links{gap:18px}.login-page-reference .login-legal a{min-height:40px}}@media (max-height:780px) and (min-width:821px){.login-page-reference{justify-content:center;gap:8px;height:100svh;min-height:100svh;padding-block:10px 8px;overflow-y:auto}.login-page-reference .login-content{height:calc(100svh - 70px);min-height:0}.login-page-reference .login-panel{justify-content:flex-start;padding:17px clamp(24px,3.2vw,42px)}.login-page-reference .login-panel-header{margin-bottom:10px}.login-page-reference .login-brand-lockup{text-align:left;grid-template-columns:auto auto;justify-content:center;place-items:center start;gap:10px}.login-page-reference .login-brand-lockup>div:last-child{justify-items:start}.login-page-reference .login-brand-lockup img.login-brand-mark{border-radius:15px;width:62px;height:62px;padding:5px}.login-page-reference .login-card-heading{margin-bottom:13px}.login-page-reference .login-card-heading .eyebrow{min-height:25px;margin-bottom:6px}.login-page-reference .login-form-wrap h2{margin-bottom:4px;font-size:30px}.login-page-reference .login-card .form-stack{gap:10px}.login-page-reference .login-input,.login-page-reference .login-input input,.login-page-reference .login-input input:focus{min-height:47px}.login-page-reference .login-submit{min-height:48px}.login-page-reference .login-card .privacy-note{margin-top:9px;padding-top:9px}.login-page-reference .setup-link{margin-top:2px}.login-page-reference .login-legal-inner{min-height:36px}}.login-page :where(a,button,input,[tabindex]):focus-visible{outline-offset:3px;outline:3px solid #163f78}@media (max-height:640px) and (min-width:821px){.login-page-reference{justify-content:flex-start;height:auto;min-height:100svh;overflow-y:auto}.login-page-reference .login-content{height:auto;min-height:570px}.login-page-reference .login-content--setup{min-height:620px}.login-page-reference .login-panel{overflow:visible}}@media (max-height:560px),(max-width:760px) and (max-height:520px){.login-page{place-items:start center;height:auto;min-height:100svh;overflow-y:auto}.login-content{height:auto;min-height:calc(100svh - 12px);overflow:visible}.login-panel{min-height:500px;overflow:visible}.login-card .privacy-note,.login-card-heading .form-intro{display:flex}.login-page-reference{height:auto;min-height:100svh;display:flex;overflow-y:auto}.login-page-reference .login-content{height:auto;min-height:0;overflow:hidden}.login-page-reference .login-panel{min-height:0;overflow:visible}}.app-shell{--brand-navy:#062b61;--brand-navy-deep:#041d43;--brand-blue:#0b48a0;--brand-blue-bright:#1769d2;--brand-orange:#ff9d18;--brand-orange-deep:#a64e00;--brand-sky:#eaf3ff;--ink:#102748;--ink-soft:#304766;--slate:#586b85;--ivory:#f3f7fc;--paper:#fff;--line:#cfdae8;--gold:#b15b06;--gold-soft:#fff0d7;--green:#08715b;--green-soft:#e2f5ef;--red:#b33f38;--red-soft:#fce9e6;background:var(--ivory);color:var(--ink);font-family:var(--font-sans),"Segoe UI",sans-serif}.app-shell .app-main{background:radial-gradient(circle at 7% 7%,#1769d212 0 2px,#0000 2.5px) 0 0/24px 24px,linear-gradient(145deg,#f8fbff,#f2f7fd 58%,#edf4fc)}.app-shell *{scrollbar-color:#8ba8cc #eaf1f9}.app-shell :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline-color:var(--brand-orange)!important;box-shadow:0 0 0 5px #ff9d1833!important}.app-shell .sidebar{background:radial-gradient(circle at 18% 5%,#1769d24d,transparent 15rem),linear-gradient(180deg,var(--brand-navy) 0,var(--brand-navy-deep) 100%);border-right-color:#ffffff1a;box-shadow:14px 0 38px #05234e24}.app-shell .sidebar:after{background:#ffffff1a}.app-shell .brand-mark{box-shadow:none;filter:drop-shadow(0 4px 10px #00123038);background:0 0;border:0}.app-shell .brand strong{color:var(--brand-navy);letter-spacing:0;font-family:Permanent Marker,Comic Sans MS,cursive;font-weight:400}.app-shell .mobile-topbar .brand strong,.app-shell .sidebar .brand strong{color:#fff}.app-shell .sidebar .brand span{color:#b9cbe3}.app-shell .nav-group+.nav-group{border-top-color:#ffffff1c}.app-shell .nav-group-label{color:#9db8d9;font-family:var(--font-sans),sans-serif;font-weight:800}.app-shell .sidebar nav button{color:#c6d6ea}.app-shell .sidebar nav button svg{color:#91b3dc}.app-shell .sidebar nav button:hover{color:#fff;background:#1769d238}.app-shell .sidebar nav button.active,.app-shell .sidebar nav button[aria-current=page]{color:#fff;box-shadow:inset 4px 0 var(--brand-orange);background:linear-gradient(90deg,#1769d257,#1769d221)}.app-shell .sidebar nav button.active svg,.app-shell .sidebar nav button[aria-current=page] svg{color:#ffc05a}.app-shell .sidebar nav i{color:#092a5b;background:#ffd17d}.app-shell .sidebar-foot{border-top-color:#ffffff1a}.app-shell .utility-bar{background:#f8fbfff0;border-bottom-color:#d7e2ef;box-shadow:0 6px 22px #052b610f}.app-shell .notification-button,.app-shell .utility-search{background:#fffffff5;border-color:#c9d7e7}.app-shell .notification-button>svg,.app-shell .utility-search>svg{color:var(--brand-blue)}.app-shell .utility-search:focus-within{border-color:var(--brand-blue-bright);box-shadow:0 0 0 4px #1769d21f}.app-shell .utility-popover{background:#fff;border-color:#c8d7e8;box-shadow:0 26px 70px #04265433}.app-shell .popover-heading{background:#f7faff;border-bottom-color:#dce6f2}.app-shell .notification-item:hover,.app-shell .search-result:hover{background:#f1f7ff}.app-shell .page-heading{border-bottom-color:#cedbea}.app-shell .modal h2,.app-shell .page-heading h1{color:var(--brand-navy);letter-spacing:0;font-family:Permanent Marker,Comic Sans MS,cursive;font-weight:400}.app-shell .page-heading h1{font-size:clamp(40px,4.2vw,58px);line-height:1.03}.app-shell .modal h2{font-size:clamp(29px,3vw,37px);line-height:1.1}.app-shell :is(.section-heading h2,.report-section-heading h2,.plain-section-heading h2,.subsection-heading h3,.today-command-grid h3){color:var(--brand-navy);font-family:var(--font-sans),sans-serif;letter-spacing:-.025em;font-weight:800}.app-shell .eyebrow{color:#8f4300;font-family:var(--font-sans),sans-serif;background:#fff1d9;border-color:#ffd08b;font-weight:800}.app-shell .eyebrow.light{color:#ffd078;background:#ffffff1a;border-color:#fff3}.app-shell .subsection-heading{border-bottom-color:#dbe4ef;border-left-color:var(--brand-orange)}.app-shell .report-section-number{color:#fff;background:linear-gradient(145deg,var(--brand-blue-bright),var(--brand-navy))}.app-shell .record-count{color:#24476f;background:var(--brand-sky)}.app-shell .panel,.app-shell :is(.class-card,.staff-card,.profile-insight-card,.academic-comparison,.student-history-timeline,.teacher-notes){border-color:var(--line);background:#fffffffa;box-shadow:0 10px 30px #062b6112}.app-shell .metric.featured,.app-shell .panel-dark,.app-shell .student-summary{color:#fff;background:radial-gradient(circle at 92% 5%,#1769d261,transparent 12rem),linear-gradient(145deg,var(--brand-navy),var(--brand-navy-deep));border-color:#ffffff1a;box-shadow:0 18px 44px #052b6130}.app-shell .panel-dark :is(h1,h2,h3,strong),.app-shell .student-summary :is(h1,h2,h3,strong){color:#fff}.app-shell .panel-dark p,.app-shell .student-summary p{color:#d7e5f5}.app-shell .content-panel,.app-shell .today-command{border-top-color:var(--brand-blue)}.app-shell .action-panel,.app-shell :is(.academic-editor,.fee-form,.announcement-form,.progress-picker,.recovery-card,.password-card){border-top-color:var(--brand-orange)}.app-shell .class-card{overflow:hidden}.app-shell .class-card:before{content:"";background:linear-gradient(90deg,var(--brand-orange),var(--brand-blue-bright));height:4px;position:absolute;inset:0 0 auto}.app-shell .announcement-form-icon,.app-shell .class-icon{color:var(--brand-blue);background:var(--brand-sky)}.app-shell .notice-visibility{border:1px solid var(--line);background:#f7faff;border-radius:12px;gap:12px;margin:0;padding:16px;display:grid}.app-shell .notice-visibility legend{color:var(--ink);padding:0 5px;font-size:14px;font-weight:800}.app-shell .visibility-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.app-shell .visibility-options label{min-height:44px;color:var(--ink-soft);cursor:pointer;background:#fff;border:1px solid #c8d5e8;border-radius:9px;justify-content:center;align-items:center;padding:8px 10px;font-size:13px;font-weight:800;display:flex}.app-shell .visibility-options label.selected{border-color:var(--brand-blue);color:#fff;background:var(--brand-blue);box-shadow:0 5px 14px #0a367029}.app-shell .visibility-options input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.app-shell .visibility-options label:has(input:focus-visible){outline:3px solid var(--brand-orange);outline-offset:2px}.app-shell .custom-expiry small,.app-shell .notice-visibility>p{color:var(--slate);margin:0;font-size:13px;line-height:1.5}.app-shell .custom-expiry{margin-top:2px}.app-shell .notice-expiry{color:#225a43;background:#e6f4ec;border-radius:999px;width:max-content;max-width:100%;margin-top:10px;padding:5px 9px;font-size:12px;font-weight:800;line-height:1.35;display:block}.app-shell .notice-expiry.is-expired{color:#7b3131;background:#fae8e6}.app-shell .announcement-expired{opacity:.78}@media (max-width:590px){.app-shell .visibility-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.app-shell .page-controls{color:var(--slate);justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding-top:14px;font-size:13px;font-weight:700;display:flex}.app-shell .page-controls>div{align-items:center;gap:10px;display:flex}.app-shell .page-controls b{min-width:96px;color:var(--ink);text-align:center;font-size:13px}.app-shell .label-toolbar{gap:10px;margin-bottom:18px;padding:16px;display:grid}.app-shell .label-toolbar .page-controls{margin-top:0}.app-shell .label-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px;display:grid}.app-shell .label-filters>*{min-width:0;margin:0}.app-shell .label-filters .directory-search{box-sizing:border-box;width:100%}@media (max-width:640px){.app-shell .label-filters{grid-template-columns:minmax(0,1fr)}}@media (max-width:590px){.app-shell .page-controls{flex-direction:column;align-items:stretch}.app-shell .page-controls>div{justify-content:space-between}.app-shell .page-controls .button{flex:1}.app-shell .recent-sessions-panel .page-controls>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.app-shell .recent-sessions-panel .page-controls b{grid-area:1/1/auto/-1}}.app-shell .action-orbit{color:var(--brand-blue);box-shadow:0 0 0 9px var(--brand-sky);border-color:#9fc5f5}.app-shell .today-command-grid>div{background:#f6faff;border-color:#d4e1ef}.app-shell .student-focus-grid button{background:#fff;border-color:#c9daed}.app-shell .student-focus-grid button:hover{background:#f3f8ff;border-color:#8db6e8}.app-shell .button-dark,.app-shell .button-primary{color:#fff;background:linear-gradient(135deg,var(--brand-blue-bright),var(--brand-navy));border-color:#0000;box-shadow:0 11px 25px #0b48a033}.app-shell :is(.button-primary,.button-dark):hover:not(:disabled){color:#fff;background:linear-gradient(135deg,#2476da,#083777);transform:translateY(-1px)}.app-shell .button-outline{color:var(--brand-navy);background:#fff;border-color:#abc2de}.app-shell .button-outline:hover:not(:disabled){border-color:var(--brand-blue);color:var(--brand-blue);background:#f1f7ff}.app-shell .button-ghost,.app-shell .text-button,.app-shell :is(.class-edit,.staff-reset){color:var(--brand-blue)}.app-shell .class-view{border-color:var(--brand-navy);color:#fff;background:linear-gradient(135deg,var(--brand-blue),var(--brand-navy-deep));box-shadow:0 7px 18px #062b6129}.app-shell .class-edit:hover,.app-shell .class-view:hover,.app-shell .staff-reset:hover{color:var(--brand-blue);background:var(--brand-sky)}.app-shell .class-view:hover{border-color:var(--brand-blue-bright);color:#fff;background:linear-gradient(135deg,var(--brand-blue-bright),var(--brand-blue));transform:translateY(-1px)}.app-shell .class-checks legend,.app-shell .field>span{color:#17365d;font-family:var(--font-sans),sans-serif;font-weight:800}.app-shell .directory-search,.app-shell .field input,.app-shell .field select,.app-shell .field textarea,.app-shell .manual-search input{background:#fff;border-color:#bccde0}.app-shell .field input:hover,.app-shell .field select:hover,.app-shell .field textarea:hover{border-color:#8fb1d8}.app-shell .field input:focus,.app-shell .field select:focus,.app-shell .field textarea:focus,.app-shell .manual-search input:focus{border-color:var(--brand-blue-bright);box-shadow:0 0 0 4px #1769d221}.app-shell :is(.check-row,.class-check-option,.toggle-field){background:#f9fbfe;border-color:#c7d7e8}.app-shell :is(.check-row,.class-check-option,.toggle-field):hover{background:#f1f7ff;border-color:#8fb4df}.app-shell input[type=checkbox],.app-shell input[type=radio]{accent-color:var(--brand-blue)}.app-shell .form-message.warning{border-color:#f2c77e;border-left-color:var(--brand-orange-deep);color:#7b3d00;background:#fff6e8}.app-shell .clear-state,.app-shell .empty-inline,.app-shell .empty-state,.app-shell .fee-empty-state{background:#f5f9ff;border-color:#c8d9ec}.app-shell .metric{background:#fff;border-color:#ccdaea;box-shadow:0 9px 26px #062b6111}.app-shell .metric:not(.featured)>svg{color:var(--brand-blue)}.app-shell .metric.warning{background:snow;border-color:#efc6c1}.app-shell .metric.warning strong,.app-shell .metric.warning svg{color:var(--red)}.app-shell .metric.featured p,.app-shell .metric.featured>span{color:#c8dbf2}.app-shell .report-control-strip{background:linear-gradient(90deg,#f1f7ff,#fff8ec);border-color:#cfdeed}.app-shell .report-control-strip .field>span{color:var(--brand-navy)}.app-shell .table-toolbar{background:#f4f8fd;border-bottom-color:#d6e2ef}.app-shell .table-wrap{background:#fff;border-color:#cbd9e8}.app-shell th{color:#23466e;background:#eaf2fc;border-bottom-color:#cbd9e8}.app-shell td{color:#243c5b;border-top-color:#e0e9f3}.app-shell tbody tr:hover td{background:#f3f8ff}.app-shell .academic-comparison,.app-shell .attendance-trend-card,.app-shell .fee-ageing-card,.app-shell .growth-chart-scroll,.app-shell .student-history-timeline,.app-shell .teacher-notes{background:#f7faff;border-color:#ccdaea}.app-shell .growth-bar-track,.app-shell .performance-column>div{background:#dbe9f8}.app-shell .growth-bar,.app-shell .performance-column>div span{background:linear-gradient(180deg,#2e7ee1,var(--brand-navy))}.app-shell .chart-legend i{background:var(--brand-blue)}.app-shell .staff-card-actions{flex-wrap:wrap;gap:8px 14px;display:flex;position:absolute;bottom:13px;left:88px;right:17px}.app-shell .staff-card-actions .staff-reset{min-height:38px;padding:6px 0;position:static}.app-shell .student-exam-result{justify-items:end;gap:10px;min-width:180px;display:grid}.app-shell .student-result-comment{border-left:3px solid var(--brand-orange);color:#314966;background:#fff7e9;border-radius:0 8px 8px 0;max-width:340px;margin:0;line-height:1.5}.app-shell .student-result-comment strong{color:var(--brand-navy);margin-bottom:2px;font-size:12px;display:block}.app-shell .exam-card{grid-template-columns:minmax(0,1fr) minmax(250px,auto)}.app-shell .exam-actions{min-width:250px}.app-shell .exam-action-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.app-shell .exam-action-buttons .button{padding-inline:12px}.app-shell .marks-book{scroll-margin-top:92px}.app-shell .fee-history-panel,.app-shell .marks-book{margin-top:25px;padding:28px}.app-shell .timeline-correction{white-space:nowrap;margin-left:auto}.app-shell .marks-book-heading{align-items:flex-end}.app-shell .marks-book-heading p{max-width:760px}.app-shell .marks-book .table-wrap{overflow:auto}.app-shell .marks-book td:last-child{min-width:220px}.app-shell .marks-book .table-actions{flex-wrap:wrap}.app-shell .modal-backdrop,.login-page-reference .modal-backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#031938c2}.app-shell .modal,.login-page-reference .modal{border:1px solid #c8d8ea;border-top:5px solid var(--brand-orange,#ff9d18);background:#fff;box-shadow:0 34px 95px #021b3e57}.login-page-reference .modal h2{color:#062b61;letter-spacing:0;font-family:Permanent Marker,Comic Sans MS,cursive;font-weight:400}.app-shell .modal-icon,.login-page-reference .modal-icon{color:var(--brand-blue,#0b48a0);background:#eaf3ff}.app-shell .modal-close,.login-page-reference .modal-close{color:var(--brand-navy,#062b61);background:#f7faff;border-color:#c5d5e7}.app-shell .modal-close:hover,.login-page-reference .modal-close:hover{color:#fff;background:var(--brand-blue,#0b48a0)}.app-shell .password-prompt{background:linear-gradient(135deg,var(--brand-blue),var(--brand-navy-deep));border-color:#ffffff2e;box-shadow:0 18px 44px #04265447}.app-shell .password-prompt>svg:first-child{color:var(--brand-orange);background:#ffffff1c}@media (max-width:820px){.app-shell .mobile-bottom-nav,.app-shell .mobile-topbar{background:linear-gradient(135deg,#062b61fa,#041d43fa);box-shadow:0 16px 40px #0426544d}.app-shell .mobile-bottom-nav button.active{color:#fff;box-shadow:inset 0 3px var(--brand-orange);background:#1769d261}.app-shell .mobile-bottom-nav button.active svg{color:#ffc15b}.app-shell .page-heading h1{font-size:39px}.app-shell .exam-card{grid-template-columns:1fr}.app-shell .exam-actions{justify-items:start;min-width:0}.app-shell .exam-action-buttons{justify-content:flex-start}.app-shell .student-exam-result{justify-items:start;min-width:0}.app-shell .student-result-comment{max-width:none}}@media (max-width:620px){.app-shell .page-heading h1{font-size:35px}.app-shell .modal h2{font-size:30px}.app-shell .table-wrap tr{border-color:#ccdaea;box-shadow:0 5px 16px #062b610e}.app-shell .table-wrap td{border-top-color:#e2ebf4}.app-shell .table-wrap td:before{color:#31577f}.app-shell .marks-book{padding:19px 16px}.app-shell .marks-book-heading{align-items:stretch}.app-shell .marks-book-heading .button{width:100%}.app-shell .marks-book td:last-child{min-width:0}.app-shell .fee-history-panel{padding:19px 16px}.app-shell .timeline-correction{width:100%;margin:8px 0 0}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{@page{size:A4;margin:9mm}body{background:#fff}.mobile-topbar,.no-print,.password-prompt,.sidebar{display:none!important}.app-main{margin:0}.content-wrap{width:100%;padding:0}.progress-report{box-shadow:none;border:0}.progress-report .table-wrap{overflow:visible}.progress-report table{min-width:0}.label-sheet{grid-template-columns:repeat(3,1fr);gap:4mm}.qr-label{break-inside:avoid;min-height:82mm;box-shadow:none;border:.4mm dashed #888}.qr-label .qr-code-image{width:42mm;height:42mm}.qr-label .label-logo{width:9mm;height:9mm}}.app-loading .loader-mark,.app-shell .brand-mark{box-sizing:border-box;filter:none;image-rendering:auto;background:#fff;border:1px solid #cedcede6;border-radius:14px;padding:5px;box-shadow:0 5px 16px #00123038}.app-shell .sidebar .brand-mark{flex:0 0 50px;width:50px;height:50px}.app-shell .mobile-topbar .brand-mark{border-radius:12px;flex:0 0 44px;width:44px;height:44px;padding:4px;display:block}.login-page-reference img.login-brand-mark{box-sizing:border-box;image-rendering:auto;background:#fff;border:1px solid #d6e1ef;border-radius:22px;width:88px;height:88px;padding:9px;box-shadow:0 12px 30px #05285921}.login-page-reference .login-brand-lockup{gap:12px}.login-page-reference .login-brand-lockup strong{font-size:19px}.login-page-reference .login-brand-lockup small{font-size:12px}.app-loading .loader-mark{width:84px;height:84px;padding:7px}.label-brand .label-logo{background:#fff;border:1px solid #d9e2ed;border-radius:7px;padding:2px}@media (max-width:560px){.login-page-reference img.login-brand-mark{border-radius:17px;width:78px;height:78px;padding:6px}.login-page-reference .login-brand-lockup{gap:7px}.login-page-reference .login-brand-lockup strong{font-size:17px}}.financial-page-heading{align-items:center}.financial-lock-stage{background:#fff;border:1px solid #cad8e8;border-radius:24px;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);max-width:1040px;margin:34px auto 0;display:grid;overflow:hidden;box-shadow:0 24px 60px #0828531f}.financial-lock-copy{color:#fff;background:radial-gradient(circle at 85% 10%,#ff9d1833,#0000 14rem),linear-gradient(145deg,#073675,#041d43);padding:52px}.financial-lock-copy .eyebrow{color:#ffd27e;background:#ffffff1a}.financial-lock-copy h2{color:#fff;max-width:420px;margin-bottom:15px;font-size:clamp(32px,4vw,46px)}.financial-lock-copy>p{color:#d8e5f6;max-width:540px;font-size:16px;line-height:1.7}.financial-lock-copy ul{gap:14px;margin:30px 0 0;padding:0;list-style:none;display:grid}.financial-lock-copy li{color:#edf5ff;align-items:center;gap:11px;font-size:14px;font-weight:700;display:flex}.financial-lock-copy li svg{color:#ffb43f}.financial-lock-icon{color:#ffb43f;background:#ffffff17;border:1px solid #fff3;border-radius:17px;place-items:center;width:58px;height:58px;margin-bottom:34px;display:grid}.financial-unlock-form{box-shadow:none;border:0;border-radius:0;justify-content:center;align-self:stretch;padding:52px}.financial-unlock-form h2{margin-bottom:5px;font-size:29px}.financial-controls{border-top:4px solid var(--brand-orange);grid-template-columns:minmax(250px,1fr) minmax(220px,.7fr) minmax(230px,.75fr);align-items:end;gap:18px;margin-bottom:22px;padding:22px;display:grid}.financial-filter-note{min-height:54px;color:var(--brand-navy);background:#f6faff;border:1px solid #d2dfed;border-radius:11px;align-items:center;gap:11px;padding:9px 13px;display:flex}.financial-filter-note svg{color:var(--green)}.financial-filter-note span{gap:2px;display:grid}.financial-filter-note strong{font-size:14px}.financial-filter-note small{color:var(--slate);font-size:12px;line-height:1.35}.financial-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px;display:grid}.financial-metric{min-height:174px;color:var(--ink);background:#fff;border:1px solid #cfdae8;border-radius:17px;flex-direction:column;align-items:flex-start;padding:22px;display:flex;box-shadow:0 10px 25px #0f305b0f}.financial-metric svg{color:var(--brand-blue-bright);margin-bottom:24px}.financial-metric>span{color:var(--slate);text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:800}.financial-metric strong{color:var(--brand-navy);font-family:var(--font-serif),sans-serif;margin:7px 0 4px;font-size:clamp(24px,2.2vw,32px);line-height:1.1}.financial-metric small{color:var(--slate);font-size:13px}.financial-metric.featured{color:#fff;background:linear-gradient(145deg,#0b4c9d,#052b60);border-color:#0b4c9d}.financial-metric.featured :is(svg,strong){color:#fff}.financial-metric.featured>span{color:#d8e9ff}.financial-metric.featured small{color:#bed5f2}.financial-revenue-section{border-top:4px solid var(--brand-blue-bright)}.financial-chart-scroll{scrollbar-color:#7f9fc6 #e9f0f8;background:linear-gradient(#fbfdff,#f4f8fd);border:1px solid #d2dfed;border-radius:15px;padding:22px 13px 10px;overflow-x:auto}.financial-chart-scroll:focus-visible{outline-offset:3px;outline:3px solid #ff9d1873}.financial-chart{grid-auto-columns:minmax(45px,1fr);grid-auto-flow:column;align-items:end;gap:8px;height:330px;padding:8px 8px 0;display:grid}.financial-chart.range-2y{grid-auto-columns:minmax(40px,1fr)}.financial-chart.range-3y{grid-auto-columns:minmax(34px,1fr);gap:6px}.financial-chart.range-5y,.financial-chart.range-all{grid-auto-columns:minmax(28px,1fr);gap:4px}.financial-chart-column{grid-template-rows:28px minmax(0,1fr) 22px 18px;place-items:end center;min-width:0;height:100%;display:grid}.financial-chart-value{max-width:70px;color:var(--brand-navy);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;overflow:hidden}.financial-chart-track{background:repeating-linear-gradient(0deg,#e7eef7 0 1px,#0000 1px 25%);border-radius:8px 8px 3px 3px;align-items:end;width:min(44px,78%);height:100%;display:flex;overflow:hidden}.financial-chart-track>div{background:linear-gradient(#2b76d4,#083775);border-radius:8px 8px 3px 3px;width:100%;box-shadow:0 6px 14px #0b48a03d}.financial-chart-column strong{color:#334a68;white-space:nowrap;min-height:20px;font-size:12px}.financial-chart-column small{color:#6b7d94;min-height:18px;font-size:11px}.financial-detail-grid{grid-template-columns:1fr 1fr;gap:22px;margin-top:25px;display:grid}.financial-breakdown{border-top:4px solid var(--brand-orange);padding:26px}.financial-method-list{gap:19px;display:grid}.financial-method-list article>div:first-child{justify-content:space-between;gap:18px;display:flex}.financial-method-list span{color:var(--ink-soft);font-size:14px;font-weight:800}.financial-method-list strong{color:var(--brand-navy);font-size:16px}.financial-method-list small{color:var(--slate);font-size:12px}.financial-progress{background:#e8eff7;border-radius:999px;height:8px;margin:8px 0 6px;overflow:hidden}.financial-progress span{border-radius:inherit;background:linear-gradient(90deg,var(--brand-orange),#ffc05d);height:100%;display:block}.financial-context-list{grid-template-columns:1fr 1fr;gap:13px;display:grid}.financial-context-list article{background:#f8fbff;border:1px solid #d7e1ed;border-radius:13px;gap:5px;padding:16px;display:grid}.financial-context-list span{color:var(--slate);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.financial-context-list strong{color:var(--brand-navy);font-size:21px}.financial-context-list small{color:var(--slate);font-size:12px;line-height:1.45}.financial-definition{color:#6f4a10;background:#fff7e9;border:1px solid #efd4a9;border-radius:10px;gap:9px;margin:16px 0 0;padding:12px 13px;font-size:13px;line-height:1.5;display:flex}.financial-definition svg{flex:none;margin-top:2px}.financial-generated{color:var(--slate);gap:7px;margin:18px 0 0;font-size:12px}.financial-generated,.financial-pagination{justify-content:flex-end;align-items:center;display:flex}.financial-pagination{gap:14px;margin-top:18px}.financial-pagination span{color:var(--slate);font-size:13px;font-weight:700}@media (max-width:1100px){.financial-controls,.financial-metric-grid{grid-template-columns:1fr 1fr}.financial-filter-note{grid-column:1/-1}}@media (max-width:760px){.financial-lock-stage{grid-template-columns:1fr;margin-top:20px}.financial-lock-copy{padding:30px 24px}.financial-lock-copy h2{font-size:32px}.financial-lock-icon{margin-bottom:24px}.financial-unlock-form{padding:30px 24px}.financial-controls,.financial-detail-grid,.financial-metric-grid{grid-template-columns:1fr}.financial-filter-note{grid-column:auto}.financial-metric{min-height:150px}.financial-context-list{grid-template-columns:1fr}.financial-chart{height:290px}}.recovery-screen{color:#08295a;text-align:center;background:radial-gradient(circle at 50% 0,#e7f2ff,#0000 35rem),#f7f9fc;place-content:center;justify-items:center;gap:14px;min-height:100svh;padding:32px;display:grid}.recovery-screen>img{background:#fff;border:1px solid #d3deeb;border-radius:22px;width:96px;height:96px;padding:8px}.recovery-screen>span{color:#a65b00;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800}.recovery-screen h1{margin:0;font-size:clamp(30px,5vw,48px)}.recovery-screen p{color:#4d6078;max-width:650px;margin:0;font-size:16px;line-height:1.65}.recovery-screen>div{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.recovery-screen button{color:#fff;min-height:48px;font:800 14px var(--font-sans),sans-serif;cursor:pointer;background:#0b4c9d;border:1px solid #0b4c9d;border-radius:10px;padding:0 22px}.recovery-screen button.secondary{color:#0b4c9d;background:#fff}.offline-banner{z-index:60;color:#4c3100;background:#fff1cf;border-bottom:1px solid #e7bd70;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:9px 20px;font-size:14px;display:flex;position:sticky;top:0}.offline-banner svg{flex:none}.pwa-prompt,.pwa-update{z-index:120;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));color:#08295a;background:#fffffffa;border:1px solid #cbd9e9;border-radius:16px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;width:min(520px,100vw - 40px);min-height:76px;padding:12px 48px 12px 12px;display:grid;position:fixed;box-shadow:0 18px 48px #08295a33}.pwa-prompt>img{border:1px solid #dce6f1;border-radius:12px;width:52px;height:52px}.pwa-prompt>div{gap:3px;min-width:0;display:grid}.pwa-prompt strong,.pwa-update strong{font:800 15px/1.25 var(--font-serif),var(--font-sans),sans-serif}.pwa-prompt span,.pwa-update span{color:#51637b;font-size:13px;line-height:1.4}.pwa-primary,.pwa-update button{color:#fff;min-height:44px;font:800 13px var(--font-sans),sans-serif;cursor:pointer;background:#0755b5;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 16px;display:inline-flex}.pwa-primary:hover,.pwa-update button:hover{background:#063f88}.pwa-dismiss{color:#53657d;cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:8px;right:8px}.pwa-dismiss:hover{color:#08295a;background:#edf4fb}.pwa-update{border-color:#a9c8ed;grid-template-columns:auto minmax(0,1fr) auto;padding-right:12px}.pwa-update>svg{color:#0755b5}.pwa-dialog-backdrop{z-index:180;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#041835ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.pwa-dialog{color:#08295a;background:#fff;border:1px solid #d0dcea;border-radius:20px;width:min(460px,100%);max-height:calc(100svh - 40px);padding:32px;position:relative;overflow-y:auto;box-shadow:0 28px 80px #02183752}.pwa-dialog-close{color:#08295a;cursor:pointer;background:#fff;border:1px solid #d7e1ed;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:12px;right:12px}.pwa-dialog-icon{color:#fff;background:#0755b5;border-radius:14px;place-items:center;width:54px;height:54px;margin-bottom:20px;display:grid}.pwa-dialog>span{color:#a65b00;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800}.pwa-dialog h2{font:800 clamp(25px,5vw,34px)/1.16 var(--font-serif),var(--font-sans),sans-serif;margin:8px 50px 20px 0}.pwa-dialog ol{gap:12px;margin:0 0 24px;padding:0;list-style:none;display:grid}.pwa-dialog li{color:#42556e;border:1px solid #dce5f0;border-radius:12px;align-items:center;gap:12px;min-height:52px;padding:12px 14px;font-size:15px;line-height:1.45;display:flex}.pwa-dialog li svg{color:#0755b5;flex:none}.offline-screen{color:#08295a;text-align:center;background:radial-gradient(circle at 50% 0,#e6f1ff,#0000 36rem),#f5f8fc;place-content:center;justify-items:center;gap:14px;min-height:100svh;padding:32px;display:grid}.offline-screen>img{border:1px solid #d3deeb;border-radius:22px;width:96px;height:96px;box-shadow:0 12px 34px #08295a1f}.offline-screen>span{color:#a65b00;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800}.offline-screen h1{max-width:650px;font:800 clamp(32px,6vw,52px)/1.1 var(--font-serif),var(--font-sans),sans-serif;margin:0}.offline-screen p{color:#4d6078;max-width:610px;margin:0;font-size:16px;line-height:1.65}.offline-screen a{color:#fff;background:#0755b5;border-radius:10px;align-items:center;min-height:48px;margin-top:8px;padding:0 22px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}@media (max-width:760px){.pwa-prompt,.pwa-update{right:12px;bottom:calc(82px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}.pwa-prompt{grid-template-columns:46px minmax(0,1fr);padding:11px 48px 11px 11px}.pwa-prompt>img{width:46px;height:46px}.pwa-prompt .pwa-primary{grid-column:1/-1;width:100%}.pwa-update{grid-template-columns:auto minmax(0,1fr)}.pwa-update button{grid-column:1/-1;width:100%}.pwa-dialog{padding:26px 20px 20px}}@media (display-mode:standalone){body{padding-top:env(safe-area-inset-top)}.pwa-prompt{display:none}}.app-shell .guardian-contact-list a,.app-shell a.fee-phone{align-items:center;min-height:44px;display:inline-flex}.app-shell .class-workspace{gap:22px;display:grid}.app-shell .class-workspace-heading{align-items:end;margin-bottom:0}.app-shell .class-back{width:max-content;margin:0 0 14px;padding:0}.app-shell .class-workspace-loading{min-height:240px;color:var(--slate);place-items:center;font-size:16px;font-weight:700;display:grid}.app-shell .class-command-bar{border-left:5px solid #f59e0b;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:18px;padding:18px 20px;display:grid}.app-shell .class-command-bar>div{align-items:center;gap:12px;min-width:0;display:flex}.app-shell .class-command-bar>div>svg{color:#0755b5;flex:none}.app-shell .class-command-bar>div span{gap:3px;min-width:0;display:grid}.app-shell .class-command-bar small{color:#54657c;font-size:13px;font-weight:700}.app-shell .class-command-bar strong{color:#08295a;font:800 15px/1.35 var(--font-sans),sans-serif;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-shell .class-command-bar em{color:#596c84;font-size:12px;font-style:normal;line-height:1.35}.app-shell .class-command-bar .command-highlight{background:#fff8e8;border:1px solid #f2c978;border-radius:12px;margin:-8px;padding:10px}.app-shell .class-command-bar .command-highlight>svg{color:#b65d00}.app-shell .class-workspace-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.app-shell .class-workspace-metrics>article{border-top:4px solid #d9e7f7;align-items:flex-start;gap:13px;min-height:132px;padding:20px;display:flex}.app-shell .class-workspace-metrics>article>svg{color:#1262be;flex:none;margin-top:2px}.app-shell .class-workspace-metrics>article>span{gap:5px;min-width:0;display:grid}.app-shell .class-workspace-metrics small{color:#53657c;font-size:13px;font-weight:750}.app-shell .class-workspace-metrics strong{color:#08295a;font:800 clamp(24px,2.3vw,32px)/1.1 var(--font-serif),sans-serif;text-transform:capitalize}.app-shell .class-workspace-metrics em{color:#53657c;font-size:13px;font-style:normal;line-height:1.35}.app-shell .class-attendance-overview{border-top:4px solid #0b58af;padding:24px}.app-shell .attendance-period-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.app-shell .attendance-period-grid article{background:linear-gradient(145deg,#fff,#f5f9ff);border:1px solid #d7e1ee;border-radius:14px;align-content:center;gap:6px;min-height:130px;padding:18px;display:grid}.app-shell .attendance-period-grid span{color:#9b5400;text-transform:uppercase;letter-spacing:.055em;font-size:13px;font-weight:800}.app-shell .attendance-period-grid strong{color:#08295a;font:800 30px/1 var(--font-serif),sans-serif}.app-shell .attendance-period-grid small{color:#53657c;font-size:13px;line-height:1.45}.app-shell .class-learning-grid,.app-shell .class-workspace-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.app-shell .class-learning-grid>article,.app-shell .class-notice-panel,.app-shell .recent-sessions-panel{min-width:0;padding:22px}.app-shell .class-session-list{margin-top:16px;display:grid}.app-shell .class-session-list>div{border-top:1px solid #e2e9f2;grid-template-columns:minmax(100px,.65fr) minmax(150px,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:11px 0;display:grid}.app-shell .class-session-list time{color:#334964;font-size:13px;font-weight:750}.app-shell .class-session-list span{gap:3px;display:grid}.app-shell .class-session-list strong{color:#08295a;font-size:15px}.app-shell .class-session-list small{color:#586a81;font-size:13px}.app-shell .session-state{color:#285573;text-transform:capitalize;background:#f2f8fd;border:1px solid #c9dbea;border-radius:999px;padding:5px 9px;font-size:12px;font-style:normal;font-weight:800}.app-shell .session-state.closed{color:#17604d;background:#e8f7f1;border-color:#b9dfd2}.app-shell .class-compact-list,.app-shell .class-exam-list,.app-shell .class-resource-list{gap:10px;margin-top:16px;display:grid}.app-shell .class-compact-list>article,.app-shell .class-exam-list>article,.app-shell .class-resource-list>article{background:#fff;border:1px solid #dce5f0;border-radius:12px;gap:6px;min-width:0;padding:15px;display:grid}.app-shell .class-compact-list strong,.app-shell .class-exam-list strong,.app-shell .class-resource-list strong{color:#08295a;font-size:16px;line-height:1.35}.app-shell .class-compact-list p,.app-shell .class-resource-list p{color:#53657c;margin:0;font-size:14px;line-height:1.5}.app-shell .class-compact-list time,.app-shell .class-exam-list small,.app-shell .class-exam-list time,.app-shell .class-resource-list>article>span{color:#596c84;font-size:13px}.app-shell .class-resource-list>article>span{text-transform:uppercase;letter-spacing:.05em;font-weight:800}.app-shell .class-exam-list>article>span{justify-content:space-between;align-items:center;gap:10px;display:flex}.app-shell .class-workspace-roster{padding-top:24px}.app-shell .class-workspace-roster .page-controls{justify-content:flex-end;align-items:center;gap:12px;padding:18px 22px 4px;display:flex}.app-shell .class-workspace-roster .page-controls span{color:#4c6078;font-size:13px;font-weight:750}.app-shell .table-subline{color:#596b82;margin-top:3px;font-size:13px;display:block}.app-shell .student-class-link{width:100%;min-height:72px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;transition:background .18s,transform .18s}.app-shell .student-class-link:hover{background:#f2f7fe}.app-shell .student-class-link:focus-visible{z-index:1;outline-offset:-3px;outline:3px solid #4f8dd2;position:relative}.app-shell .student-class-link .fee-amount{align-items:center;gap:9px;display:flex}.app-shell .student-class-link .fee-amount>svg{color:#0b57ad}.app-shell .student-class-link .next-lesson-line{color:#124f91;margin-top:4px;font-weight:750}@media (max-width:1120px){.app-shell .class-workspace-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.app-shell .class-workspace-heading{align-items:start}.app-shell .attendance-period-grid,.app-shell .class-command-bar,.app-shell .class-learning-grid,.app-shell .class-workspace-columns{grid-template-columns:1fr}.app-shell .attendance-period-grid article{min-height:108px}}@media (max-width:520px){.app-shell .class-workspace{gap:16px}.app-shell .class-workspace-metrics{grid-template-columns:1fr}.app-shell .class-workspace-metrics>article{min-height:112px}.app-shell .class-session-list>div{grid-template-columns:1fr auto}.app-shell .class-session-list>div>time{grid-column:1/-1}.app-shell .class-workspace-roster .page-controls{text-align:center;flex-direction:column;align-items:stretch}.app-shell .class-workspace-roster .page-controls .button{width:100%}.app-shell .student-class-link{align-items:flex-start;gap:12px}.app-shell .student-class-link .fee-amount{flex-direction:column;align-items:flex-end}}.app-shell .student-exam-result{justify-items:stretch;gap:9px;min-width:270px}.app-shell .student-result-summary{grid-template-columns:82px minmax(145px,1fr);gap:9px;display:grid}.app-shell .result-grade-badge,.app-shell .result-marks-card{border-radius:11px;align-content:center;min-height:76px;padding:11px 13px;display:grid}.app-shell .result-grade-badge{color:#083267;background:#edf5fd;border:1px solid #b9cfe6;justify-items:center}.app-shell .result-grade-badge span,.app-shell .result-marks-card span{text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:800}.app-shell .result-grade-badge span{color:#476584}.app-shell .result-grade-badge strong{color:#083267;font:800 29px/1 var(--font-serif),var(--font-sans),sans-serif}.app-shell .result-marks-card{color:#08295a;background:#f4f9ff;border:1px solid #cbdcec}.app-shell .result-marks-card span{color:#52677f}.app-shell .result-marks-card strong{font:800 23px/1.1 var(--font-serif),var(--font-sans),sans-serif}.app-shell .result-marks-card strong small{color:#52677f;font:700 13px var(--font-sans),sans-serif}.app-shell .result-marks-card b{color:#8b4b00;margin-top:2px;font-size:13px}.app-shell .result-pending{background:#f7faff;border:1px dashed #b9c9da;border-radius:11px;align-content:center;gap:4px;min-width:245px;min-height:72px;padding:13px 15px;display:grid}.app-shell .result-pending span{color:#274b73;font-size:15px;font-weight:800}.app-shell .result-pending small{color:#586c84;font-size:13px;line-height:1.45}.app-shell .student-result-comment{max-width:none;padding:10px 12px;font-size:13px}.app-shell .student-result-comment strong{margin-bottom:4px;font-size:14px}.app-shell .scanner-layout{grid-template-columns:minmax(360px,1fr) minmax(390px,.92fr);gap:22px}.app-shell .scan-result{min-height:0;scroll-margin-top:88px;position:sticky;top:88px}.app-shell .quick-checkin-actions{background:#f4f9ff;border:1px solid #c8dbea;border-radius:14px;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding:16px;display:grid}.app-shell .quick-checkin-actions>small,.app-shell .quick-checkin-copy{grid-column:1/-1}.app-shell .quick-checkin-copy{gap:3px;display:grid}.app-shell .quick-checkin-copy strong{color:#08295a;font-size:17px}.app-shell .quick-checkin-actions>small,.app-shell .quick-checkin-copy span{color:#52677f;font-size:13px;line-height:1.45}.app-shell .button-payment{color:#fff;background:#08705a;box-shadow:0 9px 22px #08705a2b}.app-shell .button-payment:hover:not(:disabled){color:#fff;background:#075947}.app-shell .quick-payment-action{background:#effaf6;border:1px solid #b7ddcf;border-radius:13px;gap:12px;margin-top:14px;padding:15px;display:grid}.app-shell .quick-payment-action>div{color:#07604d;align-items:center;gap:10px;display:flex}.app-shell .quick-payment-action>div>span{gap:3px;display:grid}.app-shell .quick-payment-action strong{color:#075846;font-size:16px}.app-shell .quick-payment-action small{color:#426b60;font-size:13px}.app-shell .attendance-undo{color:#6f3c3a;margin-top:7px}.app-shell .scanner-lesson-preview{color:#0755b5;background:#f3f8fe;border:1px solid #c8dcec;border-radius:13px;gap:11px;margin:2px 0 17px;padding:14px}.app-shell .scanner-lesson-preview.is-rescheduled{color:#a75900;background:#fff8e9;border-color:#efc46d}.app-shell .scanner-lesson-preview>svg{flex:none;margin-top:2px}.app-shell .scanner-lesson-preview small{color:#53677e;text-transform:uppercase;letter-spacing:.045em;font-size:12px;font-weight:800}.app-shell .scanner-lesson-preview strong{color:#08295a;font-size:15px;line-height:1.35}.app-shell .scanner-lesson-preview em{color:#755120;font-size:12px;font-style:normal}.app-shell .scanner-actual-lesson{color:#dce9fa;margin-top:5px;font-size:13px;font-weight:700;display:block}.app-shell .fee-cycle-progress{background:#f5f9fe;border:1px solid #cbdcec;border-radius:12px;gap:9px;margin-top:12px;padding:13px 14px;display:grid}.app-shell .fee-cycle-progress>span{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.app-shell .fee-cycle-progress strong{color:#08295a;font-size:14px}.app-shell .fee-cycle-progress small{color:#53677e;font-size:12px}.app-shell .cycle-progress-track{background:#dce8f5;border-radius:999px;height:7px;overflow:hidden}.app-shell .cycle-progress-track>i{border-radius:inherit;background:linear-gradient(90deg,#0755b5,#2793dc);height:100%;display:block}.app-shell .event-card.is-rescheduled{background:#fffbf2;border:1px solid #efcc83;border-left:4px solid #dc8200;border-radius:12px;margin-block:5px;padding-inline:14px}.app-shell .event-card-main{min-width:0}.app-shell .schedule-change-line{color:#53677e;flex-wrap:wrap;align-items:center;gap:8px;margin:7px 0;font-size:13px;display:flex}.app-shell .schedule-change-line s{text-decoration-color:#ad514b;text-decoration-thickness:2px}.app-shell .schedule-change-line>svg{color:#b76500;flex:none}.app-shell .schedule-change-line strong{color:#8f4b00;font-size:14px}.app-shell .reminder-note{align-items:flex-start;gap:6px;font-weight:700;display:flex;color:#76521d!important;margin-top:8px!important}.app-shell .reminder-note>svg{flex:none;margin-top:3px}.app-shell .status-rescheduled{color:#814500;background:#fff2d7;border-color:#efc675}.app-shell .status-not_due{color:#36536f;background:#eef4f9;border-color:#cbd8e5}.app-shell .rescheduled-copy{font-weight:750;color:#8a4d00!important}.app-shell :is(.student-summary p,.student-pass-copy>p,.fee-help p,.profile-card>span,.profile-card dl div,.print-note,.global-note){font-size:14px;line-height:1.6}.app-shell :is(.summary-score small,.student-progress small,.student-pass-identity small,.student-pass-warning,.student-pass-code strong,.student-class>div:first-child>span,.student-class small,.timeline small,.staff-card span,.staff-card p,.notice-reach,.credential-banner span,.credential-banner strong,.exam-actions small){font-size:13px;line-height:1.45}.app-shell .student-class strong{font-size:16px;line-height:1.35}.app-shell .fee-amount b,.app-shell .timeline strong{font-size:14px}.app-shell .student-pass-identity strong{font-size:15px}.app-shell .student-pass-code span{font-size:14px}.app-shell .photo-help{font-size:13px}.app-shell .label-rotate{min-height:36px;padding:6px 9px;font-size:12px}.app-shell .qr-label p{font-size:13px}.app-shell .qr-label small{font-size:12px}.app-shell .live-dot{font-size:13px}.app-shell .camera-launch{font-size:15px}.app-shell .scanner-hint{font-size:14px}.app-shell .student-identity span{font-size:13px}.app-shell .student-identity h3{font-size:22px}.app-shell .student-identity p{font-size:14px}.app-shell .verification-row{font-size:15px}.app-shell .success-block strong{font-size:16px}.app-shell .empty-state p,.app-shell .success-block span{font-size:14px}.app-shell :is(.financial-filter-note small,.financial-metric>span,.financial-chart-column strong,.financial-chart-column small,.financial-method-list small,.financial-context-list span,.financial-context-list small,.financial-generated,.session-state){font-size:13px}.app-shell .financial-chart-value{max-width:86px;font-size:13px}@media (max-width:980px){.app-shell .scanner-layout{grid-template-columns:1fr}.app-shell .scanner-layout.has-result .scanner-stage{display:none}.app-shell .scan-result{position:static}}@media (max-width:620px){.app-shell .student-exam-result{width:100%;min-width:0}.app-shell .student-result-summary{grid-template-columns:76px minmax(0,1fr)}.app-shell .result-grade-badge,.app-shell .result-marks-card{min-height:72px;padding:10px}.app-shell .result-grade-badge strong{font-size:27px}.app-shell .result-marks-card strong{font-size:22px}.app-shell .result-pending{width:100%;min-width:0}.app-shell .quick-checkin-actions{grid-template-columns:1fr}.app-shell .quick-checkin-actions>small,.app-shell .quick-checkin-copy{grid-column:1}.app-shell .fee-cycle-progress>span{flex-direction:column;align-items:flex-start;gap:3px}}.login-page-reference .login-field>label{color:#172b49;font-family:var(--font-serif),var(--font-sans),sans-serif;font-size:13px;font-weight:800}.app-shell .utility-search input,.login-page-reference .login-input input{min-height:44px}.app-shell .academic-library-filter{border-top:3px solid var(--brand-blue);align-items:end;gap:18px;margin-bottom:18px;padding:15px 18px;display:flex}.app-shell .academic-library-filter .field{width:min(100%,420px)}.app-shell .academic-library-filter p{color:#52677f;margin:0 0 12px;font-size:14px;line-height:1.5}.app-shell .material-card .inline-actions,.app-shell .material-card>div,.app-shell :is(.learning-grid,.two-panel-grid,.academic-layout)>*{min-width:0}.app-shell .material-card .text-button{overflow-wrap:anywhere;text-align:left;white-space:normal;justify-content:flex-start;max-width:100%}.app-shell .username-suggestion-field input{background:#f7fbff;border-color:#78a7d7}.app-shell .manual-search-wrap{gap:8px;display:grid}.app-shell .manual-search-results{background:#02142fb8;border:1px solid #ffffff2e;border-radius:11px;gap:4px;max-height:230px;padding:6px;display:grid;overflow-y:auto}.app-shell .manual-search-results button{color:#fff;text-align:left;cursor:pointer;background:#ffffff12;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:9px 11px;display:flex}.app-shell .manual-search-results button:focus-visible,.app-shell .manual-search-results button:hover{background:#ffc15b2e}.app-shell .manual-search-results strong{color:#fff;font-size:14px}.app-shell .manual-search-results small{color:#b9c9dd;flex:none;font-size:12px}.app-shell .manual-search-state{color:#c9d7e8;text-align:center;padding:11px;font-size:13px}.app-shell .academic-page-controls{border-top:1px solid #d7e2ee;margin-top:18px;padding-top:15px}.app-shell .academic-page-controls>span,.app-shell .academic-page-controls>strong{color:#405975;font-size:13px}.app-shell .payment-history .section-heading .text-button{white-space:nowrap;align-self:center}.app-shell .sidebar-foot{align-items:stretch;gap:12px;display:grid}.app-shell .sidebar-signout{color:#fff;min-height:44px;font:800 13px var(--font-sans),sans-serif;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:9px 12px;display:flex}.app-shell .sidebar-signout:hover{color:#ffc15b;background:#ffffff21;border-color:#ffc15ba6}.app-shell .account-signout-panel{border-top:4px solid #bd3d37;justify-content:space-between;align-items:center;gap:24px;margin-top:20px;padding:22px;display:flex}.app-shell .account-signout-panel h2{margin:4px 0 5px;font-size:22px}.app-shell .account-signout-panel p{color:#52677f;margin:0;font-size:14px}@media (max-width:700px){.app-shell .academic-library-filter{flex-direction:column;align-items:stretch;gap:8px}.app-shell .academic-library-filter .field{width:100%}.app-shell .academic-library-filter p{margin-bottom:0}.app-shell .academic-page-controls{grid-template-columns:1fr 1fr;align-items:stretch}.app-shell .academic-page-controls>span{grid-column:1/-1}.app-shell .academic-page-controls>strong{text-align:center;grid-column:1/-1}.app-shell .payment-history .section-heading{align-items:flex-start}.app-shell .account-signout-panel{flex-direction:column;align-items:stretch;gap:16px}.app-shell .account-signout-panel .button{width:100%}}.app-shell .content-wrap{width:min(100%,1480px);padding:clamp(32px,3vw,48px) clamp(24px,3.5vw,58px) 88px}.app-shell :is(.page-heading,.section-heading,.report-section-heading,.plain-section-heading){min-width:0}.app-shell .page-heading{align-items:flex-end;gap:28px;min-height:0;margin-bottom:clamp(26px,3vw,36px);padding-bottom:clamp(20px,2.2vw,28px)}.app-shell .page-heading>div:first-child:not(.student-welcome),.app-shell .plain-section-heading>div,.app-shell .report-section-heading>div,.app-shell .section-heading>div:first-child{justify-items:start;min-width:0;display:grid}.app-shell .page-heading>div:first-child:not(.student-welcome){max-width:900px}.app-shell .page-heading h1{overflow-wrap:anywhere;text-wrap:balance;max-width:100%;margin:0 0 10px;font-size:clamp(40px,3.4vw,54px);line-height:1.06}.app-shell .page-heading p{text-wrap:pretty;max-width:800px;margin:0;font-size:16px;line-height:1.65}.app-shell .page-heading .eyebrow{margin-bottom:13px}.app-shell .page-heading .access-summary,.app-shell .page-heading .button,.app-shell .page-heading .page-actions{flex:none}.app-shell .page-actions{flex-wrap:wrap;justify-content:flex-end}.app-shell .student-welcome{min-width:0}.app-shell .student-welcome>div{justify-items:start;min-width:0;display:grid}.app-shell .section-heading{align-items:flex-end;gap:22px;margin-bottom:22px;padding-bottom:17px}.app-shell .plain-section-heading h2,.app-shell .report-section-heading h2,.app-shell .section-heading h2{text-wrap:balance}.app-shell .plain-section-heading p,.app-shell .report-section-heading p,.app-shell .section-heading p{text-wrap:pretty;max-width:760px;margin:7px 0 0;line-height:1.6}.app-shell .section-heading>:last-child:not(:first-child){flex:none}.app-shell .eyebrow{white-space:normal;overflow-wrap:anywhere;max-width:100%;margin-bottom:10px}.app-shell :is(.status,.record-count,.session-state){white-space:nowrap}.app-shell :is(.button,.text-button){text-align:center;white-space:normal;max-width:100%}.app-shell .form-grid,.app-shell .form-stack{align-items:start}.app-shell .field{min-width:0}.app-shell .field>span{display:block}.app-shell .field>span>small{font-size:.88em;font-weight:700;display:inline}.app-shell .field>small{margin:0;display:block}.app-shell :is(input,select,textarea){max-width:100%}.app-shell :is(.check-row,.toggle-field,.class-check-option)>span{min-width:0}.app-shell :is(.check-row,.toggle-field)>span{gap:4px;display:grid}.app-shell :is(.check-row,.toggle-field) small{line-height:1.55}.app-shell .modal-backdrop{padding:clamp(12px,2.5vw,24px)}.app-shell .modal{overscroll-behavior:contain;max-height:calc(100dvh - clamp(24px,5vw,48px));padding:clamp(26px,3vw,38px)}.app-shell .modal>.modal-icon{margin-bottom:18px}.app-shell .modal>.eyebrow{margin-bottom:12px}.app-shell .modal>h2{overflow-wrap:anywhere;text-wrap:balance;max-width:calc(100% - 46px);margin:0 0 12px;padding-right:0}.app-shell .modal>.form-intro{margin:0 0 24px;line-height:1.65}.app-shell .modal>h2+:is(form,.form-stack,.form-grid){margin-top:22px}.app-shell .modal .form-message{width:100%}.app-shell .scanner-start{width:min(100%,660px);margin:18px auto;padding:clamp(28px,4vw,42px)}.app-shell .scanner-copy{margin-bottom:28px}.app-shell .scanner-copy h2{text-wrap:balance;max-width:560px;margin-bottom:14px;font-size:clamp(30px,3vw,39px);line-height:1.25}.app-shell .scanner-copy p{margin:0;font-size:15px;line-height:1.65}.app-shell .scanner-start .field{margin-bottom:18px}.app-shell .scanner-lesson-preview{align-items:flex-start;gap:12px;margin:0 0 18px;padding:15px 16px;display:flex}.app-shell .scanner-lesson-preview>span{gap:5px;min-width:0;display:grid}.app-shell .scanner-lesson-preview :is(small,strong,em){display:block}.app-shell .scanner-lesson-preview strong{font-size:16px;line-height:1.45}.app-shell .scanner-start>.button{margin-top:0}.app-shell .class-workspace-heading>div:first-child{justify-items:start;display:grid}.app-shell .class-back{margin:0 0 6px}.app-shell .class-workspace-heading .eyebrow{margin-bottom:13px}.app-shell .class-command-bar>div span,.app-shell .class-session-list span,.app-shell .class-workspace-metrics>article>span{min-width:0}.app-shell .class-command-bar strong{white-space:normal;overflow-wrap:anywhere}.app-shell .table-toolbar{flex-wrap:wrap}.app-shell .table-toolbar>span{white-space:nowrap;margin-left:auto}.app-shell .table-wrap{max-width:100%}.app-shell .table-subline{overflow-wrap:anywhere}.app-shell .page-controls{border-top:1px solid var(--line);background:#f8fbff;flex-wrap:wrap;min-height:70px;margin-top:0;padding:14px 18px}.app-shell .page-controls>span{line-height:1.5}.app-shell .page-controls>div{flex-wrap:wrap;justify-content:flex-end}.app-shell .class-workspace-roster .page-controls{min-height:70px;margin-top:0;padding:14px 18px}.app-shell .announcement-meta,.app-shell .class-exam-list>article>span,.app-shell .event-card-actions,.app-shell .exam-action-buttons,.app-shell .financial-pagination{flex-wrap:wrap}@media (min-width:1600px){.app-shell .content-wrap{padding-inline:clamp(48px,4vw,72px)}}@media (max-width:1120px){.app-shell .content-wrap{padding:34px 24px 84px}.app-shell .page-heading{align-items:flex-start}.app-shell .page-heading h1{font-size:clamp(38px,4vw,48px)}}@media (max-width:820px){.app-shell .content-wrap{padding:28px 18px 116px}.app-shell .page-heading{flex-direction:column;align-items:stretch;gap:18px}.app-shell .page-heading .button,.app-shell .page-heading .page-actions{align-self:stretch}.app-shell .page-heading .page-actions{justify-content:flex-start}.app-shell .class-workspace-heading{display:grid}.app-shell .class-workspace-heading>.button{width:100%}.app-shell .class-command-bar strong{white-space:normal}}@media (max-width:620px){.app-shell .content-wrap{padding:24px 14px 112px}.app-shell .page-heading{margin-bottom:24px;padding-bottom:20px}.app-shell .page-heading h1{font-size:clamp(32px,10vw,40px);line-height:1.1}.app-shell .page-heading p{font-size:15px;line-height:1.6}.app-shell .student-welcome{align-items:flex-start}.app-shell .section-heading{align-items:stretch;gap:14px}.app-shell .section-heading>:last-child:not(:first-child){align-self:flex-start}.app-shell .modal-backdrop{align-items:center;padding:10px}.app-shell .modal{max-height:calc(100dvh - 20px);padding:25px 18px 22px}.app-shell .modal>h2{max-width:calc(100% - 42px);font-size:28px}.app-shell .scanner-start{margin:0 auto;padding:20px 18px}.app-shell .scanner-copy{margin-bottom:16px}.app-shell .scanner-copy h2{margin-bottom:10px;font-size:24px}.app-shell .scanner-lesson-preview{padding:13px}.app-shell .page-controls{flex-direction:column;align-items:stretch;padding:15px}.app-shell .page-controls>div{justify-content:space-between;width:100%}.app-shell .page-controls>div .button{flex:1 1 0}.app-shell .class-workspace-roster .page-controls{flex-direction:column;align-items:stretch}.app-shell .class-workspace-roster .page-controls .button{width:100%}}@media (max-width:390px){.app-shell .content-wrap{padding-inline:12px}.app-shell .modal{padding-inline:16px}.app-shell .page-heading h1{font-size:31px}.app-shell .page-actions{grid-template-columns:1fr;display:grid}}.app-shell .attendance-ledger{border:1px solid var(--line);background:#f7f3ea59;border-radius:15px;min-width:0;margin-top:22px;padding:20px}.app-shell .attendance-ledger .subsection-heading{margin-top:0}.app-shell .attendance-ledger-controls{background:#f5f9ff;border:1px solid #d5e1ee;border-radius:13px;grid-template-columns:minmax(190px,1fr) minmax(190px,.72fr) auto;align-items:end;gap:12px;margin-bottom:16px;padding:15px;display:grid}.app-shell .attendance-ledger-controls .field{margin:0}.app-shell .attendance-ledger-count{color:#173f6d;background:#fff;border:1px solid #c4d7ea;border-radius:10px;place-content:center;justify-items:center;min-height:52px;padding:8px 16px;display:grid}.app-shell .attendance-ledger-count strong{font:800 21px/1 var(--font-serif),var(--font-sans),sans-serif}.app-shell .attendance-ledger-count span{color:#5a6d84;margin-top:4px;font-size:12px;font-weight:700}.app-shell .attendance-ledger-table{min-width:1080px}.app-shell .attendance-ledger-table td{vertical-align:top}.app-shell .attendance-ledger-table td>small,.app-shell .attendance-ledger-table td>strong,.app-shell .attendance-lesson-time>*{display:block}.app-shell .attendance-lesson-time{gap:5px;min-width:210px;display:grid}.app-shell .attendance-lesson-time small{color:#586b82;font-size:13px;line-height:1.45}.app-shell .attendance-lesson-time .attendance-rescheduled{border-left:3px solid var(--brand-orange);color:#704000;background:#fff4dc;border-radius:5px;margin-top:4px;padding:7px 9px;font-weight:750}.app-shell .attendance-correction-reason{color:#7a3d00;max-width:260px;margin-top:6px;font-size:13px;font-weight:750;line-height:1.45}.app-shell .attendance-ledger-pagination{color:#415873;background:#f8fbff;border:1px solid #d5e1ee;border-top:0;border-radius:0 0 12px 12px;justify-content:space-between;align-items:center;gap:14px;min-height:68px;padding:12px 15px;display:flex}.app-shell .attendance-ledger-pagination>span{font-size:14px;font-weight:750}.app-shell .attendance-ledger-pagination>div{align-items:center;gap:10px;display:flex}.app-shell .attendance-ledger-pagination strong{color:#15385f;text-align:center;min-width:92px;font-size:13px}.app-shell .attendance-ledger-empty{place-items:center;min-height:110px;display:grid}@media (max-width:900px){.app-shell .attendance-ledger-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .attendance-ledger-count{grid-column:1/-1;align-items:center;gap:7px;min-height:48px;display:flex}.app-shell .attendance-ledger-count span{margin-top:0}}@media (max-width:620px){.app-shell .attendance-ledger{padding:16px 12px}.app-shell .attendance-ledger-controls{grid-template-columns:1fr;padding:12px}.app-shell .attendance-ledger-count{grid-column:auto}.app-shell .attendance-ledger-table{min-width:0}.app-shell .attendance-ledger-table td{align-items:start}.app-shell .attendance-ledger-table td .button{width:100%}.app-shell .attendance-ledger-pagination{flex-direction:column;align-items:stretch}.app-shell .attendance-ledger-pagination>div{justify-content:space-between;width:100%}.app-shell .attendance-ledger-pagination .button{flex:1 1 0}}.app-shell .lesson-plan-page-heading{align-items:center}.app-shell .lesson-plan-open{flex:none;min-height:48px;padding-inline:20px}.app-shell .lesson-plan-backdrop{padding:22px}.app-shell .lesson-plan-modal{width:min(100%,1040px);max-height:calc(100dvh - 44px);padding:34px;overflow-y:auto}.app-shell .lesson-plan-close:disabled{cursor:wait;opacity:.55}.app-shell .lesson-plan-heading{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px;padding-right:48px;display:grid}.app-shell .lesson-plan-heading h2{color:var(--ink);font:800 clamp(30px,4vw,42px)/1.05 var(--font-serif),var(--font-sans),sans-serif;letter-spacing:-.035em;margin:4px 0 7px}.app-shell .lesson-plan-heading p{max-width:760px;color:var(--muted);margin:0;font-size:15px;line-height:1.65}.app-shell .lesson-plan-icon{margin:0}.app-shell .lesson-plan-class{background:#f5f9ff;border:1px solid #cbdced;border-radius:14px;margin:22px 0 18px;padding:15px}.app-shell .lesson-plan-class select{background-color:#fff}.app-shell .lesson-plan-class small{color:#52677f;font-size:13px;line-height:1.5}.app-shell .lesson-plan-message{margin:0 0 16px}.app-shell .lesson-plan-empty,.app-shell .lesson-plan-loading{text-align:center;place-content:center;justify-items:center;gap:14px;min-height:180px;display:grid}.app-shell .lesson-plan-form{gap:18px;display:grid}.app-shell .lesson-plan-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.app-shell .lesson-plan-row{background:#fff;border:1px solid #cfdeed;border-radius:15px;min-width:0;padding:17px;box-shadow:0 8px 24px #12365c0f}.app-shell .lesson-plan-row-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:15px;display:grid}.app-shell .lesson-plan-row-head>div{gap:3px;min-width:0;display:grid}.app-shell .lesson-plan-row-head strong{color:#082f61;font-size:15px}.app-shell .lesson-plan-row-head small{color:#65768a;font-size:12px;line-height:1.35}.app-shell .lesson-plan-order{color:#fff;background:#0d4ea2;border-radius:10px;place-items:center;min-width:46px;min-height:34px;padding:7px 10px;font-size:13px;font-weight:850;display:inline-grid}.app-shell .lesson-plan-status{letter-spacing:.06em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:850}.app-shell .lesson-plan-status.is-weekly{color:#17653f;background:#eaf7f0;border-color:#b8d7c7}.app-shell .lesson-plan-status.is-changed{color:#7b4700;background:#fff3da;border-color:#f1c777}.app-shell .lesson-plan-fields{grid-template-columns:minmax(150px,1.35fr) repeat(2,minmax(108px,.8fr));align-items:end;gap:10px;display:grid}.app-shell .lesson-plan-fields .field{margin:0}.app-shell .lesson-plan-fields .field>span{font-size:13px}.app-shell .lesson-plan-fields input{min-height:46px;padding-inline:11px}.app-shell .lesson-plan-original{color:#6e4b12;border-top:1px dashed #d5e0ec;align-items:flex-start;gap:7px;margin:12px 0 0;padding-top:11px;font-size:12px;font-weight:700;line-height:1.45;display:flex}.app-shell .lesson-plan-original svg{flex:none;margin-top:1px}.app-shell .lesson-plan-actions{background:#f4f8fd;border:1px solid #cadbef;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;padding:15px 17px;display:flex}.app-shell .lesson-plan-actions p{gap:3px;margin:0;display:grid}.app-shell .lesson-plan-actions strong{color:#0a3569;font-size:14px}.app-shell .lesson-plan-actions small{color:#5e7084;font-size:12px;line-height:1.45}.app-shell .lesson-plan-actions .button{flex:none}.app-shell .lesson-plan-share{background:linear-gradient(135deg,#fffaf0,#fff 68%);border:1px solid #e1c277;border-radius:16px;margin-top:20px;padding:20px}.app-shell .lesson-plan-share-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.app-shell .lesson-plan-share-heading h3{color:#0b3568;font:800 23px/1.2 var(--font-serif),var(--font-sans),sans-serif;margin:4px 0 0}.app-shell .lesson-plan-share>p{color:#596c82;margin:9px 0 16px;font-size:14px;line-height:1.55}.app-shell .lesson-plan-share-options{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0;padding:0;display:grid}.app-shell .lesson-plan-share-options legend{color:#112f55;grid-column:1/-1;margin-bottom:7px;font-size:13px;font-weight:800}.app-shell .lesson-plan-share-option{color:#173e6d;cursor:pointer;background:#fff;border:1px solid #c8d7e8;border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:45px;padding:9px 11px;font-size:13px;font-weight:800;display:flex}.app-shell .lesson-plan-share-option.is-selected{color:#fff;background:#0d55ae;border-color:#0d55ae}.app-shell .lesson-plan-share-option input{accent-color:#ff9b13;margin:0}.app-shell .lesson-plan-share-options:disabled .lesson-plan-share-option{cursor:not-allowed;opacity:.58}.app-shell .lesson-plan-guardians{background:#ffffffd1;margin:14px 0 0}.app-shell .lesson-plan-send-row{border-top:1px solid #ead6a6;justify-content:space-between;align-items:center;gap:18px;margin-top:14px;padding-top:14px;display:flex}.app-shell .lesson-plan-queue-note{color:#53677e;align-items:flex-start;gap:8px;max-width:600px;margin:0;font-size:12px;line-height:1.5;display:flex}.app-shell .lesson-plan-queue-note svg{color:#a55f00;flex:none;margin-top:2px}.app-shell .lesson-plan-queue-note strong{color:#714100}.app-shell .lesson-plan-send-row .button{flex:none}@media (max-width:820px){.app-shell .lesson-plan-page-heading .lesson-plan-open{width:100%}.app-shell .lesson-plan-modal{padding:28px 24px}.app-shell .lesson-plan-list{grid-template-columns:1fr}}@media (max-width:620px){.app-shell .lesson-plan-backdrop{padding:8px}.app-shell .lesson-plan-modal{max-height:calc(100dvh - 16px);padding:24px 16px 20px}.app-shell .lesson-plan-heading{grid-template-columns:1fr;gap:10px;padding-right:42px}.app-shell .lesson-plan-heading .lesson-plan-icon{display:none}.app-shell .lesson-plan-heading h2{font-size:30px}.app-shell .lesson-plan-class{margin-top:18px;padding:12px}.app-shell .lesson-plan-row{padding:14px}.app-shell .lesson-plan-row-head{grid-template-columns:auto minmax(0,1fr)}.app-shell .lesson-plan-status{grid-column:1/-1;justify-self:start}.app-shell .lesson-plan-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell .lesson-plan-fields .field:first-child{grid-column:1/-1}.app-shell .lesson-plan-actions,.app-shell .lesson-plan-send-row{flex-direction:column;align-items:stretch}.app-shell .lesson-plan-actions .button,.app-shell .lesson-plan-send-row .button{width:100%}.app-shell .lesson-plan-share{padding:16px 13px}.app-shell .lesson-plan-share-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:380px){.app-shell .lesson-plan-fields{grid-template-columns:1fr}.app-shell .lesson-plan-fields .field:first-child{grid-column:auto}}.student-pass-disclosure{margin-bottom:24px;overflow:hidden}.student-pass-disclosure>summary{color:#123e7b;cursor:pointer;padding:20px 24px;font-size:17px;font-weight:700}.student-pass-disclosure>summary:focus-visible{outline-offset:-4px;outline:3px solid #eb941d}.student-pass-disclosure .student-pass-panel{border-top:1px solid #d5dfef;padding:24px}@media (max-width:640px){.student-pass-disclosure .student-pass-panel,.student-pass-disclosure>summary{padding:18px}}@media (max-width:1000px){.app-shell .fees-layout,.app-shell .financial-detail-grid,.app-shell .financial-lock-stage{grid-template-columns:minmax(0,1fr)}.app-shell .fee-help{position:static}}.app-shell .field:has(select),.app-shell label:has(>select){overflow-clip-margin:4px;overflow-x:clip}.app-shell select:not([multiple]){appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2216%22 height=%2216%22 viewBox=%220 0 16 16%22 fill=%22none%22 stroke=%22%23153558%22 stroke-width=%221.8%22%3E%3Cpath d=%22m4 6 4 4 4-4%22/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:36px}@media (forced-colors:active){.app-shell select:not([multiple]){appearance:auto;background-image:none}}@media (max-width:620px){.app-shell .table-wrap td[data-label]{overflow-wrap:anywhere;grid-template-columns:minmax(76px,.34fr) minmax(0,1fr);align-items:start;gap:7px 12px}.app-shell .table-wrap td[data-label]:before{font-family:var(--font-sans),sans-serif;text-transform:none;letter-spacing:0;grid-area:1/1;line-height:1.5}.app-shell .table-wrap td[data-label]>*{grid-column:2;min-width:0;max-width:100%}}@media (max-width:820px){:is(.app-shell,.login-page-reference) :is(input,select,textarea){min-width:0;font-size:16px!important}}.login-page-reference.login-page-branding{height:auto;min-height:100svh;overflow-y:auto}.login-page-reference.login-page-branding .login-content{grid-template-rows:auto;grid-template-columns:minmax(0,1.12fr) minmax(360px,1fr);height:auto;min-height:0}.login-page-reference.login-page-branding .login-story{aspect-ratio:1;background:#f4f5f7;min-height:0}.login-page-reference.login-page-branding .login-story-inner{height:100%;min-height:0;padding:0;display:block}.login-page-reference.login-page-branding .login-hero-image{z-index:auto;background:#f4f5f7;width:100%;height:100%;min-height:0;margin:0;position:relative;inset:auto;overflow:hidden}.login-page-reference.login-page-branding .login-hero-image picture{width:100%;height:100%;display:block}.login-page-reference.login-page-branding .login-hero-image img{object-fit:cover;object-position:center;filter:none;width:100%;height:100%;display:block}.login-page-reference.login-page-branding .login-panel{justify-content:center;height:auto;min-height:0;padding:30px clamp(24px,3vw,44px);overflow:visible}@media (max-width:900px){.login-page-reference.login-page-branding{justify-content:flex-start;height:auto;min-height:100svh;padding:10px}.login-page-reference.login-page-branding .login-content{border-radius:18px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);width:100%}.login-page-reference.login-page-branding .login-story{aspect-ratio:1672/941;border-radius:17px 17px 0 0}.login-page-reference.login-page-branding .login-panel{border-radius:0 0 17px 17px;padding:28px clamp(18px,5vw,40px)}.login-page-reference.login-page-branding .login-form-wrap{width:min(100%,460px)}.login-page-reference.login-page-branding .login-legal{width:100%}}@media (max-width:560px){.login-page-reference.login-page-branding{padding:7px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}