
:root{--paper:#F3F6F2;--grid:rgba(24,62,104,.075);--ink:#14213D;--muted:#4A5671;--rule:#C6D0DF;--card:#fff;--soft:#EAF0F7;--hl:#FFE066;--ok:#17704F;--ok-bg:#E1F3EA;--bad:#A52B26;--bad-bg:#FBE6E4;--a:#2F6FB5;--b:#18877A;--c:#A4620C;--d:#7547A6;--serif:"Fraunces",Georgia,serif;--sans:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--paper:#0E1829;--grid:rgba(140,180,230,.07);--ink:#E9EEF8;--muted:#9FADC8;--rule:#2C3B58;--card:#152239;--soft:#1B2B47;--hl:#E8CC4E;--ok:#6FD8AB;--ok-bg:#12372B;--bad:#FF918B;--bad-bg:#40191A;--a:#7FB4F2;--b:#5FCBB9;--c:#E7B766;--d:#BC9EEB}}
:root[data-theme="dark"]{color-scheme:dark;--paper:#0E1829;--grid:rgba(140,180,230,.07);--ink:#E9EEF8;--muted:#9FADC8;--rule:#2C3B58;--card:#152239;--soft:#1B2B47;--hl:#E8CC4E;--ok:#6FD8AB;--ok-bg:#12372B;--bad:#FF918B;--bad-bg:#40191A;--a:#7FB4F2;--b:#5FCBB9;--c:#E7B766;--d:#BC9EEB}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 110px);height:100%}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;min-height:100%;font:17px/1.55 var(--sans);color:var(--ink);background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:26px 26px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--paper)}
.wrap{max-width:1000px;margin:0 auto;padding:0 18px}
h1,h2,h3{font-family:var(--serif);line-height:1.2;margin:0}
h1{font-size:clamp(1.3rem,3.6vw,1.6rem)}h2{font-size:clamp(1.35rem,3.4vw,1.75rem);margin-bottom:.4rem}h3{font-size:1.15rem;margin:1.2rem 0 .4rem}
p{margin:.5rem 0}button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--a);outline-offset:2px;border-radius:4px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:2px solid var(--ink)}
.brand{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:12px}
.brand small{color:var(--muted)}
.theme{border:1px solid var(--rule);background:var(--card);border-radius:20px;padding:4px 12px;font-size:.85rem;min-height:32px}
.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;margin:0 -6px;padding-top:4px}
.tab{border:0;background:none;padding:8px 12px 10px;font-weight:700;color:var(--muted);white-space:nowrap;min-height:44px}
.tab[aria-current="page"]{color:var(--ink)}.tab[aria-current="page"] span{background:linear-gradient(transparent 58%,var(--hl) 58%)}
main{padding:22px 0 60px}.lead{color:var(--muted);max-width:62ch}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.chip{border:2px solid var(--ink);background:var(--card);border-radius:999px;padding:6px 14px;min-height:40px;font-weight:700;font-size:.95rem}
.chip[data-d="A"]{border-color:var(--a)}.chip[data-d="B"]{border-color:var(--b)}.chip[data-d="C"]{border-color:var(--c)}.chip[data-d="D"]{border-color:var(--d)}
.chip.on{background:var(--ink);color:var(--paper)}.chip.on[data-d="A"]{background:var(--a)}.chip.on[data-d="B"]{background:var(--b)}.chip.on[data-d="C"]{background:var(--c)}.chip.on[data-d="D"]{background:var(--d)}
.chip.on[data-d]{color:#fff}:root[data-theme="dark"] .chip.on[data-d]{color:#0E1829}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.on[data-d]{color:#0E1829}}
.btn{border:2px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:8px;padding:9px 18px;font-weight:700;min-height:44px}
.btn.alt{background:transparent;color:var(--ink)}.btn.sm{padding:5px 12px;min-height:36px;font-size:.92rem}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pick{text-align:left;background:var(--card);border:1px solid var(--rule);border-left:8px solid var(--cc);border-radius:10px;padding:14px 16px}
.pick small{display:block;color:var(--muted);margin-top:4px}
[data-d="A"]{--cc:var(--a)}[data-d="B"]{--cc:var(--b)}[data-d="C"]{--cc:var(--c)}[data-d="D"]{--cc:var(--d)}
.prob{background:var(--card);border:1px solid var(--rule);border-left:8px solid var(--cc);border-radius:10px;padding:18px 20px;margin:12px 0}
.sub{color:var(--muted);font-size:.92rem}
.q{font-size:1.1rem}
.fld{max-width:260px;margin:14px 0}.fld label{display:block;font-weight:700;margin-bottom:4px}
.fld input,#codeIn{font:inherit;font-size:16px;padding:9px 12px;min-height:44px;width:100%;border:2px solid var(--rule);border-radius:7px;background:var(--paper);color:var(--ink)}
#codeIn{width:8em;text-transform:uppercase}
.res{padding:10px 14px;border-radius:8px;margin:12px 0;font-weight:700}.res.ok{background:var(--ok-bg);color:var(--ok)}.res.bad{background:var(--bad-bg);color:var(--bad)}
.hint,.sol{background:var(--soft);border-radius:8px;padding:10px 14px;margin:10px 0}
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:6px 18px 14px;margin:12px 0}
.card ul{margin:.3rem 0 .3rem 1.2rem;padding:0}
table{border-collapse:collapse;width:100%;background:var(--card)}th,td{border:1px solid var(--rule);padding:8px 10px;text-align:left}
.bar{height:10px;background:var(--soft);border-radius:5px;min-width:80px}.bar i{display:block;height:100%;background:var(--ok);border-radius:5px}
.scroll{overflow-x:auto}
#ref .rh{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;background:var(--card);border-bottom:2px solid var(--ink)}
#ref .rb{padding:4px 20px 20px}
#ref .g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 24px}
#ref .it{padding:8px 0;border-bottom:1px solid var(--rule)}
#ref .it b{display:block;font-size:.92rem;color:var(--muted);font-weight:700}
.gr{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 10px;margin:14px 0;align-items:end}
.fg{margin:0;text-align:center}.fg.wide{grid-column:span 2}.fg figcaption{font:1.05rem "STIX Two Text",Georgia,serif;margin-top:4px}
.two{display:flex;gap:6px}.two .sv{width:50%}
.sv{width:100%;height:auto;max-height:120px;color:var(--ink);stroke:currentColor;fill:none;stroke-width:1.6;stroke-linejoin:round}
.gr.t6{grid-template-columns:repeat(6,1fr)}.gr.t5{grid-template-columns:repeat(5,1fr)}
@media(max-width:700px){.gr.t6,.gr.t5{grid-template-columns:repeat(2,1fr)}.fg.wide{grid-column:span 2}}
.sv text{fill:currentColor;paint-order:stroke;stroke:var(--card);stroke-width:4px;font:italic 17px "STIX Two Text",Georgia,serif}
.f{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;font-size:.8em;line-height:1.15;margin:0 2px}.f i{font-style:normal;border-bottom:1px solid currentColor;padding:0 3px}.f u{text-decoration:none}
:root{--rw:clamp(320px,36vw,420px)}
body{transition:padding .25s ease}
#ref{position:fixed;z-index:30;background:var(--card);color:var(--ink);border:2px solid var(--ink);overflow:auto;visibility:hidden;transition:transform .25s ease,visibility 0s .25s;top:0;bottom:0;right:0;width:var(--rw);transform:translateX(105%);border-radius:12px 0 0 12px;padding-bottom:env(safe-area-inset-bottom,0px)}
body.refopen #ref{visibility:visible;transform:none;transition:transform .25s ease,visibility 0s}
body.refopen{padding-right:var(--rw)}
#ref .gr.t6,#ref .gr.t5{grid-template-columns:repeat(2,1fr)}#ref .fg.wide{grid-column:span 2}
@media(max-width:899px){#ref{top:auto;left:0;width:auto;height:var(--ph);transform:translateY(105%);border-radius:12px 12px 0 0}body.refopen{padding-right:0;padding-bottom:var(--ph)}}
@media(prefers-reduced-motion:reduce){body,#ref{transition:none!important}}
@media(max-width:600px){.brand small{display:none}.hb{gap:4px;flex-wrap:nowrap!important}.brand{gap:6px}.brand>div:first-child{min-width:0}.hb .theme{white-space:nowrap;padding:4px 7px;font-size:.7rem}.brand h1{font-size:1.1rem}.brand{align-items:center}}
.hb .theme[aria-pressed="true"]{background:var(--ink);color:var(--paper)}.hb{flex-wrap:wrap;justify-content:flex-end}
:root{--ph:40vh}.hb{display:flex;gap:8px;align-items:center}

:root{--paper:#e9eaf0;--grid:rgba(83,94,126,.055);--ink:#343c55;--muted:#67738e;--rule:#c7cbd7;--card:#fff;--soft:#e6e8f0;--hl:#b9d3d5;--ok:#287257;--ok-bg:#e4f4eb;--bad:#a33140;--bad-bg:#fae6e8;--a:#5a6a91;--b:#657f96;--c:#81749a;--d:#5d8b8c;--sans:Arial,Helvetica,sans-serif;--serif:Arial,Helvetica,sans-serif}
:root[data-theme="dark"]{--paper:#252d41;--grid:rgba(255,255,255,.035);--ink:#eef0f5;--muted:#b4bed1;--rule:#4a5672;--card:#303b53;--soft:#394661;--hl:#719da7;--ok:#8be0b4;--ok-bg:#234d40;--bad:#ffacb1;--bad-bg:#573039;--a:#9caed5;--b:#91b8cc;--c:#b9a4d1;--d:#9dcaca}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#252d41;--grid:rgba(255,255,255,.035);--ink:#eef0f5;--muted:#b4bed1;--rule:#4a5672;--card:#303b53;--soft:#394661;--hl:#719da7;--ok:#8be0b4;--ok-bg:#234d40;--bad:#ffacb1;--bad-bg:#573039;--a:#9caed5;--b:#91b8cc;--c:#b9a4d1;--d:#9dcaca}}
body{background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:36px 36px}
.top{background:#4c5674;border-bottom:3px solid #b7cfd1;color:white;box-shadow:0 3px 14px #2223}.brand{padding:15px 0 9px;align-items:center}.brand h1{font-family:Arial,sans-serif;font-weight:700;letter-spacing:-.035em;font-size:clamp(1.25rem,3vw,1.9rem)}.brand small{color:#bed7da;letter-spacing:.04em;font-weight:600}.theme{background:#ffffff12;border-color:#c1c9d6;color:#fff!important}.tabs{padding-top:6px}.tab{color:#c4cfdb}.tab[aria-current="page"]{color:#fff}.tab[aria-current="page"] span{background:linear-gradient(transparent 72%,#a8cdd0 72%)}
h1,h2,h3{font-family:Arial,Helvetica,sans-serif}h2{font-weight:750;letter-spacing:-.025em}.btn{background:#4c5674;border-color:#4c5674;color:#fff}.btn.alt{color:var(--ink);border-color:var(--rule);background:var(--card)}.chip{border:1px solid var(--rule);font-weight:600}.chip.on{background:#4c5674;color:#fff;border-color:#4c5674}.prob{border-left:5px solid #8eabb4;box-shadow:0 4px 20px #242c4310}.card{box-shadow:0 2px 12px #242c4309}.q{line-height:1.65}.q p{margin:.65em 0}.q img,.sol img{max-width:100%;height:auto;vertical-align:middle}.q math,.sol math{font-size:1.08em}.q table,.sol table{width:auto;max-width:100%}.q svg,.sol svg{max-width:100%}.answer-option{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;margin:9px 0;white-space:normal}.answer-option .letter{display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:50%;width:30px;height:30px;min-width:30px;font-weight:700}.answer-option .choice{flex:1;min-width:0}.answer-option .choice p{margin:0}.answer-option.correct{background:var(--ok-bg);border-color:var(--ok)}.answer-option.incorrect{background:var(--bad-bg);border-color:var(--bad)}.answer-option:disabled{opacity:1;cursor:default}.metric-row{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.metric{background:var(--card);border:1px solid var(--rule);border-radius:9px;padding:12px 18px;min-width:125px}.metric b{display:block;font-size:1.55rem;line-height:1.2}.metric small{color:var(--muted)}select{padding:10px;border:1px solid var(--rule);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;max-width:100%;min-height:44px}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:16px 0}.filters label{display:grid;gap:5px;font-size:.9rem;color:var(--muted);font-weight:700}.loading{padding:30px;text-align:center;color:var(--muted)}.question-index{font-variant-numeric:tabular-nums}.source-note{font-size:.82rem;color:var(--muted);margin-top:18px}


:root{--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--serif:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
body{font-family:var(--sans);letter-spacing:-.008em}.brand h1{font-family:var(--sans);font-weight:780;letter-spacing:-.045em}.theme{font-family:var(--sans);font-size:.82rem;font-weight:650;border-radius:9px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 12px;min-height:40px}.theme:hover{background:#ffffff28}.tool-icon{font-size:1.1rem;line-height:1}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:12px}.section-heading h3{margin:0 0 8px}.text-action{background:none;border:0;color:var(--a);text-decoration:underline;font-size:.85rem}.filter-panel{background:var(--card);border:1px solid var(--rule);padding:18px;border-radius:14px;margin:16px 0}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.check-grid.skills{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.check-card{display:flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--rule);border-radius:9px;padding:9px 10px;cursor:pointer;font-size:.9rem}.check-card:has(input:checked){border-color:#8199af;background:var(--soft)}.check-card input,.setting input{accent-color:#4c5674;width:17px;height:17px;flex:none}.check-card span{flex:1}.check-card small{color:var(--muted);font-variant-numeric:tabular-nums}.filters input[type=number]{width:150px;max-width:100%;padding:10px;border:1px solid var(--rule);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;min-height:44px}.settings{border-top:1px solid var(--rule);margin-top:16px;padding-top:6px}.settings h3{margin:12px 0}.setting{display:flex;align-items:flex-start;gap:12px;margin:13px 0;cursor:pointer}.setting span{display:grid;gap:2px}.setting small{color:var(--muted);font-size:.82rem;line-height:1.45}.primary-start{margin:3px 0 8px;padding:12px 22px}.option-row{display:flex;gap:8px;align-items:stretch}.option-row .answer-option{flex:1;min-width:0}.eliminate{margin:9px 0;border:1px solid var(--rule);border-radius:9px;background:var(--card);color:var(--muted);font-size:1.45rem;min-width:48px;cursor:pointer}.eliminate[aria-pressed=true]{background:var(--soft);color:var(--ink)}.answer-option.eliminated{opacity:.45;text-decoration:line-through;text-decoration-thickness:2px}.answer-option.eliminated .choice{filter:grayscale(1)}@media(max-width:600px){.check-grid{grid-template-columns:1fr}.theme{padding:6px 8px;font-size:.72rem}.tool-icon{display:none}.filter-panel{padding:12px}.brand{flex-wrap:wrap}.hb{width:100%;justify-content:space-between}}

.q figure,.sol figure,.choice figure{margin:12px auto;max-width:100%;text-align:center;overflow-x:auto}
.q svg,.sol svg,.choice svg{max-width:100%;height:auto;overflow:visible}
.q svg text,.sol svg text,.choice svg text{stroke:none;paint-order:normal}
.q math,.sol math,.choice math{font-family:"STIX Two Math","Cambria Math",serif;font-size:1.08em}
.topic-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.topic-column{border:1px solid var(--rule);border-radius:12px;padding:13px;background:var(--paper)}
.topic-column h3{margin:0 0 10px;font-size:1.03rem}.topic-column .check-card{margin-bottom:7px;background:var(--card)}
.topic-column .topic-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.topic-column .topic-tools button{border:0;background:transparent;color:var(--a);text-decoration:underline;cursor:pointer;font-size:.8rem}
.saved-set{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border:1px solid var(--rule);border-radius:10px;margin:8px 0;background:var(--card)}
.saved-set small{display:block;color:var(--muted)}.saved-set .row{margin:0}.saved-set .btn{font-size:.82rem;padding:6px 10px;min-height:36px}
#preset-name{padding:10px;border:1px solid var(--rule);border-radius:8px;background:var(--card);color:var(--ink);font:inherit;max-width:100%}
@media(max-width:720px){.topic-columns{grid-template-columns:1fr}}

/* Preserve the original black-on-white contrast of SAT graphs in dark mode. */
.q figure.image, .choice figure.image, .sol figure.image, .card figure.image,
.q img, .choice img, .sol img, .card img,
.q svg:not(.sv), .choice svg:not(.sv), .sol svg:not(.sv), .card svg:not(.sv){background:#fff!important;color:#111!important;border-radius:6px;}
.q figure.image, .choice figure.image, .sol figure.image, .card figure.image{display:table;max-width:100%;padding:12px;margin:14px auto;overflow-x:auto;}
.q figure.image svg, .choice figure.image svg, .sol figure.image svg, .card figure.image svg{display:block;max-width:100%;height:auto;}
/* Keep assistive-only image descriptions out of visible question text. */
.q .sr-only, .choice .sr-only, .sol .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

/* v6: consistent warm light appearance, including graphics. */
:root,:root[data-theme="dark"],:root[data-theme="light"]{color-scheme:light!important;--paper:#f2f0eb!important;--grid:rgba(73,80,105,.032)!important;--ink:#343c55!important;--muted:#68738b!important;--rule:#d5d4d2!important;--card:#faf9f6!important;--soft:#eae9e5!important;--ok:#287257!important;--ok-bg:#e4f4eb!important;--bad:#a33140!important;--bad-bg:#fae6e8!important;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:light!important;--paper:#f2f0eb!important;--grid:rgba(73,80,105,.032)!important;--ink:#343c55!important;--muted:#68738b!important;--rule:#d5d4d2!important;--card:#faf9f6!important;--soft:#eae9e5!important;--ok:#287257!important;--ok-bg:#e4f4eb!important;--bad:#a33140!important;--bad-bg:#fae6e8!important;}}
.q figure.image,.choice figure.image,.sol figure.image,.q img,.choice img,.sol img,.q svg:not(.sv),.choice svg:not(.sv),.sol svg:not(.sv){background:#faf9f6!important;color:#222!important;border-radius:5px;}
.q figure.image,.choice figure.image,.sol figure.image{box-shadow:0 0 0 1px #e5e2dd;padding:10px;}
.answer-option.selected{border:2px solid #566a91!important;background:#e5ebf4!important;box-shadow:inset 0 0 0 1px #566a91;}
.answer-option:disabled:not(.eliminated){opacity:1;}
.q img,.q svg,.choice img,.choice svg{max-width:100%;height:auto;}

/* v7: softer warm-white surfaces and stable question navigation */
:root{--paper:#f4f2ef;--grid:rgba(95,102,121,.025);--card:#faf9f7;--soft:#efedea;--rule:#d9d6d2;--ink:#343d55;--muted:#727b8b}
body{background-color:var(--paper)}
.prob,.card,.filter-panel,.topic-column{background-color:var(--card)}
.session-next{margin-left:auto;min-width:150px}
.session-next:disabled{opacity:.43;cursor:not-allowed}
@media(max-width:600px){.session-next{min-width:125px}}

/* v8: compact question presentation and stable bottom action row */
.prob{padding:12px 16px;margin:8px 0;border-radius:12px}
.prob .question-index{font-size:.82rem;line-height:1.3;margin:0 0 8px}
.prob .q{font-size:clamp(.96rem,1.4vw,1.04rem);line-height:1.42;margin:6px 0 10px}
.prob .q p{margin:.25rem 0}
.prob .q img,.prob .q svg{max-height:220px;max-width:100%;object-fit:contain}
.prob .option-row{gap:7px}
.prob .answer-option{padding:7px 11px;margin:4px 0;min-height:42px;font-size:.94rem;line-height:1.35}
.prob .answer-option .letter{width:26px;height:26px;min-width:26px;font-size:.87rem}
.prob .eliminate{margin:4px 0;min-width:40px;font-size:1.2rem}
.prob .fld{margin:8px 0}
.prob .sub{font-size:.84rem;margin:6px 0}
.question-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.question-actions .session-next{margin-left:auto;min-width:140px}
.question-actions .btn{min-height:40px;padding:7px 15px}
.question-feedback{margin-top:10px;padding-top:10px;border-top:1px solid var(--rule)}
.question-feedback .res{margin:0 0 9px;padding:7px 11px}
.question-feedback .sol{margin-top:10px}
@media(max-width:600px){.prob{padding:10px 12px}.question-actions .btn{font-size:.88rem;padding:7px 10px}.question-actions .session-next{min-width:120px}}


:root{--paper:#f7f6f3;--card:#fffdfa;--soft:#f0efeb;--rule:#dddcd6;--ink:#263344;--muted:#626d78;--grid:rgba(60,73,92,.025)}
.section-switch{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.section-switch .btn{min-width:170px}
.disclaimer{border:1px solid #d5dfe7;border-left:4px solid #7192a9;background:#f0f4f6;border-radius:10px;padding:12px 16px;margin:0 0 18px;color:#394c5c;font-size:.92rem}
.stimulus{padding:10px 14px;border-left:3px solid #c4ccd3;background:#f5f4f1;border-radius:6px;margin:0 0 12px;font-size:.96rem;line-height:1.5}
.stimulus p{margin:.45em 0}.stimulus img,.stimulus svg{max-width:100%;height:auto}.stimulus figure{margin:8px auto}
.q img,.sol img,.choice img{background:transparent!important}.q figure.image,.sol figure.image,.choice figure.image{background:#fdfcf9!important}
.q svg,.sol svg,.choice svg{background:transparent!important}
@media(max-width:500px){.section-switch .btn{min-width:0;flex:1}.prob{padding:10px 12px}}


:root,:root[data-theme="light"],:root[data-theme="dark"]{--paper:#f6f4ef!important;--card:#fbfaf7!important;--soft:#efede8!important;--rule:#dedbd6!important;--ink:#303b4d!important;--muted:#6a7582!important;--grid:rgba(65,76,91,.018)!important; color-scheme:light!important}
body{background-color:var(--paper);background-image:none;font-size:15.5px;line-height:1.48}
.wrap{max-width:1100px}
.top{background:#4c5674;color:#fff;border-bottom:3px solid #aec6c9}
.brand small{color:#d6e5e8}
.prob{padding:13px 17px;margin:7px 0 14px;border-radius:12px;box-shadow:0 4px 16px #2633440b}
.question-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.question-head .question-index{font-size:.78rem;margin:0;line-height:1.35}
.flag-button{white-space:nowrap;padding:5px 9px;border:1px solid var(--rule);background:var(--card);color:var(--muted);border-radius:8px;font-size:.85rem;font-weight:700}
.flag-button.flagged{background:#f9f0d2;border-color:#d2b264;color:#7c5a0e}
.practice-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin:7px 0}
.practice-toolbar .btn{font-weight:650}
.prob .q{font-size:.96rem;line-height:1.37}
.prob .q p{margin:.27rem 0}
.prob .q img,.prob .q svg{max-height:245px;max-width:100%;object-fit:contain}
.prob .option-row{gap:7px}
.prob .answer-option{padding:6px 10px;margin:3px 0;min-height:39px;font-size:.92rem;line-height:1.31;border-width:1px}
.prob .answer-option .letter{width:26px;height:26px;min-width:26px}
.prob .eliminate{margin:3px 0;min-width:39px;font-size:1.2rem}
.prob .fld{margin:8px 0}
.question-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:11px;border-top:1px solid var(--rule)}
.question-actions .navigation-right{display:flex;align-items:center;gap:9px;margin-left:auto}
.question-actions .session-next{margin-left:0;min-width:130px}
.question-actions .btn:disabled{opacity:.48;cursor:not-allowed}
.question-feedback{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px dashed var(--rule)}
.question-feedback .res{padding:6px 10px;margin:0}
.question-feedback .sol{width:100%;padding:14px;font-size:.95rem;line-height:1.55}
.topic-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.topic-column{background:#f5f4f0}
.topic-column h3{margin-bottom:8px}
.topic-column .check-card{padding:7px 9px;font-size:.85rem}
.section-heading{margin-bottom:12px}
.resume-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:11px;border:1px solid #bacbd3;background:#eff4f6;margin:14px 0}
.resume-banner small{display:block;color:var(--muted)}
.loaded-note{font-size:.9rem;padding:9px;background:#edf2f5;border-radius:8px}
.app-notice{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px;border-radius:10px;border:1px solid #d9c49a;background:#f9f3e4;color:#5b5038;margin:12px 0;font-size:.9rem}
.app-notice button{background:none;border:0;font-size:1.45rem;padding:0 4px}
.review-header{display:flex;align-items:start;justify-content:space-between;gap:15px;margin:10px 0 20px}
.eyebrow{color:#64758a;letter-spacing:.15em;font-size:.72rem;font-weight:800;margin:0 0 5px}
.review-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.review-summary>div{background:var(--card);border:1px solid var(--rule);border-radius:11px;padding:16px;text-align:center}
.review-summary b{display:block;font-size:1.65rem}.review-summary small{color:var(--muted)}
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px;padding:20px;border:1px solid var(--rule);border-radius:14px;background:var(--card)}
.review-tile{position:relative;min-height:54px;border:1px solid #aeb7bd;border-radius:10px;background:#fcfaf7;font-size:1.04rem;font-weight:700}
.review-tile.right,.review-tile.wrong{background:#e4ece9;border-color:#91afa5}
.review-tile.current{outline:2px solid #4c5674;outline-offset:2px}
.review-tile .tile-flag{position:absolute;right:3px;top:-5px;font-size:1.1rem;color:#aa771f}
.review-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem;color:var(--muted)}
.review-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0}
.history-item{border:1px solid var(--rule);border-radius:10px;background:var(--card);margin:9px 0;padding:11px 15px}
.history-item summary{cursor:pointer;font-size:.95rem}.history-item .q{padding:10px 0}
.bluebook-status{padding:10px 12px;border-radius:9px;background:#edf4f0;border:1px solid #cbded3;font-size:.85rem}
.bluebook-status.warning{background:#fbf3e6;border-color:#e1ceb0}
.bluebook-status p{margin:3px 0}
.bluebook-status .row{margin:8px 0 2px}
.saved-set{gap:16px}.saved-set>div:first-child{min-width:0}.saved-set .row{flex-shrink:0;gap:6px}
#calc{position:fixed;z-index:40;top:108px;left:14px;width:360px;height:min(555px,calc(100vh - 140px));min-width:290px;min-height:320px;max-width:95vw;max-height:calc(100vh - 116px);display:flex;flex-direction:column;border-radius:12px;border:1px solid #a8b4be;background:var(--card);box-shadow:0 12px 42px #26334440;visibility:hidden;opacity:0;transform:translateX(-20px);transition:opacity .17s,transform .17s,visibility .17s;resize:both;overflow:hidden}
body.calcopen #calc{visibility:visible;opacity:1;transform:none}
.calc-header{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#4c5674;color:white;padding:9px 11px;font-size:.87rem}
.calc-header .btn{background:#f9fafc;color:#293749;border-color:transparent}
#desmos-frame{height:100%;min-height:0;width:100%;border:0;background:#fff}
.calc-footer{font-size:.74rem;padding:6px 10px;color:var(--muted)}.calc-footer a{color:#346ca2}
@media(min-width:1200px){body.calcopen main .wrap{margin-left:max(390px,calc((100vw - 1100px)/2 + 10px));margin-right:16px;max-width:calc(100vw - 420px)}}
@media(max-width:700px){.review-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:12px}.review-tile{min-height:47px}.topic-columns{grid-template-columns:1fr}.review-header{flex-direction:column}.question-actions .btn{padding:8px 11px;font-size:.85rem}.question-actions .navigation-right{gap:5px}.question-actions .session-next{min-width:0}.saved-set{flex-direction:column;align-items:stretch}.saved-set .row{justify-content:flex-start}.resume-banner{flex-direction:column;align-items:flex-start}#calc{left:6px;top:84px;width:min(360px,calc(100vw - 12px));max-height:calc(100vh - 94px);height:63vh}}
@media(max-width:430px){.question-actions .btn{font-size:.75rem;padding:7px 8px}.question-actions .navigation-right{gap:4px}.review-summary{gap:5px}.review-summary>div{padding:9px}.review-summary b{font-size:1.3rem}.flag-button span{display:none}}
@media(prefers-reduced-motion:reduce){#calc{transition:none}}


:root{--paper:#f6f5f1!important;--card:#fcfbf8!important;--soft:#f0eee8!important;--rule:#dfdcd5!important}
/* Keep text comfortably narrow even when the calculator is open. */
#calc{width:378px;height:min(680px,calc(100vh - 105px));min-height:360px;max-height:calc(100vh - 72px);top:76px;left:14px;transition:opacity .17s,visibility .17s;transform:none}
body.calcopen #calc{transform:none}
.calc-header{cursor:grab;user-select:none;touch-action:none;padding:12px 12px;min-height:49px}
#calc.dragging .calc-header{cursor:grabbing}
#calc.dragging{transition:none}
#desmos-frame{flex:1;min-height:0}
#calc .calc-footer{background:#f6f5f2}
@media(min-width:900px){body.calcopen main .wrap{max-width:min(855px,calc(100vw - 460px))!important;margin-left:430px!important;margin-right:auto!important;transition:max-width .15s}}
@media(min-width:900px) and (max-width:1020px){body.calcopen main .wrap{margin-left:400px!important;max-width:calc(100vw - 415px)!important}}
@media(min-width:900px) and (max-width:1050px){body.calcopen #calc{width:350px}}
@media(max-width:899px){body.calcopen main .wrap{max-width:1100px;margin:0 auto}#calc{top:80px;left:8px;width:min(378px,calc(100vw - 16px));height:72vh}}
.band-area{padding:14px 0 8px;margin-top:10px;border-top:1px solid var(--rule)}
.band-area .section-heading{margin-bottom:6px}
.band-area h3{margin:0}
.band-buttons{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}
.band-chip{display:flex;position:relative;justify-content:center;align-items:center;border:1.5px solid #b7c0c7;border-radius:10px;width:46px;height:42px;background:#fffdf9;cursor:pointer;font-weight:750;color:#455263}
.band-chip.on{border-color:#485977;background:#e5edf3;color:#2c4561}
.band-chip input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.band-chip:focus-within{outline:3px solid #8daac3;outline-offset:2px}
.band-help{margin:3px 0 9px;font-size:.84rem}
.test-hero{margin-bottom:16px}
.test-hero .eyebrow{margin-bottom:6px}
.test-setup{padding:22px}
.test-information{border:1px solid #d5dce0;border-radius:10px;background:#f1f4f4;padding:13px 16px;margin:14px 0 18px;font-size:.92rem;color:#3e5161}
.test-information p{margin-top:7px}
.test-module-bar{background:#edf1f4;border:1px solid #d6e0e6;border-radius:11px;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0}
.test-module-bar b{display:block;font-size:.95rem}.test-module-bar span{color:#5d6b7c;font-size:.79rem}
.test-timer{padding:5px 11px;border:1px solid #bbc8d0;border-radius:8px;background:#fafafa;font-weight:850;letter-spacing:.07em;font-size:1rem;white-space:nowrap;font-variant-numeric:tabular-nums;color:#384e63}
.test-timer[data-warning="true"]{color:#8b2a27;border-color:#da9d9a;background:#fdf0ef}
.test-directions{margin:5px 0 12px;font-size:.84rem;color:#697686}
.test-autosaved{font-size:.84rem;color:#586879;max-width:45%;line-height:1.3}
.test-break{background:#f3f5f3;border-radius:14px;border:1px solid #cdd8d2;padding:34px 30px;max-width:730px;margin:60px auto}
.test-break p{max-width:55ch}
.test-results .result-section{border:1px solid var(--rule);padding:12px 18px;border-radius:11px;margin:12px 0}
.test-results .result-section h3{margin:4px 0 7px}
@media(max-width:600px){.test-autosaved{max-width:35%;font-size:.72rem}.test-setup{padding:14px}.band-chip{width:40px;height:40px}.test-module-bar{padding:8px 10px}}


.brand-home{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;padding:0;margin:0;cursor:pointer;text-align:left}
.brand-home:hover{text-decoration:underline;text-decoration-color:#c2d8db;text-underline-offset:4px}
.brand-home:focus-visible{outline:2px solid #bed5da;outline-offset:5px;border-radius:3px}
.highlight-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:7px 0;margin:0 0 8px;border-bottom:1px solid var(--rule);font-size:.81rem;color:#697382}
.highlight-toolbar .btn{padding:5px 9px}
.reading-selectable{user-select:text;-webkit-user-select:text}
.student-highlight{background:#f9df83;color:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone;border-radius:2px;padding:0 1px;box-shadow:0 1px 0 #d5b45f50}
@media(max-width:600px){.highlight-toolbar{gap:6px}.highlight-toolbar span{flex-basis:100%}}

/* Public launch / empty-bank landing page */
.empty-landing{max-width:800px;margin:32px auto;padding:30px 28px;border:1px solid var(--rule);border-radius:16px;background:var(--card)}
.empty-landing .eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-size:.76rem;font-weight:800}
.empty-landing h2{font-size:clamp(1.7rem,4vw,2.7rem);margin:10px 0 14px}
.empty-landing .lead{font-size:1.05rem;line-height:1.65}
.empty-landing .empty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.empty-landing .empty-grid>div{background:var(--soft);padding:16px;border-radius:10px}
.empty-landing .empty-grid b{display:block;margin-bottom:5px}
.empty-landing .empty-grid p{margin:0;font-size:.92rem;color:var(--muted)}
@media(max-width:620px){.empty-landing{padding:20px 16px;margin:12px auto}.empty-landing .empty-grid{grid-template-columns:1fr}}
