.modal-upload-panel{padding:0;border:0;background:transparent;box-shadow:none}.upload-panel{display:grid;gap:14px}.upload-panel label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:600}.upload-panel .checkbox-option{display:flex;align-items:center;gap:9px;line-height:1.35}.upload-panel .checkbox-option input{width:18px;min-height:18px;flex:0 0 auto;padding:0}.upload-panel input,.upload-panel select{min-height:42px;padding:8px 10px}.upload-progress-card{display:grid;gap:4px;padding:12px;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-ink)}.upload-progress-card strong{font-size:.875rem;line-height:1.35}.upload-progress-card small{color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.4}.pipeline-list{display:grid;gap:.5rem;margin:18px 0;padding:0;list-style:none}.pipeline-step{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.625rem;padding:.625rem .75rem;border:1px solid var(--line-subtle);background:var(--surface-strong);color:var(--muted);font-size:.8125rem;font-weight:600}.pipeline-marker{display:inline-grid;place-items:center;inline-size:1.75em;block-size:1.75em;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--bg)}.pipeline-step.complete{color:var(--green)}.pipeline-step.complete .pipeline-marker{color:var(--good-on);border-color:var(--green);background:var(--green)}.pipeline-step.current{color:var(--ink);border-color:var(--accent-line);background:var(--accent-soft)}.pipeline-step.current .pipeline-marker{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg)}.pipeline-step.failed{color:var(--red);border-color:var(--danger-line)}.pipeline-step.failed .pipeline-marker{color:#fff;border-color:var(--red);background:var(--danger-bg)}.stats-layout{display:grid;gap:14px}.coach-tabs.stats-subnav{margin-bottom:0}.coach-tabs.stats-subnav button{min-height:36px;padding:0 12px;font-size:13px}.stats-section{display:grid;gap:14px}.stats-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.metric-card{min-height:74px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:none}.metric-card span{display:block;color:var(--muted);font-size:12px;font-weight:600}.metric-card strong{display:block;margin-top:7px;color:var(--accent-ink);font-size:26px;line-height:1}.stats-table{display:grid;gap:6px}.stats-opening-group{display:grid;gap:5px}.stats-opening-summary,.stats-row{display:grid;grid-template-columns:minmax(260px,1fr) 90px 90px minmax(120px,.45fr);gap:10px;align-items:center;min-height:48px;padding:10px 12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);font-size:13px;font-weight:600;text-align:left}.stats-opening-summary{min-height:58px;border-color:var(--accent-line);background:var(--accent-soft);color:var(--ink)}.stats-opening-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.stats-row.header{color:var(--ink);background:var(--well);font-size:12px;text-transform:uppercase}.stats-row.puzzle-sets{grid-template-columns:minmax(220px,1fr) 90px 90px 70px 80px minmax(100px,.35fr)}.puzzle-stats-set-group{display:grid;gap:6px}.stats-set-name-button{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:center;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.stats-set-name-button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-disclosure{display:grid;width:22px;height:22px;place-items:center;border:1px solid var(--accent-line);border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);font-size:15px;line-height:1}.puzzle-stats-drilldown{max-height:560px;overflow:auto;padding:8px 8px 10px 20px;border-left:3px solid color-mix(in srgb,var(--accent) 32%,transparent);scrollbar-gutter:stable}.stats-row.puzzle-details{grid-template-columns:minmax(190px,1fr) 100px 90px 80px 110px minmax(100px,.35fr);min-height:44px;background:var(--well)}.stats-row.puzzle-details.header{position:sticky;z-index:1;top:0;background:var(--surface-strong)}.stats-row.tournament-rows{grid-template-columns:minmax(200px,1fr) 140px 80px 110px 110px minmax(90px,.3fr)}.line-history-row.active,.stats-row.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);color:var(--ink)}.line-history-panel{display:grid;gap:12px}.line-history-row{grid-template-columns:minmax(240px,1fr) 80px 90px 110px}.metric-card.neutral strong,.stats-opening-summary.no-attempts span:last-child,.stats-row.no-attempts span:last-child{color:var(--muted)}.stats-opening-lines{display:grid;gap:4px;padding-left:12px;border-left:3px solid color-mix(in srgb,var(--accent) 32%,transparent)}.stats-line-entry{display:grid;gap:5px}.stats-line-name-button{min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.stats-line-name-button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-games-toggle{display:grid;gap:2px;min-width:0;width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--accent-ink);font:inherit;text-align:left}.stats-games-toggle[aria-expanded=true]{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft)}.stats-games-toggle small,.stats-games-toggle span,.stats-line-games-empty{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-games-toggle small,.stats-line-games-empty{color:var(--muted);font-size:11px;font-weight:600}.stats-line-history-inline{padding:4px 0 8px 10px;border-left:3px solid color-mix(in srgb,var(--blue) 30%,transparent)}.stats-opening-title{display:grid;min-width:0;gap:3px}.stats-opening-summary span,.stats-opening-title small,.stats-opening-title strong,.stats-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-opening-title strong{color:var(--ink);font-size:14px}.stats-opening-title small{color:var(--muted);font-size:12px;font-weight:600}.student-desk{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:18px;align-items:start;height:100%;min-height:0;width:100%}.student-desk.minimal{grid-template-columns:minmax(0,1fr)}.student-desk .board-zone,.student-desk .line-editor,.student-desk .queue-panel,.student-desk .workspace-panel{min-width:0}.student-desk .queue-panel{align-self:stretch;overflow:auto}.student-line-workspace{--student-practice-board-size:clamp(300px,min(52vw,calc(100dvh - 315px)),540px);--student-quiz-board-size:clamp(300px,min(50vw,calc(100dvh - 300px)),520px);align-self:start}.student-line-header{justify-content:space-between;flex-wrap:wrap}.student-line-summary{max-width:72ch;margin:-6px 0 16px}.student-line-layout{display:grid;grid-template-columns:minmax(340px,var(--student-practice-board-size)) minmax(280px,1fr);gap:18px;align-items:start}.student-line-layout .board-zone{display:grid;align-content:start;gap:10px}.student-practice-board,.student-quiz-renderer{justify-self:center}.student-line-layout .move-strip-compact,.student-practice-board{width:min(100%,var(--student-practice-board-size))}.student-line-layout .move-strip-compact{justify-self:center}.student-practice-board .board-frame,.student-quiz-renderer .board-frame{padding:clamp(4px,.7vw,8px)}.student-line-notes{align-self:start}.student-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;min-width:min(280px,100%);padding:4px;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--accent-well)}.student-mode-tabs button{min-height:38px;border:0;border-radius:6px;color:var(--accent-ink);background:transparent;font-weight:600}.student-mode-tabs button.active{color:var(--accent-on);background:var(--accent-bg)}.student-engine-layout,.student-quiz-layout{display:grid;grid-template-columns:minmax(320px,var(--student-quiz-board-size)) minmax(220px,1fr);gap:18px;align-items:start}.student-quiz-board{position:relative}.student-engine-board,.student-quiz-board{width:min(100%,var(--student-quiz-board-size));min-width:0;justify-self:center}.student-engine-board{display:grid;gap:10px}.student-quiz-renderer.board-renderer.focus{width:min(100%,var(--student-quiz-board-size))}.student-quiz-board.incorrect .board-frame{animation:quiz-board-shake .36s ease-in-out}.quiz-check-popup{position:absolute;top:50%;left:50%;display:grid;width:76px;height:76px;place-items:center;border:3px solid rgba(255,255,255,.92);border-radius:999px;color:var(--good-on);background:color-mix(in srgb,var(--green) 96%,transparent);box-shadow:0 16px 34px rgba(0,0,0,.35);font-size:42px;font-weight:600;line-height:1;pointer-events:none;transform:translate(-50%,-50%) scale(.76);animation:quiz-check-pop .68s ease both}.student-quiz-status{display:grid;gap:10px;min-width:0;padding:14px;border-left:4px solid var(--blue);background:var(--info-well)}.student-engine-status{display:grid;gap:12px;min-width:0;padding:14px;border-left:4px solid var(--accent);background:var(--accent-well)}.engine-provider-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.engine-provider-tabs button{min-height:38px;border:0;border-radius:6px;color:var(--accent-ink);background:transparent;font-weight:600}.engine-provider-tabs button.active{color:var(--accent-on);background:var(--accent-bg)}.student-engine-status ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.student-engine-status li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--accent-line);color:var(--muted);font-weight:600}.student-engine-status li strong{color:var(--ink)}.board-bridge-status{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:3px 8px;align-items:center;min-height:38px;padding:8px 10px;border:1px solid var(--info-line);border-radius:var(--radius);background:var(--info-well);color:var(--muted)}.board-bridge-status span{width:9px;height:9px;border-radius:999px;background:var(--muted)}.board-bridge-status.connected span{background:var(--green)}.board-bridge-status.disconnected span,.board-bridge-status.error span,.board-bridge-status.unsupported span{background:var(--gold)}.board-bridge-status strong{color:var(--ink);font-size:12px;line-height:1.2}.board-bridge-status small{grid-column:2;color:var(--muted);font-size:12px;font-weight:600;line-height:1.25}.board-bridge-status button{grid-column:3;grid-row:1/span 2;align-self:center;min-height:28px;padding:0 10px;border:1px solid var(--info-line);border-radius:6px;background:var(--surface-strong);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.board-bridge-actions{grid-column:3;grid-row:1/span 2;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}.board-bridge-status .board-bridge-actions button{grid-column:auto;grid-row:auto}.board-bridge-status button:disabled{cursor:progress;opacity:.68}.student-quiz-status h3,.student-quiz-status p{margin:0}.student-quiz-status h3{font-size:22px;line-height:1.15}.student-quiz-status p:not(.eyebrow){color:var(--muted);font-weight:600;line-height:1.35}.student-quiz-status p.correct{color:var(--green)}.student-quiz-status p.incorrect{color:var(--red)}.continuation-layout{display:grid;grid-template-columns:minmax(340px,var(--student-practice-board-size)) minmax(280px,1fr);gap:18px;align-items:start}.continuation-board-zone{display:grid;align-content:start;justify-items:center}.continuation-board{width:min(100%,var(--student-practice-board-size));justify-self:center}.continuation-game-rail,.continuation-panel,.continuation-recap{display:grid;gap:12px;min-width:0}.continuation-panel{padding:14px 0 0;border-top:1px solid var(--line-subtle)}.continuation-nudge{display:grid;gap:10px;padding:12px;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--info-well)}.continuation-nudge h3{margin:0;font-size:20px;line-height:1.15}.continuation-panel h3,.continuation-recap h3{margin:0;font-size:21px;line-height:1.15}.continuation-actions,.continuation-opponent-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.continuation-opponent-picker{padding:4px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.opponent-option{min-height:42px;border:1px solid transparent;border-radius:calc(var(--radius) - 2px);color:var(--muted);background:transparent;font-weight:600}.opponent-option.selected{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg);box-shadow:0 8px 14px rgba(0,0,0,.22)}.continuation-settings summary:focus-visible,.opponent-option:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.continuation-actions button,.continuation-finish,.continuation-start{width:100%}.continuation-chip-row,.continuation-stats-preview{display:flex;flex-wrap:wrap;gap:6px}.continuation-chip-row span,.continuation-stats-preview span{min-height:28px;padding:6px 8px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:12px;font-weight:600;line-height:1}.continuation-settings{padding:10px 0;border-top:1px solid var(--line-subtle);border-bottom:1px solid var(--line-subtle)}.continuation-settings summary{display:inline-flex;width:fit-content;border-radius:6px;color:var(--muted);cursor:pointer;font-weight:600}.continuation-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.continuation-settings label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:600}.continuation-settings input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;color:var(--ink);background:var(--surface-strong);font-weight:600}.continuation-empty-moves,.continuation-move-table{max-height:240px;overflow:auto;padding:8px 0;border-top:1px solid var(--line-subtle);border-bottom:1px solid var(--line-subtle)}.continuation-empty-moves{margin:0;color:var(--ink);font-size:13px;font-weight:600}.continuation-scoresheet td,.continuation-scoresheet th{padding:5px 6px}.continuation-scoresheet-cell{color:var(--ink);font-size:13px;font-weight:600}.continuation-scoresheet-cell.empty{color:var(--muted);font-weight:600}.continuation-scoresheet-cell.opponent span{color:var(--ink-3)}.continuation-error{margin:0;color:var(--red);font-size:13px;font-weight:600;line-height:1.35}.past-games-panel{display:grid;gap:12px;padding:14px 0 0;border-top:1px solid var(--line-subtle)}.past-games-panel.stats{padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.past-games-heading{display:flex;gap:12px;align-items:start;justify-content:space-between}.past-games-heading h3{margin:0;color:var(--ink);font-size:18px;line-height:1.2}.past-games-open-line{width:fit-content;white-space:nowrap}.past-games-summary{display:flex;flex-wrap:wrap;gap:6px}.past-games-summary span{min-height:28px;padding:6px 8px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:12px;font-weight:600;line-height:1}.past-games-empty{margin:0;color:var(--muted);font-size:13px;font-weight:600;line-height:1.4}.past-games-content{display:grid;gap:10px}.past-games-panel.stats .past-games-content{grid-template-columns:minmax(220px,.72fr) minmax(430px,1.28fr);align-items:start}.past-games-list{display:grid;gap:6px}.past-game-row{display:grid;gap:4px;min-height:54px;padding:9px 10px;border:1px solid var(--line-subtle);border-radius:var(--radius);color:var(--muted);background:var(--surface-strong);font-size:12px;font-weight:600;text-align:left}.past-game-row.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft)}.past-game-row small,.past-game-row strong{display:block}.past-game-detail p,.past-game-row strong{color:var(--ink);font-weight:600}.online-game-row strong{color:var(--blue)}.online-game-row.active strong{color:var(--accent-ink)}.past-game-detail{display:grid;gap:8px;min-width:0}.past-game-detail p{margin:0;font-size:13px;line-height:1.35}.online-game-deviation{display:grid;gap:4px;padding:10px;border:1px solid color-mix(in srgb,var(--danger-bg) 40%,transparent);border-radius:var(--radius);color:var(--ink);background:color-mix(in srgb,var(--danger-bg) 12%,transparent);font-size:13px;font-weight:600;line-height:1.35}.online-game-link{width:fit-content}.past-game-replay{--past-game-board-size:min(100%,390px);display:grid;gap:8px;width:100%}.past-games-panel.stats .past-game-replay{--past-game-board-size:min(100%,clamp(360px,min(34vw,calc(100dvh - 305px)),440px))}.past-game-replay-layout{display:grid;grid-template-columns:minmax(320px,var(--past-game-board-size)) minmax(220px,1fr);gap:10px;align-items:start}.past-game-board{justify-self:start;width:var(--past-game-board-size)}.past-game-move-table{display:grid;gap:6px;align-self:stretch;width:100%;max-height:var(--past-game-board-size);min-height:0;overflow:auto;padding:6px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--well-2);scrollbar-gutter:stable}.past-game-move-button,.past-game-start-button{width:100%;min-height:28px;padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:var(--surface-strong);font-size:12px;font-weight:600}.past-game-move-button.active,.past-game-start-button.active{border-color:var(--accent);color:var(--accent-on);background:var(--accent-bg)}.past-game-scoresheet td,.past-game-scoresheet th{padding:4px}.past-game-scoresheet .past-game-number-column{width:2.4rem}.past-game-scoresheet .past-game-move-column{width:calc((100% - 2.4rem) / 2)}.past-game-scoresheet th{font-size:10px}.past-game-scoresheet thead th:last-child{width:auto;text-align:left}.past-game-move-cell.empty{color:var(--muted);font-size:12px;font-weight:600}.past-game-board .board-frame{padding:clamp(4px,.7vw,7px)}@keyframes quiz-board-shake{0%,to{transform:translateX(0)}18%{transform:translateX(-8px)}36%{transform:translateX(7px)}54%{transform:translateX(-5px)}72%{transform:translateX(3px)}}@keyframes quiz-check-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}56%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.92)}}@media (prefers-reduced-motion:reduce){.chess-board-shell [data-piece],.stockfish-eval-track span{transition-duration:1ms!important}.board-turn-indicator.your-turn .turn-dot,.quiz-check-popup,.student-quiz-board.incorrect .board-frame{animation-duration:1ms!important}}@media (max-width:1100px){:root{--board-control-offset:0px}.coach-grid,.continuation-layout,.student-desk,.student-engine-layout,.student-line-layout,.student-quiz-layout,.workspace-grid{grid-template-columns:1fr}.student-line-workspace{--student-practice-board-size:clamp(280px,min(78vw,calc(100dvh - 330px)),500px);--student-quiz-board-size:clamp(280px,min(78vw,calc(100dvh - 300px)),500px)}.coach-grid>.workspace-panel{--coach-board-size:clamp(280px,min(78vw,calc(100dvh - 330px)),500px)}.coach-grid>.workspace-panel,.student-desk>.workspace-panel{order:-1}.manage-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.opening-flow-body{grid-template-columns:minmax(0,1fr)}.opening-explanation-fields{grid-template-columns:1fr}.opening-explanation-field:nth-child(5),.opening-explanation-field:nth-child(7){grid-column:auto}.external-game-form{grid-template-columns:minmax(0,1fr)}.stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-row{grid-template-columns:minmax(220px,1fr) 70px 80px minmax(110px,.45fr)}.line-history-row{grid-template-columns:minmax(220px,1fr) 70px 80px 100px}.past-games-panel.stats .past-games-content{grid-template-columns:1fr}.past-game-replay-layout{grid-template-columns:minmax(300px,var(--past-game-board-size)) minmax(220px,1fr)}.workspace-grid>.line-editor>.move-explainer-card,.workspace-grid>.line-editor>.move-strip{max-height:none;overflow-y:visible;scrollbar-gutter:auto}}@media (max-width:720px){.app-shell,.role-shell{padding:14px}.continuation-actions,.continuation-opponent-picker,.continuation-settings-grid,.role-choice-grid{grid-template-columns:1fr}.manage-summary,.stats-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading,.topbar,.workspace-header{align-items:flex-start;flex-direction:column}.topbar{gap:10px;margin-bottom:12px;padding-bottom:12px}.topbar .brand-mark{width:36px;height:36px}.coach-tabs{gap:6px;margin-bottom:12px}.coach-tabs a,.coach-tabs button{min-height:36px;padding:0 10px}.manage-opening-header{grid-template-columns:minmax(0,1fr)}.opening-cluster-grid,.opening-health-grid,.opening-library-grid{grid-template-columns:1fr}.opening-detail-header{align-items:flex-start;flex-direction:column}.opening-flow-body{min-height:420px}.opening-detail-actions,.opening-exception-actions,.opening-exception-chips{justify-content:flex-start}.opening-exception-row{grid-template-columns:minmax(0,1fr);align-items:start}.external-game-heading{display:grid}.manage-line-actions,.manage-opening-actions{justify-content:flex-start}.manage-line-table{overflow:visible}.manage-line-row{grid-template-columns:minmax(0,1fr);gap:8px;min-width:0;align-items:start}.manage-line-row.header{display:none}.bulk-toolbar{width:100%;justify-content:flex-start;margin-left:0}.practice-evidence-header{align-items:stretch;flex-direction:column}.move-explainer-header,.move-explainer-source-row{display:grid}.practice-evidence-strip{grid-template-columns:1fr}.practice-evidence-row,.practice-evidence-strip span{grid-template-columns:1fr;gap:3px}.stats-table{overflow-x:auto}.stats-opening-summary,.stats-row{min-width:560px}.puzzle-detail-table{overflow-x:auto}.stats-row.puzzle-details{min-width:690px}.line-history-row{min-width:520px}.past-games-heading{display:grid}.past-game-replay-layout{grid-template-columns:1fr}.past-game-board{justify-self:center}.past-game-move-table{max-height:260px}}.hub-rail-head h2,.manage-heading h2,.queue-heading h2,.role-panel h1,.section-heading h2,.student-line-header h2,.topbar h1,.workspace-header h2{font-family:var(--font-display);font-weight:var(--display-700);letter-spacing:-.02em}.eyebrow{color:var(--accent-ink);letter-spacing:.06em}.eyebrow.danger{color:var(--red)}.topbar-sub{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:12px}.avatar-chip{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:999px;color:var(--accent-on);background:var(--accent-bg)}.wb-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap}.wb-pill-good{color:var(--good);background:var(--good-soft)}.wb-pill-info{color:var(--info);background:var(--info-soft)}.wb-pill-warn{color:var(--warn);background:var(--warn-soft)}.wb-pill-danger{color:var(--red);background:var(--red-soft)}.wb-pill-accent{color:var(--accent-ink);background:var(--accent-soft)}.wb-pill-muted{color:var(--muted);background:var(--chip)}.wb-pill.wb-pill-outline{background:transparent;border-color:currentColor}.wb-ring{flex:0 0 auto}.wb-ring-label{font-family:var(--font-ui);font-size:11px;font-weight:700;fill:var(--ink)}.queue-controls{display:grid;gap:8px;margin-bottom:12px}.queue-search{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);color:var(--ink);font-size:13px;font-weight:600;outline:none}.queue-search:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-soft)}.queue-filter{display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.queue-filter button{flex:1 1;padding:6px 4px;border:1px solid transparent;border-radius:7px;color:var(--muted);background:transparent;font-size:12px;font-weight:700;cursor:pointer}.queue-filter button.active{color:var(--accent-on);background:var(--accent-bg)}.hub-rail{gap:var(--pad-2)}.hub-rail-head{display:grid;gap:4px}.hub-rail-head h2{margin:0;font-size:21px;line-height:1.05}.hub-rail-idea{margin:2px 0 0;color:var(--ink-2);font-size:12.5px;font-weight:500;line-height:1.45}.hub-rail-goal{margin:2px 0 0}.hub-rail-goal,.practice-pace-hint{color:var(--accent-ink);font-size:12.5px;font-weight:600;line-height:1.45}.practice-pace-hint{margin:4px 0 0}.practice-pace-resume{border:1px solid var(--accent-ink);border-radius:999px;background:transparent;color:var(--accent-ink);font:inherit;font-size:12px;padding:1px 10px;cursor:pointer}.practice-pace-resume:hover{background:var(--accent-ink);color:var(--panel)}.hub-rail-subhead{margin:0;color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.hub-back{justify-self:start;min-height:0;padding:6px 11px;color:var(--accent-ink)}.hub-rail-list{align-content:start;min-height:0;overflow-y:auto;padding-right:2px}.hub-rail-list,.today-section{display:grid;gap:6px}.today-section+.today-section{margin-top:8px}.today-section-list{display:grid;gap:6px}.plan-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease}.plan-row:hover{border-color:var(--accent-line)}.plan-row.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.plan-row-copy{display:grid;gap:3px;min-width:0}.plan-row-copy strong{color:var(--ink);font-size:14px;font-weight:700}.plan-row-copy small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.plan-row.active .plan-row-copy small{color:var(--accent-ink)}.miss-card{display:grid;gap:8px;padding:var(--pad-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--red-soft)}.miss-card.active{border-color:var(--accent)}.miss-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.miss-card-head small{color:var(--muted);font-size:11px;font-weight:700}.miss-card-title{color:var(--ink);font-size:14px;font-weight:700;line-height:1.3}.miss-card-opening{color:var(--muted);font-size:11.5px;font-weight:600}.miss-card-detail{margin:0;color:var(--ink-2);font-size:12.5px;font-weight:500;line-height:1.45}.miss-card .primary-action{width:fit-content}.repair-goals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.repair-goal{display:grid;gap:3px;min-width:0}.repair-goal-count{color:var(--ink);font-size:15px;font-weight:800;line-height:1.1}.repair-goal.done .repair-goal-count{color:var(--green,#4ade80)}.repair-goal-label{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.repair-goal-bar{display:block;height:4px;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}.repair-goal-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.repair-goal.done .repair-goal-bar>span{background:var(--green,#4ade80)}.repair-goals.compact{gap:8px}.repair-goals.compact .repair-goal-count{font-size:13px}.repair-goals.compact .repair-goal-label{font-size:9.5px}.student-missed-games{display:grid;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.student-missed-games .eyebrow{margin:0}.missed-games-note{margin:0;color:var(--muted);font-size:12.5px;font-weight:500}.missed-games-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.missed-game-row{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--red-soft)}.missed-game-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.missed-game-meta strong{color:var(--ink);font-size:12.5px;font-weight:700}.missed-game-meta small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.missed-game-moves{color:var(--ink-2);font-size:12.5px;font-weight:500}.missed-game-moves .missed-game-played{color:var(--red)}.missed-game-moves .missed-game-book{color:var(--green,#4ade80)}.missed-game-link{justify-self:start;color:var(--accent-ink);font-size:12px;font-weight:700;text-decoration:none}.missed-game-link:hover{text-decoration:underline}.student-line-headline{display:flex;align-items:center;gap:14px;min-width:0}.student-line-header-actions{display:grid;justify-items:end;gap:8px;flex-shrink:0}.whynow-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:var(--pad-3);padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--red-soft)}.whynow-banner-label{flex:0 0 auto;margin-top:1px;color:var(--red);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.whynow-banner-copy{color:var(--ink);font-size:13px;font-weight:600;line-height:1.45}.whynow-banner-copy em{color:var(--muted);font-style:normal}h1,h2,h3,h4{font-weight:800!important}.move-strip .move-token,.move-strip-compact .move-token{background:var(--surface-strong);color:var(--ink)}.move-strip .move-token.annotated,.move-strip-compact .move-token.annotated{background:var(--accent-soft);color:var(--accent-ink)}.move-strip .move-token.active,.move-strip-compact .move-token.active{background:var(--accent);color:var(--accent-on)}.topbar-tabbed{flex-wrap:wrap}.hub-topbar-tabs{display:flex;align-self:stretch;flex-wrap:wrap;gap:2px;margin-bottom:-18px}.hub-topbar-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:46px;padding:0 12px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:13.5px;font-weight:600;transition:color .16s ease,border-color .16s ease}.hub-topbar-tabs button:not(:disabled):hover{color:var(--ink)}.hub-topbar-tabs button.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.hub-tab-count{padding:3px 7px;border-radius:999px;background:var(--chip);color:var(--ink-2);font-size:11px;font-weight:600;line-height:1}.hub-topbar-tabs button.active .hub-tab-count{background:var(--accent-soft);color:var(--accent-ink)}@media (max-width:720px){.hub-topbar-tabs{margin-bottom:-12px}.hub-topbar-tabs button{min-height:40px;padding:0 10px}}.line-workspace-panel .workspace-grid.board-max-workspace{grid-template-columns:minmax(300px,var(--coach-board-size,.92fr)) minmax(340px,1fr);grid-template-areas:"board explainer" "extras extras";align-items:start}.workspace-grid.board-max-workspace>.board-zone{grid-area:board}.workspace-grid.board-max-workspace>.line-editor{position:sticky;top:12px;grid-area:explainer;align-self:start;min-width:0}.line-workspace-panel .workspace-grid.board-max-workspace>.line-editor>.move-explainer-card{max-height:max(190px,calc(100vh - 140px));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.workspace-grid.board-max-workspace>.workspace-extras{display:grid;grid-area:extras;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px;align-items:start;min-width:0}.workspace-extras-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--panel-shadow)}.workspace-extras-card>.past-games-panel{padding-top:0;border-top:0}.coach-grid>.line-workspace-panel{--coach-board-size:max(clamp(340px,min(42vw,calc(100dvh - 235px)),600px),calc(100vh - 230px))}.coach-grid.queue-collapsed{grid-template-columns:40px minmax(0,1fr)}.queue-heading.collapsible{grid-template-columns:minmax(0,1fr) auto;align-items:start}.queue-heading.collapsible>.bulk-toolbar{grid-column:1/-1}.queue-collapse-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 auto;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:14px;line-height:1;cursor:pointer}.queue-collapse-toggle:focus-visible,.queue-collapse-toggle:hover{border-color:var(--accent);color:var(--accent)}.queue-panel.queue-panel-collapsed{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:10px;justify-items:center;min-height:260px;padding:8px 4px}.queue-panel-collapsed .queue-collapsed-count{min-width:24px;padding:3px 5px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:11px;font-weight:700;line-height:1.2;text-align:center}.queue-panel-collapsed .queue-collapsed-title{overflow:hidden;max-height:100%;min-width:0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;writing-mode:vertical-rl}@media (max-width:1100px){.coach-grid.queue-collapsed{grid-template-columns:minmax(0,1fr)}.queue-panel.queue-panel-collapsed{grid-template-columns:auto auto minmax(0,1fr);grid-template-rows:none;align-items:center;justify-items:start;min-height:0;padding:8px 10px}.queue-panel-collapsed .queue-collapsed-title{max-height:none;max-width:100%;writing-mode:horizontal-tb}}@media (max-width:1024px){.line-workspace-panel .workspace-grid.board-max-workspace{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "explainer" "extras"}.workspace-grid.board-max-workspace>.line-editor{position:static}.line-workspace-panel .workspace-grid.board-max-workspace>.line-editor>.move-explainer-card{max-height:none;overflow-y:visible;scrollbar-gutter:auto}.workspace-grid.board-max-workspace>.workspace-extras{grid-template-columns:minmax(0,1fr)}}.student-line-layout.student-practice-layout{--sd-gap:18px;--sd-idea-min:300px;--sd-board-cap:max(360px,calc(100vh - 250px));display:grid;grid-template-columns:minmax(0,min(calc(100% - var(--sd-idea-min) - var(--sd-gap)),var(--sd-board-cap))) minmax(var(--sd-idea-min),1fr);grid-template-areas:"board idea" "support support";gap:var(--sd-gap);align-items:start}.student-practice-layout>.board-zone{grid-area:board}.student-practice-layout>.student-idea-panel{grid-area:idea;align-self:start;min-width:0}.student-practice-layout>.student-support-notes{grid-area:support}.student-practice-layout .move-strip-compact,.student-practice-layout .student-practice-board{width:100%}.student-idea-panel .teaching-card-block{gap:12px;padding:18px 20px;border:1px solid var(--accent-line);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.student-idea-panel .teaching-card-block .eyebrow{color:var(--accent)}.student-idea-panel .teaching-card-block h3{color:var(--accent);font-size:19px;line-height:1.35}.student-idea-panel .teaching-card-block p{color:var(--ink);font-size:15px;line-height:1.55}.student-support-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;min-width:0}.student-support-notes>.practice-evidence{grid-column:1/-1}@media (min-width:1101px){.student-line-workspace{--student-quiz-board-size:clamp(320px,min(52vw,calc(100vh - 250px)),960px)}}@media (max-width:1100px){.student-line-layout.student-practice-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "idea" "support"}.student-support-notes{grid-template-columns:minmax(0,1fr)}.student-practice-layout .move-strip-compact,.student-practice-layout .student-practice-board{justify-self:center;width:min(100%,calc(100vh - 250px))}}.student-sim-game{--student-practice-board-size:clamp(340px,min(60vw,calc(100dvh - 300px)),700px);align-self:start}.student-sim-game .continuation-layout{grid-template-columns:minmax(340px,var(--student-practice-board-size)) minmax(280px,400px);justify-content:center}.student-sim-start{display:grid;gap:12px;width:100%;max-width:620px;margin-inline:auto;align-content:start}.student-sim-start p{color:var(--ink-2);margin:0}.sim-persona-style{color:var(--muted);font-size:13px}.sim-move-list{max-height:320px;overflow-y:auto}.student-sim-play-tab{display:grid;gap:14px}.sim-mode-tabs{justify-self:center}.student-sim-tournament{display:grid;gap:16px;width:100%;max-width:760px;margin-inline:auto;align-content:start}.sim-standings-table{border-collapse:collapse;width:100%;font-size:13.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sim-standings-table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:600;padding:8px 12px 6px;border-bottom:1px solid var(--line)}.sim-standings-table td{padding:8px 12px;border-bottom:1px solid var(--line-subtle)}.sim-standings-table tr.you td{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.sim-round-pairings ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sim-round-pairings li{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--well);border:1px solid var(--line-subtle);border-radius:var(--radius-sm);padding:9px 13px;font-size:13.5px}.sim-round-pairings em{color:var(--muted);font-style:normal;font-size:12px}.sim-pairing-result{margin-left:10px;font-family:var(--font-mono,ui-monospace,monospace);font-weight:600;color:var(--ink-2)}.sim-play-button{white-space:nowrap}.sim-board-wrap{position:relative}.sim-board-wrap,.sim-player-bar{width:min(100%,var(--student-practice-board-size));justify-self:center}.sim-player-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px;font-size:13.5px}.sim-player-name{font-weight:600}.sim-clock{font-family:var(--font-mono,ui-monospace,monospace);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;background:var(--well);border:1px solid var(--line);border-radius:var(--radius-sm);padding:3px 11px;color:var(--ink-2)}.sim-player-bar.active .sim-clock{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-soft)}.sim-clock.low{color:var(--red)}.sim-promotion-picker{position:absolute;inset:0;display:grid;place-content:center;gap:10px;background:rgba(11,16,27,.82);border-radius:8px;text-align:center;z-index:10}.sim-promotion-picker p{margin:0;color:var(--ink);font-weight:600}.sim-promotion-options{display:flex;gap:8px;justify-content:center}.sim-promotion-options button{font-size:34px;line-height:1;padding:8px 12px;background:var(--surface-strong);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);cursor:pointer}.sim-promotion-options button:focus-visible,.sim-promotion-options button:hover{border-color:var(--accent);outline:none}.student-sim-start .continuation-settings-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:600}.student-sim-start .continuation-settings-grid label:first-of-type{grid-column:1/-1}.student-sim-start input,.student-sim-start select{width:100%;min-height:40px;padding:8px 12px;color:var(--ink);font-size:14px;font-weight:500;background:var(--well);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.student-sim-start input:focus-visible,.student-sim-start select:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.student-sim-start select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%238792ad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.student-sim-start input[type=number]{appearance:textfield;-moz-appearance:textfield}.student-sim-start input[type=number]::-webkit-inner-spin-button,.student-sim-start input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.sim-rating-hint{grid-column:1/-1;margin:0;color:var(--muted);font-size:12px}.sim-book-marker{margin:2px 0 8px;padding:8px 11px;font-size:12.5px;line-height:1.4;color:var(--info,#9cc2f0);background:var(--info-soft,#1b2a45);border:1px solid var(--info-line,#2c4066);border-radius:var(--radius-sm)}.coverage-map-node{display:grid;gap:7px;align-content:center;width:100%;min-height:84px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;background:var(--surface-strong);box-shadow:var(--panel-shadow);cursor:pointer}.coverage-map-node:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.react-flow__node.selected .coverage-map-node{outline:2px solid var(--accent);outline-offset:2px}.coverage-map-node-row{display:flex;gap:8px;align-items:baseline;justify-content:space-between;min-width:0}.coverage-map-node-row strong{overflow:hidden;color:var(--ink);font-size:.95rem;font-weight:700;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.coverage-map-node-row small{flex:none;color:var(--muted);font-size:.78rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.coverage-map-node-expand{display:inline-flex;flex:none;width:22px;height:22px;align-items:center;justify-content:center;align-self:center;padding:0;border:1px solid var(--line);border-radius:6px;color:var(--muted);background:var(--surface);font-size:.72rem;line-height:1;cursor:pointer}.coverage-map-node-expand:focus-visible,.coverage-map-node-expand:hover{border-color:var(--accent);color:var(--accent)}.coverage-map-node-bar{display:block;height:7px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.coverage-map-node-bar i{display:block;height:100%;border-radius:999px;background:var(--good)}.coverage-map-node[data-state=weak]{border-color:var(--red);background:var(--red-soft)}.coverage-map-node[data-state=weak] .coverage-map-node-row small{color:var(--red)}.coverage-map-node[data-celebrated]{border-color:var(--good);background:var(--good-soft)}.coverage-map-node[data-celebrated] .coverage-map-node-row small{color:var(--good);font-size:.95rem}.coverage-map-node.trunk{min-height:84px;padding:12px 18px;border-color:var(--line);border-radius:18px;background:var(--surface-strong)}.coverage-map-node.trunk .coverage-map-node-row strong{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;line-clamp:2}.coverage-map-node-mistakes{justify-self:start;min-height:20px;padding:4px 8px;border-radius:999px;color:var(--red);background:var(--red-soft);font-size:.68rem;font-weight:700;line-height:1}.coverage-map-node[data-state=weak] .coverage-map-node-mistakes{background:var(--surface-strong)}.coverage-progress{display:block;height:10px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.coverage-progress i{display:block;height:100%;border-radius:999px;background:var(--good);transition:width .24s ease}.coverage-mastered-chip{align-self:start;padding:6px 12px;border:1px solid var(--good);border-radius:999px;color:var(--good);background:var(--good-soft);font-size:.78rem;font-weight:700}.coverage-map-legend{display:flex;flex-wrap:wrap;gap:8px}.coverage-map-legend span{display:inline-flex;min-height:28px;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-strong);color:var(--muted);font-size:.76rem;font-weight:600}.coverage-map-legend span:before{flex:none;width:10px;height:10px;border-radius:999px;content:""}.coverage-map-legend span[data-state=strong]:before{background:var(--good)}.coverage-map-legend span[data-state=weak]:before{background:var(--red)}.coverage-map-legend span[data-state=unpracticed]:before{border:1.5px solid var(--muted);background:var(--surface)}.coverage-next-up{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.coverage-next-up>strong{display:inline-flex;min-height:38px;align-items:center;color:var(--muted);font-size:.82rem}.coverage-next-up button{display:grid;gap:2px;height:auto;min-height:44px;justify-items:start;padding-block:6px;text-align:left}.coverage-next-up button small{color:var(--muted);font-size:.72rem;font-weight:600}.coverage-branch-panel{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.coverage-branch-panel-header{display:flex;gap:10px;align-items:center;justify-content:space-between}.coverage-branch-panel-header>span{display:grid;gap:2px;min-width:0}.coverage-branch-panel-header strong{color:var(--ink);font-size:.92rem;font-weight:700}.coverage-branch-panel-header small{color:var(--muted);font-size:.76rem;font-weight:600}.coverage-branch-mistake{justify-self:start}.coverage-branch-lines{display:grid;gap:6px}.coverage-branch-line{display:flex;gap:10px;align-items:center;justify-content:space-between;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.coverage-branch-line[data-green]{border-color:var(--good);background:var(--good-soft)}.coverage-branch-line-copy{display:grid;gap:2px;min-width:0}.coverage-branch-line-copy strong{overflow:hidden;color:var(--ink);font-size:.8rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.coverage-branch-line-copy small{color:var(--muted);font-size:.72rem;font-weight:600}.coverage-branch-line[data-green] .coverage-branch-line-copy small{color:var(--good)}.coverage-branch-line .secondary-action{flex:none}.coverage-branch-panel-footer{display:flex;gap:10px;align-items:center;justify-content:space-between}.coverage-branch-panel-footer small{color:var(--muted);font-size:.74rem;font-weight:600}.coverage-filter-chip{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 6px 6px 12px;border:1px solid var(--accent);border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:.78rem;font-weight:600}.student-openings-main{display:grid;gap:12px;align-content:start;min-width:0}.student-map-return{display:flex;gap:10px;align-items:center;justify-content:space-between}.student-map-return small{color:var(--muted);font-size:.74rem;font-weight:600}.puzzle-student-grid,.puzzle-trainer-layout{align-items:start}.puzzle-set-rail{min-height:620px}.puzzle-assign-strip,.puzzle-manual-form,.puzzle-upload-form{display:grid;gap:12px}.puzzle-upload-form{margin:14px 0 18px}.puzzle-assign-strip label,.puzzle-manual-form label,.puzzle-page-ranges label,.puzzle-review-form label,.puzzle-upload-form label{display:grid;gap:6px;color:var(--muted);font-size:.82rem;font-weight:700}.puzzle-assign-strip input,.puzzle-manual-form textarea,.puzzle-page-ranges input,.puzzle-review-form textarea,.puzzle-upload-form input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;padding:10px 12px}.puzzle-page-ranges{display:grid;gap:10px;min-width:0;margin:0;padding:0;border:0}.puzzle-page-ranges legend{color:var(--muted);font-size:.82rem;font-weight:700}.puzzle-page-ranges:disabled{display:none}.puzzle-review-main{display:grid;gap:16px;min-width:0}.puzzle-answer-reveal,.puzzle-assign-strip,.puzzle-calibration-strip,.puzzle-empty-import,.puzzle-import-diagnostics,.puzzle-import-progress,.puzzle-manual-form,.puzzle-set-header{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:16px}.puzzle-import-progress{display:grid;gap:10px;margin-bottom:16px;border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.puzzle-import-progress.empty,.puzzle-import-progress.failed{border-color:color-mix(in srgb,var(--danger-line) 65%,var(--line))}.puzzle-import-progress h3,.puzzle-import-progress p{margin:0}.puzzle-import-progress small{color:var(--muted);font-weight:650}.puzzle-import-progress>button{justify-self:start}.puzzle-set-header{display:flex;justify-content:space-between;gap:16px;align-items:start}.puzzle-empty-import,.puzzle-import-diagnostics{display:grid;gap:10px}.puzzle-calibration-strip{display:flex;gap:12px;align-items:center;justify-content:space-between}.puzzle-calibration-strip div{display:grid;gap:3px}.puzzle-calibration-strip strong{color:var(--text)}.puzzle-calibration-strip span{color:var(--muted);font-size:.82rem;font-weight:700}.puzzle-import-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px}.puzzle-import-grid span{display:grid;min-width:0;gap:3px;border:1px solid var(--line-subtle);border-radius:8px;background:var(--surface);padding:10px}.puzzle-import-grid small,.puzzle-source-figure figcaption{color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.puzzle-empty-import strong,.puzzle-import-grid strong{color:var(--text)}.puzzle-import-grid strong{overflow-wrap:anywhere}.puzzle-empty-import p,.puzzle-import-diagnostics p{margin:0;color:var(--muted)}.puzzle-card-head h3,.puzzle-set-header h2,.puzzle-student-head h2{margin:0}.puzzle-set-metrics{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.puzzle-review-meta span,.puzzle-set-metrics span,.puzzle-solve-strip span{border-radius:999px;background:var(--surface);color:var(--muted);font-size:.78rem;font-weight:700;padding:6px 9px}.puzzle-assign-strip{grid-template-columns:minmax(160px,220px) max-content;align-items:end}.puzzle-add-toggle{justify-self:start}.puzzle-review-list{display:grid;gap:14px}.puzzle-review-pager{display:grid;gap:12px}.puzzle-review-pager-actions,.puzzle-review-pager-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.puzzle-review-pager-head{justify-content:space-between;color:var(--muted);font-size:.82rem;font-weight:800}.puzzle-review-card{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:14px}.puzzle-review-board{align-self:start;display:grid;gap:10px}.puzzle-source-figure{display:grid;gap:6px;margin:0}.puzzle-source-figure img{width:min(100%,240px);border:1px solid var(--line-subtle);border-radius:8px;background:white}.puzzle-answer-source-figure{display:grid;gap:5px;margin:0}.puzzle-answer-source-figure img{width:100%;height:auto;max-height:220px;border:1px solid var(--line-subtle);border-radius:8px;background:white;object-fit:contain;object-position:left center}.puzzle-answer-source-figure figcaption,.puzzle-raw-ocr summary{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.puzzle-raw-ocr summary{cursor:pointer}.puzzle-raw-ocr label{margin-top:8px}.puzzle-review-form,.puzzle-solve-board,.puzzle-student-workspace{display:grid;gap:12px}.puzzle-parsed-solution{display:grid;gap:5px;padding-left:12px;border-left:2px solid var(--gold)}.puzzle-parsed-solution strong{color:var(--muted);font-size:.76rem;text-transform:uppercase}.puzzle-parsed-line{color:var(--text);font-family:inherit;font-size:.94rem;font-weight:750;line-height:1.5;overflow-wrap:anywhere;white-space:normal}.puzzle-parsed-branch{display:grid;gap:3px}.puzzle-parsed-branch>span{color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.puzzle-parsed-solution p{margin:0;color:var(--gold);font-size:.84rem;font-weight:650}.puzzle-review-warning{margin:0;border:1px solid color-mix(in srgb,var(--gold) 45%,transparent);border-radius:8px;background:color-mix(in srgb,var(--gold) 15%,transparent);color:var(--gold);font-size:.84rem;font-weight:700;line-height:1.45;padding:10px 12px}.puzzle-card-head,.puzzle-review-actions,.puzzle-review-meta,.puzzle-solve-strip,.puzzle-student-head{display:flex;gap:10px;align-items:center}.puzzle-card-head,.puzzle-student-head{justify-content:space-between}.puzzle-review-actions{justify-content:flex-end;flex-wrap:wrap}.puzzle-review-meta,.puzzle-solve-strip{flex-wrap:wrap}.puzzle-student-workspace{min-width:0}.puzzle-answer-reveal strong{display:block;margin-bottom:6px}.puzzle-answer-reveal p{margin:0;color:var(--muted)}@media (max-width:860px){.puzzle-assign-strip,.puzzle-calibration-strip,.puzzle-review-card,.puzzle-set-header{grid-template-columns:1fr}.puzzle-calibration-strip,.puzzle-set-header{display:grid}.puzzle-set-metrics{justify-content:flex-start}}.puzzle-set-detail>.coach-grid{min-width:0}.puzzle-rail-footer{display:grid;gap:12px;margin-top:12px}.puzzle-workspace-panel .board-zone{display:grid;gap:12px;justify-items:start}.puzzle-workspace-panel .board-zone .puzzle-source-figure img{width:min(100%,260px)}.line-row.puzzle-row{min-height:54px;padding:8px 10px}.puzzle-row .line-row-main{grid-template-columns:minmax(0,1fr) auto;padding:0}.puzzle-row .line-row-main .wb-pill{justify-self:end;white-space:nowrap}.puzzle-select-all{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.82rem;font-weight:700}.puzzle-student-workspace{--student-quiz-board-size:clamp(300px,min(50vw,calc(100dvh - 300px)),520px)}.puzzle-student-workspace .puzzle-solve-board>.chess-board-wrap{width:min(100%,var(--student-quiz-board-size))}.puzzle-student-workspace .puzzle-solve-strip{max-width:min(100%,var(--student-quiz-board-size))}.puzzle-trainer-shell{display:grid;gap:18px;min-width:0}.puzzle-library-heading{align-items:flex-start;margin-bottom:2px}.puzzle-library-heading-copy{display:grid;gap:4px}.puzzle-library-heading-copy p{max-width:580px;margin:0;color:var(--muted);line-height:1.5}.puzzle-library-heading-copy .eyebrow{color:var(--accent-ink)}.puzzle-library-sections{display:grid;gap:24px}.puzzle-library-section{display:grid;gap:14px}.puzzle-library-section>summary{display:flex;align-items:center;gap:10px;color:var(--ink);cursor:pointer;list-style-position:inside}.puzzle-library-section>summary:after{content:"";flex:1 1;height:1px;background:var(--line)}.puzzle-library-section>summary::marker{color:var(--muted)}.puzzle-library-section[open]>summary{margin-bottom:14px}.puzzle-set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.puzzle-set-card{display:grid;align-content:start;gap:13px;width:100%;min-height:280px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font:inherit;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.puzzle-set-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 14px 32px rgba(0,0,0,.22)}.puzzle-set-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.puzzle-set-card-counts,.puzzle-set-card-title,.puzzle-set-progress>span{display:flex;align-items:center}.puzzle-set-card-title,.puzzle-set-progress>span{justify-content:space-between;gap:10px}.puzzle-set-card-title{min-width:0}.puzzle-set-card-title strong{overflow:hidden;font-size:1.08rem;text-overflow:ellipsis;white-space:nowrap}.puzzle-set-card>small{color:var(--muted);font-size:.82rem;font-weight:650}.puzzle-set-card-counts{flex-wrap:wrap;gap:8px}.puzzle-set-card-counts>span{padding:6px 9px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2);font-size:.76rem;font-weight:700}.puzzle-set-progress{display:grid;gap:7px}.puzzle-set-progress small{color:var(--muted);font-size:.78rem;font-weight:700}.puzzle-set-progress strong{color:var(--ink-2);font-size:.78rem}.puzzle-set-progress progress{width:100%;height:6px;overflow:hidden;border:0;border-radius:999px;background:var(--line-strong);color:var(--accent);appearance:none}.puzzle-set-progress progress::-webkit-progress-bar{border-radius:999px;background:var(--line-strong)}.puzzle-set-progress progress::-webkit-progress-value{border-radius:999px;background:var(--accent)}.puzzle-set-progress progress.good::-webkit-progress-value{background:var(--good)}.puzzle-set-progress progress::-moz-progress-bar{border-radius:999px;background:var(--accent)}.puzzle-set-progress progress.good::-moz-progress-bar{background:var(--good)}.puzzle-set-card-open{align-self:end;margin-top:auto;padding-top:2px;color:var(--accent-ink);font-size:.82rem;font-weight:800}.puzzle-library-empty{min-height:240px;align-content:center}.puzzle-set-detail{display:grid;gap:16px}.puzzle-set-detail-back{justify-self:start}@media (max-width:720px){.puzzle-library-heading{align-items:flex-start}.puzzle-set-grid{grid-template-columns:1fr}.puzzle-set-card{min-height:0}}@media (max-width:440px){.puzzle-set-card-title{align-items:flex-start}}.puzzle-set-card-main{display:grid;align-content:start;gap:13px;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.puzzle-set-card-main:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.puzzle-set-card-assign{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;border-top:1px solid var(--line-subtle);padding-top:12px}.puzzle-set-card-assign label{display:grid;gap:6px;color:var(--muted);font-size:.82rem;font-weight:700}.puzzle-set-card-delete{justify-self:start}.puzzle-set-card-assign input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;padding:8px 10px}.puzzle-upload-dialog{width:min(590px,100%);padding:22px;background:var(--surface-strong);box-shadow:0 24px 70px rgba(0,0,0,.42)}.puzzle-upload-dialog:focus{outline:none}.puzzle-upload-dialog .puzzle-upload-form{gap:15px;margin:0}.puzzle-upload-dialog .puzzle-upload-form input{background:var(--surface)}.puzzle-page-ranges{gap:12px;padding-top:3px}.puzzle-upload-dialog .puzzle-page-ranges:disabled{display:grid;opacity:.58}.puzzle-page-ranges legend{margin-bottom:8px;color:var(--ink);font-size:.9rem}.puzzle-page-ranges legend span{margin-left:6px;color:var(--muted);font-size:.78rem;font-weight:650}.puzzle-range-row{display:grid;grid-template-columns:minmax(128px,1fr) minmax(88px,120px) minmax(88px,120px);align-items:end;gap:12px}.puzzle-range-group{display:grid;gap:9px}.puzzle-range-row.has-remove{grid-template-columns:minmax(128px,1fr) minmax(88px,120px) minmax(88px,120px) auto}.puzzle-range-row>strong{align-self:center;color:var(--ink-2);font-size:.82rem}.puzzle-range-row label{font-size:.74rem}.puzzle-add-range{justify-self:start}.puzzle-remove-range{align-self:end}.puzzle-page-range-help,.puzzle-upload-help{color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.45}.puzzle-upload-help{margin:0;text-align:center}.puzzle-upload-actions{display:flex;justify-content:flex-end;gap:10px}@media (max-width:720px){.puzzle-upload-dialog{padding:18px}.puzzle-range-row,.puzzle-range-row.has-remove{grid-template-columns:repeat(2,minmax(0,1fr))}.puzzle-range-row>strong{grid-column:1/-1}.puzzle-remove-range{justify-self:start}}@media (max-width:440px){.puzzle-range-row,.puzzle-range-row.has-remove{grid-template-columns:1fr}.puzzle-range-row>strong{grid-column:auto}}.app-status-shell{display:grid;min-height:100vh;padding:28px;place-items:center}.app-status-panel{display:grid;gap:22px;width:min(620px,100%);padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.app-status-panel h1{margin:0;font-size:clamp(28px,5vw,44px);line-height:1}.status-copy{margin:0;max-width:520px;color:var(--muted);font-size:16px;line-height:1.55}.status-progress{position:relative;height:8px;overflow:hidden;border-radius:999px;background:var(--accent-soft)}.status-progress:after{position:absolute;inset:0;width:38%;border-radius:inherit;background:var(--accent);animation:status-progress 1.2s ease-in-out infinite;content:""}@keyframes status-progress{0%{transform:translateX(-105%)}to{transform:translateX(270%)}}