:root{--ink:#253b36;--muted:#66766f;--green:#276b58;--line:#e4e9e3;--bg:#f6f7f3;--surface:#fff;--sage:#e9f2eb;--blue:#658db0;--track:#e8ede6;--amber:#9d7140;--danger:#925244}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a,select{cursor:pointer}button{background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:10px 16px;transition:background .15s,border-color .15s}button:hover{background:#f3f6f1;border-color:#b6c9bc}button.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}button.primary:hover{background:#205c4b}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}input,select{border:1px solid #dbe3dc;background:#fff;border-radius:8px;padding:9px 11px;color:var(--ink);max-width:100%;min-width:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #94bda7;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3.1vw,40px);letter-spacing:-1.3px;line-height:1.15;font-weight:650;margin-bottom:12px}h2{font-size:20px;letter-spacing:-.4px;font-weight:620;margin-bottom:12px}h3{font-size:16px;font-weight:600;margin-bottom:7px}p{color:var(--muted);margin-bottom:14px}svg{display:block}.small{font-size:12px;color:var(--muted);line-height:1.5}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.7px;text-transform:uppercase;color:var(--green);margin-bottom:12px}.pill{display:inline-flex;align-items:center;font-size:11px;font-weight:600;background:var(--sage);color:var(--green);border-radius:6px;padding:4px 8px}.label{font-size:12px;color:var(--muted)}.value{font-size:32px;font-weight:620;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.3;margin:10px 0 6px}.panel,.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:24px;margin-top:24px}.heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:32px 0 26px}.heading p{margin-bottom:0}.banner{background:var(--sage);padding:20px;border-radius:10px;margin:20px 0}.empty{padding:32px 16px;color:var(--muted)}.error{background:#fff3e4;color:#7d562c;border:1px solid #eed7b9;padding:14px 18px;border-radius:10px;margin:18px 0}.recommend{padding:18px 0;border-bottom:1px solid var(--line)}.recommend strong{display:block}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}th{text-align:left;font-size:11px;color:var(--muted);font-weight:500;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:17px 16px;border-top:1px solid var(--line);vertical-align:middle}tbody tr:first-child td{border-top:0}.bar{height:5px;min-width:80px;background:var(--track);border-radius:5px;margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green);border-radius:5px}label{display:grid;gap:7px;font-size:12px;font-weight:550}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.formgrid select{width:100%}.match{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--sage);padding:20px;border-radius:10px;margin-top:28px}.match .small{margin-top:4px}
/* Workspace shell */
.workspace{margin:0}.workspace aside{position:fixed;inset:0 auto 0 0;width:222px;background:#fff;border-right:1px solid var(--line);padding:30px 22px;display:flex;flex-direction:column;z-index:2}.brand{font-size:22px;font-weight:700;letter-spacing:-.8px;display:flex;align-items:center;gap:9px}.logo{display:inline-grid;place-items:center;background:var(--green);color:#fff;width:33px;height:33px;border-radius:10px;letter-spacing:0}.workspace aside nav{display:grid;gap:7px;margin-top:44px}.workspace aside nav button{border:0;text-align:left;background:transparent;display:flex;align-items:center;gap:12px;padding:12px;font-weight:500}.workspace aside nav button svg{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.6}.workspace aside nav button.active{background:var(--sage);color:var(--green)}.sidefoot{margin-top:auto;font-size:11px;color:var(--muted);display:grid;gap:13px}.sidefoot a{font-size:12px}.workspace main{margin-left:222px;padding:28px 44px 36px;max-width:1600px}.top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:23px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.profile-picker{display:flex;gap:12px;align-items:center}.profile-picker select{font-size:12px;padding:8px 12px}.profile-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e8dec8;color:#6a5a3c;font-size:12px;font-weight:650}.notice{font-size:11px;color:var(--muted);margin:26px 0 0}.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:24px}.filters select{width:100%;background:transparent}.demo-note{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px;margin:0 0 22px}.demo-note .pill{background:#edf0f7;color:#526c92}.metric-card{position:relative;min-height:126px}.metric-card .value{font-size:33px}.metric-card .small{font-size:11px}.metric-mini{position:absolute;right:18px;top:35px;width:48px;opacity:.85}.metric-card.has-chart{padding-right:75px}.visual-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.subject-panel{display:grid;grid-template-columns:108px minmax(0,1fr);gap:22px;align-items:center;padding:26px}.donut{position:relative;width:108px;height:108px}.donut svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:22px;font-weight:600;letter-spacing:-.5px}.donut-value span{font-size:10px;letter-spacing:0;font-weight:400;color:var(--muted);margin-top:3px}.subject-panel h2{font-size:19px;margin-bottom:5px}.subject-panel p{font-size:12px;margin-bottom:13px}.subject-stats{display:flex;gap:23px;flex-wrap:wrap}.subject-stats strong{display:block;font-size:15px;font-weight:600;color:var(--ink)}.subject-stats span{font-size:11px;color:var(--muted)}.chart-legend{display:flex;gap:16px;align-items:center;font-size:11px;color:var(--muted);margin-top:18px}.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px}.chart-legend i.remaining{background:#d8e0d5}.trend-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:20px;margin-top:20px}.panel-heading{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.panel-heading h2{margin:0 0 4px}.trend-chart svg{width:100%;height:180px;overflow:visible}.trend-chart text{font:10px -apple-system,BlinkMacSystemFont,sans-serif;fill:var(--muted)}.trend-ends{display:flex;justify-content:space-between;margin-top:5px;color:var(--muted);font-size:11px}.focus-panel{background:#eef4ec}.focus-stack{display:grid;gap:14px;margin:20px 0}.focus-level span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.focus-level strong{display:block;font-size:14px;font-weight:550;line-height:1.45}.focus-level:last-child strong{font-size:19px;letter-spacing:-.4px}.focus-footer{font-size:11px;color:var(--muted);margin:14px 0}.coverage-section{margin-top:36px}.coverage-section>.panel-heading{align-items:center}.coverage-section .panel-heading label{display:flex;align-items:center;gap:10px}.subject-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:28px 0 15px}.subject-heading h2{margin:0;font-size:22px}.subject-heading .small{font-size:11px}.subject-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:10px}.subject-dot.reading{background:var(--blue)}.domain-block{background:#fff;border:1px solid var(--line);border-radius:12px;margin:12px 0;overflow:hidden}.domain-block summary{list-style:none;cursor:pointer;padding:19px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px}.domain-block summary::-webkit-details-marker{display:none}.domain-block summary h3{margin:0;font-size:16px;font-weight:550}.domain-block summary .domain-meta{font-size:11px;color:var(--muted);margin-top:4px}.domain-trailing{display:flex;align-items:center;gap:22px}.domain-trailing .coverage-number{font-size:15px;font-weight:550;min-width:90px;text-align:right}.disclosure{font-size:18px;font-weight:400;color:var(--muted)}.domain-block[open] .disclosure{transform:rotate(90deg)}.domain-block[open] summary{border-bottom:1px solid var(--line)}.domain-block table{table-layout:fixed}.domain-block th:first-child{width:38%}.skill-title{font-size:13px;font-weight:550;line-height:1.5;display:block}.difficulty-label{font-size:10px;color:var(--muted);margin-top:5px;display:block}.metric-note{font-size:10px;color:var(--muted);margin-top:4px}.coverage-number small{font-weight:400;font-size:11px;color:var(--muted)}.pace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.pace-card{padding:22px}.pace-card .value{font-size:25px}.pace-card .small{font-size:11px}.section-footnote{font-size:11px;color:var(--muted);margin-top:18px;max-width:720px}.focus-banner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;background:#eef4ec;border:1px solid #e0e9df;padding:20px 24px;border-radius:12px;margin:0 0 24px}.focus-banner .focus-level:last-child strong{font-size:16px}.focus-banner .small{font-size:11px;margin-top:6px}.focus-intro{grid-column:1/-1;color:var(--muted);font-size:11px;margin-bottom:-8px}.multi-category{min-width:0;margin:0;padding:0;border:0}.multi-category legend{font-size:12px;font-weight:600;margin-bottom:10px}.choice-actions{display:flex;gap:10px;margin-bottom:8px}.choice-actions button{padding:3px 0;font-size:11px;background:transparent;border:0;color:var(--green)}.choice-list{border:1px solid var(--line);border-radius:8px;max-height:185px;overflow:auto;padding:5px;background:#fff}.check-choice{display:flex;align-items:flex-start;gap:10px;padding:8px;border-radius:5px;cursor:pointer;font-size:12px;font-weight:400}.check-choice:hover{background:#f3f6f0}.check-choice:has(input:checked){background:var(--sage)}.check-choice input{width:16px;height:16px;min-width:16px;padding:0;margin:2px 0 0;accent-color:var(--green)}.multi-category>.small{margin-top:7px;font-size:10px}.question-media{max-width:100%}.image-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;margin:18px 0}.image-scroll img{display:block;width:100%;height:auto}.answers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.answers button{text-align:center;padding:14px;font-weight:600}.answers button.selected{background:var(--sage);border-color:var(--green);box-shadow:0 0 0 1px var(--green)}.question-classification{margin-top:18px;max-width:600px}.question-classification span{display:block;font-size:12px;color:var(--muted)}.question-classification strong{display:block;font-size:17px;font-weight:550;margin:5px 0 9px}.timer{font-size:28px;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.timer-block{text-align:right;min-width:150px}.timer-block button{font-size:12px;margin-top:7px}.question-nav{max-height:160px;overflow:auto}.question-nav button{padding:7px 12px;font-size:12px}.paused{background:#fbf2df;border:1px solid #ede0c6;color:#79613e;border-radius:9px;padding:15px;margin:16px 0;font-size:13px}.timing-strip{display:flex;gap:25px;flex-wrap:wrap;margin:18px 0}.runner-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:26px}.numeric{width:100%;max-width:300px}.status{margin-top:12px;min-height:24px}.reviewitem{padding:25px 0;border-bottom:1px solid var(--line)}.reviewitem summary{cursor:pointer;color:var(--green);font-size:13px;padding:10px 0}.review-taxonomy{margin:12px 0 8px}.review-taxonomy span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.review-meta{display:flex;gap:24px;flex-wrap:wrap;margin:12px 0}.review-events table{font-size:12px}.summary-cards{margin-bottom:24px}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.session-card{display:grid;gap:18px}.session-card h3{font-size:17px;margin:5px 0 0}.session-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.session-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.session-metrics{display:flex;gap:25px}.session-metrics strong{display:block;font-weight:550;font-size:17px}.session-metrics span{font-size:10px;color:var(--muted)}#global-error:empty{display:none}.library-page header{background:#fff;border-bottom:1px solid var(--line)}.library-page .panel{border-color:var(--line);border-radius:14px}.schema-page{margin:0}.schema-page main{max-width:1040px;margin:0 auto;padding:40px 28px}.schema-page header{padding:22px 28px;background:#fff;display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.schema-page .gap{margin:22px 0;padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px}.schema-page .gap h2{margin-top:12px}
@media(max-width:1150px){.workspace main{padding:26px}.subject-panel{gap:16px;padding:22px;grid-template-columns:84px minmax(0,1fr)}.subject-panel .donut{width:84px;height:84px}.subject-stats{gap:16px}.donut-value{font-size:18px}.trend-grid{grid-template-columns:1.3fr 1fr}.domain-block th:first-child{width:34%}.metric-card.has-chart{padding-right:20px}.metric-mini{display:none}}
@media(max-width:980px){.workspace aside{width:190px;padding:24px 16px}.workspace main{margin-left:190px}.brand{font-size:20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-grid,.trend-grid{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.domain-block th:first-child{width:40%}.metric-mini{display:block}.metric-card.has-chart{padding-right:75px}.focus-banner{gap:18px}.focus-panel .focus-stack{grid-template-columns:repeat(3,minmax(0,1fr))}.focus-panel .focus-level:last-child strong{font-size:15px}.pace-grid{gap:12px}}
@media(max-width:700px){.workspace aside{position:static;width:auto;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line)}.workspace aside nav{display:flex;margin-top:20px;gap:4px;flex-wrap:wrap}.workspace aside nav button{font-size:12px;padding:9px 10px;gap:7px}.sidefoot{display:none}.workspace main{margin-left:0;padding:22px 20px}.top{align-items:flex-start;gap:14px}.top>span{max-width:110px}.profile-picker{gap:8px}.profile-avatar{display:none}.profile-picker select{max-width:180px}.filters{grid-template-columns:1fr 1fr}.heading{align-items:flex-start;flex-wrap:wrap;margin:28px 0 22px}.heading>.primary{font-size:12px;padding:9px 14px}.formgrid{gap:22px}.focus-banner{grid-template-columns:1fr;gap:15px}.focus-intro{margin-bottom:0}.focus-panel .focus-stack{grid-template-columns:1fr}.focus-panel .focus-level:last-child strong{font-size:19px}.panel,.card{padding:20px}.domain-block summary{padding:17px 18px}.domain-block summary h3{font-size:14px}.domain-trailing{gap:14px}.domain-trailing .coverage-number{font-size:13px;min-width:75px}.domain-block table{min-width:580px;table-layout:auto}.domain-block th:first-child{width:40%}.domain-block td,.domain-block th{padding:13px 15px}.subject-heading h2{font-size:20px}.subject-heading .small{max-width:160px;text-align:right}.pace-card{padding:17px}.pace-card .value{font-size:21px}.pace-card .small{font-size:10px}.pace-grid{grid-template-columns:1fr 1fr 1fr}.history-grid{grid-template-columns:1fr}.timer-block{text-align:left}.answers{grid-template-columns:repeat(4,1fr)}.match{flex-wrap:wrap}.coverage-section>.panel-heading{flex-wrap:wrap}.demo-note{align-items:flex-start}.subject-panel{grid-template-columns:100px minmax(0,1fr)}.subject-panel .donut{width:100px;height:100px}.session-metrics{gap:20px}.session-card{padding:20px}}
@media(max-width:430px){.workspace main{padding:20px 16px}.top{flex-wrap:wrap}.top>span{max-width:none}.profile-picker{margin-left:auto}.formgrid{grid-template-columns:1fr}.cards{gap:10px}.card{padding:18px}.metric-card .value{font-size:28px}.metric-mini{display:none}.metric-card.has-chart{padding-right:18px}.subject-panel{grid-template-columns:82px minmax(0,1fr);gap:16px}.subject-panel .donut{width:82px;height:82px}.subject-stats{gap:12px}.subject-panel h2{font-size:17px}.pace-grid{grid-template-columns:1fr}.pace-card{display:grid;grid-template-columns:1fr auto;gap:3px 15px}.pace-card .value{grid-column:2;grid-row:1/3;margin:0;align-self:center}.pace-card .bar{grid-column:1/-1}.coverage-section>.panel-heading h2{font-size:19px}.domain-trailing{gap:10px}.domain-trailing .coverage-number{min-width:64px}.session-metrics{gap:15px}.session-card h3{font-size:16px}.subject-heading{align-items:flex-start}.heading h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.visual-grid.single{grid-template-columns:1fr}.trend-chart{display:flex;gap:10px}.trend-chart svg{width:calc(100% - 35px);height:168px}.trend-axis{width:25px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 0 5px;font-size:10px;color:var(--muted);text-align:right;flex-shrink:0}.trend-chart+ .trend-ends{padding-left:35px}
.metric-note,.difficulty-label,.focus-level span,.session-metrics span,.multi-category>.small,.subject-stats span,.donut-value span{font-size:11px}.library-page h1{font-weight:650}.library-page button{font-weight:500}.workspace .trend-chart details summary{cursor:pointer}
.review-note textarea{width:100%;font:inherit;line-height:1.5;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--ink);background:#fff;resize:vertical}.review-note button{margin-top:12px}.review-shortcuts{margin:0 0 24px}.review-shortcuts button{font-size:12px}.review-meta button{font-size:12px;padding:6px 10px}textarea:focus-visible{outline:3px solid #94bda7;outline-offset:3px}
.schema-page nav{font-size:12px;align-self:center}.schema-page pre.command{padding:18px;background:#edf2ec;border:1px solid var(--line);border-radius:8px;font-size:13px;overflow:auto}.schema-page li{margin:9px 0;color:var(--muted)}.schema-page code{background:#edf2ec;padding:2px 4px;overflow-wrap:anywhere}.architecture-flow{display:flex;align-items:center;gap:14px;margin:28px 0;flex-wrap:wrap}.architecture-flow .panel{flex:1;min-width:180px}.schema-page h2{margin-top:30px}.schema-page .panel h2{margin-top:0}
.review-taxonomy .pill{display:inline-flex}.image-caption{display:flex;gap:16px;justify-content:space-between;padding:8px;flex-wrap:wrap}
.schema-page header,.library-page header{flex-wrap:wrap}.library-page header nav{flex-wrap:wrap}
@media(max-width:700px){.architecture-flow{flex-direction:column;gap:8px}.architecture-flow .panel{width:100%;min-width:0}.architecture-flow>span{transform:rotate(90deg)}}

.question-classification .pill{display:inline-block;width:auto}.timing-strip{position:sticky;top:10px;z-index:1;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px}.timing-strip button{margin-left:auto;padding:7px 11px;font-size:12px}dialog{max-width:480px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:14px;padding:26px;color:var(--ink);box-shadow:0 18px 70px #203b3626}dialog::backdrop{background:#203b3666}dialog .toolbar{margin-bottom:0}

/* Shared book-and-progress mark with a compact two-line wordmark. */
.brand{gap:10px;white-space:nowrap}.logo{width:40px;height:40px;padding:0;margin:0;flex-shrink:0;border-radius:12px}.logo svg{width:30px;height:30px;display:block}.brand-name{display:flex;flex-direction:column;font-size:21px;font-weight:700;line-height:1.1;letter-spacing:-.7px}.brand-subtitle{font-size:10px;font-weight:550;line-height:1.5;letter-spacing:2.6px;text-transform:uppercase;color:var(--muted);margin-top:3px}
/* Current-state and history views share the same dashboard filters. */
.dashboard-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:25px 0;padding-bottom:10px}.dashboard-tabs button{border:0;background:transparent;color:var(--muted);padding:9px 18px;font-weight:600}.dashboard-tabs button.selected{background:var(--sage);color:var(--green)}.history-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.history-coverage{grid-column:1/-1}.history-charts .panel{min-width:0}.trend-summary{text-align:right;flex-shrink:0}.trend-summary strong{display:block;font-size:28px;font-weight:620;letter-spacing:-.7px;font-variant-numeric:tabular-nums}.trend-summary span{display:block;font-size:11px;color:var(--muted)}.trend-heading{margin:28px 0 20px;align-items:flex-start}.trend-heading label{min-width:100px}.history-charts .eyebrow{margin-bottom:7px}.history-charts .panel-heading h2{margin-bottom:6px}.history-charts .trend-ends{font-size:10px}.chart-note{font-size:11px;margin:16px 0 0}.trend-values{margin-top:22px}.trend-values summary{cursor:pointer;font-weight:550}.trend-values table{margin-top:18px}.trend-values td{white-space:nowrap}.overview-focus{margin:22px 0}.overview-focus .focus-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.overview-focus .focus-panel{position:relative;padding-right:220px}.overview-focus .focus-panel button{position:absolute;right:24px;bottom:24px}
@media(max-width:980px){.history-charts{grid-template-columns:1fr}.overview-focus .focus-panel{padding-right:24px}.overview-focus .focus-panel button{position:static}.trend-summary strong{font-size:25px}}
@media(max-width:600px){.overview-focus .focus-stack{grid-template-columns:1fr;gap:16px}.history-charts .panel-heading{gap:12px}.trend-heading{flex-wrap:wrap}.history-charts .panel{padding:18px}.history-charts h2{font-size:18px}.trend-summary strong{font-size:22px}.trend-ends{gap:14px}}

.history-charts>.panel:not(.history-coverage) .panel-heading{min-height:100px;align-items:flex-start}

.trend-ends.single{justify-content:center}
/* Subject-owned topic selections: two desktop columns, stacked on mobile. */
.module-picker{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;margin-bottom:24px}.module-picker #module-description,.module-picker #module-counts{grid-column:1/-1}.module-picker p{margin:9px 0}.module-difficulty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.module-difficulty label{display:flex;flex-direction:column;justify-content:space-between}.module-domains{display:flex;flex-wrap:wrap;gap:8px}.module-domains span{border:1px solid var(--line);border-radius:6px;padding:7px 10px}.module-domains strong{margin-left:8px}.module-picker [hidden]{display:none}
@media(max-width:700px){.module-picker{grid-template-columns:1fr}.module-difficulty{gap:10px}.module-difficulty label{font-size:12px}.module-difficulty input{padding:10px;width:100%}}
.taxonomy-columns{align-items:start}
.module-format-meta{display:flex;gap:10px;margin-bottom:14px}.module-topic-toggle{cursor:pointer;font-weight:600}.builder-panel #topic-details[open] .panel-heading{margin-top:18px}.builder-panel input[type=number]:read-only{background:#f3f5f1;color:var(--muted)}.builder-panel .builder-settings{margin-top:20px;padding-top:20px}
.taxonomy-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.topic-column{min-width:0;border:1px solid var(--line);border-radius:12px;padding:18px}.topic-subject{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.topic-subject label{display:flex;align-items:center;gap:12px;font-size:19px}.topic-subject>span{display:block;margin-top:6px}.topic-subject input,.domain-choice input,.coverage-guarantee input{width:18px;height:18px;min-width:18px;accent-color:var(--green);padding:0;margin:0}.topic-column.reading input{accent-color:var(--blue)}.topic-domains{border:0;padding:0;margin:0;min-width:0}.topic-domain{border:1px solid var(--line);border-radius:8px;padding:13px;margin-top:10px}.topic-domain.selected{border-color:#bed1c3;background:#fcfdfb}.reading .topic-domain.selected{border-color:#c7d7e4}.domain-choice{display:flex;align-items:flex-start;gap:10px;font-size:13px;cursor:pointer}.domain-choice strong{font-weight:600;line-height:1.45}.domain-choice input{margin-top:1px}.domain-selection-note{font-size:10px;margin:5px 0 0 28px}.topic-skills{max-height:195px;overflow:auto;margin-top:8px}.topic-skills .check-choice{font-size:12px;padding:7px 4px}.topic-skills .check-choice:has(input:checked){background:var(--sage)}.reading .topic-skills .check-choice:has(input:checked){background:#edf3f8}.skill-actions{margin:10px 0 0 28px}.topic-domains:disabled{opacity:.5}.builder-settings{border-top:1px solid var(--line);padding-top:26px;margin-top:28px}.mix-controls{display:grid;align-content:start;gap:15px}.coverage-guarantee{display:flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:400}.coverage-guarantee input{margin-top:2px}.mix-controls .small{margin:0}.practice-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}.practice-notes strong{font-size:13px}.practice-notes p{font-size:12px;margin-top:7px}.allocation-preview{margin-top:28px}.allocation-subject{margin:18px 0}.allocation-subject h3{display:flex;justify-content:space-between;gap:16px}.allocation-subject h3 span{font-size:13px;color:var(--muted);font-weight:400}.allocation-subject details{border-top:1px solid var(--line);padding:12px 0}.allocation-subject summary{display:flex;justify-content:space-between;gap:16px;font-size:12px;cursor:pointer}.allocation-subject summary:before{content:'›';color:var(--muted)}.allocation-subject details[open] summary:before{content:'⌄'}.allocation-subject summary span{margin-left:auto;color:var(--muted);white-space:nowrap;font-size:11px}.allocation-subject table{margin-top:14px}.allocation-subject td{font-size:12px;padding:12px}.builder-panel>.panel-heading{flex-wrap:wrap}.builder-panel .choice-actions{margin-bottom:0}
@media(max-width:700px){.taxonomy-columns{grid-template-columns:1fr;gap:18px}.topic-column{padding:14px}.practice-notes{grid-template-columns:1fr;gap:12px}.allocation-subject summary{flex-wrap:wrap}.allocation-subject summary span{white-space:normal}.builder-panel{padding:18px}}

/* Comparison controls stay secondary to the student's progress. */
.filters{margin-bottom:8px}.clear-dashboard{border:0;background:transparent;padding:5px 0;margin:0 0 18px;color:var(--green);font-size:12px}.comparison-panel{padding:18px 22px;margin-bottom:22px}.comparison-panel summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;font-weight:550}.comparison-panel summary::-webkit-details-marker{display:none}.comparison-panel summary:before{content:'›';color:var(--muted)}.comparison-panel[open] summary:before{content:'⌄'}.comparison-panel summary>span:first-child{margin-right:auto}.comparison-panel summary .small{font-weight:400;text-align:right}.comparison-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 18px}.comparison-fields label{min-width:0}.comparison-fields select{width:100%;margin-top:7px;font-size:12px}.comparison-panel p{font-size:11px;margin:10px 0;max-width:900px}.comparison-panel>button{font-size:12px;padding:6px 10px;margin-top:8px}.comparison-caption{margin:12px 0}.comparison-insight{margin-bottom:22px;font-size:13px;line-height:1.6}.focus-policy{margin-top:14px;max-width:740px}.focus-policy summary{cursor:pointer}.focus-policy p{font-size:11px;margin:8px 0}.skill-practice{font-size:11px;padding:7px 9px;white-space:nowrap;color:var(--green)}.overview-focus .skill-practice{background:var(--green);color:white;border-color:var(--green)}.domain-block table{min-width:820px;table-layout:fixed}.domain-block th:first-child{width:30%}.domain-block th:last-child{width:12%}.domain-block td{vertical-align:top}.trend-chart circle:focus{outline:none;stroke:var(--ink);stroke-width:3}.targeted-pacing{margin:-8px 0 24px;font-size:11px}
@media(max-width:980px){.comparison-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.comparison-panel summary{flex-wrap:wrap}.comparison-panel summary .small{flex-basis:100%;text-align:left;margin-left:18px}}
@media(max-width:600px){.comparison-panel{padding:18px}.comparison-fields{grid-template-columns:1fr;gap:16px}.domain-block table{min-width:800px}.overview-focus .focus-panel{padding:20px}}

/* Session completion and scope are visible before the score. */
.history-scope{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.history-scope strong{font-size:13px;font-weight:550}.history-scope p{font-size:12px;margin:6px 0 0;max-width:730px}.history-scope button{font-size:12px;flex-shrink:0}.session-progress{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.session-progress>strong{font-size:21px;font-weight:600;letter-spacing:-.4px}.session-status{background:var(--sage);color:var(--green)}.session-status.partial{background:#f6edda;color:#80623b}.session-card>.session-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.session-card .session-metrics strong{font-size:21px;font-variant-numeric:tabular-nums}.session-card .session-metrics span{font-size:11px;display:block}.session-card .session-metrics .metric-note{font-size:10px;margin-top:5px}.session-footer{display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}.session-footer .small{font-size:11px;line-height:1.6}.session-footer button{white-space:nowrap;font-size:12px;flex-shrink:0}.response-log{margin-top:26px}.response-log summary{cursor:pointer;font-weight:550}.response-log p{margin:14px 0;font-size:11px;max-width:820px}.response-log table{min-width:820px}.coverage-cutoff{font-weight:550;color:var(--ink)!important;margin-top:5px}
@media(max-width:700px){.history-scope{align-items:flex-start;flex-direction:column;gap:14px}.session-progress>strong{font-size:20px}.session-card>.session-metrics{gap:12px}.session-card .session-metrics strong{font-size:19px}.session-footer{gap:12px}.history-charts .history-coverage .panel-heading{flex-wrap:wrap}.coverage-cutoff{font-size:11px}}
.history-timing-help{margin-top:8px;font-size:11px;color:var(--muted)}.history-timing-help summary{cursor:pointer}.history-timing-help p{font-size:11px}.history-heading{margin-bottom:20px}.history-scope{padding:14px 0}.history-scope p{font-size:11px}
@media(max-width:700px){.history-heading h1{font-size:29px}.history-heading{margin-top:24px}.history-scope{gap:10px}.history-scope button{padding:7px 10px}}
/* Accuracy and pace always belong to a subject, including mixed sessions. */
.coverage-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.subject-columns.single{grid-template-columns:1fr}.subject-columns>section{min-width:0}.subject-trends:not(.single) .history-charts{grid-template-columns:1fr}.subject-trends .trend-heading h2{font-size:22px}.subject-trends .trend-heading{margin-top:8px}.subject-trends .comparison-insight{font-size:12px;min-height:96px}.subject-trends .history-charts h2{font-size:18px}.subject-trends:not(.single) .history-charts .panel-heading{flex-wrap:wrap}.subject-trends:not(.single) .trend-summary{text-align:left}.subject-columns:not(.single) .pace-grid{grid-template-columns:1fr}.subject-columns:not(.single) .pace-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 15px}.subject-columns:not(.single) .pace-card .value{grid-column:2;grid-row:1/3;margin:0;align-self:center}.subject-columns:not(.single) .pace-card .bar{grid-column:1/-1}.session-subjects{display:grid;gap:14px}.session-subjects h4{font-size:13px;margin:0 0 4px}.session-subjects>div>span{font-size:12px}.session-subjects>div>span.metric-note{display:block;font-size:11px;color:var(--muted)}
@media(max-width:980px){.subject-columns{grid-template-columns:1fr}.subject-trends .comparison-insight{min-height:0}.subject-trend+.subject-trend{border-top:1px solid var(--line);padding-top:24px;margin-top:12px}}
.student-header{margin-bottom:26px}.progress-context{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:18px 0 10px;font-size:11px;color:var(--muted)}.progress-context strong{font-weight:550;color:var(--ink)}.student-header .visual-grid{margin-top:0;gap:18px}.student-header .subject-panel{padding:18px 20px;grid-template-columns:80px minmax(0,1fr);gap:18px}.student-header .donut{width:80px;height:80px}.student-header .donut-value{font-size:19px}.student-header .subject-panel h2{font-size:17px}.student-header .subject-panel p{margin-bottom:10px}.student-header .subject-stats{gap:18px}.student-header .chart-legend{margin-top:12px}.filtered-progress{margin:22px 0}.filtered-progress>h2{font-size:17px;margin-bottom:12px}.filtered-progress .visual-grid{margin-top:0}
@media(max-width:980px) and (min-width:701px){.student-header .visual-grid{grid-template-columns:1fr 1fr}.student-header .subject-panel{grid-template-columns:1fr;gap:10px}.student-header .donut{width:64px;height:64px}.student-header .donut-value{font-size:16px}}
@media(max-width:700px){.progress-context{flex-direction:column;gap:4px}.progress-context span{font-size:10px}.student-header .visual-grid{grid-template-columns:1fr;gap:10px}.student-header .subject-panel{padding:16px;gap:16px;grid-template-columns:72px minmax(0,1fr)}.student-header .donut{width:72px;height:72px}.student-header .subject-stats{gap:14px}.student-header .subject-panel h2{font-size:16px}.student-header .subject-panel p,.student-header .subject-stats span,.student-header .chart-legend{font-size:10px}.student-header{margin-bottom:22px}}
.library-page .grid>.panel{min-width:0}
/* Focused test workspace: shared lifecycle, source-faithful selectable choices. */
.workspace.test-mode aside,.test-mode .student-header,.test-mode #workspace-note{display:none}.workspace.test-mode main{margin:0;padding:0;max-width:none}.test-mode #global-error.error{position:fixed;z-index:12;top:88px;left:16px;right:16px;margin:0;box-shadow:0 4px 20px #253b3614}.test-shell{min-height:100dvh;background:#fff;padding-bottom:95px}.test-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:20px 36px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:4}.test-brand{font-size:11px;font-weight:600;color:var(--green);letter-spacing:.6px}.test-header h1{font-size:21px;letter-spacing:-.4px;margin:3px 0}.test-clock{display:flex;flex-direction:column;align-items:center;min-width:120px}.test-clock strong{font-size:25px;font-variant-numeric:tabular-nums;line-height:1.25;letter-spacing:.5px}.test-clock strong[hidden]{display:none}.text-button{border:0;background:transparent;padding:5px 8px;font-size:11px;color:var(--green)}.test-tools{display:flex;gap:10px;justify-content:flex-end}.test-tools button{font-size:12px;white-space:nowrap}.test-question-heading{max-width:1320px;margin:auto;padding:24px 36px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.test-question-heading>div{display:flex;align-items:center;gap:12px}.test-question-heading button{font-size:12px;padding:7px 12px;border:0;background:#f2f5f1}.test-question-heading button[aria-pressed=true]{background:var(--sage);color:var(--green)}.question-number{display:grid;place-items:center;width:32px;height:32px;background:var(--ink);color:#fff;font-weight:600;border-radius:5px;font-variant-numeric:tabular-nums}.test-content{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:26px;padding:6px 36px 35px}.test-content.reading-layout{max-width:1320px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0}.test-stimulus,.test-response{min-width:0}.reading-layout .test-stimulus{border-right:1px solid var(--line);padding-right:32px}.reading-layout .test-response{padding-left:32px}.source-slice{display:block;width:100%;height:auto;overflow:hidden}.test-choice .source-slice{max-height:none}.test-source{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px;color:var(--muted)}.test-source a{display:inline-block;margin:8px 0}.source-preload{width:0;height:0;overflow:hidden;position:absolute;visibility:hidden}.source-preload img{max-width:none}.response-heading{font-size:14px;margin:0 0 15px;font-weight:600;letter-spacing:0}.test-choices{display:grid;gap:12px}.test-choice-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:8px}.test-choice{width:100%;min-height:55px;border:1.5px solid #d6ded7;border-radius:8px;padding:13px 15px;text-align:left;display:flex;align-items:center;gap:12px;color:var(--ink);background:#fff}.test-choice:has(.source-slice){display:block}.test-choice.selected{border-color:var(--green);background:#f8fcf8;box-shadow:0 0 0 1px var(--green)}.test-choice.selected:after{content:'✓ Selected';display:block;font-size:10px;color:var(--green);margin-top:7px}.choice-letter{border:1px solid var(--muted);border-radius:50%;width:26px;height:26px;display:grid;place-items:center;flex-shrink:0;font-weight:550}.eliminate-choice{border:0;background:transparent;border-radius:50%;width:30px;height:30px;padding:0;font-size:21px;color:var(--muted)}.eliminated .test-choice{opacity:.5;position:relative}.eliminated .test-choice:before{content:'';position:absolute;top:50%;left:12px;right:12px;border-top:2px solid var(--muted);z-index:1}.numeric-label{font-size:13px;max-width:350px}.numeric-label input{font-size:22px;letter-spacing:.4px;width:100%;padding:15px}.test-response .status{margin-top:18px;min-height:18px}.test-footer{position:fixed;bottom:0;left:0;right:0;z-index:5;border-top:1px solid var(--line);background:#f8faf6;min-height:84px;padding:17px 36px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.test-time-detail{display:flex;gap:20px;font-size:10px;color:var(--muted);flex-wrap:wrap}.test-time-detail strong{display:block;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}.test-navigation{display:flex;gap:10px;justify-content:flex-end}.test-navigation button{min-width:88px;font-size:12px}.question-menu-toggle{font-size:12px;font-weight:550;background:#fff}.test-question-menu{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 210px);overflow:auto;padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 60px #253b3629;z-index:6}.test-question-menu[hidden]{display:none}.test-question-menu h2{font-size:17px}.test-question-menu .question-nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin:18px 0}.test-question-menu .question-nav button{position:relative;padding:9px 0;border-radius:5px;font-size:13px}.question-nav button.answered{background:var(--green);color:#fff;border-color:var(--green)}.question-nav button.current{outline:2px solid var(--ink);outline-offset:3px}.question-nav sup{position:absolute;top:-8px;right:-5px;color:#a96921;background:#fff;border-radius:3px;font-size:15px}.test-paused{padding:12px 36px;background:#fff5df;border-bottom:1px solid #ecdbb8;display:flex;gap:16px;align-items:center;flex-wrap:wrap;color:#735b2d}.test-paused span{font-size:12px}.test-mode .empty{margin:50px auto;max-width:700px}.test-mode .image-scroll{border:0;padding:0;margin:0}.test-mode .image-caption{font-size:10px}.test-mode .image-scroll img{width:100%;min-width:0}
@media(max-width:760px){.test-header{grid-template-columns:1fr auto;gap:14px;padding:16px 20px}.test-header h1{font-size:18px}.test-header .small{font-size:10px}.test-tools{grid-column:1/-1;justify-content:space-between}.test-tools button{padding:7px 12px}.test-clock{min-width:80px}.test-clock strong{font-size:22px}.test-question-heading{padding:18px 20px 12px;align-items:flex-start;flex-wrap:wrap;gap:10px}.test-question-heading>.small{width:100%;font-size:10px}.test-content,.test-content.reading-layout{grid-template-columns:1fr;padding:6px 20px 25px;gap:24px}.reading-layout .test-stimulus{padding:0;border:0;border-bottom:1px solid var(--line);padding-bottom:20px}.reading-layout .test-response{padding:0}.test-footer{padding:12px 16px;gap:10px;grid-template-columns:1fr auto;min-height:100px}.test-time-detail{grid-column:1/-1;gap:20px}.test-time-detail strong{display:inline;margin-left:5px;font-size:11px}.question-menu-toggle{justify-self:start;font-size:11px;padding:8px 10px}.test-navigation button{min-width:65px;font-size:11px;padding:8px 12px}.test-shell{padding-bottom:112px}.test-question-menu{bottom:115px;padding:20px;max-height:calc(100dvh - 290px)}.test-paused{padding:12px 20px;gap:8px}.test-choice{padding:12px}.test-choice-row{gap:5px}.test-mode #global-error.error{top:155px;font-size:12px}.test-source{margin-top:16px}}
.reading-text{font:18px/1.7 Georgia,"Times New Roman",serif;white-space:pre-line;color:#263832}.choice-text{font-size:16px;line-height:1.55;white-space:pre-line}.test-choice:has(.choice-text){align-items:flex-start}.test-choice:has(.choice-text).selected:after{content:'✓';font-size:15px;margin:0 0 0 auto;flex-shrink:0}.test-choice:has(.choice-text) .choice-letter{margin-top:1px}.reading-layout .test-stimulus .reading-text+.reading-text{margin-top:20px}@media(max-width:760px){.reading-text{font-size:17px}.choice-text{font-size:15px}}

/* Source text and image controls share the focused runner typography. */
.reading-text{white-space:normal}.reading-text p{color:inherit;line-height:inherit;font-size:inherit;margin:0 0 1em}.reading-text ul{padding-left:1.4em;margin:1em 0}.reading-text li{padding-left:.15em;margin:.35em 0}.source-zoom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 15px}.source-zoom select{width:auto;font-size:12px;padding:5px 8px}.source-zoom span{flex-basis:100%;font-weight:400}.source-pan{overflow:auto;max-width:100%;border-radius:4px}.source-pan:focus-visible{outline:2px solid var(--green);outline-offset:3px}.source-canvas{max-width:none}.source-pan .image-scroll{overflow:visible}.source-pan .image-caption{display:none}

.test-stimulus .source-pan+.reading-text{margin-top:24px}.source-pan .source-slice{margin:0 auto}

/* Results and read-only review share the focused practice shell. */
.results-content{max-width:1280px;margin:0 auto;padding:32px 36px 40px}.results-content>.heading{margin-bottom:24px}.results-content h2{font-size:24px;margin:0 0 8px}.results-content .panel{margin-top:24px}.results-content .panel-heading p{margin:8px 0 0}.completion-badge{color:var(--green);font-size:15px;font-weight:700}.test-clock .completion-badge+.small{margin-top:8px}.result-metrics .value{font-size:32px}.result-denominator{font-size:19px;font-weight:400;color:var(--muted)}.result-subjects{margin-top:24px}.result-subjects .panel{margin-top:0}.result-subject{display:flex;gap:24px;align-items:center}.result-subject h3{font-size:21px;margin:0 0 10px}.result-subject p{font-size:14px;color:var(--muted);margin:0 0 14px}.result-subject-times{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.result-subject-times strong{display:block;font-size:19px;color:var(--ink);margin-bottom:4px}.result-ring{width:126px;height:126px;flex-shrink:0;border-radius:50%;background:conic-gradient(#276d59 0 var(--correct-end),#b96842 var(--correct-end) var(--incorrect-end),#e8ece7 var(--incorrect-end) 360deg);display:grid;place-items:center}.result-ring>div{border-radius:50%;background:white;width:98px;height:98px;display:flex;align-items:center;justify-content:center;flex-direction:column}.result-ring strong{font-size:26px}.result-ring span{font-size:12px;color:var(--muted);margin-top:3px}.result-definition{line-height:1.65;margin:18px 0 28px}.result-breakdown h3{font-size:17px;margin:22px 0 10px}.result-breakdown td:first-child{max-width:380px;min-width:200px}.result-parent{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.result-question-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:16px}.result-question{display:flex;align-items:center;flex-direction:column;gap:7px;border-color:#dee5df;padding:14px 8px;background:#f5f7f4}.result-question strong{font-size:18px}.result-question span{font-size:12px}.result-question small{font-size:11px;color:var(--muted)}.result-question.correct{background:#edf5ef;border-color:#bad5c4;color:#255c43}.result-question.incorrect{background:#fbefea;border-color:#e3c4b6;color:#904422}.result-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:16px}.result-legend .correct{color:#276d59}.result-legend .incorrect{color:#a45c3b}.review-filter{font-size:12px;min-width:180px}.review-filter select{margin-top:7px}.review-outcome{padding:9px 12px;background:#f2f4f1;border-radius:7px;font-size:13px;font-weight:600}.review-outcome.correct{background:#edf5ef;color:#255c43}.review-outcome.incorrect{background:#fbefea;color:#904422}.review-shell .test-question-heading>span{line-height:1.7;text-align:right}.review-choice{border:1px solid #dfe6df;border-radius:10px;overflow:hidden;margin-bottom:12px}.review-choice .test-choice{border:0;border-radius:0;text-align:left;cursor:default;width:100%;margin:0;background:transparent}.review-choice.correct{border:2px solid #70a486;background:#f0f7f1}.review-choice.incorrect{border:2px solid #cf987c;background:#fdf3ef}.review-choice-label{display:block;font-size:12px;font-weight:700;padding:0 16px 14px;color:#255c43}.review-choice.incorrect .review-choice-label{color:#904422}.review-answer-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.review-answer-pair>div{padding:20px;border:1px solid #dfe6df;border-radius:10px}.review-answer-pair strong{display:block;font-size:24px;margin-top:12px;overflow-wrap:anywhere}.review-answer-pair .correct{background:#f0f7f1;border-color:#70a486}.review-explanation{max-width:1120px;margin:0 auto;padding:24px 36px 40px;border-top:1px solid #e1e7e1}.review-explanation h2{font-size:22px}.review-explanation .image-scroll{margin-bottom:16px}.review-explanation .image-scroll img{width:100%;height:auto}.review-explanation .review-note{margin-top:24px}.review-shell .test-question-menu .result-question-grid{grid-template-columns:repeat(4,1fr);max-height:38dvh;overflow:auto;padding:2px}.review-shell .test-question-menu .result-question{padding:10px 5px}.review-shell .test-question-menu .review-filter{display:block}.results-content .banner{margin-bottom:20px}
@media(max-width:760px){.results-content{padding:24px 18px}.result-metrics{grid-template-columns:1fr 1fr;gap:12px}.result-metrics .card{padding:18px 14px}.result-metrics .value{font-size:27px}.result-subjects{grid-template-columns:1fr}.result-subject{gap:18px;padding:20px 16px}.result-ring{width:104px;height:104px}.result-ring>div{width:80px;height:80px}.result-ring strong{font-size:23px}.result-subject h3{font-size:18px}.result-subject-times{gap:12px}.results-content .panel{padding:20px 16px}.results-content .panel-heading{align-items:flex-start;gap:16px;flex-wrap:wrap}.results-content .panel-heading>label{width:100%}.results-shell .test-footer>span{display:none}.review-explanation{padding:22px 18px 36px}.review-shell .test-question-heading{align-items:flex-start;gap:12px}.review-shell .test-question-heading>div{flex-wrap:wrap;gap:8px}.review-shell .test-question-heading>span{max-width:52%;font-size:11px}.review-answer-pair{grid-template-columns:1fr}.review-filter{min-width:0}.review-explanation .image-scroll{overflow:auto}.review-explanation .image-scroll img{min-width:620px;max-width:none}.review-explanation .image-caption{display:block}.result-question-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr))}}

.answer-paused{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:18px;background:#fff5df;border:1px solid #ead8ac;border-radius:9px}.answer-paused .small{color:#735b2e}.answer-paused button{flex-shrink:0}.numeric-label{display:block}.numeric-label input:disabled{cursor:not-allowed;background:#f5f6f3;color:var(--muted)}
@media(max-width:760px){.answer-paused{align-items:flex-start;flex-direction:column;gap:10px}.answer-paused button{width:100%}}

.session-actions,.session-badges{display:flex;align-items:center;gap:8px}.session-badges{flex-wrap:wrap;justify-content:flex-end}.session-actions{flex-shrink:0}.session-footer{flex-wrap:wrap;gap:12px}
/* Shared teaching cards and focused lesson dialog. */
.teaching-controls,.teaching-admin-filters{display:flex;gap:18px;flex-wrap:wrap;align-items:end}
.teaching-controls label,.teaching-admin-filters label{flex:1;min-width:150px}
.teaching-toggle{display:flex;gap:10px;align-items:center;font-weight:400}
.teaching-toggle input,.supporting-concepts input{width:18px;height:18px;flex:none}
.teaching-domain{margin-top:20px}.teaching-domain h3{margin:0 0 22px}
.teaching-skill+.teaching-skill{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}
.teaching-skill h4{color:var(--muted);font-size:13px;font-weight:500;line-height:1.5;margin:0 0 10px}
.teaching-concept{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:12px 0}
.teaching-concept strong,.teaching-concept span{display:block}.teaching-concept strong{font-size:16px;line-height:1.45}
.teaching-concept button{flex:none}.teaching-lesson{width:min(760px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:32px;border:1px solid var(--line);border-radius:20px;color:var(--ink)}
.teaching-lesson::backdrop{background:rgba(23,47,43,.45)}
.teaching-lesson h3,.our-explanation h3{font-size:16px;margin-top:24px}
.teaching-lesson li,.our-explanation li{padding:5px 0;line-height:1.65}.lesson-core{font-size:20px;line-height:1.65}
.lesson-formula{padding:20px;border-radius:12px;background:var(--green-soft,#eaf2ed);font-size:20px;line-height:1.65;overflow-wrap:anywhere}
.concept-trap{padding:18px 20px;background:#fbf6e9;border-radius:12px;line-height:1.6;margin:20px 0}
.concept-trap h3{margin-top:0}.our-explanation{padding:24px;background:#f5f8f5;border-radius:16px;margin-bottom:32px}
.our-explanation h2{margin-top:10px}.our-explanation p{line-height:1.65}.teaching-pending{padding:16px 0 26px;color:var(--muted)}
.teaching-editor-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.teaching-editor-columns .panel{min-width:0}
.teaching-editor-columns label,.lesson-editor label{display:block;margin:20px 0 8px}.teaching-editor-columns input:not([type=checkbox]),.teaching-editor-columns textarea,.teaching-editor-columns select,.lesson-editor input:not([type=checkbox]),.lesson-editor textarea{width:100%}
.teaching-source img{display:block;width:100%;height:auto;margin:15px 0}.teaching-source details{margin:24px 0}.supporting-concepts{margin-top:20px}.supporting-concepts label{font-size:14px;line-height:1.5}.supporting-concepts label .small{display:block;padding-left:24px}
.teaching-admin td .small,.teaching-admin td strong{display:block}.teaching-admin-filters{margin-bottom:24px}.lesson-editor{margin-top:24px}.teaching-admin #admin-message:empty{display:none}
@media(max-width:800px){.teaching-editor-columns{grid-template-columns:1fr}.teaching-lesson{padding:22px}.teaching-concept{gap:12px}.teaching-controls{align-items:stretch;flex-direction:column}.teaching-columns{grid-template-columns:1fr}.our-explanation{padding:20px}.lesson-core,.lesson-formula{font-size:18px}}

.teaching-lesson{max-width:760px;font-size:16px}.teaching-worked{border-top:1px solid var(--line);padding-top:26px;margin-top:30px}.teaching-worked .source-pan .image-scroll img{width:100%;height:auto}.teaching-worked .reading-text{margin-bottom:22px}.worked-choices{display:grid;gap:12px;margin:20px 0}.worked-choice{display:flex;align-items:start;gap:14px;border:1px solid var(--line);border-radius:10px;padding:14px}.worked-choice .choice-letter{flex:none}.worked-choice .choice-text{font-size:16px}.teaching-lesson .panel-heading{gap:18px;align-items:start}.teaching-lesson .panel-heading h2{font-size:24px;line-height:1.35}.teaching-lesson .panel-heading button{flex:none}

/* Concept diagrams clarify relationships; original question media remains separate. */
.teaching-visual{margin:26px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.teaching-visual figcaption p{margin:10px 0 20px}.system-visual-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.system-visual-case{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;min-width:0}.system-visual-case h4{margin:0 0 12px;font-size:16px}.system-visual-case svg{display:block;width:100%;max-width:220px;margin:0 auto}
.visual-equations{display:grid;gap:8px;margin:16px 0;font-size:15px}.visual-equation{display:flex;gap:8px;align-items:center;white-space:nowrap}.visual-equation:before{content:'';width:20px;border-top:3px solid #23745e;flex:none}.visual-equation.dashed:before{border-top:3px dashed #477ca4}
.system-visual-case p{font-size:15px;line-height:1.55}.system-visual-case .small{font-size:13px;line-height:1.55}.teaching-visual>.small{margin-bottom:0}
@media(max-width:620px){.system-visual-cases{grid-template-columns:1fr}.system-visual-case svg{max-width:220px}.system-visual-case h4,.system-visual-case p{font-size:16px}.system-visual-case .small{font-size:14px}}

.teaching-visual-editor{margin:24px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.teaching-visual-editor legend{font-size:15px;font-weight:600}.teaching-visual-editor input[type=checkbox]{width:auto}.teaching-visual-editor label{line-height:1.5}

.triangle-ratio-diagram{max-width:380px;margin:0 auto}.triangle-ratio-diagram svg{width:100%;display:block}.triangle-ratio-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.triangle-ratio-legend>div{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff;display:grid;gap:6px;text-align:center}.triangle-ratio-legend strong{font-size:24px}.triangle-ratio-legend span{font-size:15px}.triangle-ratio-legend .small{font-size:13px}
@media(max-width:620px){.triangle-ratio-legend{grid-template-columns:1fr}.triangle-ratio-legend>div{grid-template-columns:60px 1fr;text-align:left;align-items:center}.triangle-ratio-legend strong{grid-row:span 2}}

.import-teaching{border-top:1px solid var(--line,#dbe4dc);margin-top:24px;padding-top:24px}.teaching-candidates,.new-concept-editor{background:#f6f8f4;border:1px solid #dde5dd;border-radius:12px;padding:16px}.candidate{padding:12px 0;border-bottom:1px solid #dbe4dc}.candidate strong,.candidate .small{display:block}.candidate button{margin-top:8px}.teaching-candidates h4{margin:20px 0 8px}
/* Teaching overlays reveal meaning without modifying source pixels or test controls. */
.highlight-tools{margin:12px auto 24px;padding:18px 22px;background:#f6f8f5;border:1px solid #dce5dc;border-radius:12px;max-width:1120px}
.highlight-tools p{margin:5px 0 10px}.highlight-tools .panel-heading{margin:0}
.highlight-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 16px;margin-bottom:10px}
.highlight-buttons{display:flex;flex-wrap:wrap;gap:8px}.highlight-buttons button{padding:8px 14px;font-size:14px}
.highlight-buttons button[aria-pressed=true]{background:#244a3f;color:white;border-color:#244a3f}
.highlight-key{display:flex;flex-wrap:wrap;gap:7px 22px;padding:0;margin:0;list-style:none}
.highlight-key li{display:none;align-items:flex-start;gap:8px;font-size:14px;max-width:340px}
.highlight-key li.highlight-active{display:flex}.highlight-key .small{display:block;margin-top:3px}
.highlight-swatch{flex:none;display:inline-block;width:14px;height:14px;border-radius:3px;margin-top:4px;border:1px solid #7e998c}
.highlight-swatch.tone-teal,mark.tone-teal.highlight-active{background:#d5eee1}
.highlight-swatch.tone-blue,mark.tone-blue.highlight-active{background:#dbeaf7}
.highlight-swatch.tone-amber,mark.tone-amber.highlight-active{background:#f9e4a8}
mark.teaching-mark{background:transparent;color:inherit;border-radius:2px;font:inherit}
mark.emphasis-subject.highlight-active{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
mark.emphasis-verb.highlight-active{font-weight:750}
rect.teaching-mark{opacity:0;pointer-events:none;stroke-width:1.5;transition:opacity .15s}
rect.teaching-mark.highlight-active{opacity:1}
rect.tone-teal{fill:#54ae84;fill-opacity:.22;stroke:#23745e}
rect.tone-blue{fill:#649ed0;fill-opacity:.22;stroke:#3b73a1}
rect.tone-amber{fill:#e2b647;fill-opacity:.28;stroke:#ad7b10}
.reveal-clue{font-size:13px;font-weight:600;white-space:nowrap;margin-left:5px}
.reveal-clue[aria-pressed=true]{text-decoration:underline;text-underline-offset:3px}
.highlight-authoring textarea{font-family:ui-monospace,monospace;font-size:13px;min-height:180px;width:100%}
.highlight-authoring pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
@media(max-width:650px){.highlight-tools{margin:12px 16px;padding:14px}.teaching-worked .highlight-tools{margin:12px 0}.highlight-key li{max-width:100%}.highlight-buttons button{padding:7px 10px}}
/* Curriculum preparation is separate from student practice coverage. */
.curriculum-subject{border:1px solid var(--line,#dce4de);border-radius:16px;padding:22px;min-width:0}
.curriculum-subject progress{display:block;width:100%;height:8px;margin:14px 0;accent-color:#266c59}
.curriculum-subject summary{font-weight:600;cursor:pointer}
.curriculum-skill{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid #e7ece7}
.curriculum-skill>span{min-width:0}.curriculum-skill .small{display:block}.curriculum-skill button{flex-shrink:0;font-size:13px}
.method-editor,.method-applicability{background:#f3f7f3;border-radius:12px;padding:16px;margin:16px 0}
@media(max-width:600px){.curriculum-subject{padding:16px}.curriculum-skill{align-items:flex-start;flex-direction:column}.curriculum-skill button{align-self:flex-end}}

.profile-picker>label{order:2}.profile-picker>.profile-avatar{order:1;flex-shrink:0}.profile-picker>#profile-note{order:3}.profile-picker form{margin:0}.profile-picker button,.profile-picker select{height:36px;padding:7px 12px;font-size:12px;line-height:20px}.profile-picker select{max-width:220px;border:1px solid var(--line);border-radius:8px;background:#fff}.profile-picker select:disabled{appearance:none;opacity:1;color:var(--ink);border-color:transparent;background:transparent;padding-right:0}.profile-picker{gap:10px;flex-wrap:wrap;justify-content:flex-end}

.workspace aside{overflow-y:auto}.account-footer{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.account-footer .profile-picker{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:0;background:transparent;align-items:center}.account-footer .profile-avatar{display:none}.account-footer label{grid-column:1;grid-row:1;min-width:0}.account-footer select{width:100%;max-width:none;padding-left:8px;text-overflow:ellipsis}.account-footer #profile-note{grid-column:1;grid-row:2;text-align:left}.account-footer button{width:100%;text-align:left;padding:5px 8px;height:auto;min-height:32px;background:transparent;border:0;color:var(--muted)}.student-header .progress-context{margin-top:0}.student-header .chart-legend{display:none}.student-header .subject-panel{padding:14px 18px}.student-header .subject-panel p{margin-bottom:8px}
@media(max-width:700px){.account-footer{margin-top:12px;padding-top:10px}.account-footer .profile-picker{grid-template-columns:minmax(0,1fr) auto;padding:0}.account-footer label{grid-column:1;grid-row:1}.account-footer #profile-note{grid-column:2;grid-row:1;padding-top:0}.account-footer select,.account-footer button{min-height:44px}.workspace aside{padding:14px 20px}.workspace aside nav{margin-top:14px}.student-header{margin-bottom:18px}}

.account-footer label[hidden]{display:none}.account-footer:has(label[hidden]) #profile-note{grid-column:1/-1;grid-row:1}.account-footer a{display:block;padding:8px;color:var(--green);font-size:12px;text-decoration:none}.account-footer button:hover,.account-footer a:hover{background:var(--sage);border-radius:6px}

.guest-notice{margin:12px 0 0;padding:10px 14px;background:var(--sage);border-radius:8px;line-height:1.6}.account-footer #profile-note a{padding-left:8px}

/* Full-screen lessons retain the shared dialog lifecycle and question renderer. */
dialog.teaching-lesson{inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;box-sizing:border-box;padding:0;border:0;border-radius:0;background:#fff}.teaching-lesson .lesson-header{position:sticky;top:0;z-index:5;margin:0;padding:18px 32px;border-bottom:1px solid var(--line);background:#fff}.lesson-header p,.lesson-header .small{display:none}.lesson-header h2{margin:4px 0 0}.lesson-body{max-width:1120px;margin:auto;padding:28px 36px 48px}.lesson-header button{white-space:nowrap}@media(max-width:800px){.teaching-lesson .lesson-header{padding:14px 16px;flex-wrap:wrap}.teaching-lesson .lesson-header h2{font-size:20px}.lesson-body{padding:22px 18px 40px}}

/* Keep concept discovery prominent and give Safari controls consistent sizing. */
.study-mode .student-header{display:none}.study-mode .guest-notice{padding:8px 12px;font-size:12px;margin:0 0 22px}
.teaching-controls{display:grid;grid-template-columns:minmax(240px,2fr) minmax(180px,1fr) auto;gap:12px 18px;align-items:end}
.teaching-controls label{min-width:0}.teaching-controls input[type=search],.teaching-controls select{display:block;width:100%;height:44px;margin-top:6px;padding:10px 12px;font-size:14px;background:#fff;border:1px solid #dbe3dc;border-radius:8px;appearance:none;-webkit-appearance:none}
.teaching-controls select{padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23276b58' stroke-width='1.5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}
.teaching-clear{height:44px}.teaching-search-help{grid-column:1/3;margin:0}.teaching-controls .teaching-toggle{grid-column:1/-1;font-size:13px;justify-content:flex-start}.teaching-result-count{margin:18px 0;color:var(--ink);font-weight:550}.teaching-empty{grid-column:1/-1;padding:28px;max-width:none}.teaching-empty button{margin:8px 10px 0 0}.teaching-library-about{margin-top:24px}.teaching-pending{grid-column:1/-1;margin:0}
@media(max-width:600px){.teaching-controls{grid-template-columns:minmax(0,1fr) auto}.teaching-search-label{grid-column:1/-1}.teaching-search-help{grid-column:1/-1}.teaching-controls .teaching-toggle{grid-column:1/-1}.teaching-empty{padding:22px}.study-mode .guest-notice{line-height:1.5}}

.guest-notice,.study-mode .guest-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px;padding:16px 20px;background:#fff4dc;border:1px solid #e9d7ac;border-radius:10px;font-size:14px;line-height:1.5}.guest-notice strong{display:block;font-size:16px;color:var(--ink);margin-bottom:4px}.guest-notice p{margin:0;color:#705b35;max-width:850px}.guest-notice>a{flex:none;font-weight:650;padding:10px 14px;background:#fff;border:1px solid #dac496;border-radius:8px}.test-mode .guest-notice{display:none}
.builder-mode .student-header{margin-bottom:12px}.compact-progress{display:flex;justify-content:flex-end;gap:18px}.coverage-shortcut{position:relative}.coverage-ring{display:flex;align-items:center;gap:8px;border:0;padding:4px;background:transparent;font-size:12px}.coverage-ring .donut{height:52px;width:52px}.coverage-ring .donut-value{font-size:12px;letter-spacing:0}.coverage-ring .donut-value span{display:none}.coverage-tooltip{display:none;position:absolute;right:0;top:100%;width:285px;padding:15px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 25px #253b3620;border-radius:10px;z-index:20;font-size:12px}.coverage-tooltip span{display:block;margin-top:6px}.coverage-shortcut:hover .coverage-tooltip,.coverage-shortcut:focus-within .coverage-tooltip{display:block}
@media(max-width:600px){.guest-notice,.study-mode .guest-notice{flex-direction:column;align-items:flex-start;gap:12px;padding:15px;font-size:13px}.compact-progress{gap:10px}.coverage-ring{font-size:11px}.coverage-ring .donut{width:44px;height:44px}.coverage-tooltip{width:250px}.coverage-shortcut:first-child .coverage-tooltip{right:auto;left:0}}

.builder-mode .student-header{display:none}.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.workspace-heading>div:first-child{min-width:0}.workspace-heading .compact-progress{flex:none}.workspace-heading p{margin-bottom:0}@media(max-width:900px){.workspace-heading{align-items:flex-start;flex-wrap:wrap}.workspace-heading .compact-progress{margin-left:auto}}@media(max-width:600px){.workspace-heading{gap:14px}.workspace-heading .compact-progress{width:100%;margin:0;justify-content:flex-start}.workspace-heading .coverage-tooltip{left:0;right:auto}}

.workspace .student-header{display:none}
