:root{color-scheme:light;--paper:#f5f4f0;--ink:#131b2b;--red:#7a2021;--line:#c9c8c1;--muted:#505969}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'IBM Plex Sans','Segoe UI',sans-serif;font-size:clamp(18px,1.35vw,24px);line-height:1.45}.app{max-width:1600px;margin:auto;padding:22px 4vw}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;min-height:48px;padding:10px 20px;background:transparent;border:1px solid var(--line);border-radius:3px}button:hover{border-color:var(--ink);background:#eae9e3}button[aria-pressed=true],.primary{background:var(--ink);color:#fff;border-color:var(--ink)}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:4px}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:5}.skip:focus{top:8px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--ink);padding-bottom:14px;font-size:.75em}.brand{text-decoration:none;font-size:1.45em;font-weight:700}.brand span{font-size:.6em;font-weight:400;margin-left:16px}.course,.eyebrow,.screen-index{letter-spacing:.1em;font-size:.72em;font-weight:600}.masthead{display:flex;justify-content:space-between;align-items:center;padding:24px 0 18px}.masthead p{margin:0;color:var(--muted)}.masthead>p{font-size:.9em}h1{position:relative;font-weight:500;letter-spacing:-.045em;font-size:clamp(36px,3.6vw,60px);line-height:1.1;margin:10px 0}.handline{position:absolute;width:40%;bottom:-7px;left:0;border-bottom:3px solid var(--red);border-radius:50%;transform:rotate(-1deg)}.process{display:flex;list-style:none;padding:10px 0 16px;gap:10px;margin:0;border-bottom:1px solid var(--line);font-size:.72em;flex-wrap:wrap}.process li{color:var(--muted)}.process li:not(:last-child)::after{content:'→';padding-left:10px}.process .done{color:var(--ink)}.process .current{font-weight:700;color:var(--red)}main{padding:26px 0;min-height:370px}main:focus{outline:none}.screen-index{color:var(--red);margin:0 0 8px}h2{font-size:clamp(28px,2.5vw,42px);letter-spacing:-.025em;font-weight:500;line-height:1.2;margin:0 0 18px}h3{font-size:1.15em;margin:12px 0}p{margin:12px 0}.lead{font-size:1.12em;max-width:1000px}.split{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.4fr);gap:48px;align-items:start}.data-table{width:100%;border-collapse:collapse;font-size:1em}.data-table caption{text-align:left;font-size:.75em;color:var(--muted);margin-bottom:12px}.data-table th,.data-table td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left}.data-table thead{font-size:.75em}.data-table td:last-child{font-variant-numeric:tabular-nums}.data-table tbody th{font-weight:500}.choices{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.choices button{text-align:left}.questions{display:grid;gap:10px}.questions button{text-align:left;padding:12px 16px}.questions small{display:block;color:var(--muted)}label{display:block;font-weight:500;margin:14px 0 8px}input,select,textarea{max-width:100%;background:#fff;border:1px solid #8a8e95;border-radius:2px;padding:12px;min-height:50px}select{width:100%}textarea{display:block;width:100%;resize:vertical;min-height:90px}input[type=checkbox]{width:24px;min-height:24px;margin-right:12px;vertical-align:middle}fieldset{padding:0;border:0;margin:16px 0}legend{font-weight:600}.feedback{border-left:3px solid var(--red);padding:12px 20px;margin:18px 0;background:#fff;min-height:48px}.feedback:empty{display:none}.feedback[data-ok=true]{border-color:var(--ink)}.muted,.hint{color:var(--muted);font-size:.82em}.teacher{display:flex;align-items:baseline;gap:24px;border-top:1px solid var(--line);padding:16px 0;font-size:.78em}.teacher strong{white-space:nowrap;color:var(--red)}.teacher p{margin:0}.navigation{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--ink);padding-top:16px}.source{font-size:.65em;color:var(--muted);max-width:1100px;margin-bottom:0}.question-band{border-left:3px solid var(--red);padding-left:20px;margin:0 0 24px}.formula{font-variant-numeric:tabular-nums;font-size:1.25em;border-bottom:1px solid var(--line);padding:12px 0}.graph{display:block;width:100%;max-height:380px;color:var(--ink)}.graph text{font-family:inherit;font-size:20px;fill:currentColor}.graph .bar{fill:var(--ink)}.graph .axis{stroke:var(--ink);stroke-width:2}.graph .grid{stroke:var(--line)}.graph .accent{fill:var(--red)}.legend-list{list-style:none;padding:0;font-size:.9em;display:flex;flex-wrap:wrap;gap:16px}.legend-list span{display:inline-block;width:14px;height:14px;margin-right:6px}.chart-block{border-bottom:1px solid var(--line);padding-bottom:12px}.claim{padding:15px 0;border-bottom:1px solid var(--line)}.claim p{margin:0}.claim .feedback{font-size:.85em}.summary{display:grid;grid-template-columns:1fr 1fr;gap:12px 40px}.summary section{border-top:1px solid var(--line);padding:12px 0}.summary h3{font-size:.8em;color:var(--muted)}.summary .wide{grid-column:1/-1}.status{font-size:.8em;color:var(--red)}.note{border-left:3px solid var(--red);padding-left:18px}.filter-area{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.compact{font-size:.82em}.checkline{display:flex;align-items:center;gap:10px}details{margin:14px 0}summary{cursor:pointer;min-height:48px;padding:10px 0}.stage-nav{display:flex;flex-wrap:wrap;gap:8px}.stage-nav button{font-size:.8em}
@media(min-width:1600px){main{min-height:450px}.data-table th,.data-table td{padding:13px 16px}}
@media(max-width:850px){.app{padding:18px 24px}.split{grid-template-columns:1fr;gap:24px}.masthead>p,.course{display:none}.teacher{gap:12px}.summary{grid-template-columns:1fr}.summary .wide{grid-column:auto}.graph{max-height:none}.brand span{display:none}main{padding:24px 0}.source{font-size:13px}}
/* Keep teacher controls on the board while the active work area scrolls. */
@media(min-width:851px){
  .app{height:100svh;display:flex;flex-direction:column;max-width:1840px;padding-top:14px;padding-bottom:12px}
  .topbar,.masthead,.process,.teacher,.navigation,.source{flex-shrink:0}
  .masthead{padding:16px 0}.masthead h1{font-size:clamp(34px,3vw,52px)}
  main{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding:20px 12px 20px 0}
  .teacher{padding:10px 0}.navigation{padding-top:10px}.source{margin-top:6px}
  #screen:has(#chartWork) .split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px}
  .graph text{font-size:26px}.graph{max-height:440px}
  .filter-area .data-table{font-size:.85em}.filter-area .data-table th,.filter-area .data-table td{padding:6px 10px}
}
@media(max-height:800px) and (min-width:851px){.masthead{padding:10px 0}.masthead h1{font-size:34px}.process{padding-bottom:10px}h2{font-size:30px}.teacher{font-size:14px}.topbar{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.topbar,.navigation,.teacher,.source,.stage-nav{display:none}.app{padding:0;height:auto;display:block}body{font-size:14px}main{min-height:0;overflow:visible}}
