:root{--paper:#f3f5f4;--surface:#fff;--ink:#17232b;--ink-soft:#55656e;--line:#d8dfdc;--square-light:#e3e8df;--square-dark:#6f8f86;--accent:#2453c9;--accent-ink:#fff;--win:#2f7d4b;--draw:#b3b9bc;--loss:#b33a3a;--focus:#2453c9;--radius-s:4px;--radius-m:10px;--nav-h:64px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Instrument Sans,system-ui,sans-serif;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#121a1f;--surface:#1b252b;--ink:#e6ecea;--ink-soft:#94a3a0;--line:#2c3a40;--square-light:#3a4a46;--square-dark:#24322f;--accent:#7a9cf5;--accent-ink:#0d1520;--win:#4fa56e;--draw:#5f686c;--loss:#e06a6a;--focus:#7a9cf5}}*{box-sizing:border-box}body{background:var(--paper);min-height:100dvh;margin:0}h1,h2,h3{margin:0;line-height:1.15}h1{letter-spacing:-.01em;font-size:1.75rem;font-weight:650}h2{font-size:1.125rem;font-weight:600}a{color:inherit}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-soft)}.shell{grid-template-columns:1fr;min-height:100dvh;display:grid}.main{width:100%;min-width:0;max-width:1180px;padding:24px 16px calc(var(--nav-h) + 32px);margin:0 auto}.nav{height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);z-index:10;display:flex;position:fixed;inset:auto 0 0}.nav-brand{display:none}.nav a{color:var(--ink-soft);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.8125rem;text-decoration:none;display:flex}.nav a.active{color:var(--ink);font-weight:600}.nav svg{width:22px;height:22px}@media (width>=860px){.shell{grid-template-columns:220px 1fr}.nav{border-top:0;border-right:1px solid var(--line);flex-direction:column;justify-content:flex-start;gap:4px;height:100dvh;padding:24px 12px;position:sticky;top:0}.nav-brand{align-items:center;gap:10px;padding:0 12px 24px;font-size:1.125rem;font-weight:650;display:flex}.nav a{border-radius:var(--radius-m);flex-direction:row;flex:none;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:.9375rem}.nav a.active{background:var(--paper)}.main{padding:40px 32px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:20px;display:flex}.btn{border-radius:var(--radius-m);background:var(--accent);min-height:44px;color:var(--accent-ink);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.secondary{color:var(--ink);border-color:var(--line);background:0 0}.btn.small{min-height:36px;padding:0 12px;font-size:.875rem}.field{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);min-height:44px;padding:0 12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;min-height:34px;padding:0 12px;font-size:.875rem}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filters{gap:10px;margin-bottom:24px;display:grid}.filter-row{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.filter-row>.label{width:100%;color:var(--ink-soft);font-size:.8125rem}@media (width>=600px){.filter-row>.label{width:96px}}.more-filters>summary{cursor:pointer;align-items:center;gap:4px;width:fit-content;min-height:34px;font-size:.875rem;font-weight:600;list-style:none;display:flex}.more-filters>summary::-webkit-details-marker{display:none}.more-filters>summary:before{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-right:6px;transition:transform .15s;transform:rotate(-45deg)}.more-filters[open]>summary:before{transform:rotate(45deg)}.more-filters>.filters{margin:8px 0 0}.tally{gap:14px;margin-bottom:28px;display:grid}.tally-figures{flex-wrap:wrap;align-items:baseline;gap:4px 20px;display:flex}.tally-big{letter-spacing:-.02em;font-size:2.5rem;font-weight:650;line-height:1}.tally-split{flex-wrap:wrap;gap:2px 14px;display:flex}.tally-split span{white-space:nowrap}.dot{vertical-align:0;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.dot.win{background:var(--win)}.dot.draw{background:var(--draw)}.dot.loss{background:var(--loss)}.form-rank{grid-template-columns:repeat(var(--cells), 1fr);border-radius:var(--radius-s);max-width:640px;display:grid;overflow:hidden}.form-rank .cell{aspect-ratio:1;place-items:center;display:grid}.form-rank .cell:nth-child(odd){background:var(--square-light)}.form-rank .cell:nth-child(2n){background:var(--square-dark)}.form-rank .cell i{border-radius:50%;width:46%;height:46%}.form-rank .cell.win i{background:var(--win)}.form-rank .cell.loss i{background:var(--loss)}.form-rank .cell.draw i{background:var(--paper);box-shadow:inset 0 0 0 2px var(--draw)}.form-caption{color:var(--ink-soft);font-size:.8125rem}.game-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.game{border-bottom:1px solid var(--line);grid-template-columns:6px 1fr auto;gap:4px 14px;padding:12px 0;display:grid}.game-bar{border-radius:3px;grid-row:span 2}.game-bar.win{background:var(--win)}.game-bar.draw{background:var(--draw)}.game-bar.loss{background:var(--loss)}.game-opp{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.game-meta{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.game-side{text-align:right;color:var(--ink-soft);flex-direction:column;grid-row:span 2;align-items:flex-end;gap:2px;font-size:.8125rem;display:flex}.game-side a{color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px}.add-form{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=600px){.add-form{grid-template-columns:170px 1fr auto}}.accounts{gap:12px;margin:24px 0 0;padding:0;list-style:none;display:grid}.account{gap:10px;display:grid}.account-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.account-actions{flex-wrap:wrap;gap:8px;display:flex}.progress{background:var(--square-light);border-radius:3px;height:6px;overflow:hidden}.progress>span{background:var(--square-dark);height:100%;transition:width .3s;display:block}.progress.indeterminate>span{width:30%;animation:1.2s ease-in-out infinite slide}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(340%)}}@media (prefers-reduced-motion:reduce){.progress.indeterminate>span{opacity:.5;width:100%;animation:none}}.error{color:var(--loss);font-size:.875rem}.empty{justify-items:start;gap:14px;max-width:46ch;padding:40px 0;display:grid}:root{--c-brilliant:#148f8f;--c-only:#36c;--c-best:#2f7d4b;--c-excellent:#4f9a68;--c-good:#7a8287;--c-book:#8a6d4b;--c-inaccuracy:#b98a10;--c-mistake:#d0661c;--c-blunder:#c02f2f}@media (prefers-color-scheme:dark){:root{--c-brilliant:#3cc4c4;--c-only:#6f9cf0;--c-best:#4fa56e;--c-excellent:#73b88b;--c-good:#98a2a6;--c-book:#c4a07a;--c-inaccuracy:#e2b43a;--c-mistake:#ef8a45;--c-blunder:#ec6262}}.badge{color:#fff;background:var(--c-good);border-radius:6px;place-items:center;min-width:26px;height:22px;padding:0 5px;font-size:.75rem;font-weight:700;display:inline-grid}.badge.brilliant{background:var(--c-brilliant)}.badge.only{background:var(--c-only)}.badge.best{background:var(--c-best)}.badge.excellent{background:var(--c-excellent)}.badge.book{background:var(--c-book)}.badge.inaccuracy{background:var(--c-inaccuracy)}.badge.mistake{background:var(--c-mistake)}.badge.blunder{background:var(--c-blunder)}.board-wrap{aspect-ratio:1;width:100%;position:relative;overflow:clip}.board-wrap .cg-wrap{position:absolute;inset:0}.analysis{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=1100px){.analysis{grid-template-columns:minmax(0,560px) minmax(300px,1fr);align-items:start}.an-side{max-height:calc(100dvh - 160px);padding-right:4px;overflow-y:auto}}.an-board-row{grid-template-columns:18px minmax(0,1fr);gap:8px;display:grid}.eval-bar{background:#2b2f31;border-radius:4px;position:relative;overflow:hidden}.eval-bar .eb-fill{background:#eef0ee;transition:height .3s;position:absolute;bottom:0;left:0;right:0}.eval-bar.black .eb-fill{top:0;bottom:auto}.eb-label{text-align:center;writing-mode:vertical-rl;font-size:.5625rem;font-weight:700;position:absolute;left:0;right:0;transform:rotate(180deg)}.eval-bar.white .eb-label.low,.eval-bar.black .eb-label.high{color:#2b2f31;bottom:4px}.eval-bar.white .eb-label.high,.eval-bar.black .eb-label.low{color:#eef0ee;top:4px}.an-controls{flex-wrap:wrap;gap:6px;margin:12px 0 0 26px;display:flex}.an-controls .btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.eval-graph{margin:14px 0 0 26px}.eval-graph svg{cursor:pointer;touch-action:pan-y;border-radius:4px;width:100%;height:96px;display:block}.eg-black{fill:#3a4044}.eg-white{fill:#e8ece9}.eg-mid{stroke:var(--square-dark);stroke-width:1px;vector-effect:non-scaling-stroke}.eg-cursor{stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.eg-hover{stroke:var(--ink-soft);stroke-width:1px;vector-effect:non-scaling-stroke}.eg-dot{stroke:var(--surface);stroke-width:2px}.eg-dot.mistake{fill:var(--c-mistake)}.eg-dot.blunder{fill:var(--c-blunder)}.eg-tip{min-height:1.5em;color:var(--ink-soft);white-space:pre;text-overflow:ellipsis;margin:6px 0 0;font-size:.8125rem;overflow:hidden}.an-side{align-content:start;gap:16px;min-width:0;display:grid}.an-players{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.an-acc-note{grid-column:span 2;font-size:.8125rem}.piece-dot{border:1px solid var(--ink-soft);vertical-align:-1px;border-radius:50%;width:12px;height:12px;display:inline-block}.piece-dot.white{background:#fff}.piece-dot.black{background:#222}.an-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-m);gap:6px;padding:12px 14px;display:grid}.an-card p{margin:0}.an-card.cls-brilliant{border-left-color:var(--c-brilliant)}.an-card.cls-only{border-left-color:var(--c-only)}.an-card.cls-best,.an-card.cls-excellent{border-left-color:var(--c-best)}.an-card.cls-inaccuracy{border-left-color:var(--c-inaccuracy)}.an-card.cls-mistake{border-left-color:var(--c-mistake)}.an-card.cls-blunder{border-left-color:var(--c-blunder)}.an-card.variation{border-left-color:var(--accent)}.an-verdict{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.engine-lines{gap:4px;display:grid}.el-head{margin:0;font-size:.8125rem}.el-line{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);text-align:left;cursor:pointer;grid-template-columns:56px 1fr;gap:8px;padding:6px 8px;font-size:.875rem;display:grid}.el-score{font-weight:700}.el-pv{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.move-list{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.move-list li{grid-template-columns:40px 1fr 1fr;align-items:stretch;display:grid}.move-list li:nth-child(2n){background:var(--paper)}.mv-no{color:var(--ink-soft);padding:6px 8px;font-size:.8125rem}.mv{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:34px;padding:6px 8px;display:flex}.mv[aria-current=true]{background:var(--accent);color:var(--accent-ink);border-radius:4px}.mv-san{font-weight:600}.mv-sym{font-size:.75rem;font-weight:800}.mv.brilliant .mv-sym{color:var(--c-brilliant)}.mv.only .mv-sym{color:var(--c-only)}.mv.best .mv-sym,.mv.excellent .mv-sym{color:var(--c-best)}.mv.book .mv-sym{color:var(--c-book)}.mv.inaccuracy .mv-sym{color:var(--c-inaccuracy)}.mv.mistake .mv-sym{color:var(--c-mistake)}.mv.blunder .mv-sym{color:var(--c-blunder)}.mv[aria-current=true] .mv-sym{color:inherit}.mv-clock{color:var(--ink-soft);margin-left:auto;font-size:.75rem}.mv[aria-current=true] .mv-clock{color:inherit}.an-section{gap:10px;display:grid}.chip.turn{border-left-width:4px}.chip.turn.inaccuracy{border-left-color:var(--c-inaccuracy)}.chip.turn.mistake{border-left-color:var(--c-mistake)}.chip.turn.blunder{border-left-color:var(--c-blunder)}.cls-table{border-collapse:collapse;width:100%;max-width:420px;font-size:.875rem}.cls-table th,.cls-table td{text-align:right;padding:4px 6px}.cls-table tbody th{text-align:left;font-weight:500}.cls-table thead th{color:var(--ink-soft);font-weight:600}.pgn-form{gap:10px;display:grid}textarea.field{resize:vertical;padding:10px 12px;font-family:ui-monospace,monospace;font-size:.875rem}.nav a{min-width:0;font-size:.6875rem}.nav-secondary{display:none}@media (width>=860px){.nav a{font-size:.9375rem}.nav-more{display:none!important}.nav-secondary{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:12px;padding-top:12px;display:flex}}.more-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.more-list a{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);grid-template-columns:28px 1fr;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:grid}.more-list svg{width:24px;height:24px}.more-list span{gap:2px;display:grid}.more-list .muted{font-size:.875rem}.queue{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);gap:8px;margin-bottom:24px;padding:14px 16px;display:grid}.queue-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.queue-active{color:var(--ink-soft);margin:0;padding:0;font-size:.8125rem;list-style:none}a.game{color:inherit;text-decoration:none}a.game:hover .game-opp{text-decoration:underline}.game-acc{color:var(--ink);font-weight:600}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:24px;display:flex;overflow-x:auto}.tab{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:10px 14px;font-weight:500}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.tab-panel{gap:32px;display:grid}.stats-section{gap:12px;display:grid}.section-note{margin:-6px 0 0;font-size:.875rem}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px 24px;display:grid}.stat{align-content:start;gap:2px;display:grid}.stat-value{letter-spacing:-.01em;font-size:2rem;font-weight:650;line-height:1.1}.stat-label{font-weight:500}.stat-note{font-size:.8125rem}.tips{counter-reset:tip;gap:12px;margin:0;padding:0;list-style:none;display:grid}.tips li{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);counter-increment:tip;gap:4px;padding:14px 16px 14px 52px;display:grid;position:relative}.tips li:before{content:counter(tip);background:var(--square-dark);color:#fff;border-radius:4px;place-items:center;width:26px;height:26px;font-size:.875rem;font-weight:700;display:grid;position:absolute;top:14px;left:14px}.tips a{color:var(--accent);width:fit-content;font-weight:600}.result-bar{gap:2px;width:100%;min-width:80px;height:10px;display:flex}.result-bar i{border-radius:2px;height:100%;display:block}.result-bar .win{background:var(--win)}.result-bar .draw{background:var(--draw)}.result-bar .loss{background:var(--loss)}.stat-note .result-bar{max-width:160px;margin-top:4px}.table-scroll{overflow-x:auto}.stats-table{border-collapse:collapse;width:100%;font-size:.9375rem}.stats-table th,.stats-table td{border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;padding:9px 10px}.stats-table th:first-child{text-align:left;white-space:normal;min-width:160px}.stats-table thead th{color:var(--ink-soft);font-size:.8125rem;font-weight:600}.stats-table tbody th{font-weight:500}.stats-table td:nth-child(3){width:22%}.stats-table.compact td:nth-child(3){width:auto}.stats-table tr.variant th{padding-left:28px;font-size:.875rem;font-weight:400}.stats-table a{color:var(--accent)}.link-btn{cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}@media (width<=599px){.hide-sm{display:none}}.bar-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.bar-list li>*{min-height:32px;color:inherit;grid-template-columns:minmax(110px,30%) 1fr auto;align-items:center;gap:12px;text-decoration:none;display:grid}.bar-list a:hover .bl-label{text-decoration:underline}.bl-label{font-size:.9375rem}.bl-track{background:color-mix(in srgb, var(--line) 50%, transparent);border-radius:2px;height:12px;overflow:hidden}.bl-track i{background:var(--square-dark);border-radius:0 4px 4px 0;height:100%;display:block}.bl-track i.loss{background:var(--loss)}.bl-track i.win{background:var(--win)}.bl-value{text-align:right;min-width:64px;font-size:.875rem}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.line-chart{margin:0}.line-chart figcaption{margin-bottom:6px;font-weight:600}.line-chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.lc-grid{stroke:var(--line);stroke-width:1px}.lc-tick{fill:var(--ink-soft);font-family:inherit;font-size:11px}.lc-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.lc-cross{stroke:var(--ink-soft);stroke-width:1px;stroke-dasharray:3 3}.lc-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.lc-tip{color:var(--ink-soft);margin:2px 0 0;font-size:.8125rem}.chart-empty{font-size:.875rem}.plain-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.plain-list a{color:var(--accent)}.tag{background:var(--square-light);color:var(--ink);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem;display:inline-block}.up{color:var(--win);font-weight:600}.down{color:var(--loss);font-weight:600}.puzzle{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=900px){.puzzle{grid-template-columns:minmax(0,520px) minmax(260px,1fr);align-items:start}}.puzzle-side{align-content:start;gap:14px;display:grid}.puzzle-side a{color:var(--accent)}.session-head,.start-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:16px;display:flex}.start-row{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);margin-top:8px;padding:14px 16px}.explorer,.trainer{grid-template-columns:minmax(0,1fr);gap:24px;display:grid}@media (width>=1000px){.explorer,.trainer{grid-template-columns:minmax(0,480px) minmax(300px,1fr);align-items:start}}.explorer-side,.trainer-side{align-content:start;gap:20px;min-width:0;display:grid}.crumbs{flex-wrap:wrap;gap:4px 10px;font-size:.9375rem;display:flex}.crumbs .link-btn{font-weight:500}.crumbs .link-btn:last-child{font-weight:700}.explorer-table th:first-child{min-width:90px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.card-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.list-rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.list-rows li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:10px 0;display:flex}.list-rows a,.list-rows .link-btn{color:var(--accent)}.settings-grid{gap:16px;max-width:680px;display:grid}.setting{gap:8px;display:grid}.setting label{font-weight:600}.setting .hint{color:var(--ink-soft);margin:0;font-size:.875rem}.danger{border-color:color-mix(in srgb, var(--loss) 40%, var(--line))}.btn.danger-btn{background:var(--loss);color:#fff}
