.admin-page,.admin-auth{--navy:#123b63;--blue:#1d5685;--green:#18734a;--ink:#172b3b;--muted:#536779;--line:#d7e0e8;--canvas:#f1f5f8;--surface:#fff;color:var(--ink);background:var(--canvas);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh;margin:0}.admin-page *,.admin-auth *{box-sizing:border-box}.admin-page a,.admin-auth a{color:var(--blue);text-underline-offset:3px}.admin-page a:hover,.admin-auth a:hover{color:#103b61}.admin-page :focus-visible,.admin-auth :focus-visible{outline:3px solid #16845a;outline-offset:3px}.admin-shell{max-width:1240px;margin:auto;padding:28px 24px}.admin-header{background:var(--navy);color:white}.admin-header-inner{max-width:1240px;margin:auto;padding:16px 24px;display:flex;gap:24px;align-items:center;justify-content:space-between}.admin-brand{color:white!important;text-decoration:none;font-weight:750;font-size:18px;line-height:1.2}.admin-brand small{display:block;font-size:12px;font-weight:500;color:#d7e5f0;margin-top:4px}.admin-tools{display:flex;align-items:center;gap:18px}.admin-tools nav{display:flex;gap:6px;flex-wrap:wrap}.admin-tools nav a{color:#f1f7fc;text-decoration:none;padding:8px 10px;border-radius:6px}.admin-tools nav a[aria-current=page],.admin-tools nav a:hover{background:#fff;color:var(--navy)}.admin-user{font-size:14px;color:#e3edf5}.admin-logout{margin:0}.admin-logout button{background:transparent;color:white;border:1px solid #b7ccdc;border-radius:6px;padding:7px 11px;cursor:pointer}.admin-page h1{font-size:30px;line-height:1.2;margin:0 0 22px;color:#173b59}.admin-page h2{font-size:21px;color:#173b59;margin:26px 0 12px}.admin-page h3{margin:0 0 12px}.admin-subtitle{color:var(--muted);margin:-14px 0 22px}.admin-card,.admin-section,.admin-auth-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px;box-shadow:0 2px 8px #18334b0a}.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-metric-label{display:block;color:var(--muted);font-size:14px}.admin-metric-value{font-size:30px;font-weight:750;color:var(--navy);margin:3px 0 0}.admin-section{margin:18px 0}.admin-section h2{margin:0 0 14px}.admin-table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-page table{border-collapse:collapse;width:100%;min-width:700px}.admin-page th,.admin-page td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);vertical-align:top}.admin-page th{background:#eaf0f5;color:#243f55;font-size:13px;white-space:nowrap}.admin-page tr:last-child td{border-bottom:0}.admin-page fieldset{border:0;border-top:1px solid var(--line);padding:18px 0;margin:12px 0}.admin-page legend{font-weight:700;color:var(--navy);padding-right:10px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-page label{display:block;font-weight:600;color:#30485b;margin:0 0 14px}.admin-page input:not([type=checkbox]):not([type=hidden]),.admin-page select,.admin-page textarea,.admin-auth input:not([type=hidden]){display:block;width:100%;min-height:42px;border:1px solid #aebdca;border-radius:6px;padding:9px 11px;background:white;color:var(--ink);font:inherit;margin-top:5px}.admin-page input[type=checkbox]{width:18px;height:18px;vertical-align:middle;margin:0 7px 0 0;accent-color:var(--green)}.admin-page button,.admin-page .button,.admin-auth button{display:inline-block;border:0;border-radius:6px;background:var(--blue);color:white;font:inherit;font-size:15px;font-weight:600;line-height:1.2;padding:11px 16px;text-decoration:none;cursor:pointer}.admin-page button:hover,.admin-page .button:hover,.admin-auth button:hover{background:#123f68;color:white}.admin-status{display:inline-block;border-radius:20px;padding:3px 9px;background:#e7f2ec;color:#155b3c;font-size:13px;font-weight:650}.admin-notice{padding:12px 15px;border:1px solid #8ab69c;background:#edf7f0;border-radius:7px;margin:12px 0}.admin-error{border-color:#bb7777;background:#fff1f0;color:#762e2e}.admin-empty{color:var(--muted);padding:20px}.admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-detail-grid p{margin:7px 0}.admin-auth{display:grid;place-items:center;padding:24px}.admin-auth-card{width:min(100%,440px);padding:32px}.admin-auth-card h1{font-size:27px;margin:0 0 6px}.admin-auth-card .admin-brand{display:block;color:var(--navy)!important;margin-bottom:28px}.admin-auth-card .admin-brand small{color:var(--muted)}.admin-auth-card button{width:100%;margin-top:4px}.admin-auth-card .admin-setup{margin-top:20px;display:block;font-size:14px}.admin-pagination{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:16px 0}.admin-page .muted{color:var(--muted)}.admin-page .notice,.admin-auth .notice{padding:12px 15px;margin:12px 0;border:1px solid #8ab69c;border-radius:7px;background:#edf7f0;color:#244d38}.admin-page .notice.error,.admin-auth .notice.error{border-color:#bb7777;background:#fff1f0;color:#762e2e}.admin-page .admin-settings{display:block}.admin-settings>fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:18px;border:1px solid var(--line);border-radius:9px;margin:0 0 16px;background:#fff}.admin-settings>fieldset legend{grid-column:1/-1;padding:0 8px;font-size:17px}.admin-settings>fieldset label{margin:0}.admin-settings .admin-checkbox-label{display:flex;align-items:center;gap:8px}.admin-settings .admin-checkbox-label input[type=checkbox]{flex:0 0 auto}.admin-settings .admin-payment-settings label{grid-column:1/-1}.admin-settings textarea{min-height:120px;resize:vertical}.admin-settings>button{margin:4px 0 10px}.admin-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px;align-items:end}.admin-filters label{margin:0}.admin-filters .filter-search{grid-column:span 2}.admin-filters button{justify-self:start}.admin-page .admin-table-wrap+nav{margin-top:16px}.admin-page .admin-detail-grid>p{padding:10px 12px;background:#f6f8fa;border-radius:6px}.admin-page .admin-results-heading{color:var(--muted)}.admin-page .admin-logout button{background:transparent;color:#fff;border:1px solid #b7ccdc}.admin-page .admin-logout button:hover{background:#fff;color:var(--navy)}.admin-auth .admin-subtitle{margin:0 0 22px}.admin-login-form{margin-top:18px}.admin-login-form label{margin-bottom:16px}.admin-auth-card .admin-setup{margin-top:18px}.admin-page .admin-page-heading{margin-bottom:18px}.admin-page .admin-page-heading .admin-subtitle{margin:0 0 18px}@media(max-width:760px){.admin-settings>fieldset{grid-template-columns:1fr}.admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filters .filter-search{grid-column:1/-1}.admin-filters button{grid-column:1/-1}.admin-page .admin-detail-grid{grid-template-columns:1fr}}@media(max-width:460px){.admin-filters{grid-template-columns:1fr}.admin-filters .filter-search{grid-column:auto}.admin-pagination{flex-wrap:wrap}.admin-header-inner{padding:14px 15px}.admin-tools{align-items:flex-start}.admin-user{max-width:160px;overflow-wrap:anywhere}}@media(max-width:760px){.admin-header-inner{align-items:flex-start;flex-direction:column;gap:12px}.admin-tools{width:100%;flex-wrap:wrap;gap:10px}.admin-tools nav{width:100%}.admin-tools nav a{padding:7px}.admin-shell{padding:22px 15px}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid,.admin-detail-grid{grid-template-columns:1fr}.admin-page h1{font-size:26px}}@media(max-width:420px){.admin-metrics{grid-template-columns:1fr}.admin-auth-card{padding:23px}}@media(max-width:640px){.admin-page{overflow-x:hidden}.admin-page .admin-shell{width:100%;min-width:0;padding-inline:15px}.admin-page .admin-metrics{grid-template-columns:minmax(0,1fr)}.admin-page .admin-card,.admin-page .admin-section{min-width:0}.admin-page .admin-table-wrap{width:100%;max-width:100%;overflow-x:auto}.admin-page .admin-filters{grid-template-columns:1fr}.admin-page .admin-filters .filter-search{grid-column:auto}.admin-page .admin-filters button{grid-column:auto}}

.roster-card,.roster-preview{margin:20px 0}

.admin-page .admin-skip{position:absolute;left:12px;top:-80px;background:#fff;padding:12px;z-index:10}.admin-page .admin-skip:focus{top:8px}.admin-page .admin-mobile-nav summary{display:none}.admin-page .admin-mobile-nav nav{display:flex;gap:6px}.admin-page .admin-dashboard-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px}.admin-page .admin-dashboard-filters label{display:flex;flex:1 1 160px;flex-direction:column;gap:5px}.admin-page .admin-dashboard-filters input,.admin-page .admin-dashboard-filters select{width:100%;min-height:44px}.admin-page .admin-dashboard-filters button,.admin-page .admin-dashboard-filters a{min-height:44px;display:inline-flex;align-items:center}.admin-page .admin-dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-page .admin-dashboard-number{font-size:2rem;font-weight:700;margin:8px 0 0}.admin-page .admin-dashboard-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:16px;margin:18px 0}.admin-page .admin-dashboard-layout .admin-section{min-width:0}.admin-page .admin-dashboard-side .admin-section+.admin-section{margin-top:16px}.admin-page .admin-dashboard-chart{overflow-x:auto}.admin-page .admin-dashboard-chart svg{width:100%;min-width:350px;height:auto}.admin-page .admin-dashboard-chart .series-checkpoint{stroke:#155687}.admin-page .admin-dashboard-chart .series-igcse{stroke:#13764b;stroke-dasharray:8 4}.admin-page .admin-dashboard-chart .series-alevel{stroke:#9c4b12;stroke-dasharray:2 4}.admin-page .admin-dashboard-legend{display:flex;flex-wrap:wrap;gap:16px;list-style:none;padding:0}.admin-page .admin-dashboard-legend li:before{content:'— ';font-weight:800}.admin-page .admin-dashboard-legend .series-checkpoint{color:#155687}.admin-page .admin-dashboard-legend .series-igcse{color:#13764b}.admin-page .admin-dashboard-legend .series-alevel{color:#9c4b12}.admin-page .admin-user-record{border-top:1px solid var(--line);padding:16px 0;overflow-wrap:anywhere}.admin-page .admin-user-record>div:first-child{display:flex;gap:12px;flex-wrap:wrap}.admin-page .admin-user-actions{display:flex;gap:16px;flex-wrap:wrap}.admin-page .admin-user-actions a{min-height:44px;display:inline-flex;align-items:center}.admin-page .admin-user-form form{display:grid;gap:12px;max-width:620px}.admin-page .admin-user-form label{display:grid;gap:5px}.admin-page .admin-user-form input,.admin-page .admin-user-form select{min-height:44px;width:100%}.admin-page .admin-user-form button{min-height:44px;justify-self:start}.admin-page .admin-role-help{font-size:.9rem}
@media(max-width:899px){.admin-page .admin-header-inner,.admin-page .admin-tools{flex-wrap:wrap}.admin-page .admin-mobile-nav summary{display:block;cursor:pointer;color:white;padding:10px;border:1px solid #b7ccdc;border-radius:6px;min-height:44px}.admin-page .admin-mobile-nav:not([open]) nav{display:none}.admin-page .admin-mobile-nav nav{flex-direction:column}.admin-page .admin-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-page .admin-dashboard-layout{grid-template-columns:1fr}.admin-page .admin-dashboard-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-page .admin-dashboard-side .admin-section+.admin-section{margin-top:0}}
@media(max-width:600px){.admin-page .admin-dashboard-metrics,.admin-page .admin-dashboard-side{grid-template-columns:1fr}.admin-page .admin-dashboard-filters label,.admin-page .admin-dashboard-filters button,.admin-page .admin-dashboard-filters>a{flex-basis:100%;width:100%}.admin-page .admin-table-wrap{max-width:100%;overflow-x:auto}.admin-page .admin-shell{min-width:0}}.roster-form,.roster-confirm{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.roster-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.roster-counts>div{padding:12px;border:1px solid var(--line);border-radius:8px}.roster-counts dt{color:var(--muted)}.roster-counts dd{font-size:22px;font-weight:700;margin:4px 0 0}.roster-warning{padding:12px;background:#fff3d6;border-left:4px solid #a56300}.roster-form button,.roster-confirm button{padding:10px 16px;border:0;border-radius:6px;background:var(--navy);color:white;font:inherit;cursor:pointer}.roster-confirm label{display:flex;align-items:flex-start;gap:8px}.roster-confirm input[type=checkbox]{margin-top:6px}@media(max-width:700px){.admin-header-inner,.admin-tools{align-items:stretch;flex-direction:column}.admin-header-inner{padding:12px 16px}.admin-tools{gap:8px}.admin-tools nav{order:0}.admin-user{order:1}.admin-logout{order:2}.admin-shell{padding:20px 16px}.roster-counts{grid-template-columns:1fr}.roster-form input[type=file]{max-width:100%}}
