.chess-loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--stone-50)}.chess-loading-screen canvas{display:block;width:180px;height:180px}.chess-loading-screen .loading-text{margin-top:28px;font-size:14px;color:var(--stone-500);letter-spacing:.02em;font-family:inherit;height:20px}.plan-session-ribbon{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--accent-primary, #3b82f6);color:#fff;font-size:13px;font-weight:500;padding:10px 20px}.plan-session-ribbon-inner{position:relative;display:flex;align-items:center;justify-content:space-between}.plan-session-ribbon-left{display:flex;flex-direction:column;gap:2px;min-width:0}.plan-session-ribbon-item{font-size:11px;opacity:.8;font-weight:400}.plan-session-ribbon-label{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-session-ribbon-center{display:flex;align-items:center;gap:10px;position:absolute;left:50%;transform:translate(-50%);width:380px}.plan-session-ribbon-progress-bar{flex:1;height:4px;background:#ffffff40;border-radius:2px;overflow:hidden}.plan-session-ribbon-progress-fill{height:100%;background:#fff;border-radius:2px;transition:width .3s ease}.plan-session-ribbon-progress-text{font-size:12px;font-weight:600;white-space:nowrap}.plan-session-ribbon-end{padding:5px 14px;border-radius:4px;font-size:12px;font-weight:500;background:#fff3;color:#fff;border:none;cursor:pointer;font-family:inherit;flex-shrink:0}.plan-session-ribbon-end:hover{background:#ffffff4d}@media(max-width:500px){.plan-session-ribbon{padding:8px 12px}.plan-session-ribbon-inner{flex-wrap:wrap;gap:6px}.plan-session-ribbon-left{flex:1}.plan-session-ribbon-label{font-size:13px}.plan-session-ribbon-center{position:static;transform:none;width:100%;order:3}.plan-session-ribbon-end{padding:4px 10px;font-size:11px}}.plan-session-ribbon-spacer{height:52px}@media(max-width:500px){.plan-session-ribbon-spacer{height:68px}}.plan-session-continue{padding:16px 40px;border-top:1px solid var(--stone-200, #e7e5e4)}.plan-session-next-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:6px;font-size:14px;font-weight:500;background:var(--accent-primary, #3b82f6);color:#fff;border:none;cursor:pointer;font-family:inherit;width:100%;justify-content:center}.plan-session-next-btn:hover{background:var(--accent-primary-hover, #2563eb)}.plan-session-countdown{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;font-size:12px;color:var(--stone-500, #78716c)}.plan-session-stop{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;background:transparent;color:var(--stone-500, #78716c);border:1px solid var(--stone-300, #d6d3d1);cursor:pointer;font-family:inherit}.plan-session-stop:hover{background:var(--stone-100, #f5f5f4);color:var(--stone-700, #44403c)}.plan-session-done{padding:16px 40px;border-top:1px solid var(--stone-200, #e7e5e4);text-align:center}.plan-session-done-title{font-size:16px;font-weight:600;color:var(--green-600, #16a34a);margin-bottom:8px}.plan-session-done-sub{font-size:13px;color:var(--stone-500, #78716c);margin-bottom:12px}.plan-session-done-btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;background:var(--stone-100, #f5f5f4);color:var(--stone-700, #44403c);border:1px solid var(--stone-300, #d6d3d1);cursor:pointer;font-family:inherit}.plan-session-done-btn:hover{background:var(--stone-200, #e7e5e4)}.sp-page-header-row{display:flex;align-items:flex-start;justify-content:space-between}.sp-drill-all-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;background:var(--accent-primary, #3b82f6);color:#fff;border:none;cursor:pointer;font-family:inherit}.sp-drill-all-btn:hover:not(:disabled){background:var(--accent-primary-hover, #2563eb)}.sp-drill-all-btn:disabled{opacity:.4;cursor:not-allowed}.plan-session-inline-next{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px}.plan-session-inline-next-btn{padding:8px 20px;border-radius:6px;font-size:13px;font-weight:500;background:var(--accent-primary, #3b82f6);color:#fff;border:none;cursor:pointer;font-family:inherit}.plan-session-inline-next-btn:hover{background:var(--accent-primary-hover, #2563eb)}.hsb-sidebar{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;border-right:1px solid var(--border-default);background:var(--bg-surface)}.hsb-top{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.hsb-bottom{flex-shrink:0;max-height:50%;overflow-y:auto;border-top:1px solid var(--stone-200);padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--bg-surface)}.hsb-scope-tabs{display:flex;border-bottom:1px solid var(--stone-200);flex-shrink:0}.hsb-scope-tab{flex:1;padding:10px 8px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:12px;font-weight:500;color:var(--stone-500);cursor:pointer;font-family:inherit;transition:all .15s;text-align:center}.hsb-scope-tab:hover{color:var(--stone-700)}.hsb-scope-tab.active{color:var(--stone-700);border-bottom-color:var(--accent-primary)}.hsb-toolbar{padding:10px 12px 6px;display:flex;flex-direction:column;gap:6px;flex-shrink:0}.hsb-search-row{display:flex;gap:4px}.hsb-search{flex:1;padding:5px 8px;border:1px solid var(--stone-200);border-radius:5px;font-size:12px;font-family:inherit;color:var(--stone-700);background:var(--bg-page);box-sizing:border-box}.hsb-search:focus{outline:none;border-color:var(--accent-primary)}.hsb-search::placeholder{color:var(--stone-400)}.hsb-filter-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:1px solid var(--stone-200);border-radius:5px;color:var(--stone-400);cursor:pointer;font-size:14px;flex-shrink:0;position:relative;transition:all .15s}.hsb-filter-btn:hover{border-color:var(--stone-300);color:var(--stone-600)}.hsb-filter-btn.has-filters{border-color:var(--accent-primary);background:var(--accent-blue-bg);color:var(--accent-primary)}.hsb-filter-badge{position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.hsb-action-row{display:flex;gap:4px;align-items:center}.hsb-new-btn{padding:4px 10px;background:none;border:none;font-size:12px;color:var(--stone-500);cursor:pointer;font-family:inherit;transition:color .1s}.hsb-new-btn:hover{color:var(--accent-primary)}.hsb-sort-select{padding:3px 6px;border:1px solid var(--stone-200);border-radius:4px;font-size:11px;font-family:inherit;color:var(--stone-500);background:var(--bg-page)}.hsb-popover{background:var(--bg-surface-alt);border:1px solid var(--stone-200);border-radius:6px;padding:10px 12px;margin:0 12px 6px;box-shadow:var(--shadow-sm)}.hsb-popover-section{margin-bottom:8px}.hsb-popover-section:last-of-type{margin-bottom:0}.hsb-popover-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--stone-400);margin-bottom:6px}.hsb-popover-pills{display:flex;flex-wrap:wrap;gap:4px}.hsb-popover-pill{padding:2px 8px;border-radius:12px;border:1px solid var(--stone-200);background:transparent;color:var(--stone-500);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.hsb-popover-pill:hover{border-color:var(--stone-300);background:var(--stone-50)}.hsb-popover-pill.active{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}.hsb-popover-footer{display:flex;justify-content:flex-end;margin-top:8px;padding-top:6px;border-top:1px solid var(--stone-100)}.hsb-popover-clear{background:none;border:none;font-size:11px;color:var(--stone-400);cursor:pointer;font-family:inherit;padding:2px 4px}.hsb-popover-clear:hover{color:var(--accent-primary);text-decoration:underline}.hsb-active-chips{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 4px}.hsb-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:10px;background:var(--accent-blue-bg);color:var(--accent-primary);font-size:11px;font-weight:500}.hsb-chip-x{background:none;border:none;padding:0 1px;font-size:12px;color:var(--accent-primary);cursor:pointer;line-height:1;opacity:.6}.hsb-chip-x:hover{opacity:1}.hsb-set-list{flex:1;overflow-y:auto;padding:4px 0}.hsb-ribbon{display:flex;align-items:center;gap:6px;padding:7px 14px;width:100%;background:none;border:none;cursor:pointer;font-family:inherit;font-size:13px;color:var(--stone-600);text-align:left;transition:background .1s;position:relative;box-sizing:border-box}.hsb-ribbon:hover{background:var(--stone-50)}.hsb-ribbon.active{background:var(--accent-blue-bg);color:var(--stone-800)}.hsb-ribbon-dot{width:7px;height:7px;border-radius:50%;background:var(--stone-300);flex-shrink:0}.hsb-ribbon-dot.accent{background:var(--accent-primary)}.hsb-ribbon-dot.purple{background:var(--purple-accent)}.hsb-ribbon.active .hsb-ribbon-dot{background:var(--accent-primary)}.hsb-ribbon.active .hsb-ribbon-dot.purple{background:var(--purple-accent)}.hsb-ribbon-dot.green{background:var(--status-green)}.hsb-ribbon-dot.blue{background:var(--accent-primary)}.hsb-ribbon-dot.amber{background:var(--status-amber)}.hsb-ribbon-dot.orange{background:var(--color-warning)}.hsb-ribbon.active .hsb-ribbon-dot.green{background:var(--status-green)}.hsb-ribbon.active .hsb-ribbon-dot.blue{background:var(--accent-primary)}.hsb-ribbon.active .hsb-ribbon-dot.amber{background:var(--status-amber)}.hsb-ribbon.active .hsb-ribbon-dot.orange{background:var(--color-warning)}.hsb-ribbon-dot.red,.hsb-ribbon.active .hsb-ribbon-dot.red{background:var(--status-red)}.hsb-ribbon-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px;background:var(--focus-bg);color:var(--accent-primary);flex-shrink:0;line-height:1.4}.hsb-ribbon-recipe{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px;background:var(--stone-100);color:var(--stone-500);flex-shrink:0;line-height:1.4}.hsb-recipe-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:6px;margin-bottom:12px;background:var(--stone-50);border:1px solid var(--stone-200)}.hsb-recipe-banner-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;background:var(--stone-200);color:var(--stone-600)}.hsb-recipe-banner-text{flex:1;min-width:0}.hsb-recipe-banner-label{font-size:12px;font-weight:600;color:var(--stone-700);margin-bottom:2px}.hsb-recipe-banner-detail{font-size:11px;color:var(--stone-500);line-height:1.4}.hsb-recipe-banner-detail a{color:var(--accent-primary);text-decoration:none}.hsb-recipe-banner-detail a:hover{text-decoration:underline}.hsb-recipe-banner-refresh{padding:4px 10px;border:1px solid var(--stone-200);border-radius:4px;background:var(--bg-surface);font-size:11px;font-weight:500;color:var(--stone-600);cursor:pointer;font-family:inherit;flex-shrink:0;transition:all .15s}.hsb-recipe-banner-refresh:hover{border-color:var(--stone-300);background:var(--stone-50)}.hsb-recipe-banner-refresh:disabled{opacity:.5;cursor:default}.hsb-recipe-banner.repertoire{background:#34a85314;border-color:#34a85340}.hsb-recipe-banner.repertoire .hsb-recipe-banner-icon{background:#34a85326;color:var(--status-green)}.hsb-recipe-banner.theme{background:#3b82f614;border-color:#3b82f640}.hsb-recipe-banner.theme .hsb-recipe-banner-icon{background:#3b82f626;color:var(--accent-primary)}.hsb-recipe-banner.weakest{background:#c5922e14;border-color:#c5922e40}.hsb-recipe-banner.weakest .hsb-recipe-banner-icon{background:#c5922e26;color:var(--status-amber)}.hsb-recipe-banner.pawn{background:#7c3aed14;border-color:#7c3aed40}.hsb-recipe-banner.pawn .hsb-recipe-banner-icon{background:#7c3aed26;color:var(--purple-accent)}.hsb-recipe-banner.position{background:#e8710a14;border-color:#e8710a40}.hsb-recipe-banner.position .hsb-recipe-banner-icon{background:#e8710a26;color:var(--color-warning)}.hsb-recipe-banner.rich{background:#3b82f614;border-color:#3b82f640}.hsb-recipe-banner.rich .hsb-recipe-banner-icon{background:#3b82f626;color:var(--accent-primary)}.hsb-recipe-banner.my-games{background:#b4525214;border-color:#b4525240}.hsb-recipe-banner.my-games .hsb-recipe-banner-icon{background:#b4525226;color:var(--status-red)}.hsb-ribbon-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hsb-ribbon-meta{display:flex;gap:4px;align-items:center;flex-shrink:0}.hsb-ribbon-count{font-size:11px;color:var(--stone-400);font-weight:400;flex-shrink:0}.hsb-ribbon-color-badge{display:inline-block;font-size:9px;font-weight:700;padding:0 3px;margin-left:4px;border-radius:2px;background:var(--stone-200);color:var(--stone-600);vertical-align:middle}.hsb-ribbon-actions{display:flex;gap:2px;opacity:0;transition:opacity .1s;flex-shrink:0}.hsb-ribbon:hover .hsb-ribbon-actions,.hsb-ribbon.active .hsb-ribbon-actions{opacity:1}.hsb-ribbon-btn{padding:2px 5px;background:none;border:none;font-size:11px;color:var(--stone-400);cursor:pointer;border-radius:3px;font-family:inherit;line-height:1.3;white-space:nowrap}.hsb-ribbon-btn:hover{background:var(--stone-200);color:var(--stone-700)}.hsb-ribbon-wp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.hsb-ribbon-wp-meta{font-size:11px;color:var(--stone-400);font-weight:400}.hsb-bottom-label{font-size:9px;font-weight:700;color:var(--stone-400);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px;padding:0 2px}.hsb-filter-section{display:flex;flex-direction:column;gap:6px}.hsb-filter-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--stone-400)}.hsb-filter-pills{display:flex;flex-wrap:wrap;gap:5px}.hsb-filter-pill{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;background:var(--bg-page);border:1px solid var(--stone-200);border-radius:12px;font-size:11px;color:var(--stone-500);cursor:pointer;font-family:inherit;transition:all .1s}.hsb-filter-pill:hover{border-color:var(--stone-300);color:var(--stone-700)}.hsb-filter-pill.active{background:var(--stone-700);color:#fff;border-color:var(--stone-700)}.hsb-pill-count{font-size:10px;opacity:.8}.hsb-tag-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--bg-page);border:1px solid var(--stone-200);border-radius:12px;font-size:11px;color:var(--stone-500);cursor:pointer;font-family:inherit;transition:all .1s}.hsb-tag-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--tag-color, var(--stone-300));flex-shrink:0}.hsb-tag-pill:hover{border-color:var(--tag-color, var(--stone-300));color:var(--stone-700)}.hsb-tag-pill.active{background:var(--tag-color, var(--stone-700));color:#fff;border-color:var(--tag-color, var(--stone-700))}.hsb-tag-count{font-size:10px;opacity:.65;margin-left:2px}.hsb-theme-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;border:1px solid var(--stone-200);background:transparent;color:var(--stone-500);font-size:11px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.hsb-theme-pill:hover{border-color:var(--stone-300);background:var(--stone-50)}.hsb-theme-pill.active{border-color:var(--accent-primary);background:var(--accent-primary);color:#fff}.hsb-theme-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--stone-400);flex-shrink:0}.hsb-theme-pill.active .hsb-theme-dot{background:var(--bg-surface)}.hsb-rating-pill{font-variant-numeric:tabular-nums}.hsb-stats-row{display:flex;justify-content:space-between;border-top:1px solid var(--stone-100);margin-top:8px;padding-top:8px}.hsb-stat-label{font-size:11px;color:var(--stone-500)}.hsb-stat-value{font-size:11px;color:var(--stone-700);font-weight:500}.hsb-bar-track{height:5px;background:var(--stone-100);border-radius:3px;overflow:hidden}.hsb-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.hsb-bar-fill.green{background:var(--color-correct)}.hsb-see-more{padding:8px 14px;background:none;border:none;border-top:1px solid var(--border-subtle);color:var(--accent-primary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;width:100%;text-align:left;transition:background .1s}.hsb-see-more:hover{background:var(--stone-50)}.hsb-empty-msg{padding:16px 14px;font-size:12px;color:var(--stone-400);text-align:center}.hsb-mastery-row{display:flex;flex-direction:column;gap:6px}.hsb-mastery-header{display:flex;align-items:center;gap:4px}.hsb-mastery-label{font-size:12px;font-weight:600;color:var(--stone-500)}.hsb-mastery-count{font-size:12px;color:var(--stone-500);margin-left:auto}.hsb-set-separator{height:1px;background:var(--stone-200);margin:4px 14px}:root{--bg-page: #f8f8f8;--bg-surface: white;--bg-surface-alt: #fafafa;--bg-inset: #e8e8e8;--bg-hover: #f5f5f4;--bg-active: #e7e5e4;--bg-panel: #f5f5f5;--bg-panel-hover: #eee;--border-default: #e0e0e0;--border-subtle: #f0f0f0;--border-strong: #d6d3d1;--border-input: #ddd;--text-primary: #333;--text-secondary: #555;--text-tertiary: #666;--text-muted: #888;--text-faint: #999;--text-placeholder: #bbb;--stone-50: #fafaf9;--stone-100: #f5f5f4;--stone-200: #e7e5e4;--stone-300: #d6d3d1;--stone-400: #a8a29e;--stone-500: #78716c;--stone-600: #57534e;--stone-700: #44403c;--stone-800: #292524;--stone-900: #1c1917;--accent-blue: #2196f3;--accent-blue-hover: #1976d2;--accent-blue-bg: #eff6ff;--accent-primary: #2563eb;--accent-primary-hover: #1d4ed8;--color-error: #dc2626;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-success: #16a34a;--color-warning: #d97706;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--color-warning-text: #e65100;--color-info: #2563eb;--color-info-bg: #eff6ff;--color-info-border: #bfdbfe;--purple-bg: #f5f3ff;--purple-border: #ddd6fe;--purple-text: #6d28d9;--purple-accent: #7c3aed;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .15);--shadow-popover: 0 4px 12px rgba(0, 0, 0, .12);--overlay-backdrop: rgba(0, 0, 0, .4);--tab-active-bg: white;--segmented-active-bg: #1c1917;--segmented-active-text: white;--card-bg: white;--popover-bg: white;--input-bg: transparent;--eval-white-bg: #f0f0f0;--eval-black-bg: #333;--eval-white-adv: #333;--eval-black-adv: #78716c;--eval-mate: #ca3431;--eval-even: #a8a29e;--badge-white-bg: #f5f5f4;--badge-white-color: #a8a29e;--badge-even-bg: #fafaf9;--badge-even-color: #c4b5a8;--badge-mate-bg: #fef2f2;--badge-mate-color: #ca3431;--badge-blunder-bg: #fef2f2;--badge-blunder-color: #ca3431;--badge-mistake-bg: #fff7ed;--badge-mistake-color: #e58f2a;--badge-inaccuracy-bg: #fefce8;--badge-inaccuracy-color: #b49518;--pill-fg: #78716c;--pill-bg: rgba(120, 113, 108, .13);--pill-border: rgba(120, 113, 108, .27);--pill-bg-hover: rgba(120, 113, 108, .2);--pill-border-hover: rgba(120, 113, 108, .4);--pill-fg-hover: #44403c;--expand-pill-fg: #a8a29e;--expand-pill-bg: rgba(168, 162, 158, .13);--expand-pill-border: rgba(168, 162, 158, .27);--expand-pill-bg-hover: rgba(168, 162, 158, .2);--expand-pill-border-hover: rgba(168, 162, 158, .4);--expand-pill-fg-hover: #57534e;--board-bg: #e8e8e8;--board-sq-light: #f0d9b5;--board-sq-dark: #c0ae91;--color-correct: #22c55e;--color-correct-bg: #dcfce7;--color-correct-border: #bbf7d0;--color-incorrect: #ef4444;--color-amber: #d97706;--color-amber-bg: #fef3c7;--color-amber-border: #fde68a;--color-amber-text: #92400e;--focus-ring: #93c5fd;--focus-bg: #dbeafe;--focus-border: #bfdbfe;--color-gold: #eab308;--ts-indicator-color: #7c3aed;--chart-white: #e8e8e8;--chart-black: #404040;--chart-center: #888;--color-engine: #6d9e37;--color-delete: #b91c1c;--classify-brilliant: #1baca6;--classify-great: #5c8bb0;--classify-best: #96bc4b;--classify-prep: #4db8a8;--classify-book: #a88764;--classify-inaccuracy: #f7c631;--classify-mistake: #e58f2a;--classify-blunder: #ca3431;--srs-due-color: #dc2626;--srs-due-bg: #fef2f2;--srs-new-color: #2563eb;--srs-new-bg: #eff6ff;--srs-learning-color: #d97706;--srs-learning-bg: #fffbeb;--srs-mastered-color: #16a34a;--srs-mastered-bg: #f0fdf4;--heatmap-l1: #9be9a8;--heatmap-l2: #40c463;--heatmap-l3: #30a14e;--heatmap-l4: #216e39;--loading-grid-light: #f5f5f4;--loading-grid-dark: #eeeceb;--loading-piece: #1c1917;--loading-dot: #a8a29e;--loading-line: #d6d3d1;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .1s ease;--transition-default: .15s ease;--transition-slow: .3s ease;--status-green: #16a34a;--status-amber: #d97706;--status-red: #dc2626;--status-blue: #2563eb;--status-purple: #7c3aed;--graph-main-color: #44403c;--graph-node-stroke: #fff;--graph-label-color: #1c1917;--graph-label-branch: inherit;--graph-trunk-color: #44403c;--graph-minimap-bg: #fafaf9;--graph-selection: #2563eb;--graph-highlight: #1e88e5;--graph-bg: #f8f8f8;--tree-connector-color: rgba(68, 64, 60, .2);--graph-nag-color: #78716c;--graph-indicator-color: #a8a29e;--graph-edge-main: #555;--graph-edge-side: #aaa;--graph-node-default: #9e9e9e;--graph-expand-bg: #666;--graph-expand-text: #fff;--graph-collapse-bg: #ddd;--graph-collapse-stroke: #aaa;--graph-collapse-text: #666;--graph-comment-blue: #2563eb;--graph-notes-green: #16a34a;--explore-accent: var(--purple-accent);--explore-accent-bg: var(--purple-bg);--explore-accent-border: var(--purple-border);--explore-accent-text: var(--purple-text);--coverage-covered: var(--color-correct);--coverage-covered-bg: var(--color-correct-bg);--coverage-covered-border: var(--color-correct-border);--coverage-thin: var(--color-amber);--coverage-thin-bg: var(--color-amber-bg);--coverage-thin-border: var(--color-amber-border);--coverage-gap: var(--color-error);--coverage-gap-bg: var(--color-error-bg);--coverage-gap-border: var(--color-error-border);--graph-preview-node: var(--stone-400);--graph-covered-node: var(--color-correct);--graph-covered-edge: var(--color-correct);--graph-uncovered-node: var(--color-error);--graph-uncovered-edge: var(--color-error);--graph-partial-node: var(--color-amber);--graph-partial-edge: var(--color-amber);--graph-staged-node: var(--purple-accent);--graph-staged-edge: var(--purple-accent);--graph-staged-dim: var(--stone-400);--graph-theory-node: var(--stone-600);--graph-theory-edge: var(--stone-500);--graph-dimmed-opacity: .3}[data-theme=dark]{--bg-page: #0d1117;--bg-surface: #161b22;--bg-surface-alt: #1c2128;--bg-inset: #010409;--bg-hover: #262c36;--bg-active: #2d333b;--bg-panel: #1c2128;--bg-panel-hover: #262c36;--border-default: #30363d;--border-subtle: #21262d;--border-strong: #484f58;--border-input: #30363d;--text-primary: #e6edf3;--text-secondary: #b1bac4;--text-tertiary: #8b949e;--text-muted: #7d8590;--text-faint: #656d76;--text-placeholder: #484f58;--stone-50: #0d1117;--stone-100: #161b22;--stone-200: #21262d;--stone-300: #30363d;--stone-400: #484f58;--stone-500: #7d8590;--stone-600: #b1bac4;--stone-700: #c9d1d9;--stone-800: #e6edf3;--stone-900: #f0f6fc;--accent-blue: #58a6ff;--accent-blue-hover: #79c0ff;--accent-blue-bg: #0d2240;--accent-primary: #58a6ff;--accent-primary-hover: #79c0ff;--color-error: #f85149;--color-error-bg: #1a0e0e;--color-error-border: #6e3630;--color-success: #3fb950;--color-warning: #e3b341;--color-warning-bg: #1a1505;--color-warning-border: #6b5e2d;--color-warning-text: #d29922;--color-info: #58a6ff;--color-info-bg: #0d2240;--color-info-border: #1f3d5f;--purple-bg: #1a1433;--purple-border: #3d3565;--purple-text: #c4b5fd;--purple-accent: #a78bfa;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-popover: 0 4px 12px rgba(0, 0, 0, .5);--overlay-backdrop: rgba(0, 0, 0, .7);--tab-active-bg: #161b22;--segmented-active-bg: #c9d1d9;--segmented-active-text: #0d1117;--card-bg: #161b22;--popover-bg: #1c2128;--input-bg: #0d1117;--eval-white-bg: #b1bac4;--eval-black-bg: #21262d;--eval-white-adv: #e6edf3;--eval-black-adv: #7d8590;--eval-mate: #f85149;--eval-even: #484f58;--badge-white-bg: #1c2128;--badge-white-color: #7d8590;--badge-even-bg: #161b22;--badge-even-color: #656d76;--badge-mate-bg: #1a0e0e;--badge-mate-color: #f85149;--badge-blunder-bg: #1a0e0e;--badge-blunder-color: #f85149;--badge-mistake-bg: #1a1505;--badge-mistake-color: #d29922;--badge-inaccuracy-bg: #1a1808;--badge-inaccuracy-color: #e3b341;--pill-fg: #7d8590;--pill-bg: rgba(125, 133, 144, .13);--pill-border: rgba(125, 133, 144, .27);--pill-bg-hover: rgba(125, 133, 144, .2);--pill-border-hover: rgba(125, 133, 144, .4);--pill-fg-hover: #b1bac4;--expand-pill-fg: #656d76;--expand-pill-bg: rgba(101, 109, 118, .13);--expand-pill-border: rgba(101, 109, 118, .27);--expand-pill-bg-hover: rgba(101, 109, 118, .2);--expand-pill-border-hover: rgba(101, 109, 118, .4);--expand-pill-fg-hover: #7d8590;--board-bg: #161b22;--board-sq-light: #dee3e6;--board-sq-dark: #8ca2ad;--color-correct: #3fb950;--color-correct-bg: #0d2818;--color-correct-border: #1a4d2e;--color-incorrect: #f85149;--color-amber: #e3b341;--color-amber-bg: #1a1505;--color-amber-border: #5c4813;--color-amber-text: #d29922;--focus-ring: #1f6feb;--focus-bg: #0d2240;--focus-border: #1f6feb;--color-gold: #e3b341;--ts-indicator-color: #a78bfa;--chart-white: #b1bac4;--chart-black: #21262d;--chart-center: #484f58;--color-engine: #3fb950;--color-delete: #f85149;--classify-brilliant: #63e6be;--classify-great: #79c0ff;--classify-best: #a3e635;--classify-prep: #63e6be;--classify-book: #d4a574;--classify-inaccuracy: #e3b341;--classify-mistake: #f0883e;--classify-blunder: #f85149;--srs-due-color: #f85149;--srs-due-bg: #1a0e0e;--srs-new-color: #58a6ff;--srs-new-bg: #0d2240;--srs-learning-color: #e3b341;--srs-learning-bg: #1a1505;--srs-mastered-color: #3fb950;--srs-mastered-bg: #0d2818;--heatmap-l1: #0e4429;--heatmap-l2: #006d32;--heatmap-l3: #26a641;--heatmap-l4: #39d353;--loading-grid-light: #21262d;--loading-grid-dark: #161b22;--loading-piece: #e6edf3;--loading-dot: #484f58;--loading-line: #30363d;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .1s ease;--transition-default: .15s ease;--transition-slow: .3s ease;--status-green: #3fb950;--status-amber: #e3b341;--status-red: #f85149;--status-blue: #58a6ff;--status-purple: #a78bfa;--graph-main-color: #c9d1d9;--graph-node-stroke: #161b22;--graph-label-color: #e6edf3;--graph-label-branch: inherit;--graph-trunk-color: #8b949e;--graph-minimap-bg: #1c2128;--graph-selection: #58a6ff;--graph-highlight: #58a6ff;--graph-bg: #0d1117;--tree-connector-color: rgba(139, 148, 158, .4);--graph-nag-color: #7d8590;--graph-indicator-color: #656d76;--graph-edge-main: #b1bac4;--graph-edge-side: #484f58;--graph-node-default: #7d8590;--graph-expand-bg: #484f58;--graph-expand-text: #e6edf3;--graph-collapse-bg: #30363d;--graph-collapse-stroke: #484f58;--graph-collapse-text: #8b949e;--graph-comment-blue: #58a6ff;--graph-notes-green: #3fb950;--explore-accent: var(--purple-accent);--explore-accent-bg: var(--purple-bg);--explore-accent-border: var(--purple-border);--explore-accent-text: var(--purple-text);--coverage-covered: var(--color-correct);--coverage-covered-bg: var(--color-correct-bg);--coverage-covered-border: var(--color-correct-border);--coverage-thin: var(--color-amber);--coverage-thin-bg: var(--color-amber-bg);--coverage-thin-border: var(--color-amber-border);--coverage-gap: var(--color-error);--coverage-gap-bg: var(--color-error-bg);--coverage-gap-border: var(--color-error-border);--graph-preview-node: var(--stone-400);--graph-covered-node: var(--color-correct);--graph-covered-edge: var(--color-correct);--graph-uncovered-node: var(--color-error);--graph-uncovered-edge: var(--color-error);--graph-partial-node: var(--color-amber);--graph-partial-edge: var(--color-amber);--graph-staged-node: var(--purple-accent);--graph-staged-edge: var(--purple-accent);--graph-staged-dim: var(--stone-600);--graph-theory-node: var(--stone-500);--graph-theory-edge: var(--stone-400);--graph-dimmed-opacity: .3;color-scheme:dark}[data-theme=dark] select,[data-theme=dark] select option{background-color:var(--bg-surface);color:var(--text-primary)}[data-theme=dark] input{color:var(--text-primary)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;color:var(--text-primary);background:var(--bg-page)}#root{min-height:100vh}a{color:var(--accent-blue)}
