:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#18304c;background:#f4f7fc;font-size:15px;--bg:#f4f7fc;--surface:#fff;--border:#e0e9f4;--ink:#193451;--mute:#607692;--subtle:#ebf2fa;--nav:#143963;--shadow:0 8px 32px rgba(29,61,101,.055);--blue:#2369b3;--mint:#008c88;--line:#e4edf6;--good:#087f6b;--bad:#af4646}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #53a6eb;outline-offset:3px} [hidden]{display:none!important}
.siteTop{background:#143963;color:#f9fcff;border-bottom:1px solid #255782}.topInner{max-width:1220px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:13px 23px;gap:18px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none}.brand img{border-radius:13px;object-fit:cover}.brand strong{display:block;font-size:19px;letter-spacing:.06em}.brand small{display:block;color:#bcd4e9;font-size:12px;font-weight:500}.topActions{display:flex;align-items:center;gap:12px}.topBtn,.topLink{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.19);border-radius:11px;padding:10px 13px;font-size:13px;min-height:42px;text-decoration:none;display:inline-flex;align-items:center;gap:7px;font-weight:600}.topBtn:hover,.topLink:hover{background:rgba(255,255,255,.17)}main{max-width:1220px;padding:27px 23px 38px;margin:0 auto}.loginHero{margin:0 0 22px;padding:25px 5px 7px}.heroEyebrow,.kicker{font-size:11px;font-weight:850;letter-spacing:.14em;color:#236ba0;margin:0 0 9px}.loginHero h1{font-size:clamp(34px,5.2vw,62px);line-height:1.09;letter-spacing:-.045em;font-weight:850;margin:0;color:#173a63}.loginHero h1 em{font-style:normal;color:#2593a3}.loginHero p{color:var(--mute);margin:15px 0 2px;font-size:16px;line-height:1.6}
.surface{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.authGrid{display:grid;grid-template-columns:1.25fr .85fr;gap:18px;align-items:stretch}.authPanel{padding:35px;max-width:640px}.authPanel h2{font-size:27px;letter-spacing:-.035em;margin:14px 0 8px}.authIcon{width:54px;height:54px;border-radius:16px;background:#e7f5fb;display:grid;place-items:center;color:#17679d;font-size:26px}.authAside{display:flex;flex-direction:column;gap:14px;justify-content:center;padding:18px 15px}.miniFeature{display:flex;align-items:flex-start;gap:14px}.featureIcon{width:42px;height:42px;flex:none;border-radius:12px;background:#e2edf9;color:#2265a9;display:grid;place-items:center;font-size:22px}.miniFeature strong{font-size:15px}.miniFeature p{font-size:13px;color:var(--mute);line-height:1.5;margin:5px 0}.otpPanel{max-width:650px}.muted{color:var(--mute);line-height:1.55;margin:4px 0 14px}.compact{font-size:13px}.fineprint{font-size:12px;color:var(--mute);line-height:1.5;margin:14px 0 0}.authPanel label,.changeFlow label{display:block;font-size:13px;font-weight:800;margin:22px 0 9px}.authPanel input,.changeFlow input{width:100%;height:54px;padding:11px 15px;background:var(--surface);border:1px solid #b9cbe0;border-radius:11px;color:var(--ink);font-size:17px}.primary{background:#23669f;color:white;font-weight:800;border:0;border-radius:11px;min-height:49px;padding:12px 19px}.primary:hover{background:#175385}.authPanel .primary{margin-top:13px;display:flex;justify-content:space-between;align-items:center;width:100%}.secondary{border:1px solid #c5dbed;border-radius:11px;background:#eaf2fa;color:#23537d;padding:11px 17px;font-weight:750;min-height:44px}.secondary:hover{background:#dcecf9}.otpPanel .secondary{margin-top:13px}.notice{padding:13px 17px;border:1px solid #aedbc4;background:#e9f7ee;color:#13583c;border-radius:12px;margin:0 0 20px;line-height:1.5}.notice.error{background:#fff0ee;border-color:#efcac6;color:#912d28}.notice[hidden]{display:none!important}
.welcomeCard{background:linear-gradient(115deg,#163d6d,#205b91 68%,#1e8997);border-radius:24px;padding:31px 34px;color:white;min-height:230px;display:flex;justify-content:space-between;gap:20px;overflow:hidden;position:relative;isolation:isolate}.welcomeCard:before{content:"";position:absolute;right:-140px;top:-110px;width:410px;height:410px;border:1px solid rgba(255,255,255,.16);border-radius:50%;z-index:-1}.welcomeCard:after{content:"";position:absolute;right:20px;bottom:-250px;width:480px;height:480px;border:1px solid rgba(255,255,255,.12);border-radius:50%;z-index:-1}.welcomeTop{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.pillLight{font-size:10px;letter-spacing:.14em;font-weight:900;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);border-radius:30px;padding:7px 12px}.privateLabel{font-size:12px;color:#d8edf8}.welcomeCard h1{font-size:clamp(29px,4vw,43px);letter-spacing:-.055em;margin:23px 0 4px;line-height:1.15}.welcomeDot{color:#8ee4db}.welcomeText{color:#d9eafa;font-size:15px;margin:8px 0 26px}.studentInfo{display:flex;gap:11px;flex-wrap:wrap}.studentInfo span{display:inline-flex;gap:7px;align-items:center;min-width:0;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.08);padding:8px 11px;font-size:12px;overflow-wrap:anywhere}.studentInfo b{color:#b9d7ec;font-size:11px;font-weight:650}.studentInfo strong{font-weight:800}.welcomeButtons{display:flex;gap:9px;align-self:flex-start;flex:none}.outlineOnDark{border:1px solid rgba(255,255,255,.36);color:white;border-radius:11px;background:rgba(255,255,255,.09);padding:10px 13px;font-weight:750;min-height:40px}.outlineOnDark:hover{background:rgba(255,255,255,.2)}.testBadge{display:inline-block;background:#fff5c7;color:#634500;border:1px solid #ffe39f;border-radius:9px;padding:7px 12px;font-weight:750;font-size:12px;margin:15px 0 0}
.sectionTitleRow{margin:29px 1px 17px;display:flex;justify-content:space-between;gap:14px;align-items:end}.sectionTitleRow h2,.panelTop h2{margin:3px 0 0;font-size:23px;letter-spacing:-.035em}.dataLabel{font-size:12px;color:var(--mute);background:var(--subtle);border-radius:30px;padding:8px 12px}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:19px 20px;min-height:174px;box-shadow:var(--shadow);min-width:0}.metricIcon{height:34px;width:34px;display:grid;place-items:center;border-radius:11px;font-weight:850;font-size:19px}.metricIcon.blue{color:#155da9;background:#e7f1fc}.metricIcon.violet{color:#6450aa;background:#f0edff}.metricIcon.teal{color:#078480;background:#e0f8f3}.metricIcon.amber{color:#ae701a;background:#fff5df}.metric p{color:var(--mute);font-size:13px;margin:15px 0 3px;font-weight:650}.metric strong{font-size:clamp(24px,3vw,31px);line-height:1.3;letter-spacing:-.035em;display:block;font-variant-numeric:tabular-nums}.metric small{font-size:11px;color:var(--mute);display:block;line-height:1.5;margin-top:5px}.dashboardGrid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.85fr);gap:16px;margin-top:18px;align-items:stretch}.sideStack{display:flex;flex-direction:column;gap:16px}.sideStack .surface{flex:1}.chartPanel,.insightPanel,.comparisonPanel,.historyPanel,.phonePanel{padding:23px}.panelTop{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.panelTop .muted{font-size:13px;margin:7px 0 0}.freshTag{display:inline-flex;border-radius:30px;background:var(--subtle);color:#34618b;padding:7px 11px;font-size:11px;font-weight:700;white-space:nowrap}.legend{display:flex;gap:18px;align-items:center;color:var(--mute);font-size:12px;font-weight:650;margin:12px 0 8px}.legend>span{display:flex;align-items:center;gap:7px}.legendDot{height:9px;width:23px;display:inline-block;border-radius:10px}.legendDot.own{background:#2888d6}.legendDot.average{background:repeating-linear-gradient(90deg,#1b9a94 0 6px,transparent 6px 10px)}.chartViewport{overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:thin;scrollbar-color:#aac5db transparent;min-height:300px}.chartViewport svg{height:auto;max-width:none;display:block}.chartEmpty{display:grid;place-items:center;min-height:220px;background:var(--subtle);border-radius:15px;color:var(--mute);text-align:center;padding:20px;font-size:14px}.chartPoint{cursor:default}.chartPoint:focus-visible{outline:0;stroke:#18304c;stroke-width:5}.chartPointTitle{font-size:13px}.scrollHint{font-size:11px;color:var(--mute);margin:3px 0 5px}.trendBottom{min-height:46px;margin-top:9px;padding:12px 13px;border-radius:12px;background:var(--subtle);font-size:13px;color:var(--ink);line-height:1.5}.trendBottom strong{color:var(--blue)}.sideStack .surface h2{font-size:18px;margin:3px 0 11px}.latestExam{margin-top:12px}.latestExam .examId{font-size:16px;font-weight:800;line-height:1.5}.latestScore{font-size:37px;font-weight:850;letter-spacing:-.04em;color:var(--ink);margin:10px 0}.latestScore small{font-size:15px;color:var(--mute);font-weight:650}.latestCompare{background:var(--subtle);padding:12px;border-radius:12px;font-size:12px;line-height:1.6}.latestCompare b{font-weight:800}.scoreTrack{height:12px;display:flex;border-radius:10px;overflow:hidden;background:var(--subtle);margin:15px 0}.scoreTrack>span{min-width:0}.bandsLegend{display:grid;gap:10px}.bandRow{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px}.bandRow>span{display:flex;align-items:center;gap:9px;color:var(--mute)}.bandRow i{height:10px;width:10px;border-radius:3px;display:inline-block;flex:none}.bandRow b{font-variant-numeric:tabular-nums}.bandsEmpty{font-size:13px;color:var(--mute);margin:12px 0}.comparisonPanel,.historyPanel,.phonePanel{margin-top:18px}.insightGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.insight{background:var(--subtle);border:1px solid var(--border);border-radius:13px;padding:16px;min-width:0}.insight p{margin:0 0 10px;color:var(--mute);font-weight:700;font-size:12px}.insight strong{display:block;font-size:24px;font-variant-numeric:tabular-nums}.insight small{display:block;margin-top:9px;line-height:1.5;color:var(--mute);font-size:12px}.trendGood{color:var(--good)}.trendBad{color:var(--bad)}.filterLabel{display:inline-flex;gap:10px;align-items:center;flex-wrap:nowrap;color:var(--mute);font-size:12px;font-weight:750}.filterLabel select{background:var(--surface);color:var(--ink);border:1px solid #bed1e2;border-radius:11px;padding:10px 13px;font-size:13px;min-height:43px}.historyContainer{overflow-x:auto}.historyTable{width:100%;border-collapse:collapse;min-width:610px;text-align:left;font-variant-numeric:tabular-nums}.historyTable th{color:var(--mute);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:850;border-bottom:1px solid var(--line);padding:14px 10px;white-space:nowrap}.historyTable td{padding:16px 10px;border-bottom:1px solid var(--line);font-size:13px}.historyTable tbody tr:last-child td{border-bottom:0}.historyTable tbody tr:hover{background:var(--subtle)}.historyTable th:first-child,.historyTable td:first-child{padding-left:0}.historyTable th:last-child,.historyTable td:last-child{padding-right:0}.examTitle{font-weight:800}.examSubtitle{display:block;margin-top:5px;color:var(--mute);font-size:11px}.markChip{background:#e3f4ee;color:#106b5e;padding:7px 10px;border-radius:9px;font-size:13px;font-weight:900;display:inline-block;white-space:nowrap}.difference{font-weight:800;white-space:nowrap}.difference.pos{color:var(--good)}.difference.neg{color:var(--bad)}.historyEmpty{background:var(--subtle);border-radius:13px;padding:25px;color:var(--mute);text-align:center}.reportNote{margin-top:14px}.phoneHead{display:flex;gap:15px;align-items:center}.phoneIcon{width:52px;height:52px;border-radius:15px;background:#e7f4f4;display:grid;place-items:center;color:#0a837f;font-size:22px;flex:none}.phoneInfo{flex:1}.phoneInfo h2{margin:0 0 5px;font-size:19px}.phoneInfo p{margin:0}.phoneHead .secondary{flex:none}.changeFlow{max-width:550px;margin-top:20px;border-top:1px solid var(--line);padding-top:18px}.changeFlow .primary{margin-top:13px}.changeFlow .secondary{margin-top:13px}.helpBox{display:flex;align-items:flex-start;gap:15px;padding:24px 3px 2px;max-width:760px;margin:28px auto 0}.helpSymbol{border:1px solid #bad3e7;border-radius:50%;display:grid;place-items:center;width:30px;height:30px;flex:none;color:#286fa8;font-weight:800}.helpBox strong{font-size:14px}.helpBox p{color:var(--mute);line-height:1.6;font-size:12px;margin:6px 0}footer{text-align:center;font-size:11px;color:var(--mute);padding:10px 15px 35px}.printOnly{display:none}
button[disabled],input[disabled]{opacity:.55;cursor:wait}
/* Dark appearance is optional and never changes how data is loaded. */
body.dark{--bg:#101827;--surface:#182335;--border:#2c4056;--ink:#edf5ff;--mute:#acbdd1;--subtle:#233349;--line:#304258;--shadow:none;--blue:#79beff;--good:#79dfc6;--bad:#ffa3a3;background:var(--bg)}body.dark .siteTop{background:#0b1a2e}body.dark .metricIcon.blue{background:#253f62;color:#89c4ff}body.dark .metricIcon.teal{background:#204443;color:#9ae6d6}body.dark .metricIcon.violet{background:#343052;color:#d3c1ff}body.dark .metricIcon.amber{background:#4a3c24;color:#fce1a3}body.dark .loginHero h1{color:#e9f5ff}body.dark .authIcon,body.dark .featureIcon{background:#243955;color:#82c5f5}body.dark .secondary{background:#293c52;color:#daecfc;border-color:#40617c}body.dark .secondary:hover{background:#38526e}body.dark .authPanel input,body.dark .changeFlow input{border-color:#496078}body.dark .markChip{color:#b2f2dc;background:#1c514b}body.dark .phoneIcon{background:#23403f;color:#a4e7e0}body.dark .notice:not(.error){color:#9ce8bb;background:#163b30;border-color:#2d7153}body.dark .notice.error{color:#ffd0cb;background:#4b2829;border-color:#a45d62}body.dark .testBadge{color:#513d0e}
@media(max-width:950px){.dashboardGrid{grid-template-columns:1fr}.sideStack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.welcomeCard{flex-wrap:wrap}.welcomeButtons{margin-top:-8px}.authGrid{grid-template-columns:1.15fr .85fr}.metric{padding:16px}.metricGrid{gap:10px}}
@media(max-width:680px){main{padding:18px 13px 27px}.topInner{padding:11px 13px}.topLink{display:inline-flex;white-space:nowrap}.brand img{width:36px;height:36px}.brand strong{font-size:17px}.brand small{font-size:10px}.topBtn{font-size:12px}.loginHero{padding:16px 4px 11px}.loginHero h1{font-size:36px}.loginHero p{font-size:14px}.authGrid{grid-template-columns:1fr}.authPanel{padding:24px}.authAside{padding:12px 5px}.welcomeCard{border-radius:17px;padding:22px 19px;min-height:0}.welcomeCard h1{font-size:30px;overflow-wrap:anywhere}.welcomeText{margin-bottom:18px}.studentInfo{gap:7px}.studentInfo span{font-size:11px;padding:7px 9px}.welcomeButtons{width:100%;justify-content:flex-start;margin-top:4px}.sectionTitleRow{margin:24px 0 13px;align-items:start}.sectionTitleRow h2{font-size:20px}.dataLabel{display:none}.metricGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-height:150px;padding:14px}.metric strong{font-size:26px}.metric p{font-size:12px;margin-top:12px}.metric small{font-size:10px}.metricIcon{height:31px;width:31px}.dashboardGrid{gap:13px;margin-top:14px}.sideStack{grid-template-columns:1fr}.chartPanel,.insightPanel,.comparisonPanel,.historyPanel,.phonePanel{padding:19px 15px;border-radius:16px}.panelTop h2{font-size:21px}.panelTop .muted{font-size:12px}.freshTag{display:none}.chartViewport{min-height:270px}.insightGrid{grid-template-columns:1fr}.insight{padding:14px}.phoneHead{align-items:flex-start;flex-wrap:wrap}.phoneHead .secondary{margin-left:0}.phoneIcon{width:43px;height:43px}.phoneInfo{flex:1 1 calc(100% - 60px)}.filterLabel{width:100%;justify-content:space-between}.filterLabel select{min-width:170px}.historyTable{min-width:0}.historyTable thead{display:none}.historyTable,.historyTable tbody,.historyTable tr,.historyTable td{display:block;width:100%}.historyTable tr{background:var(--subtle);border:1px solid var(--border);border-radius:13px;padding:12px;margin-bottom:10px}.historyTable td{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;border:0!important;font-size:13px;text-align:right}.historyTable td:before{content:attr(data-label);font-size:11px;color:var(--mute);font-weight:800;text-align:left}.historyTable td:first-child{display:block;padding:4px 0 11px;border-bottom:1px solid var(--border)!important;text-align:left}.historyTable td:first-child:before{display:none}.historyTable td:last-child{padding-bottom:3px}.legend{font-size:11px}.helpBox{padding:17px 5px}}
@media(min-width:681px) and (max-width:980px){.metric strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{body{--bg:white;--surface:white;--ink:black;--mute:#555;--border:#bbb;background:white!important;color:black!important;font-size:10pt}.siteTop,.topActions,.welcomeButtons,.phonePanel,.helpBox,.filterLabel,footer,.scrollHint{display:none!important}main{padding:0;max-width:none}.welcomeCard{background:white!important;color:black!important;border:1px solid #ccc;min-height:0;padding:15px}.welcomeCard h1,.welcomeText,.studentInfo b,.studentInfo strong{color:black!important}.studentInfo span{border:1px solid #ddd;background:none}.metric,.surface{box-shadow:none;break-inside:avoid}.metricGrid{grid-template-columns:repeat(4,1fr)}.dashboardGrid{grid-template-columns:1fr}.sideStack{display:none}.chartViewport{display:none}.chartPanel{display:none}.historyPanel{page-break-before:auto}.historyTable{min-width:0}.historyTable td{padding:7px}.historyTable thead{display:table-header-group}.historyTable tr{break-inside:avoid}#siteNotice{display:none!important}}
.band-color-0{background:#c06c6c}.band-color-35{background:#e1a453}.band-color-50{background:#b2ac54}.band-color-65{background:#57a5ab}.band-color-75{background:#379a85}
/* Keep a wide time-series chart scrollable inside its panel on narrow phones. */
.dashboardGrid,.chartPanel,.sideStack,.insightPanel{min-width:0}
@media(max-width:950px){.dashboardGrid{grid-template-columns:minmax(0,1fr)}.sideStack{min-width:0}}

/* Password sign-in and OTP recovery: v3 */
.authModes{display:flex;flex-wrap:wrap;gap:7px;background:var(--soft,#eef4fa);border:1px solid var(--line,#d5e3ef);padding:5px;border-radius:14px;margin:19px 0 20px}
.authMode{flex:1;min-width:130px;background:transparent;border:0;color:var(--ink,#163761);padding:11px 9px;border-radius:10px;font-size:14px;font-weight:750;cursor:pointer}
.authMode.active{background:var(--surface,#fff);color:var(--brand,#17669b);box-shadow:0 1px 7px #0c326619}
.subtleAction{display:block;background:none;border:0;padding:13px 1px;text-align:left;color:#176aa8;font-weight:750;text-decoration:underline;cursor:pointer}
.passwordSetupPanel{margin:17px 0;padding:24px;border:2px solid #b6d6e9;background:var(--surface,#fff);display:grid;grid-template-columns:0.9fr 1.1fr;gap:22px;align-items:start}
.passwordSetupPanel h2{font-size:24px;margin:8px 0}
.setupForm{width:100%}
.setupForm label{margin-top:11px}
#resetRequestPanel,#resetVerifyPanel{margin:0 auto 22px;width:min(100%,640px)}
#passwordLoginForm label:not(:first-child),#resetVerifyForm label:not(:first-child){margin-top:14px}
@media(max-width:680px){.passwordSetupPanel{grid-template-columns:1fr;padding:18px}.authMode{min-width:110px;font-size:12px}}
@media print{.passwordSetupPanel{display:none!important}}

/* Shared in-depth reporting + authorized staff-only registration details. */
.staffStudentDetails,.detailedInsightsPanel{margin-top:18px;padding:23px}
.staffDetailGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:12px 0}
.staffDetail{margin:0;min-width:0;background:var(--subtle);border:1px solid var(--border);border-radius:12px;padding:13px 15px;overflow-wrap:anywhere}
.staffDetail dt{font-size:11px;color:var(--mute);font-weight:760;margin-bottom:8px}
.staffDetail dd{margin:0;font-size:14px;color:var(--ink);font-weight:790;line-height:1.45;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.staffDetail.contactDetail{background:var(--surface);border-color:#a6c8e4}
.privateInfoLabel{font-size:11px;color:var(--mute);border:1px solid var(--border);background:var(--subtle);border-radius:20px;padding:8px 11px;white-space:nowrap}
.detailInsightGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.detailInsight{min-width:0;border:1px solid var(--border);background:var(--subtle);border-radius:13px;padding:15px}
.detailInsight p{font-size:12px;color:var(--mute);font-weight:750;margin:0 0 10px}
.detailInsight strong{display:block;font-size:clamp(17px,2vw,23px);font-weight:850;letter-spacing:-.03em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.detailInsight small{display:block;color:var(--mute);font-size:11px;line-height:1.5;margin-top:9px}
.rankChartWrap{border-top:1px solid var(--line);padding-top:18px}
.rankChartWrap h3{font-size:17px;letter-spacing:-.025em;margin:0 0 5px}
.rankChartWrap .muted{font-size:12px;margin-bottom:12px}
.rankTrendChart{overflow-x:auto;max-width:100%;scrollbar-width:thin}
.rankTrendChart svg{height:auto;max-width:none;display:block}
@media(max-width:980px){.staffDetailGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.detailInsightGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.staffStudentDetails,.detailedInsightsPanel{padding:19px 15px;border-radius:16px}.staffDetailGrid{grid-template-columns:1fr;gap:8px}.detailInsightGrid{grid-template-columns:1fr 1fr;gap:8px}.detailInsight{padding:12px}.detailInsight strong{font-size:20px}.privateInfoLabel{white-space:normal}}
@media(max-width:390px){.detailInsightGrid{grid-template-columns:1fr}}
@media print{.staffStudentDetails,.detailedInsightsPanel{break-inside:avoid;box-shadow:none}.detailInsightGrid{grid-template-columns:repeat(4,1fr)}.staffDetailGrid{grid-template-columns:repeat(3,1fr)}.rankChartWrap{display:none}.privateInfoLabel{display:none}}

@media print{#staffStudentDetails:not([hidden]):before{content:"CONFIDENTIAL - DEKMA ADMINISTRATIVE COPY";display:block;font-size:10px;letter-spacing:.08em;color:#444;margin-bottom:12px;font-weight:800}}

/* Student-only Maths Alarm — isolated browser prototype */
#mathAlarmSection[hidden],#mathAlarmOverlay[hidden],#mathAlarmDayChoices[hidden]{display:none!important}
.mathAlarmPanel{padding:23px;margin:18px 0 20px;border:1px solid var(--border);overflow:hidden}
.mathAlarmPanel h2{margin:3px 0 9px;font-size:23px}
.mathAlarmPill{background:#e3f2ff;color:#154c78;border-radius:18px;white-space:nowrap;padding:9px 12px;font-size:10px;font-weight:850;letter-spacing:.04em;align-self:start}
.mathAlarmWarning{margin:18px 0;background:#fff8e6;border:1px solid #eed59c;color:#785211;line-height:1.7;font-size:12px;padding:14px 16px;border-radius:12px}
.mathAlarmFields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mathAlarmFields label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:800;color:var(--ink)}
.mathAlarmFields :is(input,select){font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 10px;max-width:100%;min-width:0;min-height:45px}
.mathAlarmDayChoices{border:1px solid var(--border);border-radius:12px;padding:12px;margin:17px 0 0;display:flex;gap:9px;flex-wrap:wrap}
.mathAlarmDayChoices legend{font-weight:800;font-size:12px;padding:0 5px}
.mathAlarmDayChoices label{font-size:12px;display:flex;gap:4px;align-items:center}
.mathAlarmSwitch{display:flex;gap:10px;align-items:center;margin:20px 0 0;font-size:14px;font-weight:750;cursor:pointer}
.mathAlarmSwitch input{height:20px;width:20px;accent-color:#146e99}
.mathAlarmControls{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.mathAlarmControls button{margin:0;min-width:170px}
.mathAlarmNext{background:var(--subtle);border:1px solid var(--border);border-radius:10px;padding:12px 15px;margin:19px 0 8px;font-size:13px;font-weight:800}
.mathAlarmFeedback{font-weight:750;font-size:13px;color:var(--good);min-height:5px;margin:8px 0}.mathAlarmFeedback.bad{color:var(--bad)}
.mathAlarmOverlay{position:fixed;inset:0;z-index:99999;overflow-y:auto;background:rgba(5,17,36,.92);display:flex;align-items:flex-start;justify-content:center;padding:clamp(12px,4vw,30px)}
body.mathAlarmRinging{overflow:hidden}
.mathAlarmDialog{width:min(100%,530px);min-width:0;background:#fff;color:#172f4c;padding:clamp(20px,4vw,32px);border-radius:25px;box-shadow:0 24px 80px #0008;text-align:center;margin:auto 0}
.mathAlarmBell{font-size:36px;line-height:1;margin-bottom:10px}
.mathAlarmOverline{font-size:11px;letter-spacing:.11em;color:#5685a5;font-weight:900;margin:0 0 13px}
.mathAlarmDialog h2{margin:0 0 9px;font-size:clamp(22px,4vw,30px);line-height:1.18}
.mathAlarmOverlayHint{font-size:13px;line-height:1.5;color:#536878;margin:8px 0 12px}
.mathAlarmCounter{display:inline-block;padding:8px 16px;background:#e7f4fb;color:#16618e;border-radius:30px;font-weight:900;font-size:12px}
.mathAlarmQuestionBox{margin:18px 0;background:#f1f6fb;border:1px solid #dce9f3;padding:23px 14px;border-radius:17px}
.mathAlarmQuestionBox span{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#557b9b;font-weight:900}
.mathAlarmQuestionBox p{font-size:clamp(18px,4vw,26px);overflow-wrap:anywhere;line-height:1.4;font-weight:850;color:#172f4c;margin:12px 0 0}
.mathAlarmOptions{display:grid;gap:9px}.mathAnswer{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px;border-radius:12px;border:1px solid #c7dbea;background:#fff;color:#183952;min-height:51px;font-size:clamp(13px,3vw,16px);cursor:pointer;overflow-wrap:anywhere;font-weight:760}
.mathAnswer:hover,.mathAnswer:focus-visible{background:#eaf6ff;border-color:#4796cc}.mathAnswer.right{background:#ddf5e7;border-color:#309f68}.mathAnswer.wrong{background:#ffe7e7;border-color:#bd4a4a}
.mathLetter{display:grid;place-items:center;background:#e8f0f8;border-radius:9px;min-width:32px;height:32px;flex:none;color:#2b5f88;font-size:13px}
.mathAlarmResponse{margin:14px 0;color:#435e73;min-height:24px;font-size:13px;font-weight:750;line-height:1.4}
.mathEmergency{border:1px solid #dc9a9a;background:#fff3f1;color:#aa3232;border-radius:12px;min-height:42px;padding:10px 16px;font-weight:850;cursor:pointer}
.mathAlarmSafety{color:#647689;font-size:11px;margin:10px 0 0}
body.dark .mathAlarmWarning{background:#3c3223;color:#ffe0a2;border-color:#745a2a}body.dark .mathAlarmPill{background:#1b3b56;color:#a6d7fa}
@media(max-width:920px){.mathAlarmFields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.mathAlarmPanel{padding:17px 14px;margin:14px 0}.mathAlarmPill{white-space:normal;max-width:120px;text-align:center}.mathAlarmPanel .panelTop{align-items:flex-start}.mathAlarmFields{gap:12px}.mathAlarmControls button{width:100%}.mathAlarmDialog{border-radius:18px}}
@media print{#mathAlarmSection,#mathAlarmOverlay{display:none!important}}

/* Maths Alarm V2: prominent blue-header launch and Sri Lanka live digital clock. */
.welcomeControls{display:flex;flex-direction:column;align-items:flex-end;gap:13px;flex:0 0 262px;min-width:0;position:relative;z-index:1}
.welcomeQuickTools{width:100%;display:flex;flex-direction:column;gap:11px}
.welcomeQuickTools[hidden]{display:none!important}
.welcomeClock{padding:13px 16px 12px;color:#fff;background:rgba(4,25,55,.32);border:1px solid rgba(255,255,255,.3);border-radius:15px;box-shadow:0 4px 17px rgba(3,24,52,.09);backdrop-filter:blur(5px)}
.clockCaption{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:850;letter-spacing:.1em;color:#d6ecf7}
.clockSignal{display:inline-block;flex:none;background:#94f6d6;width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 3px rgba(148,246,214,.13)}
.clockZone{margin-left:auto;font-size:10px;font-weight:750;letter-spacing:0;color:#e3f8fa}
.welcomeClockFace{display:flex;align-items:baseline;gap:8px;margin-top:6px;white-space:nowrap}
.sriClockDigits{font-variant-numeric:tabular-nums;font-feature-settings:'tnum';font-weight:850;letter-spacing:.015em}
.welcomeClockFace .sriClockDigits{font-size:clamp(24px,2.3vw,30px);line-height:1.1}
.sriClockPeriod{font-size:13px;font-weight:850;letter-spacing:.03em}
.sriClockDate{display:block;font-size:11px;margin-top:4px;color:#d7edfa;font-weight:600}
.heroAlarmButton{display:flex;align-items:center;width:100%;text-align:left;gap:12px;padding:12px 12px;border:1px solid #ffe3a2;border-radius:15px;background:#fff0c7;color:#173a63;min-height:77px;box-shadow:0 5px 19px rgba(9,33,64,.16);transition:transform .12s ease,background .12s ease}
.heroAlarmButton:hover{background:#fff7df;transform:translateY(-1px)}
.heroAlarmButton:focus-visible{outline:3px solid #fff;outline-offset:3px}
.heroAlarmIcon{display:grid;place-items:center;font-size:26px;flex:none;width:43px;height:43px;border-radius:13px;background:white}
.heroAlarmWords{flex:1;min-width:0}
.heroAlarmWords strong{display:block;font-size:16px;line-height:1.25;letter-spacing:-.025em}
.heroAlarmWords small{display:block;font-size:11px;color:#426486;font-weight:650;line-height:1.5;margin-top:2px}
.heroAlarmArrow{font-size:18px;flex:none;font-weight:800}
.heroAlarmButton[aria-expanded='true']{background:#fff9e9}
.mathAlarmPanel{scroll-margin-top:16px}
.mathAlarmPanel:focus{outline:none}
.mathAlarmPanelActions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.mathAlarmClose{min-height:35px;background:var(--subtle);color:var(--ink);border:1px solid var(--border);border-radius:11px;padding:8px 11px;font-size:12px;font-weight:800}
.mathAlarmClose:hover{background:#dcecf9}
.mathAlarmLiveTime{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 20px;padding:16px 20px;border-radius:15px;border:1px solid #c5e1ed;background:linear-gradient(115deg,#f2fbff,#e8f6fb);margin:3px 0 16px;color:#153d61}
.mathAlarmClockLabel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.mathAlarmClockLabel small{display:block;flex:1 0 100%;padding-left:15px;color:#54708c;font-size:11px;font-weight:650}
.mathAlarmClockLabel .clockSignal{background:#199b7c}
.mathAlarmClockReadout{grid-column:2;grid-row:1/3;display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.mathAlarmClockReadout .sriClockDigits{font-size:clamp(27px,3.5vw,36px)}
.mathAlarmClockReadout .sriClockPeriod{color:#2876a4;font-size:16px}
.mathAlarmDate{grid-column:1;font-size:12px;color:#54708c;font-weight:650}
.mathOverlayClock{display:flex;justify-content:center;align-items:baseline;gap:6px;color:#1f5e8f;margin:-4px 0 14px}
.mathOverlayClock .sriClockDigits{font-size:26px}
.mathOverlayClock .sriClockPeriod{font-size:12px}
body.dark .mathAlarmLiveTime{background:#1b3546;color:#e4f2fc;border-color:#3b617c}
body.dark .mathAlarmClockLabel small,body.dark .mathAlarmDate{color:#b1cadb}
body.dark .mathAlarmClockReadout .sriClockPeriod{color:#9bdbff}
@media(max-width:950px){.welcomeControls{flex:0 0 240px}.welcomeButtons{margin-top:0}}
@media(max-width:680px){.welcomeCard{flex-direction:column}.welcomeControls{width:100%;flex:0 1 auto;align-items:stretch}.welcomeQuickTools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.welcomeClock{min-width:0}.welcomeClockFace .sriClockDigits{font-size:clamp(20px,4.7vw,28px)}.heroAlarmButton{min-width:0}.heroAlarmIcon{width:36px;height:36px;font-size:23px}.heroAlarmWords strong{font-size:14px}}
@media(max-width:500px){.welcomeQuickTools{grid-template-columns:1fr}.welcomeClockFace .sriClockDigits{font-size:32px}.welcomeControls{gap:12px}.mathAlarmLiveTime{grid-template-columns:1fr;gap:8px;padding:14px}.mathAlarmClockReadout{grid-column:1;grid-row:auto}.mathAlarmDate{grid-column:1}.mathAlarmClockReadout .sriClockDigits{font-size:32px}.mathAlarmPanelActions{justify-content:flex-start}.mathAlarmPanelActions .mathAlarmPill{max-width:none}}
@media print{.welcomeControls{display:none!important}}

/* V4: clear, capped browser-alarm adaptive sound indicator. */
.mathAlarmSoundNote{margin:12px 0 16px;padding:12px 15px;background:var(--subtle);border:1px solid var(--border);border-radius:12px;font-size:12px;line-height:1.6;color:var(--ink)}
.mathAlarmSoundStatus{border:1px solid #cbe1ee;border-radius:14px;background:#f1f8fd;padding:12px 15px;margin:8px 0 14px;text-align:left;color:#274f70}
.mathAlarmSoundHead{display:flex;gap:10px;justify-content:space-between;align-items:center;font-size:13px;font-weight:850}
.mathAlarmSoundHead span:last-child{font-size:11px;font-weight:750;white-space:nowrap;color:#56758b}
.mathAlarmSoundTrack{height:7px;background:#d0e3ee;border-radius:100px;overflow:hidden;margin-top:9px}
#mathAlarmSoundFill{display:block;height:100%;width:0%;background:#2986bc;border-radius:100px;transition:width .6s linear,background-color .6s ease}
.mathAlarmSoundStatus[data-level="medium"] #mathAlarmSoundFill{background:#dd8a23}
.mathAlarmSoundStatus[data-level="strong"] #mathAlarmSoundFill{background:#cf5c3e}
.mathAlarmSoundStatus p{margin:8px 0 0;line-height:1.45;font-size:11px;color:#61788b}
@media(max-width:460px){.mathAlarmSoundStatus{padding:11px 12px}.mathAlarmSoundHead{font-size:12px}}

/* Never Give Up — private, non-judgmental, published-results-only study guidance. */
#neverGiveUpCard[hidden]{display:none!important}
.neverGiveUpCard{padding:21px 23px;margin:17px 0 20px;border:1px solid var(--border);border-left:4px solid #4a85b8}
.neverGiveUpIntro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.neverGiveUpIntro h2{font-size:22px;letter-spacing:-.03em;margin:4px 0 5px;color:var(--ink)}
.neverGiveUpIntro .muted{font-size:12px;margin:0;line-height:1.55}
.nguStatus{border-radius:24px;background:var(--subtle);border:1px solid var(--border);color:var(--ink);font-size:11px;letter-spacing:.02em;font-weight:780;padding:8px 13px;white-space:nowrap}
.nguMessage{margin:15px 0 8px;border-radius:12px;background:var(--subtle);padding:15px 17px}
.nguMessage h3{font-size:16px;letter-spacing:-.025em;font-weight:850;margin:0 0 8px;color:var(--ink)}
.nguMessage p{font-size:14px;line-height:1.65;margin:0;color:var(--ink)}
.nguEvidence{font-size:12px;color:var(--mute);line-height:1.6;margin:10px 0}
.nguPrivacy{font-size:11px;color:var(--mute);margin:8px 0 0;line-height:1.6}
.mathAlarmSafetyOptions{margin:20px auto 0;text-align:left;max-width:380px;color:#61758a;font-size:12px;border-top:1px solid #e4ebf2;padding-top:10px}
.mathAlarmSafetyOptions summary{cursor:pointer;font-weight:720;color:#496881;padding:8px 4px;text-align:center}
.mathAlarmSafetyOptionsInner{text-align:center;padding:6px 0 12px}
.mathAlarmSafetyOptionsInner p{line-height:1.5;color:#647689;margin:5px 0 12px;font-size:12px}
.mathAlarmSafetyOptions .mathEmergency{font-size:12px;min-height:40px}
@media(max-width:600px){.neverGiveUpCard{padding:16px 15px}.neverGiveUpIntro{flex-wrap:wrap;gap:9px}.nguStatus{white-space:normal}.nguMessage{padding:13px 14px}}
@media print{#neverGiveUpCard{display:none!important}}

/* Never Give Up v6 new published-result notices — original palette and fonts preserved */
.nguAlertHero[hidden],.nguAlertPanel[hidden],.nguAlertDetail[hidden],.nguNewBadge[hidden],.nguBellCount[hidden]{display:none!important}
.nguAlertHero{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 13px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.31);color:white;cursor:pointer;transition:background .2s ease,transform .2s ease}
.nguAlertHero:hover,.nguAlertHero:focus-visible{background:rgba(255,255,255,.22)}
.nguAlertHero:focus-visible{outline:3px solid #ffe195;outline-offset:2px}
.nguBellSymbol{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:rgba(251,217,126,.18);color:#ffe194;font-size:24px;flex:none}
.nguBellWords{min-width:0;flex:1;display:grid;gap:3px}.nguBellWords strong{font-size:14px;line-height:1.25;color:white}.nguBellWords small{font-size:11px;line-height:1.3;color:#e5eefc}
.nguBellCount{font-size:12px;min-width:27px;padding:5px 8px;text-align:center;background:#ffe6a2;color:#694500;font-weight:900;border-radius:30px}
.nguAlertHero.hasUnread{border-color:#f8dda3;background:rgba(240,184,68,.17)}
.nguAlertHero.hasUnread .nguBellSymbol{animation:nguBellPulse 1.5s ease-in-out 3}
@keyframes nguBellPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,227,151,.08);transform:scale(1)}50%{box-shadow:0 0 0 8px rgba(255,227,151,.14);transform:scale(1.055)}}
.nguAlertPanel{padding:21px 23px;margin:19px 0 22px;border-top:3px solid #d8aa50;scroll-margin-top:20px}
.nguAlertPanelHead{display:flex;justify-content:space-between;align-items:flex-start;gap:13px}
.nguAlertPanelHead h2{font-size:22px;margin:5px 0;color:var(--ink);letter-spacing:-.03em}
.nguAlertPanelHead .muted{font-size:12px;margin:0;line-height:1.5}
.nguNewBadge{display:inline-block;vertical-align:middle;font-size:10px;letter-spacing:.03em;background:#fff1c9;color:#705018;padding:5px 9px;border:1px solid #eec86d;border-radius:99px}
.nguAlertPanelHead .secondary{flex:none;min-height:37px;padding:9px 14px;font-size:12px}
.nguAlertSync{color:var(--mute);font-size:11px;margin:14px 0}
.nguAlertInbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:11px}
.nguInboxItem{padding:14px 15px;border:1px solid var(--border);background:var(--subtle);border-radius:13px;text-align:left;display:grid;gap:7px;cursor:pointer;color:var(--ink);min-width:0}
.nguInboxItem:hover,.nguInboxItem:focus-visible,.nguInboxItem.selected{border-color:#5d91bd;box-shadow:0 0 0 2px rgba(74,133,184,.12)}
.nguInboxItem:focus-visible{outline:2px solid #5d91bd;outline-offset:2px}
.nguInboxItem.unread{border-color:#e9bd6e;background:linear-gradient(130deg,rgba(238,184,83,.10),var(--subtle) 60%)}
.nguInboxTop{display:flex;gap:9px;align-items:center;justify-content:space-between;font-size:10px;font-weight:850;color:var(--mute)}
.nguInboxNew{color:#83540c;border-radius:100px;background:#fff0ca;padding:4px 9px;border:1px solid #efd49c}
.nguInboxTitle{font-size:14px;font-weight:850;color:var(--ink);overflow-wrap:anywhere}
.nguInboxMeta{color:var(--mute);font-size:11px;line-height:1.45}
.nguInboxItemEmpty{font-size:13px;line-height:1.6;padding:15px;border-radius:13px;background:var(--subtle);border:1px solid var(--border);color:var(--mute)}
.nguAlertDetail{background:var(--subtle);border:1px solid var(--border);border-radius:14px;padding:18px;margin:15px 0 0}
.nguAlertDetail h3{font-size:19px;letter-spacing:-.025em;margin:6px 0 14px;color:var(--ink)}
.nguAlertMetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.nguAlertMetrics>div{padding:12px;border-radius:11px;background:var(--surface);border:1px solid var(--border);display:grid;gap:5px;min-width:0}
.nguAlertMetrics small{font-size:10px;color:var(--mute)}.nguAlertMetrics strong{font-size:23px;color:var(--ink);line-height:1.2}
.nguAlertGuidance{padding:15px 2px 3px}.nguAlertGuidance strong{font-size:15px;color:var(--ink)}.nguAlertGuidance p{font-size:13px;line-height:1.65;margin:8px 0;color:var(--ink)}
.nguSeeHistory{display:inline-flex;margin-top:10px;padding:10px 13px;background:#25629b;color:white;border-radius:10px;font-size:12px;font-weight:800;text-decoration:none}
.nguSeeHistory:hover{background:#184d79;color:white}
.nguAlertPrivacy{font-size:11px;line-height:1.6;margin:14px 0 0;color:var(--mute)}
@media(max-width:680px){.nguAlertPanel{padding:16px 14px;margin:15px 0}.nguAlertPanelHead{flex-wrap:wrap}.nguAlertInbox{grid-template-columns:1fr}.nguAlertMetrics strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){.nguAlertHero.hasUnread .nguBellSymbol{animation:none!important}}
@media print{#nguResultsAlerts,.nguAlertHero{display:none!important}}

.nguDetailMission{font-size:15px!important;line-height:1.5!important;font-weight:850!important;color:#174d7b!important;background:rgba(84,152,206,.12);padding:12px 13px;border-left:3px solid #3274ac;border-radius:7px}
.dark .nguDetailMission{color:#cce9ff!important}


/* V7.3 staff-only approved student pilot flow */
.staffPilotControls{margin-bottom:18px;padding:21px 23px;border:1px solid #bdd6e9;background:linear-gradient(130deg,#f7fbff,#eef7ff);border-radius:17px}
.staffPilotIntro{display:flex;justify-content:space-between;align-items:center;gap:14px}
.staffPilotIntro h2{margin:0 0 5px;font-size:1.1rem;color:#173b63}
.staffPilotIntro p{margin:4px 0;color:#536c86}
.staffPilotTag{padding:7px 10px;border-radius:50px;background:#dcecff;color:#174e7e;font-size:.72rem;white-space:nowrap;font-weight:750}
.staffPilotPicker{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:13px}
.staffPilotPicker label{font-weight:750;font-size:.82rem}
.staffPilotPicker select{max-width:280px;min-width:180px;min-height:43px;padding:8px 10px;border:1px solid #adc5df;border-radius:9px;background:#fff;color:#16385f}
.staffPilotPicker button{min-height:43px}
body.dark .staffPilotControls{background:#18293b;border-color:#37536c}
body.dark .staffPilotIntro h2{color:#e8f1fb}
body.dark .staffPilotIntro p{color:#b8cce0}
@media(max-width:600px){.staffPilotIntro{align-items:flex-start;flex-direction:column}.staffPilotControls{padding:16px}.staffPilotPicker{display:grid;grid-template-columns:1fr}.staffPilotPicker select{max-width:100%;width:100%}.staffPilotPicker button{width:100%}}

/* DEKMA 2026-10-21: Keep secure staff-sign-in link visible on phones. */
@media (max-width:680px){
 .siteTop .topInner{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
 .siteTop .brand{min-width:0;flex:1 1 auto;gap:7px}
 .siteTop .brand span{min-width:0}
 .siteTop .brand strong{font-size:clamp(14px,4vw,17px)}
 .siteTop .brand small{font-size:10px}
 .siteTop .topActions{display:flex;flex:0 0 auto;align-items:center;gap:6px}
 .siteTop .topLink{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;padding:8px 9px;min-height:40px;font-size:12px}
 .siteTop #themeSwitch{padding:8px 9px;min-height:40px}
 .siteTop #themeText{display:none}
}
@media (max-width:370px){.siteTop .brand small{font-size:9px}.siteTop .brand img{width:30px;height:30px}.siteTop .topLink{font-size:11px;padding:7px}.siteTop #themeSwitch{padding:7px}}

/* V51: accessible student-only show/hide password control */
.student-password-wrap{position:relative;display:block;width:100%}
.student-password-wrap input{width:100%;padding-right:72px!important;box-sizing:border-box}
.student-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:9px;background:transparent;color:#14537b;font:inherit;font-weight:700;font-size:13px;min-width:55px;min-height:38px;padding:3px 7px;cursor:pointer;z-index:1}
.student-password-toggle:hover{background:rgba(24,90,130,.09)}
.student-password-toggle:focus-visible{outline:2px solid #318bd1;outline-offset:2px}
.student-password-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.mathAlarmSoundPreview{cursor:pointer;border:1px solid #a7cbea;border-radius:8px;background:#e9f4ff;color:#104a79;padding:7px 11px;margin-top:5px;font-weight:650;}

/* V87: Attention cues only. New result flashes until read; alarm shortcut is always gently pulsing. */
@keyframes dekmaUnreadBlink{0%,100%{box-shadow:0 0 0 0 rgba(255,219,104,.2);filter:brightness(1)}50%{box-shadow:0 0 0 4px rgba(255,221,109,.56),0 0 16px rgba(255,221,109,.38);filter:brightness(1.18)}}
@keyframes dekmaAlarmBreathe{0%,100%{box-shadow:0 5px 19px rgba(9,33,64,.16);filter:brightness(1)}50%{box-shadow:0 5px 22px rgba(255,214,106,.46),0 0 0 3px rgba(255,223,139,.23);filter:brightness(1.085)}}
.nguAlertHero.hasUnread:not([hidden]){animation:dekmaUnreadBlink 1.35s ease-in-out infinite}
.heroAlarmButton:not([hidden]){animation:dekmaAlarmBreathe 2.1s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.nguAlertHero.hasUnread:not([hidden]),.heroAlarmButton:not([hidden]){animation:none}.nguAlertHero.hasUnread{outline:3px solid #ffe195;outline-offset:2px}.heroAlarmButton{box-shadow:0 0 0 3px rgba(255,223,139,.35)}}

/* V89: subject picker remains visible even before account settings load. */
.alarmSyllabusPicker{grid-column:1/-1 !important;min-width:0;}
.alarmSyllabusGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:12px 0;}
.alarmSubject{display:block;background:#f8fafc;border:1px solid #d5e2f0;border-radius:12px;padding:10px;}
.alarmSubject summary{font-weight:750;color:#133e66;cursor:pointer;padding:4px 0;}
.alarmSubject label{display:flex;align-items:center;gap:8px;font-size:13px;margin:8px 0;}
.alarmSubject input{flex-shrink:0;}

/* V103: compact, single-row alarm setup; unchanged header and learning logic */
.mathAlarmQuickRow{display:grid;grid-template-columns:minmax(170px,1fr) minmax(260px,1.6fr) auto;align-items:end;gap:12px;margin:6px 0 18px}
.mathAlarmQuickTime{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:800;color:var(--ink)}
.mathAlarmQuickTime input{width:100%;min-width:0;min-height:45px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);padding:10px;font:inherit;font-size:14px}
.mathAlarmQuickRow .mathAlarmLiveTime{margin:0;min-width:0;padding:8px 14px;gap:2px 12px;grid-template-columns:1fr auto}
.mathAlarmQuickRow .mathAlarmClockLabel small{font-size:10px}
.mathAlarmQuickRow .mathAlarmClockReadout .sriClockDigits{font-size:clamp(23px,2.5vw,36px)}
.mathAlarmQuickRow .mathAlarmDate{font-size:10px}
.mathAlarmQuickRow #mathAlarmSave{min-height:46px;white-space:nowrap;margin:0}
@media(max-width:730px){.mathAlarmQuickRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mathAlarmQuickRow .mathAlarmLiveTime{grid-column:1/-1;grid-row:1}.mathAlarmQuickRow .mathAlarmQuickTime{grid-column:1;grid-row:2}.mathAlarmQuickRow #mathAlarmSave{grid-column:2;grid-row:2;align-self:end}}
@media(max-width:390px){.mathAlarmQuickRow{grid-template-columns:1fr}.mathAlarmQuickRow .mathAlarmLiveTime{grid-column:1;grid-row:1}.mathAlarmQuickRow .mathAlarmQuickTime{grid-column:1;grid-row:2}.mathAlarmQuickRow #mathAlarmSave{grid-column:1;grid-row:3}}

/* V128: compact, paginated personal examination history */
.historyPagerTop,.historyPager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:10px 0 12px}
.historyPagerTop label{font-size:12px;font-weight:750;color:var(--mute);display:flex;align-items:center;gap:9px}
.historyPagerTop select{background:var(--surface);color:var(--ink);border:1px solid #bed1e2;border-radius:10px;padding:8px 11px;font:inherit;min-height:38px}
.historyPageCount,.historyPager span{color:var(--mute);font-size:12px}
.historyPager{justify-content:center;margin-top:12px}.historyPager button{min-height:38px;padding:8px 14px;font-size:12px}.historyPager button:disabled{opacity:.4;cursor:default}
.compactHistoryTable{min-width:0;table-layout:auto}.compactHistoryTable th,.compactHistoryTable td{padding:11px 9px}.compactHistoryTable th:not(:first-child),.compactHistoryTable td:not(:first-child){text-align:right}.compactHistoryTable .markChip{padding:5px 8px}
@media(max-width:680px){.historyContainer{overflow-x:auto}.compactHistoryTable{display:table;min-width:0;width:100%;table-layout:fixed}.compactHistoryTable thead{display:table-header-group}.compactHistoryTable tbody{display:table-row-group}.compactHistoryTable tr{display:table-row;background:transparent;border:0;padding:0;margin:0}.compactHistoryTable th,.compactHistoryTable td{display:table-cell;width:auto;border-bottom:1px solid var(--line)!important;text-align:right;padding:12px 4px;font-size:11px;vertical-align:middle;white-space:nowrap}.compactHistoryTable td:before{display:none}.compactHistoryTable th:first-child,.compactHistoryTable td:first-child{text-align:left;width:43%;padding-left:0}.compactHistoryTable th:last-child,.compactHistoryTable td:last-child{padding-right:0}.compactHistoryTable .examTitle{font-size:12px;display:block;white-space:normal;line-height:1.3}.compactHistoryTable .examSubtitle{font-size:10px;line-height:1.3;overflow-wrap:anywhere;white-space:normal;margin-top:3px}.compactHistoryTable .markChip{font-size:11px;padding:5px 6px;border-radius:7px}.historyPagerTop{align-items:center}.historyPager{justify-content:space-between}.historyPager button{padding:8px 11px}}
@media print{.historyPagerTop,.historyPager{display:none!important}}

/* V131: compact account settings within the existing student hero. */
.studentSecurityToggle{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;min-height:35px;padding:7px 12px;}
.studentSecurityPanel{box-sizing:border-box;width:100%;padding:16px!important;margin:0!important;background:#fff;color:#183653;box-shadow:0 10px 28px rgba(0,0,0,.13);border:1px solid #d4e2f1;border-radius:15px;min-width:0;}
.studentSecurityPanel[hidden]{display:none!important;}
.studentSecurityPanel .phoneHead{gap:10px;flex-wrap:wrap;}
.studentSecurityPanel .phoneIcon{width:34px;height:34px;font-size:18px;border-radius:10px;}
.studentSecurityPanel .phoneInfo h2{font-size:15px;}
.studentSecurityPanel .phoneInfo p{font-size:12px;line-height:1.5;}
.studentSecurityPanel .phoneHead .secondary{font-size:12px;padding:9px 11px;min-height:36px;}
.studentSecurityPanel .changeFlow{margin-top:12px;padding-top:12px;max-width:100%;}
@media(max-width:680px){.studentSecurityToggle{align-self:flex-start;}.studentSecurityPanel{padding:13px!important;}.studentSecurityPanel .phoneInfo{flex:1 1 150px;}}
@media print{.studentSecurityToggle,.studentSecurityPanel{display:none!important;}}

/* V134 - mobile-friendly grade distribution comparison */
.grade-centre-compare{margin-top:18px;padding:16px;border:1px solid #d7e5f3;border-radius:17px;background:#f7faff}
.grade-centre-compare h3{margin:0 0 7px}
.grade-centre-legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0}
.grade-centre-legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
.grade-centre-dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.grade-centre-0{background:#197da6}.grade-centre-1{background:#7057bb}.grade-centre-2{background:#d38b40}
.grade-centre-group{padding:10px 0;border-top:1px solid #e1eaf4}
.grade-centre-group>strong{display:block;margin-bottom:7px;color:#193e63;font-size:14px}
.grade-centre-group-bars{display:grid;gap:7px}
.grade-centre-bar-row{display:grid;grid-template-columns:63px minmax(0,1fr) 48px;gap:9px;align-items:center;font-size:12px}
.grade-centre-bar-row span:last-child{text-align:right;font-variant-numeric:tabular-nums}
.grade-centre-bar-track{height:10px;background:#e1e9f3;overflow:hidden;border-radius:6px}
.grade-centre-bar-fill{display:block;height:100%;border-radius:6px}
.grade-centre-compare .muted{font-size:12px;line-height:1.5}
@media(max-width:440px){.grade-centre-compare{padding:12px}.grade-centre-bar-row{grid-template-columns:54px minmax(0,1fr) 45px;gap:7px}}
