@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{--navy:#08294f;--teal:#104e85;--lime:#f0ab26;--paper:#f5f7fb;--muted:#647470;--border:#dde4ee}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;background:var(--paper);color:#193532}button,input,select{font:inherit}button{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:246px;background:var(--navy);color:white;padding:33px 23px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;color:white;text-decoration:none}.brand strong{font-family:Manrope,sans-serif;font-size:20px}.brand small{display:block;color:#b7c9df;font-size:10px;margin-top:5px;font-weight:400}.mark{width:38px;height:43px;background:var(--lime);color:var(--navy);font-size:30px;font-weight:800;border-radius:11px;padding:2px 8px;position:relative}.mark span{font-size:15px;position:absolute;right:4px;top:1px}.navlabel{font-size:10px;letter-spacing:2px;color:#a0b4b0;margin:48px 12px 18px}nav{display:grid;gap:8px}nav button{border:0;background:none;color:#b9ccc6;padding:14px 16px;text-align:left;border-radius:9px;display:flex;gap:14px;font-size:18px}nav button span{font-size:14px}nav button.active{background:#163e68;color:var(--lime)}.asidefoot{margin-top:auto;font-size:12px;color:#d7e1dd}.asidefoot small{display:block;color:#92aaa5;margin:10px 0}.dot{display:inline-block;background:var(--lime);height:7px;width:7px;border-radius:50%;margin-right:5px}main{margin-left:246px;padding:0 40px}header{min-height:85px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);font-size:13px}header>span{font-weight:600}header label{font-size:11px;color:var(--muted);margin-right:10px}input,select{border:1px solid var(--border);border-radius:7px;padding:10px;background:white;color:#193532;max-width:100%}input:focus,select:focus{outline:2px solid #77a99b}.notice{margin-top:24px;background:#fff7e5;border:1px solid #f2deb1;padding:12px 16px;border-radius:7px;font-size:10px;font-weight:700;letter-spacing:1px}.notice span{font-size:12px;letter-spacing:0;font-weight:400;margin-left:10px;color:#52604d}.pagehead{display:flex;align-items:center;justify-content:space-between;margin:32px 0 26px;gap:20px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--teal);font-weight:700}h1{font-family:Manrope,sans-serif;font-size:32px;letter-spacing:-1px;margin:8px 0 8px}p{color:var(--muted);font-size:14px;line-height:1.6;margin:6px 0}h2{font-family:Manrope,sans-serif;font-size:18px;margin:0 0 6px}h3{font-size:14px}.btn{border:1px solid var(--border);border-radius:7px;background:white;color:#23443d;padding:11px 16px;font-size:13px;font-weight:600}.btn.primary{background:var(--teal);color:white;border-color:var(--teal)}.btn.lime{background:var(--lime);border-color:var(--lime)}.btn.danger{color:#a04436}.btn:disabled{opacity:.4;cursor:default}.actions{display:flex;gap:9px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric{background:white;border:1px solid var(--border);border-radius:12px;padding:22px}.metric:first-child{background:var(--teal);color:white;border-color:var(--teal)}.metric .label{font-size:12px}.metric .number{font-family:Manrope,sans-serif;font-size:38px;font-weight:800;margin:10px 0}.metric small{font-size:11px;color:var(--muted)}.metric:first-child small{color:#c7ded7}.grid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:23px}.panel{background:white;border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px}.panelhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.badge{padding:5px 9px;border-radius:5px;font-size:10px;font-weight:600;background:#e9f3ed;color:#26674f;display:inline-block}.badge.warn{background:#fff1d9;color:#9a6408}.badge.gray{background:#edf0ee;color:#65756d}.badge.blue{background:#e9efff;color:#4c62a3}.progress{display:flex;height:18px;overflow:hidden;border-radius:5px;background:#edf1eb;margin:25px 0 15px}.progress span{background:var(--teal)}.legend{display:flex;gap:20px;font-size:12px;margin-bottom:20px}.statline{display:flex;justify-content:space-between;padding:13px 0;border-top:1px solid #edf1eb;font-size:13px}.steps{display:grid;gap:14px;margin-top:22px}.step{display:flex;gap:13px}.step b{background:#fff3d7;color:var(--teal);border-radius:50%;min-width:28px;height:28px;text-align:center;padding:5px}.step strong{font-size:12px}.step p{font-size:11px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:12px;border-bottom:1px solid var(--border);background:#f8faf7}td{padding:14px 12px;border-bottom:1px solid #edf1eb}td small{display:block;color:var(--muted);margin-top:4px}tbody tr:last-child td{border:0}.slot{font-size:14px;font-weight:700}.tabs{display:flex;gap:7px;margin-bottom:22px}.tabs .active{background:var(--teal);color:white}.scanbox{padding:36px;text-align:center;border:2px dashed #c7d7ce;border-radius:12px;background:#f8faff}.scanicon{font-size:42px;color:var(--teal);margin-bottom:10px}.scanform{display:flex;gap:8px;max-width:550px;margin:25px auto 10px}.scanform input{flex:1;min-width:0;padding:16px;font-size:18px}.result{margin-top:20px;background:#edf4fc;padding:24px;border-radius:12px;border-left:5px solid var(--teal)}.result h2{font-size:25px}.result .bigslot{font-family:Manrope,sans-serif;font-weight:800;font-size:54px;color:var(--teal);margin:12px 0}.result.error{background:#fff0e9;border-color:#ba553e}.filterbar{display:flex;gap:10px;margin:20px 0;flex-wrap:wrap}.filterbar input{flex:1}.samplecard{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--border);gap:10px}.samplecard strong{font-size:12px}.samplecard small{display:block;color:var(--muted);font-size:11px;margin-top:5px}code{font-size:11px;background:#f1f5ee;padding:4px 6px;border-radius:3px}.empty{text-align:center;padding:30px;color:var(--muted);font-size:13px}footer{display:flex;justify-content:space-between;color:var(--muted);border-top:1px solid var(--border);padding:24px 0;font-size:11px;margin-top:28px}dialog{border:1px solid var(--border);border-radius:14px;padding:28px;width:480px;max-width:95vw;box-shadow:0 20px 80px #102e3233}dialog::backdrop{background:#102e3266}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:22px 0}.field{display:grid;gap:6px;font-size:12px}.field.wide{grid-column:1/-1}.formerror{color:#a04436;font-size:12px;margin:10px 0}.checklabel{display:flex;gap:10px;align-items:center;font-size:13px;margin:16px 0}#toast{position:fixed;bottom:24px;right:24px;max-width:90vw;background:var(--navy);color:white;padding:14px 20px;border-radius:9px;font-size:13px;display:none}.reporttitle{display:none}.help{font-size:12px}.settings{max-width:700px}.modehint{font-size:11px;color:var(--muted);margin:14px 0}.textlink{border:0;background:none;color:var(--teal);font-size:12px;font-weight:600;padding:4px}
@media(min-width:1450px){main{padding:0 65px}.metrics{gap:22px}}@media(max-width:1000px){aside{width:205px;padding:25px 15px}main{margin-left:205px;padding:0 22px}.brand strong{font-size:17px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.pagehead{align-items:flex-start}.notice span{display:block;margin:6px 0 0}}@media(max-width:650px){aside{position:static;width:auto;padding:18px}.brand{margin-bottom:18px}.navlabel,.asidefoot{display:none}nav{display:flex;gap:5px;overflow:auto}nav button{padding:10px;font-size:0;flex:none}nav button span{font-size:11px}main{margin:0;padding:0 16px}header{min-height:72px;gap:10px}header>span{font-size:11px}header label{display:none}header input{font-size:12px}.pagehead{display:block;margin:25px 0 20px}.pagehead .actions{margin-top:16px}h1{font-size:28px}.metrics{gap:10px}.metric{padding:16px}.metric .number{font-size:32px}.panel{padding:18px}.scanbox{padding:20px 12px}.scanform input{font-size:15px}.samplecard{flex-wrap:wrap}footer span{display:none}.formgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}}
@media print{body{background:white;font-size:10px}aside,header,.notice,footer,.pagehead,.filterbar,.actions,.noprint,#toast{display:none!important}main{margin:0;padding:0}.panel{border:0;padding:0}.reporttitle{display:block;margin:15px 0 25px}.metrics{gap:8px;margin-bottom:20px}.metric{padding:10px;color:#193532!important;background:white!important}.metric .number{font-size:22px}.tablewrap{overflow:visible}table{white-space:normal}th,td{padding:8px 6px}tr{break-inside:avoid}@page{size:landscape;margin:12mm}}
#cameraModal{width:600px}.cameraPreview{position:relative;margin:18px 0;background:#112e32;border-radius:10px;overflow:hidden;aspect-ratio:4/3}.cameraPreview video{display:block;width:100%;height:100%;object-fit:contain}.cameraGuide{position:absolute;inset:32% 8%;border:2px solid #d8ec9c;border-radius:6px;pointer-events:none}#cameraStatus{font-weight:600;color:var(--teal)}

[hidden]{display:none!important}

.brand{display:block;background:white;border-radius:12px;padding:10px}.brand img{display:block;width:100%;height:auto}aside .navlabel{margin-top:24px}nav{gap:3px}nav button{padding:11px 14px}.hero{display:grid;grid-template-columns:1.35fr 1fr;gap:35px;padding:38px 0 25px;align-items:center}.hero h1{font-size:48px;line-height:1.12;max-width:600px;letter-spacing:-1.8px}.hero p{max-width:580px;font-size:16px}.hero .actions{margin-top:24px}.heroart{background:#08294f;border-radius:18px;padding:28px;color:white}.heroart img{width:150px;display:block;margin:0 auto 24px;border-radius:12px}.heroart h2{color:white}.heroart p{color:#bdd0e6}.heroslot{font-size:52px;font-weight:800;margin:12px 0;color:#f0ab26}.herolabel{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#b8cfe9}.featuregrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.featuregrid .panel{margin:0}.featuregrid h2{font-size:17px}.featuregrid p{font-size:13px}.featureicon{font-size:23px;color:var(--teal);margin-bottom:14px}.demoBanner{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.demoBanner .btn{margin-left:auto;font-size:11px;padding:6px 10px}.demoSteps{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.demoSteps span{padding:8px 12px;border-radius:20px;background:#eef2f8;color:#60718a;font-size:11px}.demoSteps .done{background:#e8f3ec;color:#27614b}.demoSteps .current{background:#08294f;color:white}.demoScenario{background:#08294f;color:white;border-radius:12px;padding:26px;margin:20px 0}.demoScenario h2{color:white;font-size:24px}.demoScenario p{color:#c4d5e6;margin-top:10px}.demoScenario .eyebrow{color:#f0ab26}.demoScenario .btn{margin-top:18px}.demoResult{background:#fff5dc;border-left:4px solid #edaa26;border-radius:7px;padding:14px 18px;font-size:13px;margin-top:16px;color:#3f4e63}.readiness{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.reportLogo{width:85px;float:right}.mission{font-size:14px;line-height:1.8}.presentationNote{padding:14px;background:#edf3fb;border-radius:8px;font-size:12px;color:#52657c}
@media(max-width:1000px){.hero h1{font-size:38px}.hero{gap:20px}.featuregrid{grid-template-columns:1fr}.readiness{grid-template-columns:1fr}}
@media(max-width:650px){.brand{width:145px;padding:5px;margin-bottom:12px}.brand img{height:90px;object-fit:contain}.hero{grid-template-columns:1fr;padding-top:24px}.hero h1{font-size:37px}.heroart{padding:24px}.heroart img{width:125px}.demoBanner .btn{margin-left:0}.hero p{font-size:14px}.demoScenario{padding:20px}}
@media print{.demoBanner,.demoSteps{display:none!important}}

/* Readable controls and task-first navigation. */
:root{--muted:#4b5d70}html{font-size:16px}body{color:#142f4b;font-size:1rem}p{font-size:1rem}button,input,select{touch-action:manipulation}button,a.btn,input,select,summary{min-height:48px}.btn{font-size:1rem;line-height:1.4;display:inline-flex;justify-content:center;align-items:center;text-decoration:none;color:#142f4b}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b06800;outline-offset:3px}h1:focus{outline:none}.skiplink{position:fixed;top:-100px;left:12px;z-index:100;background:white;color:#08294f;padding:14px}.skiplink:focus{top:12px}aside{overflow-y:auto;padding:20px 18px}aside .brand img{max-height:150px;object-fit:contain}nav button span{font-size:1rem}nav button{min-height:48px;color:#e1ebf6;font-size:1rem}nav button.active{color:#ffe3a4}.navlabel{font-size:.75rem;margin-bottom:10px}.moretools summary{padding:12px 14px;font-size:1rem;color:#e1ebf6;cursor:pointer}.moretools button{width:100%}.asidefoot{padding-top:20px}.headerControls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}header{gap:14px;padding:14px 0}header>span{font-size:1rem}header label{font-size:.875rem}input,select{font-size:1rem;border-color:#8795a8}.notice{font-size:.875rem;letter-spacing:.3px}.notice span{font-size:.875rem}.help,.modehint,footer,.field,.formerror,.textlink,.statline,.legend{font-size:.9375rem}.textlink{min-height:44px;padding:10px 4px;text-align:left}.metric .label,.metric small{font-size:.9375rem}.metric:first-child small{color:#e8f0fa}.badge{font-size:.875rem}.badge.warn{color:#754a00}.badge.gray{color:#46554e}.badge.blue{color:#314a89}h2,.featuregrid h2{font-size:1.25rem}h3{font-size:1.125rem}.step strong,.step p,.samplecard strong,.samplecard small,.featuregrid p,.presentationNote,.demoResult,.demoSteps span{font-size:.9375rem}table{font-size:1rem}th{font-size:.875rem;letter-spacing:.2px;text-transform:none}td small,code{font-size:.875rem}.checklabel{font-size:1rem}.checklabel input[type=checkbox]{width:24px;height:24px;min-height:24px;flex-shrink:0}.quickstart{margin-top:28px}.quickstart h1{font-size:2rem}.taskgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 8px}.taskcard{position:relative;display:flex;flex-direction:column;gap:9px;padding:22px 42px 22px 20px;background:white;color:#08294f;border:2px solid #a4b6cd;border-radius:12px;text-align:left}.taskcard:hover{background:#edf3fc;border-color:#104e85}.taskcard:first-child{background:#104e85;border-color:#104e85;color:white}.taskcard strong{font-size:1.25rem}.taskcard span{font-size:.9375rem;line-height:1.5}.taskcard b{position:absolute;right:15px;top:25px;font-size:1.25rem}.quickhelp{display:flex;gap:22px;flex-wrap:wrap}.hero{border-top:1px solid var(--border);margin-top:25px}.hero h1{font-size:2.25rem}.hero p{font-size:1rem}.scansteps{padding:0;list-style:none;display:grid;gap:12px;margin:0 0 24px}.scansteps li{display:flex;gap:12px;align-items:center;font-size:1rem}.scansteps b{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#08294f;color:white;flex-shrink:0}.helpsteps{padding-left:24px;line-height:1.65;font-size:1rem}.helpsteps li{margin-bottom:12px}.tabs{flex-wrap:wrap}.tabs .btn{border-width:2px}.tabs .active{border-color:#08294f}.demoBanner .btn{font-size:.9375rem;min-height:44px}.largeText{font-size:1.1875rem}.largeText p,.largeText .btn,.largeText nav button span,.largeText input,.largeText select,.largeText table,.largeText .scansteps li,.largeText .helpsteps{font-size:1.1875rem}.largeText .help,.largeText .badge,.largeText th,.largeText td small,.largeText .taskcard span,.largeText .metric .label,.largeText .metric small{font-size:1.0625rem}
@media(max-width:1000px){.taskgrid{grid-template-columns:1fr}.taskcard{padding:18px 44px 18px 18px}.hero{grid-template-columns:1fr}.heroart{display:none}}
@media(max-width:650px){aside{padding:14px}aside .brand{width:112px;margin-bottom:8px}aside .brand img{height:70px}nav{display:grid;grid-template-columns:1fr 1fr;overflow:visible;gap:6px}nav button{font-size:1rem;padding:10px 12px}nav button span{font-size:.9375rem}.moretools{grid-column:1/-1}.moretools[open]{display:grid;grid-template-columns:1fr 1fr}.moretools summary{grid-column:1/-1}.moretools button{padding-left:12px}header{align-items:flex-start;flex-direction:column}header>span{font-size:1rem}header label{display:inline;font-size:.875rem}header input{font-size:1rem}.headerControls{width:100%;gap:8px}.headerControls label{margin-left:auto;margin-right:0}.notice span{margin-left:0}.scanform{flex-direction:column}.scanform input{font-size:1.125rem}.scanbox{padding:20px 14px}.scanbox .actions{display:grid;grid-template-columns:1fr;width:100%}.scanbox .actions .btn{width:100%}.quickstart h1{font-size:1.75rem}.quickhelp{gap:0}.panelhead{gap:12px;flex-wrap:wrap}.demoSteps span{padding:8px 10px}.hero p{font-size:1rem}.metric small{font-size:.875rem}.largeText nav button span{font-size:1.0625rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.quickstart,.skiplink,.scansteps{display:none!important}html{font-size:12px}.btn,.textlink{min-height:0}th,td{font-size:10px}.metric .label,.metric small{font-size:10px}}

#loginPanel{display:none;max-width:540px;margin:35px auto;padding:20px}.schoolLocked #loginPanel{display:block}.schoolLocked aside,.schoolLocked main,.schoolLocked .skiplink,.schoolLocked #toast{display:none}.loginLogo{display:block;width:160px;margin:0 auto 25px}.loginCard{background:white;border:1px solid var(--border);padding:28px;border-radius:14px}.loginCard .field{margin:20px 0}.loginCard .btn{width:100%}#loginMessage{margin-top:18px;font-weight:600;color:#8b302a}#accountName{font-size:.9375rem}#schoolSignOut{white-space:nowrap}
