:root{font-family:system-ui,sans-serif;color:#15324e;background:#f2f5f9}*{box-sizing:border-box}body{margin:0}header{padding:22px max(24px,calc((100vw - 1000px)/2));background:#0b2f6b;color:white;display:flex;justify-content:space-between;gap:20px}header strong{font-size:25px}header strong span{color:#ffad5c}main{max-width:1000px;margin:32px auto;padding:0 20px}section{background:white;border-radius:16px;padding:24px;margin:20px 0;border:1px solid #dce4ed}section section{border-radius:10px}h1{font-size:30px}h2{margin-top:0}p{line-height:1.6}form{max-width:700px}label{display:block;margin:12px 0;font-weight:600}input,select,textarea{width:100%;padding:12px;border:1px solid #aab9ca;border-radius:7px;margin-top:6px;font:inherit}textarea{min-height:85px}button{background:#0b2f6b;color:white;padding:12px 20px;border:0;border-radius:7px;font:inherit;cursor:pointer;margin:8px 0}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e7eef6;color:#0b2f6b}.bar,.grid{display:flex;gap:16px;flex-wrap:wrap}.bar{justify-content:space-between;align-items:center}.grid label{flex:1 1 230px}.card{border:1px solid #dce4ed;padding:18px;margin:12px 0;border-radius:9px}.choice{font-weight:400;display:flex;gap:12px;align-items:center;background:#f4f7fa;padding:12px;border-radius:6px}.choice input,input[type=checkbox]{width:auto;margin:0}.check{display:flex;align-items:center;gap:12px;font-weight:400}#notice{padding:12px;border-radius:8px;white-space:pre-wrap}#notice:empty{display:none}#notice.error{background:#ffe9e5;color:#8a2216}#notice.ok{background:#e3f5ec}#clock{font-size:24px;font-weight:700;color:#a74c00}summary{cursor:pointer;padding:20px 0}footer{text-align:center;padding:24px;color:#66788a}[hidden]{display:none!important}@media(max-width:600px){header{padding:18px}header>span{display:none}section{padding:18px}main{padding:0 10px}}

.authfields{border:0;padding:0;margin:0}#navigation{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;border-bottom:1px solid #dce4ed}#navigation button{background:#e7eef6;color:#15324e}#navigation button.active{background:#0b2f6b;color:white}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.stat{background:#f2f5f9;padding:20px;border-radius:12px}.stat strong{display:block;font-size:32px;color:#0b2f6b}.stat span{font-size:14px}#questionNav{display:flex;flex-wrap:wrap;gap:6px}#questionNav button{min-width:42px;padding:8px}.answered{background:#176447}.examtoolbar{position:static;background:white;padding:12px;border-bottom:2px solid #dce4ed}.examtoolbar p{margin:8px 0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f5a623;outline-offset:3px}#boot{padding:16px;background:#fff2d8}#cancelEdit{margin-bottom:12px}@media(max-width:600px){h1{font-size:24px}#navigation button{padding:10px}.stats{grid-template-columns:repeat(2,1fr)}.examtoolbar{position:static}.bar{align-items:center}button{min-height:44px}}

#quickActions{display:flex;gap:8px;flex-wrap:wrap}
@media print{header,footer,nav,button,#admin,#staff,#dashboard,#account,#invigilation,#exams{display:none!important}#results{display:block!important}.card{break-inside:avoid}} .check input{width:auto} #monitorRows .card{border-left:4px solid #f28c28}
header{background:var(--school-primary,#0b2f6b)}button:not(.secondary){background:var(--school-primary,#0b2f6b)}header img{max-width:80px;object-fit:contain}pre{white-space:pre-wrap}input[type=checkbox]{width:auto}

.termScroll{overflow-x:auto;max-width:100%}.termScroll table{border-collapse:collapse;width:100%}.termScroll th,.termScroll td{padding:.5rem;text-align:left;border-bottom:1px solid #cbd5e1}.termScroll input{min-width:5rem}.termScroll select{min-width:6rem}.termScroll textarea{min-width:14rem}#termHistoryRows pre{white-space:pre-wrap;overflow-wrap:anywhere}

.questionDiagram{max-width:100%;max-height:480px;object-fit:contain}.questionSupport blockquote{margin:12px 0;padding:12px;background:#eff6ff;white-space:pre-wrap}.practiceFeedback{padding:12px;background:#e8f1eb;white-space:pre-wrap}.practiceFeedback:empty{display:none}.katex-display{max-width:100%;overflow:auto}#annualHistoryRows pre{white-space:pre-wrap;overflow-wrap:anywhere}

/* Paged CBT: visible controls remain readable on phones. */
.subject-tabs,.paging-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.subject-tabs button{flex:1 1 140px}.subject-tabs .active{outline:3px solid #0b2f6b;outline-offset:2px}.question-nav [aria-current="step"]{outline:3px solid #0b2f6b;outline-offset:2px}.accuracy-row meter{width:100%;height:1.5rem}.cbt-pager{margin:1rem 0}fieldset[hidden]{display:none!important}

/* Keep question numbers beneath the active question at every screen size. */
#questionNav,#practiceNav{display:flex;flex-wrap:wrap;gap:6px;margin:1rem 0;position:static}#questionNav button,#practiceNav button{min-width:42px;padding:8px}.cbt-pager{position:static}

.learning-tools{padding:12px;border:1px solid #dce4ed;border-radius:8px;margin:12px 0}.learning-tools button{margin-right:8px}dialog{max-width: min(560px,95vw);border:1px solid #aab9ca;border-radius:12px;padding:24px}dialog::backdrop{background:#0007}#freeAudio{width:100%}

/* Everlight product identity; school colours remain configurable. */
header{align-items:center;flex-wrap:wrap}
header .product-brand{display:block;background:#fff;border-radius:10px;padding:8px 14px;border-bottom:3px solid #c49a42;max-width:360px}
header img.product-logo{width:320px;max-width:100%;height:auto;object-fit:contain}
header .school-logo{max-width:64px;height:44px;object-fit:contain}
footer{color:#203650;border-top:2px solid #c49a42}
@media(max-width:600px){header .product-brand{max-width:100%;width:280px}header img.product-logo{width:100%}}

/* Public welcome page */
#welcomeHome{max-width:1160px;margin:auto;padding:0 28px 36px;color:#102c4c}#welcomeHome[hidden]{display:none}
.welcome-nav{display:flex;justify-content:flex-end;gap:28px;padding:22px 0}.welcome-nav a,.welcome-actions a,.service-ribbons a{color:#12345b;text-decoration:none;font-weight:700}
.welcome-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:28px 0 54px}.welcome-hero h1{font-size:clamp(36px,4.4vw,62px);line-height:1.08;letter-spacing:-2px;margin:18px 0 22px}.welcome-hero p{font-size:18px;line-height:1.65}.eyebrow{font-size:12px!important;letter-spacing:2px;font-weight:800;color:#866315}.welcome-hero figure{margin:0;position:relative}.welcome-hero img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:24px;box-shadow:14px 14px 0 #e7d5a7}.welcome-hero figcaption{position:absolute;bottom:18px;left:18px;background:#fff;padding:10px 16px;border-radius:20px;color:#102c4c;font-weight:700}
.welcome-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:28px}a.welcome-primary{display:inline-block;background:#12345b;color:white;padding:15px 20px;border-radius:9px;text-decoration:none;font-weight:700}.welcome-note{font-size:13px!important;color:#56667c}#services{scroll-margin-top:20px}#services h2{font-size:32px}.service-ribbons{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-ribbons article{background:white;border:1px solid #dce3ec;border-top:4px solid #c49a42;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.service-ribbons span{font-size:11px;letter-spacing:1px;color:#856321;font-weight:bold}.service-ribbons h3{margin:0;font-size:21px}.service-ribbons p{font-size:14px;line-height:1.65;margin:0}.service-ribbons a{margin-top:auto;padding-top:12px;font-size:13px}.welcome-contact{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px;padding:28px;background:#e8edf5;border-radius:14px}.welcome-contact h2{margin:0 0 10px}.welcome-contact p{margin:0}
header .product-brand{max-width:248px;padding:4px 10px}header img.product-logo{width:228px}header{padding-top:14px;padding-bottom:14px}#auth{scroll-margin-top:24px}html{scroll-behavior:smooth}
@media(max-width:850px){.service-ribbons{grid-template-columns:1fr 1fr}.welcome-hero{gap:26px}}
@media(max-width:600px){#welcomeHome{padding:0 18px 24px}.welcome-hero{grid-template-columns:1fr;padding-top:12px}.welcome-hero h1{letter-spacing:-1px}.welcome-hero img{max-height:260px}.welcome-nav{justify-content:space-between;gap:12px;font-size:13px}.service-ribbons{grid-template-columns:1fr}.welcome-contact{flex-direction:column;align-items:flex-start}header .product-brand{width:220px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.role-logins{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.role-logins button{white-space:normal}.role-logins svg{width:92px;display:block;margin:auto}.role-logins [aria-pressed=true]{outline:3px solid #c49a42;background:#eef2fa}#roleLoginVisual{display:flex;align-items:center;gap:22px;background:#eef2fa;border-radius:12px;margin:20px 0;padding:14px}#roleLoginVisual:empty{display:none}#roleLoginVisual svg{width:110px;flex-shrink:0}#roleLoginVisual strong{font-size:22px}#roleLoginVisual p{margin-bottom:0}@media(max-width:600px){.role-logins{grid-template-columns:1fr 1fr}#roleLoginVisual svg{width:80px}#roleLoginVisual strong{font-size:18px}}

/* Clear account entry and accessible focus. */
#landingRoleLogins,#roleLoginButtons{grid-template-columns:repeat(3,minmax(0,1fr))}
.platform-access{background:transparent;color:inherit;text-decoration:underline;font-size:.85rem;margin-left:1rem}
#changeLoginRole,#studentEmailOption{margin:10px 0}
:focus-visible{outline:3px solid #997221;outline-offset:4px}
.welcome-info{padding:28px;border-top:1px solid #dce3ed;margin-top:28px}
.welcome-info li{margin:14px 0;line-height:1.6}
.welcome-info details{padding:14px 0;border-bottom:1px solid #dce3ed}
.welcome-info summary{cursor:pointer;font-weight:600}
@media(max-width:600px){#landingRoleLogins,#roleLoginButtons{grid-template-columns:1fr}.welcome-info{padding:18px}.platform-access{display:block;margin:12px auto}}
.school-preview{display:flex;align-items:center;gap:12px;padding:12px;background:#eef2fa;border-radius:8px;margin:12px 0}.school-preview img{height:48px;width:48px;object-fit:contain}#resultChecker{background:white;border-radius:12px;padding:24px;margin:24px auto;max-width:1100px}#resultCardAdmin{margin:24px 0;border-top:1px solid #dce3ed;padding:18px 0}#resultCardRows{overflow-wrap:anywhere}#cardStudents{max-height:350px;overflow:auto;padding:12px}#cardStudents label{display:block}#checkedReport{max-width:100%;overflow:auto}.welcome-nav{flex-wrap:wrap}
/* Results workspace: keep the roster readable and controls clear on phones. */
.result-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.result-tabs [aria-pressed=true]{background:#0b2f6b;color:#fff;outline:2px solid #c49a42}#termGrid input{width:90px;min-width:70px}#termGrid th small{font-weight:400}#termGrid [data-total]{font-weight:700}#termEntryState{padding:10px;background:#eef3f8;border-radius:7px}#termFilters select{min-width:140px}#termSummaries summary{font-weight:700}#termGrid table{min-width:620px}#termGrid td,#termGrid th{vertical-align:top}#termGrid textarea{min-width:240px}button.platform-access{color:#fff;background:#0b2f6b}#resultChecker{scroll-margin-top:20px}@media(max-width:600px){#termFilters{gap:6px}#termFilters label{flex-basis:calc(50% - 10px)}.result-tabs button{flex:1;padding:12px}#termGrid .termScroll{max-height:65vh}#termGrid thead th{position:sticky;top:0;background:#eef3f8;z-index:1}}
