:root{--bg-dark:#0f1015;--panel-bg:#14161eb3;--glass-bg:#ffffff05;--glass-border:#ffffff0f;--glass-hover:#ffffff0f;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent:#8b5cf6;--accent-hover:#7c3aed;--accent-glow:#8b5cf659;--success:#10b981;--success-bg:#10b98126;--success-border:#10b98166;--warning:#f59e0b;--warning-bg:#f59e0b26;--warning-border:#f59e0b66;--error:#ef4444;--error-bg:#ef444426;--error-border:#ef444466;--font-family:"Outfit", "Inter", system-ui, -apple-system, sans-serif;--shadow-lg:0 20px 25px -5px #0000004d, 0 10px 10px -5px #0003;--board-size:480px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-family);letter-spacing:-.01em;height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.container{width:100vw;height:100vh;display:flex;overflow:hidden}.left-wing,.right-wing{background-color:var(--panel-bg);-webkit-backdrop-filter:blur(20px);border-color:var(--glass-border);border-style:solid;flex-direction:column;flex-shrink:0;width:320px;height:100%;padding:24px;display:flex;overflow-y:auto}.left-wing{border-width:0 1px 0 0}.right-wing{border-width:0 0 0 1px}.brand{text-align:center;margin-bottom:32px}.brand h1{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text-primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:28px;font-weight:800;display:inline-block}.brand span{text-transform:uppercase;color:var(--text-muted);letter-spacing:.15em;margin-top:4px;font-size:11px;display:block}textarea,select{background:var(--glass-bg);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);border-radius:8px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;transition:all .2s}textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}select option{color:var(--text-primary);background-color:#16171d}.mode-select-tabs{border:1px solid var(--glass-border);background:#0003;border-radius:8px;gap:8px;margin-bottom:24px;padding:4px;display:flex}.mode-tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:700;transition:all .2s;display:flex}.mode-tab-btn:hover{color:var(--text-primary)}.mode-tab-btn.active{background:var(--accent);color:#fff;box-shadow:0 0 10px var(--accent-glow)}textarea{resize:none;height:120px;margin-top:8px;font-size:13px;line-height:1.5}section{margin-bottom:28px}h3{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}h3 i{color:var(--accent)}.filter-group{margin-bottom:16px}.filter-group label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.filter-group label.filter-chip{letter-spacing:.2px;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;width:auto;margin-bottom:8px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.filter-group label.filter-chip i{opacity:.9;font-size:10px}.filter-group label.filter-chip.fc-phase{color:#c084fc;background:#8b5cf626;border-color:#8b5cf647}.filter-group label.filter-chip.fc-theme{color:#93c5fd;background:#3b82f626;border-color:#3b82f647}.filter-group label.filter-chip.fc-gamephase{color:#fde047;background:#f59e0b26;border-color:#f59e0b47}.filter-group label.filter-chip.fc-quality{color:#cbd5e1;background:#94a3b824;border-color:#94a3b84d}.btn{cursor:pointer;border:1px solid var(--glass-border);background:var(--glass-bg);width:100%;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{background:var(--glass-hover)}.primary-btn{background:var(--accent);border-color:var(--accent)}.primary-btn:hover{background:var(--accent-hover);box-shadow:0 0 15px var(--accent-glow)}.success-btn{background:var(--success);border-color:var(--success)}.success-btn:hover{box-shadow:0 0 15px #10b98159}.warning-btn{background:var(--warning);border-color:var(--warning)}.warning-btn:hover{box-shadow:0 0 15px #f59e0b59}.center-piece{flex-direction:column;flex-grow:1;justify-content:flex-start;align-items:center;height:100%;padding:16px 20px 20px;display:flex;position:relative;overflow-y:auto}.status-banner{text-align:center;word-break:keep-all;width:100%;max-width:500px;box-shadow:var(--shadow-lg);box-sizing:border-box;border-radius:12px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;height:68px;margin-bottom:12px;padding:8px 18px;font-size:12.5px;font-weight:600;line-height:1.3;transition:background .3s,border-color .3s;display:flex;overflow-y:auto}.status-banner .sb-inner{text-align:center;width:100%}.app-dialog{border:1px solid var(--glass-border);color:#e5e7eb;width:calc(100% - 48px);max-width:340px;box-shadow:var(--shadow-lg);background:#161a24;border-radius:14px;max-height:calc(100% - 48px);margin:0;padding:0;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.app-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c1299}.app-dialog[open]{flex-direction:column;display:flex}.app-dialog .dlg-appbar{border-bottom:1px solid var(--glass-border);flex:none;align-items:center;gap:10px;padding:13px 16px 11px;display:flex}.app-dialog .dlg-appbar h3{color:#fff;margin:0;font-size:15px;font-weight:800}.app-dialog .dlg-x{color:#9ca3af;cursor:pointer;background:#ffffff0f;border:0;border-radius:50%;flex:none;width:30px;height:30px;margin-left:auto;font-size:13px}.app-dialog .dlg-x:hover{color:#fff;background:#ffffff1f}.app-dialog .dlg-body{color:#cbd2dc;white-space:pre-line;word-break:keep-all;padding:16px;font-size:13px;line-height:1.5}.app-dialog .dlg-actions{justify-content:flex-end;gap:8px;padding:0 16px 16px;display:flex}.app-dialog .dlg-btn{cursor:pointer;border:0;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700}.app-dialog .dlg-cancel{color:#cbd2dc;background:#ffffff14}.app-dialog .dlg-cancel:hover{background:#ffffff24}.app-dialog .dlg-danger{color:#fff;background:#ef4444}.app-dialog .dlg-danger:hover{background:#dc2626}.app-dialog .dlg-primary{background:var(--accent);color:#fff}.app-dialog .dlg-primary:hover{background:var(--accent-hover)}.status-banner.normal{background:var(--panel-bg);border:1px solid var(--glass-border)}.status-banner.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}.status-banner.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error)}.board-meta-row{width:var(--board-size,480px);flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.board-meta-right{align-items:center;gap:8px;display:flex}.board-flip-btn{color:#9ca3af;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:10px;line-height:1;transition:background .15s,color .15s;display:inline-flex}.board-flip-btn:hover{color:#e5e7eb;background:#ffffff1f}.mode-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700}.mode-badge.replay-mode{color:var(--accent);background:#8b5cf626;border:1px solid #8b5cf64d}.mode-badge.train-mode{color:var(--warning);background:#f59e0b26;border:1px solid #f59e0b4d}.timer-container{color:var(--text-secondary);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.board-container{border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);background:#ffffff03;border-radius:16px;margin-bottom:12px;padding:12px}#board .square-55d63{position:relative}#board .square-55d63.highlight-last{box-shadow:inset 0 0 0 4px #fbbf24b8}#board .square-55d63.click-selected{box-shadow:inset 0 0 0 4px #8b5cf6d9}.controls-row{width:var(--board-size,480px);flex-shrink:0;justify-content:center;display:flex}.control-group{gap:12px;width:100%;display:flex}.control-group .btn{white-space:nowrap;flex:1;font-size:13px}.tabs-header{border-bottom:1px solid var(--glass-border);width:100%;margin-bottom:20px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 0;font-family:inherit;font-size:13px;font-weight:700;transition:color .2s;position:relative}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent)}.tab-btn.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.tabs-content{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}.tab-panel{height:100%;display:none;overflow-y:auto}.tab-panel.active{flex-direction:column;display:flex}.empty-list-placeholder{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13px;line-height:1.5}#puzzle-list{flex-direction:column;gap:10px;padding:2px 10px;list-style:none;display:flex}#puzzle-list li{background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;border-radius:8px;flex-direction:column;gap:6px;padding:12px 16px;transition:all .2s;display:flex}#puzzle-list li:hover{background:var(--glass-hover);border-color:var(--accent);transform:translate(4px)}#puzzle-list li.active{border-color:var(--accent);background:#8b5cf60d;box-shadow:inset 0 0 10px #8b5cf61a}.puzzle-meta{justify-content:space-between;align-items:center;display:flex}.puzzle-title{color:var(--text-primary);font-size:14px;font-weight:700}.puzzle-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.badge-blunder{background:var(--error-bg);color:#fca5a5}.badge-mistake{color:#fdba74;background:#f59e0b26}.badge-great{color:#93c5fd;background:#3b82f626}.badge-brilliant{color:#d8b4fe;background:#8b5cf633}.puzzle-details{color:var(--text-secondary);flex-wrap:wrap;gap:6px;font-size:11px;display:flex}.puzzle-detail-tag{border:1px solid var(--glass-border);background:#ffffff08;border-radius:4px;padding:2px 6px}.puzzle-game-block{line-height:1.3}.puzzle-game-title{color:#a78bfa;opacity:.9;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.puzzle-game-title.one-line{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.puzzle-game-title .pg-side{align-items:center;gap:3px;display:inline-flex}.puzzle-game-title .pg-k{font-size:12px;line-height:1}.puzzle-game-title .pg-white{color:#f3f4f6}.puzzle-game-title .pg-black,.puzzle-game-title .pg-vs{color:#6b7280}.puzzle-game-date{color:#6b7280;margin-top:2px;font-size:9.5px}.puzzle-index{color:#c4b5fd;background:#8b5cf633;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;margin-right:6px;padding:0 5px;font-size:10px;font-weight:800;display:inline-flex}.puzzle-submeta{color:#9ca3af;margin-top:2px;margin-left:24px;font-size:10.5px}.spoiler-chip.spoiler-hidden{cursor:help;-webkit-user-select:none;user-select:none;letter-spacing:2px}.puzzle-badge.spoiler-hidden{color:#94a3b8!important;background:#94a3b824!important}.puzzle-list-toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.spoiler-toggle{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-family:inherit;font-size:11px;font-weight:700;transition:all .15s;display:inline-flex}.spoiler-toggle:hover{border-color:var(--accent);color:var(--text-primary)}.spoiler-toggle.on{border-color:var(--accent);color:#c4b5fd;background:#8b5cf626}.notation-viewer{flex-direction:column;gap:8px;padding-bottom:20px;display:flex}.move-row{border-radius:4px;padding:4px 8px;font-size:14px;display:flex}.move-num{width:40px;color:var(--text-muted)}.move-ply{cursor:pointer;box-sizing:border-box;border-radius:3px;flex:1;justify-content:space-between;align-items:center;gap:4px;padding:2px 6px;display:flex}.move-ply:hover{background:var(--glass-hover)}.move-ply.active{background:var(--accent);color:#fff;font-weight:700}.move-ply-spacer{pointer-events:none;box-sizing:border-box;flex:1;padding:2px 6px}.solve-mode-toggle{gap:6px;margin-top:4px;display:flex}.solve-mode-btn{color:var(--text-secondary,#aaa);background:var(--glass-bg,#ffffff0a);cursor:pointer;border:1px solid #ffffff1a;border-radius:6px;flex:1;padding:7px 8px;font-size:12px;font-weight:700;transition:all .15s}.solve-mode-btn:hover{border-color:var(--accent)}.solve-mode-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.solve-line-block{background:#ffffff05;border-left:3px solid #ffffff2e;border-radius:4px;margin:8px 0;padding:6px 8px 4px}.solve-line-label{letter-spacing:-.2px;opacity:.9;margin-bottom:2px;font-size:11px;font-weight:800}.solve-line-empty{color:var(--text-muted);padding:2px 6px;font-size:11px}.solve-line-best{background:#22c55e0f;border-left-color:#22c55e}.solve-line-actual{background:#eab3080f;border-left-color:#eab308}.solve-line-mine{background:#a855f712;border-left-color:#a855f7}.solve-explore-branch{background:#06b6d40f;border-radius:0 4px 4px 0;margin:2px 0;padding:2px 4px 2px 0;box-shadow:inset 3px 0 #06b6d4}.solve-explore-clear-row{justify-content:flex-end;margin-top:2px;display:flex}.solve-explore-clear{color:var(--text-secondary,#aaa);cursor:pointer;background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:9px;font-weight:700}.solve-explore-clear:hover{color:#fff;background:#06b6d4}.solve-actual-toggle-row{justify-content:center;margin-top:3px;display:flex}.solve-actual-toggle{color:#eab308;cursor:pointer;background:#eab3081a;border:1px solid #eab30840;border-radius:10px;padding:1px 10px;font-size:9px;font-weight:700}.solve-actual-toggle:hover{background:#eab30833}#solve-candidate-area{margin-top:6px}.solve-cand-list,.solve-cand-empty{min-height:114px}.solve-cand-list{flex-direction:column;gap:4px;display:flex}.solve-cand-panel{background:#8b5cf60f;border:1px solid #8b5cf640;border-radius:6px;padding:6px 8px}.solve-cand-head{color:#c4b5fd;letter-spacing:-.2px;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:12px;font-weight:800;display:flex}.solve-cand-status{letter-spacing:-.2px;font-size:12px;font-weight:800}.solve-cand-status i{margin-right:3px}.solve-cand-status.analyzing{color:#fbbf24}.solve-cand-status.done{color:#10b981}.solve-cand-sub{color:var(--text-secondary,#9ca3af);margin-left:4px;font-size:8.5px;font-weight:600}.solve-cand-empty{color:var(--text-secondary,#9ca3af);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:3px 2px;font-size:12px;font-weight:600;display:flex}.solve-cand-empty i{opacity:.75;font-size:22px}.solve-cand-row{cursor:pointer;border-radius:5px;flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 9px;transition:background .15s;display:flex}.solve-cand-row:hover{background:#8b5cf629}.solve-cand-rank{color:#ffffff80;border:1px solid #ffffff1f;border-radius:3px;flex:none;padding:2px 6px;font-family:monospace;font-size:12px;font-weight:800}.solve-cand-move{color:#c4b5fd;flex:none;min-width:44px;font-family:monospace;font-size:16px;font-weight:900}.solve-cand-pv{color:var(--text-secondary,#9ca3af);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.2px;flex:1 1 0;min-width:0;font-family:monospace;font-size:12.5px;overflow:hidden}.solve-cand-badge{color:#ffffffb3;background:#ffffff0d;border-radius:4px;flex:none;margin-left:auto;padding:2px 8px;font-family:monospace;font-size:13px;font-weight:900}.solve-cand-badge.pos{color:#fbbf24;background:#f59e0b24}.solve-cand-badge.neg{color:#ffffffb3;background:#ffffff0d}.solve-cand-list.expanded .solve-cand-row{flex-wrap:wrap}.solve-cand-list.expanded .solve-cand-pv{white-space:normal;word-break:break-word;text-overflow:clip;flex:0 0 100%;order:5;margin-top:1px;padding-left:2px;line-height:1.55;overflow:visible}.solve-cand-list.expanded .solve-cand-badge{order:4}.solve-cand-head-left{align-items:center;gap:6px;min-width:0;display:flex}.cand-fold-toggle{color:var(--text-secondary,#9ca3af);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #8b5cf64d;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;transition:background .15s,color .15s}.cand-fold-toggle:empty{display:none}.cand-fold-toggle:hover{color:#c4b5fd;background:#8b5cf62e}.cand-fold-toggle i{margin-right:3px;font-size:8px}.solve-line-block.selected{box-shadow:inset 0 0 0 1px #ffffff2e}.solve-line-label{cursor:pointer;align-items:center;display:flex}.solve-mine-warn{color:#fdba74;background:#fb923c1f;border:1px solid #fb923c4d;border-radius:6px;margin-top:4px;padding:3px 7px;font-size:10.5px;font-weight:600;line-height:1.5}.notation-back-row{flex-shrink:0;align-items:center;padding:0 2px 6px;display:flex}.notation-back-btn{color:#cbd5e1;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:11px;font-weight:700;display:inline-flex}.notation-back-btn:hover{color:#fff;background:#ffffff1f}.history-stats{margin:2px 10px 8px}.history-stats>summary{cursor:pointer;color:#c4b5fd;padding:5px 2px;font-size:11px;font-weight:800;list-style:none}.history-stats>summary:before{content:"▸ "}.history-stats[open]>summary:before{content:"▾ "}.history-stats>summary::-webkit-details-marker{display:none}.history-toolbar{justify-content:space-between;align-items:center;gap:8px;padding:4px 10px 6px;display:flex}.hist-selall{color:#cbd5e1;cursor:pointer;align-items:center;gap:6px;font-size:10.5px;font-weight:700;display:flex}.hist-selall input{cursor:pointer}.hist-delete-btn{color:#fca5a5;cursor:pointer;background:#f871711f;border:1px solid #f871714d;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.hist-delete-btn:hover:not(:disabled){background:#f8717138}.hist-delete-btn:disabled{opacity:.4;cursor:default}.hist-tools{align-items:center;gap:6px;display:inline-flex}.hist-plain-btn{color:#cbd5e1;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.hist-plain-btn:hover{color:#fff;background:#ffffff21}.history-detail{list-style:none}.hist-detail-head{background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;margin-bottom:4px;padding:8px 10px}.hist-game{color:#9ca3af;margin-top:3px;font-size:10px}.hist-check{cursor:pointer;flex-shrink:0;margin-right:2px}.history-item.selected{background:#f871710f;border-color:#f8717173}#history-list{flex-direction:column;gap:7px;margin:0;padding:2px 10px;list-style:none;display:flex}.history-item{cursor:pointer;background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;padding:8px 10px}.history-item:hover{background:#ffffff0f}.history-item.expanded{border-color:#8b5cf666}.hist-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.hist-verdict{white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.hv-correct{color:#86efac;background:#4ade8026;border:1px solid #4ade804d}.hv-wrong{color:#fca5a5;background:#f8717126;border:1px solid #f871714d}.hv-partial{color:#fcd34d;background:#fbbf2426;border:1px solid #fbbf244d}.hv-gaveup{color:#cbd5e1;background:#94a3b824;border:1px solid #94a3b84d}.hist-head-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.hist-time{color:#9ca3af;font-size:9.5px;font-weight:600}.hist-chips{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.hist-chips-attr{margin-top:4px}.ht-exact{opacity:.75;font-weight:600}.hist-chip{white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.hist-chip.puzzle-badge{margin-left:0}.hc-phase{color:#c084fc;background:#8b5cf626}.hc-theme{color:#93c5fd;background:#3b82f626}.hc-gamephase{color:#fde047;background:#f59e0b26}.hc-neutral{color:#cbd5e1;background:#94a3b81f}.hc-king{margin-right:3px;font-size:11px;line-height:1}.hc-king.hc-white{color:#f8fafc;text-shadow:0 0 2px #000c}.hc-king.hc-black{color:#64748b}.ht-fast{color:#86efac;background:#4ade8026}.ht-mid{color:#5eead4;background:#2dd4bf24}.ht-slow{color:#fcd34d;background:#f59e0b26}.ht-over{color:#fca5a5;background:#f8717126}.hc-mode{border-radius:999px;padding:2px 7px;font-size:9.5px}.hm-free{color:#5eead4;background:#2dd4bf24;border:1px solid #2dd4bf4d}.hm-inter{color:#fda4af;background:#f43f5e24;border:1px solid #f43f5e52}.hc-mode i{margin-right:3px;font-size:8.5px}.hist-branch-chip{color:#a5b4fc;background:#818cf824;border:1px solid #818cf84d;border-radius:999px;margin-top:5px;padding:2px 7px;font-size:9.5px;font-weight:700;display:inline-block}.hist-sub{border-top:1px solid #ffffff12;margin-top:7px;padding-top:6px}.hist-sub-label{color:#c4b5fd;margin-bottom:3px;font-size:10.5px;font-weight:800}.hist-sub.solve-line-block,.hist-sub.solve-line-block .hist-sub-label{cursor:default}.hist-branch{margin:3px 0 3px 10px}.solve-preview-row{justify-content:center;margin:6px 0 4px;display:flex}.solve-preview-back{color:#fdba74;cursor:pointer;background:#fb923c24;border:1px solid #fb923c52;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-flex}.solve-preview-back:hover{background:#fb923c3d}.solve-actual-end{color:#cbd5e1;letter-spacing:.2px;text-align:center;margin-top:4px;font-size:10.5px;font-weight:700}.move-ply.exploring{outline-offset:-2px;border-radius:3px;outline:2px solid #fbbf24}@keyframes solveFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.solve-result-lines{animation:.32s both solveFadeIn}.solve-result-card{animation:.3s both solveFadeIn}.solve-analyzing{animation:.25s both solveFadeIn}.solve-hist-ply{cursor:default}.solve-hist-ply:hover{background:0 0}.solve-analyzing{color:var(--accent);align-items:center;gap:8px;padding:12px 10px;font-size:12px;font-weight:700;display:flex}.stats-container{flex-direction:column;gap:16px;display:flex}.stat-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;padding:16px}.stat-card h5{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.stat-highlight{color:var(--accent);font-size:20px;font-weight:800}.stat-chart-placeholder{background:var(--glass-bg);border:1px dashed var(--glass-border);text-align:center;height:180px;color:var(--text-muted);border-radius:10px;justify-content:center;align-items:center;padding:20px;font-size:12px;display:flex}@media (width<=1200px){.container{flex-direction:column;height:auto;overflow-y:auto}.left-wing,.right-wing{border-width:0 0 1px;width:100%;height:auto}.center-piece{padding:20px}}#saved-games-list{flex-direction:column;gap:8px;max-height:200px;margin-top:8px;list-style:none;display:flex;overflow-y:auto}#saved-games-list li{background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:8px 12px;font-size:12px;transition:all .2s;overflow:hidden}#saved-games-list li:hover{background:var(--glass-hover);border-color:var(--accent);transform:translate(2px)}#saved-games-list li.active{font-weight:700;box-shadow:0 0 12px #8b5cf666;border:2px solid var(--accent)!important;background:#8b5cf626!important}#sparkline-container{-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 2px 8px #0006}#sparkline-container svg{cursor:pointer;-webkit-user-select:none;user-select:none}#sparkline-container svg text{-webkit-user-select:none;user-select:none;pointer-events:none}#sparkline-path{transition:d .3s;stroke:#8b5cf6!important;stroke-width:2px!important;fill:none!important}#sparkline-tracker-line{transition:x1 .25s cubic-bezier(.25,.8,.25,1),x2 .25s cubic-bezier(.25,.8,.25,1)}#sparkline-tracker-dot{transition:cx .25s cubic-bezier(.25,.8,.25,1),cy .25s cubic-bezier(.25,.8,.25,1)}#sparkline-tracker-val{transition:x .25s cubic-bezier(.25,.8,.25,1),y .25s cubic-bezier(.25,.8,.25,1)}.variation-branch-container{color:var(--text-secondary);background:#8b5cf608;border-left:2px solid #8b5cf659;border-radius:0 6px 6px 0;flex-direction:column;gap:4px;margin:6px 0 10px;padding:8px 12px;font-size:11px;display:flex}.variation-title{color:#fbbf24;letter-spacing:.5px;text-transform:uppercase;align-items:center;gap:4px;font-size:9px;font-weight:800;display:flex}.variation-moves-list{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.variation-move-ply{border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0d;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;transition:all .2s}.variation-move-ply:hover{border-color:var(--accent);color:#fff;background:#8b5cf626;transform:translateY(-1px)}.user-variation-branch-container{color:var(--text-secondary);background:#06b6d40f;border-radius:0 4px 4px 0;flex-direction:column;gap:4px;margin:6px 0;padding:6px 8px 6px 6px;font-size:11px;transition:all .22s ease-in-out;display:flex;box-shadow:inset 3px 0 #06b6d48c}.user-variation-branch-container.active-var-branch{background:#06b6d41a;box-shadow:inset 3px 0 #06b6d4}.variation-moves-list{flex-direction:column;gap:4px;width:100%;margin-top:4px;display:flex}.variation-move-ply,.user-variation-move-ply{border:1px solid var(--glass-border);cursor:pointer;background:#ffffff0a;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700;transition:all .2s;display:inline-block}.variation-move-ply{border-color:#8b5cf640;color:#c084fc!important}.variation-move-ply:hover{border-color:var(--accent);background:#8b5cf626;transform:translate(2px);color:#fff!important}.user-variation-move-ply{border-color:#06b6d440;color:#22d3ee!important}.user-variation-move-ply:hover{background:#06b6d424;border-color:#06b6d4;transform:translate(2px);color:#fff!important}.delete-variation-btn{color:var(--text-secondary,#aaa);cursor:pointer;background:#ffffff14;border-radius:4px;align-items:center;gap:2px;padding:1px 6px;font-size:9px;font-weight:700;transition:all .2s;display:inline-flex}.delete-variation-btn:hover{background:#06b6d4;color:#fff!important}.branch-flag{letter-spacing:.5px;vertical-align:middle;background:#06b6d426;border:1px solid #06b6d466;border-radius:4px;align-items:center;gap:2px;margin-left:6px;padding:1px 4px;font-size:8px;font-weight:800;display:inline-flex;box-shadow:0 1px 2px #0003;color:#22d3ee!important}.user-variation-move-ply.active-var-ply{color:#06212a!important;background:#06b6d4!important;border-color:#22d3ee!important;font-weight:800!important;box-shadow:0 0 5px #06b6d4bf!important}.explorer-move-row{transition:all .2s ease-in-out!important}.explorer-move-row:hover{transform:translate(2px);background:#f59e0b12!important;border-color:#f59e0b4d!important}.custom-select-wrapper{-webkit-user-select:none;user-select:none;width:100%;position:relative}.custom-select-trigger{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.custom-select-trigger:hover{background:var(--glass-hover);border-color:#ffffff40}.custom-select-trigger i{font-size:11px;transition:transform .2s}.custom-select-wrapper.open .custom-select-trigger i{transform:rotate(180deg)}.custom-options-container{border:1px solid var(--glass-border);max-height:280px;box-shadow:var(--shadow-lg);z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1c1917fa;border-radius:8px;display:none;position:absolute;top:105%;left:0;right:0;overflow-y:auto}.custom-option{color:var(--text-secondary);cursor:pointer;padding:8px 14px;font-size:13px;transition:all .15s}.custom-option:hover{color:var(--text-primary);background:#ffffff0d}.custom-option.selected{color:#fbbf24;background:#f59e0b26;font-weight:600}.custom-option-header{text-transform:uppercase;color:#fff6;cursor:pointer;background:#ffffff08;border-top:1px solid #ffffff0d;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:8px 12px;font-size:11px;font-weight:800;display:flex}.custom-option-header:first-child{border-top:none}.custom-option-header i{font-size:9px;transition:transform .2s}.custom-option-header.collapsed i{transform:rotate(-90deg)}.custom-option-sub-group{transition:max-height .2s ease-out;overflow:hidden}.custom-option.is-sub{padding-left:24px}.color-select-group{flex-direction:column;gap:6px;margin-top:14px;margin-bottom:14px;display:flex}.color-select-group label{color:var(--text-secondary);font-size:13px;font-weight:600}.color-options{gap:10px;width:100%;display:flex}.color-radio{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:8px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.color-radio input[type=radio]{display:none}.color-radio:hover{background:var(--glass-hover);color:var(--text-primary)}.color-radio:has(input[type=radio]:checked){color:#fbbf24;background:#f59e0b26;border-color:#f59e0b;font-weight:600}
