.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 rgba(33,76,60,.18);border-radius:6px;background:var(--surface-strong);color:var(--green);font:inherit;text-align:left}.stats-games-toggle[aria-expanded=true]{border-color:rgba(33,76,60,.34);background:var(--green-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 rgba(49,93,127,.24)}.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}.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 rgba(31,37,31,.1);border-radius:var(--radius);background:var(--good-well)}.student-mode-tabs button{min-height:38px;border:0;border-radius:6px;color:var(--green);background:transparent;font-weight:600}.student-mode-tabs button.active{color:#fff;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:#fff;background:rgba(33,76,60,.94);box-shadow:0 16px 34px rgba(31,37,31,.24);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(--green);background:var(--good-well)}.engine-provider-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid rgba(31,37,31,.1);border-radius:var(--radius);background:var(--surface-strong)}.engine-provider-tabs button{min-height:38px;border:0;border-radius:6px;color:var(--green);background:transparent;font-weight:600}.engine-provider-tabs button.active{color:#fff;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 rgba(31,37,31,.08);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 rgba(49,93,127,.16);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(--accent-bg)}.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 rgba(49,93,127,.22);border-radius:6px;background:var(--surface-strong);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.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 rgba(31,37,31,.1)}.continuation-nudge{display:grid;gap:10px;padding:12px;border:1px solid rgba(33,76,60,.18);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 rgba(31,37,31,.1);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:#fff;border-color:var(--green);background:var(--accent-bg);box-shadow:0 8px 14px rgba(33,76,60,.14)}.continuation-settings summary:focus-visible,.opponent-option:focus-visible{outline:2px solid rgba(33,76,60,.42);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(--green);background:var(--green-soft);font-size:12px;font-weight:600;line-height:1}.continuation-settings{padding:10px 0;border-top:1px solid rgba(31,37,31,.08);border-bottom:1px solid rgba(31,37,31,.08)}.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 rgba(31,37,31,.14);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 rgba(31,37,31,.08);border-bottom:1px solid rgba(31,37,31,.08)}.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 rgba(31,37,31,.1)}.past-games-panel.stats{padding:12px;border:1px solid rgba(31,37,31,.1);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(--green);background:var(--green-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 rgba(31,37,31,.1);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:rgba(33,76,60,.42);background:var(--green-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(--green)}.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 rgba(217,95,77,.25);border-radius:var(--radius);color:var(--ink);background:rgba(217,95,77,.08);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 rgba(31,37,31,.1);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 rgba(31,37,31,.1);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(--blue);color:#fff;background:var(--info-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}.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-manage-workspace{grid-template-columns:1fr}.opening-library-list{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-list{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}.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-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}.student-line-headline{display:flex;align-items:center;gap:14px;min-width:0}.student-line-header-actions{display:grid;justify-items:end;gap:8px}.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(--green-soft);color:var(--green)}.move-strip .move-token.active,.move-strip-compact .move-token.active{background:#103040;color:#fff}.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(--green-soft)}.status-progress:after{position:absolute;inset:0;width:38%;border-radius:inherit;background:var(--green);animation:status-progress 1.2s ease-in-out infinite;content:""}@keyframes status-progress{0%{transform:translateX(-105%)}to{transform:translateX(270%)}}