:root{--light:#ebecd0;--dark:#779556;--board-border:#4e6b3a;--panel-bg:#262421;--panel-fg:#e8e6e3;--panel-muted:#a9a6a1;--accent:#81b64c;--accent-dark:#5f8f36;--highlight:#ffff3380;--dot-light:#00000024;--dot-dark:#0003;--danger:#e06c5a;--warn:#e6c04b;--card:#302e2b;--border:#3d3a36;--anim:.15s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--panel-fg);background:#1b1a18;font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--panel-bg);align-items:baseline;gap:16px;padding:10px 20px;display:flex}.app-header h1{letter-spacing:.02em;margin:0;font-size:20px}.app-header .tagline{color:var(--panel-muted)}.app-header .spacer{flex:1}.app-main{flex:1;grid-template-columns:minmax(0,min(80vh,100vw - 420px,880px)) 380px;justify-content:center;align-items:start;gap:20px;padding:20px;display:grid}.board-col{flex-direction:column;gap:8px;min-width:0;display:flex}.board-legend{color:var(--panel-muted);margin:0;font-size:12px}.board-legend .goal-chip{vertical-align:-2px;border:1px solid var(--board-border);background:var(--goal-dark) linear-gradient(var(--gm-dir), transparent 0 58%, var(--goal-ink) 58% 64%, var(--goal-tint) 64% 100%);width:12px;height:12px;margin-right:4px;display:inline-block}.goal-chip.goal-blue{--gm-dir:to top right}.goal-chip.goal-red{--gm-dir:to bottom left}.board-wrap{aspect-ratio:1;-webkit-user-select:none;user-select:none;width:100%;position:relative}.board{border:1px solid var(--board-border);grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;height:100%;display:grid;box-shadow:0 8px 24px #00000073}.cell{cursor:pointer;border:0;outline:none;margin:0;padding:0;position:relative;overflow:visible}.cell.light{background:var(--light)}.cell.dark{background:var(--dark)}.cell:focus-visible{box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 5px var(--accent-dark);z-index:2}.cell .coord{pointer-events:none;font-size:11px;font-weight:600;line-height:1;display:none;position:absolute}.cell.light .coord{color:var(--dark)}.cell.dark .coord{color:var(--light)}.cell.show-rank .coord.rank{display:block;top:3px;left:4px}.cell.show-file .coord.file{display:block;bottom:2px;right:4px}.board-wrap.no-coords .coord{display:none!important}.piece-slot{pointer-events:none;z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.piece-slot.moving-hidden .glyph{visibility:hidden}.glyph{filter:drop-shadow(0 2px 3px #00000059);width:86%;height:86%}.cell.selected:before,.cell.last-from:before,.cell.last-to:before{content:"";background:var(--highlight);pointer-events:none;position:absolute;inset:0}.cell.hint:before{content:"";pointer-events:none;background:#81b64c8c;animation:.5s ease-in-out 3 hint-pulse;position:absolute;inset:0}@keyframes hint-pulse{50%{background:#81b64c26}}.cell.legal:after{content:"";background:var(--dot-light);pointer-events:none;border-radius:50%;width:33%;height:33%;position:absolute;top:33.5%;left:33.5%}.cell.dark.legal:after{background:var(--dot-dark)}.cell.capture:after{content:"";background:radial-gradient(circle closest-side, transparent 0, transparent 84%, var(--dot-light) 84%, var(--dot-light) 100%);pointer-events:none;position:absolute;inset:0}.cell.dark.capture:after{background:radial-gradient(circle closest-side, transparent 0, transparent 84%, var(--dot-dark) 84%, var(--dot-dark) 100%)}.goal-blue{--goal-ink:#16294a;--goal-tint:#8fbbf2;--goal-dark:#5a7da5;--goal-light:#a9c4e4}.goal-red{--goal-ink:#3f1310;--goal-tint:#f2978c;--goal-dark:#a5695a;--goal-light:#e0b3a8}.cell.dark.goal-blue,.cell.dark.goal-red{background:var(--goal-dark)}.cell.light.goal-blue,.cell.light.goal-red{background:var(--goal-light)}.cell.goal-red{--gm-rot:0deg}.cell.goal-blue{--gm-rot:180deg}.goal-mark{pointer-events:none;width:100%;height:100%;transform:rotate(var(--gm-rot,0deg));z-index:1;position:absolute;inset:0}.cell.goal:focus-visible .goal-mark{opacity:.4}.gm-win,.gm-frame{opacity:0}.cell.goal-armed .gm-frame{opacity:1;animation:1.6s ease-in-out infinite goal-arm}@keyframes goal-arm{50%{opacity:.45}}.cell.goal-won .gm-win{opacity:1;transform-origin:0 100%;animation:.3s ease-out goal-won}.cell.goal-won .gm-frame{opacity:1;animation:none}@keyframes goal-won{0%{transform:scale(.2)}}@media (prefers-reduced-motion:reduce){.cell.goal-armed .gm-frame{opacity:1;animation:none}.cell.goal-won .gm-win{animation:none}}.cell.drag-over{box-shadow:inset 0 0 0 4px #fff9}.cell.ana-win{box-shadow:inset 0 0 0 4px #4caf50d9}.cell.ana-draw{box-shadow:inset 0 0 0 4px #9e9e9ed9}.cell.ana-loss{box-shadow:inset 0 0 0 4px #d32f2fd9}.cell.shake{animation:.12s linear shake}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-3px)}to{transform:translate(0)}}.anim-layer{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:visible}.anim-piece,.drag-ghost{will-change:transform;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.drag-ghost{z-index:10;opacity:.9}.editor .drag-ghost,body>.drag-ghost{pointer-events:none;width:56px;height:56px;position:fixed;transform:translate(-50%,-50%)}.board-wrap.dragging .cell{cursor:grabbing}.cell.mine,.editor .board .cell,.palette-piece{touch-action:none}button,[role=button],.board,.eval-graph-svg{touch-action:manipulation}.board-wrap,.editor .board,.palette{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}@media (pointer:coarse){.cell.selected:before{box-shadow:inset 0 0 0 3px #ffff33e6}}@media (prefers-reduced-motion:reduce){.anim-piece,.level-seg{transition:none!important}.cell.shake,.cell.hint:before{animation:none}}.game-over{z-index:20;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.game-over[hidden]{display:none}.game-over-box{background:var(--panel-bg);border:1px solid var(--border);text-align:center;border-radius:10px;min-width:280px;padding:22px 28px;box-shadow:0 10px 40px #0009}.game-over-box h2{margin:0 0 6px;font-size:28px}.game-over-box p{color:var(--panel-muted);margin:0 0 16px}.game-over-buttons{justify-content:center;gap:10px;display:flex}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;max-height:calc(100vh - 100px);padding:14px;display:flex;overflow-y:auto}.status{min-height:22px;font-size:16px;font-weight:600}.status.error{color:var(--danger)}.verdict-row{align-items:center;gap:8px;min-height:18px;display:flex}.verdict{color:var(--accent)}.badge{background:var(--accent);color:#10200a;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.badge[hidden]{display:none}.thinking{color:var(--panel-muted);white-space:nowrap;text-overflow:ellipsis;min-height:16px;font-family:ui-monospace,Consolas,monospace;font-size:12px;overflow:hidden}.hover-reason{color:var(--warn);min-height:16px;font-size:12px}.goal-threat{color:var(--danger);min-height:16px;font-size:12px;font-weight:600}.cards{flex-direction:column;gap:6px;display:flex}.card{background:var(--card);border-left:4px solid #0000;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;display:grid}.card.blue{border-left-color:#3d7bd9}.card.red{border-left-color:#d9483b}.card.to-move{outline:1px solid var(--accent)}.card-name{font-weight:600}.card .material{color:var(--panel-muted);font-size:12px}.level-picker{flex-direction:column;grid-column:1/-1;gap:3px;margin-top:4px;display:flex}.level-picker[hidden]{display:none}.level-segments{background:#26241f;border:1px solid #4a4744;border-radius:5px;width:100%;display:flex;overflow:hidden}.level-seg{min-width:0;font:inherit;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:var(--panel-muted);cursor:pointer;transition:background var(--anim) linear, color var(--anim) linear;background:0 0;border:0;border-left:1px solid #4a4744;flex:1 1 0;padding:4px 2px;font-size:11px;line-height:1.3;overflow:hidden}.level-seg:first-child{border-left:0}.level-segments.extra .level-seg{padding-inline:1px;font-size:10px}@media (hover:hover){.level-seg:hover{color:var(--panel-fg);background:#3b3936}}.level-seg.on{background:var(--accent);color:#10200a;font-weight:600}@media (hover:hover){.level-seg.on:hover{color:#10200a;background:#93c95e}}.level-seg:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.jev-row{align-items:stretch;gap:4px;display:flex}.jev-row-label{letter-spacing:.04em;text-transform:uppercase;min-width:22px;color:var(--panel-muted);flex:none;align-self:center;font-size:10px;font-weight:600}.jev-row .level-segments{flex:1 1 0;min-width:0}.level-segments.jev .level-seg{padding-inline:1px;font-size:10px}.level-caption{color:var(--panel-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.jev-read{color:var(--panel-fg);min-height:0;font-size:12px}.jev-read:empty{display:none}.game-over-reads{margin:0 0 8px;font-size:14px}.card .captured{flex-wrap:wrap;grid-column:1/-1;gap:2px;min-height:20px;display:flex}.card .captured .glyph{filter:none;width:20px;height:20px}.counters{color:var(--panel-muted);font-size:12px}.buttons{flex-wrap:wrap;gap:6px;display:flex}.buttons button,.game-over-buttons button,.editor-controls button,.review-nav button,.back-to-live,.dialog-footer button,.tabs button,.quick button,.editor-string button{color:var(--panel-fg);cursor:pointer;background:#3b3936;border:1px solid #4a4744;border-radius:5px;padding:6px 10px}@media (hover:hover){.buttons button:hover:not(:disabled),.game-over-buttons button:hover,.dialog-footer button:hover:not(:disabled){background:#4a4744}}.buttons button:disabled,.dialog-footer button:disabled{opacity:.45;cursor:default}.buttons button[aria-pressed=true]{background:var(--accent);color:#10200a;border-color:var(--accent)}.buttons button.settings{background:0 0}@media (hover:hover){.buttons button.settings:hover:not(:disabled){background:#3b3936}}.buttons .bar-sep{background:#4a4744;flex:0 0 100%;height:1px;margin:2px 0}.buttons .bar-sep[hidden]{display:none}.game-over-buttons button:first-child,.dialog-footer button.primary{background:var(--accent);color:#10200a;font-weight:700}.buttons button[hidden]{display:none}.move-list{flex-direction:column;flex:1;min-height:120px;display:flex;overflow:hidden}.move-list-head{align-items:center;gap:8px;display:flex}.move-list h2{flex:1;margin:0;font-size:14px}.review-nav{gap:2px;display:flex}.review-nav button{padding:2px 6px;font-size:12px}.back-to-live{padding:2px 8px;font-size:12px;background:var(--accent-dark)!important}.back-to-live[hidden]{display:none}.moves{margin:6px 0 0;padding:0;font-family:ui-monospace,Consolas,monospace;font-size:13px;list-style:none;overflow-y:auto}.moves li{grid-template-columns:36px 1fr 1fr;align-items:center;display:grid}.moves li:nth-child(odd){background:#ffffff08}.move-number{color:var(--panel-muted);padding-left:6px}.moves .move{text-align:left;color:var(--panel-fg);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:3px 6px}@media (hover:hover){.moves .move:hover:not(:disabled){background:#ffffff14}}.moves .move.current{background:var(--accent-dark);color:#fff}.moves .move:disabled{cursor:default}.moves .result-row{text-align:center;padding:4px 6px;font-weight:700;display:block}dialog.cc-dialog{background:var(--panel-bg);color:var(--panel-fg);border:1px solid var(--border);border-radius:10px;width:min(1120px,96vw);max-height:92vh;padding:0;box-shadow:0 20px 60px #000000b3}dialog.cc-dialog::backdrop{background:#0009}dialog.cc-dialog[open]{flex-direction:column;display:flex}.dialog-head{border-bottom:1px solid var(--border);align-items:center;padding:12px 18px;display:flex}.dialog-head h2{flex:1;margin:0;font-size:18px}.dialog-body{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;padding:14px 18px;display:grid;overflow:hidden auto}.dialog-body>div{min-width:0}.dialog-footer{border-top:1px solid var(--border);align-items:center;gap:10px;padding:12px 18px;display:flex}.dialog-footer .summary{color:var(--danger);flex:1;font-size:13px}.tabs{gap:4px;margin-bottom:10px;display:flex}.tabs button[aria-selected=true]{background:var(--accent-dark);border-color:var(--accent)}.tab-panel[hidden]{display:none}fieldset.group{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px 4px;min-width:0;margin:0 0 12px;padding:8px 12px 10px;display:flex}fieldset.group>.player-row,fieldset.group>.level-desc,fieldset.group>.master-note,fieldset.group>.issues{flex-basis:100%}fieldset.group legend{color:var(--panel-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 4px;font-size:12px}fieldset.group label{flex-wrap:wrap;align-items:center;gap:6px;margin:3px 12px 3px 0;display:inline-flex}.colour-row{flex-wrap:wrap}.colour-row label{margin:0 4px 0 0}.colour-row .side{white-space:nowrap;width:auto;margin-right:6px}fieldset.group input[type=number]{width:64px}input,select{color:var(--panel-fg);font:inherit;background:#1f1e1c;border:1px solid #4a4744;border-radius:4px;padding:4px 6px}input:disabled,select:disabled{opacity:.5}.preset-cards{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:10px;display:grid}.preset-card{border:2px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;grid-template-columns:90px 1fr;align-items:start;gap:10px;padding:8px;display:grid}.preset-card.checked{border-color:var(--accent)}.preset-card:has(input:checked){border-color:var(--accent)}.preset-card>div{min-width:0}.preset-card input{opacity:0;width:0;height:0;position:absolute}.preset-card .preset-string{overflow-wrap:anywhere;font-family:ui-monospace,Consolas,monospace;font-size:11px}.preset-card .title{margin-bottom:2px;font-weight:700}.preset-card .desc{color:var(--panel-muted);overflow-wrap:anywhere;font-size:12px}.mini-board{aspect-ratio:1;border:1px solid var(--board-border);grid-template-columns:repeat(9,1fr);width:100%;display:grid}.mini-board .sq{justify-content:center;align-items:center;font-size:8px;font-weight:700;line-height:1;display:flex}.mini-board .sq.light{background:var(--light)}.mini-board .sq.dark{background:var(--dark)}.mini-board .sq.goal{background-image:linear-gradient(var(--gm-dir), transparent 0 62%, var(--goal-ink) 62% 66%, var(--goal-tint) 66% 100%)}.mini-board .sq.dark.goal{background-color:var(--goal-dark)}.mini-board .sq.light.goal{background-color:var(--goal-light)}.mini-board .sq.goal-blue{--gm-dir:to top right}.mini-board .sq.goal-red{--gm-dir:to bottom left}.mini-board .sq.b{color:#2b5fb0}.mini-board .sq.r{color:#a9342a}.mini-board.large{max-width:260px}.mini-board.large .sq{font-size:13px}.material-row{align-items:center;gap:8px;margin:4px 0;display:flex}.material-row .side{width:44px;font-weight:600}.quick{gap:4px;margin:6px 0;display:flex}.quick button{padding:2px 8px;font-size:12px}.issues{margin:6px 0 0;padding:0;font-size:13px;list-style:none}.issues li:before{content:"⚠ "}.issues li.error{color:var(--danger)}.issues li.warning{color:var(--warn)}.level-desc{color:var(--panel-muted);margin:2px 0 6px;font-size:12px}.player-row{align-items:center;gap:8px;margin:4px 0;display:flex}.player-row .side{width:44px;font-weight:600}.master-note{color:var(--panel-muted);font-size:12px}fieldset.group>.skill-row{flex-basis:100%;align-items:center;gap:10px;margin:0 0 8px 44px;font-size:12px;display:flex}.skill-row .skill-text{font-variant-numeric:tabular-nums;min-width:118px}.skill-row input[type=range]{max-width:220px;accent-color:var(--accent);flex:1;margin:0}.elo-note{border-top:1px solid #3b3936;margin-top:6px;padding-top:6px}.editor{flex-direction:column;gap:8px;display:flex}.editor .board{aspect-ratio:1;width:min(420px,100%);height:auto;box-shadow:none}.palette{gap:4px;display:flex}.palette-piece{background:var(--card);border:2px solid var(--border);cursor:grab;width:44px;height:44px;color:var(--panel-fg);border-radius:6px;padding:3px;font-size:18px}.palette-piece .glyph{width:100%;height:100%}.palette-piece.active{border-color:var(--accent);background:#2f3f22}.editor-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-controls input[type=number]{width:64px}.editor-counts{font-weight:600}.editor-string{align-items:center;gap:6px;display:flex}.editor-string label{flex:1;align-items:center;gap:6px;display:flex}.editor-string input{flex:1;font-family:ui-monospace,Consolas,monospace;font-size:12px}.editor-half{color:var(--panel-muted);font-family:ui-monospace,Consolas,monospace;font-size:12px}.online-note{background:var(--card);border:1px solid var(--border);color:var(--panel-muted);border-radius:6px;padding:8px 12px}.online{margin-top:10px;font-size:13px}.online .muted,.lobby .muted,.profile .muted{color:var(--panel-muted)}.online .row,.lobby .row,.profile .row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.online button,.lobby button,.profile button,.online-nav button{background:var(--card);color:var(--panel-fg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:5px 10px}@media (hover:hover){.online button:hover:not(:disabled),.lobby button:hover:not(:disabled),.profile button:hover:not(:disabled),.online-nav button:hover{border-color:var(--accent)}}.online button:disabled,.lobby button:disabled,.profile button:disabled{opacity:.5;cursor:default}.lobby button.primary,.online button.primary{background:var(--accent-dark);border-color:var(--accent)}.profile button.link{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}.error-text{color:var(--danger)}.warn-text{color:var(--warn)}.online-dialog .dialog-head{gap:10px}.online-nav{gap:6px;display:flex}.online-body{display:block}.lobby{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;display:grid}.lobby-section{border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:10px 14px}.lobby-section h3,.profile h3{margin:0 0 6px;font-size:15px}.lobby-section h4,.profile h4{color:var(--panel-muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 0 4px;font-size:13px}.lobby-identity{margin-bottom:12px}.lobby-identity input,.lobby .position-input,.profile input{min-width:260px}.lobby .position-input{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:12px}.lobby-room-line{background:var(--card);border-left:4px solid var(--accent);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px 10px;display:flex}.queue-status{min-height:1.4em;color:var(--panel-muted)}.preview-row{align-items:start}.summary-grid{grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:8px;display:grid}.facts{margin:0 0 6px;padding-left:18px}.my-room code,.room-code{letter-spacing:.12em;font-family:ui-monospace,Consolas,monospace;font-weight:700}.room-view{border-top:1px solid var(--border);padding-top:8px}.room-title{font-size:14px;font-weight:600}.net-line{min-height:1.2em}.net-line.error{color:var(--danger)}.net-line.warn{color:var(--warn)}.waiting-box .big-code{letter-spacing:.25em;text-align:center;background:var(--card);border-radius:8px;margin:8px 0;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:34px;font-weight:700}.notice{min-height:1.2em;color:var(--warn)}.rematch-box{margin:6px 0}.card-online{grid-column:1/-1;align-items:center;gap:8px;display:flex}.conn-dot{background:#555;border-radius:50%;width:10px;height:10px;display:inline-block}.conn-dot.on{background:var(--accent)}.conn-dot.off{background:var(--danger)}.clock{font-variant-numeric:tabular-nums;text-align:center;min-width:70px;color:var(--panel-muted);background:#1f1e1c;border-radius:4px;padding:2px 8px;font-family:ui-monospace,Consolas,monospace;font-size:22px}.clock.running{color:var(--panel-fg);background:#3a3934}.clock.low{color:var(--warn)}.clock.critical{color:var(--danger)}.presence-line .clock{background:0 0;min-width:0;padding:0 4px;font-size:13px}.online-over .rating-line{color:var(--accent)}.replay-strip{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.profile-head .big{font-size:28px;font-weight:700}.badge.provisional{margin-left:8px}.own-panels{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0;display:grid}.own-panel{border:1px solid var(--border);border-radius:8px;min-width:0;padding:8px 12px}.own-panel input{flex:1;min-width:0}.recovery-code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;background:#1f1e1c;border-radius:6px;padding:8px;font-family:ui-monospace,Consolas,monospace;font-size:13px;display:block}.table-wrap{overflow-x:auto}.games-table{border-collapse:collapse;width:100%;font-size:13px}.games-table th,.games-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 8px}.games-table tr.win td:nth-child(4){color:var(--accent)}.games-table tr.loss td:nth-child(4){color:var(--danger)}.lobby .mini-board,.room-view .mini-board{flex:none;width:150px}.room-summary .mini-board.large{width:200px}:root{--v-best:#7fb069;--v-excellent:#9ec46c;--v-good:#c9c47a;--v-inaccuracy:#e6c04b;--v-mistake:#e0955a;--v-blunder:#e06c5a;--proof:#6fa8dc}.board-row{align-items:stretch;gap:8px;min-width:0;display:flex}.eval-bar{flex-direction:column;flex:0 0 18px;align-items:center;gap:4px;width:18px;display:flex}.eval-bar[hidden]{display:none}.eval-bar{--eval-blue:#4c86c6;--eval-red:#c25c53}.eval-track{background:var(--eval-red);border:1px solid var(--border);border-radius:3px;flex:1;width:100%;position:relative;overflow:hidden}.eval-bar.bottom-red .eval-track{background:var(--eval-blue)}.eval-fill{height:var(--share,50%);background:var(--eval-blue);transition:height var(--anim) ease-out;position:absolute;bottom:0;left:0;right:0}.eval-bar.bottom-red .eval-fill{background:var(--eval-red)}.eval-bar.pending .eval-track,.eval-bar.pending .eval-fill{background:repeating-linear-gradient(45deg,#4a4844,#4a4844 4px,#3a3835 4px 8px)}.eval-bar.stale .eval-track,.eval-bar.stale .eval-fill{opacity:.55}.eval-mid{border-top:1px dashed #ffffff59;position:absolute;top:50%;left:0;right:0}.eval-readout{color:var(--panel-muted);font-variant-numeric:tabular-nums;font-size:10px}@media (prefers-reduced-motion:reduce){.eval-fill{transition:none}}.eval-graph[hidden]{display:none}.eval-graph-svg{border:1px solid var(--border);cursor:pointer;background:#1f1e1c;border-radius:3px;width:100%;height:72px;display:block}.eval-graph-svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.eg-bg{fill:#2b2a27}.eg-known{fill:#3a3835}.eg-mid{stroke:#ffffff40;stroke-width:.6px;stroke-dasharray:3 3}.eg-line{fill:none;stroke:#dcdcd4;stroke-width:1.6px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.eg-dot{fill:none;stroke-width:1.6px;vector-effect:non-scaling-stroke}.eg-dot.blunder{stroke:var(--v-blunder);stroke-width:2px;fill:#e06c5ad9}.eg-dot.mistake{stroke:var(--v-mistake)}.eg-cursor{stroke:var(--accent);stroke-width:1.2px;vector-effect:non-scaling-stroke}.verdict-badge{color:var(--v-good);margin-left:4px;font-family:ui-monospace,Consolas,monospace;font-size:11px;font-weight:700}.verdict-badge[data-verdict=best]{color:var(--v-best)}.verdict-badge[data-verdict=excellent]{color:var(--v-excellent)}.verdict-badge[data-verdict=good]{color:var(--v-good)}.verdict-badge[data-verdict=inaccuracy]{color:var(--v-inaccuracy)}.verdict-badge[data-verdict=mistake]{color:var(--v-mistake)}.verdict-badge[data-verdict=blunder]{color:var(--v-blunder)}button.move[data-verdict=mistake],button.move[data-verdict=blunder]{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.review-mount,.graph-mount{display:contents}.review-panel{border:1px solid var(--border);background:var(--card);border-radius:4px;flex:auto;min-height:150px;max-height:40vh;padding:8px;overflow-y:auto}.panel.reviewing .review-panel{flex:none;max-height:none;overflow:visible}.panel.reviewing .move-list{flex:none;overflow:visible}.panel.reviewing .moves{max-height:260px}.panel.reviewing .counters{display:none}.eval-graph{flex:none}.board-graph-mount .eval-graph{margin-top:8px}.board-graph-mount .eval-graph[hidden]{display:none}.eval-graph-caption{color:var(--panel-muted);margin-bottom:3px;font-size:11px}.eg-key{white-space:nowrap;margin-left:6px}.eg-key-mark{vertical-align:-1px;border-radius:50%;width:9px;height:9px;margin-right:3px;display:inline-block}.eg-key.blunder .eg-key-mark{background:var(--v-blunder);border:1px solid var(--panel-bg)}.eg-key.mistake .eg-key-mark{border:1.5px solid var(--v-mistake);background:0 0;width:7px;height:7px}.review-panel[hidden]{display:none}.review-head{align-items:center;gap:8px;display:flex}.review-head h2{flex:1;margin:0;font-size:14px}.review-progress{color:var(--panel-muted);align-items:center;gap:6px;margin:4px 0;font-size:12px;display:flex}.review-progress[hidden]{display:none}.review-progress progress{flex:1;height:6px}.review-result{color:var(--panel-muted);margin:4px 0;font-size:12px}.review-headlines .headline{margin:2px 0;font-size:12px}.class-chip{border:1px solid var(--border);white-space:nowrap;border-radius:3px;margin-right:6px;padding:0 4px;display:inline-block}.class-chip[data-verdict=blunder]{border-color:var(--v-blunder)}.class-chip[data-verdict=mistake]{border-color:var(--v-mistake)}.class-chip[data-verdict=best]{border-color:var(--v-best)}.class-glyph{margin-right:3px;font-family:ui-monospace,Consolas,monospace;font-weight:700}.guard-banner{border-left:3px solid var(--warn);background:#e6c04b1a;margin:4px 0;padding:4px 6px;font-size:12px}.review-move{margin:6px 0;font-size:13px}.review-move .played{font-weight:600}.review-move .best-move,.review-move .muted,.key-moments .muted,.review-panel .muted{color:var(--panel-muted);font-size:12px}.review-proofs{margin:6px 0;padding:0;font-size:12px;list-style:none}.review-proofs[hidden]{display:none}.review-proofs li{border-radius:3px;margin:3px 0;padding:3px 6px}.review-proofs li.proof{border:1px solid var(--proof);background:#6fa8dc1f}.review-proofs li.explain{border-left:2px solid var(--border);color:var(--panel-muted)}.ann-mark{letter-spacing:.08em;margin-right:6px;font-size:10px;font-weight:700}.review-proofs li.proof .ann-mark{color:var(--proof)}.review-proofs li.explain .ann-mark{color:var(--panel-muted)}.review-coach{border-left:2px solid var(--border);margin:3px 0 6px;padding:3px 6px;font-size:12px;line-height:1.4}.review-coach[hidden]{display:none}.coach-chip{border:1px solid var(--border);color:var(--panel-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:1px;border-radius:3px;margin-right:6px;padding:0 4px;font-size:10px;display:inline-block}.coach-note{font-size:12px}.review-pv{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.review-pv[hidden]{display:none}.review-pv .pv-text{min-width:120px;color:var(--panel-muted);flex:1;font-family:ui-monospace,Consolas,monospace}.review-panel h3{margin:8px 0 4px;font-size:13px}.key-moments{margin:0;padding:0;font-size:12px;list-style:none}.key-moments li{margin:2px 0}button.key-moment{text-align:left;border:1px solid var(--border);width:100%;color:inherit;background:0 0;border-radius:3px;gap:6px;padding:3px 6px;display:flex}button.key-moment[data-verdict=blunder]{border-left:3px solid var(--v-blunder)}button.key-moment[data-verdict=mistake]{border-left:3px solid var(--v-mistake)}.review-shortfall{border:1px dashed var(--border);color:var(--panel-muted);border-radius:3px;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 0;padding:4px 6px;font-size:11px;display:flex}.review-shortfall[hidden]{display:none}button.resume-deep{color:var(--panel-fg);cursor:pointer;background:#3b3936;border:1px solid #4a4744;border-radius:4px;padding:3px 8px}button.resume-deep[hidden]{display:none}.class-chip{cursor:help}.review-note{color:var(--panel-muted);margin:8px 0 0;font-size:11px}.review-note[hidden]{display:none}.game-over-headline{color:var(--panel-muted);font-size:13px}.game-over-headline[hidden]{display:none}.field-note{color:var(--panel-muted);margin:2px 0 6px 20px;font-size:11px}.cell.ana-best{box-shadow:inset 0 0 0 3px #f2f2ef,inset 0 0 0 6px #17223a}.cell.ana-best-from{box-shadow:inset 0 0 0 2px #f2f2efd9,inset 0 0 0 4px #17223ad9}.cell.ana-best:after,.cell.ana-best-from:after{content:"";pointer-events:none;background:#f2f2ef;border-radius:50%;width:15%;height:15%;position:absolute;top:8%;left:8%;box-shadow:0 0 0 1.5px #17223a}.cell.ana-best-from:after{background:0 0;box-shadow:inset 0 0 0 2px #f2f2ef,0 0 0 1.5px #17223a}dialog.cc-dialog.stats-dialog{width:min(880px,96vw)}.stats-body{display:block}.stats-panel h3{margin:16px 0 6px;font-size:15px}.stats-panel h3:first-child{margin-top:0}.stats-panel h4{color:var(--panel-muted);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 4px;font-size:13px}.stats-status:empty{display:none}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.stat-cell{background:var(--card);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:2px;padding:6px 10px;display:flex}.stat-label{color:var(--panel-muted);font-size:12px}.stat-value{font-size:16px;font-weight:700}.ply-histogram{flex-direction:column;gap:3px;margin-top:6px;display:flex}.ply-row{grid-template-columns:88px minmax(0,1fr) 40px;align-items:center;gap:8px;font-size:12px;display:grid}.ply-track{background:var(--card);border:1px solid var(--border);border-radius:4px;height:12px;display:block;overflow:hidden}.ply-bar{background:var(--accent-dark);height:100%;display:block}.ply-count{text-align:right;color:var(--panel-muted)}.shape-list{margin:4px 0 0;padding-left:18px}.shape-list li{margin-bottom:3px}.rating-box{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.rating-value{margin:4px 0;font-size:20px;font-weight:700}.rating-none{margin:4px 0;font-size:15px;font-weight:700}.rating-rungs{margin:0 0 6px}.rating-caveat,.rating-source,.local-vs-online{margin:4px 0 0;font-size:12px}.stats-dialog .muted,.stats-panel .stat-label{color:var(--panel-muted)}.ladder-table td:first-child{font-weight:600}.ladder-table td:nth-child(2){color:var(--panel-muted);font-size:11px}.ladder-table tr.ladder-group th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--panel-muted);border-bottom:1px solid var(--border);padding-top:10px;font-size:11px;font-weight:600}.ladder-table tr.ladder-group:first-child th{padding-top:0}.ladder-table tr.unplayed td{color:var(--panel-muted);font-style:italic}.games-table tr.win td:nth-child(4),.games-table tr.loss td:nth-child(4){font-weight:600}.games-table button{font:inherit;background:var(--card);color:var(--panel-fg);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:2px 8px;font-size:12px}@media (hover:hover){.games-table button:hover{border-color:var(--accent)}}.games-table button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.online-games{border-top:1px solid var(--border);margin-top:22px;padding-top:6px}.online-rating{margin:4px 0 2px;font-size:15px;font-weight:700}.local-only-note{flex:1;font-size:12px}.replay-note{flex-basis:100%;font-size:12px}.sw-toast{z-index:50;padding:8px max(16px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:var(--card);color:var(--panel-fg);border-top:1px solid var(--border);justify-content:center;align-items:center;gap:12px;font-size:14px;display:flex;position:fixed;bottom:0;left:0;right:0}.sw-toast-reload{border:1px solid var(--accent-dark);background:var(--accent);color:#1b1a18;cursor:pointer;border-radius:6px;padding:6px 14px;font-weight:600}.sw-toast-dismiss{border:1px solid var(--border);width:32px;height:32px;color:var(--panel-muted);cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:18px;line-height:1}@media (max-width:1023px){.app{min-height:100vh;min-height:100dvh;overflow-x:clip}.app-header{padding:8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));flex-wrap:wrap;gap:2px 12px}.app-header .tagline{flex-basis:100%;font-size:12px}.app-main{padding:12px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));grid-template-columns:minmax(0,1fr);justify-content:stretch;gap:12px}.board-col,.panel{min-width:0}.board-row{width:min(100%,62vh);width:min(100%,62dvh);margin:0 auto}.board-wrap{max-width:100%}.panel{max-height:none;overflow:visible}.move-list{min-height:0}.moves{max-height:45vh}.review-panel{max-height:none;overflow:visible}.status,.counters,.card-name,.thinking{overflow-wrap:anywhere}.thinking{white-space:normal;max-height:2.6em}.game-over{padding:12px}.game-over-box{width:min(320px,100%);min-width:0;padding:16px 18px}.game-over-box h2{font-size:22px}.game-over-buttons{flex-wrap:wrap}.game-over-buttons button{flex:40%;min-height:44px}.preset-cards{grid-template-columns:1fr}.player-row{flex-wrap:wrap}.player-row select[aria-label$=computer\ opponent]{flex:160px;min-width:0}.summary-grid{grid-template-columns:1fr}.room-summary .mini-board.large{width:min(200px,100%)}.own-panels{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}@media (max-width:1023px) and (orientation:portrait){.board-row{flex-direction:column}.eval-bar{flex-direction:row;flex:none;width:100%;height:18px}.eval-track{width:auto;height:100%}.eval-fill{height:auto;width:var(--share,50%);transition:width var(--anim) ease-out;top:0;bottom:0;right:auto}.eval-mid{border-top:0;border-left:1px dashed #ffffff59;inset:0 auto 0 50%}.eval-readout{text-align:right;min-width:2ch}}@media (max-width:639px){dialog.cc-dialog,dialog.cc-dialog.stats-dialog{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:none;box-shadow:none;border:0;border-radius:0;margin:0}.dialog-head{gap:8px;padding:8px 12px}.dialog-head>button{min-width:44px;min-height:44px}.dialog-body{overscroll-behavior:contain;flex:auto;grid-template-columns:minmax(0,1fr);gap:12px;min-height:0;padding:12px}.dialog-footer{padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom));flex-wrap:wrap}.dialog-footer .summary{flex:1 0 100%;order:-1}.dialog-footer button{flex:auto;min-height:44px}.new-game .tabs{z-index:2;background:var(--panel-bg);margin-top:-12px;padding:12px 0 8px;position:sticky;top:0}fieldset.group>.skill-row{margin-left:0}.skill-row input[type=range]{max-width:none}.quick{flex-wrap:wrap}.material-row input[type=number]{width:56px}.palette{flex-wrap:wrap}.palette-piece{flex:none}.editor .board{width:100%}.editor-string{flex-wrap:wrap}.editor-string label{flex:100%}.editor-string input{min-width:0}.online-dialog .dialog-head{flex-wrap:wrap}.online-nav{flex:1 0 100%}.online-nav button{flex:auto;min-width:0;min-height:40px;padding:5px 6px}.lobby{grid-template-columns:1fr;gap:0}.lobby>div{display:contents}.lobby-identity,.lobby-room-line{order:-2}.lobby>div:last-child>.lobby-section{order:-1}.lobby-identity input,.lobby .position-input,.profile input{flex:160px;min-width:0}.waiting-box .big-code{letter-spacing:.2em;font-size:28px}.stats-dialog .local-only-note{flex:1 0 100%;order:-1}.table-wrap{overscroll-behavior-x:contain}.ladder-table th:first-child,.ladder-table td:first-child,.games-table th:first-child,.games-table td:first-child{z-index:1;background:var(--panel-bg);position:sticky;left:0}.games-table th,.games-table td{padding:6px 8px}.editor .drag-ghost,body>.drag-ghost{width:44px;height:44px}}@media (max-width:1023px) and (max-height:500px) and (orientation:landscape){:root{--pad:8px;--header-h:41px;--main-h:calc(100vh - var(--header-h) - 2 * var(--pad))}@supports (height:100dvh){:root{--main-h:calc(100dvh - var(--header-h) - 2 * var(--pad))}}.app-header{padding:6px max(12px, env(safe-area-inset-right)) 6px max(12px, env(safe-area-inset-left))}.app-header .tagline{display:none}.app-main{padding:var(--pad) max(var(--pad), env(safe-area-inset-right)) var(--pad) max(var(--pad), env(safe-area-inset-left));grid-template-columns:auto minmax(0,1fr);justify-content:start;align-items:start;gap:12px}.board-col{height:var(--main-h);overflow-y:auto}.board-graph-mount,.board-legend{contain:inline-size}.board-row{height:var(--main-h);flex:none;width:auto;margin:0}.board-wrap{width:auto;height:100%}.panel{max-height:var(--main-h);overflow-y:auto}.moves{max-height:none}.game-over-box{padding:12px 14px}.game-over-box h2{font-size:20px}.eval-graph-svg{height:56px}}@media (max-height:500px){dialog.cc-dialog,dialog.cc-dialog.stats-dialog{height:100vh;border-radius:0;height:100dvh;max-height:none;margin:0}.dialog-head,.dialog-footer{padding-top:6px;padding-bottom:6px}}@media (max-width:1023px) and (pointer:coarse){.buttons{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;display:grid}.buttons .bar-sep{grid-column:1/-1}.buttons button{min-height:44px;padding:10px 12px}.level-segments{scrollbar-width:none;overflow:auto hidden}.level-segments::-webkit-scrollbar{display:none}.level-seg{flex:1 0 auto;min-width:52px;min-height:44px;padding:10px 6px;font-size:12px}.level-segments.extra .level-seg{padding-inline:4px;font-size:11px}.level-segments.jev .level-seg{padding-inline:6px;font-size:12px}.moves .move{min-height:44px;padding:10px 6px}.review-nav{gap:4px}.review-nav button,.back-to-live{min-width:44px;min-height:44px;padding:8px 12px}.hover-reason{min-height:0}}@media (max-width:639px) and (pointer:coarse){.level-segments.extra{grid-template-columns:repeat(3,1fr);display:grid}.level-segments.extra .level-seg:nth-child(3n+1){border-left:0}.level-segments.extra .level-seg:nth-child(n+4){border-top:1px solid #4a4744}.level-segments.jev{grid-template-columns:repeat(2,1fr);display:grid}.level-segments.jev .level-seg:nth-child(odd){border-left:0}.level-segments.jev .level-seg:nth-child(n+3){border-top:1px solid #4a4744}}@media (pointer:coarse){input,select,textarea,.editor-string input,.lobby .position-input{font-size:16px}input[type=checkbox],input[type=radio]{width:22px;height:22px}select,input[type=text],input[type=number],.skill-row input[type=range],button.key-moment,button.resume-deep,.review-close,.go-deeper,.review-pv button,.tabs button,.quick button,.editor-controls button,.editor-string button,.online button,.lobby button,.profile button{min-height:44px}.games-table button{min-height:36px;padding:6px 10px}.class-chip{cursor:default}.eval-graph-svg{touch-action:pan-y;height:84px}}
