:root{font-family:Georgia,'Times New Roman',serif;color:#102a43;background:#f6f4ee;--navy:#102a43;--blue:#1769aa;--gold:#d4a72c;--paper:#fffdf8}*{box-sizing:border-box}body{margin:0;min-width:320px}.login-page{min-height:100vh;max-width:760px;margin:auto;padding:40px 20px;display:flex;flex-direction:column;justify-content:center}.login-page.dashboard-active{max-width:none;margin:0;padding:0;display:block;min-height:0}.login-brand{text-align:center;margin-bottom:32px}.login-brand .logo-frame{width:clamp(86px,22vw,128px);height:auto;aspect-ratio:232 / 321;margin:0 auto 20px}.login-brand h1{font-size:30px;margin:0 0 10px}.logo-frame{width:58px;height:58px;background:#fff;display:grid;place-items:center;overflow:hidden}.logo-frame img{display:block;width:100%;height:100%;object-fit:contain}.portal-grid{display:grid;gap:14px}.portal-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;text-align:left;padding:20px;border:1px solid #e9e2d2;border-radius:8px;background:var(--paper);color:var(--navy);cursor:pointer;box-shadow:0 5px 20px #102a4308}.portal-card:hover,.portal-card:focus{border-color:var(--gold);outline:3px solid #d4a72c33}.portal-card strong,.portal-card small{display:block}.portal-card small{font:12px Arial,sans-serif;color:#63788a;margin-top:5px}.portal-icon{font-size:25px;color:var(--gold)}.login-form{background:var(--paper);border:1px solid #e9e2d2;border-radius:8px;padding:22px;box-shadow:0 5px 20px #102a4308}.login-form label{display:block;font:12px Arial,sans-serif;color:#63788a;margin:15px 0}.login-form input{display:block;width:100%;margin-top:7px;border:1px solid #cbd5df;border-radius:5px;padding:12px;font-size:16px}.primary-button{width:100%;border:0;border-radius:5px;padding:13px;background:var(--navy);color:#fff;font-weight:bold;cursor:pointer}.admission-button{display:block;width:100%;margin-top:10px;border-radius:5px;padding:13px;background:var(--gold);color:var(--navy);font-weight:bold;text-align:center;text-decoration:none;cursor:pointer}.admission-button:hover,.admission-button:focus{background:#f3cc4d;outline:3px solid #d4a72c55;outline-offset:2px}.text-button{border:0;background:transparent;color:var(--blue);cursor:pointer;padding:10px 0}.error{color:#a12b2b;font:13px Arial,sans-serif}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:white;padding:24px 16px;z-index:3}.brand{display:flex;gap:10px;align-items:center;padding:8px 8px 28px;border-bottom:1px solid #ffffff2b}.brand strong,.brand small{display:block}.brand strong{font-size:14px;letter-spacing:.08em}.brand small{color:#d8e4ed;font:10px Arial,sans-serif;margin-top:4px}.sidebar nav{padding-top:18px}.sidebar nav h4{color:#9eb6c9;font:10px Arial,sans-serif;letter-spacing:.12em;margin:16px 8px 7px}.sidebar nav a{display:block;color:#fff;text-decoration:none;padding:10px 8px;border-radius:5px;font-size:15px}.sidebar nav a:hover{background:#ffffff18}.workspace{margin-left:250px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:28px 20px 16px}.eyebrow{font:10px Arial,sans-serif;letter-spacing:.14em;color:var(--blue);margin:0 0 7px;font-weight:bold}h1,h2,h3,p{margin-top:0}.muted{color:#63788a;font-family:Arial,sans-serif;font-size:13px;line-height:1.5}.hero{margin:16px 20px;padding:28px 22px;background:var(--paper);border:1px solid #e9e2d2;border-radius:8px;box-shadow:0 5px 20px #102a4308}.hero h3{font-size:25px}.children{display:grid;gap:10px;margin-top:20px}.child-card{padding:16px;border-left:4px solid var(--gold);background:#f6f4ee}.child-card strong,.child-card span{display:block}.child-card span{font:12px Arial,sans-serif;color:#63788a;margin-top:5px}@media(min-width:760px){.login-page{padding:60px 30px}.portal-grid{grid-template-columns:1fr 1fr}.hero{margin-left:42px;margin-right:42px;padding:42px}.topbar{padding:36px 42px 20px}}
.form-page{max-width:760px;margin:auto;padding:24px 20px 48px}.form-page h1{font-size:30px}.student-form{display:grid;gap:14px}.student-form fieldset{border:1px solid #e9e2d2;border-radius:8px;background:var(--paper);padding:16px}.student-form legend{font-weight:bold;padding:0 6px}.student-form label{display:block;font:12px Arial,sans-serif;color:#63788a;margin:13px 0}.student-form input,.student-form select,.student-form textarea{display:block;width:100%;margin-top:6px;border:1px solid #cbd5df;border-radius:5px;padding:11px;font:16px Arial,sans-serif}.student-form textarea{min-height:76px}.workflow{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-left:22px;margin:20px 0 26px;font:13px Arial,sans-serif}.workflow li::marker{color:var(--gold);font-weight:bold}@media(min-width:760px){.form-page{padding:48px 30px}.workflow{grid-template-columns:repeat(3,1fr)}}
.attendance-row{display:grid!important;grid-template-columns:1fr 1fr;align-items:center;gap:10px}.attendance-row select{margin-top:0}.attendance-summary{margin-top:20px}.attendance-summary strong{display:block;font-size:28px;margin:8px 0}
.score-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:18px}.report-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:22px 0}.report-grid span{display:block;color:#63788a;font:12px Arial,sans-serif;margin-top:6px}@media(min-width:760px){.score-grid{grid-template-columns:1fr 1fr 1fr}.report-grid{grid-template-columns:1fr 1fr}}
.balance-card{display:grid;gap:8px;background:var(--navy);color:#fff;border-radius:8px;padding:24px;margin:22px 0}.balance-card span,.balance-card small{font:12px Arial,sans-serif;color:#d8e4ed}.balance-card strong{font-size:32px;color:#f3cc4d}
.child-switcher{display:block;font:12px Arial,sans-serif;color:#63788a;margin:20px 0}.child-switcher select{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #cbd5df;border-radius:5px;font-size:16px}.parent-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.parent-card{display:block;text-decoration:none;color:var(--navy);background:#f6f4ee;border-radius:6px;padding:14px;min-height:76px}.parent-card strong,.parent-card span{display:block}.parent-card span{font:11px Arial,sans-serif;color:#63788a;margin-top:6px}
.ops-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:22px 0}.ops-grid .card{min-height:92px}.ops-grid span{display:block;color:#63788a;font:12px Arial,sans-serif;margin-top:7px}@media(min-width:760px){.ops-grid{grid-template-columns:repeat(3,1fr)}}
.public-site{max-width:1100px;margin:auto;padding:20px}.site-header{display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--gold);padding-bottom:18px}.site-header img{width:76px;height:76px;object-fit:contain}.site-header h1{font-size:24px;margin:4px 0}.site-nav{display:flex;gap:8px;overflow-x:auto;padding:16px 0;white-space:nowrap}.site-nav a{color:var(--navy);font-weight:700;text-decoration:none;padding:8px 10px}.site-hero{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:30px 22px;border-radius:8px}.site-hero h2{font-size:30px;max-width:620px;margin:8px 0}.site-hero p:not(.eyebrow){max-width:580px;color:#e8f0f7}.site-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.site-actions a{text-decoration:none}.site-actions .secondary-button{display:inline-block;border:1px solid var(--gold);border-radius:5px;padding:12px 16px;color:#fff}.site-sections{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}.site-sections article{background:#f6f4ee;padding:20px;border-radius:7px;scroll-margin-top:15px}.site-sections h2{margin-top:0}@media(min-width:760px){.public-site{padding:32px}.site-sections{grid-template-columns:1fr 1fr}.site-hero{padding:52px}.site-header img{width:92px;height:92px}}
@media(max-width:759px){.sidebar{position:static;width:100%;padding:12px}.brand{padding:4px 4px 12px}.sidebar nav{display:block;max-height:60vh;overflow-y:auto;padding:10px 0}.sidebar nav h4{display:block;margin:14px 8px 6px}.sidebar nav a{white-space:normal;padding:11px 12px;min-height:44px;background:#ffffff12}.sidebar nav .sidebar-child{padding-left:28px}.workspace{margin-left:0}.topbar{padding:20px 16px 10px}.hero{margin:12px 16px;padding:22px 16px}.parent-card,.portal-card,.primary-button,.text-button{min-height:44px}.report-grid,.score-grid{overflow-x:auto}.site-nav a{min-height:44px}.connection-status{font:11px Arial,sans-serif;text-align:center;color:#63788a;margin:18px 0}}
.card{background:var(--paper);border:1px solid #e9e2d2;border-radius:8px;padding:18px;margin:18px 0}.card h2{margin-top:0}.stack-form{display:grid;gap:12px}.stack-form label{display:block;font:12px Arial,sans-serif;color:#63788a}.stack-form input{display:block;width:100%;margin-top:6px;border:1px solid #cbd5df;border-radius:5px;padding:11px;font:16px Arial,sans-serif}.responsive-table{width:100%;overflow-x:auto}.responsive-table table{width:100%;min-width:680px;border-collapse:collapse;font:13px Arial,sans-serif}.responsive-table th,.responsive-table td{text-align:left;padding:12px 10px;border-bottom:1px solid #e9e2d2;white-space:nowrap}.responsive-table th{color:#63788a;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#e8f0f7;color:var(--navy);font-size:11px;font-weight:bold}
.ai-assistant{max-width:900px}.ai-assistant-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ai-suggestions{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px}.ai-suggestion{flex:0 0 auto;max-width:280px;min-height:44px;border:1px solid #cbd5df;border-radius:999px;background:#fff;color:var(--navy);padding:9px 14px;white-space:normal;cursor:pointer}.ai-suggestion:focus,.ai-suggestion:hover{border-color:var(--gold);outline:2px solid #d4a72c44}.ai-messages{display:grid;gap:10px;max-height:380px;overflow-y:auto;overscroll-behavior:contain;padding:12px;background:#f6f4ee;border-radius:7px}.ai-message{max-width:92%;padding:12px;border-radius:7px;background:#fff;font:14px Arial,sans-serif;line-height:1.5}.ai-message p{margin:5px 0 0}.ai-message-user{justify-self:end;background:#e8f0f7}.ai-message-error{border-left:4px solid #a12b2b}.ai-form{margin-top:14px}.ai-form label{display:block;font:12px Arial,sans-serif;color:#63788a}.ai-form textarea{display:block;width:100%;resize:vertical;max-height:160px;margin:7px 0 10px;border:1px solid #cbd5df;border-radius:5px;padding:12px;font:16px Arial,sans-serif}.ai-form .primary-button{max-width:180px}.ai-quality{font-weight:bold}.ai-quality-complete{color:#246b3b}.ai-quality-partial,.ai-quality-stale,.ai-quality-unavailable,.ai-quality-invalid{color:#8a4b08}.ai-facts{display:grid;gap:8px}.ai-facts pre{max-width:100%;overflow:auto;padding:10px;background:#f6f4ee;border:1px solid #e9e2d2;border-radius:5px;white-space:pre-wrap;word-break:break-word}.ai-reporting-period{font-size:12px;color:#4d6476}.ai-warnings{margin-top:10px;padding:10px;border-left:4px solid var(--gold);background:#fff8df}.ai-warnings ul{margin:7px 0 0;padding-left:20px}
@media(max-width:759px){.ai-assistant-header{display:block}.ai-assistant-header .text-button{width:100%;text-align:left}.ai-messages{max-height:50vh}.ai-message{max-width:100%}.ai-form .primary-button{max-width:none}.ai-suggestion{max-width:240px}}
.financial-intelligence{max-width:1100px}.financial-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.financial-heading h3{margin:0}.financial-quality{padding:6px 10px;border-radius:999px;background:#e8f0f7;font:700 11px Arial,sans-serif}.financial-quality[data-quality="COMPLETE"]{background:#dff3e5;color:#246b3b}.financial-quality:not([data-quality="COMPLETE"]){background:#fff0d2;color:#8a4b08}.financial-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.financial-metric{padding:14px;border:1px solid #e9e2d2;border-radius:7px;background:#fff}.financial-metric span,.financial-metric strong{display:block}.financial-metric span{font:11px Arial,sans-serif;color:#63788a}.financial-metric strong{margin-top:7px;font-size:20px;color:var(--navy);overflow-wrap:anywhere}.financial-warning{margin-top:12px;padding-left:10px;border-left:4px solid var(--gold)}.financial-warning:empty{display:none}.financial-explanation{margin-top:16px;padding-top:12px;border-top:1px solid #e9e2d2}.financial-explanation p{margin-bottom:0}@media(max-width:759px){.financial-metrics{grid-template-columns:1fr 1fr}.financial-metric strong{font-size:17px}.financial-heading{align-items:flex-start}.financial-intelligence{overflow:hidden}}
.learning-intelligence{max-width:1100px}.learning-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.learning-metric{padding:13px;background:#fff;border:1px solid #e9e2d2;border-radius:7px}.learning-metric span,.learning-metric strong{display:block}.learning-metric span{font:11px Arial,sans-serif;color:#63788a}.learning-metric strong{margin-top:6px;font-size:19px;color:var(--navy)}.learning-warning:not(:empty){margin:12px 0;padding:10px;border-left:4px solid var(--gold);background:#fff8df}@media(max-width:759px){.learning-metrics{grid-template-columns:1fr 1fr}}
.people-intelligence{max-width:1100px}.people-panel{margin:14px 0;padding-top:10px;border-top:1px solid #e9e2d2}.people-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.people-metric{padding:13px;background:#fff;border:1px solid #e9e2d2;border-radius:7px}.people-metric span,.people-metric strong{display:block}.people-metric span{font:11px Arial,sans-serif;color:#63788a}.people-metric strong{margin-top:6px;font-size:19px;color:var(--navy)}.people-warning{margin:12px 0;padding:10px;border-left:4px solid var(--gold);background:#fff8df}@media(max-width:759px){.people-metrics{grid-template-columns:1fr 1fr}}
.operational-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.operational-card{border:1px solid #e9e2d2;border-radius:14px;padding:1rem;background:#fff}.operational-card h4{text-transform:capitalize}.operational-metric{padding:.35rem 0;border-bottom:1px solid #eef2f6}@media(max-width:640px){.operational-cards{grid-template-columns:1fr}.operational-intelligence{max-height:70vh;overflow:auto}}
.executive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.executive-card{padding:1rem;border:1px solid #e9e2d2;border-radius:12px;background:#fff}.executive-card h4{text-transform:capitalize}.executive-metric{padding:.3rem 0;border-bottom:1px solid #eef2f6}.executive-quality{font-weight:700}.quality-partial,.quality-stale,.quality-unavailable,.quality-invalid{color:#9a5a00}@media(max-width:640px){.executive-grid{grid-template-columns:1fr}.executive-intelligence{max-height:75vh;overflow:auto}}
.action-statuses{margin:.75rem 0;color:#526777}.action-review-list{display:grid;gap:.8rem}.action-review-card{padding:1rem;border:1px solid #e9e2d2;border-radius:12px;background:#fff}.action-review-card p{white-space:pre-wrap}.action-review-card button{margin-top:.8rem}@media(max-width:640px){.ai-action-review{max-height:75vh;overflow:auto}.action-review-card button{width:100%;min-height:44px}}
.ai-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:1rem 0}.ai-health-card{display:grid;gap:.4rem;padding:.85rem;border:1px solid #e9e2d2;border-radius:10px;background:#fff}.health-healthy{color:#176b3a}.health-degraded{color:#9a5a00}.health-unavailable{color:#9b2c2c}@media(max-width:640px){.ai-health-grid{grid-template-columns:1fr 1fr}.ai-administration{max-height:75vh;overflow:auto}}
.sidebar{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.sidebar .brand{flex:0 0 auto}.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
@media(max-width:759px){.sidebar{height:auto;max-height:100dvh;overflow:hidden}.sidebar nav{flex:none;max-height:60dvh;touch-action:pan-y}}
[hidden]{display:none!important}
.password-field{position:relative;margin-top:7px}
.login-form .password-field input{margin-top:0;padding-right:46px}
.password-toggle{position:absolute;top:50%;right:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:5px;background:transparent;color:#6f617b;cursor:pointer;transform:translateY(-50%)}
.password-toggle:hover,.password-toggle:focus-visible{background:#102a430d;color:var(--navy);outline:3px solid #d4a72c55;outline-offset:1px}
.password-toggle-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.password-toggle:active{transform:translateY(-50%) scale(.96)}
.sidebar-menu-button{display:none}.sidebar-backdrop{display:none}.sidebar-direct{margin:6px 0}.sidebar-group{border-top:1px solid #ffffff14}.sidebar-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;color:#43a047;padding:14px 8px 9px;font:700 10px Arial,sans-serif;letter-spacing:.12em;text-align:left;cursor:pointer}.sidebar-group-toggle:hover,.sidebar-group-toggle:focus-visible{background:#ffffff12;outline:2px solid #43a04788;outline-offset:-2px}.sidebar-chevron{font-size:15px;transition:transform .2s ease}.sidebar-group-toggle[aria-expanded="true"] .sidebar-chevron{transform:rotate(180deg)}.sidebar-group-items{display:grid;gap:2px;padding:0 0 7px}.sidebar-link{display:flex!important;align-items:center;gap:10px;min-height:42px}.sidebar-child{padding-left:18px!important;font:13px Arial,sans-serif!important}.sidebar-icon{width:20px;flex:0 0 20px;text-align:center;color:#f3cc4d}.sidebar-link.active{background:#fff!important;color:#102a43!important;font-weight:700;box-shadow:inset 4px 0 #c62828}.sidebar-link.active .sidebar-icon{color:#c62828}.sidebar nav{scrollbar-color:#ef5350 #ffffff10}.sidebar nav::-webkit-scrollbar{width:7px}.sidebar nav::-webkit-scrollbar-thumb{background:#ef5350;border-radius:10px}
@media(max-width:759px){.sidebar-menu-button{display:block;position:fixed;z-index:5;top:12px;left:12px;border:0;border-radius:6px;padding:11px 14px;background:#102a43;color:#fff;font-weight:700;box-shadow:0 4px 15px #102a4344}.sidebar{position:fixed;inset:0 auto 0 0;width:min(88vw,320px);height:100dvh;max-height:none;transform:translateX(-105%);transition:transform .22s ease;padding:16px;box-shadow:8px 0 28px #0005}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .sidebar-menu-button{left:min(calc(88vw - 92px),228px)}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:2;background:#07131f99}.sidebar nav{flex:1;max-height:none}.workspace{padding-top:54px}.topbar{align-items:flex-start}.topbar .text-button{min-height:44px}.sidebar-child{padding-left:22px!important}}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-chevron{transition:none}}
.sidebar-chevron{transition:transform .2s ease}
@media(prefers-reduced-motion:reduce){.sidebar-chevron{transition:none}}
.route-context{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.module-workspace{min-height:calc(100vh - 88px);background:#f6f8fb;position:relative}.module-frame{display:block;width:100%;min-height:calc(100vh - 88px);border:0;background:#fff}.module-status{margin:2rem;padding:1.25rem;border-radius:.75rem;background:#fff;color:#52606d;box-shadow:0 1px 4px #102a431a}.module-status.error{color:#b42318;border:1px solid #fecdca;background:#fffbfa}
@media(max-width:760px){.module-workspace,.module-frame{min-height:calc(100vh - 64px)}.module-status{margin:1rem}}
/* System-wide mobile-first responsive presentation layer. */
html{max-width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{width:100%;max-width:100%;overflow-wrap:anywhere}img,svg,canvas,video{max-width:100%;height:auto}button,input,select,textarea{max-width:100%;font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,[role="button"],input:not([type="hidden"]),select{min-height:44px}textarea{min-height:88px;resize:vertical}.workspace,.module-workspace,.hero,.card,.form-page,.public-site{min-width:0}.form-page{width:100%;max-width:1180px}.card{max-width:100%;overflow-wrap:anywhere}.form-grid,.stacked-form,.student-form form,#result-context{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.form-grid>*,.stacked-form>*,#result-context>*{min-width:0}.form-grid label,.stacked-form label,#result-context label{display:block;font:12px Arial,sans-serif;color:#63788a}.form-grid input,.form-grid select,.form-grid textarea,.stacked-form input,.stacked-form select,.stacked-form textarea,#result-context input,#result-context select,#result-context textarea{display:block;width:100%;margin-top:6px;border:1px solid #cbd5df;border-radius:6px;padding:11px;font:16px Arial,sans-serif;background:#fff;color:var(--navy)}.button-row,.toolbar,.section-heading,.receipt-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.section-heading{justify-content:space-between}.button-row>* ,.toolbar>* ,.section-heading>button{flex:1 1 160px}.secondary-button{min-height:44px;border:1px solid var(--navy);border-radius:5px;padding:11px 14px;background:#fff;color:var(--navy);font-weight:700;cursor:pointer}
.table-wrap,.table-scroll,.responsive-table{position:relative;display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;border:1px solid #dfe7ef;border-radius:8px;background:#fff;scrollbar-gutter:stable}.table-wrap table,.table-scroll table,.responsive-table table,.card>table{width:100%;min-width:680px;border-collapse:separate;border-spacing:0;font:13px Arial,sans-serif}.card>table{display:block;max-width:100%;overflow-x:auto}.table-wrap th,.table-scroll th,.responsive-table th,.card>table th{position:sticky;top:0;z-index:1;background:#edf3f8;color:#445d70;font-size:11px;letter-spacing:.04em;text-align:left;text-transform:uppercase}.table-wrap th,.table-wrap td,.table-scroll th,.table-scroll td,.responsive-table th,.responsive-table td,.card>table th,.card>table td{padding:11px 10px;border-bottom:1px solid #e5ebf0;vertical-align:middle;white-space:nowrap}.table-wrap tbody tr:nth-child(even),.table-scroll tbody tr:nth-child(even),.responsive-table tbody tr:nth-child(even){background:#fbfcfd}.table-wrap tbody tr:focus-within,.table-scroll tbody tr:focus-within,.responsive-table tbody tr:focus-within{background:#fff8df}.table-wrap input,.table-wrap select,.table-scroll input,.table-scroll select,.responsive-table input,.responsive-table select,.card>table input,.card>table select{width:auto;min-width:76px;min-height:44px;margin:0;padding:8px;border:1px solid #b8c6d1;border-radius:5px;background:#fff;font:16px Arial,sans-serif}.table-wrap td:first-child,.table-scroll td:first-child,.responsive-table td:first-child,.table-wrap th:first-child,.table-scroll th:first-child,.responsive-table th:first-child{position:sticky;left:0;z-index:2;background:inherit;box-shadow:1px 0 #dfe7ef}.table-wrap th:first-child,.table-scroll th:first-child,.responsive-table th:first-child{z-index:3;background:#edf3f8}
dialog,[role="dialog"],.modal,.modal-content{max-width:min(92vw,760px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}.modal{inset:0;padding:16px}.modal-content{width:100%;margin:auto}.result-slip{width:min(100%,820px);max-width:820px;margin:18px auto;padding:clamp(12px,3vw,28px);overflow:visible;background:#fff;color:#102a43;box-shadow:0 8px 30px #102a4318}.result-slip .result-header{display:block;width:100%;height:auto;object-fit:contain}.result-slip .table-scroll{overflow:visible;border-color:#102a43;border-radius:0}.result-slip table{width:100%;min-width:0;table-layout:fixed}.result-slip table{display:table;max-width:100%;overflow-wrap:anywhere}.result-slip th,.result-slip td{position:static!important;padding:clamp(4px,1.4vw,9px);white-space:normal;overflow-wrap:anywhere;word-break:break-word;box-shadow:none!important}.result-slip .result-signatures{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:18px;margin-top:24px;text-align:center}.result-slip .result-signatures img{display:block;max-width:120px;max-height:54px;margin:auto;object-fit:contain}.result-slip .result-signatures span{display:block;margin-top:5px;font-size:11px}
@media(max-width:479px){body{min-width:0}.login-page,.form-page,.public-site{padding-left:12px;padding-right:12px}.topbar{flex-direction:column;align-items:stretch}.topbar>*{max-width:100%}.hero,.card{margin:12px 0;padding:14px}.hero h3,.form-page h1{font-size:clamp(23px,8vw,30px)}.portal-card{grid-template-columns:auto minmax(0,1fr);padding:14px}.portal-card>:last-child{grid-column:2}.parent-card-grid,.financial-metrics,.learning-metrics,.people-metrics,.ai-health-grid{grid-template-columns:minmax(0,1fr)}.button-row>* ,.toolbar>* ,.section-heading>button{flex-basis:100%;width:100%}.section-heading{align-items:stretch}.attendance-row{grid-template-columns:minmax(0,1fr)!important}.table-wrap,.table-scroll,.responsive-table{margin-inline:0}.table-wrap th,.table-wrap td,.table-scroll th,.table-scroll td,.responsive-table th,.responsive-table td,.card>table th,.card>table td{padding:9px 8px}.result-slip{margin:10px auto;padding:8px;font-size:11px;box-shadow:none}.result-slip h2{font-size:17px;text-align:center}.result-slip p{font-size:10px;line-height:1.35}.result-slip .slip-meta,.result-slip .slip-summary,.result-slip .slip-assessment,.result-slip .slip-attendance{grid-template-columns:1fr}.result-slip .result-actions{display:grid;grid-template-columns:1fr;gap:8px}.result-slip .result-actions button{width:100%}.result-slip table{font-size:9px}.result-slip th,.result-slip td{padding:3px 2px}.result-slip .result-signatures{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.result-slip .result-signatures img{max-width:76px;max-height:36px}}
@media(min-width:600px){.form-grid,#result-context{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>button,#result-context>button{align-self:end}.stacked-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:900px){.form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-form{grid-template-columns:repeat(2,minmax(0,1fr))}.student-form fieldset,.student-form>.button-row,.student-form>button{grid-column:1/-1}.primary-button{width:auto;min-width:150px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.card-grid>.card{margin:0}}
@media print{html,body{overflow:visible!important;background:#fff!important}.sidebar,.sidebar-menu-button,.sidebar-backdrop,.topbar,.no-print{display:none!important}.workspace{margin:0!important;padding:0!important}.form-page{max-width:none!important;padding:0!important}.result-slip{width:190mm!important;max-width:190mm!important;margin:0 auto!important;padding:8mm!important;overflow:visible!important;box-shadow:none!important;font-size:initial!important}.result-slip h2{font-size:initial!important}.result-slip p{font-size:initial!important}.result-slip table{font-size:initial!important;table-layout:auto!important}.result-slip th,.result-slip td{padding:initial!important}.result-slip .result-signatures{gap:18px!important;margin-top:24px!important}.result-slip .result-signatures img{max-width:120px!important;max-height:54px!important}.table-wrap,.table-scroll,.responsive-table{overflow:visible!important;border:0!important}.table-wrap table,.table-scroll table,.responsive-table table{min-width:0!important}@page{size:A4 portrait;margin:10mm}}

/* The fixed desktop sidebar and its content outlet share one width contract. */
.app-shell{--sidebar-width:250px;min-height:100vh}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width)}.workspace{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));max-width:calc(100% - var(--sidebar-width));min-width:0}
@media(max-width:759px){.workspace{margin-left:0;width:100%;max-width:100%}}

.score-entry-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;align-items:end}.score-entry-controls label{min-width:0}.score-entry-controls select,.score-entry-controls input{width:100%;min-width:0}.score-entry-controls button{min-height:44px;white-space:nowrap}.score-grid td input{box-sizing:border-box;width:min(100%,110px);min-width:70px}.score-grid td:first-child{white-space:nowrap}.score-grid td:nth-child(2){min-width:140px}.score-grid{max-width:100%;overflow-x:auto}.score-entry-controls select:disabled{background:#eef2f6;color:#64748b}.score-entry-controls+ p[role=status]{min-height:1.25em;margin-bottom:0}
@media(max-width:599px){.score-entry-controls{grid-template-columns:minmax(0,1fr)}.score-entry-controls button{width:100%}.score-grid table{min-width:760px}}

/* Part 6A: academic result surfaces use fluid controls and readable narrow-screen cards. */
.broadsheet-output{min-width:0;overflow:hidden}.broadsheet-output .gender-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.broadsheet-output .gender-summary span{min-width:0;overflow-wrap:anywhere}.broadsheet-output .table-scroll{max-width:100%;overflow-x:auto}.broadsheet-output table{min-width:980px}.broadsheet-output .broadsheet-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.broadsheet-output .broadsheet-actions>*{flex:1 1 150px}.score-grid{min-width:0}.score-grid table,.mock-score-grid table{min-width:0}.score-grid td,.mock-score-grid td{overflow-wrap:anywhere}.score-grid td input,.mock-score-grid td input{width:100%;max-width:9rem}.mock-score-grid td:last-child{min-width:150px}.mock-score-grid .save{margin-left:.35rem}
@media(max-width:599px){.broadsheet-output .gender-summary{grid-template-columns:1fr}.broadsheet-output .broadsheet-actions{display:grid;grid-template-columns:1fr}.broadsheet-output .broadsheet-actions>*{width:100%}.score-grid,.mock-score-grid{overflow:visible;border:0;background:transparent}.score-grid table,.mock-score-grid table{display:block;min-width:0}.score-grid thead,.mock-score-grid thead{display:none}.score-grid tbody,.mock-score-grid tbody{display:grid;gap:.75rem}.score-grid tr,.mock-score-grid tr{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.75rem;border:1px solid #dfe7ef;border-radius:8px;background:#fff;box-shadow:0 1px 4px #102a4312}.score-grid tr>td,.mock-score-grid tr>td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:.5rem;min-width:0;padding:.25rem;border:0;white-space:normal}.score-grid tr>td::before,.mock-score-grid tr>td::before{content:attr(data-label);font:700 10px Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#63788a}.score-grid tr>td:first-child,.score-grid tr>td:nth-child(2),.mock-score-grid tr>td:first-child,.mock-score-grid tr>td:nth-child(2){grid-column:1/-1}.score-grid tr>td:first-child,.mock-score-grid tr>td:first-child{font-weight:700}.score-grid tr>td[colspan],.mock-score-grid tr>td[colspan]{display:block;grid-column:1/-1}.score-grid tr>td[colspan]::before,.mock-score-grid tr>td[colspan]::before{content:none}.score-grid td input,.mock-score-grid td input{max-width:none}.mock-score-grid td:last-child{min-width:0}}
@media print{.broadsheet-output .broadsheet-actions{display:none}.broadsheet-output .table-scroll{overflow:visible;border:0}.broadsheet-output table{min-width:0;font-size:9pt}.broadsheet-output th,.broadsheet-output td{white-space:normal;padding:5px}.score-grid thead,.mock-score-grid thead{display:table-header-group}.score-grid table,.mock-score-grid table{display:table;min-width:0}.score-grid tr,.mock-score-grid tr{display:table-row;box-shadow:none;border:0}.score-grid td,.mock-score-grid td{display:table-cell}.score-grid td::before,.mock-score-grid td::before{content:none!important}}
/* Part 1: Today's Attendance keeps the desktop table and provides readable mobile cards. */
.attendance-page .attendance-table-wrap{width:100%;overflow-x:auto}.attendance-page .attendance-table-wrap table{min-width:900px}.attendance-page .attendance-mobile-cards{display:none}.attendance-card{display:grid;gap:12px;padding:16px;border:1px solid #dfe7ef;border-radius:10px;background:#fff;box-shadow:0 2px 8px #102a4312}.attendance-card+.attendance-card{margin-top:12px}.attendance-card header{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border-bottom:1px solid #e5ebf0;padding-bottom:10px}.attendance-card header span{font:700 10px Arial,sans-serif;color:#8a4b08}.attendance-card dl{display:grid;gap:8px;margin:0}.attendance-card dl div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px}.attendance-card dt{font:700 10px Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#63788a}.attendance-card dd{margin:0;font:16px Arial,sans-serif;overflow-wrap:anywhere}.attendance-card label{display:grid;gap:5px;margin:0;font:700 11px Arial,sans-serif;color:#63788a}.attendance-card input,.attendance-card select{width:100%;min-height:44px;margin:0}.attendance-empty{padding:12px;margin:0;background:#fff;border:1px solid #dfe7ef;border-radius:8px}
@media(max-width:767px){.attendance-page{padding-left:12px;padding-right:12px}.attendance-page .attendance-table-wrap{display:none}.attendance-page .attendance-mobile-cards{display:block}.attendance-page fieldset{padding:12px}.attendance-page .primary-button{position:sticky;bottom:12px;z-index:1;box-shadow:0 4px 14px #102a4344}.attendance-card .attendance-reason[hidden],.attendance-card .attendance-arrival[hidden],.attendance-card .attendance-departure[hidden]{display:none}.attendance-card dd{word-break:normal;overflow-wrap:anywhere}}


/* Result-management actions stay outside the slip so their layout never changes the protected result display. */
.result-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;max-width:100%;min-width:0}
.result-actions>*{min-width:0;max-width:100%}
.result-actions button{white-space:nowrap}
@media(max-width:759px){.result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;justify-content:stretch}.result-actions>*{width:100%}.result-actions .badge{display:flex;align-items:center;justify-content:center;min-height:44px}}
@media(max-width:380px){.result-actions{grid-template-columns:minmax(0,1fr)}}

/* Part 3A: targeted mobile containment for forms, official slips, finance and dialogs. */
.result-slip-page>.card{width:100%;min-width:0}.result-slip-page .no-print{max-width:100%}
#result-context{min-width:0}.result-slip-page #result-context label{min-width:0;overflow-wrap:anywhere}.result-slip-page #result-context input[type=checkbox]{width:1.25rem;min-width:1.25rem;flex:0 0 auto;margin:0}.result-slip-page #result-context label:has(input[type=checkbox]){display:flex;align-items:center;gap:.5rem;min-height:44px}.result-slip-page #result-context button{width:100%;min-width:0}
.result-slip{container-type:inline-size;isolation:isolate}.result-slip .slip-header,.result-slip .slip-meta,.result-slip .slip-table,.result-slip .slip-summary,.result-slip .slip-assessment,.result-slip .slip-attendance,.result-slip .signature-grid{min-width:0;max-width:100%}.result-slip .slip-logo{max-width:100%;height:auto}.result-slip .slip-table{table-layout:fixed}.result-slip .slip-table th,.result-slip .slip-table td{overflow-wrap:anywhere;word-break:break-word}
@container (max-width:600px){.result-slip{font-size:clamp(9px,2.6cqw,16px);line-height:1.25}.result-slip .slip-header h2{font-size:clamp(1rem,5cqw,1.45rem)}.result-slip .slip-meta,.result-slip .slip-summary,.result-slip .slip-assessment,.result-slip .slip-attendance{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}.result-slip .slip-meta div,.result-slip .slip-summary div,.result-slip .slip-attendance div,.result-slip .assessment-card{padding:.35rem}.result-slip .slip-table{font-size:clamp(.5rem,1.9cqw,.78rem)}.result-slip .slip-table th,.result-slip .slip-table td{padding:clamp(2px,.9cqw,6px) clamp(2px,.7cqw,5px)}}
@container (max-width:380px){.result-slip .slip-meta,.result-slip .slip-summary,.result-slip .slip-assessment,.result-slip .slip-attendance{grid-template-columns:1fr}.result-slip .signature-grid{grid-template-columns:1fr}}
.finance-toolbar{max-width:100%;min-width:0}.finance-toolbar>*{min-width:0}.finance-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.finance-table{min-width:680px}.finance-actions{min-width:0;max-width:100%}.finance-actions>*{min-width:0;overflow-wrap:anywhere}
.profile-header{flex-wrap:wrap}.profile-header>div{min-width:0;flex:1 1 180px}.profile-header h1,.profile-header p{overflow-wrap:anywhere}
dialog{width:min(92vw,760px);margin:auto;padding:0;border:1px solid #cbd5df;border-radius:10px;background:var(--paper);color:var(--navy)}dialog>form{padding:clamp(14px,3vw,24px)}dialog::backdrop{background:#07131f99}
@media(max-width:599px){.finance-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.finance-toolbar label,.finance-toolbar button{width:100%;min-width:0}.result-slip-page{padding-left:8px;padding-right:8px}.result-slip-page>.card{margin-inline:0}.result-slip-page .primary-button{width:100%}}

.promotion-student-fieldset{margin-top:10px}.promotion-student-fieldset details{position:relative}.promotion-student-fieldset summary{cursor:pointer;min-height:44px;padding:12px;border:1px solid #cbd5df;border-radius:5px;background:#fff;font:14px Arial,sans-serif}.promotion-student-list{position:relative;z-index:2;max-height:320px;overflow-y:auto;margin-top:6px;padding:10px;border:1px solid #cbd5df;border-radius:5px;background:#fff;box-shadow:0 5px 18px #102a4320}.promotion-student-list>label,.promotion-student-list #promotion-student-options label{display:flex;align-items:center;gap:9px;margin:8px 0;padding:7px 4px;font:13px Arial,sans-serif;color:var(--navy)}.student-form .promotion-student-list input[type=checkbox]{display:inline-block;width:18px;height:18px;flex:0 0 18px;margin:0;padding:0}.promotion-student-list #promotion-student-options{max-height:220px;overflow-y:auto}.promotion-student-list p{font:13px Arial,sans-serif}

/* Attendance register: keep every control usable without page-level horizontal scrolling. */
.attendance-page{box-sizing:border-box;width:calc(100% - 32px);max-width:1220px;min-width:0}.attendance-page .attendance-table-wrap,.attendance-page .attendance-mobile-cards,.attendance-page .attendance-card,.attendance-page fieldset,.attendance-page label{min-width:0;box-sizing:border-box}.attendance-page input,.attendance-page select,.attendance-page button{max-width:100%;box-sizing:border-box}.attendance-card dl div{min-width:0}.attendance-card dt,.attendance-card dd{min-width:0}.attendance-card dd{overflow-wrap:anywhere}
@media(max-width:1023px){.attendance-page .attendance-table-wrap{display:none}.attendance-page .attendance-mobile-cards{display:block}.attendance-page .attendance-mobile-cards:not(:empty){display:block}.attendance-page .attendance-status,.attendance-page .attendance-reason,.attendance-page .attendance-arrival,.attendance-page .attendance-departure{width:100%;min-height:44px}.attendance-page fieldset{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.attendance-page fieldset legend{max-width:100%;overflow-wrap:anywhere}}
@media(min-width:1024px){.attendance-page .attendance-table-wrap{display:block}.attendance-page .attendance-mobile-cards{display:none}}
