:root{--blue:#0b4bb3;--blue2:#eaf1ff;--ink:#152033;--muted:#6d7788;--line:#e3e8ef;--bg:#f6f8fb;--white:#fff;--green:#16784b;--red:#b42318;--amber:#a15c00;--shadow:0 14px 40px rgba(18,35,62,.08)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#dfeaff 0,transparent 35%),linear-gradient(135deg,#f7f9fc,#eef3fb)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:38px;box-shadow:var(--shadow)}.brand-mark{width:60px;height:60px;border-radius:18px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-1px;margin-bottom:22px}.brand-mark.small{width:42px;height:42px;border-radius:12px;margin:0;font-size:13px}.login-card h1{margin:6px 0 8px;font-size:28px;letter-spacing:-.7px}.eyebrow{margin:0;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:1.35px}.muted{color:var(--muted)}.tiny{font-size:11px}.stack{display:flex;flex-direction:column}.gap-14{gap:14px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:#455064}input,select,textarea{border:1px solid #cfd7e4;border-radius:10px;padding:11px 12px;background:white;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#7ea6ee;box-shadow:0 0 0 3px rgba(11,75,179,.09)}textarea{min-height:80px;resize:vertical}.primary,.secondary,.upload-btn{border:0;border-radius:10px;padding:11px 15px;font-weight:700}.primary{background:var(--blue);color:#fff}.secondary{background:#edf1f7;color:#273247}.upload-btn{display:inline-block;background:var(--blue2);color:var(--blue);cursor:pointer}.full{width:100%}.status-text{font-size:12px}.good{color:var(--green)}.bad{color:var(--red)}.center-loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#0d1b31;color:#e9eff9;padding:18px 14px;display:flex;flex-direction:column;z-index:20}.school-brand{display:flex;align-items:center;gap:11px;padding:8px 8px 22px}.school-brand strong{display:block;font-size:13px}.school-brand span{display:block;font-size:10px;color:#92a0b5;margin-top:3px}.school-logo{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:12px;padding:4px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.nav-btn{border:0;background:transparent;color:#9eacc1;text-align:left;border-radius:9px;padding:10px 12px;display:flex;gap:10px;align-items:center;font-weight:600;font-size:13px}.nav-btn:hover,.nav-btn.active{background:#172945;color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid #22334c;padding:16px 6px 6px}.user-chip{display:flex;gap:9px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:#dfe9fb;color:#174b96;display:grid;place-items:center;font-weight:800;font-size:11px;flex:none}.avatar.big{width:48px;height:48px;font-size:14px}.user-chip strong,.user-chip span{display:block;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip strong{font-size:11px}.user-chip span{font-size:9px;color:#8d9caf;margin-top:2px}.link-btn{border:0;background:none;color:#91a0b6;font-size:11px;padding:12px 0 0}.main-area{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);padding:14px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.topbar h2{margin:2px 0 0;font-size:20px;letter-spacing:-.4px}.pill{font-size:10px;padding:7px 9px;border-radius:20px;background:#e9f8f0;color:#147047;font-weight:700}.mobile-menu{display:none;border:0;background:#eef2f7;border-radius:8px;padding:8px}.content{padding:24px 28px 50px}.flash{margin:14px 28px 0;padding:10px 13px;border-radius:9px;font-size:12px}.flash.good{background:#eaf8f1}.flash.bad{background:#fff0ee}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;box-shadow:0 5px 18px rgba(24,45,75,.035)}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi span{font-size:11px;font-weight:650}.kpi strong{display:block;font-size:24px;letter-spacing:-.8px;margin:8px 0 5px}.kpi small{font-size:10px}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 18px rgba(24,45,75,.035);padding:18px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-head h3{margin:3px 0 0;font-size:15px}.panel-head .muted{font-size:10px}.bar-list{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:75px 1fr 35px;align-items:center;gap:10px;font-size:11px}.bar-track{height:7px;background:#eef2f7;border-radius:8px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--blue);border-radius:8px}.metric-list>div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #eef1f5;font-size:12px}.metric-list>div:last-child{border:0}.metric-list strong small{font-weight:500;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:13px}.search{width:min(420px,60vw)}.count{font-size:11px;color:var(--muted);margin-left:auto}.table-panel{padding:0;overflow:auto}.table-panel table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:11px 13px;border-bottom:1px solid #edf0f4;font-size:11px}th{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#788294;background:#fbfcfe;position:sticky;top:0}tbody tr:hover{background:#fafcff}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.status{display:inline-block;border-radius:18px;padding:4px 7px;background:#edf2f8;color:#556173;font-size:9px;font-weight:700}.status.active{background:#eaf8f1;color:#137149}.status.left,.status.inactive{background:#fff0ee;color:#a93227}.row-btn{border:0;background:var(--blue2);color:var(--blue);border-radius:7px;padding:6px 9px;font-size:10px;font-weight:700}.due{color:var(--red)}.paid{color:var(--green)}.admin-grid{grid-template-columns:1fr 1fr}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}.logo-admin{text-align:center;padding:10px}.logo-admin img,.logo-placeholder{width:110px;height:110px;object-fit:contain;border-radius:18px;border:1px solid var(--line);background:#fff;margin:0 auto 10px}.logo-placeholder{display:grid;place-items:center;background:#eef3fb;color:var(--blue);font-weight:800;font-size:30px}.access-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.access-grid>div{border:1px solid var(--line);border-radius:9px;padding:10px}.access-grid span,.access-grid strong{display:block}.access-grid span{font-size:9px;color:var(--muted);text-transform:capitalize}.access-grid strong{font-size:11px;margin-top:4px}.drawer-backdrop{position:fixed;inset:0;background:rgba(10,22,39,.35);z-index:50;display:flex;justify-content:flex-end}.drawer{width:min(620px,95vw);height:100vh;background:#fff;box-shadow:-18px 0 50px rgba(0,0,0,.15);overflow:auto}.drawer-head{padding:24px;display:flex;gap:13px;align-items:center;border-bottom:1px solid var(--line);position:relative}.drawer-head h2{margin:2px 0 3px;font-size:18px}.drawer-head p{margin-top:0;margin-bottom:2px}.close-btn{position:absolute;right:18px;top:18px;width:32px;height:32px;border:0;border-radius:50%;font-size:20px;background:#f1f4f8}.tabs{display:flex;gap:3px;padding:10px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.tab{border:0;background:none;padding:8px 10px;font-size:11px;color:var(--muted);font-weight:700;border-radius:7px}.tab.active{background:var(--blue2);color:var(--blue)}.drawer-body{padding:22px}.info-sections{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.info-sections section{border:1px solid var(--line);border-radius:10px;padding:14px}.info-sections h4{margin:0 0 8px;font-size:12px}dl{margin:0}dl>div{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid #f0f2f5;font-size:10px}dl>div:last-child{border:0}dt{color:var(--muted)}dd{margin:0;font-weight:600;word-break:break-word}.mini-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}.mini-kpis>div{border:1px solid var(--line);border-radius:10px;padding:12px}.mini-kpis span,.mini-kpis strong{display:block}.mini-kpis span{font-size:9px;color:var(--muted)}.mini-kpis strong{font-size:15px;margin-top:5px}.mini-table>div{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:10px}.mini-table small{color:var(--muted)}.mini-table strong{grid-column:2;grid-row:1/3;align-self:center}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.result-grid>div{border:1px solid var(--line);border-radius:9px;padding:12px}.result-grid span,.result-grid strong,.result-grid em{display:block}.result-grid span{font-size:10px;color:var(--muted)}.result-grid strong{font-size:20px;margin:4px 0}.result-grid strong small{font-size:10px;color:var(--muted)}.result-grid em{font-size:9px;color:var(--blue);font-style:normal}.edit-form{grid-template-columns:1fr 1fr}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:260px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:inline-block}.topbar{justify-content:flex-start;gap:14px}.top-actions{margin-left:auto}.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.access-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.content{padding:16px}.topbar{padding:12px 16px}.flash{margin:10px 16px 0}.kpi-grid,.kpi-grid.compact{grid-template-columns:1fr 1fr}.kpi strong{font-size:19px}.toolbar{flex-wrap:wrap}.search{width:100%}.count{margin-left:0}.info-sections{grid-template-columns:1fr}.form-grid,.edit-form{grid-template-columns:1fr}.form-grid .wide,.form-actions{grid-column:1}.access-grid{grid-template-columns:1fr 1fr}.login-card{padding:28px 22px}.result-grid{grid-template-columns:1fr}}
.action-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.file-hero{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;margin-bottom:22px}.profile-photo-large,.file-photo-placeholder{width:140px;height:170px;border-radius:14px;object-fit:cover;border:1px solid var(--line);background:#f3f6fa}.file-photo-placeholder{display:grid;place-items:center;text-align:center;padding:14px;color:var(--muted);font-size:11px}.staff-photo{margin-top:16px}.avatar.big img{width:100%;height:100%;object-fit:cover;border-radius:50%}.mini-table a{color:var(--blue);text-decoration:none;font-weight:800}@media(max-width:620px){.file-hero{grid-template-columns:1fr}.profile-photo-large,.file-photo-placeholder{width:120px;height:145px}}

/* v1.5 — User management + ID cards */
.user-admin-list{display:grid;gap:10px}.user-admin-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line,#e5e7eb)}.user-admin-row:last-child{border-bottom:0}.user-admin-row>div:first-child{display:grid;gap:3px}.user-admin-row>div:first-child span{font-size:12px;color:var(--muted,#667085)}.user-admin-row>div:nth-child(2){display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.perm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.perm-grid label{font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:90;display:grid;place-items:center;padding:20px}.modal-card{width:min(860px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 30px 90px rgba(15,23,42,.28)}.toggle-row{display:flex!important;align-items:center;gap:8px}.toggle-row input{width:auto!important}.id-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.id-select-card{position:relative;display:block}.id-select-card>input{position:absolute;top:10px;right:10px;z-index:2;width:18px;height:18px}.id-preview{min-height:185px;border:1px solid var(--line,#e5e7eb);border-radius:16px;background:#fff;padding:18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;cursor:pointer}.id-select-card:has(input:checked) .id-preview{outline:2px solid #0b4bb3;outline-offset:1px}.id-photo{width:72px;height:82px;border-radius:12px;background:#eef2f7;display:grid;place-items:center;font-size:22px;font-weight:700;margin-bottom:6px}.id-preview strong{font-size:14px}.id-preview span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.id-preview small{color:var(--muted,#667085)}
@media(max-width:760px){.user-admin-row{grid-template-columns:1fr}.user-admin-row>div:nth-child(2){justify-content:flex-start}.perm-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal-card{padding:16px}.id-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.6 — Reports, statements, receipts and printable profiles */
.report-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}.report-tab{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:9px 13px;font-size:11px;font-weight:750}.report-tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.report-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.report-controls label{display:grid;gap:5px;min-width:130px;font-size:10px;color:var(--muted);font-weight:700}.report-controls .report-search{min-width:240px;flex:1}.report-controls .wide-control{min-width:min(440px,100%);flex:1}.field-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px 12px;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.field-picker label{font-size:10px;display:flex;align-items:center;gap:6px}.field-picker input{width:auto}.report-note{padding:10px 14px;margin:0;color:var(--muted);font-size:10px}.table-actions{display:flex;gap:5px;white-space:nowrap}.mini-table button.row-btn{white-space:nowrap}
@media(max-width:900px){.field-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.field-picker{grid-template-columns:1fr}.report-controls label,.report-controls .report-search,.report-controls .wide-control{min-width:100%;width:100%}.table-actions{flex-direction:column;align-items:flex-start}}

/* v1.7 — Admissions + student lifecycle */
.status.draft{background:#f3f4f6;color:#475467}.status.pending-verification,.status.verified{background:#fff7e8;color:#9a5b00}.status.admitted{background:#eaf8f1;color:#137149}.status.cancelled,.status.rejected{background:#fff0ee;color:#a93227}.admission-policy-note{font-size:11px;color:var(--muted)}

.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.academic-tab{border:1px solid var(--line);background:var(--panel);padding:9px 13px;border-radius:9px;cursor:pointer}.academic-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.toolbar.wrap{flex-wrap:wrap}.checks{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:14px 0}.checks label{display:flex;align-items:center;gap:8px}.pad{padding:16px}@media(max-width:800px){.two-col{grid-template-columns:1fr}}

/* v1.9 Finance administration */
.recon-system{display:flex;flex-direction:column;justify-content:center;min-width:150px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-soft,#f7f9fc)}
.recon-system small{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.recon-system strong{font-size:18px;margin-top:2px}
.table-panel td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}

/* v2.0 operations dashboard */
.quick-panel{padding-bottom:18px}.quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.quick-action{border:1px solid var(--line,#ddd);background:var(--surface,#fff);border-radius:14px;padding:15px;text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer}.quick-action strong{font-size:14px}.quick-action span{font-size:12px;color:var(--muted,#68707c);line-height:1.35}.quick-action:hover{transform:translateY(-1px);box-shadow:0 5px 18px rgba(0,0,0,.06)}.ops-grid{align-items:start}.ops-list{display:flex;flex-direction:column;margin-top:10px}.ops-row{border:0;border-top:1px solid var(--line,#eee);background:transparent;padding:10px 0;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;width:100%}.ops-row span{display:flex;flex-direction:column;gap:2px}.ops-row small{color:var(--muted,#68707c);font-size:11px}.ops-row b{font-size:11px}.compact-list{max-height:250px;overflow:auto}.birthday-today{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--line,#eee)}.gender-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--line,#eee)}.gender-strip span{font-size:12px;background:var(--soft,#f5f6f8);padding:6px 9px;border-radius:999px}.activity-list{display:flex;flex-direction:column}.activity-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line,#eee)}.activity-row:first-child{border-top:0}.activity-row span{display:flex;flex-direction:column}.activity-row small,.activity-row time{font-size:11px;color:var(--muted,#68707c)}.alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.alert-card{border:1px solid var(--line,#ddd);background:var(--surface,#fff);padding:12px;border-radius:12px;text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer}.alert-card span{font-size:11px;color:var(--muted,#68707c);line-height:1.35}.soft{border:0;border-top:1px solid var(--line,#eee);margin:20px 0}
@media(max-width:900px){.quick-grid,.alert-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.quick-grid,.alert-grid{grid-template-columns:1fr}.activity-row{align-items:flex-start}}

.staff-ops-tabs{margin-bottom:16px}.compact{display:flex;gap:16px}.compact>div{min-width:80px}.modal-card{width:min(720px,92vw);max-height:88vh;overflow:auto;background:var(--surface,#fff);border-radius:18px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.modal-backdrop{display:flex;align-items:center;justify-content:center;z-index:80}.table-panel td small{display:block;color:var(--muted,#777);margin-top:3px}.staff-ops-tabs{overflow-x:auto}.staff-ops-tabs .tab{white-space:nowrap}


/* v2.2 communications & notifications */
.communication-tabs{margin-bottom:16px}.notice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.notice-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 5px 18px rgba(24,45,75,.035)}.notice-card>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.notice-card h3{margin:12px 0 7px;font-size:15px}.notice-card p{margin:0;white-space:pre-wrap;line-height:1.5;font-size:12px}.notice-card footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:14px;padding-top:10px;font-size:10px;color:var(--muted)}.notice-card.priority-urgent{border-left:4px solid var(--red)}.notice-card.priority-high{border-left:4px solid var(--amber)}.notice-priority{display:inline-block;font-size:9px;font-weight:800;border-radius:999px;padding:5px 8px;background:#eef2f7;color:#475467}.notice-priority.urgent{background:#fff0ee;color:var(--red)}.notice-priority.high{background:#fff6e6;color:var(--amber)}.notice-priority.normal{background:#eaf1ff;color:var(--blue)}.notice-priority.low{background:#f2f4f7;color:#667085}.toolbar.wrap{flex-wrap:wrap}@media(max-width:680px){.notice-grid{grid-template-columns:1fr}.notice-card footer{flex-direction:column}}

/* v2.3 production hardening */
.danger{border:0;background:#b42318;color:#fff;border-radius:8px;padding:9px 13px;font-size:11px;font-weight:750;cursor:pointer}.danger:disabled{opacity:.55;cursor:wait}.modal-warning{padding:12px 14px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;line-height:1.5}.diagnostics-list>div{grid-template-columns:minmax(0,1fr) auto}.diagnostics-list span{word-break:break-word}.modal-card textarea{min-height:96px;resize:vertical}.modal-card :focus-visible{outline:3px solid rgba(11,75,179,.18);outline-offset:2px}.modal-backdrop{overscroll-behavior:contain}.modal-card{overscroll-behavior:contain}
@media(max-width:620px){.modal-backdrop{align-items:flex-end;padding:0}.modal-card{width:100vw;max-width:none;max-height:94vh;border-radius:18px 18px 0 0;padding:18px}.modal-card .form-actions{position:sticky;bottom:-18px;background:#fff;padding:12px 0 18px;z-index:2}.modal-card .form-actions button{flex:1}.drawer{width:100vw}.tabs{overflow-x:auto}.tabs .tab{white-space:nowrap}.content{padding-bottom:88px}}

/* v2.3.1 master register + class directory */
.student-master-kpis{margin-bottom:16px}
.class-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;margin-top:14px}
.class-card{appearance:none;border:1px solid var(--line,#dfe3e8);background:var(--panel,#fff);border-radius:14px;padding:14px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:5px 12px;cursor:pointer;color:inherit}
.class-card:hover,.class-card.active{border-color:currentColor;box-shadow:0 4px 18px rgba(0,0,0,.07)}
.class-card span{display:flex;flex-direction:column}.class-card small,.class-card em{font-size:12px;opacity:.65;font-style:normal}.class-card b{font-size:22px}.class-card em{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.class-roster{margin-top:16px}
@media(max-width:700px){.class-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-master-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.3.2 admissions workflow */
.admission-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.admission-choice{border:1px solid var(--line,#d9dee7);background:var(--surface,#fff);border-radius:16px;padding:18px;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:3px;align-items:start;cursor:pointer}.admission-choice.active{border-color:currentColor;box-shadow:0 0 0 2px rgba(0,0,0,.04)}.admission-choice .choice-step{grid-row:1/3;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--soft,#f2f4f7);font-size:12px;font-weight:800}.admission-choice strong{font-size:16px}.admission-choice small{color:var(--muted,#6b7280)}
.next-admission-card{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--line,#d9dee7);background:var(--surface,#fff);border-radius:16px;padding:18px 20px;margin-bottom:16px}.next-admission-card h2{font-size:30px;letter-spacing:-.04em;margin:2px 0}.admission-number-rule{display:flex;flex-direction:column;gap:3px;text-align:right}.admission-number-rule span{font-size:12px;color:var(--muted,#6b7280);max-width:360px}.admission-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 16px}.admission-steps>div{display:flex;gap:10px;align-items:center;border:1px solid var(--line,#d9dee7);border-radius:12px;padding:12px;background:var(--surface,#fff)}.admission-steps b{width:28px;height:28px;border-radius:50%;background:var(--soft,#f2f4f7);display:grid;place-items:center}.admission-steps span{display:flex;flex-direction:column}.admission-steps small{color:var(--muted,#6b7280)}.duplicate-check,.returnee-identity{border:1px dashed var(--line,#d9dee7);border-radius:12px;padding:12px 14px;background:var(--soft,#f7f8fa);display:flex;flex-direction:column;gap:4px}.duplicate-warning{color:#9a3412}.returnee-search-panel .toolbar{margin-top:10px}.returnee-results{display:grid;gap:8px;margin-top:12px;max-height:62vh;overflow:auto}.returnee-result{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line,#d9dee7);border-radius:12px;padding:12px 14px}.returnee-result>div{display:flex;flex-direction:column;gap:3px}.returnee-result small{color:var(--muted,#6b7280)}
@media(max-width:760px){.admission-choice-grid,.admission-steps{grid-template-columns:1fr}.next-admission-card{align-items:flex-start;flex-direction:column}.admission-number-rule{text-align:left}.returnee-result{align-items:flex-start;flex-direction:column}.returnee-result .primary{width:100%}}

/* v2.3.4 Simplified admissions workflow */
.admission-steps.five{grid-template-columns:repeat(5,minmax(0,1fr))}.admission-steps.five>div{min-width:0}.admission-steps.five strong,.admission-steps.five small{white-space:normal}.workflow-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:4px 0 16px}.workflow-strip>div{display:flex;align-items:center;gap:7px;padding:8px;border-radius:9px;background:var(--soft,#f3f4f6);opacity:.6}.workflow-strip>div.done{opacity:1;background:#eaf8f1;color:#137149}.workflow-strip>div.current{opacity:1;background:#eaf1ff;color:#174ea6}.workflow-strip b{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.7);display:grid;place-items:center;font-size:10px}.workflow-strip span{font-size:10px;font-weight:700}.issued-number-banner{display:flex;align-items:center;gap:12px;border:2px solid #111827;border-radius:12px;padding:11px 13px;margin:0 0 14px}.issued-number-banner span,.issued-number-banner small{font-size:10px;color:var(--muted,#6b7280)}.issued-number-banner strong{font-size:22px;letter-spacing:.02em}.issued-number-banner small{margin-left:auto}.inline-actions{display:flex!important;flex-direction:row!important;gap:8px;align-items:center}.table-sub{display:block;margin-top:3px}.status.awaiting-parent-confirmation{background:#fff7e8;color:#9a5b00}.status.pending-verification{background:#eef4ff;color:#2457a6}.status.verified{background:#ecfdf3;color:#137149}.admission-modal-card{width:min(860px,94vw)}
@media(max-width:900px){.admission-steps.five{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-strip{grid-template-columns:1fr 1fr}.issued-number-banner{align-items:flex-start;flex-direction:column}.issued-number-banner small{margin-left:0}.inline-actions{width:100%;flex-wrap:wrap}}
@media(max-width:620px){.admission-steps.five,.workflow-strip{grid-template-columns:1fr}.inline-actions{display:grid!important;grid-template-columns:1fr}.inline-actions button{width:100%}}
/* v2.3.4 admissions */
.admission-docs{border-top:1px solid var(--line,#ddd);padding-top:16px}.doc-requirements{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.doc-requirements span{padding:8px 10px;border-radius:8px;background:#f3f4f6;font-size:12px}.doc-requirements .good{background:#ecfdf5}.doc-requirements .bad{background:#fef2f2}.doc-upload-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:12px}.placement-banner{padding:12px;border-radius:10px;background:#f3f6fb;display:flex;flex-direction:column;gap:4px}
.user-access-modal{width:min(980px,94vw);max-height:92vh;overflow:auto}.access-matrix{display:grid;gap:8px}.access-matrix-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.access-matrix-row strong,.access-matrix-row small{display:block}.access-matrix-row small{color:var(--muted);margin-top:2px}.responsibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.responsibility-card{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px}.responsibility-card input{margin-top:4px}.responsibility-card strong,.responsibility-card small{display:block}.responsibility-card small{color:var(--muted);margin-top:3px}.access-presets{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0 0 10px}.access-presets>span{font-size:12px;color:var(--muted);margin-right:4px}.preset-btn{border:1px solid var(--line);background:var(--surface);padding:6px 9px;border-radius:999px;cursor:pointer}.access-user-row small{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.access-overview .panel-head{align-items:flex-start}@media(max-width:720px){.access-matrix-row{grid-template-columns:1fr}.responsibility-grid{grid-template-columns:1fr}.user-access-modal{width:96vw}}

/* v2.3.6 Assessment-first admissions */
.status.pending,.status.assessment-application,.status.assessment-scheduled{background:#eef4ff;color:#2457a6}
.status.passed,.status.completed{background:#eaf8f1;color:#137149}
.status.not-passed,.status.absent{background:#fff0ee;color:#a93227}
.status.reschedule,.status.admission-in-progress,.status.rejoin-in-progress{background:#fff7e8;color:#9a5b00}

/* v2.3.7.0 term-aware student academics */
.academic-term-block{margin-bottom:22px}.academic-term-block:last-child{margin-bottom:0}.compact-head{margin-bottom:10px}.academic-term-block .result-grid{margin-top:0}

.academic-compare-wrap{overflow-x:auto}.academic-compare{min-width:620px}.academic-compare th:not(:first-child),.academic-compare td:not(:first-child){text-align:center;min-width:140px}.academic-compare td strong{display:block;font-size:1rem}.academic-compare td em{display:block;font-style:normal;font-weight:700;margin-top:2px}.academic-compare td small{display:block;margin-top:2px}.academic-compare tbody td:first-child{min-width:180px}.academic-compare tbody tr:hover{background:rgba(0,0,0,.025)}

/* SMS Centre v2.3.7.0 */
.sms-compose-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.sms-hero{border-left:4px solid var(--accent,#0f766e)}.sms-recipient-summary{margin:14px 0 8px;font-size:14px}.sms-recipient-summary strong{font-size:24px;margin-right:6px}.sms-preview{display:flex;flex-wrap:wrap;gap:7px;max-height:150px;overflow:auto;padding-top:4px}.sms-message-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted,#6b7280);font-size:12px;margin:8px 0 14px}.sms-compose-grid textarea{min-height:130px}@media(max-width:900px){.sms-compose-grid{grid-template-columns:1fr}}

/* Student attendance module v2.3.8 */
.attendance-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:16px;align-items:start}.attendance-main{overflow:hidden}.attendance-side{display:grid;gap:16px}.attendance-date-nav{display:flex;align-items:center;gap:8px}.attendance-class-list{display:grid;gap:8px;max-height:420px;overflow:auto}.attendance-class-card{width:100%;border:1px solid var(--line,#dfe4ea);background:var(--surface,#fff);border-radius:12px;padding:11px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;cursor:pointer}.attendance-class-card:hover,.attendance-class-card.selected{border-color:#0b4bb3;box-shadow:0 0 0 2px rgba(11,75,179,.08)}.attendance-class-card span:first-child{display:grid;gap:2px}.attendance-class-card small{color:var(--muted,#6b7280)}.attendance-state{font-size:11px;font-weight:700;border-radius:999px;padding:5px 8px;white-space:nowrap}.attendance-state.complete{background:#eaf8ef;color:#15743a}.attendance-state.partial{background:#fff4dc;color:#8a5a00}.attendance-state.not-started{background:#f1f3f6;color:#667085}.attendance-class-summary{display:flex;gap:24px;align-items:center;padding:12px 16px;border-top:1px solid var(--line,#e5e7eb);border-bottom:1px solid var(--line,#e5e7eb);background:#fafbfc}.attendance-class-summary span{display:grid}.attendance-class-summary small{color:var(--muted,#6b7280);font-size:11px}.attendance-roster table td:nth-child(3){min-width:140px}.attendance-roster .att-status{font-weight:600}.empty-state{padding:56px 24px;text-align:center;color:var(--muted,#6b7280)}.empty-state strong{display:block;color:var(--text,#111827);margin-bottom:6px}.link-btn{border:0;background:none;padding:0;text-align:left;cursor:pointer;color:inherit}.attendance-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px}.attendance-pill.present{background:#eaf8ef;color:#15743a}.attendance-pill.absent{background:#fdecec;color:#b42318}.attendance-pill.late{background:#fff4dc;color:#8a5a00}.attendance-pill.excused{background:#eef2ff;color:#3949ab}.attendance-history>div span{display:grid;gap:2px}.attendance-history>div span small{color:var(--muted,#6b7280)}
@media(max-width:1050px){.attendance-layout{grid-template-columns:1fr}.attendance-side{grid-template-columns:1fr 1fr}.attendance-side .panel:first-child{grid-column:1/-1}}@media(max-width:700px){.attendance-side{grid-template-columns:1fr}.attendance-class-summary{gap:12px;flex-wrap:wrap}.attendance-date-nav{width:100%}}

/* POS v2.3.9.0 */
.pos-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);gap:18px;align-items:start}
.pos-products-panel,.pos-cart-panel{min-width:0}.pos-cart-panel{position:sticky;top:88px}
.pos-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px;margin-top:14px}
.pos-product-card{border:1px solid var(--line,#ddd);background:#fff;border-radius:14px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:8px;min-height:115px;cursor:pointer}
.pos-product-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.07)}
.pos-product-card strong,.pos-product-card small,.pos-product-card span{display:block}.pos-product-card b{font-size:1.05rem}.pos-product-card span{font-size:.78rem;color:#667}
.pos-cart-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.pos-cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;border-bottom:1px solid var(--line,#e5e5e5);padding:9px 0}
.pos-cart-row small{display:block;color:#777;margin-top:2px}.pos-qty{display:flex;align-items:center;gap:6px}.pos-empty{padding:24px;text-align:center;border:1px dashed #bbb;border-radius:12px;color:#777;margin:12px 0}
.pos-fee-box{margin:12px 0;border:1px solid var(--line,#ddd);border-radius:12px;padding:10px}.pos-fee-box summary{cursor:pointer;font-weight:700}
.pos-totals{margin-top:12px;border-top:1px solid var(--line,#ddd);padding-top:10px}.pos-totals>div{display:flex;justify-content:space-between;align-items:center;padding:5px 0}.pos-totals input{max-width:130px}.pos-totals .grand{font-size:1.15rem;border-top:1px solid #bbb;margin-top:5px;padding-top:10px}
@media(max-width:1000px){.pos-shell{grid-template-columns:1fr}.pos-cart-panel{position:static}}

/* POS v2.4 counter: VitePOS-inspired operational layout */
.pos-admin-tabs{margin-bottom:12px}
.vitepos-shell{display:grid;grid-template-columns:minmax(330px,38%) minmax(0,62%);min-height:calc(100vh - 185px);background:#f5f7fb;border:1px solid var(--line,#e3e7ef);border-radius:18px;overflow:hidden}
.vitepos-cart{background:#eef3ff;border-right:1px solid #dbe3f1;display:flex;flex-direction:column;min-height:720px}
.vitepos-cart-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:#f7f9fd;border-bottom:1px solid #dbe3f1}
.vitepos-cart-head h3{margin:1px 0 0}.vitepos-cart-body{flex:1;padding:10px 16px;overflow:auto}.vitepos-cart-footer{padding:14px 16px;background:#fff;border-top:1px solid #dbe3f1}
.pos-student-search{padding:14px 16px;background:#fff;border-bottom:1px solid #dbe3f1;position:relative}.pos-student-search label{font-size:.78rem;font-weight:700}.pos-student-search input{margin-top:6px}
.pos-student-results{position:absolute;z-index:20;left:16px;right:16px;top:74px;background:#fff;border:1px solid #ccd6e5;border-radius:12px;box-shadow:0 14px 30px rgba(19,44,78,.15);max-height:320px;overflow:auto}
.pos-student-results button{width:100%;background:#fff;border:0;border-bottom:1px solid #eef1f5;text-align:left;padding:10px 12px;cursor:pointer}.pos-student-results button:hover{background:#f4f8ff}.pos-student-results small{display:block;color:#64748b;margin-top:2px}
.pos-selected-student{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;background:#fff;border-bottom:1px solid #dbe3f1}.pos-selected-student>div{display:flex;align-items:center;gap:10px}.pos-selected-student small{display:block;color:#64748b;margin-top:2px}
.pos-account-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#dbe3f1;border-bottom:1px solid #dbe3f1}.pos-account-strip>span{background:#f8fbff;padding:10px 12px}.pos-account-strip small,.pos-account-strip strong{display:block}.pos-account-strip small{font-size:.68rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.pos-account-strip strong{margin-top:2px}
.pos-pricing-profile{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:10px 16px;background:#f8fbff;border-bottom:1px solid #dbe3f1;align-items:end}.pos-pricing-profile label{font-size:.68rem;font-weight:700;color:#475569}.pos-pricing-profile select{margin-top:4px;padding:7px 8px}
.pos-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;background:transparent;border:0}.pos-empty span{font-size:2rem}.pos-empty strong{margin-top:8px}.pos-empty small{color:#7b8798}
.vitepos-products{min-width:0;background:#fff}.vitepos-topbar{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #e7ebf2;background:#fff;position:sticky;top:0;z-index:5}.vitepos-topbar .search{flex:1;min-width:220px}.pos-term-control{display:flex;align-items:center;gap:7px;font-size:.78rem;font-weight:700;white-space:nowrap}.pos-term-control select{width:auto}
.vitepos-categories{display:flex;gap:8px;padding:10px 14px;overflow:auto;border-bottom:1px solid #edf0f4;background:#fbfcfe}.posCategoryBtn{border:1px solid #d5deeb;background:#fff;border-radius:10px;padding:9px 14px;white-space:nowrap;font-weight:700;cursor:pointer}.posCategoryBtn.active{background:#e1eaff;border-color:#9eb7ff;color:#1649b7}
.vitepos-products .pos-product-grid{padding:14px;margin:0;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.vitepos-products .pos-product-card{padding:0;overflow:hidden;border-radius:12px;min-height:205px;background:#fff;box-shadow:0 4px 14px rgba(20,40,70,.08)}
.pos-card-visual{height:118px;background:#343434;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#d8f0df;font-weight:800;letter-spacing:.03em;text-align:center;padding:10px}.pos-card-visual img{width:100%;height:100%;object-fit:cover}.pos-card-copy{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.pos-card-copy strong{line-height:1.2}.pos-card-copy small{color:#747f8f;min-height:1.1em}.pos-card-copy b{font-size:1rem}.pos-card-copy span{font-size:.72rem;color:#6b7280}
.pos-fee-card .fee-visual{background:#2f3032;color:#d7f0dd;flex-direction:column;gap:5px}.pos-fee-card .fee-visual span{font-size:1rem}.pos-fee-card .fee-visual small{color:#d7f0dd}.pos-fee-card.paid-card{opacity:.6}.pos-fee-card.paid-card .fee-visual{background:#365e48}
.vitepos-cart .pos-cart-row{background:#fff;border:1px solid #e4e9f1;border-radius:10px;padding:9px}.vitepos-cart .pos-cart-list{gap:7px}
.vitepos-cart .pos-totals .grand{font-size:1.25rem}.vitepos-cart .primary.full{font-size:1.05rem;padding:13px;margin-top:10px}
.finance-analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.compact-panel{padding:12px}
.financeRuleAmount{max-width:140px}
@media(max-width:1100px){.vitepos-shell{grid-template-columns:1fr}.vitepos-cart{min-height:auto}.vitepos-products{min-height:600px}.finance-analytics-grid{grid-template-columns:1fr}}

/* v2.4.1.0 parent products + variations */
.catalog-parent-list{display:grid;gap:12px}.catalog-parent{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.catalog-parent>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}.catalog-parent>summary::-webkit-details-marker{display:none}.catalog-parent>summary>div{display:flex;align-items:center;gap:10px}.catalog-parent>summary>div:first-child{display:grid;gap:3px}.catalog-parent>summary small{color:var(--muted)}.catalog-variants{border-top:1px solid var(--line);padding:8px 18px 16px}.catalog-variant-row{display:grid;grid-template-columns:minmax(220px,1fr) 150px 120px auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.catalog-variant-row:last-child{border-bottom:0}.catalog-variant-row>div{display:grid}.catalog-variant-row small{color:var(--muted)}.pos-variant-modal{max-width:620px}.pos-variant-preview{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;background:var(--surface-2,#f7f8fb);border:1px solid var(--line);border-radius:14px;padding:14px}.pos-variant-preview strong{grid-column:1}.pos-variant-preview span{grid-column:1;color:var(--muted)}.pos-variant-preview b{grid-column:2;grid-row:1/3;font-size:20px}.pos-product-card .pos-card-copy small{min-height:18px}@media(max-width:900px){.catalog-variant-row{grid-template-columns:1fr auto}.catalog-variant-row>span:nth-of-type(2){display:none}}

/* POS viewport and standalone cashier v2.4.2.0 */
@media(min-width:1101px){.vitepos-shell{height:calc(100vh - 150px);min-height:560px;max-height:calc(100vh - 150px)}.vitepos-cart{height:100%;min-height:0;overflow:hidden}.vitepos-cart-body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.vitepos-cart-footer{flex:0 0 auto;position:relative;z-index:4;box-shadow:0 -8px 18px rgba(20,40,70,.06)}.vitepos-products{height:100%;min-height:0;overflow-y:auto}.vitepos-topbar{top:0}.vitepos-categories{position:sticky;top:58px;z-index:4}}
.standalone-pos{min-height:100vh;background:#f5f7fb;display:flex;flex-direction:column}.standalone-pos-bar{height:64px;flex:0 0 64px;background:#fff;border-bottom:1px solid #e4e9f1;display:flex;align-items:center;justify-content:space-between;padding:0 18px;gap:16px}.pos-brand-mini{display:flex;align-items:baseline;gap:9px}.pos-brand-mini span{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#64748b}.pos-cashier-menu{display:flex;align-items:center;gap:9px}.pos-cashier-menu>span{display:grid;text-align:right;line-height:1.1}.pos-cashier-menu small{font-size:.64rem;text-transform:uppercase;color:#64748b}.standalone-pos-main{flex:1;min-height:0;padding:10px}.standalone-pos-main .vitepos-shell{height:calc(100vh - 84px);min-height:0;max-height:none}.standalone-flash{margin:8px 10px 0}.standalone-pos-gate{min-height:100vh;background:#f3f6fb;display:grid;place-items:center;padding:24px}.pos-gate-card{width:min(440px,100%);background:#fff;border:1px solid #e1e7ef;border-radius:20px;padding:28px;box-shadow:0 20px 50px rgba(30,50,80,.12)}.pos-gate-card.wide{width:min(760px,100%)}.pos-gate-card h1{margin:4px 0 8px}.pos-gate-card form{display:grid;gap:14px;margin:22px 0 10px}.pos-close-screen{min-height:100vh;background:#f5f7fb;padding:22px}.pos-close-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:16px}.session-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:14px 0}.session-kpis>div{background:#fff;border:1px solid #e1e7ef;border-radius:14px;padding:13px}.session-kpis small,.session-kpis strong{display:block}.session-kpis small{font-size:.68rem;text-transform:uppercase;color:#64748b}.session-kpis strong{margin-top:5px;font-size:1.05rem}.pos-close-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.session-table-wrap{max-height:58vh;overflow:auto}.close-cash-box{display:grid;gap:12px;align-content:start}.pos-launch-panel{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.pos-launch-panel h3{margin:2px 0}.pos-launch-panel .primary{text-decoration:none}.danger{background:#b42318;color:#fff;border:0;border-radius:10px;padding:11px 14px;font-weight:700;cursor:pointer}
@media(max-width:1100px){.vitepos-shell{height:auto;max-height:none;min-height:0}.vitepos-cart{height:auto;overflow:visible}.vitepos-cart-body{overflow:visible}.vitepos-cart-footer{position:sticky;bottom:0;z-index:8;box-shadow:0 -8px 20px rgba(20,40,70,.1)}}
@media(max-width:900px){.standalone-pos-bar{height:auto;min-height:64px;flex-wrap:wrap;padding:10px}.pos-cashier-menu{flex-wrap:wrap;justify-content:flex-end}.session-kpis{grid-template-columns:repeat(2,1fr)}.pos-close-grid{grid-template-columns:1fr}.standalone-pos-main .vitepos-shell{height:auto}.pos-launch-panel{align-items:flex-start;flex-direction:column}}

.pos-utility-bar{display:flex;gap:8px;justify-content:flex-end;margin:0 0 8px}.pos-payment-lookup{width:min(1000px,94vw)}.student-payment-summary{margin-top:14px}.student-payment-summary .mini-kpis{grid-template-columns:repeat(3,1fr);margin:10px 0}.payment-history-table{max-height:52vh;overflow:auto}.payment-history-table small{display:block;color:#64748b}@media(max-width:700px){.pos-utility-bar button{flex:1}.student-payment-summary .mini-kpis{grid-template-columns:1fr}}
.pos-checkout-area{height:100%;background:#fff;border:1px solid #e4e9f1;border-radius:14px;overflow:auto;display:flex;flex-direction:column}.pos-checkout-top{padding:10px 14px;border-bottom:1px solid #e7ebf1;display:flex;align-items:center;justify-content:space-between;font-weight:800}.pos-checkout-center{width:min(720px,92%);margin:auto;text-align:center;padding:28px 12px}.pos-checkout-total{font-size:clamp(2.4rem,5vw,4.8rem);font-weight:500;margin:8px 0 22px}.pos-payment-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.pos-pay-method{min-height:108px;border:1px solid #dfe6f1;border-radius:14px;background:#f6f8fc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer}.pos-pay-method small{color:#64748b}.pos-pay-method.active{background:#155eef;color:#fff;border-color:#155eef}.pos-pay-method.active small{color:#dce8ff}.pos-cash-panel,.pos-reference-panel{width:min(520px,100%);margin:0 auto 18px;text-align:left}.pos-quick-cash{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}.pos-cash-quick{border:1px solid #98b5f3;background:#eef4ff;border-radius:10px;padding:10px 6px;font-weight:700}.pos-cash-panel label,.pos-reference-panel label{display:grid;gap:6px;font-weight:700}.pos-cash-panel input,.pos-reference-panel input{font-size:1.1rem;padding:12px;border:1px solid #cfd7e4;border-radius:10px}.pos-change-line{display:flex;justify-content:space-between;margin-top:12px;padding:12px;border:1px solid #e0e6ef;border-radius:12px}.pos-final-pay{width:min(520px,100%);padding:14px 18px;font-size:1.05rem}.pos-success-mark{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e9f8ef;color:#16803d;font-size:2.2rem}.pos-complete-actions{display:flex;gap:10px;justify-content:center;margin-top:22px}@media(max-width:760px){.pos-payment-methods{grid-template-columns:1fr}.pos-quick-cash{grid-template-columns:repeat(2,1fr)}.pos-complete-actions{flex-direction:column}}
/* Backend receipt designer v2.4.4.1 */
.receipt-settings-form{display:grid;gap:16px}.receipt-settings-group{border:1px solid #e3e8f0;border-radius:14px;padding:16px;background:#fff}.receipt-settings-group h4{margin:0 0 14px;font-size:1rem}.receipt-settings-group .form-grid{margin:0}.receipt-settings-group .toggle-row{background:#f8fafc;border:1px solid #edf1f5;border-radius:10px;padding:10px 12px;align-self:end}.receipt-settings-group input[type=color]{height:42px;padding:4px}.receipt-settings-actions{position:sticky;bottom:0;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);padding:12px 0 0;border-top:1px solid #e7ebf1;z-index:3}.receipt-control-panel{overflow:visible}@media(max-width:800px){.receipt-settings-group{padding:12px}}
.pos-admin-launch{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:14px 16px;border:1px solid #e3e8f0;border-radius:14px;background:#fff}.pos-admin-launch h3{margin:2px 0 0}.pos-admin-launch .primary{text-decoration:none;white-space:nowrap}@media(max-width:700px){.pos-admin-launch{align-items:flex-start;flex-direction:column}.pos-admin-launch .primary{width:100%;text-align:center}}
.ar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 22px;padding:18px;border:1px solid #dfe5ed;border-radius:14px;background:#fff}.ar label{display:grid;gap:7px;font-weight:700;min-width:360px}.ar select{padding:11px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.ar>div{display:grid;gap:2px;text-align:right}.ar small,.ar span{color:#64748b}.ah{font-size:1.35rem;margin:8px 0 12px}.ams{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #dfe5ed;border-radius:12px;overflow:hidden;background:#fff}.am{padding:20px;border-right:1px solid #e5e9ef;border-bottom:1px solid #e5e9ef;min-height:115px}.am>span{font-weight:700}.am>div{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.am strong{font-size:1.45rem}.ad{font-size:.82rem;font-weight:800;border-radius:5px;padding:5px 7px}.ad.u{background:#dcfce7;color:#166534}.ad.d{background:#fee2e2;color:#991b1b}.ad.n{background:#f1f5f9;color:#64748b}.ag{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.ac svg{width:100%;min-height:220px}.ac line{stroke:#d6dde6}.ac polyline{fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.ac .cur{stroke:#2563eb}.ac .cmp{stroke:#22c55e}.al{display:flex;gap:18px;border-top:1px solid #e5e9ef;padding-top:12px}.al strong{margin-left:auto}@media(max-width:1000px){.ams{grid-template-columns:repeat(2,1fr)}.ag{grid-template-columns:1fr}}@media(max-width:700px){.ar{align-items:stretch;flex-direction:column}.ar label{min-width:0}.ar>div{text-align:left}.ams{grid-template-columns:1fr}.am{border-right:0}}
.event-collection-note{padding:12px 14px;border:1px solid #cfe0ff;border-radius:10px;background:#f4f8ff;color:#334155}.event-collection-note small{color:#64748b}
.event-confirm-modal{max-width:900px}.event-confirm-toolbar{display:flex;gap:12px;align-items:center;padding:0 0 14px}.event-confirm-toolbar input{flex:1}.event-participant-list{max-height:58vh;overflow:auto;border:1px solid #e5e9ef;border-radius:10px}.event-participant-row{display:grid;grid-template-columns:minmax(260px,1fr) 130px 210px;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid #edf0f4}.event-participant-row:last-child{border-bottom:0}.event-participant-row small{display:block;color:#64748b;margin-top:2px}.event-participant-actions{display:flex;gap:7px;justify-content:flex-end;align-items:center}.event-status{font-weight:800;font-size:.78rem;border-radius:999px;padding:5px 9px;text-align:center}.event-status.confirmed{background:#dcfce7;color:#166534}.event-status.paid{background:#dbeafe;color:#1d4ed8}.event-status.pending{background:#f1f5f9;color:#64748b}@media(max-width:760px){.event-participant-row{grid-template-columns:1fr}.event-participant-actions{justify-content:flex-start}}
.event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.event-card{padding:18px}.event-card-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.event-card-top h3{margin:8px 0 4px}.event-card-top p{margin:0;color:#64748b}.event-card-top>strong{font-size:1.25rem;white-space:nowrap}.event-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.event-meta span{background:#f1f5f9;border-radius:999px;padding:5px 8px;font-size:.82rem;color:#475569}.event-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.event-kpis div{border:1px solid #e5e9ef;border-radius:10px;padding:10px}.event-kpis small{display:block;color:#64748b}.event-kpis strong{font-size:1.2rem}.event-actions{display:flex;gap:8px;align-items:center}.grade-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.grade-check{display:flex;gap:7px;align-items:center;border:1px solid #e5e9ef;border-radius:9px;padding:8px 10px}.field-label{font-weight:700}.event-status.open{background:#dcfce7;color:#166534}.event-status.draft{background:#fef3c7;color:#92400e}.event-status.closed,.event-status.cancelled{background:#f1f5f9;color:#64748b}@media(max-width:900px){.event-grid{grid-template-columns:1fr}.grade-check-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.event-head,.event-card-top,.event-actions{flex-direction:column}.grade-check-grid{grid-template-columns:1fr}}
.transport-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.transport-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.transport-head-actions input{min-width:165px}.transport-note{padding:12px 14px;border:1px solid #cfe0ff;border-radius:10px;background:#f4f8ff;color:#334155}.transport-user-modal{max-width:850px}.transport-head small,.transport-user-modal small{display:block;color:#64748b}.transport-head-actions button{white-space:nowrap}@media(max-width:760px){.transport-head{flex-direction:column}.transport-head-actions{width:100%;align-items:stretch}.transport-head-actions>*{width:100%}}
.transport-person-picker{display:grid;gap:8px}.transport-selected-person{border:1px solid #dbe3ec;border-radius:10px;padding:10px 12px;background:#f8fafc}.transport-selected-person strong,.transport-selected-person small{display:block}.transport-person-results{max-height:280px;overflow:auto;border:1px solid #e5e9ef;border-radius:10px;background:#fff}.transport-person-result{width:100%;display:block;text-align:left;border:0;border-bottom:1px solid #edf0f4;background:#fff;padding:10px 12px;cursor:pointer}.transport-person-result:last-child{border-bottom:0}.transport-person-result:hover{background:#f1f5f9}.transport-person-result strong,.transport-person-result small{display:block}.transport-person-results>.muted{padding:12px;margin:0}
.sandbox-banner{margin:14px 20px 0;padding:12px 14px;border:1px solid #efc66c;background:#fff8e6;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:16px}.sandbox-banner div{display:grid;gap:2px}.sandbox-banner strong{font-size:.9rem;letter-spacing:.04em}.sandbox-banner span{font-size:.82rem;color:#6b5a33}@media(max-width:700px){.sandbox-banner{margin:10px 12px 0;flex-direction:column;align-items:stretch}.sandbox-banner button{width:100%}}

.edr-hero{margin-bottom:18px}.edr-status{white-space:normal;line-height:1.25}.edr-timeline{display:grid;gap:0;padding:4px 0}.edr-event{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative;padding:0 0 16px}.edr-event>span{width:10px;height:10px;border-radius:50%;background:#2563eb;margin-top:5px;position:relative;z-index:1}.edr-event:not(:last-child)>span:after{content:"";position:absolute;top:10px;left:4px;width:2px;height:calc(100% + 6px);background:#dbe4f0}.edr-event strong,.edr-event small{display:block}.edr-event small{color:#64748b;margin-top:2px}.edr-event p{margin:6px 0 0;color:#475569}.edr-detail{display:grid;gap:14px}.edr-attendance-marker{display:block;margin-top:4px;color:#7c3aed;font-weight:700}.checkbox-line{display:flex!important;align-items:flex-start;gap:9px}.checkbox-line input{width:auto!important;margin-top:3px}.selected-person{border:1px solid #dbe3ec;border-radius:11px;background:#f8fafc;padding:12px}.selected-person strong,.selected-person span,.selected-person small{display:block}.search-results{max-height:280px;overflow:auto;border-radius:10px}.search-result{width:100%;text-align:left;border:1px solid #e5e9ef;border-bottom:0;background:#fff;padding:10px 12px;cursor:pointer}.search-result:first-child{border-radius:10px 10px 0 0}.search-result:last-child{border-bottom:1px solid #e5e9ef;border-radius:0 0 10px 10px}.search-result:only-child{border-radius:10px}.search-result:hover{background:#f8fafc}.search-result strong,.search-result small{display:block}.edr-status.awaiting-principal-approval,.edr-status.clarification-requested{background:#fef3c7;color:#92400e}.edr-status.approved---awaiting-release{background:#dbeafe;color:#1d4ed8}.edr-status.released---awaiting-registrar-verification{background:#ede9fe;color:#6d28d9}.edr-status.completed{background:#dcfce7;color:#166534}.edr-status.denied,.edr-status.cancelled{background:#f1f5f9;color:#64748b}
@media(max-width:760px){.edr-hero .panel-head{align-items:stretch}.edr-hero .form-actions{width:100%}.edr-hero .form-actions button{flex:1}.edr-detail .mini-kpis{grid-template-columns:1fr 1fr}}

/* v2.4.8.26 class gender counts */
.class-gender-counts{grid-column:1/-1;display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:4px}.gender-count{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;line-height:1;padding:5px 7px;border-radius:999px}.gender-count i{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-style:normal;color:#fff}.gender-count.boys{background:#eff6ff;color:#1d4ed8}.gender-count.boys i{background:#3b82f6}.gender-count.girls{background:#fdf2f8;color:#be185d}.gender-count.girls i{background:#ec4899}.class-card em{margin-top:2px}

/* v2.4.8.27 compact class cards */
.class-card{padding:10px 12px;gap:3px 10px}
.class-card b{font-size:19px}
.class-gender-counts{grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:10px;align-items:center;margin-top:1px;white-space:nowrap}
.gender-count{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;line-height:1;padding:0;background:transparent!important;border-radius:0}
.gender-count i{width:13px;height:13px;border-radius:50%;display:grid;place-items:center;font-size:7px;font-style:normal;color:#fff;flex:0 0 13px}
.gender-count.boys{color:#1d4ed8}.gender-count.boys i{background:#3b82f6}
.gender-count.girls{color:#be185d}.gender-count.girls i{background:#ec4899}
.class-card em{margin-top:1px;font-size:11px}

/* v2.4.8.28 restore class card size; text-only gender counts */
.class-card{padding:14px 15px;gap:6px 12px}
.class-card b{font-size:22px}
.class-gender-counts{grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:12px;align-items:center;margin-top:3px;white-space:nowrap}
.gender-count{display:inline-flex;align-items:center;font-size:12px;font-weight:700;line-height:1.2;padding:0;background:transparent!important;border-radius:0}
.gender-count i{display:none!important}
.gender-count.boys{color:#2563eb}
.gender-count.girls{color:#db2777}
.class-card em{margin-top:3px;font-size:12px}
