:root{color-scheme:light;--ink:#17374c;--blue:#1d6489;--line:#d9e2e7;--muted:#5f7180}*{box-sizing:border-box}body{margin:0;background:#f3f6f8;color:var(--ink);font:17px/1.65 'SimSun','Yu Mincho',serif}header{display:flex;gap:22px;align-items:center;padding:18px 5%;background:white;border-bottom:1px solid var(--line)}a{color:var(--blue)}.brand{text-decoration:none;font:bold 25px/1.2 Georgia,serif;color:var(--ink)}.brand span{font-size:20px}.edition{color:var(--muted);font-size:15px}#account{margin-left:auto;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:5px;padding:9px 17px}button:hover{border-color:var(--blue);background:#edf5fa}button.primary{background:var(--ink);color:white;border-color:var(--ink)}button:disabled{opacity:.55;cursor:wait}a,button,input,textarea,select{outline-offset:4px}input,textarea,select{width:100%;border:1px solid #a9bbc7;border-radius:4px;padding:10px;background:white;color:var(--ink)}textarea{min-height:100px}label{display:block;margin:15px 0}h1{font-size:30px;line-height:1.4;margin:0 0 18px}h2{font-size:22px;margin:0 0 15px}h3{font-size:18px}p{margin:10px 0}.muted{color:var(--muted)}.auth{max-width:470px;margin:65px auto;background:white;padding:36px;border:1px solid var(--line)}.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.tabs button[aria-pressed=true]{border-color:var(--ink);background:#e8f0f5}.layout{max-width:1440px;margin:30px auto;display:grid;grid-template-columns:265px minmax(0,1fr);gap:24px;padding:0 24px}.sidebar{align-self:start;position:sticky;top:20px}.paper{background:white;border:1px solid var(--line);padding:30px;min-width:0}.qnav{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.qnav button{padding:7px}.qnav .active{background:var(--ink);color:white}.block{font-size:15px;margin:20px 0 7px}.eyebrow{font-size:14px;letter-spacing:.07em;color:var(--muted);margin-bottom:8px}.source{width:100%;height:650px;border:1px solid var(--line);background:#fafafa}.choices{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.choices label{display:flex;align-items:center;gap:8px;margin:0;padding:8px 15px;border:1px solid var(--line)}.choices input{width:auto}.result{border-left:3px solid var(--blue);padding:10px 16px;background:#eef5f9}.solution{margin-top:30px;border-top:1px solid var(--line);padding-top:24px;overflow-wrap:anywhere}.solution .pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:center;margin:20px 0}.solution .figure{width:100%;min-width:0}.solution svg{width:100%;height:auto;display:block}.solution math{font-family:'Cambria Math',serif;font-size:1em;max-width:100%;overflow:auto}.solution .eq{color:var(--blue);overflow-x:auto;padding:4px 0}.solution h3{font-size:18px}.solution .label{font-family:'SimSun','Yu Mincho',serif}.card{border:1px solid var(--line);padding:18px;margin:15px 0;background:white}.card h3{margin:0 0 8px}.actions{display:flex;gap:12px;flex-wrap:wrap}.error{color:#a63232}#notice:not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#17374c;color:white;padding:12px 22px;max-width:90vw;border-radius:5px;z-index:10}.mock-body{white-space:pre-wrap}.preview-banner{padding:12px;background:#fff2ca;text-align:center}.teacher{max-width:950px;margin:30px auto;padding:0 24px}@media(max-width:800px){.layout{grid-template-columns:1fr;padding:0 12px;margin:18px auto}.sidebar{position:static}.qnav{grid-template-columns:repeat(6,1fr)}.paper{padding:18px}.solution .pair{grid-template-columns:1fr}.source{height:470px}header{padding:14px;gap:12px}.edition{display:none}.auth{margin:25px 12px;padding:24px}.solution .figure{max-width:500px;margin:auto}h1{font-size:25px}}
.question-pages{background:white;border:1px solid var(--line)}.question-pages a{display:block}.question-pages a+a{border-top:2px solid var(--line)}.question-page{display:block;width:100%;height:auto;background:white}
.knowledge-heading{margin:10px 0 24px;border-left:4px solid #287899;padding-left:18px}.knowledge-heading h1{margin:1px 0 13px;font-size:27px}.knowledge-level{font-size:14px;color:#617788}.secondary-knowledge{font-size:20px;margin:2px 0}.lesson-section{margin:18px 0}.section-label{display:inline-block;background:#257494;color:white;border-radius:6px;padding:5px 14px;font-size:19px;margin:0 0 7px}.section-body{border:1px solid #d1dfe4;border-radius:8px;padding:17px 20px;background:#fbfdfe;line-height:1.85}.route-flow{display:flex;gap:23px;list-style:none;padding:0;margin:0;flex-wrap:wrap}.route-flow li{flex:1;min-width:150px;position:relative;background:#eff6fb;border:1px solid #bfd7e4;padding:10px;border-radius:6px;font-size:15px;display:flex;gap:8px;align-items:center}.route-flow li:nth-child(3n+2){background:#f2f8f0;border-color:#cbdbc7}.route-flow li:nth-child(3n){background:#fffbeb;border-color:#e7dba9}.route-flow li:not(:last-child):after{content:'→';position:absolute;right:-21px;color:#647a84}.route-flow span{font-family:Georgia,serif;border:1px solid currentColor;border-radius:50%;width:24px;height:24px;display:inline-flex;justify-content:center;align-items:center;flex-shrink:0}.step-card{--accent:#257494;--tint:#f2f8fc;border:1px solid #bfd1dc;border-radius:9px;margin:10px 0 14px;overflow:hidden;background:white}.step-card.tone-1{--accent:#507f45;--tint:#f5f9f2;border-color:#c9dbc3}.step-card.tone-2{--accent:#95741c;--tint:#fffbee;border-color:#e6dba9}.solution .step-card h3{margin:0;background:var(--tint);color:var(--accent);padding:11px 16px;font-size:19px;display:flex;gap:10px;align-items:center}.step-number{background:var(--accent);color:white;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;min-width:28px;height:28px;font-family:Georgia,serif}.step-content{padding:16px 20px}.step-content.with-figure{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:center}.step-prose{min-width:0}.solution .step-card .eq{background:var(--tint);border:1px dashed #bdd0d9;padding:12px 16px;border-radius:6px;text-align:center}.answer-section .section-body{background:#edf6fc;border-color:#b8d6e8}.key-section .section-body{background:#fff5f2;border-color:#e6c9c3}.quick-section .section-body{background:#eff9f9;border-color:#bedddd}.section-body math{vertical-align:middle;font-size:1em}.intro-section .section-body{background:#fff}.solution{border-top:0;padding-top:5px}@media(max-width:800px){.step-content.with-figure{grid-template-columns:1fr}.step-content,.section-body{padding:14px}.route-flow{display:grid;grid-template-columns:1fr;gap:15px}.route-flow li:not(:last-child):after{content:'↓';right:16px;bottom:-19px}.knowledge-heading h1{font-size:24px}.secondary-knowledge{font-size:18px}}
.knowledge-heading{display:flex;align-items:flex-start;gap:12px 30px;margin:8px 0 16px;padding-left:14px}.knowledge-item{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.knowledge-level{flex-shrink:0}.knowledge-heading h1,.knowledge-heading .secondary-knowledge{font-size:20px;line-height:1.5;margin:0;overflow-wrap:anywhere}.knowledge-heading .secondary-knowledge{font-weight:normal}@media(max-width:800px){.knowledge-heading{gap:12px}.knowledge-item{display:block}.knowledge-heading h1,.knowledge-heading .secondary-knowledge{font-size:18px}.knowledge-level{font-size:13px}}
/* Reference typography: bold sans-serif headings, Song-style explanatory text. */
:root{--font-reading:'SimSun','Yu Mincho',serif;--font-heading:'Microsoft YaHei','SimHei','Yu Gothic',sans-serif;--font-math:'Cambria Math','STIX Two Math',serif}
body{font-family:var(--font-reading)}
header,.sidebar,.eyebrow,.knowledge-level,button,input,textarea,select,.choices,.route-flow{font-family:var(--font-heading)}
h1,h2,h3,.section-label,.knowledge-heading .secondary-knowledge{font-family:var(--font-heading);font-weight:700}
.route-flow li{font-weight:600}
.section-body,.step-prose{font-family:var(--font-reading);color:#252c31}
.solution math{font-family:var(--font-math);font-weight:400}
.step-number,.route-flow span{font-family:var(--font-heading);font-weight:600}
.knowledge-heading{gap:0 0.5em;flex-wrap:wrap}.knowledge-item{flex:0 1 auto;display:flex;align-items:baseline}.knowledge-item:last-child{min-width:0}@media(max-width:800px){.knowledge-heading{gap:0 0.5em}.knowledge-item{display:flex;flex-wrap:wrap}}
/* Inline MathML must not become a tiny scroll container with native arrows. */
.solution math{overflow:visible;max-width:none}
.solution math::-webkit-scrollbar{display:none}
.sample-review{max-width:1080px}.sample-svg{display:block;width:100%;height:auto;margin:20px auto;max-width:800px}.diagram-label{font:17px/1.5 'SimSun','Yu Mincho',serif;color:#263e50}.sample-options{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.sample-options li{display:flex;align-items:center;gap:15px;min-height:56px}.sample-options li>span{flex-shrink:0}.source-review{margin:22px 0;padding:18px;background:#f4f7fa}.source-review summary{cursor:pointer;font-family:var(--font-heading);font-weight:600}.source-review button{padding:4px 8px;font-size:14px}.sample-review .generated-question{white-space:normal}.sample-review .solution .sample-svg{background:white;border:1px solid var(--line)}@media(max-width:650px){.sample-options{grid-template-columns:1fr}.sample-review{padding:0 12px}}
.draft-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin:20px 0}.teacher{max-width:1380px}.solution-editor{min-height:400px}.generated-question,.generated-options{font-family:var(--font-reading);line-height:2}.teacher math,.mock-body math{font-family:var(--font-math);overflow:visible}.teacher-answer{background:#fff2ca;padding:8px 12px}.teacher .paper{margin-top:20px}#draft-preview{overflow-wrap:anywhere;min-width:0}#draft-preview .section-body{overflow-x:auto}#draft-preview h2{font-size:20px}@media(max-width:900px){.draft-workspace{grid-template-columns:1fr}.teacher .paper{padding:16px}}
.exam-picker{font-size:15px;margin:12px 0 5px}.exam-picker select{margin-top:6px}.library-count{font-size:13px;color:var(--muted);margin:5px 0 14px}
.step-content.wide-figure{grid-template-columns:minmax(0,1fr)}
.solution .label{font-size:14.6667px;line-height:1.4}
.solution .section-body{min-width:0;overflow-x:auto}
/* EJU question figures: black ink and grayscale shading, independent of site theme. */
/* Reading-room design: quiet paper surfaces, one teal accent, no external fonts. */
:root{--ink:#243c37;--blue:#226b59;--line:#dce1d9;--muted:#64756e;--paper:#fffefa;--canvas:#f3f3ed}
body{background:var(--canvas)}body>header{min-height:80px;padding:18px 4%;background:var(--paper);border-bottom:1px solid var(--line)}.brand{letter-spacing:-.04em;font-size:29px}.brand span{margin-left:8px;letter-spacing:.03em}.edition{border-left:1px solid var(--line);padding-left:22px}#account{max-width:55%;overflow-wrap:anywhere}#account button{font-size:12px;margin-left:12px;padding:6px 12px}button,a,input,select{transition:background-color .18s,border-color .18s,color .18s}button{border-radius:6px}button:hover{background:#eaf0e9;border-color:#99b6aa}button.primary{background:var(--blue);border-color:var(--blue)}button:disabled{cursor:default}input:focus,select:focus,textarea:focus{outline:2px solid #226b59;outline-offset:2px}.eyebrow{font-size:11px;letter-spacing:.13em}.auth{border:0;border-top:3px solid var(--blue);border-radius:0 0 10px 10px;background:var(--paper);box-shadow:0 12px 40px #243c3708}.auth>h1{margin-top:24px}.auth p{font-family:var(--font-heading);font-size:14px}.auth label{font-family:var(--font-heading);font-size:14px}.auth input{margin-top:6px}.auth button.primary{width:100%;margin:12px 0}
.portal-home{max-width:1180px;margin:0 auto;padding:0 44px;font-family:var(--font-heading)}.portal-intro{position:relative;padding:72px 0 60px;overflow:hidden}.portal-intro .eyebrow{margin-bottom:26px}.portal-intro h1{position:relative;z-index:1;font-size:68px;letter-spacing:-.04em;font-weight:500;line-height:1.15;margin:0 0 26px}.portal-intro h1>span{font:normal 100px/.9 Georgia,serif;letter-spacing:-.065em}.portal-lead{font-size:24px;font-weight:500;position:relative;z-index:1}.portal-description{font-size:15px;line-height:1.9;color:var(--muted);margin-top:18px;position:relative;z-index:1}.portal-physics{position:absolute;width:60%;height:100%;right:-14%;top:0;color:#43806b;pointer-events:none;opacity:.62}.portal-entries{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bfcfc4;border-bottom:1px solid #bfcfc4;margin:0}.portal-entry{display:block;padding:32px 0 30px;text-decoration:none;color:var(--ink)}.portal-entry:first-child{padding-right:40px}.portal-entry+.portal-entry{padding-left:40px;border-left:1px solid #bfcfc4}.portal-entry:hover{background:#e9eee6}.entry-label{font-size:11px;letter-spacing:.13em;color:var(--muted);margin-bottom:16px}.portal-entry h2{display:flex;justify-content:space-between;align-items:center;font-size:27px;font-weight:500;margin:0 0 12px}.portal-entry h2>span{font-size:27px;font-weight:400;color:var(--blue);transition:transform .2s}.portal-entry:hover h2>span{transform:translate(3px,-3px)}.portal-entry p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 22px}.entry-action{font-size:14px;font-weight:600;display:inline-flex;gap:35px;align-items:center}.student-entry .entry-action{background:var(--blue);color:white;padding:10px 20px;border-radius:5px}.portal-foot{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);padding:24px 0 36px}.portal-intro,.portal-entries{animation:paper-in .4s ease-out both}.portal-entries{animation-delay:.06s}@keyframes paper-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.study-heading{max-width:1440px;padding:30px 32px 0;margin:auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-heading)}.study-heading h1{font-size:26px;font-weight:500;margin:4px 0 0}.study-heading>a{font-size:13px;text-decoration:none}.study-layout{grid-template-columns:272px minmax(0,1fr);gap:32px;margin:24px auto;padding:0 32px}.study-layout .sidebar{top:20px;max-height:calc(100vh - 40px);overflow-y:auto;padding:4px 8px 18px 0;scrollbar-width:thin}.sidebar-title{display:flex;align-items:center;justify-content:space-between}.sidebar-title h2{font-size:15px;margin:0;font-weight:600}.sidebar-title>span{font-size:11px;color:var(--muted)}.study-layout .tabs{gap:0;border-bottom:1px solid var(--line);margin:16px 0 20px}.study-layout .tabs button{font-size:12px;padding:10px 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none}.study-layout .tabs button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue);font-weight:700}.study-layout .exam-picker{font-size:12px;color:var(--muted);margin:14px 0}.study-layout select{font-size:13px;border:1px solid var(--line);padding:10px;color:var(--ink);background:var(--paper);border-radius:6px}.study-layout .filter-count{font-size:11px;display:inline-block;margin-right:12px}.study-layout .reset-filters{font-size:11px;background:none;border:0;padding:0;color:var(--blue)}.study-layout .block{font-size:12px;margin:20px 0 9px;color:var(--muted)}.study-layout .qnav{grid-template-columns:repeat(5,1fr);gap:6px}.study-layout .qnav button{padding:7px 0;font-size:12px;background:none;border-color:transparent;min-height:36px}.study-layout .qnav .active{background:var(--blue);color:white}.study-layout .paper{border:1px solid #e2e5dd;border-radius:8px;background:var(--paper);padding:0 36px 32px;scroll-margin-top:20px;box-shadow:0 6px 20px #243c3703}.study-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:24px;font:12px/1.5 var(--font-heading);color:var(--muted)}.study-controls b{color:var(--ink);margin-left:12px}.study-controls>div{display:flex;gap:6px}.study-controls button{padding:6px 10px;border-color:transparent;background:transparent;font-size:12px}.study-layout .knowledge-heading{border:0;padding:0;gap:0 .5em;margin:6px 0 24px;align-items:baseline}.study-layout .knowledge-level{font-size:10px;color:var(--muted)}.study-layout .knowledge-heading h1,.study-layout .secondary-knowledge{font-size:18px;font-weight:600}.study-layout .question-pages{border:0;background:#fff}.study-layout .question-page{max-width:820px;margin:auto}.study-layout #attempt{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.answer-caption{font:12px var(--font-heading);color:var(--muted)}.study-layout .choices{gap:9px;margin:14px 0 20px}.study-layout .choices label{border-radius:6px;min-width:55px;justify-content:center;font-size:14px;background:var(--paper);padding:9px 12px}.study-layout .choices label:has(input:checked){background:#e5eee7;border-color:var(--blue);color:var(--blue)}.study-layout .choices input{accent-color:var(--blue)}.study-layout #explain{margin-top:12px;border:0;background:none;color:var(--blue);padding-left:0;font-size:14px}.study-layout .result:empty{display:none}.study-layout .section-label{background:none;color:var(--ink);border-radius:0;border-left:3px solid var(--blue);font-size:16px;padding:0 0 0 12px;margin:16px 0 12px}.study-layout .section-body{border:0;background:#f4f5ef;border-radius:4px;padding:20px;line-height:1.95}.study-layout .step-card{border:0;border-top:1px solid var(--line);border-radius:0;--accent:#226b59;--tint:#f2f5ee;margin:16px 0}.study-layout .step-card h3{background:none;font-size:17px;padding:18px 0 8px}.study-layout .step-content{padding:12px 0 20px}.study-layout .step-number{border-radius:4px;font-size:12px;min-width:25px;height:25px}.study-layout .step-card .eq{border:0;border-left:2px solid #abc2b3;border-radius:0}.study-layout .key-section .section-body{background:#eaf1e9;border:0}.study-layout .filtered-results{max-height:42vh;gap:0}.study-layout .result-item{border:0;border-radius:0;border-bottom:1px solid var(--line);background:none;padding:12px 10px}.study-layout .result-item.active{background:#e5eee5;box-shadow:inset 2px 0 var(--blue)}.study-layout .result-item strong{font-size:12px}.study-layout .result-item span{font-size:11px;color:var(--muted)}
@media(max-width:800px){body>header{padding:16px 20px;min-height:70px}.portal-home{padding:0 24px}.portal-intro{padding:48px 0 40px}.portal-intro h1{font-size:47px}.portal-intro h1>span{font-size:72px}.portal-lead{font-size:19px}.portal-physics{opacity:.15;right:-15%;width:90%}.portal-entries{grid-template-columns:1fr}.portal-entry:first-child{padding-right:0}.portal-entry+.portal-entry{padding-left:0;border-left:0;border-top:1px solid #bfcfc4}.portal-entry{padding:24px 0}.portal-entry h2{font-size:23px}.portal-foot{flex-direction:column;gap:8px}.study-heading{padding:24px 18px 0}.study-layout{grid-template-columns:1fr;padding:0 14px;gap:20px;margin:18px auto}.study-layout .sidebar{position:static;max-height:none;padding:0 4px}.study-layout .paper{padding:0 18px 24px}.study-layout #question-nav{max-height:210px;overflow:auto}.study-layout .qnav{grid-template-columns:repeat(7,1fr)}.study-layout .knowledge-heading h1,.study-layout .secondary-knowledge{font-size:16px}.study-controls{font-size:11px}.study-controls button{padding:6px;font-size:11px}.study-layout .section-body{padding:15px}.study-layout .step-content.with-figure{grid-template-columns:1fr}.study-layout .filtered-results{max-height:210px}}@media(prefers-reduced-motion:reduce){.portal-intro,.portal-entries{animation:none}button,a,input,select,.portal-entry h2>span{transition:none}}
.sample-svg,.sample-svg .diagram-label,.sample-svg math{color:#111111}
.portal-intro .home-title{font-size:64px;line-height:1.2;letter-spacing:-.035em}.portal-intro .home-title>.home-brand{display:block;font:500 42px/1.2 var(--font-heading);letter-spacing:0;margin-bottom:22px}.home-brand>span{font:normal 58px/1 Georgia,serif;letter-spacing:-.05em}.portal-intro .home-title>.home-title-detail{display:block;font:600 64px/1.25 var(--font-heading);letter-spacing:-.035em}.portal-intro:has(.home-title){padding-top:52px;padding-bottom:44px}.portal-intro:has(.home-title) .portal-physics{right:-18%;width:62%}@media(max-width:800px){.portal-intro .home-title>.home-brand{font-size:30px;margin-bottom:20px}.home-brand>span{font-size:42px}.portal-intro .home-title>.home-title-detail{font-size:38px;line-height:1.3}.portal-intro:has(.home-title){padding-top:36px}.portal-intro:has(.home-title) .portal-physics{right:-25%;width:95%}}
.portal-login{border-top:1px solid #bfcfc4;padding:32px 0 48px}.home-login-button{display:inline-flex;align-items:center;justify-content:space-between;gap:64px;padding:13px 24px;background:var(--blue);color:white;border-radius:5px;text-decoration:none;font:600 16px var(--font-heading)}.home-login-button:hover{background:#185343}.portal-login p{font-size:13px;color:var(--muted);margin-top:18px}
.mobile-directory{display:none}@media(max-width:800px){.mobile-directory{display:block;background:none;border:0;color:var(--blue);padding:4px;font-size:12px}.sidebar-title>span{display:none}.study-layout .sidebar:not(.directory-open) .exam-picker,.study-layout .sidebar:not(.directory-open) .filter-count,.study-layout .sidebar:not(.directory-open) .reset-filters,.study-layout .sidebar:not(.directory-open) #question-nav{display:none}.study-layout .tabs{margin-bottom:0}}
.exam-options-table{border-collapse:collapse;width:100%;max-width:640px;table-layout:fixed;margin:24px auto 30px;font-family:var(--font-reading);color:#263e50;background:#fff}
.exam-options-table th,.exam-options-table td{border:1px solid #74828b;text-align:center;vertical-align:middle;padding:10px 12px;height:48px;font-weight:400;line-height:1.5}
.exam-options-table thead th{background:#fff;font-weight:400}.exam-options-table th:first-child{width:76px}.exam-options-table math{font-size:1em}
.exam-options-table thead .option-corner{border:none;background:transparent;padding:0}
@media(max-width:650px){.exam-options-table th,.exam-options-table td{padding:8px 5px;height:46px}.exam-options-table th:first-child{width:48px}}
.filter-count{font-size:14px;margin:12px 0 6px}.reset-filters{font-size:13px;padding:4px 10px;margin-bottom:10px}.filtered-results{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:7px;padding:2px 4px 8px 0}.result-item{text-align:left;padding:10px;min-width:0;overflow-wrap:anywhere}.result-item strong,.result-item span{display:block}.result-item strong{font-size:14px}.result-item span{font-size:13px;font-weight:400;margin-top:3px}.result-item.active{border-color:var(--blue);background:#e8f3f8;box-shadow:inset 3px 0 var(--blue)}.empty-results{padding:25px 0}@media(max-width:800px){.filtered-results{max-height:240px}.empty-results h1{font-size:23px}}
.plan-entry{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px;margin:24px 0;background:#e9f0e8;border:1px solid #cad9ce;border-radius:12px}.plan-entry h2{margin:8px 0;font-size:23px}.plan-entry p{margin:8px 0;color:#53655c}.plan-entry button{flex-shrink:0}.plan-history-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 0;border-top:1px solid #dce2dc}.plan-history-item p{margin:4px 0;font-size:13px;color:#64746c}
.exam-planner{max-width:1180px;margin:auto;font-family:var(--font-heading)}.planner-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:28px 0}.planner-heading h1{margin:8px 0;font-size:34px}.planner-heading p{color:#60736b}.plan-basics{display:grid;grid-template-columns:2fr 1fr;gap:24px}.exam-planner input,.exam-planner select,.exam-planner textarea{width:100%;min-width:0;box-sizing:border-box;font-family:var(--font-heading);font-size:14px}.exam-planner label{min-width:0}.plan-totals{display:flex;flex-wrap:wrap;align-items:center;gap:24px;padding:18px 22px;background:#243e34;color:#fff;border-radius:8px;margin:20px 0}.plan-totals b{font-size:24px;margin-left:8px}.plan-totals>span:last-child{font-size:12px;opacity:.8;margin-left:auto}.plan-block{margin:22px 0;padding:24px}.plan-block-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid #dce3dc;padding-bottom:12px}.plan-block-title h2{margin:0;font-size:23px}.plan-block-title span{font-size:13px;color:#68776e}.plan-quota{display:flex;gap:16px;align-items:end;flex-wrap:wrap;padding:18px 0}.plan-quota label{display:flex;align-items:center;gap:8px;font-size:13px;margin:0}.plan-quota input{width:66px;margin:0;padding:8px}.plan-quota button{font-size:13px;margin:0}.quota-status{font-size:12px;align-self:center;color:#607466}.plan-column-labels,.plan-question{display:grid;grid-template-columns:48px minmax(0,1.2fr) minmax(0,1.2fr) 110px;gap:14px;align-items:center}.plan-column-labels{color:#6a776f;font-size:12px;padding:10px 0}.plan-question{border-top:1px solid #e8ece6;padding:12px 0}.plan-question strong{font-size:13px;color:#48695b}.plan-question label,.plan-question select{margin:0}.plan-question select{padding:10px 6px}.mobile-plan-label{display:none}.plan-actions{display:flex;align-items:center;gap:14px;border-top:1px solid #becfc2;padding:22px 0 40px}.plan-actions>div{margin-right:auto}.plan-actions strong{font-size:14px}.plan-actions p{font-size:13px;color:#64746b;margin:6px 0}.plan-actions button{flex-shrink:0}.plan-warnings{padding:20px 24px;background:#fbf4df;border:1px solid #e7d8aa;border-radius:8px}.plan-warnings h2{font-size:18px}.plan-warnings li{margin:8px 0;font-size:14px}.plan-success{padding:18px;background:#e9f3e8;border-radius:8px}.plan-blocks select:focus,.exam-planner input:focus{outline:2px solid #568a6b;outline-offset:2px}
@media(max-width:760px){.plan-entry,.planner-heading,.plan-actions{flex-direction:column;align-items:stretch}.plan-basics{grid-template-columns:1fr}.planner-heading h1{font-size:27px}.plan-block{padding:16px}.plan-column-labels{display:none}.plan-question{grid-template-columns:40px minmax(0,1fr);gap:10px}.plan-question strong{grid-row:span 3;align-self:start;padding-top:22px}.plan-question label{grid-column:2}.mobile-plan-label{display:block;font-size:12px;color:#6a776f;margin-bottom:4px}.plan-totals{gap:14px}.plan-totals>span:last-child{margin-left:0;width:100%}.plan-quota{gap:10px}.plan-quota input{width:52px}.plan-history-item{align-items:start;flex-direction:column}.plan-entry{padding:20px}.plan-actions>div{margin-right:0}.plan-block-title span{font-size:12px}}

/* UI/UX refinement for the current 38-exam classroom and teacher workspace. */
:root { --ui-accent: #226b59; --ui-accent-hover: #185343; --ui-soft: #eaf1ec; --ui-border: #d3ddd5; --ui-muted: #52665d; --ui-radius: 12px; }
html { scroll-padding-top: 24px; }
button,a { touch-action: manipulation; }
button { min-height: 44px; font-size: 14px; }
button,input,select,textarea { border-radius: 8px; }
button:active:not(:disabled) { filter: brightness(.95); }
:focus-visible { outline: 3px solid var(--ui-accent); outline-offset: 4px; }
button:disabled { cursor: not-allowed; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 12px 20px; background: white; border: 2px solid var(--ui-accent); border-radius: 8px; font-family: var(--font-heading); }
.skip-link:focus { top: 12px; }
body>header { min-height: 76px; padding: 16px max(24px,calc((100vw - 1376px)/2)); gap: 22px; }
#account { display: flex; align-items: center; gap: 12px; font-size: 13px; }
#account:empty { display: none; }
#account button { min-height: 40px; margin-left: 0; padding: 8px 14px; font-size: 14px; flex-shrink: 0; }
.edition { font-size: 14px; }
.eyebrow { font-size: 12px; letter-spacing: .11em; }
.portal-home { max-width: 1240px; padding: 0 48px; }
.portal-intro:has(.home-title) { padding-top: clamp(44px,7vw,96px); padding-bottom: 48px; }
.portal-intro .home-title>.home-brand { font-size: 32px; margin-bottom: 28px; }
.home-brand>span { font-size: 44px; }
.portal-intro .home-title>.home-title-detail { font-size: clamp(38px,5vw,64px); line-height: 1.24; letter-spacing: -.025em; }
.portal-description { font-size: 16px; line-height: 1.9; color: var(--ui-muted); }
.portal-intro:has(.home-title) .portal-physics { right: -10%; width: 62%; opacity: .42; }
.portal-login { display: flex; align-items: center; gap: 28px; padding: 28px 0 48px; }
.home-login-button { min-height: 52px; padding: 14px 24px; border-radius: 9px; gap: 70px; }
.portal-login p { margin: 0; font-size: 14px; max-width: 28em; color: var(--ui-muted); }
.auth { width: min(480px,calc(100% - 32px)); margin: 48px auto; padding: 32px; border: 1px solid var(--ui-border); border-top: 3px solid var(--ui-accent); border-radius: var(--ui-radius); box-shadow: 0 10px 32px #243c3706; }
.auth h1 { font-size: 26px; margin: 20px 0 10px; }
.auth>a { display: inline-flex; align-items: center; min-height: 44px; font: 14px var(--font-heading); text-underline-offset: 4px; }
.auth label { margin: 20px 0; font-size: 14px; font-weight: 600; }
.auth input { min-height: 48px; font-size: 16px; font-weight: 400; border-color: #97aaa0; }
.auth input[readonly] { background: var(--ui-soft); }
.auth p { line-height: 1.85; }
.auth .primary { min-height: 48px; }
.auth #local-register { width: 100%; background: transparent; border-color: var(--ui-border); }
.auth #local-error:not(:empty),.auth #form-error:not(:empty) { padding: 12px 14px; border-left: 3px solid #a63232; background: #fff0ec; color: #8b302a; border-radius: 6px; }
.study-heading { padding: 32px 32px 0; align-items: center; gap: 20px; }
.study-heading h1 { font-size: 28px; font-weight: 650; }
.study-heading>a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
.study-layout { grid-template-columns: 288px minmax(0,1fr); gap: 26px; }
.study-layout .sidebar { padding: 22px 18px; background: var(--paper); border: 1px solid var(--ui-border); border-radius: var(--ui-radius); }
.sidebar-title { gap: 10px; }
.sidebar-title h2 { font-size: 16px; }
.sidebar-title>span { font-size: 12px; white-space: nowrap; }
.study-layout .tabs { gap: 4px; margin: 16px 0 20px; padding-bottom: 4px; }
.study-layout .tabs button { min-height: 44px; font-size: 14px; padding: 9px 8px; }
.study-layout .exam-picker { font-size: 14px; color: var(--ui-muted); margin: 18px 0; }
.study-layout select { min-height: 46px; font-size: 14px; padding: 10px; background: white; border-color: #a9b8ae; }
.study-layout .filter-count { font-size: 13px; }
.study-layout .reset-filters { min-height: 44px; padding: 6px; font-size: 13px; }
.study-layout .block { font-size: 14px; margin-top: 22px; font-weight: 600; }
.study-layout .qnav { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.study-layout .qnav button { min-height: 44px; font-size: 14px; border: 1px solid var(--ui-border); background: white; font-variant-numeric: tabular-nums; }
.study-layout .qnav .active { background: var(--ui-accent); color: white; border-color: var(--ui-accent); box-shadow: 0 0 0 3px var(--ui-soft); }
.study-layout .paper { padding: 0 32px 32px; border-color: var(--ui-border); border-radius: var(--ui-radius); box-shadow: none; }
.study-controls { margin-bottom: 24px; padding: 16px 0; font-size: 14px; flex-wrap: wrap; }
.study-controls button { min-height: 44px; padding: 9px 12px; font-size: 14px; border: 1px solid var(--ui-border); background: white; }
.study-controls>div { gap: 8px; }
.study-layout .knowledge-level { font-size: 13px; }
.study-layout .knowledge-heading h1,.study-layout .secondary-knowledge { font-size: 20px; line-height: 1.6; }
.study-layout .knowledge-heading { margin-bottom: 24px; }
.study-layout .answer-caption { font: 14px var(--font-heading); color: var(--ui-muted); }
.study-layout .choices { gap: 10px; }
.study-layout .choices label { cursor: pointer; min-height: 48px; min-width: 60px; font-size: 16px; border-color: #98aea0; }
.choices label:focus-within { outline: 3px solid var(--ui-accent); outline-offset: 3px; }
.choices input { width: 16px; height: 16px; }
.study-layout #explain { min-height: 44px; font-size: 15px; text-underline-offset: 5px; }
.study-layout .filtered-results { max-height: 44vh; }
.study-layout .result-item { min-height: 64px; padding: 14px 12px; }
.study-layout .result-item strong { font-size: 14px; }
.study-layout .result-item span { font-size: 13px; line-height: 1.7; }
.empty-results { padding: 36px 0; }
.teacher { margin: 32px auto; padding: 0 32px 40px; }
.teacher-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 24px; font-family: var(--font-heading); }
.teacher-heading h1 { margin: 4px 0 8px; font-size: 30px; }
.teacher-heading p { margin: 0; color: var(--ui-muted); font-size: 14px; }
.teacher-heading>button { flex-shrink: 0; }
.reference-action { display: inline-block; margin: 0 12px 16px 0; }
.reference-action button { min-height: 46px; }
.teacher>.paper { border-radius: var(--ui-radius); padding: 26px; }
.teacher>.paper>h2 { font-size: 20px; }
.teacher>.paper>p,.teacher .plan-history-item p { font-family: var(--font-heading); font-size: 14px; line-height: 1.8; color: var(--ui-muted); }
.teacher .preview-banner { text-align: left; padding: 14px 18px; border-radius: 8px; font: 14px/1.8 var(--font-heading); }
.plan-entry { border-radius: var(--ui-radius); padding: 28px; gap: 24px; }
.plan-entry h2 { font-size: 24px; line-height: 1.5; }
.plan-entry p { font-size: 14px; line-height: 1.8; }
.plan-history-item { gap: 20px; padding: 20px 0; }
.plan-history-item strong { font-size: 16px; }
#authoring-library-panel details { padding: 14px 18px; background: var(--ui-soft); border-radius: 8px; font: 14px/1.85 var(--font-heading); }
#authoring-library-panel summary { cursor: pointer; min-height: 32px; font-weight: 600; }
.exam-planner { padding: 24px 32px 0; }
.planner-heading h1 { font-size: 30px; }
.plan-block,.plan-basics,.exam-planner>.paper { border-radius: var(--ui-radius); }
.plan-totals { border-radius: 10px; }
.plan-column-labels,.plan-question { font-size: 14px; }
.plan-question select { min-height: 46px; border-color: #a9b8ae; }
.plan-actions { gap: 16px; }
.plan-actions button { min-height: 48px; }
#notice:not(:empty) { font: 14px/1.8 var(--font-heading); box-shadow: 0 4px 20px #17374c20; border-radius: 10px; }
@media (hover:hover) {
 .study-layout .qnav button:not(.active):hover { background: var(--ui-soft); border-color: var(--ui-accent); }
 .study-layout #explain:hover { text-decoration: underline; }
 .home-login-button:hover,button.primary:hover { background: var(--ui-accent-hover); }
}
@media (max-width:800px) {
 body>header { min-height: 68px; padding: 12px 16px; gap: 12px; flex-wrap: wrap; }
 .brand { font-size: 25px; }
 #account { max-width: 100%; font-size: 12px; gap: 8px; }
 .portal-home { padding: 0 24px; }
 .portal-intro:has(.home-title) { padding-top: 44px; padding-bottom: 32px; }
 .portal-intro:has(.home-title) .portal-physics { opacity: .14; width: 90%; right: -25%; }
 .portal-intro .home-title>.home-brand { font-size: 28px; margin-bottom: 22px; }
 .portal-intro .home-title>.home-title-detail { font-size: clamp(32px,8vw,42px); }
 .portal-description { font-size: 15px; }
 .portal-login { flex-direction: column; align-items: stretch; gap: 18px; padding-top: 24px; }
 .home-login-button { width: 100%; }
 .auth { padding: 24px; margin: 28px auto; }
 .study-heading { padding: 24px 16px 0; }
 .study-heading h1 { font-size: 24px; }
 .study-layout { grid-template-columns: minmax(0,1fr); padding: 0 16px; gap: 18px; }
 .study-layout .sidebar { padding: 16px; max-height: none; }
 .mobile-directory { min-height: 44px; padding: 8px; font-size: 14px; }
 .study-layout .tabs { gap: 8px; margin-bottom: 0; }
 .study-layout .qnav { grid-template-columns: repeat(auto-fill,minmax(44px,1fr)); }
 .study-layout #question-nav { max-height: 290px; }
 .study-layout .paper { padding: 0 16px 24px; }
 .study-controls { gap: 8px; font-size: 13px; }
 .study-controls button { padding: 8px; font-size: 13px; }
 .study-layout .knowledge-heading h1,.study-layout .secondary-knowledge { font-size: 18px; }
 .teacher { padding: 0 16px 32px; margin-top: 24px; }
 .teacher-heading { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
 .teacher-heading h1 { font-size: 26px; }
 .teacher>.paper,.plan-entry { padding: 20px; }
 .reference-action { display: block; margin-right: 0; }
 .reference-action button { width: 100%; text-align: left; }
 .plan-entry h2 { font-size: 21px; }
 .plan-entry button { width: 100%; }
 .exam-planner { padding: 18px 16px 0; }
 .planner-heading h1 { font-size: 26px; }
 .plan-block { padding: 16px; }
 .plan-quota label { font-size: 14px; }
 .plan-actions button { width: 100%; }
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.teacher>.paper + .reference-action { margin-top: 20px; }

/* Semantic color hierarchy: learning blue, practice amber, teaching teal. */
:root {
 --canvas:#f1f4f8; --paper:#fff; --ink:#223348; --muted:#596a7c;
 --learn:#2456a6; --learn-deep:#193e7e; --learn-soft:#eaf1fd; --learn-line:#bdceed;
 --practice:#a34c12; --practice-deep:#7b360c; --practice-soft:#fff2df; --practice-line:#e5c496;
 --teach:#1c6955; --teach-soft:#e7f3ed; --teach-line:#b1d5c4;
}
body>header { background:#fff; border-bottom-color:#d5deea; border-top:4px solid var(--teach); }
body:has(.study-layout[data-study-mode="past"])>header { border-top-color:var(--learn); }
body:has(.study-layout[data-study-mode="mocks"])>header { border-top-color:var(--practice); }
.portal-intro .home-title-detail { color:var(--learn-deep); }
.portal-intro .home-brand { color:var(--teach); }
.portal-login { border-top-color:var(--learn-line); }
.auth { border-top-color:var(--learn); }
.auth h1 { color:var(--learn-deep); }
.auth .primary { background:var(--learn); border-color:var(--learn); }
.study-layout {
 --ui-accent:var(--learn); --ui-accent-hover:var(--learn-deep); --ui-soft:var(--learn-soft); --ui-border:#d2ddec;
 --blue:var(--learn);
}
.study-layout[data-study-mode="mocks"] {
 --ui-accent:var(--practice); --ui-accent-hover:var(--practice-deep); --ui-soft:var(--practice-soft); --ui-border:#e5d5bf;
 --blue:var(--practice);
}
.study-layout .sidebar { background:#fff; border-top:4px solid var(--ui-accent); }
.study-layout .sidebar-title { padding-bottom:12px; border-bottom:1px solid var(--ui-border); }
.study-layout .sidebar-title h2 { color:var(--ui-accent); }
.study-layout .tabs { border:0; gap:10px; padding:0; }
.study-layout .tabs button { flex:1; border:1px solid var(--ui-border); border-radius:8px; background:#f5f7fa; color:#475b70; font-weight:600; }
.study-layout #past[aria-pressed="true"] { background:var(--learn); color:#fff; border-color:var(--learn); box-shadow:0 3px 8px #2456a61a; }
.study-layout #mocks[aria-pressed="true"] { background:var(--practice); color:#fff; border-color:var(--practice); box-shadow:0 3px 8px #a34c121a; }
.study-layout #mocks[aria-pressed="false"] { background:var(--practice-soft); color:var(--practice); border-color:var(--practice-line); }
.study-layout #past[aria-pressed="false"] { background:var(--learn-soft); color:var(--learn); border-color:var(--learn-line); }
.study-layout .exam-picker select { background:#f7f9fc; }
.study-layout .block { color:var(--ui-accent); }
.study-layout .qnav .active { background:var(--ui-accent); }
.study-layout .paper { border-top:4px solid var(--ui-accent); }
.study-controls { background:var(--ui-soft); margin-left:-32px; margin-right:-32px; padding:14px 32px; border-bottom:1px solid var(--ui-border); border-radius:8px 8px 0 0; }
.study-controls b { color:var(--ui-accent); }
.study-layout .knowledge-level { color:var(--learn); background:var(--learn-soft); border-radius:4px; padding:2px 6px; }
.study-layout .knowledge-item:last-child .knowledge-level { color:var(--teach); background:var(--teach-soft); }
.study-layout .choices label:has(input:checked) { color:var(--ui-accent); background:var(--ui-soft); border-color:var(--ui-accent); box-shadow:inset 0 0 0 1px var(--ui-accent); }
.study-layout button.primary { background:var(--ui-accent); border-color:var(--ui-accent); }
.study-layout #explain { padding:10px 16px; border:1px solid var(--learn-line); background:var(--learn-soft); border-radius:8px; }
.study-layout .filtered-results .result-item.active { background:var(--ui-soft); box-shadow:inset 3px 0 var(--ui-accent); }
.study-layout .section-label { color:var(--learn-deep); border-left-color:var(--learn); }
.study-layout .intro-section .section-body { background:#f0f5fc; border:1px solid #d8e3f3; }
.study-layout .step-card { --accent:var(--learn); --tint:var(--learn-soft); border:1px solid var(--learn-line); border-radius:10px; overflow:hidden; }
.study-layout .step-card.tone-1 { --accent:var(--teach); --tint:var(--teach-soft); border-color:var(--teach-line); }
.study-layout .step-card.tone-2 { --accent:var(--practice); --tint:var(--practice-soft); border-color:var(--practice-line); }
.study-layout .step-card h3 { color:var(--accent); background:var(--tint); padding:14px 18px; }
.study-layout .step-card .step-content { padding:16px 18px; }
.study-layout .step-number { background:var(--accent); }
.study-layout .step-card .eq { border-left-color:var(--accent); }
.study-layout .key-section .section-label { color:var(--practice); border-left-color:var(--practice); }
.study-layout .key-section .section-body { background:var(--practice-soft); border:1px solid var(--practice-line); }
.study-layout[data-study-mode="mocks"] #content>h1 { padding-top:26px; color:var(--practice-deep); }
.study-layout[data-study-mode="mocks"] .card { border-left:4px solid var(--practice); border-radius:8px; background:#fffaf3; }
.teacher-heading { border-left:4px solid var(--teach); padding-left:18px; }
.teacher-heading .eyebrow,.teacher-heading h1 { color:var(--teach); }
.teacher .plan-entry { background:var(--teach-soft); border:1px solid var(--teach-line); border-left:5px solid var(--teach); }
.teacher .plan-entry h2 { color:#184f40; }
.teacher #new-plan { background:var(--teach); border-color:var(--teach); }
.teacher #plan-history { background:#f3f7ff; border:1px solid var(--learn-line); border-top:4px solid var(--learn); }
.teacher #plan-history h2 { color:var(--learn-deep); }
.teacher #authoring-library-panel { background:#f5f2fc; border:1px solid #d3c8e8; border-top:4px solid #6a4b99; }
.teacher #authoring-library-panel h2 { color:#5a3e85; }
.teacher #authoring-library-panel details { background:#ebe5f7; color:#513b72; }
.teacher>.paper:not(#plan-history):not(#authoring-library-panel) { border-top:4px solid var(--practice); }
.teacher>.paper:not(#plan-history):not(#authoring-library-panel)>h2 { color:var(--practice-deep); }
.teacher #full-exam, .teacher [data-generated-preview] { color:var(--learn); background:var(--learn-soft); border-color:var(--learn-line); }
.teacher #review-samples { color:var(--practice); background:var(--practice-soft); border-color:var(--practice-line); }
.teacher .preview-banner { color:#784719; background:#fff3da; border:1px solid #ead2a5; }
.exam-planner .plan-totals { background:var(--teach); }
.exam-planner .plan-block { border-top:4px solid var(--learn); }
.exam-planner .plan-block:nth-child(3n+2) { border-top-color:var(--teach); }
.exam-planner .plan-block:nth-child(3n) { border-top-color:var(--practice); }
.exam-planner .plan-block-title { background:#f3f6fa; padding:14px 16px; border-radius:7px; }
@media (max-width:800px) {
 .study-controls { margin-left:-16px; margin-right:-16px; padding:12px 16px; }
 .teacher-heading { padding-left:14px; }
 .study-layout .step-card h3,.study-layout .step-card .step-content { padding:14px; }
}

/* Final answer choice in the detailed derivation. */
.solution .final-choice { color: #b42318; font-weight: 700; }

/* Visible fixed reference sources. */
.library-sources { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; margin:22px 0; }
.library-source { min-width:0; padding:18px; background:#fff; border:1px solid #d3c8e8; border-radius:10px; font-family:var(--font-heading); }
.library-source-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.library-source h3 { margin:0; font-size:17px; color:#513b72; }
.library-source p { font-size:14px; line-height:1.85; color:#526174; margin:12px 0 0; }
.library-source-status { display:inline-block; padding:3px 9px; border-radius:5px; font-size:12px; font-weight:600; }
.library-source-status.available { color:#1c6955; background:#e7f3ed; }
.library-source-status.unavailable { color:#a34c12; background:#fff2df; }
.library-source .library-source-note { padding-top:12px; border-top:1px solid #e7e0f0; }

/* Download controls shared by the teacher overview and full exam preview. */
.exam-download{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0}.exam-download label{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.exam-download select,.exam-download button{min-height:44px;max-width:100%}.exam-download [role="status"],.exam-download>p{flex-basis:100%;margin:0}.generated-exams>h3{margin-bottom:8px}@media(max-width:600px){.exam-download select{flex:1;min-width:0}.exam-download button{width:100%}}

.auth textarea{box-sizing:border-box;width:100%;max-width:100%;padding:12px;font:inherit;line-height:1.6;overflow-wrap:anywhere;border:1px solid #8c9aa8;border-radius:8px}.auth .recovery-check{display:flex;align-items:center;gap:10px;margin:18px 0}.auth .recovery-check input{width:22px;height:22px;flex:none}.auth button{min-height:44px}.auth textarea:focus-visible{outline:3px solid #246e87;outline-offset:2px}

.generated-exam-figure svg{display:block;max-width:100%;height:auto;margin:20px auto}.generated-exams .card button,.generated-exams .card a{min-height:44px}.generated-exams .exam-download a{font-size:16px;padding:12px 18px}

.exam-publication{padding-top:12px;border-top:1px solid var(--line);margin-top:16px}.exam-publication button,.practice-exam-list button{min-height:44px}.practice-exam-list{margin-bottom:28px}.practice-exam-list .card{margin:14px 0}
/* Content access and one-time unlock */
.access-banner{padding:18px 22px;margin:16px 0;border:1px solid #b8cdc3;border-radius:14px;background:#f2f8f4;color:#213d31}.access-banner p{margin:0 0 12px}.access-banner button,.unlock-actions button{min-height:44px}.unlock-dialog{box-sizing:border-box;width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #b8cdc3;border-radius:18px;padding:24px;color:#213d31;background:#fff}.unlock-dialog::backdrop{background:rgb(0 0 0 / .45)}.unlock-dialog p{line-height:1.7;overflow-wrap:anywhere}.unlock-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px}.unlock-dialog a{color:#245840;text-decoration:underline}#access-actions button{margin:8px 8px 0 0;min-height:44px}

.wechat-qr{margin:16px 0;text-align:center}.wechat-qr img{display:block;width:100%;max-width:340px;height:auto;margin:0 auto;border-radius:10px}.wechat-qr figcaption{margin:10px 0;font-size:14px;line-height:1.6}.wechat-qr>a:last-child{display:inline-flex;align-items:center;min-height:44px}

/* Shared learning destinations: side-by-side even on small screens. */
.portal-login{display:block}
.home-study-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:760px;margin-bottom:24px}
.study-entry{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:48px;padding:12px 20px;border-radius:10px;text-decoration:none;font:600 16px/1.5 var(--font-heading);color:#fff}
.home-study-entries .study-entry{min-height:88px;font-size:22px;justify-content:space-between;padding:22px 28px}
.study-entry.entry-past{background:var(--learn);color:#fff}
.study-entry.entry-mocks{background:var(--practice);color:#fff}
.study-entry.entry-past:hover{background:var(--learn-deep)}
.study-entry.entry-mocks:hover{background:var(--practice-deep)}
.study-entry:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.portal-login>p{max-width:760px}
.study-page-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.study-page-links>a:not(.study-entry){display:inline-flex;align-items:center;min-height:44px}
.study-heading{flex-wrap:wrap;gap:16px}
@media(max-width:600px){.home-study-entries{gap:12px}.home-study-entries .study-entry{font-size:17px;padding:18px 12px;gap:6px;min-height:76px}.study-page-links{gap:12px}.study-page-links .study-entry{font-size:15px;padding:10px 14px}}

.auth-secondary-actions{display:flex;align-items:stretch;gap:12px;margin-top:16px}.auth-secondary-actions>button{flex:1;min-width:0;min-height:44px;margin:0;padding:10px 8px;white-space:nowrap}

/* Keep exam illustrations proportionate to the surrounding question text. */
.generated-exam-figure{display:flex;justify-content:center;margin:16px auto;max-width:100%}
.generated-exam-figure .exam-figure-preview{display:block;flex:0 1 540px;min-width:0;max-width:100%;padding:0;margin:0;border:0;border-radius:6px;background:transparent;cursor:default;color:inherit}
.generated-exam-figure .exam-figure-preview:hover{background:transparent;border:0}
.generated-exam-figure svg{display:block;width:100%;max-width:540px;max-height:260px;height:auto;margin:0 auto}
@media(max-width:650px){.generated-exam-figure{margin:12px auto}.generated-exam-figure svg{max-height:220px}}

.generated-exam-figure .exam-figure-preview{text-align:left}

/* Mock exams share the past-paper answer controls. */
.sample-review #attempt{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}
.sample-review .answer-caption{font:14px var(--font-heading);color:var(--ui-muted)}
.sample-review .choices{gap:10px;margin:14px 0 20px}
.sample-review .choices label{cursor:pointer;border-radius:6px;min-height:48px;min-width:60px;justify-content:center;font-size:16px;background:var(--paper);padding:9px 12px;border-color:#98aea0}
.sample-review .choices input{accent-color:var(--ui-accent)}
.sample-review .choices label:has(input:checked){color:var(--ui-accent);background:var(--ui-soft);border-color:var(--ui-accent);box-shadow:inset 0 0 0 1px var(--ui-accent)}
.sample-review #result:empty{display:none}
.sample-review #exam-explain,.sample-review #practice-solution{margin-top:12px}

.study-submit{margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.study-progress{font:14px/1.7 var(--font-heading)}
.study-submit button,.mistake-page button,.mistake-entry{min-height:44px}
.study-summary:not(:empty){margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.wrong-results{display:flex;flex-wrap:wrap;gap:10px}
.mistake-page h2{font-size:18px}.mistake-page .card{overflow-wrap:anywhere}
@media(max-width:600px){.study-submit{padding:12px}.study-submit .actions{flex-direction:column}.study-submit .actions button{width:100%}.wrong-results button{width:100%;text-align:left}}

.paper-progress{margin-top:16px}.paper-progress summary{cursor:pointer;padding:10px 0}.paper-progress-list{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}.paper-progress-list button{font-size:14px}.paper-progress-list [aria-current=true]{border-color:var(--ui-accent);background:var(--ui-soft)}

#answer-key-dialog{width:min(680px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:24px;color:var(--ink);background:var(--paper)}
#answer-key-dialog::backdrop{background:#102b3b80}.answer-key-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.answer-key-heading h2{margin:0;font-size:20px}.answer-key-heading button{min-height:44px;flex-shrink:0}
.answer-key-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:18px}.answer-key-grid>div{display:flex;flex-direction:column;align-items:center;padding:10px;border:1px solid var(--line);border-radius:6px}.answer-key-grid span{font-size:14px}.answer-key-grid strong{font-size:24px}
@media(max-width:600px){#answer-key-dialog{padding:16px}.answer-key-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.answer-key-heading h2{font-size:18px}}

.direct-answer{margin:22px 0 16px;padding:14px 18px;border-left:3px solid var(--ui-accent);background:var(--ui-soft);font:600 18px/1.7 var(--font-heading)}

.study-layout .study-controls{justify-content:flex-start;gap:16px;margin:24px 0 0;padding:16px 0 0;background:transparent;border-top:1px solid var(--ui-border);border-bottom:0;border-radius:0}

:root{--study-start:#226b59;--study-start-hover:#185343}.study-layout button.primary.practice-start{background:var(--study-start);border-color:var(--study-start);color:white}.study-layout button.primary.practice-start:hover{background:var(--study-start-hover);border-color:var(--study-start-hover)}

.study-layout[data-study-mode="mocks"]{grid-template-columns:minmax(0,1fr)}

/* Compact spacing for the mock exam catalogue. */
body:has(.study-layout[data-study-mode="mocks"]) .study-heading{padding-top:24px}
.study-layout[data-study-mode="mocks"]{margin:16px auto}
.study-layout[data-study-mode="mocks"]>#content{padding:16px 20px}
.study-layout[data-study-mode="mocks"] .practice-exam-list{display:grid;gap:10px;margin:0}
.study-layout[data-study-mode="mocks"] .practice-exam-list>.card{padding:12px 16px;margin:0}
.study-layout[data-study-mode="mocks"] .practice-exam-list>.card h3{margin:0 0 6px}
@media(max-width:800px){
 body:has(.study-layout[data-study-mode="mocks"]) .study-heading{padding-top:18px}
 .study-layout[data-study-mode="mocks"]{margin:12px auto}
 .study-layout[data-study-mode="mocks"]>#content{padding:12px}
 .study-layout[data-study-mode="mocks"] .practice-exam-list>.card{padding:12px}
}

/* Compact spacing for past papers and their explanations. */
body:has(.study-layout[data-study-mode="past"]) .study-heading{padding-top:24px}
.study-layout[data-study-mode="past"]{margin:16px auto;gap:20px}
.study-layout[data-study-mode="past"]>.sidebar{padding:16px}
.study-layout[data-study-mode="past"] .exam-picker{margin:12px 0}
.study-layout[data-study-mode="past"] .block{margin-top:14px}
.study-layout[data-study-mode="past"]>#content{padding:12px 20px 16px}
.study-layout[data-study-mode="past"] .knowledge-heading{margin:4px 0 14px}
.study-layout[data-study-mode="past"] #attempt{margin-top:16px;padding-top:14px}
.study-layout[data-study-mode="past"] .choices{margin:10px 0 12px}
.study-layout[data-study-mode="past"] #solution{margin-top:18px;padding-top:4px}
.study-layout[data-study-mode="past"] .lesson-section{margin:12px 0}
.study-layout[data-study-mode="past"] .section-label{margin:10px 0 8px}
.study-layout[data-study-mode="past"] .section-body{padding:12px 16px}
.study-layout[data-study-mode="past"] .step-card{margin:10px 0}
.study-layout[data-study-mode="past"] .step-card h3{padding:10px 14px}
.study-layout[data-study-mode="past"] .step-card .step-content{padding:12px 14px;gap:14px}
.study-layout[data-study-mode="past"] .step-prose p{margin:6px 0}
.study-layout[data-study-mode="past"] .step-card .eq{padding:8px 12px}
.study-layout[data-study-mode="past"] .study-controls{margin-top:16px;padding-top:12px}
@media(max-width:800px){
 body:has(.study-layout[data-study-mode="past"]) .study-heading{padding-top:18px}
 .study-layout[data-study-mode="past"]{margin:12px auto;gap:14px}
 .study-layout[data-study-mode="past"]>.sidebar,.study-layout[data-study-mode="past"]>#content{padding:12px}
 .study-layout[data-study-mode="past"] .section-body{padding:12px}
 .study-layout[data-study-mode="past"] .step-card h3{padding:10px 12px}
 .study-layout[data-study-mode="past"] .step-card .step-content{padding:12px}
}

/* Display only indexed question content while retaining the complete linked scan. */
.study-layout[data-study-mode="past"] .question-crop{display:block;position:relative;overflow:hidden;width:100%;max-width:820px;margin:0 auto;background:white}
.study-layout[data-study-mode="past"] .question-crop>.question-page{position:absolute;max-width:none;width:var(--crop-image-width);height:auto;left:var(--crop-left);top:var(--crop-top);margin:0}

.study-layout[data-study-mode="past"] .question-image-preview{display:block;width:100%;padding:0;border:0;background:white;cursor:zoom-in;text-align:left}
.study-layout[data-study-mode="past"] .question-image-preview:hover{background:white}
.study-layout[data-study-mode="past"] .question-image-preview:focus-visible{outline:3px solid var(--learn);outline-offset:3px}
.study-layout[data-study-mode="past"] .question-image-preview+.question-image-preview{margin-top:10px}
.past-image-viewer{width:min(1100px,96vw);max-width:96vw;height:94vh;height:94dvh;max-height:96vh;max-height:96dvh;box-sizing:border-box;padding:16px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);overflow:hidden}
.past-image-viewer[open]{display:flex;flex-direction:column;gap:10px}
.past-image-viewer::backdrop{background:rgb(16 35 43 / .65)}
.past-image-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}
.past-image-heading h2{margin:0;font-size:18px}
.past-image-viewer button{min-height:44px;min-width:44px;flex-shrink:0;font-size:14px;padding:8px 12px}
.past-image-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
#past-image-scale{min-width:46px;text-align:center;font:14px var(--font-heading)}
#past-image-help{font-size:13px;line-height:1.5;margin:0;flex-shrink:0;color:var(--muted)}
.past-image-viewport{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:none;cursor:grab;background:#edf1f5;border:1px solid var(--line);border-radius:6px}
.past-image-viewport.is-dragging{cursor:grabbing}
.past-image-canvas{position:relative;overflow:hidden;margin:12px auto;background:white;touch-action:none;user-select:none}
.past-image-canvas img{display:block;position:absolute;max-width:none;height:auto;touch-action:none;user-select:none}
@media(max-width:600px){.past-image-viewer{padding:10px;gap:8px}.past-image-heading h2{font-size:16px}.past-image-viewer button{padding:8px}.past-image-heading{gap:8px}}

/* Keep revision beside the page title and the other learning section at the far edge. */
.study-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;column-gap:18px;row-gap:12px}
.study-heading-main{min-width:0}
.study-book-links{display:flex;align-items:center;justify-self:start}
.study-book-links:empty{display:none}
.study-book-links .mistake-entry{min-height:44px;margin:0;padding:9px 14px;font-size:14px;white-space:nowrap;background:white}
.study-heading>.study-page-links{justify-self:end;gap:0}
.study-heading>.study-page-links .study-entry{min-height:44px;margin:0;font-size:14px;padding:10px 16px;white-space:nowrap}
@media(max-width:800px){
 .study-heading{grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:12px}
 .study-heading-main{grid-column:1 / -1}
 .study-book-links{grid-column:1}
 .study-heading>.study-page-links{grid-column:2}
 .study-book-links .mistake-entry,.study-heading>.study-page-links .study-entry{padding:9px 12px}
}

/* A notebook cover, binding and correction mark identify both mistake books. */
.mistake-entry.mistake-entry-notebook{display:inline-flex;align-items:center;gap:8px;background:#fff8e8;border-color:#dfc28c;color:#71471b;font-weight:600;box-shadow:inset 3px 0 0 #c88526;border-radius:6px 9px 9px 6px}
.mistake-entry.mistake-entry-notebook:hover{background:#ffefcb;border-color:#bf8a3b;color:#5b3512}
.mistake-entry.mistake-entry-notebook:focus-visible{outline:3px solid var(--learn);outline-offset:3px}
.mistake-book-icon{display:block;flex-shrink:0}
.mistake-book-mark{stroke:#b42318;stroke-width:1.9}

@media(max-width:360px){.study-heading{column-gap:8px}.study-book-links .mistake-entry-notebook{padding-inline:10px}}

/* Centre the exam-taking sheet and keep its navigation focused on the current exam. */
.sample-review.practice-session{width:100%;max-width:1080px;margin:24px auto;padding:0 24px}
.practice-session>.study-page-links{margin-bottom:16px}
.practice-session #practice-back{min-height:44px}
@media(max-width:650px){.sample-review.practice-session{margin:16px auto;padding:0 12px}.practice-session>.paper{padding:20px 16px}}

/* Compact exam-taking and explanation spacing without shrinking text or diagrams. */
.sample-review.practice-session{margin:16px auto}
.practice-session>.study-page-links{margin-bottom:12px}
.practice-session>h1{margin-bottom:10px}
.practice-session>p{margin:6px 0}
.practice-session>.tabs{gap:8px;margin:12px 0}
.practice-session>.paper{padding:20px 24px}
.practice-session>.paper>p{margin:6px 0}
.practice-session>.paper>h2{margin-bottom:12px}
.practice-session .generated-exam-figure{margin:10px auto}
.practice-session .sample-prompt{margin:8px 0}
.practice-session .sample-options{gap:8px 16px;margin:10px 0}
.practice-session .sample-options li{min-height:48px;gap:12px}
.practice-session #attempt{margin-top:16px;padding-top:14px}
.practice-session .choices{margin:10px 0 12px}
.practice-session .study-submit{margin:14px 0;padding:12px}
.practice-session .study-progress{margin:4px 0 10px}
.practice-session .paper-progress{margin-top:10px}
.practice-session #practice-solution{margin-top:8px;min-height:44px}
.practice-session #practice-detail{margin-top:18px;padding-top:4px}
.practice-session .lesson-section{margin:12px 0}
.practice-session .section-label{margin:0 0 6px;padding:4px 12px}
.practice-session .section-body{padding:12px 14px}
.practice-session .step-card{margin:10px 0}
.practice-session .step-card h3{padding:10px 14px}
.practice-session .step-content{padding:12px 14px}
.practice-session #practice-prev,.practice-session #practice-next{min-height:44px}
@media(max-width:650px){
 .sample-review.practice-session{margin:12px auto}
 .practice-session>.paper{padding:16px 12px}
 .practice-session .section-body,.practice-session .step-content{padding:12px}
 .practice-session .step-card h3{padding:10px 12px}
}

.practice-session>.tabs{align-items:center}
.practice-session>.tabs button[data-practice-q].is-answered{background:#e4f3e7;border-color:#9bc8a4;color:#225f35}
.practice-session>.tabs button[data-practice-q].is-wrong{background:#fee2e2;border-color:#e8a0a0;color:#a12626}
.practice-session>.tabs button[data-practice-q][aria-pressed="true"]{outline:2px solid var(--learn);outline-offset:2px}
.practice-session>.tabs [data-submit-paper]{min-height:44px;margin-left:4px;background:var(--study-start);border-color:var(--study-start);color:white}
.practice-session>.tabs [data-submit-paper]:hover{background:var(--study-start-hover)}
.mock-study-status{margin:8px 0 12px}
.mock-study-status>.study-progress{font-size:14px;color:var(--muted);margin:0}
.mock-study-status .study-summary:empty{display:none}
.mock-study-status .study-summary:not(:empty){margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:6px;background:white}
.mock-study-status .study-summary h3{margin:0 0 6px}

:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog){width:min(480px,calc(100vw - 32px));max-width:calc(100vw - 32px);padding:24px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:white}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog)::backdrop{background:rgb(16 35 43 / .6)}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog) h2{margin:0 0 12px;font-size:21px}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog) p{margin:0 0 18px}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog) .actions{justify-content:flex-end;gap:12px}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog) button{min-height:44px}
:is(#mock-submit-confirm,#mock-restart-confirm,#study-complete-dialog) .primary{background:var(--study-start);border-color:var(--study-start)}

.practice-session>.tabs [data-restart-paper]{min-height:44px;margin-left:4px;background:var(--study-start);border-color:var(--study-start);color:white}.practice-session>.tabs [data-restart-paper]:hover{background:var(--study-start-hover)}

.past-paper-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}
.past-paper-actions button{min-height:44px;background:var(--study-start);border-color:var(--study-start);color:white}
.past-paper-actions button:hover{background:var(--study-start-hover)}
.study-layout[data-study-mode="past"] .mock-study-status{margin:0 0 14px}
.study-layout[data-study-mode="past"] #question-nav button.is-answered{background:#e4f3e7;border-color:#9bc8a4;color:#225f35}
.study-layout[data-study-mode="past"] #question-nav button.is-wrong{background:#fee2e2;border-color:#e8a0a0;color:#a12626}
.study-layout[data-study-mode="past"] #question-nav button[aria-current="true"]{outline:2px solid var(--learn);outline-offset:2px}
/* The answer pane remains available on phones; tablets get two independent panes. */
.exam-workspace{min-width:0}.exam-question-pane,.exam-answer-pane{min-width:0}
.exam-answer-pane{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.answer-pane-title{font-size:18px;margin:0 0 12px}
.exam-question-pane>h2{margin-bottom:12px}
.scratchpad{margin:16px 0;border:1px solid #cbd8e7;border-radius:8px;overflow:hidden;background:white}
.scratchpad summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:10px 12px;cursor:pointer;color:var(--ink);font:600 15px var(--font-heading);background:#f0f5fb}
.scratchpad summary::after{content:'＋';font-size:20px}.scratchpad[open] summary::after{content:'−'}
.scratchpad-badge{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400}
.scratchpad-body{padding:8px}
.scratchpad-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 6px;margin-bottom:8px}
.scratchpad-tools,.scratchpad-colors{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.scratchpad-tools{flex:1 1 236px}
.scratchpad-tools button{flex:1}
.scratchpad-colors{margin-left:auto}
.scratchpad button{min-width:44px;min-height:44px;font-size:14px;line-height:1.4;padding:6px 4px}
.scratchpad button[aria-pressed="true"]{border-color:var(--learn);background:var(--learn-soft);color:var(--learn-deep)}
.scratchpad .scratchpad-size{display:flex;align-items:center;gap:4px;margin:0;font-size:13px;white-space:nowrap}
.scratchpad-size select{width:44px;min-width:44px;min-height:44px;padding:4px;font-size:14px}
.scratchpad-colors button{position:relative;width:44px;height:44px;padding:0;background:white}
.scratchpad-colors button::before{content:'';position:absolute;width:20px;height:20px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:var(--pen-color)}
.scratchpad-surface{background-color:white;background-image:radial-gradient(#c9d5e3 1px,transparent 1px);background-size:20px 20px;border:1px solid #cbd8e7;border-radius:5px;overflow:hidden}
.scratchpad-canvas{display:block;width:100%;height:auto;aspect-ratio:4/5;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair}
.scratchpad-status{font-size:12px;color:var(--learn-deep);line-height:1.5;margin:8px 0 4px}
.scratchpad-hint{font-size:12px;color:var(--muted);line-height:1.5;margin:0}
@media (min-width:700px) and (min-height:600px) and (pointer:coarse), (min-width:700px) and (min-height:600px) and (max-width:1366px){
 .sample-review.practice-session{max-width:1440px;padding:0 16px}
 .practice-session>.paper{padding:0}
 .exam-workspace{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);align-items:start}
 .exam-question-pane,.exam-answer-pane{padding:16px;max-height:72vh;max-height:72dvh;overflow:auto;-webkit-overflow-scrolling:touch}
 .exam-answer-pane{margin-top:0;border-top:0;border-left:1px solid var(--line);background:#f8fafc}
 .study-layout[data-study-mode="past"]:has(.exam-workspace){grid-template-columns:minmax(0,1fr);gap:12px}
 .study-layout[data-study-mode="past"]:has(.exam-workspace)>.sidebar{position:static;max-height:none;overflow:visible;padding:12px 16px}
 .study-layout[data-study-mode="past"]:has(.exam-workspace) .mobile-directory{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
 .study-layout[data-study-mode="past"]:has(.exam-workspace) .sidebar:not(.directory-open)>:not(.sidebar-title){display:none}
 .study-layout[data-study-mode="past"]:has(.exam-workspace) #question-nav{max-height:220px;overflow:auto}
 .study-layout[data-study-mode="past"]:has(.exam-workspace) .qnav{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}
 .study-layout[data-study-mode="past"]>#content:has(.exam-workspace){padding:12px}
 .study-layout[data-study-mode="past"] .exam-answer-pane #attempt,.practice-session .exam-answer-pane #attempt{margin-top:0;padding-top:0;border-top:0}
 .exam-question-pane .knowledge-heading{display:block}
 .exam-question-pane .knowledge-item{display:flex;flex-wrap:wrap}
 .exam-answer-pane .scratchpad{margin:12px 0}
 /* One numbered button per option keeps tablet answers on a single row. */
 .exam-answer-pane .choices{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
 .exam-answer-pane .choices label{position:relative;min-width:0;min-height:44px;padding:8px 0;gap:0;justify-content:center;white-space:nowrap}
 .exam-answer-pane .choices input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden}
}

/* Past papers: a visible shelf of exam sessions followed by the selected directory. */
.study-layout.past-catalog-layout{grid-template-columns:minmax(0,1fr)}
.study-layout.past-catalog-layout>#content{padding:20px;border-top:0;background:transparent;border:0}
.past-catalog,.past-paper-directory{background:var(--paper,white);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.past-catalog{padding:20px;margin-bottom:16px}
.past-catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.past-catalog-heading h2{font-size:20px;margin:0}.past-catalog-heading>span{font-size:14px;color:var(--muted)}
.past-exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.past-exam-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:8px;background:white;min-width:0;min-height:100px}
.past-exam-card strong{font:700 22px/1.3 var(--font-heading)}.past-exam-card>span{font-size:14px}.past-exam-card small{font-size:12px;line-height:1.5;margin-top:4px;color:var(--muted)}
.past-exam-card small.is-free{color:var(--learn-deep);font-weight:600}.past-exam-card small.is-open{color:#226b59}
.past-exam-card[aria-pressed="true"]{border-color:var(--learn);background:var(--learn-soft);box-shadow:inset 0 3px var(--learn)}
.past-exam-card:hover{border-color:var(--learn);background:var(--learn-soft)}
.past-paper-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}
.past-paper-heading h2{font-size:20px;margin:0}.past-paper-heading p{font-size:13px;margin:4px 0 0;color:var(--muted)}
.past-paper-heading button{min-height:44px;font-size:15px}.past-question-row{display:grid;grid-template-columns:84px minmax(0,1fr) 52px;align-items:center;width:100%;gap:12px;padding:12px 20px;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;min-height:64px}
.past-question-row:last-child{border-bottom:0}.past-question-row strong{font-size:15px}.past-question-row>span{font-size:15px;overflow-wrap:anywhere}.past-question-row small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.past-question-row>span:last-child{text-align:right;color:var(--muted);font-size:12px}
.past-catalog-back{min-height:44px;width:100%;text-align:left}.past-current-exam{font-size:14px;color:var(--learn-deep)}
@media(max-width:600px){.study-layout.past-catalog-layout>#content{padding:0}.past-catalog{padding:14px}.past-exam-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.past-exam-card{padding:10px;min-height:94px}.past-exam-card strong{font-size:20px}.past-paper-heading{align-items:flex-start;flex-direction:column;padding:14px}.past-question-row{grid-template-columns:58px minmax(0,1fr) 38px;padding:12px;gap:8px}.past-paper-heading h2{font-size:18px}}

button.past-return-catalog{min-height:44px;margin:0 0 12px;padding:9px 16px;font-size:14px;font-weight:700;line-height:1.4;color:#214d91;background:#eaf2ff;border:2px solid #7296cf;border-radius:8px}
button.past-return-catalog:hover{background:#dbe9ff;border-color:#315fa7;color:#163e7a}
button.past-return-catalog:active{background:#cbdfff}
button.past-return-catalog:focus-visible{outline:3px solid #245ca0;outline-offset:3px}

/* Session actions share the top navigation row; submit remains a single control. */
.exam-session-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.exam-session-toolbar>.past-return-catalog{margin:0}.exam-session-toolbar>.past-paper-actions{margin:0 0 0 auto}
.practice-session>.study-page-links{justify-content:space-between}
.exam-paper-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}
.exam-paper-actions button{min-height:44px;background:var(--study-start);border-color:var(--study-start);color:white}
.exam-paper-actions button:hover{background:var(--study-start-hover)}

/* Keep the previous/next pair centered independently of the progress label. */
.study-layout .study-controls{flex-direction:column;justify-content:center;align-items:center;gap:10px;text-align:center}
.study-layout .study-controls>div{justify-content:center;gap:12px}
.practice-question-controls{display:flex;justify-content:center;align-items:center;gap:12px;margin:16px 0 0}

/* Knowledge content is one small size step above its 13px label. */
.study-layout .knowledge-heading h1,.study-layout .secondary-knowledge{font-size:15px}

/* Past-paper question navigation now follows the same flat row as mock exams. */
.study-layout[data-study-mode="past"]{grid-template-columns:minmax(0,1fr)}
.past-question-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:8px 0 12px}
.study-layout .past-question-filters .exam-picker{display:flex;align-items:center;gap:10px;margin:0;font-size:13px}
.past-question-filters select{width:auto;max-width:260px;min-height:44px}
.study-layout .past-question-filters .filter-count{margin:0;font-size:13px}
.study-layout .past-question-filters .reset-filters{min-height:44px;font-size:13px}
.study-layout #question-nav.past-question-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px;padding:0;border:0;max-height:none;overflow:visible}
.study-layout #question-nav.past-question-tabs button{min-width:48px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);font-size:14px}
.study-layout #question-nav.past-question-tabs button[aria-current="true"]{background:var(--learn-soft);border-color:var(--learn);outline:2px solid var(--learn);outline-offset:1px}
.study-layout #question-nav.past-question-tabs button.is-answered{background:#e4f3e7;border-color:#9bc8a4;color:#225f35}
.study-layout #question-nav.past-question-tabs button.is-wrong{background:#fee2e2;border-color:#e8a0a0;color:#a12626}

/* Knowledge entry sits beside the year-based entry on the past-paper catalog. */
.past-topic-catalog{padding:20px;background:var(--paper,white);border:1px solid var(--line);border-radius:12px}
.past-topic-block{--topic-accent:var(--learn);padding:14px 0;border-top:1px solid var(--line)}
.past-topic-block h3{font-size:16px;margin:0 0 10px;border-left:3px solid var(--topic-accent);padding-left:10px}
.past-topic-grid{display:flex;flex-wrap:wrap;gap:8px}
.past-topic-grid button{display:flex;align-items:center;gap:12px;min-height:44px;padding:9px 12px;text-align:left;font-size:14px;max-width:100%;white-space:normal}
.past-topic-grid button span{overflow-wrap:anywhere}.past-topic-grid button small{white-space:nowrap;font-size:12px;color:var(--muted)}
.topic-tone-1{--topic-accent:#a05a19}.topic-tone-2{--topic-accent:#226b59}.topic-tone-3{--topic-accent:#7056a0}.topic-tone-4{--topic-accent:#ad4b53}
.past-paper-questions:has([data-topic-question]) .past-question-row{grid-template-columns:140px minmax(0,1fr) 52px}
@media(max-width:600px){.past-topic-catalog{padding:14px}.past-topic-catalog .past-catalog-heading{align-items:flex-start;flex-direction:column;gap:4px}.past-paper-questions:has([data-topic-question]) .past-question-row{grid-template-columns:100px minmax(0,1fr) 38px}.past-question-row strong{overflow-wrap:anywhere}}

/* Reserve the same option slots on every question, regardless of option count. */
.exam-answer-pane .choices{display:grid;grid-template-columns:repeat(auto-fill,44px);grid-auto-flow:row;grid-auto-columns:auto;gap:8px;max-width:460px}
.exam-answer-pane .choices label{position:relative;width:100%;min-width:0;height:44px;min-height:44px;padding:0;gap:0;justify-content:center;font-size:16px;line-height:1;white-space:nowrap}
.exam-answer-pane .choices input{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden}
@media (min-width:700px) and (min-height:600px) and (pointer:coarse), (min-width:700px) and (min-height:600px) and (max-width:1366px){
 .exam-answer-pane .choices{grid-template-columns:repeat(9,minmax(0,1fr))}
}

.study-book-links{flex-wrap:wrap;gap:8px}
.bookmarks-entry{min-height:44px;font-size:14px;border-color:#d9b867;background:#fff9e9;color:#755317}
.answer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.answer-heading .answer-caption{margin:0;white-space:nowrap}.answer-review-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}.question-review-tools{display:flex;margin:0}
.review-mark{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:4px 7px;font-size:12px;line-height:1.4}
.review-mark svg{flex-shrink:0}.review-mark[aria-pressed="true"]{color:#755317;background:#fff4d4;border-color:#cda64c}.review-mark[aria-pressed="true"] svg{fill:#f5d77e}
.bookmark-page .card{margin-bottom:12px}.bookmark-page .actions{flex-wrap:wrap;gap:10px}.bookmark-page button{min-height:44px}

/* Bookmark indicators coexist with answered, incorrect and current-question colors. */
.past-question-tabs button,.practice-session>.tabs [data-practice-q]{position:relative}
button.is-review-marked::after{content:'';position:absolute;top:3px;right:3px;width:8px;height:11px;background:#a56a12;clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);pointer-events:none}

.bookmark-nav-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:10px 0 6px}
.bookmark-nav-filter{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:14px;cursor:pointer}
.bookmark-nav-filter input{width:18px;height:18px;padding:0;margin:0;accent-color:var(--learn);flex-shrink:0}
.bookmark-filter-count{font-size:13px;color:var(--muted)}
.bookmark-filter-empty{padding:18px;text-align:center;background:#f7f9fc;border:1px dashed var(--line);border-radius:8px;margin:12px 0}
.bookmark-filter-empty button{min-height:44px;font-size:14px}
.bookmark-filter-empty[hidden],.exam-workspace[hidden],.study-controls[hidden],.practice-question-controls[hidden],.practice-session>.paper[hidden],.past-question-tabs button[hidden],.practice-session>.tabs [data-practice-q][hidden]{display:none!important}

.bookmark-sync-state{font-size:12px;color:var(--muted)}.bookmark-sync-state button{min-height:44px;font-size:13px;padding:6px 10px}

.scratchpad-cloud-actions button{min-height:44px;margin:4px 6px 4px 0;font-size:13px}.scratchpad-cloud-actions [hidden]{display:none!important}.scratchpad-cloud-actions p{font-size:13px;color:#755317}

/* xiaomao EJU Physics: cat and motion orbit identity. */
.brand{display:inline-flex;align-items:center;flex-shrink:0;min-height:44px}.brand .brand-wordmark{display:block;width:190px;height:70px;object-fit:contain;flex-shrink:0}@media(max-width:600px){.brand .brand-wordmark{width:168px;height:62px}}

/* The past-paper heading and catalog cards share the layout gutters. */
.study-layout.past-catalog-layout>#content{padding:0}

/* Shared explanation palette for past papers, mock exams and teacher previews. */
:root{--solution-lavender:#f1edf8;--solution-lavender-line:#d8cee9;--solution-lavender-accent:#927ab7;--solution-lavender-ink:#60477f}
.solution .section-label{background:transparent;color:var(--learn-deep);border-left:3px solid var(--learn);border-radius:0}
.solution .intro-section>.section-label{color:var(--solution-lavender-ink);border-left-color:var(--solution-lavender-accent)}
.solution .intro-section>.section-body{background:var(--solution-lavender);border:1px solid var(--solution-lavender-line)}
.solution .step-card{--accent:var(--learn);--tint:var(--learn-soft);background:white;border:1px solid var(--learn-line);border-radius:10px;overflow:hidden}
.solution .step-card.tone-1{--accent:var(--teach);--tint:var(--teach-soft);border-color:var(--teach-line)}
.solution .step-card.tone-2{--accent:var(--practice);--tint:var(--practice-soft);border-color:var(--practice-line)}
.solution .step-card h3{color:var(--accent);background:var(--tint)}
.solution .step-number{background:var(--accent);color:white}
.solution .step-card .eq{background:var(--tint);border-left-color:var(--accent)}
.solution .key-section>.section-label{color:var(--practice);border-left-color:var(--practice)}
.solution .key-section>.section-body{background:var(--practice-soft);border:1px solid var(--practice-line)}

/* Unstepped mock derivations use the same white panel and blue formula palette. */
.solution .derivation>.section-body{--accent:var(--learn);--tint:var(--learn-soft);background:white;border-color:var(--learn-line)}
.solution .derivation>.section-body>.eq{background:var(--tint);border:1px dashed #bdd0d9;border-left-color:var(--accent);border-radius:6px;text-align:center}
.solution .derivation .eq{color:var(--learn)}

/* EJU 2015-1 paper structure shared by every mock exam. */
.eju-chapter-intro,.eju-question-body,.eju-question-prompt{font-family:'Yu Mincho','MS Mincho','Noto Serif JP',serif;color:#111;text-align:justify;text-justify:inter-ideograph;line-height:2}
.eju-chapter-intro{margin:0 0 2em;font-size:inherit}
.eju-chapter-number{display:inline-flex;align-items:center;justify-content:center;min-width:1.25em;height:1.25em;border:1px solid #111;font-family:'Times New Roman',serif;font-size:1.5em;line-height:1;vertical-align:middle}
.eju-question-body,.eju-question-prompt{position:relative;padding-left:2em;text-indent:1em}
.eju-part-letter,.eju-local-question{position:absolute;left:0;top:0;text-indent:0;font-weight:700}
.eju-part-letter{font-size:1.25em;line-height:1.6}.eju-local-question{font-family:'Yu Gothic',sans-serif;font-size:.9em;line-height:2.22}
.eju-answer-number{display:inline-flex;align-items:center;justify-content:center;min-width:1.65em;height:1.3em;box-sizing:border-box;padding:0 .2em;border:1px solid #111;font-family:Arial,sans-serif;font-size:1.15em;font-weight:700;line-height:1;text-indent:0;vertical-align:baseline;white-space:nowrap}
.paper .eju-question-body+.generated-exam-figure{margin-top:36pt;margin-bottom:36pt}

.eju-question-prompt .eju-answer-number{float:right;margin-left:.6em;margin-top:.25em}.eju-question-prompt::after{content:"";display:block;clear:both}

/* Shared mock option alignment: fixed marker slot, inline content, equal rows. */
.sample-options{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch}
.sample-options li,.practice-session .sample-options li{display:grid;grid-template-columns:1.4em minmax(0,1fr);align-items:center;column-gap:12px;min-width:0}
.sample-options li>span:first-child{text-align:center;line-height:1.5}
.sample-options li>.option-content{display:block;min-width:0;text-align:left;line-height:1.8;overflow-wrap:anywhere}
.sample-options .option-content math{display:inline math;vertical-align:middle}
@media(max-width:650px){.sample-options{grid-template-columns:minmax(0,1fr)}}

/* Account settings */
#account #account-center{min-height:44px;white-space:nowrap}
.account-dialog{width:min(400px,calc(100% - 32px));max-height:calc(100% - 32px);padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;box-shadow:0 12px 40px #17374c26}
.account-dialog::backdrop{background:#17374c66}
.account-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.account-heading h2{margin:0}
.account-identity{display:grid;gap:2px;padding:14px 0;overflow-wrap:anywhere}
.account-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#account .account-dialog button,.account-actions a{min-height:44px}
.account-actions a{display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;text-decoration:none}
#account #logout{grid-column:1/-1;color:#a63232}
#account-error:empty{display:none}

.feedback-dialog{width:min(520px,calc(100% - 32px))}
.feedback-dialog textarea{display:block;margin-top:6px;resize:vertical}
.feedback-history article{border-top:1px solid var(--line);padding:8px 0}
.feedback-history article p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}

#account{max-width:none}
.header-study-nav{display:flex;align-items:center;gap:8px}
.header-study-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;text-decoration:none;white-space:nowrap;color:var(--ink)}
.header-study-nav a:hover{background:var(--canvas);border-color:var(--blue)}
#book-items>section+section{margin-top:24px}
@media(max-width:600px){body>header:has(.header-study-nav) #account{width:100%;justify-content:flex-end;gap:6px}.header-study-nav{gap:6px}.header-study-nav a,#account #account-center{padding-inline:7px;font-size:13px}}

#account-center{anchor-name:--account-trigger}
.account-menu{inset:auto 16px auto auto;top:var(--account-menu-top);margin:0;width:min(270px,calc(100% - 32px));max-height:min(75dvh,calc(100dvh - var(--account-menu-top) - 12px));overflow:auto;padding:12px}
@supports (top:anchor(bottom)){
 .account-menu{position-anchor:--account-trigger;top:calc(anchor(bottom) + 8px);right:anchor(right)}
}
.account-menu-title{font-size:16px;margin:0}
.account-menu .account-actions{grid-template-columns:1fr}
#account .account-menu .account-actions>*{display:flex;justify-content:flex-start;align-items:center;padding-inline:12px;border:0}

.portal-login .portal-pricing{max-width:100%;white-space:nowrap;overflow-x:auto}

.learning-progress{display:block;margin-top:8px;color:var(--muted);font-size:12px}
.continue-learning h2{font-size:18px}.continue-learning p{white-space:normal}
.mistake-filters{display:flex;gap:12px;flex-wrap:wrap}.mistake-filters label{flex:1 1 180px}
.repeat-filter{display:flex;align-items:center;gap:8px}.repeat-filter input{width:auto}


/* Compact timer alongside the current paper's progress. */
.mock-study-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.mock-study-status>.study-progress{flex:1 1 280px;order:0}
.mock-study-status>.study-summary{order:2;flex:1 1 100%}
.learning-timer{--timer-ink:#244c80;--timer-border:#cddcef;--timer-soft:#edf3fc;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;order:1;width:fit-content;max-width:100%;min-width:0;margin:0 0 0 auto;padding:5px 10px;border:1px solid var(--timer-border);border-radius:9px;background:var(--timer-soft);color:var(--timer-ink);font-family:var(--font-heading)}
.learning-timer .timer-heading h3{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:700;line-height:1.4;white-space:nowrap;color:var(--timer-ink)}
.timer-heading svg{flex-shrink:0;width:17px;height:17px}
.timer-setup{display:flex;align-items:center;gap:8px;margin:0}
.learning-timer .timer-input-wrap{display:flex;align-items:center;gap:4px;height:44px;margin:0;padding-right:9px;border:1px solid #9fb6d3;border-radius:6px;background:white;white-space:nowrap}
.learning-timer .timer-input-wrap input{width:60px;max-width:none;min-width:0;height:42px;margin:0;padding:6px 7px;border:0;border-radius:6px;background:transparent;color:#17374c;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.timer-input-wrap>span{font-size:12px;color:#52647b}
.learning-timer button.timer-start{display:inline-flex;justify-content:center;align-items:center;min-height:44px;margin:0;padding:8px 12px;border:1px solid #226b59;border-radius:6px;background:#226b59;color:white;font-size:13px;font-weight:700;line-height:1.5;white-space:nowrap}
.learning-timer button.timer-start:hover{background:#195442;border-color:#195442}
.learning-timer button.timer-start:focus-visible,.learning-timer input:focus-visible{outline:3px solid #245ca0;outline-offset:3px}
.learning-timer button.timer-start:disabled{opacity:.65;cursor:wait}
.timer-readout{display:flex;align-items:center;gap:8px;min-height:44px;flex-wrap:wrap}
.learning-timer [data-clock]{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--timer-ink)}
.learning-timer .timer-target{font-size:12px;color:#52647b;white-space:nowrap}
.timer-badge{padding:2px 7px;border-radius:12px;background:#fff;color:var(--timer-ink);font-size:12px;white-space:nowrap}
.learning-timer .timer-alert{font-size:12px}
.learning-timer .timer-stats{flex-basis:100%;margin:0;font-size:12px;line-height:1.6}
.learning-timer[data-timer-state="overdue"]{--timer-ink:#92400e;--timer-border:#edc995;--timer-soft:#fff7e9}
.learning-timer[data-timer-state="complete"]{--timer-ink:#21604e;--timer-border:#bfd9ce;--timer-soft:#eff7f3}
@media(max-width:480px){.learning-timer{gap:6px 8px;padding:5px 8px}.timer-setup{margin-left:auto}.learning-timer .timer-heading h3{font-size:12px}.learning-timer button.timer-start{padding-inline:8px}}
.question-report{display:flex;align-items:center;justify-content:center;gap:4px;width:max-content;min-height:32px;margin:0;padding:4px 7px;font-size:12px;line-height:1.4}.review-mark svg,.question-report svg{flex-shrink:0;width:14px;height:16px}.review-mark,.question-report{min-width:0;white-space:nowrap;flex-shrink:0}
.mistake-retry fieldset{min-width:0;border:0;padding:0}.mistake-retry .actions{justify-content:center;margin-top:12px}
.mistake-retry .choices input{width:auto}

@media(max-width:480px){
 .answer-heading{gap:6px}
 .answer-heading .answer-caption{font-size:12px}
 .answer-heading .answer-review-tools{gap:6px}
 .answer-heading .review-mark,.answer-heading .question-report{min-width:0;padding:4px 5px;gap:4px;font-size:12px;white-space:nowrap}
 .answer-heading .review-mark svg,.answer-heading .question-report svg{width:14px;height:16px}
}

@media(max-width:380px){.header-study-nav,#account{gap:4px}.header-study-nav a,#account #account-center{padding-inline:3px;font-size:12px}}

.sample-review.practice-session.is-submitted{max-width:1440px}
.practice-session.is-submitted>.tabs{gap:8px;margin:12px 0 16px;padding:0;border:0}
.practice-session.is-submitted>.tabs button[data-practice-q]{flex:1 0 48px;min-width:48px;min-height:44px;padding:8px 12px;border-width:1px;border-style:solid;border-radius:6px;font-size:14px;font-weight:600}
.practice-session.is-submitted>.tabs button[data-practice-q][aria-pressed="true"]{outline-offset:1px}
.practice-session.is-submitted #practice-back{margin:0}

/* Current submission review */
#study-complete-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}
.submission-report h3{font-size:15px;margin:0 0 10px}
.submission-blocks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:0 0 12px}
.submission-blocks li{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border:1px solid #dcd8ee;border-radius:8px;background:#f6f3fc;font-size:13px}
.submission-blocks strong{font-size:18px;color:#514071}.submission-blocks small{color:var(--muted);font-size:11px}
#study-complete-dialog .submission-guidance,.submission-guidance{font-size:14px;line-height:1.7;margin:0 0 16px}
.submission-review{max-width:1100px;margin:20px auto;padding:0 16px}
.submission-review-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.submission-review h1{margin:0;font-size:23px}.submission-review-source{font-size:14px;color:var(--muted)}
.submission-review>.submission-report{max-width:620px}
.submission-review-nav{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.submission-review-nav button{min-width:44px;min-height:44px;padding:6px 10px}
.submission-review-nav button[aria-pressed=true]{color:#fff;background:var(--learn);border-color:var(--learn)}
.submission-review .paper{padding:16px}.submission-review .paper>h2{font-size:17px;margin-bottom:12px}
.submission-review .question-pages{max-width:780px;margin:auto}
.submission-answer{display:flex;gap:12px 24px;flex-wrap:wrap;padding:10px 12px;margin-top:16px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;font-size:15px}
.submission-answer span:first-child strong{color:#b42318}.submission-answer span:last-child strong{color:#216b50}
.submission-review .solution{margin-top:16px;padding-top:16px}
.submission-review .practice-question-controls{gap:10px;margin:16px 0}
@media(max-width:480px){#study-complete-dialog{padding:18px}#study-complete-dialog h2{font-size:19px}#study-complete-dialog .actions{gap:8px}.submission-blocks{gap:4px}.submission-blocks li{font-size:12px}.submission-blocks strong{font-size:16px}.submission-review{padding:0 10px}.submission-review .paper{padding:12px}}

.exam-session-toolbar,.exam-paper-actions{flex-wrap:wrap}

/* Feedback follow-up */
.feedback-toolbar,.feedback-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.feedback-toolbar{border-top:1px solid var(--line);padding-top:12px;font-size:13px;color:var(--muted)}
.feedback-toolbar button{font-size:13px;padding:6px 10px}.feedback-entry-heading small{overflow-wrap:anywhere;min-width:0}
.feedback-status{display:inline-flex;align-items:center;flex-shrink:0;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}
.feedback-status[data-status=pending]{background:#fff2da;color:#8a4b08}.feedback-status[data-status=processing]{background:#eaf2ff;color:#214d91}.feedback-status[data-status=resolved]{background:#e8f5ed;color:#216b50}
.feedback-history .feedback-message{margin:8px 0}.feedback-reply{padding:10px 12px;border-left:3px solid #9c8bc1;border-radius:4px;background:#f6f3fc;font-size:14px;margin:10px 0}
.feedback-reply small{color:var(--muted)}.feedback-editor{margin:10px 0}.feedback-editor summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--learn);font-weight:600}
.feedback-editor form{padding:0 2px}.feedback-editor label{font-size:14px}.feedback-editor textarea{min-height:90px}.feedback-editor [role=status]{font-size:13px}
.feedback-filter{display:flex;align-items:center;gap:10px;font-size:14px}.feedback-filter select{width:auto;flex:1;min-width:0}
.feedback-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.feedback-pagination button{padding:6px 12px}.feedback-pagination span{font-size:13px;color:var(--muted)}
@media(max-width:480px){.feedback-dialog{padding:16px}.feedback-toolbar{align-items:flex-start}.feedback-status{font-size:12px}}

@media(min-width:700px){
 .practice-session>.mock-study-status{flex-wrap:nowrap}
 .practice-session>.mock-study-status>.study-progress{flex:1 1 0;min-width:0}
 .practice-session>.mock-study-status>.learning-timer{flex:0 1 auto;max-width:60%}
}

/* Keep explanation diagrams at the surrounding prose's readable scale. */
.solution .step-content.with-figure{grid-template-columns:minmax(0,1fr);gap:12px}
.solution .step-figures{min-width:0;max-width:100%}
.solution .step-figures .figure{min-width:0;max-width:100%;margin:0 auto}
 .solution .solution-readable-figure svg{width:var(--solution-diagram-width);max-width:100%;height:auto;margin:0 auto}
@media(max-width:1366px),(pointer:coarse){
 .solution .solution-readable-figure svg{width:100%;max-width:100%;height:auto}
}


/* Shared classroom hierarchy: navigation blue, actions green, reminders amber. */
:root{--action-blue:#2456a6;--action-blue-hover:#193e7e;--action-blue-soft:#eaf1fd;--action-blue-line:#a9bee1;--action-green:#226b59;--action-green-hover:#185343;--action-amber:#985019;--action-amber-soft:#fff5e8;--action-amber-line:#e3bc89;--solution-step-soft:#f0f5fc}
.header-study-nav a,#account-center{color:var(--action-blue);border-color:var(--action-blue-line);background:white}
.header-study-nav a:hover,#account-center:hover{background:var(--action-blue-soft);border-color:var(--action-blue)}
.study-entry.entry-mocks{background:var(--action-blue)}
.study-entry.entry-mocks:hover{background:var(--action-blue-hover)}
:is(.study-layout,.practice-session,.submission-review,.bookmark-page,.mistake-page) :is(#explain,#practice-solution,[data-review-submission],[data-review-completion],[data-return-paper],[data-marked-review],.study-controls button,.practice-question-controls button){background:var(--action-blue-soft);color:var(--action-blue);border-color:var(--action-blue-line)}
:is(.study-layout,.practice-session,.submission-review,.bookmark-page,.mistake-page) :is(#explain,#practice-solution,[data-review-submission],[data-return-paper],[data-marked-review],.study-controls button,.practice-question-controls button):hover{background:#dce8fb;border-color:var(--action-blue)}
.exam-session-toolbar :is(.past-paper-actions,.exam-paper-actions) button:is([data-submit-paper],[data-restart-paper]),.study-layout button.primary.practice-start{background:var(--action-green);border-color:var(--action-green);color:white}
.exam-session-toolbar :is(.past-paper-actions,.exam-paper-actions) button:is([data-submit-paper],[data-restart-paper]):hover{background:var(--action-green-hover);border-color:var(--action-green-hover)}
.study-layout :is([data-unlock],.practice-exam-list button.primary:not(.practice-start)),button.review-mark{color:var(--action-amber);background:var(--action-amber-soft);border-color:var(--action-amber-line)}
.study-layout :is([data-unlock],.practice-exam-list button.primary:not(.practice-start)):hover,button.review-mark:hover{background:#ffecd1;border-color:var(--action-amber)}
button.review-mark[aria-pressed="true"]{background:#ffecd1;color:#854211;border-color:var(--action-amber)}
button.question-report{color:var(--action-blue);background:white;border-color:var(--action-blue-line)}
:is(.feedback-dialog,.question-report-dialog) button.primary{background:var(--action-green);border-color:var(--action-green);color:white}

/* Both paper types share one action row, one progress row, then question numbers. */
.exam-session-toolbar,.practice-session>.study-page-links.exam-session-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin:0 0 10px}
.exam-session-toolbar>.past-return-catalog{margin:0;flex-shrink:0}
.exam-session-toolbar>:is(.past-paper-actions,.exam-paper-actions){display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:0 0 0 auto}
.study-layout[data-study-mode="past"] .mock-study-status,.practice-session>.mock-study-status{margin:0 0 12px;gap:8px 12px}
:is(.study-layout,.practice-session) .mock-study-status>.study-progress{font-size:13px;line-height:1.6;margin:0}
@media(min-width:700px){
 :is(.study-layout,.practice-session) .mock-study-status{flex-wrap:nowrap}
 :is(.study-layout,.practice-session) .mock-study-status>.study-progress{flex:1 1 0;min-width:0}
 :is(.study-layout,.practice-session) .mock-study-status>.learning-timer{flex:0 1 auto;max-width:60%}
}

/* Keep a clear outer sheet, soften internal panels, and give prose more room. */
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .lesson-section{margin:12px 0}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .lesson-section>.section-label{margin:10px 0 8px;padding:0 0 0 10px;font-size:16px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .intro-section>.section-body{border:0;border-radius:6px;background:var(--solution-lavender);padding:12px 14px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card,:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card.tone-1,:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card.tone-2{--accent:var(--action-blue);--tint:var(--solution-step-soft);border:0;border-radius:6px;background:white;margin:10px 0 14px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card h3{color:var(--accent);background:var(--tint);padding:10px 12px;font-size:17px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card .step-content{padding:12px 2px;gap:12px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card .eq,:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .derivation>.section-body>.eq{background:var(--solution-step-soft);border:0;border-left:2px solid var(--action-blue-line);border-radius:4px;padding:10px 12px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .derivation>.section-body{border:0;padding:12px 2px}
:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .key-section>.section-body{border:0;border-radius:6px;padding:12px 14px}
.practice-session>.paper{border:0;box-shadow:none;border-radius:0}
@media(max-width:600px){
 :is(.study-layout,.practice-session,.teacher,.submission-review) .solution .intro-section>.section-body,:is(.study-layout,.practice-session,.teacher,.submission-review) .solution .key-section>.section-body{padding:10px 12px}
 :is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card h3{padding:10px}
 :is(.study-layout,.practice-session,.teacher,.submission-review) .solution .step-card .step-content{padding:10px 0}
}

/* Aligned catalogue information with small, text-labelled access badges. */
.past-exam-card{display:grid;grid-template-rows:auto auto 1fr;align-items:start;justify-items:start;gap:3px;min-height:110px;padding:12px;background:white;border:1px solid #dce3ed;border-radius:9px;box-shadow:none}
.past-exam-card strong{font-size:20px;line-height:1.3;color:var(--ink)}
.past-exam-card>span{font-size:13px;color:var(--muted)}
.past-exam-card .exam-access-badge{align-self:end;margin-top:6px}
.past-exam-card[aria-pressed="true"]{background:var(--action-blue-soft);border:1px solid var(--action-blue);box-shadow:inset 0 0 0 1px var(--action-blue)}
.past-exam-card:hover{background:white;border-color:var(--action-blue)}
.past-exam-card[aria-pressed="true"]:hover{background:var(--action-blue-soft)}
.exam-access-badge,.past-exam-card small.exam-access-badge{display:inline-flex;align-items:center;min-height:23px;padding:2px 6px;border:0;border-radius:4px;font:500 12px/1.5 var(--font-heading);white-space:nowrap;color:var(--muted);background:#f1f3f6}
.exam-access-badge.is-free,.past-exam-card small.is-free{color:var(--action-blue);background:#e6efff}
.exam-access-badge.is-open,.past-exam-card small.is-open{color:var(--action-green);background:#e8f3ee}
.study-layout[data-study-mode="mocks"] .practice-exam-list>.card{border:1px solid #dce3ed;border-radius:9px;background:white}
.practice-exam-list .card h3{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.practice-exam-list .card .actions{margin-top:8px}
@media(max-width:380px){.past-exam-card{padding:9px;min-height:106px}.past-exam-card small.exam-access-badge{padding-inline:4px}}

#study-complete-dialog [data-review-completion]{color:var(--action-blue);background:var(--action-blue-soft);border-color:var(--action-blue-line)}

.study-layout[data-study-mode="mocks"]>#content:has(>.practice-exam-list){padding:0;border:0;background:transparent;box-shadow:none}

/* Three diagonal watermarks stay with each student mock question while scrolling. */
.student-mock-sheet{position:relative;isolation:isolate;min-width:0}
.student-mock-watermark{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none;user-select:none;-webkit-user-select:none;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));align-items:center;justify-items:center}
.student-mock-watermark span{display:block;white-space:nowrap;font:600 clamp(30px,4.5vw,56px)/1.2 var(--font-heading);color:rgba(71,85,105,.14);transform:rotate(-45deg);pointer-events:none}
@media print{.student-mock-watermark{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
