.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:where(a,button,input,select,textarea,summary,[role=button],[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px rgba(233,180,76,.25)}:where(.line-row,.student-line-row,.stats-row,.manage-line-main,.move-token):focus-visible{border-radius:8px}:root{--bg:#0f1522;--surface:#171f30;--surface-strong:#1d2740;--ink:#e7ebf4;--muted:#8792ad;--line:#263149;--green:#4cc38a;--green-soft:#143024;--blue:#9cc2f0;--blue-soft:#1b2a45;--gold:#f0d18a;--gold-soft:#2e2712;--red:#f0a796;--red-soft:#3a1b15;--shadow:0 1px 2px rgba(0,0,0,0.35);--panel-shadow:0 1px 2px rgba(0,0,0,0.3);--radius:10px;--board-control-offset:39px;--chrome:#0b101b;--line-subtle:#212c46;--line-strong:#2a3550;--panel:var(--surface);--panel-2:#121a2b;--chip:#1d2740;--ink-2:#a9b4c9;--accent:#e9b44c;--accent-on:#2b2005;--accent-ink:#f0d18a;--accent-soft:#2e2712;--accent-line:#4a3d1c;--good:var(--green);--good-soft:var(--green-soft);--good-ink:#7fd7a8;--good-line:#1f4a35;--good-on:#0e2e1e;--info:var(--blue);--info-soft:var(--blue-soft);--info-line:#2c4066;--warn:var(--gold);--warn-soft:var(--gold-soft);--radius-lg:16px;--radius-sm:6px;--pad-2:10px;--pad-3:18px;--pad-4:20px;--board-dark:#9c6b43;--board-light:#ead8b0;--board-highlight:#e9b44c;--font-display:var(--font-inter),Inter,ui-sans-serif,system-ui,sans-serif;--font-ui:var(--font-inter),Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:var(--font-jetbrains-mono),"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--display-600:700;--display-700:800;--ink-3:#c6cfe0;--accent-bg:var(--accent);--info-bg:#3b6ea8;--danger-bg:#b44e3b;--danger-line:#5c2c22;--well:#121a2b;--well-2:#141d31;--accent-well:#221d10;--info-well:#16223a;--good-well:#12211a;--warn-well:#241e0e;--danger-well:#2c1712;--eval-track:#0a0f1a;--eval-fill:#eadfc3;color-scheme:dark;font-family:var(--font-ui)}html[data-theme=light]{--bg:#f7f2e7;--surface:#fffdf8;--surface-strong:#ffffff;--ink:#2b2721;--muted:#6b655a;--line:#e2daca;--green:#1e5b3c;--green-soft:#e2f0e6;--blue:#2a6f8f;--blue-soft:#dcebf1;--gold:#7e5a10;--gold-soft:#f6e8c8;--red:#9f3a2f;--red-soft:#f6ded7;--shadow:0 1px 2px rgba(60,52,30,0.14);--panel-shadow:0 1px 2px rgba(45,39,27,0.12);--chrome:#f0ead9;--line-subtle:#eae3d3;--line-strong:#d9d0bc;--panel-2:#f3edde;--chip:#ebe3d1;--ink-2:#4a453c;--accent-ink:#7e5a10;--accent-soft:#f6e8c8;--accent-line:#e4d3a4;--good-ink:#1e5b3c;--good-line:#c8e0ce;--good-on:#ffffff;--info-line:#c4dde7;--ink-3:#5a5344;--info-bg:#2a6f8f;--danger-bg:#9f3a2f;--danger-line:#e7c6be;--well:#efe8d8;--well-2:#f4eee0;--accent-well:#fbf3dc;--info-well:#f0f6f9;--good-well:#eaf4ec;--warn-well:#fbf3dc;--danger-well:#fbefea;--eval-track:#232c3d;color-scheme:light}*{box-sizing:border-box}body{min-width:320px;margin:0;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.eyebrow{margin:0 0 6px;color:var(--accent-ink);font-size:11px;font-weight:600;letter-spacing:0;text-transform:uppercase}.role-shell{display:grid;min-height:100vh;padding:clamp(24px,8vh,72px) 28px 28px;place-items:start center}.role-panel{width:min(920px,100%);padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.brand-row,.section-heading,.topbar,.workspace-header{display:flex;align-items:center;gap:12px}.brand-row h1,.section-heading h2,.topbar h1,.upload-panel h2,.workspace-header h2{margin:0}.brand-mark{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:var(--radius);color:var(--accent-on);background:var(--accent-bg);font-size:14px;font-weight:600}.role-panel h1{font-size:clamp(26px,4vw,40px);line-height:1.05}.role-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px}.role-choice{display:grid;gap:14px;min-height:160px;padding:22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface-strong);text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.ghost-action:hover,.line-row:hover,.move-token:hover,.primary-action:hover,.role-choice:hover,.secondary-action:hover,.stats-row:hover{transform:translateY(-1px)}.line-row:hover,.role-choice:hover,.stats-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 14px 32px rgba(0,0,0,.22)}.role-choice strong{color:var(--accent-ink);font-size:28px;font-weight:600}.role-choice span{max-width:360px;color:var(--muted);font-size:16px;line-height:1.45}.auth-panel{width:min(560px,100%)}.auth-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:24px}.auth-mode-tabs button{min-height:44px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:var(--surface-strong);font-weight:600}.auth-mode-tabs button.active{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg)}.auth-form{display:grid;gap:14px;margin-top:18px}.auth-form label{display:grid;gap:8px;color:var(--muted);font-weight:600}.auth-form input{min-height:48px;width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:0 14px;color:var(--ink);background:var(--surface-strong);font-weight:600}.auth-submit{min-height:48px}.app-shell{min-height:100vh;padding:24px}.app-shell.single{display:grid;align-content:start;gap:18px;grid-template-rows:auto minmax(0,1fr)}.topbar{justify-content:space-between;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}.topbar h1{font-size:clamp(20px,2.2vw,26px);line-height:1.05}.coach-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.coach-tabs a,.coach-tabs button,.ghost-action,.move-token,.primary-action,.secondary-action{min-height:42px;border:1px solid transparent;border-radius:var(--radius);font-weight:600;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.coach-tabs a,.coach-tabs button{display:inline-grid;align-items:center;padding:0 14px;color:var(--ink);border-color:var(--line);background:var(--surface);text-decoration:none;transition:transform .16s ease}.coach-tabs a.active,.coach-tabs button.active{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg)}.ghost-action,.primary-action,.secondary-action{padding:0 14px}.primary-action{color:var(--accent-on);background:var(--accent-bg);box-shadow:0 10px 18px rgba(0,0,0,.22)}.secondary-action{color:var(--accent-ink);border-color:var(--accent-line);background:var(--surface-strong)}.ghost-action{color:var(--muted);border-color:var(--line);background:transparent}.ghost-action.danger{color:var(--red);border-color:var(--danger-line)}.coach-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.coach-grid>.workspace-panel{--coach-board-size:clamp(300px,min(42vw,calc(100dvh - 330px)),520px)}.coach-grid>.line-workspace-panel{--coach-board-size:clamp(340px,min(42vw,calc(100dvh - 235px)),600px)}.queue-panel,.stats-table-panel,.upload-panel,.workspace-panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--panel-shadow);padding:18px}.queue-panel{display:flex;max-height:calc(100vh - 188px);flex-direction:column;min-height:0}.section-heading{justify-content:space-between;margin-bottom:14px}.section-heading.stacked{display:grid;justify-content:start;gap:4px}.queue-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:.625rem}.queue-heading>div{min-width:0}.manage-panel h2,.section-heading h2,.upload-panel h2,.workspace-header h2{font-size:24px;line-height:1.08}.line-list{position:relative;display:grid;gap:8px}.queue-panel .line-list{min-height:0;overflow-y:auto;padding-right:4px}.grouped-line-list{align-content:start}.line-group{display:grid;gap:6px}.line-group-header{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:center;padding:10px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.line-group-header.selectable{grid-template-columns:auto minmax(0,1fr)}.line-group-toggle{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0;border:0;background:transparent;color:var(--ink);text-align:left}.line-group-toggle span:not([aria-hidden=true]){display:grid;min-width:0;gap:3px}.compact-line-copy small,.compact-line-copy strong,.line-group-toggle small,.line-group-toggle strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-line-copy small,.line-group-toggle small{color:var(--muted);font-size:12px;font-weight:600;line-height:1.25}.line-group-toggle em,.priority-pill{display:inline-flex;width:fit-content;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-style:normal;font-weight:600;white-space:nowrap}.line-group-toggle em,.priority-pill.high{color:var(--accent-ink);background:var(--accent-soft)}.priority-pill.normal{color:var(--blue);background:var(--blue-soft)}.priority-pill.low,.priority-pill.muted{color:var(--muted);background:var(--well)}.line-group-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.bulk-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;width:100%}.bulk-toolbar .line-group-actions{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-column:-2/-1;justify-self:end}.bulk-selected-count{display:inline-flex;align-items:center;min-block-size:calc(1lh + 1rem);gap:7px;padding-inline:.75em;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);font-size:.75rem;font-weight:600;justify-self:end;white-space:nowrap}.opening-select-all{display:inline-grid;place-items:center;padding:0}.opening-select-all input{flex:0 0 auto;margin:0}.compact-action{min-block-size:calc(1lh + 1rem);padding-inline:.75em;font-size:.75rem;white-space:nowrap}.primary-action.compact-action{box-shadow:0 2px 6px rgba(0,0,0,.2)}.line-select-checkbox{inline-size:1em;block-size:1em;accent-color:var(--accent)}.line-group-rows{display:grid;gap:5px}.empty-copy,.error-copy{color:var(--muted);line-height:1.5}.error-copy{color:var(--red);font-weight:600}.line-row{display:grid;gap:7px;width:100%;padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong);text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.line-row.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.line-row.active .compact-line-copy small{color:var(--ink-3)}.line-row.compact{grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:center;min-height:38px;padding:6px 9px}.line-row.compact.no-select{grid-template-columns:minmax(0,1fr)}.line-row-main,.student-line-row{display:grid;align-items:center;width:100%;min-width:0;border:0;background:transparent;color:inherit;text-align:left}.line-row-main{grid-template-columns:auto minmax(0,1fr) auto;gap:9px}.compact-line-copy{display:grid;min-width:0;gap:3px}.student-line-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:48px;padding:8px 10px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.student-line-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 14px 32px rgba(0,0,0,.22);transform:translateY(-1px)}.student-line-row.active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.student-line-row.active .compact-line-copy small{color:var(--ink-3)}.line-row>*{min-width:0}.line-row strong{color:var(--ink);font-size:14px}.line-row small,.line-row>span:not(.status-chip):not(.practice-chip):not(.priority-pill):not(.compact-line-copy){overflow:hidden;color:var(--muted);line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.line-row>small{color:var(--accent-ink);font-weight:600}.line-row.student{grid-template-columns:auto minmax(0,1fr);align-items:center}.line-row.student small,.line-row.student strong,.line-row.student>span:not(.student-mode-chip){grid-column:1/-1}.status-chip{display:inline-flex;width:fit-content;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600}.status-chip.attention{color:var(--blue);background:var(--blue-soft)}.status-chip.good{color:var(--green);background:var(--green-soft)}.status-chip.warning{color:var(--gold);background:var(--gold-soft)}.status-chip.danger{color:var(--red);background:var(--red-soft)}.status-chip.muted{color:var(--muted);background:var(--well)}.practice-chip{display:inline-flex;width:fit-content;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.practice-chip.high{color:var(--accent-ink);border-color:var(--accent-line);background:var(--accent-soft)}.practice-chip.normal{color:var(--blue);border-color:var(--info-line);background:var(--blue-soft)}.practice-chip.low,.practice-chip.muted{color:var(--muted);background:var(--well)}.practice-chip.review{color:var(--gold);border-color:var(--accent-line);background:var(--gold-soft)}.student-mode-chip{display:inline-flex;width:fit-content;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.2}.student-mode-chip.practice{color:var(--accent-ink);background:var(--accent-soft)}.student-mode-chip.quiz{color:var(--blue);background:var(--blue-soft)}.student-mode-chip.engine{color:var(--gold);background:var(--gold-soft)}.workspace-header{justify-content:space-between;margin-bottom:16px}.workspace-header>div{min-width:0}.workspace-header small{display:block;overflow:hidden;max-width:68ch;color:var(--muted);font-size:.8rem;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.line-workspace-panel{padding:14px}.empty-workspace{display:grid;align-content:center;gap:14px;min-height:clamp(220px,38vh,320px)}.empty-workspace h2,.empty-workspace p{margin:0}.empty-workspace p{max-width:560px;color:var(--muted);line-height:1.5}.empty-workspace .primary-action{width:fit-content}.inline-loading,.loading-indicator{display:inline-flex;align-items:center;gap:8px}.loading-indicator{width:fit-content;padding:8px 10px;border:1px solid var(--accent-line);border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:13px;font-weight:600}.status-spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);border-radius:999px;animation:status-spin .8s linear infinite}.status-spinner.tiny{width:12px;height:12px;border-width:2px}@keyframes status-spin{to{transform:rotate(1turn)}}.workspace-grid{display:grid;grid-template-columns:minmax(300px,var(--coach-board-size,.92fr)) minmax(360px,1fr);gap:18px;align-items:start}.line-workspace-panel .workspace-grid{gap:14px}.workspace-grid>.board-zone{display:grid;align-content:start;gap:8px;justify-items:center}.workspace-grid>.board-zone>.board-renderer{width:min(100%,var(--coach-board-size,100%))}.workspace-grid>.board-zone>.move-strip-compact{justify-self:center;width:min(100%,var(--coach-board-size,100%))}.board-frame,.board-renderer,.board-zone,.line-editor{min-width:0;max-width:100%}.board-renderer{display:grid;gap:8px;width:100%}.board-renderer.with-eval{display:grid;grid-template-columns:clamp(2.25rem,6%,2.75rem) minmax(0,1fr);gap:8px 8px;align-items:stretch}.board-renderer.solo{display:grid}.board-renderer.focus{width:min(100%,660px,calc(100vh - 210px))}.board-control-bar{min-width:0}.board-renderer.with-eval .board-control-bar{grid-column:2}.board-renderer.with-eval .stockfish-eval-rail{grid-column:1;grid-row:2}.board-renderer.with-eval .board-frame{grid-column:2;grid-row:2}.stockfish-eval-rail{display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:4px;min-height:0;padding:0;border:0;border-radius:999px;background:transparent;color:var(--ink);inline-size:100%;min-width:0;text-align:center}.stockfish-eval-rail strong{font-size:10px}.stockfish-eval-rail strong,.stockfish-eval-state{color:var(--muted);font-weight:600;line-height:1.1;white-space:nowrap}.stockfish-eval-state{font-size:9px}.stockfish-eval-footer{display:grid;justify-items:center;gap:1px;min-width:0}.stockfish-eval-track{position:relative;overflow:hidden;width:14px;min-height:100%;border:1px solid var(--line);border-radius:999px;background:var(--eval-track)}.stockfish-eval-track span{position:absolute;right:0;bottom:0;left:0;min-height:2px;border-top:1px solid rgba(10,15,26,.45);background:var(--eval-fill);transition:height .16s ease}.stockfish-eval-rail.disabled .stockfish-eval-track span,.stockfish-eval-rail.error .stockfish-eval-track span,.stockfish-eval-rail.loading .stockfish-eval-track span,.stockfish-eval-rail.unavailable .stockfish-eval-track span{background:rgba(255,255,255,.58)}.board-frame{position:relative;aspect-ratio:1;padding:clamp(5px,.75vw,8px);border:1px solid var(--line);border-radius:var(--radius);background:var(--well-2);box-shadow:0 10px 28px rgba(0,0,0,.22)}.board-arrow-toggles{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:fit-content;max-width:100%;padding:4px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface-strong);box-shadow:0 6px 14px rgba(0,0,0,.22)}.board-arrow-toggles .arrow-source-toggle{display:flex;gap:5px;align-items:center;min-width:0;padding:4px 6px;border:1px solid var(--line);border-radius:4px;color:var(--arrow-source-color,var(--ink));font-size:11px;font-weight:600;line-height:1.1;background:color-mix(in srgb,var(--ink) 3%,transparent)}.board-arrow-toggles label.disabled{color:color-mix(in srgb,var(--ink) 48%,transparent)}.board-arrow-toggles .arrow-source-dot{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:var(--arrow-source-color,var(--ink))}.board-arrow-toggles input{width:13px;height:13px;margin:0;accent-color:var(--arrow-source-color,var(--blue))}.chess-board-wrap{display:grid;gap:6px;width:100%;min-width:0}.chess-board-shell{position:relative;isolation:isolate;width:100%;height:100%;aspect-ratio:1;overflow:hidden;border-radius:6px;background:var(--board-light);touch-action:none;-webkit-user-select:none;user-select:none}.chess-board-shell [data-piece]{backface-visibility:hidden;transform-origin:center;will-change:transform;transition-timing-function:cubic-bezier(.16,.8,.28,1)!important}.board-turn-indicator{display:flex;align-items:center;justify-content:center;gap:7px;margin:0;font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--muted);-webkit-user-select:none;user-select:none}.board-turn-indicator .turn-dot{width:10px;height:10px;border-radius:50%;flex:none}.board-turn-indicator .turn-dot.white{background:#f4efe4;box-shadow:0 0 0 1px rgba(10,15,26,.6)}.board-turn-indicator .turn-dot.black{background:#10151f;box-shadow:0 0 0 1px rgba(234,216,176,.45)}.board-turn-indicator.your-turn{color:var(--board-highlight,#e9b44c)}.board-turn-indicator.your-turn .turn-dot{animation:turn-dot-pulse 1.8s ease-in-out infinite}@keyframes turn-dot-pulse{0%,to{box-shadow:0 0 0 1px rgba(10,15,26,.6),0 0 0 0 rgba(233,180,76,.55)}50%{box-shadow:0 0 0 1px rgba(10,15,26,.6),0 0 0 5px rgba(233,180,76,0)}}.chess-board-shell svg{display:block;pointer-events:none}.board-arrow-overlay{position:absolute;inset:0;z-index:24;width:100%;height:100%}.move-strip{display:grid;gap:8px;margin-top:12px;padding:8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--well)}.move-strip-compact{gap:6px;margin-top:0;padding:6px;background:var(--well-2)}.move-strip-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0}.move-strip-scroller{display:flex;gap:4px;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px;scroll-snap-type:x proximity;scrollbar-width:none}.move-strip-scroller::-webkit-scrollbar{display:none}.move-strip-toggle{flex:0 0 auto;display:grid;width:30px;min-height:30px;place-items:center;padding:0;border-color:var(--line);border-radius:6px;color:var(--accent-ink);background:var(--surface-strong)}.move-strip-toggle-icon{width:8px;height:8px;border-right:2px solid;border-bottom:2px solid;transform:translateY(-2px) rotate(45deg)}.move-strip-toggle[aria-expanded=true]{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg)}.move-strip-toggle[aria-expanded=true] .move-strip-toggle-icon{transform:translateY(2px) rotate(225deg)}.move-strip-expanded{max-height:min(44vh,19rem);min-height:0;overflow:auto;padding-top:6px;border-top:1px solid var(--line-subtle);overscroll-behavior:contain;scrollbar-gutter:stable}.move-scoresheet-start{display:grid;max-width:8rem}.move-scoresheet-table{width:100%;border-collapse:collapse;table-layout:fixed}.move-scoresheet-table td,.move-scoresheet-table th{padding:2px 4px}.move-scoresheet-table thead th{color:var(--muted);font-size:10px;font-weight:600;line-height:1.2;text-align:left;text-transform:uppercase}.move-scoresheet-note,.move-scoresheet-number,.move-scoresheet-table thead th:first-child{width:2.4rem;text-align:center}.move-scoresheet-note,.move-scoresheet-table:not(.past-game-scoresheet) thead th:last-child{width:2.8rem}.move-scoresheet-row{min-height:31px;border-radius:6px}.move-scoresheet-row:nth-child(odd){background:color-mix(in srgb,var(--ink) 5%,transparent)}.move-scoresheet-row.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.move-scoresheet-note,.move-scoresheet-number{color:var(--muted);font-size:12px;font-weight:600}.move-scoresheet-cell{min-width:0}.move-scoresheet-cell.empty{opacity:.42}.move-scoresheet-note span{display:inline-flex;align-items:center;min-height:20px;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--gold);font-size:10px;font-weight:600}.move-scoresheet-note span[aria-hidden=true]{min-height:0;padding:0;background:transparent;color:var(--muted)}.move-token{position:relative;width:100%;min-height:34px;padding:0 8px;color:var(--ink-3);border-color:transparent;border-radius:6px;background:transparent;text-align:left}.move-compact-token{flex:0 0 auto;width:auto;min-height:30px;padding:0 9px;background:var(--surface-strong);color:var(--ink-3);font-size:12px;line-height:1;scroll-snap-align:center;white-space:nowrap}.move-compact-token.active{color:var(--accent-on);background:var(--accent)}.move-compact-token.annotated{padding-right:18px}.move-compact-token.annotated:after{top:7px;right:7px;width:5px;height:5px}.move-token.annotated{color:var(--accent-ink);border-color:transparent;background:color-mix(in srgb,var(--accent) 12%,transparent)}.move-token.annotated:after{position:absolute;top:7px;right:7px;width:6px;height:6px;border-radius:999px;background:var(--gold);content:""}.move-scoresheet-ply.annotated:after{display:none}.move-token.active{color:var(--accent-on);background:var(--accent);box-shadow:0 7px 16px rgba(0,0,0,.22)}.move-token.active.annotated:after{background:var(--accent-on)}.line-editor .move-strip{gap:2px;margin-top:0;padding:8px}.line-editor .move-token{min-height:28px;padding:0 6px;font-size:12px;line-height:1}.line-editor .move-token.annotated{padding-right:15px}.line-editor .move-token.annotated:after{top:6px;right:6px;width:5px;height:5px}.line-editor{display:grid;gap:12px}.line-workspace-panel .line-editor{gap:10px}.student-line-layout>.line-editor,.workspace-grid>.line-editor{margin-top:var(--board-control-offset)}.line-workspace-panel .workspace-grid>.line-editor{margin-top:0}.workspace-grid>.line-editor>.move-explainer-card{max-height:clamp(140px,calc(100vh - 590px),260px);min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.line-workspace-panel .workspace-grid>.line-editor>.move-explainer-card{max-height:clamp(190px,calc(100dvh - 430px),360px)}.workspace-grid>.line-editor>.move-strip{max-height:13.5rem;overflow-y:auto;overscroll-behavior:contain}.workspace-message{width:fit-content;min-height:28px;padding:6px 10px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:12px;font-weight:600}.annotation-block{display:grid;gap:10px;padding:14px;border-left:4px solid var(--gold);background:var(--warn-well)}.annotation-text{margin:0;color:var(--ink);font-size:16px;line-height:1.5;white-space:pre-wrap}.teaching-card-block{display:grid;gap:10px;padding:14px;border:1px solid var(--accent-line);border-left:4px solid var(--accent);background:var(--accent-well)}.teaching-card-block h3,.teaching-card-block p{margin:0}.teaching-card-block h3{color:var(--accent-ink);font-size:18px;line-height:1.22}.teaching-card-block p{color:var(--ink);font-size:15px;line-height:1.48}.move-explainer-card{display:grid;gap:14px;padding:16px;border:1px solid var(--accent-line);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--accent-well)}.move-explainer-header,.move-explainer-source-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.move-explainer-card h3,.move-explainer-card h4,.move-explainer-card p{margin:0}.move-explainer-card h3{color:var(--accent-ink);font-size:19px;line-height:1.25}.move-explainer-status{flex:0 0 auto;padding:6px 10px;border-radius:999px;color:var(--gold);background:var(--gold-soft);font-size:12px;font-weight:600;line-height:1.2}.move-explainer-section,.move-explainer-sources{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--accent-line)}.move-explainer-section p:not(.eyebrow),.move-explainer-source-note,.move-explainer-source-row p:not(.eyebrow){color:var(--ink);font-size:15px;line-height:1.48}.coach-note-inline p:not(.eyebrow){white-space:pre-wrap}.move-explainer-source-row .compact-action{color:var(--accent-on);border-color:var(--accent);background:var(--accent-bg)}.move-explainer-source-panel{display:grid;gap:12px;padding-top:10px;border-top:1px solid var(--accent-line)}.source-summary-chips{display:flex;flex-wrap:wrap;gap:8px}.source-summary-chips span{padding:6px 9px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:12px;font-weight:600;line-height:1.2}.source-summary-chips span:nth-child(2){color:var(--blue);background:var(--blue-soft)}.source-list{display:grid;gap:8px}.source-list h4{color:var(--ink);font-size:15px;line-height:1.25}.source-list-item p,.source-list>p{color:var(--muted);font-size:13px;line-height:1.45}.source-list-item{display:grid;gap:4px;padding-top:8px;border-top:1px solid var(--line-subtle);overflow-wrap:anywhere}.source-list-item strong{color:var(--ink);font-size:13px;line-height:1.35}.source-list-item small{color:var(--muted);font-size:12px;font-weight:600;line-height:1.3}.source-list-item a{width:fit-content;color:var(--accent-ink);font-size:13px;font-weight:600;line-height:1.35}.practice-evidence{display:grid;gap:12px;padding:12px;border:1px solid var(--info-line);border-left:3px solid var(--blue);background:var(--info-well)}.practice-evidence-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.practice-evidence h3,.practice-evidence p{margin:0}.practice-evidence h3{font-size:16px;line-height:1.18}.practice-evidence-strip{display:grid;gap:6px}.practice-evidence-item,.practice-evidence-row,.practice-evidence-strip span{display:grid;grid-template-columns:minmax(7rem,.65fr) minmax(0,1fr);gap:10px;align-items:baseline;min-width:0;padding:0;border:0;background:transparent}.practice-evidence-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.practice-evidence-item small,.practice-evidence-label,.practice-evidence-strip small{color:var(--muted);font-size:12px;font-weight:600;line-height:1.2}.practice-evidence-item strong,.practice-evidence-strip strong,.practice-evidence-value{overflow-wrap:anywhere;color:var(--ink);font-size:13px;font-weight:600;line-height:1.25}.practice-evidence-item em,.practice-evidence-meta,.practice-evidence-strip em{color:var(--muted);font-size:11px;font-style:normal;font-weight:700;line-height:1.2}.practice-evidence-item em{grid-column:2}.annotation-editor-details summary{color:var(--accent-ink);cursor:pointer;font-size:13px;font-weight:600;line-height:1.35}.annotation-editor{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:600}.annotation-editor-details{display:grid;gap:10px}.annotation-editor-details[open]{gap:12px}.annotation-editor-details .annotation-editor{margin-top:10px}.annotation-editor textarea,.upload-panel input,.upload-panel select{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink)}.annotation-editor textarea{min-height:140px;padding:12px;line-height:1.5;resize:vertical}.manage-layout{display:grid;gap:18px;align-items:start}.manage-panel{display:grid;gap:16px}.manage-heading{margin-bottom:0}.manage-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.manage-summary .metric-card{min-height:86px;padding:12px;box-shadow:none}.manage-summary .metric-card strong{font-size:28px}.external-game-panel{display:grid;gap:12px;padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.external-game-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.external-game-heading h3{margin:0;font-size:18px}.external-game-form{display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto;gap:10px;align-items:center}.external-window-select{min-height:40px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--ink);font-weight:600}.external-account-chip .external-window-select{min-height:24px;padding:0 4px;font-size:12px}.external-sync-note{margin:-4px 0 0;color:var(--muted);font-size:12px}.external-game-platforms{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--line-strong);border-radius:6px}.external-game-platforms button{min-height:40px;padding:0 12px;border:0;border-right:1px solid var(--line);background:var(--surface-strong);color:var(--muted);font-weight:600}.external-game-platforms button:last-child{border-right:0}.external-game-platforms button[aria-pressed=true]{color:var(--accent-ink);background:var(--accent-soft)}.external-game-form input{width:100%;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);color:var(--ink);font-weight:600}.import-status-banner{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--info-line);border-radius:var(--radius);background:var(--info-well);color:var(--ink);font-size:13px;font-weight:600}.import-status-banner.failed{border-color:var(--danger-line);background:var(--red-soft);color:var(--red)}.import-status-spinner{width:14px;height:14px;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);border-radius:999px;animation:status-spin .8s linear infinite}.import-history{display:grid;gap:8px}.import-history ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}.import-history-row{display:grid;grid-template-columns:auto minmax(0,auto) minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);font-size:12px;font-weight:600}.import-status-dot{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:var(--muted)}.import-status-dot.queued,.import-status-dot.running{background:var(--gold)}.import-status-dot.succeeded{background:var(--green)}.import-status-dot.failed{background:var(--danger-bg)}.import-status-dot.empty{background:var(--muted)}.import-history-title{color:var(--ink)}.import-history-status,.import-history-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-history-status{color:var(--muted)}.import-history-row time{color:var(--muted);font-weight:700;white-space:nowrap}.import-activity{display:grid;gap:12px;padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.import-activity .external-game-heading h3{margin:0;font-size:18px}.import-history-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.import-history-type{color:var(--accent-ink);font-weight:600}.import-activity-empty{margin:0;color:var(--muted);font-size:13px;font-weight:700;line-height:1.45}.import-progress-track{grid-column:1/-1;height:5px;overflow:hidden;border-radius:999px;background:var(--well)}.import-progress-track span{display:block;height:100%;min-width:6px;border-radius:inherit;background:var(--accent);transition:width .3s ease}.import-progress-track.indeterminate span{width:35%;min-width:0;animation:import-progress-slide 1.1s ease-in-out infinite}@keyframes import-progress-slide{0%{margin-left:-35%}to{margin-left:100%}}.external-account-list{display:flex;flex-wrap:wrap;gap:8px}.external-account-chip{display:inline-grid;grid-template-columns:auto auto;gap:2px 8px;align-items:center;max-width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface-strong);font-size:12px;font-weight:600}.external-account-chip small{grid-column:1/-1;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.manage-openings-list{display:grid;gap:10px}.manage-opening{overflow:hidden;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.manage-opening-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;background:color-mix(in srgb,var(--accent) 7%,transparent)}.manage-line-main,.manage-opening-toggle{min-width:0;border:0;background:transparent;color:inherit;text-align:left}.manage-opening-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center}.manage-line-main,.manage-opening-toggle span:not([aria-hidden=true]){display:grid;gap:3px}.manage-line-main strong,.manage-opening-toggle strong{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.manage-line-main small,.manage-opening-toggle small{overflow:hidden;color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.manage-line-actions,.manage-opening-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.manage-line-table{overflow:hidden}.manage-line-row,.manage-line-table{display:grid;border-top:1px solid var(--line-subtle)}.manage-line-row{grid-template-columns:minmax(260px,1fr) 118px 150px minmax(190px,auto);gap:10px;align-items:center;min-height:54px;padding:9px 12px}.manage-line-table.hide-status:not(.hide-priority) .manage-line-row{grid-template-columns:minmax(260px,1fr) 150px minmax(190px,auto)}.manage-line-table.hide-priority:not(.hide-status) .manage-line-row{grid-template-columns:minmax(260px,1fr) 118px minmax(190px,auto)}.manage-line-table.hide-status.hide-priority .manage-line-row{grid-template-columns:minmax(260px,1fr) minmax(190px,auto)}.manage-line-row:first-child{border-top:0}.manage-line-row.header{min-height:36px;background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--muted);font-size:.75rem;font-weight:600;text-transform:uppercase}.manage-line-row.active{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.manage-line-row.active .ghost-action.compact-action,.manage-line-row.active .manage-line-main small{color:var(--ink-3)}.manage-line-row>*{min-width:0}.manage-empty{display:grid;gap:12px;padding:18px;border:1px dashed var(--accent-line);border-radius:var(--radius);background:var(--surface-strong)}.manage-empty h3,.manage-empty p,.manage-footnote{margin:0}.manage-empty p,.manage-footnote{color:var(--muted);line-height:1.5}.manage-empty .primary-action{width:fit-content}.opening-level-list{gap:0}.opening-library-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.opening-library-sections{display:grid;align-content:start;gap:18px}.opening-side-section{display:grid;gap:12px}.opening-side-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left}.opening-side-toggle>span[aria-hidden=true]{color:var(--muted);font-size:.8rem}.opening-side-toggle strong{font-size:.95rem;letter-spacing:.01em}.opening-side-toggle small{color:var(--muted);font-size:.8rem;font-weight:600;white-space:nowrap}.opening-side-toggle:after{content:"";flex:1 1;height:1px;background:var(--line)}.opening-side-dot{flex:none;width:12px;height:12px;border:1px solid color-mix(in srgb,var(--ink) 40%,transparent);border-radius:50%}.opening-side-dot.white{background:#f2eee2}.opening-side-dot.black{background:#171c28}.opening-detail-panel{min-width:0;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.opening-back-button{justify-self:start}.opening-back-bar{margin-bottom:14px}.opening-card-library,.opening-exception-list{display:grid;gap:10px}.opening-library-card{display:grid;align-content:start;gap:10px;width:100%;padding:14px;border:1px solid var(--line);border-left:5px solid transparent;border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font:inherit;text-align:left}.opening-card-open-hint{color:var(--accent);font-size:.8rem;font-weight:700}.opening-library-card{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.opening-library-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)}.opening-card-row,.opening-card-title-row,.opening-cluster-heading,.opening-detail-actions,.opening-detail-header,.opening-exception-actions,.opening-exception-chips,.opening-exception-row,.opening-progress>span,.opening-signal-row{display:flex;align-items:center}.opening-card-row,.opening-card-title-row,.opening-cluster-heading,.opening-progress>span{justify-content:space-between;gap:10px}.opening-card-row small,.opening-cluster-card p,.opening-detail-header p,.opening-exception-main small,.opening-library-card>small{color:var(--muted);font-size:.82rem;font-weight:600;line-height:1.4}.external-account-unlink{grid-column:1/-1;justify-self:start;padding:3px 8px;font-size:11px}.opening-signal-row{flex-wrap:wrap;gap:6px}.opening-signal-chip{display:inline-flex;min-height:28px;align-items:center;border-radius:999px;padding:0 10px;font-size:.75rem;font-weight:600;white-space:nowrap}.opening-signal-chip.green{color:var(--green);background:var(--green-soft)}.opening-signal-chip.blue{color:var(--blue);background:var(--blue-soft)}.opening-signal-chip.gold{color:var(--gold);background:var(--gold-soft)}.opening-signal-chip.red{color:var(--red);background:var(--red-soft)}.opening-progress{display:grid;gap:6px}.opening-progress strong{color:var(--ink)}.opening-progress em{display:block;height:8px;overflow:hidden;border-radius:999px;background:var(--well)}.opening-progress i{display:block;height:100%;border-radius:inherit;background:var(--accent-bg)}.opening-progress i.blue{background:var(--info-bg)}.opening-detail-panel{display:grid;gap:14px;padding:16px;align-content:start}.opening-detail-header{justify-content:space-between;gap:12px}.opening-cluster-card h4,.opening-detail-header h3{margin:0}.opening-detail-header h3{font-size:clamp(22px,3vw,30px);line-height:1.05}.opening-detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.opening-health-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.opening-health-card{min-height:102px;padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.opening-health-card strong{display:block;color:var(--accent-ink);font-size:28px;line-height:1}.opening-health-card span{display:block;margin-top:8px;color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.35}.opening-workspace-tabs{display:flex;flex-wrap:wrap;gap:8px}.opening-tab-button{min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--accent-ink);font-weight:600}.opening-tab-button.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-on)}.opening-explanation-readout{display:flex;flex-direction:column;gap:10px}.opening-explanation-idea,.opening-explanation-mistake,.opening-explanation-why{margin:0;color:var(--ink);line-height:1.55}.opening-tree-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.opening-tree-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.opening-tree-header h4{margin:0;font-size:1.15rem;line-height:1.15}.opening-tree-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.opening-tree-path-chip{border-radius:999px;padding:0 12px;color:var(--red);background:var(--red-soft);font-size:.78rem;font-weight:600;white-space:nowrap}.opening-tree-controls,.opening-tree-path-chip{display:inline-flex;min-height:30px;align-items:center}.opening-tree-controls{overflow:hidden;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-strong)}.opening-tree-controls button{display:inline-grid;width:34px;min-height:30px;place-items:center;border:0;border-right:1px solid var(--line);color:var(--accent-ink);background:transparent;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.opening-tree-controls button:nth-child(2){width:44px}.opening-tree-controls button:disabled{color:color-mix(in srgb,var(--ink) 38%,transparent);cursor:default}.opening-tree-zoom-label{display:inline-grid;width:46px;min-height:30px;place-items:center;color:var(--muted);font-size:.72rem;font-weight:600}.opening-tree-scroll{height:clamp(380px,56vh,680px);min-height:0;overflow:auto;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface)}.opening-tree-svg{display:block;max-width:none}.opening-tree-svg-fit{width:100%;height:100%}.opening-tree-svg-zoomed{width:auto;height:auto}.opening-tree-edge,.opening-tree-edge-highlight{fill:none;stroke-linecap:round;stroke-linejoin:round}.opening-tree-edge{stroke:color-mix(in srgb,var(--blue) 55%,transparent);stroke-width:3}.opening-tree-edge.active{stroke:var(--accent);stroke-width:4}.opening-tree-edge-highlight{stroke:color-mix(in srgb,var(--danger-bg) 32%,transparent);stroke-width:18}.opening-tree-node circle{fill:var(--surface-strong);stroke:color-mix(in srgb,var(--blue) 75%,transparent);stroke-width:3}.opening-tree-node.active circle{fill:var(--danger-well);stroke:var(--red);stroke-width:4}.opening-tree-label{fill:var(--ink);font-size:14px;font-weight:600;paint-order:stroke;stroke:var(--surface);stroke-linejoin:round;stroke-width:4px}.opening-tree-count{fill:var(--muted);font-size:10px;font-weight:600;pointer-events:none}.opening-flow-panel{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.opening-flow-body{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(220px,280px);min-height:clamp(430px,58vh,720px)}.opening-flow-summary{display:flex;flex-wrap:wrap;gap:6px}.opening-flow-summary span{min-height:26px;padding:5px 9px;border-radius:999px;color:var(--accent-ink);background:var(--accent-soft);font-size:.76rem;font-weight:600;line-height:1.1}.opening-flow-legend{display:flex;flex-wrap:wrap;gap:8px}.opening-flow-legend span{display:inline-flex;min-height:28px;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--line-subtle);border-radius:999px;background:var(--surface-strong);color:var(--muted);font-size:.76rem;font-weight:600}.opening-flow-legend span:before{width:10px;height:10px;border-radius:999px;content:""}.opening-flow-legend span.completed:before{background:var(--green)}.opening-flow-legend span.external-flag:before{background:var(--danger-bg)}.coverage-graph-canvas{min-width:0;min-height:280px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.coverage-graph-fill{width:100%;height:100%}.coverage-graph-loading{display:grid;min-height:100%;place-items:center;color:var(--muted);font-size:.86rem;font-weight:600}.coverage-graph-canvas .react-flow{background:var(--surface)}.coverage-graph-canvas .react-flow__attribution{display:none}.coverage-graph-canvas .react-flow__handle{width:2px;height:2px;opacity:0;pointer-events:none;border:0}.coverage-graph-canvas .react-flow__controls{border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 24px rgba(0,0,0,.22)}.coverage-graph-canvas .react-flow__controls-button{border-bottom:1px solid var(--line);color:var(--ink);fill:var(--ink);background:var(--surface-strong)}.opening-coverage-node{display:grid;gap:8px;min-height:110px;padding:10px;border:2px solid color-mix(in srgb,var(--blue) 40%,transparent);border-radius:10px;background:var(--surface-strong);box-shadow:0 12px 24px rgba(0,0,0,.22)}.opening-coverage-node.completed{border-color:var(--green)}.opening-coverage-node.external-flag{border-color:var(--red);background:var(--danger-well);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger-bg) 18%,transparent),0 12px 24px rgba(0,0,0,.22)}.coverage-node-title{display:grid;gap:3px;min-width:0}.coverage-node-title strong{color:var(--ink);font-size:.86rem;font-weight:700;line-height:1.15}.coverage-node-title small,.coverage-node-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coverage-node-title small{color:var(--muted);font-size:.7rem;font-weight:600;line-height:1.1}.coverage-node-bar{height:8px;overflow:hidden;border-radius:999px;background:var(--well)}.coverage-node-bar span{display:block;height:100%;border-radius:inherit;background:var(--green)}.coverage-node-signals{display:flex;flex-wrap:wrap;gap:5px}.coverage-node-signals span{min-height:20px;padding:4px 7px;border-radius:999px;color:var(--green);background:var(--green-soft);font-size:.66rem;font-weight:700;line-height:1}.coverage-node-signals span.external{color:var(--red);background:var(--red-soft)}.opening-flow-detail{display:grid;align-content:start;gap:12px;min-width:0;padding:14px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong)}.opening-flow-detail h4,.opening-flow-detail p{margin:0}.opening-flow-detail h4{font-size:1.2rem;line-height:1.15}.opening-flow-detail p{color:var(--muted);font-size:.88rem;font-weight:600;line-height:1.42}.opening-flow-path{overflow-wrap:anywhere}.opening-flow-lines{display:grid;gap:6px;padding-top:10px;border-top:1px solid var(--line-subtle)}.opening-flow-lines span{overflow:hidden;color:var(--muted);font-size:.82rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.opening-cluster-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.opening-cluster-card{display:grid;width:100%;gap:12px;min-height:220px;padding:14px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font:inherit;text-align:left}.opening-card-row:not(:disabled):hover,.opening-cluster-card:not(:disabled):hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 10px 20px rgba(0,0,0,.22);transform:translateY(-1px)}.opening-cluster-card:disabled{cursor:default}.opening-card-action{align-self:end;color:var(--accent-ink);font-size:.78rem;font-weight:600}.opening-cluster-card.review{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:linear-gradient(180deg,var(--surface) 0,var(--warn-well) 100%)}.opening-cluster-card.risk{border-color:color-mix(in srgb,var(--danger-bg) 50%,transparent);background:linear-gradient(180deg,var(--surface) 0,var(--danger-well) 100%)}.opening-card-row,.opening-exception-row{width:100%;padding:12px;border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);text-align:left}.opening-card-row>span,.opening-exception-main{display:grid;gap:4px;min-width:0}.opening-exception-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto}.opening-exception-row.active{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}.opening-exception-main{border:0;background:transparent;color:var(--ink);text-align:left}.opening-card-row strong,.opening-exception-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opening-exception-actions,.opening-exception-chips{flex-wrap:wrap;justify-content:flex-end;gap:6px}.opening-empty-state{display:grid;gap:4px;padding:16px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-strong);color:var(--muted);font-weight:600}.opening-empty-state strong{color:var(--ink);font-size:1rem}.modal-backdrop{position:fixed;z-index:40;inset:0;display:grid;align-items:start;justify-items:center;overflow-y:auto;padding:48px 18px;background:rgba(4,8,16,.62)}.upload-dialog{width:min(520px,100%);padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.upload-dialog-heading{margin-bottom:14px}