*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#090a0c;color:#f3f4f6;font:16px/1.65 system-ui,sans-serif}button,input,select{font:inherit}button{min-height:48px;border:1px solid #303640;background:#181c23;color:inherit;padding:10px 16px;border-radius:10px;cursor:pointer}button:hover{background:#242b34}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #91d5c1;outline-offset:3px}a{color:#91d5c1}button.primary{background:#91d5c1;color:#07130f;border-color:#91d5c1;font-weight:650}button.selected{background:#173c32;border:2px solid #91d5c1}header{border-bottom:1px solid #242a32;background:#0c0e12;position:sticky;top:0;z-index:5}.head{max-width:1120px;margin:auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{font-size:18px;font-weight:700;line-height:1.3}nav{display:flex;gap:6px;flex-wrap:wrap}nav button{min-height:42px;padding:6px 10px;border:none;background:none;font-size:14px}nav button.active{color:#91d5c1;background:#172720}main{max-width:1120px;margin:auto;padding:24px 20px 100px}h1{font-size:28px;line-height:1.35;margin:4px 0 12px}h2{font-size:20px;line-height:1.65;margin:0 0 14px}h3{font-size:17px;margin:0 0 8px}p{margin:10px 0}.muted{color:#a7b0be;font-size:14px}.eyebrow{font-size:13px;color:#91d5c1;font-weight:650}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card{padding:22px;background:#13171e;border:1px solid #29313c;border-radius:16px}.callout{padding:14px 16px;border-radius:12px;background:#18201e;border:1px solid #2b3b35;margin:18px 0}.filters{display:flex;gap:12px;margin:24px 0}.filters input{flex:1;min-width:0}input,select{min-height:48px;border:1px solid #303640;background:#13171e;color:inherit;padding:10px 14px;border-radius:10px;width:100%}label{display:block;font-size:14px;color:#a7b0be;margin:12px 0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.stat{background:#13171e;padding:18px;border:1px solid #29313c;border-radius:12px}.stat strong{font-size:28px;display:block;color:#91d5c1}.pill{display:inline-block;padding:4px 9px;border-radius:20px;background:#202a33;color:#c3ccd7;font-size:12px;margin-right:5px}.qtop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.question{white-space:pre-line;font-weight:550;font-size:19px;line-height:1.75;overflow-wrap:anywhere}.options{display:grid;gap:12px;margin:20px 0}.option{display:flex;align-items:flex-start;gap:14px;width:100%;text-align:left;white-space:pre-line;line-height:1.6;padding:16px}.option b{border:1px solid #56616d;border-radius:8px;min-width:32px;text-align:center;padding:2px}.option.correct{border:2px solid #91d5c1;background:#142f27}.option.wrong{border:2px solid #ed7278;background:#341c22}.quizbar{position:fixed;bottom:0;left:0;right:0;background:#10151c;border-top:1px solid #303640;z-index:4;padding:12px 20px}.quizbar .row{max-width:1080px;margin:auto}.quizbar button{min-width:90px}.progress{height:5px;border-radius:5px;background:#252e37;overflow:hidden;margin:14px 0}.progress>span{display:block;background:#91d5c1;height:100%}.timer{font-variant-numeric:tabular-nums;font-weight:700;color:#91d5c1;font-size:20px}.danger{color:#ed7278}.palette{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:20px 0}.palette button{padding:7px;min-height:44px}.palette .answered{background:#245748;border-color:#91d5c1}.palette .marked{background:#49354c;border-color:#ca9bd2}.palette .current{outline:2px solid #fff}.dialogback{position:fixed;inset:0;background:#000b;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:#141920;border:1px solid #35404d;border-radius:18px;width:100%;max-width:520px;max-height:88vh;overflow:auto;padding:24px}.dialog.drawer{align-self:stretch;margin-left:auto;max-height:100%;max-width:440px}.bigscore{font-size:52px;line-height:1.2;color:#91d5c1;font-weight:700}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.tabs .active{background:#173c32;border-color:#91d5c1}.empty{padding:36px 20px;text-align:center;border:1px dashed #394551;border-radius:16px;color:#a7b0be}.reviewcard{margin:18px 0}.scrollimg{overflow:auto}.scan{width:100%;height:auto;background:#fff;border-radius:8px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#toast{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);background:#294537;padding:10px 16px;border-radius:10px;z-index:30;display:none;max-width:90%}@media(max-width:700px){.head{align-items:flex-start;flex-direction:column;gap:8px}.brand{font-size:18px}main{padding:20px 16px 100px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:18px}.filters{flex-direction:column;gap:8px}.question{font-size:18px}.quizbar{padding:10px 16px}.head.quizhead{flex-direction:row;align-items:center}.quizhead .brand{font-size:15px}.qtop{align-items:flex-start}h1{font-size:25px}.bigscore{font-size:44px}.palette{grid-template-columns:repeat(5,minmax(0,1fr))}}
.authbox{max-width:600px;margin:25px auto}.authbox label{display:block;margin:16px 0}.authbox input,.authbox textarea{display:block;width:100%;margin-top:7px}.authbox textarea{min-height:90px}.check{display:flex!important;align-items:start;gap:12px}.check input{width:20px!important;margin-top:3px!important}form label{display:block;margin:14px 0}textarea{background:#12151b;color:#eee;border:1px solid #354050;border-radius:10px;padding:12px;max-width:100%;font:inherit}
.filters select{width:220px;flex:0 0 220px}.filters input{width:auto}.option span{min-width:0;overflow-wrap:anywhere}input[type=checkbox]{min-height:20px;height:20px}#authMessage{color:#f29a9f}@media(max-width:700px){.filters select{width:100%;flex:auto}.filters input{width:100%}}textarea{width:100%}

.goodluck{margin:0 0 24px;border:1px solid #29313c;border-radius:16px;overflow:hidden;background:#10120f}.goodluck img{display:block;width:100%;height:auto;object-fit:contain}.goodluck p{margin:0;padding:12px 16px;font-weight:600;color:#f5df9c;font-size:16px;line-height:1.6}@media(min-width:701px){.goodluck{max-width:780px;margin-left:auto;margin-right:auto}}
.choice-grid{margin:24px 0}.choice-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;padding:24px;background:linear-gradient(145deg,#172820,#11171c);border:1px solid #35483f;border-radius:18px;min-height:210px;transition:background .15s,border-color .15s}.choice-card:hover{background:#1d3029;border-color:#91d5c1}.choice-card strong{font-size:22px;line-height:1.5}.choice-card>span:not(.choice-icon):not(.choice-link){font-size:14px;color:#a7b0be}.choice-icon{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:48px;padding:6px 10px;border-radius:12px;background:#254537;color:#b4e5d3;font-weight:750;letter-spacing:1px}.choice-link{color:#a9ddc9;font-size:15px;font-weight:650;margin-top:auto}.mock-choice{background:linear-gradient(145deg,#252337,#141720);border-color:#433e58}.mock-choice .choice-icon{background:#37324b;color:#dacbec}.prep-note{display:flex;gap:10px;flex-wrap:wrap;color:#9eb5a7;font-size:13px}.prep-note span{border:1px solid #26392f;border-radius:30px;padding:6px 12px}.back-link{margin-bottom:20px;background:transparent}.browse-path{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px;font-size:13px;color:#a7b0be}.browse-path span{border:1px solid #303640;border-radius:20px;padding:5px 12px}.browse-path .current{color:#91d5c1;border-color:#476653;background:#172720}.coming-soon{text-align:center;max-width:650px;margin:26px auto;padding:36px 24px;border:1px dashed #3d5349;border-radius:20px;background:#101813}.coming-soon .choice-icon{margin-bottom:20px}.year-grid{margin-top:24px}.year-grid .choice-card{min-height:160px}@media(max-width:700px){.choice-card{padding:20px;min-height:190px}.choice-card strong{font-size:21px}.choice-grid{gap:14px}.goodluck{margin-bottom:22px}}
.topic-report{margin:20px 0}.topic-row{padding:16px 0;border-top:1px solid #2b3540}.solution-box{padding:18px;background:#102019;border:1px solid #304b3e;border-radius:12px;margin:20px 0;white-space:pre-line;overflow-wrap:anywhere}.solution-box a{overflow-wrap:anywhere}#reportMessage{color:#f29a9f}
.public-footer{max-width:1120px;padding:10px 20px 30px;margin:auto;display:flex;gap:20px;flex-wrap:wrap;font-size:14px}
.instructor-tip{display:flex;gap:14px;align-items:flex-start;background:#15201c;border:1px solid #354d40;border-radius:14px;padding:14px;margin:18px 0}.instructor-tip img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:20% 38%;flex-shrink:0}.instructor-tip strong{font-size:14px;color:#bce3cc}.instructor-tip p{font-size:14px;line-height:1.6;margin:4px 0 0;color:#bdc8c1}
.dashboard-grid{margin:24px 0}.dashboard-card h2{margin-top:12px}.choice-card{box-shadow:0 8px 26px #0003}.public-footer{border-top:1px solid #222d27}.instructor-tip img{object-position:center}
#toast{pointer-events:none;max-width:calc(100vw - 32px);line-height:1.5}
summary{cursor:pointer;padding:8px 0;font-size:18px;line-height:1.5}
summary:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #8ed6bf;outline-offset:4px}
.settings-section{margin:20px 0}.settings-section small{max-width:650px}.question{font-size:var(--q-size,18px);line-height:var(--q-line,1.75)}.hide-timer #timer{visibility:hidden}.hide-tips .instructor-tip{display:none}.hide-solutions .solution-box{display:none}.hide-scans .scan{display:none}.data-saver .goodluck img,.data-saver .instructor-tip img{display:none}.reduced-motion *{transition:none!important;animation:none!important;scroll-behavior:auto!important}body[data-theme=light]{color:#18251f;background:#f5f7f5;color-scheme:light}body[data-theme=light] header,body[data-theme=light] .quizbar{background:#edf3ef;border-color:#bdcfc3}body[data-theme=light] .card,body[data-theme=light] .stat,body[data-theme=light] input,body[data-theme=light] select,body[data-theme=light] textarea,body[data-theme=light] .dialog{background:#fff;color:#18251f;border-color:#bdcfc3}body[data-theme=light] button{background:#e7eee9;color:#18251f;border-color:#a3b9ac}body[data-theme=light] button.primary{background:#277e61;color:#fff}body[data-theme=light] .muted,body[data-theme=light] label{color:#4c6255}body[data-theme=light] .instructor-tip,body[data-theme=light] .callout,body[data-theme=light] .solution-box{background:#e5f1e9;border-color:#a3b9ac;color:#213e2e}body[data-theme=light] .instructor-tip p,body[data-theme=light] .instructor-tip strong,body[data-theme=light] .eyebrow,body[data-theme=light] a,body[data-theme=light] .timer{color:#21543d}body[data-theme=light] .choice-card{background:#e7eee9;color:#18251f}body[data-theme=light] .choice-card>span:not(.choice-icon){color:#476653}body[data-theme=light] .pill{background:#e3ebe6;color:#385442}body[data-theme=light] .option.selected{background:#cce7d7;border-color:#397d56}body[data-theme=light] .tabs .active,body[data-theme=light] nav button.active{background:#cce7d7;color:#21543d}body[data-theme=light] .goodluck{background:#e7eee9}body[data-theme=light] .goodluck p{color:#55471a}body[data-theme=light] #toast{color:#fff}
main{max-width:var(--content-width,1120px)}.option{font-size:var(--option-size,16px)}
.sessional-choice{background:linear-gradient(145deg,#182c31,#11171c);border-color:#3b565e}.sessional-choice .choice-icon{background:#27444a;color:#c3e2e7}

/* Phone-friendly admin controls */
#adminPaperList .card button{margin:4px 4px 4px 0} #adminUsersList .actions{flex-wrap:wrap} #adminQuestionForm textarea,#adminPaperForm input{width:100%;box-sizing:border-box} .choice-card strong{overflow-wrap:anywhere} 

#adminUsersList h2{overflow-wrap:anywhere} #adminUsersList button{max-width:100%}

.scan[role=button]{cursor:zoom-in}.scan-dialog{max-width:1000px;width:100%;padding:16px}.scan-dialog .row{position:sticky;top:0;background:#141920;z-index:2}.scan-zoom-well{overflow:auto;max-height:60vh;background:#fff;border-radius:6px;overscroll-behavior:contain}.scan-zoom-well img{display:block;max-width:none;height:auto}.scan-dialog button{min-height:44px}

.scan-dialog{display:flex;flex-direction:column;overflow:hidden;max-height:92vh}.scan-dialog .scan-zoom-well{flex:1;min-height:100px}.scan-dialog .actions{margin:6px 0;gap:5px}.scan-dialog button{padding:7px 10px}.scan-dialog p{margin:6px 0}

/* Mobile auth: readable controls, no zoom-triggering small fonts, document scrolling for IME. */
.authbox input,.authbox textarea{font-size:16px;touch-action:manipulation;scroll-margin-block:90px;min-width:0}.authbox textarea{width:100%;font:inherit;font-size:16px;min-height:96px}.authbox label{overflow-wrap:anywhere}.authbox #authMessage{color:#ffb3a9;white-space:pre-wrap;scroll-margin-block:80px}.authbox{padding-bottom:28px}.authbox small{display:block;line-height:1.6;margin-top:6px}
/* Study/calendar mobile-first */
.study-weekdays{border:1px solid #303640;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px}.study-weekdays label{margin:6px}.study-topic{border-bottom:1px solid #303640;padding:12px 0}.study-topic button{margin:8px 0}.study-session-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.study-session-list p{border:1px solid #303640;border-radius:10px;padding:12px}.calendar-grid,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-week span{text-align:center;font-size:12px}.calendar-day{padding:5px;min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:15px}.calendar-day span{font-size:12px;min-height:18px;color:#91d5c1}.study-day-detail{margin:20px 0}.study-event{padding:14px 0;border-bottom:1px solid #303640}.study-day-detail dd{margin:0 0 12px;overflow-wrap:anywhere}.study-day-detail a,.study-topic a{overflow-wrap:anywhere}.study-preview{margin-top:20px;scroll-margin-top:110px}#studyDayDetail{scroll-margin-top:110px}@media(max-width:700px){.study-session-list{grid-template-columns:1fr}.calendar-grid,.calendar-week{gap:3px}.calendar-day{min-height:48px;padding:3px}.study-current .actions button{width:100%}.study-weekdays{padding:10px 6px}}

.study-clock-list{display:grid;gap:12px;margin:16px 0}.study-clock-row{display:grid;grid-template-columns:130px 1fr;gap:16px;border:1px solid var(--line,#343b42);border-radius:12px;padding:16px}.study-clock-row h3{margin:8px 0;overflow-wrap:anywhere}.study-clock-row.is-current{border:2px solid #8fcfbc}.study-clock-time{white-space:nowrap}@media(max-width:600px){.study-clock-row{grid-template-columns:1fr;gap:8px}}

.study-import-row{border-top:1px solid #343b42;padding:20px 0}.study-import-row.needs-review{border-left:3px solid #d88686;padding-left:12px}
/* All app sections remain visible above the content. */
header.section-toolbar{position:fixed;top:0;left:0;right:0;z-index:10}
.section-toolbar .head{display:block;padding:8px 16px}
.section-toolbar .brand{font-size:15px;margin:0 0 6px}
.section-toolbar nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.section-toolbar nav button{min-height:44px;padding:6px 2px;font-size:13px;overflow-wrap:anywhere;border:1px solid #303640}
body:has(.section-toolbar) main{padding-top:calc(var(--toolbar-height,180px) + 20px)}
html{scroll-padding-top:calc(var(--toolbar-height,0px) + 16px)}
.performance-row{border-top:1px solid #303640;padding:14px 0}.performance-row:first-of-type{border-top:0}
@media(max-width:700px){.section-toolbar .head{padding:8px 10px}.section-toolbar nav{grid-template-columns:repeat(4,minmax(0,1fr))}.section-toolbar nav button{font-size:12px}.stat strong{font-size:25px}}
@media(max-width:350px){.section-toolbar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.section-toolbar nav button{font-size:12px}}
.section-toolbar nav[hidden]{display:none}.toolbar-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.toolbar-row .brand{margin:0}.toolbar-row button{font-size:13px;white-space:nowrap;min-height:44px;padding:6px 10px}.section-toolbar nav:not([hidden]){margin-top:8px}
.weak-question{padding:16px 0;border-top:1px solid #303640;overflow-wrap:anywhere}.analysis-summary{display:flex;gap:8px;flex-wrap:wrap}.analysis-summary span{padding:4px 8px;border:1px solid #303640;border-radius:6px}.micro-analysis article{margin:14px 0}.analysis-week{max-width:300px}
/* Readable accents. Text labels remain alongside colour cues. */
:root{--accent-info:#a5c9ff;--accent-good:#a4dfcb;--accent-note:#f0d18a;--accent-warn:#ffb9b4}
body[data-theme="light"]{--accent-info:#224f88;--accent-good:#21604d;--accent-note:#745315;--accent-warn:#942f2a}
main h1,main h2{color:var(--accent-info)}
.stat:nth-child(1) strong{color:var(--accent-info)}.stat:nth-child(2) strong,.stat:nth-child(3) strong{color:var(--accent-good)}.stat:nth-child(4) strong{color:var(--accent-note)}
.performance-row .pill{color:var(--accent-note);border:1px solid currentColor}.callout strong{color:var(--accent-note)}.danger{color:var(--accent-warn)}
.toolbar-row{flex-wrap:wrap;gap:8px}.toolbar-language{display:flex;align-items:center;gap:8px;font-size:13px;margin:0}.toolbar-language select{width:auto;max-width:170px;min-height:44px;margin:0}
.motivation-section{margin-top:28px}.motivation-card{margin:0;max-width:340px}.motivation-card img{display:block;width:100%;height:auto;border-radius:14px;object-fit:contain}.motivation-card figcaption{font-size:15px;line-height:1.6;margin-top:10px;color:var(--accent-note)}
@media(max-width:480px){.toolbar-language{width:100%;justify-content:space-between}.toolbar-language select{flex:1}.motivation-card{max-width:100%}}
body[data-theme="light"] .muted,body[data-theme="light"] .empty,body[data-theme="light"] .pill{color:#465c54}
