@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-vietnamese-wght-normal.3cbdnbmi1hpzs.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-ext-wght-normal.3cxrhsknk8wrd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-wght-normal.0inx24hl2eswd.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#201e1d;--muted:#696565;--line:#817e7d;--canvas:#f3f2f2;--surface:#eae9e9;--brand:#ec3013;--brand-dark:#ae1800;--brand-soft:#ffe0d9;--nav:#201e1d;--success:#19724b;--danger:#b42318;--warning:#a15c00;--radius:0}*{box-sizing:border-box}html{background:var(--canvas)}body{color:var(--ink);background:var(--canvas);margin:0;font-family:Archivo Variable,Archivo,system-ui,sans-serif;font-size:15px;line-height:1.55}h1,h2,h3,h4,h5,h6,strong{font-family:Archivo Variable,Archivo,system-ui,sans-serif}h1,h2,h3,h4,h5,h6{letter-spacing:-.015em;font-weight:800;line-height:1.12}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--nav);color:#f3f2f2;flex-direction:column;height:100vh;padding:20px 0;display:flex;position:sticky;top:0}.brand-lockup{border-bottom:2px solid #f3f2f240;padding:0 20px 20px}.brand-lockup img{width:172px;height:auto;margin-bottom:18px;display:block}.brand-lockup strong{color:#fff;font-size:1rem;line-height:1.25;display:block}.brand-lockup span{color:#f3f2f28c;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.nav-list{gap:2px;margin-top:24px;display:grid}.nav-link{color:#f3f2f2bf;border-left:4px solid #0000;align-items:center;gap:11px;padding:10px 20px 10px 16px;font-size:.88rem;display:flex}.nav-link:hover{color:#fff;background:#f3f2f212}.nav-link.active{border-left-color:var(--brand);color:#fff;background:#f3f2f214;font-weight:800}.sidebar-footer{border-top:2px solid #f3f2f240;margin-top:auto;padding:16px 20px 0}.sidebar-footer p{color:#fff;margin:0;font-size:.84rem}.sidebar-footer small{color:#aebdce;text-transform:capitalize}.logout-button{color:#ffd8cf;background:0 0;border:0;padding:12px 0 0;transition:color .18s}.logout-button:hover:not(:disabled){color:#fff}.logout-button[aria-busy=true]:before{content:"";vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;margin-right:7px;animation:.7s linear infinite spin;display:inline-block}.workspace{min-width:0}.topbar{background:var(--canvas);border-bottom:2px solid var(--line);z-index:20;justify-content:space-between;align-items:center;min-height:72px;padding:14px 28px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:1.35rem}.topbar-brand{align-items:center;gap:12px;min-width:0;display:flex}.topbar-title{min-width:0}.topbar-title h1{overflow-wrap:anywhere}.school-logo{object-fit:contain;border:1px solid var(--line);background:#fff;flex:0 0 48px;width:48px;height:48px;padding:4px;display:block}.topbar p{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin:3px 0 0;font-size:.69rem}.topbar-actions{align-items:center;gap:14px;display:flex}.session-selector{align-items:center;gap:9px;display:flex}.session-selector label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.session-select-wrap{align-items:center;display:flex;position:relative}.session-select-wrap select{border:1px solid var(--line);min-width:135px;color:var(--ink);background:var(--canvas);border-radius:0;outline:none;padding:8px 32px 8px 10px;font-weight:700}.session-select-wrap select:hover:not(:disabled),.session-select-wrap select:focus{border-color:var(--brand);background:var(--brand-soft)}.session-select-wrap .spinner{width:13px;height:13px;color:var(--brand-dark);position:absolute;right:9px}.session-empty{color:var(--warning);font-size:.78rem;font-weight:700}.role-chip,.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-items:center;padding:5px 9px;font-size:.7rem;font-weight:700;display:inline-flex}.role-chip{color:var(--ink);border:1px solid var(--line);background:0 0}.mobile-nav,.mobile-account-actions{display:none}.main-content{max-width:1480px;margin:auto;padding:32px 28px 56px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.page-header>:first-child{flex:260px;min-width:0}.page-header h2{margin:0;font-size:clamp(1.45rem,2vw,2rem)}.page-header p{color:var(--muted);max-width:720px;margin:6px 0 0}.header-actions{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.page-panels{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin-bottom:20px;display:grid}.page-panels>details[open]{grid-column:1/-1}.grid{gap:18px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.two-column{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);align-items:start}.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--canvas);border:2px solid var(--line);box-shadow:none;border-radius:0}.card-pad{padding:20px}.card h3{margin:0 0 14px;font-size:1rem}.stat{padding:20px}.stat-icon{width:38px;height:38px;color:var(--ink);background:var(--surface);border-radius:0;place-items:center;display:grid}.stat strong{margin-top:18px;font-size:1.7rem;display:block}.stat span{color:var(--muted);font-size:.82rem}.button{border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 14px;font-size:.86rem;font-weight:800;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.button:hover:not(:disabled),.button:active:not(:disabled){box-shadow:none}.button:focus-visible,.nav-link:focus-visible,.back-link:focus-visible{outline-offset:2px;outline:3px solid #d86f1640}.button-primary{background:var(--brand);color:#fff}.button-primary:hover{background:var(--brand-dark)}.button-secondary{color:var(--ink);border:1px solid var(--line);background:0 0}.button-secondary:hover:not(:disabled){color:var(--brand-dark);background:var(--brand-soft);border-color:#e7a66f}.button-danger{color:var(--danger);background:#fff1ef}.button-danger:hover:not(:disabled){color:#fff;background:var(--danger)}.button-quiet{color:var(--brand-dark);background:0 0}.button-quiet:hover:not(:disabled){background:var(--brand-soft)}.button[aria-busy=true]:before,.spinner{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:15px;height:15px;animation:.7s linear infinite spin}.spinner-large{width:28px;height:28px;color:var(--brand);border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button,.spinner,.button[aria-busy=true]:before{transition:none;animation-duration:1.5s}}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{align-content:start;gap:6px;min-width:0;display:grid}.field.full{grid-column:1/-1}.password-input{min-width:0;position:relative}.password-input .password-input-control{width:100%;padding-right:48px}.password-input-control::-ms-reveal{display:none}.password-toggle{width:44px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:0;right:0}.password-toggle:hover:not(:disabled){color:var(--brand-dark)}.password-toggle:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}.field label,.field-label{color:#475467;font-size:.78rem;font-weight:700}.input,.select,.textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:0;outline:none;padding:10px 11px}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #d86f1620}.textarea{resize:vertical;min-height:90px}.form-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.filter-bar{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:18px;padding:14px;display:flex}.filter-bar .field{flex:170px;min-width:0}.filter-bar .search{flex:2 240px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.86rem}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:var(--surface);border-bottom:2px solid var(--line);white-space:nowrap;padding:12px 14px;font-size:.7rem}.table td{vertical-align:middle;border-bottom:1px solid #201e1d33;padding:13px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fffdfb}.table .numeric{text-align:right;font-variant-numeric:tabular-nums}.person{align-items:center;gap:10px;display:flex}.avatar{background:var(--brand-soft);width:34px;height:34px;color:var(--brand-dark);border-radius:50%;flex:none;place-items:center;font-size:.75rem;font-weight:800;display:grid}.muted{color:var(--muted)}.small{font-size:.78rem}.empty{text-align:center;color:var(--muted);padding:48px 20px}.empty-state{text-align:center;color:var(--muted);justify-items:center;gap:7px;padding:42px 20px;display:grid}.empty-state-icon{width:42px;height:42px;color:var(--brand-dark);background:var(--brand-soft);border-radius:50%;place-items:center;display:grid}.empty-state strong{color:var(--ink);font-size:.95rem}.empty-state p{max-width:520px;margin:0 0 7px;line-height:1.5}.table td:has(>.empty-state){padding:0}.table tr:hover td:has(>.empty-state){background:#fff}.badge.success{color:var(--success);background:#eaf8f1}.badge.danger{color:var(--danger);background:#fff1ef}.badge.warning{color:var(--warning);background:#fff5e5}.badge.neutral{color:#475467;background:#f2f4f7}.notice{border-radius:10px;margin-bottom:18px;padding:12px 14px;font-size:.86rem}.notice.error{color:var(--danger);background:#fff1ef;border:1px solid #fecdca}.notice.info{color:#175cd3;background:#eff8ff;border:1px solid #b2ddff}.notice.warning{color:var(--warning);background:#fff8eb;border:1px solid #fedf89}details.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff}details.panel>summary{cursor:pointer;padding:16px 20px;font-weight:700;list-style:none}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary:hover{color:var(--brand-dark);background:var(--brand-soft)}details.panel[open]>summary{border-bottom:1px solid var(--line)}.panel-body{min-width:0;padding:20px}.student-import{width:100%;min-width:0}.class-list{flex-wrap:wrap;align-content:start;gap:6px;max-height:160px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.class-list li{border:1px solid var(--line);background:var(--surface);overflow-wrap:anywhere;padding:3px 8px;font-size:.78rem}.import-file-name{overflow-wrap:anywhere}.school-logo-upload{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.school-logo-upload .school-logo{flex-basis:80px;width:80px;height:80px}.school-logo-controls{flex:220px;min-width:0}.school-logo-controls p{margin:8px 0 0}.school-logo-controls .form-error{max-width:none}.page-loading{gap:20px;display:grid}.loading-heading{align-items:center;gap:14px;min-height:64px;display:flex}.loading-heading strong{display:block}.loading-heading p{color:var(--muted);margin:4px 0 0;font-size:.86rem}.skeleton-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,#e9edf2 25%,#f7f8fa 50%,#e9edf2 75%) 0 0/200% 100%;animation:1.35s ease-in-out infinite shimmer;display:block}.skeleton-card{min-height:120px}.skeleton-table{min-height:310px}@keyframes shimmer{to{background-position:-200% 0}}.back-link{width:fit-content;color:var(--brand-dark);align-items:center;gap:7px;margin-bottom:14px;font-size:.84rem;font-weight:700;display:inline-flex}.back-link:hover{color:var(--brand)}.student-hero{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:22px;display:flex}.student-identity{align-items:center;gap:16px;min-width:0;display:flex}.avatar-large{width:58px;height:58px;font-size:1rem}.student-profile-photo{object-fit:cover}.student-hero-actions{align-items:flex-start;gap:10px;display:flex}.student-photo-control{gap:5px;display:grid}.form-error{color:var(--danger);max-width:240px;margin:0;font-size:.78rem}.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}.student-title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-title-line h2{margin:0;font-size:clamp(1.35rem,2vw,1.85rem)}.student-identity p{color:var(--muted);margin:6px 0 0;font-size:.86rem}.student-details-grid{align-items:start}.section-heading{color:var(--brand-dark);align-items:center;gap:9px;margin-bottom:18px;display:flex}.section-heading h3{color:var(--ink);margin:0}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.profile-field{border:1px solid var(--line);background:#fafbfc;border-radius:9px;min-width:0;padding:13px 15px}.profile-field-wide{grid-column:1/-1}.profile-field dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:.72rem;font-weight:700}.profile-field dd{overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.45}.enrollment-card{overflow:hidden}.enrollment-card .card-pad p{margin:-7px 0 0}.auth-page{background:var(--canvas);grid-template-columns:minmax(320px,1.12fr) minmax(420px,.75fr);min-height:100vh;display:grid}.auth-hero{background:var(--ink);color:#fff;border-right:6px solid var(--brand);flex-direction:column;justify-content:space-between;padding:clamp(40px,7vw,96px);display:flex}.auth-logo{width:min(300px,72%);height:auto}.auth-kicker{color:#ff9783;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px;font-size:.72rem;font-weight:800;display:block}.auth-hero h1{letter-spacing:-.055em;max-width:760px;margin:0;font-size:clamp(2.6rem,5.4vw,5rem);line-height:.94}.auth-hero p{color:#f3f2f2b3;max-width:620px;margin-top:24px;font-size:1rem;line-height:1.65}.auth-hero small{color:#f3f2f28c;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.auth-form-side{place-items:center;padding:40px;display:grid}.auth-card{width:min(420px,100%)}.auth-card h2{margin:0;font-size:2.1rem}.auth-card>p{color:var(--muted);margin:8px 0 28px}.auth-card form{gap:16px;display:grid}.school-onboarding{border-top:2px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:14px;margin-top:30px;padding-top:24px;display:grid}.school-onboarding>svg{color:var(--brand);margin-top:2px}.school-onboarding strong{font-size:.92rem;display:block}.school-onboarding p{color:var(--muted);margin:5px 0 14px;font-size:.82rem;line-height:1.5}.school-onboarding .button{width:fit-content}.score-input{text-align:center;border:1px solid #d0d5dd;border-radius:7px;width:68px;padding:8px 4px}.score-total{text-align:center;font-weight:800}.wizard-class{border-top:1px solid var(--line);padding:18px 0}.wizard-class:first-child{border-top:0;padding-top:0}.wizard-students{gap:8px;margin-top:12px;display:grid}.wizard-student{background:#f9fafb;border-radius:8px;grid-template-columns:1fr 180px;align-items:center;gap:12px;padding:9px;display:grid}.setup-checklist{margin-bottom:20px;overflow:hidden}.setup-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;display:flex}.setup-heading h3{margin-bottom:5px}.setup-heading p{margin:0}.setup-progress{color:var(--brand-dark);background:var(--brand-soft);white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:.75rem;font-weight:800}.setup-steps{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.setup-step{border-right:1px solid var(--line);color:var(--muted);grid-template-columns:auto minmax(0,1fr);align-content:start;gap:10px;padding:18px;display:grid}.setup-step:last-child{border-right:0}.setup-step>svg{color:var(--brand);margin-top:1px}.setup-step.complete>svg{color:var(--success)}.setup-step strong{color:var(--ink);font-size:.84rem}.setup-step p{margin:5px 0 12px;font-size:.76rem;line-height:1.45}.setup-step .button{grid-column:2;justify-self:start}.dashboard-stats{margin-top:20px}.fee-progress{background:#edf0f3;border-radius:20px;height:8px;overflow:hidden}.fee-progress>div{background:var(--success);height:100%;transition:width .25s}.toast{z-index:100;background:#fff;border:1px solid;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:11px;width:min(390px,100vw - 32px);padding:14px;animation:.2s ease-out toast-in;display:grid;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 40px #17202a2b}.toast-success{color:var(--success);border-color:#a6e1c5}.toast-error{color:var(--danger);border-color:#fecdca}.toast strong{color:var(--ink);font-size:.88rem;display:block}.toast p{color:var(--muted);margin:4px 0 0;font-size:.8rem;line-height:1.4}.toast button{color:var(--muted);background:0 0;border:0;padding:0}.toast button:hover{color:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@media (max-width:1050px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}.three-column,.setup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-step:nth-child(2){border-right:0}.setup-step:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width:800px){.app-shell{display:block}.sidebar{display:none}.mobile-nav{background:var(--nav);color:#fff;gap:8px;padding:10px 16px;display:flex;overflow-x:auto}.mobile-nav a{white-space:nowrap;background:#ffffff12;border-radius:7px;align-items:center;gap:6px;padding:7px 10px;font-size:.78rem;display:inline-flex}.topbar{flex-wrap:wrap;gap:12px;height:auto;min-height:74px;padding:10px 18px}.topbar-brand{flex:200px}.topbar-actions{justify-content:space-between;width:100%}.mobile-account-actions{display:block}.mobile-account-actions .logout-button{color:var(--brand-dark);white-space:nowrap;padding:0;font-size:.8rem}.topbar-title p,.role-chip{display:none}.session-selector{flex-direction:column;align-items:flex-start;gap:3px}.session-selector label{font-size:.62rem}.main-content{padding:22px 16px 40px}.page-header{flex-direction:column;align-items:flex-start}.page-header>:first-child{flex:initial}.page-panels{grid-template-columns:minmax(0,1fr)}.auth-page{grid-template-columns:1fr}.auth-hero{min-height:250px;padding:36px 24px}.auth-hero h1{font-size:2.5rem}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .field{flex:initial}.table:has(.empty-state) thead{display:none}.form-grid,.form-grid.three,.three-column{grid-template-columns:1fr}.student-hero{flex-direction:column;align-items:flex-start}.student-hero-actions,.student-photo-control,.student-hero form,.student-hero .button{width:100%}.skeleton-grid{grid-template-columns:1fr}}@media (max-width:520px){.stats-grid,.wizard-student,.profile-grid{grid-template-columns:1fr}.setup-heading{align-items:flex-start}.setup-steps{grid-template-columns:1fr}.setup-step,.setup-step:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.setup-step:last-child{border-bottom:0}.toast{bottom:16px;right:16px}}@media print{.no-print{display:none!important}body{background:#fff}}.family-shell{max-width:1120px;margin:0 auto;padding:32px 20px}.family-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.family-header h1{margin-top:8px}.family-header .logout-button{color:var(--ink)}.family-report-page{padding:24px 12px}.family-report-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1000px;margin:0 auto 20px;display:flex}.family-report-scroll{overflow-x:auto}.print-stack{gap:24px;display:grid}.report-card{color:#111;background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:9mm 8mm;font-family:Georgia,Times New Roman,serif;font-size:10px;position:relative}.report-header{text-align:center;border-bottom:1px solid #ccd2d8;grid-template-columns:78px 1fr 78px;align-items:center;padding-bottom:8px;display:grid}.report-logo,.report-photo{object-fit:contain;justify-self:center;width:68px;height:68px}.report-photo{object-fit:cover;border-radius:50%}.report-placeholder{color:#667085;background:#eef2f6;place-items:center;font:700 10px Arial;display:grid}.report-heading h1{margin:0 0 3px;font-size:21px}.report-heading p{margin:2px}.report-title{text-align:center;margin:9px 0;font-size:16px}.report-meta{grid-template-columns:1fr 1fr;gap:6px 28px;margin:9px 0;display:grid}.report-meta p{margin:0}.attendance-bar,.report-total{background:#edf1f5;justify-content:space-between;margin:8px 0;padding:7px 8px;font-weight:700;display:flex}.result-table{border-collapse:collapse;text-align:center;width:100%}.result-table th{color:#fff;background:#1776c7;padding:6px 3px}.result-table td{border:1px solid #d7dbe0;padding:5px 3px}.result-table td:first-child{text-align:left;padding-left:8px;font-weight:700}.grade-key{text-align:center;background:#fffdea;margin:8px 0;padding:7px 8px}.grade-key div{justify-content:space-around;margin-top:5px;font-weight:700;display:flex}.behaviour-title{margin:9px 0 5px}.behaviour-grid{grid-template-columns:1fr 1fr;gap:4px 14px;display:grid}.behaviour-row{background:#f8f9fa;justify-content:space-between;padding:5px;font-weight:700;display:flex}.rating-boxes{gap:3px;display:flex}.rating-box{border:1px solid #cfd4da;border-radius:3px;place-items:center;width:17px;height:17px;display:grid}.report-comments{background:#edf1f5;grid-template-columns:1fr auto;gap:3px;margin-top:8px;padding:7px 8px;display:grid}.report-names{background:#edf1f5;justify-content:space-between;margin-top:8px;padding:7px 8px;font-weight:700;display:flex}.draft-watermark{color:#b4231815;pointer-events:none;font:800 70px Arial;position:absolute;inset:43% auto auto 23%;transform:rotate(-25deg)}@media print{@page{size:A4 portrait;margin:0}.sidebar,.topbar,.mobile-nav{display:none!important}.app-shell{display:block}.main-content{max-width:none;padding:0}.print-stack{display:block}.report-card{break-after:page;box-shadow:none;margin:0}.report-card:last-child{break-after:auto}.family-report-page{padding:0}.family-report-scroll{overflow:visible}}.stats-grid{background:var(--line);border-block:2px solid var(--line);gap:2px}.stats-grid>.card{border:0}.card h3,.section-heading h3{font-weight:800}.page-header h2{letter-spacing:-.025em;font-weight:800}.page-header p{line-height:1.55}.card-pad+.table-wrap,.enrollment-card>.table-wrap{border-top:2px solid var(--line)}:where(.role-chip,.badge,.notice,.panel,.setup-progress,.setup-step,.profile-field,.empty-state-icon,.score-input,.wizard-student,.toast,.fee-progress,.rating-box),.avatar,.avatar-large,.report-photo{border-radius:0}.profile-field,.wizard-student{background:var(--surface);border-color:#201e1d33}.empty-state-icon{color:var(--ink);background:var(--surface)}.setup-checklist{overflow:visible}.setup-heading,details.panel[open]>summary{border-bottom-width:2px}.setup-progress{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.setup-step>svg,.section-heading{color:var(--ink)}.fee-progress{background:#201e1d1f}.fee-progress>div{background:var(--ink)}.button-quiet{color:var(--brand-dark);padding-inline:0}.button-quiet:hover:not(:disabled){text-underline-offset:4px;background:0 0;text-decoration:underline}.badge.success,.badge.danger,.badge.warning,.badge.neutral{background:var(--surface);color:var(--ink);border:1px solid #201e1d40}.report-card{border:2px solid #000;font-family:Archivo Variable,Archivo,Arial,sans-serif;font-size:10px}.report-header{border-bottom:2px solid #000}.report-logo,.report-photo{width:58px;height:58px}.report-brand-mark{width:42px}.report-heading h1{text-transform:uppercase;font-size:22px;line-height:1.05}.report-title{letter-spacing:.12em;border-bottom:2px solid #000;padding:8px 0}.attendance-bar,.report-total,.grade-key,.behaviour-row,.report-comments,.report-names{background:#fff}.attendance-bar,.report-total{border-block:1px solid #000}.result-table th{color:#000;letter-spacing:.05em;background:#fff;border-bottom:2px solid #000}.result-table td{border:0;border-bottom:1px solid #00000059}.rating-box.on{color:#fff;background:#000}.draft-watermark{color:#00000014}@media (max-width:800px){.mobile-nav{border-bottom:4px solid var(--brand)}.mobile-nav a{background:0 0;border-radius:0}.auth-hero{border-right:0;border-bottom:6px solid var(--brand)}}@media print{.report-card{border:0;padding:14mm;font-size:10px}.result-table th,.rating-box.on{color:#000!important;background:#fff!important}.rating-box.on{box-shadow:inset 0 0 0 2px #000}}
