/* A bounded reading surface: only the explanation scrolls, never the board. */
.diagnostic-page .diagnostic-study{box-sizing:border-box;width:min(1200px,calc(100vw - 32px));height:min(920px,calc(100dvh - 32px));max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #c8bba6;border-radius:16px;background:#faf8f3;color:#29282b;box-shadow:0 24px 90px #0006;overflow:hidden;font:16px/1.55 system-ui,sans-serif}
.diagnostic-page .diagnostic-study[open]{display:flex;flex-direction:column}
.diagnostic-page .diagnostic-study::backdrop{background:#101c20b8;backdrop-filter:blur(4px)}
.diagnostic-page .diagnostic-study *{box-sizing:border-box;min-width:0}
.diagnostic-page .diagnostic-study button,.diagnostic-page .diagnostic-study select{font:inherit;font-size:.86rem;line-height:1.25;min-height:44px;border:1px solid #cfc8bc;border-radius:7px;background:#fff;color:#343034;padding:9px 12px;cursor:pointer;touch-action:manipulation}
.diagnostic-page .diagnostic-study button:disabled{opacity:.45;cursor:default}
.diagnostic-page .diagnostic-study button:not(:disabled):is(:hover,:active){background:#166c5c;color:#fff;border-color:#166c5c}
.diagnostic-page .diagnostic-study :is(button,select,[tabindex]):focus-visible{outline:3px solid #b67929;outline-offset:2px}
.diagnostic-page .diagnostic-study .study-header{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 22px;border-bottom:1px solid #ded6c8;background:#f2eadb;flex:none}
.diagnostic-page .diagnostic-study .study-header h2{font-size:1rem;margin:2px 0 0;line-height:1.3;overflow-wrap:anywhere}
.diagnostic-page .diagnostic-study .study-header>button{flex:none}
.diagnostic-page .diagnostic-study .study-eyebrow{font-size:.63rem;letter-spacing:.13em;font-weight:750;color:#835f2b}
.diagnostic-page .diagnostic-study .study-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);flex:1;min-height:0;overflow:hidden}
.diagnostic-page .diagnostic-study .study-position{display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding:18px 22px;min-height:0;border-right:1px solid #ded6c8;background:#f7f5ee}
.diagnostic-page .diagnostic-study .study-board-wrap{width:min(100%,calc(100dvh - 410px),470px);padding:0 3px 20px 20px;margin:0 auto;flex:none}
.diagnostic-page .diagnostic-study .study-board{position:relative;width:100%;aspect-ratio:1;box-shadow:0 5px 18px #123e331c}
.diagnostic-page .diagnostic-study .study-board coords{position:absolute;display:flex;color:#285c49;font-size:12px;line-height:1;font-weight:650}
.diagnostic-page .diagnostic-study .study-board coords.ranks{left:-18px;top:0;height:100%;width:16px}
.diagnostic-page .diagnostic-study .study-board coords.files{left:0;bottom:-19px;width:100%;height:17px}
.diagnostic-page .diagnostic-study .study-controls{flex:none;min-width:0}
.diagnostic-page .diagnostic-study .study-line-choice{display:flex;align-items:end;gap:8px}
.diagnostic-page .diagnostic-study .study-line-choice label{flex:1;font-size:.7rem;font-weight:650;color:#686050}
.diagnostic-page .diagnostic-study .study-line-choice label,.diagnostic-page .diagnostic-study .study-line-choice select,.diagnostic-page .diagnostic-study button{margin:0}
.diagnostic-page .diagnostic-study .study-line-choice select{display:block;width:100%;text-overflow:ellipsis}
.diagnostic-page .diagnostic-study .study-current{margin:8px 0;font-size:.83rem;font-weight:700;text-align:center;color:#155c50}
.diagnostic-page .diagnostic-study .study-arrows{display:grid;grid-template-columns:.65fr 1fr 1fr .65fr;gap:5px}
.diagnostic-page .diagnostic-study .study-arrows button{padding:8px 4px}
.diagnostic-page .diagnostic-study .study-moves{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;padding:6px 2px 5px;scrollbar-width:thin;white-space:nowrap;min-height:57px}
.diagnostic-page .diagnostic-study .study-moves>span{display:inline-flex;gap:3px;flex:none}
.diagnostic-page .diagnostic-study .study-moves button{padding:7px 9px;min-width:36px;font-size:.85rem}
.diagnostic-page .diagnostic-study .study-moves [aria-current=step]{background:#166c5c;color:#fff;border-color:#166c5c}
.diagnostic-page .diagnostic-study .study-reading{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 26px;scrollbar-gutter:stable;background:white}
.diagnostic-page .diagnostic-study .study-reading h3{font:600 1.3rem/1.35 system-ui;margin:8px 0 20px}
.diagnostic-page .diagnostic-study .study-context{font-size:.79rem;line-height:1.5;color:#706049;background:#f8f3e8;border-left:3px solid #b69860;padding:10px 12px;margin:0 0 14px}
.diagnostic-page .diagnostic-study .study-paragraph{margin:0 0 20px}
.diagnostic-page .diagnostic-study .study-paragraph h4{font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;color:#8e2339;margin:0 0 8px}
.diagnostic-page .diagnostic-study .study-paragraph p,.diagnostic-page .diagnostic-study .study-paragraph li{font-size:.94rem;line-height:1.75;margin:6px 0;overflow-wrap:anywhere}
.diagnostic-page .diagnostic-study .study-paragraph ul{padding-left:22px}
.diagnostic-page .diagnostic-study .study-details{border-top:1px solid #e6dfd3;margin:10px 0}
.diagnostic-page .diagnostic-study .study-details>summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:.84rem;font-weight:650;color:#6e4d28}
.diagnostic-page .diagnostic-study .study-details .study-context{margin-top:4px}
.diagnostic-page .diagnostic-study .study-context-help{font-size:.82rem}
.diagnostic-page .diagnostic-study .study-anchor-return{width:100%;padding:7px 8px;font-size:.76rem;color:#755326;background:#faf3e5;text-align:left}
.diagnostic-page .diagnostic-study .study-lesson{background:#28292e;color:#f7f1e7;border-top:3px solid #d5ad62;border-radius:10px;padding:20px;margin-top:22px}
.diagnostic-page .diagnostic-study .study-lesson .study-eyebrow{color:#e0c28c}
.diagnostic-page .diagnostic-study .study-lesson h4{font-size:1.15rem;line-height:1.4;margin:9px 0}
.diagnostic-page .diagnostic-study .study-lesson p{font-size:.87rem;color:#e0dcd4;line-height:1.65}
.diagnostic-page .diagnostic-study .study-lesson button{width:100%;background:#eed092;color:#342b1e;border-color:#eed092;font-weight:750}
.diagnostic-page .diagnostic-study .study-lesson button:not(:disabled):is(:hover,:active){background:#f6dda8;color:#342b1e;border-color:#f6dda8}
.diagnostic-page .diagnostic-study .study-limit{font-size:.77rem;color:#756e65;margin:18px 0 0}
.diagnostic-page .diagnostic-study .study-class-jump{color:#8c2338;background:#fff6e5;border-color:#d2b77c;font-weight:700;margin-bottom:14px;width:100%}
.diagnostic-page button.lab-study-open{width:100%;margin-top:10px;background:#fff7e6;color:#684819;border:1px solid #bda274;font-size:.88rem;min-height:44px}
/* Guided reading reuses the saved variations; the board stays beside the active step. */
.diagnostic-page .diagnostic-study [hidden]{display:none!important}
.diagnostic-page .diagnostic-study .study-guide-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 22px;background:#fff;border-bottom:1px solid #ded6c8;flex:none}
.diagnostic-page .diagnostic-study .study-guide-steps button{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:650;font-size:.82rem}
.diagnostic-page .diagnostic-study .study-guide-steps button span{font-size:.7rem;border:1px solid currentColor;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;flex:none}
.diagnostic-page .diagnostic-study .study-guide-steps [aria-current=step]{background:#8e2339;border-color:#8e2339;color:#fff}
.diagnostic-page .diagnostic-study .study-guide-steps button:not([aria-current=step]):is(:hover,:active){background:#f7f0e4;border-color:#bca77f;color:#473b2d}
.diagnostic-page .diagnostic-study .study-guide-steps button[aria-current=step]:is(:hover,:active){background:#8e2339;border-color:#8e2339;color:#fff}
.diagnostic-page .diagnostic-study .study-guide-footer{display:flex;align-items:center;gap:10px;padding:12px 22px max(12px,env(safe-area-inset-bottom));border-top:1px solid #ded6c8;background:#fff;flex:none}
.diagnostic-page .diagnostic-study [data-study-guide-next]{background:#8e2339;border-color:#8e2339;color:#fff;font-weight:750;flex:1}
.diagnostic-page .diagnostic-study [data-study-free]{font-size:.76rem;color:#665b49;border-color:transparent;background:transparent}
.diagnostic-page .diagnostic-study .study-reading>[data-study-free]{display:block;width:100%;margin-top:14px}
.diagnostic-page .study-guided .study-line-choice label{display:none}
.diagnostic-page .diagnostic-study .study-line-label{flex:1;font-size:.83rem;color:#155c50}
.diagnostic-page .study-guided .study-board-wrap{width:min(100%,calc(100dvh - 500px),450px)}
.diagnostic-page .study-guided .study-reading h3{margin:5px 0 14px}
.diagnostic-page .study-guided .study-context{margin-bottom:12px}
.diagnostic-page .study-guided .study-lesson{margin:12px 0 20px}
.diagnostic-page .study-board-locked .study-arrows,.diagnostic-page .study-board-locked .study-moves{display:none}
.diagnostic-page .diagnostic-study [data-study-anchor]:not(:empty){margin-bottom:10px}
.diagnostic-page .lab-guided-entry{margin:14px 0;padding:20px;border:1px solid #d4bf91;border-radius:12px;background:#fbf6e9}
.diagnostic-page .lab-guided-entry h4{margin:0 0 8px;font-size:1.1rem;color:#6d2031}
.diagnostic-page .lab-guided-entry p{margin:8px 0;font-size:.92rem;line-height:1.65}
.diagnostic-page .lab-guided-entry .lab-study-open{background:#8e2339;color:#fff;border-color:#8e2339;font-weight:750}
.diagnostic-page .lab-free-explore>summary{cursor:pointer;padding:14px 0;font-weight:650;color:#5b544b;min-height:44px}
@media(max-width:739px){
 .diagnostic-page .diagnostic-study{width:100%;height:100dvh;border:0;border-radius:0}
 .diagnostic-page .diagnostic-study .study-header{padding:8px 12px;gap:8px}
 .diagnostic-page .diagnostic-study .study-header h2{font-size:.77rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .diagnostic-page .diagnostic-study .study-header>button{max-width:100px;font-size:.73rem;padding:8px}
 .diagnostic-page .diagnostic-study .study-layout{display:flex;flex-direction:column}
 .diagnostic-page .diagnostic-study .study-position{flex:none;border-right:0;border-bottom:1px solid #cfc5b3;padding:10px 12px 4px;gap:4px}
 .diagnostic-page .diagnostic-study .study-board-wrap{width:min(100%,32dvh,300px);padding-bottom:19px}
 .diagnostic-page .diagnostic-study .study-line-choice label{font-size:0}
 .diagnostic-page .diagnostic-study .study-line-choice select{font-size:.8rem}
 .diagnostic-page .diagnostic-study .study-current{font-size:.76rem;margin:4px 0}
 .diagnostic-page .diagnostic-study .study-moves{min-height:50px;padding:3px 1px}
 .diagnostic-page .diagnostic-study .study-moves button{min-height:40px}
 .diagnostic-page .diagnostic-study .study-reading{flex:1;padding:14px 18px 16px;scrollbar-gutter:auto}
 .diagnostic-page .diagnostic-study .study-reading h3{font-size:1.1rem;margin-bottom:14px}
 .diagnostic-page .diagnostic-study .study-guide-steps{gap:4px;padding:6px 10px}
 .diagnostic-page .diagnostic-study .study-guide-steps button{flex-direction:column;gap:2px;padding:5px 2px;font-size:.62rem;line-height:1.2;min-height:48px}
 .diagnostic-page .diagnostic-study .study-guide-steps button span{width:18px;height:18px;font-size:.62rem}
 .diagnostic-page .study-guided .study-board-wrap{width:min(100%,27dvh,260px)}
 .diagnostic-page .study-guided .study-line-label{font-size:.74rem}
 .diagnostic-page .study-guided .study-controls{display:grid;grid-template-columns:1fr auto;gap:4px}
 .diagnostic-page .study-guided .study-line-choice{grid-column:2;grid-row:1}
 .diagnostic-page .study-guided .study-line-label{display:none}
 .diagnostic-page .study-guided .study-current{grid-column:1;grid-row:1;align-self:center}
 .diagnostic-page .study-guided .study-arrows,.diagnostic-page .study-guided .study-moves{grid-column:1/-1}
 .diagnostic-page .study-guided .study-line-choice>button{min-height:36px;padding:5px 10px;font-size:.75rem}
 .diagnostic-page .study-guided .study-reading{padding:12px 16px}
 .diagnostic-page .diagnostic-study .study-guide-footer{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;padding:6px 10px max(6px,env(safe-area-inset-bottom))}
 .diagnostic-page .diagnostic-study .study-guide-footer button{font-size:.75rem;padding:8px}
 .diagnostic-page .diagnostic-study [data-study-free]{grid-column:1/-1;min-height:32px;padding:5px}
 .diagnostic-page .study-guided .study-class-jump{font-size:.76rem}
}
@media(max-height:540px) and (min-width:600px){
 .diagnostic-page .diagnostic-study{width:100%;height:100dvh;border-radius:0}
 .diagnostic-page .diagnostic-study .study-header{padding:5px 12px}
 .diagnostic-page .diagnostic-study .study-header .study-eyebrow{display:none}
 .diagnostic-page .diagnostic-study .study-layout{display:grid;grid-template-columns:1fr 1fr}
 .diagnostic-page .diagnostic-study .study-position{padding:6px 10px;gap:2px;display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.8fr);align-items:center}
 .diagnostic-page .diagnostic-study .study-board-wrap{width:100%;padding:0 2px 18px 16px}
 .diagnostic-page .diagnostic-study .study-controls{min-width:0}
 .diagnostic-page .diagnostic-study .study-line-choice{display:block}.diagnostic-page .diagnostic-study .study-line-choice>button{display:block;width:100%;margin-top:4px}
 .diagnostic-page .diagnostic-study .study-arrows{grid-template-columns:1fr 1fr}.diagnostic-page .diagnostic-study .study-arrows button{font-size:.72rem}
 .diagnostic-page .diagnostic-study .study-current{font-size:.7rem}.diagnostic-page .diagnostic-study .study-reading{padding:12px}
 .diagnostic-page .diagnostic-study .study-guide-steps{padding:3px 10px}
 .diagnostic-page .diagnostic-study .study-guide-steps button{flex-direction:row;min-height:36px}
 .diagnostic-page .study-guided .study-board-wrap{width:100%;max-width:calc(100dvh - 200px)}
 .diagnostic-page .study-guided .study-controls{display:block}
 .diagnostic-page .study-guided .study-line-label{display:none}
 .diagnostic-page .diagnostic-study .study-position{grid-template-rows:minmax(0,1fr) auto}
 .diagnostic-page .diagnostic-study .study-line-choice>button,.diagnostic-page .diagnostic-study .study-arrows button{min-height:36px;padding:6px 4px}
 .diagnostic-page .diagnostic-study .study-current{margin:4px 0}
 .diagnostic-page .diagnostic-study .study-moves{display:none}
 .diagnostic-page .study-guided .study-moves{display:none}
 .diagnostic-page .diagnostic-study .study-guide-footer{display:flex;padding:5px 10px}
 .diagnostic-page .diagnostic-study .study-guide-footer button{min-height:36px}
}
@media(max-width:599px) and (max-height:700px){
 .diagnostic-page .diagnostic-study .study-moves{display:none}
 .diagnostic-page .diagnostic-study .study-position{padding-bottom:10px}
 .diagnostic-page .study-guided .study-position{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:center;gap:8px}
 .diagnostic-page .study-guided .study-consult{min-height:36px;padding:6px 4px}
 .diagnostic-page .study-guided .study-consult span{display:none}
 .diagnostic-page .study-guided .study-board-wrap{width:100%}
 .diagnostic-page .study-guided .study-controls{display:grid;grid-template-columns:1fr 1fr;gap:4px}
 .diagnostic-page .study-guided .study-line-choice{grid-column:1;grid-row:1}
 .diagnostic-page .study-guided .study-line-choice>button{width:100%;padding:5px 2px}
 .diagnostic-page .study-guided .study-controls .study-consult{grid-column:2;grid-row:1;margin:0;padding:5px 2px;font-size:.66rem;min-height:40px}
 .diagnostic-page .study-guided .study-current{grid-column:1/-1;grid-row:2;font-size:.68rem;line-height:1.4}
 .diagnostic-page .study-guided .study-arrows{grid-template-columns:1fr 1fr}
 .diagnostic-page .study-guided .study-arrows button{font-size:.69rem;min-height:36px;padding:5px 3px}
 .diagnostic-page .study-guided .study-header .study-eyebrow{display:none}
 .diagnostic-page .diagnostic-study .study-guide-steps button{min-height:44px}
 .diagnostic-page .diagnostic-study .study-guide-steps button span{display:none}
}
/* Portrait tablets benefit from a broad board above a full-width reading pane. */
@media(min-width:1024px) and (min-height:541px),(min-width:740px) and (min-height:541px) and (orientation:landscape){
 .diagnostic-page .study-guided .study-board-wrap{width:min(100%,calc(100dvh - 440px),450px)}
 .diagnostic-page .study-guided .study-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}
 .diagnostic-page .study-guided .study-line-choice{grid-column:3;grid-row:1}
 .diagnostic-page .study-guided .study-line-label{display:none}
 .diagnostic-page .study-guided .study-current{grid-column:1;grid-row:1;align-self:center}
 .diagnostic-page .study-guided .study-controls .study-consult{grid-column:2;grid-row:1;width:auto;margin:0}
 .diagnostic-page .study-guided .study-consult span{display:none}
 .diagnostic-page .study-guided .study-arrows,.diagnostic-page .study-guided .study-moves{grid-column:1/-1}
}
@media(min-width:600px) and (max-width:1023px) and (min-height:701px) and (orientation:portrait){
 .diagnostic-page .diagnostic-study{width:100%;height:100dvh;border-radius:0;border:0}
 .diagnostic-page .diagnostic-study .study-layout{display:flex;flex-direction:column}
 .diagnostic-page .diagnostic-study .study-position{flex:none;display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:18px;padding:12px 24px;border-right:0;border-bottom:1px solid #ded6c8}
 .diagnostic-page .diagnostic-study .study-board-wrap{width:min(100%,40dvh,440px);margin:auto;padding-bottom:20px}
 .diagnostic-page .diagnostic-study .study-controls{display:flex;flex-direction:column;gap:10px}
 .diagnostic-page .diagnostic-study .study-line-choice{display:flex;flex-direction:column;align-items:stretch}
 .diagnostic-page .diagnostic-study .study-line-choice label{display:block;font-size:.78rem}
 .diagnostic-page .study-guided .study-line-choice label{display:none}
 .diagnostic-page .diagnostic-study .study-arrows{grid-template-columns:1fr 1fr}
 .diagnostic-page .diagnostic-study .study-moves{display:flex;max-width:190px}
 .diagnostic-page .diagnostic-study .study-reading{flex:1;padding:18px 28px}
 .diagnostic-page .diagnostic-study .study-reading h3{margin:0 0 10px}
}
.diagnostic-page .diagnostic-study .study-consult{margin-top:7px}
.diagnostic-page .diagnostic-study.study-board-locked :is(.study-moves,.study-arrows){display:none}
@media(max-width:599px) and (min-height:701px){
 .diagnostic-page .study-guided .study-controls{grid-template-columns:minmax(0,1fr) auto auto}
 .diagnostic-page .study-guided .study-line-choice{grid-column:3;grid-row:1}
 .diagnostic-page .study-guided .study-consult{grid-column:2!important;grid-row:1;margin-top:0;min-height:36px;font-size:.74rem;padding:5px 8px}
 .diagnostic-page .study-guided .study-consult span{display:none}
}
@media(max-width:739px){
 .diagnostic-page .diagnostic-study .study-reading h3{margin:0 0 10px}
 .diagnostic-page .diagnostic-study .study-paragraph{margin-bottom:12px}
 .diagnostic-page .diagnostic-study .study-paragraph p{line-height:1.6}
 .diagnostic-page .study-guided .study-consult{grid-column:1/-1}
}
@media(max-height:380px) and (min-width:600px){
 .diagnostic-page .diagnostic-study .study-moves{display:none}
 .diagnostic-page .diagnostic-study .study-line-choice label{font-size:0}
}
/* Keep the class return action outside its scrolling content on a landscape phone. */
@media(max-height:540px) and (max-width:1000px){
 .diagnostic-page #lab-class-dialog[open]{display:flex;flex-direction:column;gap:6px;position:fixed;inset:0;margin:0;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));width:100%;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;overflow:hidden;box-sizing:border-box}
 .diagnostic-page #lab-class-dialog>.lab-section-head{display:flex;flex:none;flex-wrap:nowrap;align-items:center;gap:12px;margin:0;padding:0 0 6px}
 .diagnostic-page #lab-class-dialog #lab-class-title{flex:1;min-width:0;max-width:none;font-size:1rem;line-height:1.3;margin:0;overflow-wrap:anywhere}
 .diagnostic-page #lab-class-close{flex:none;width:auto;min-height:44px;margin:0;font-size:.85rem}
 .diagnostic-page #lab-class-frame{flex:1;min-height:0;height:auto;max-height:none}
 .diagnostic-page #lab-class-link{flex:none;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:.83rem}
}
