:root{--bg: #f4f2ee;--bg-panel: #ffffff;--bg-panel-2: #f0ede8;--bg-hover: #e6e1d8;--fg: #2b2a28;--fg-dim: #6f6b64;--border: #d9d4cb;--accent: #2f7d4f;--accent-fg: #ffffff;--active-move: #2f7d4f;--danger: #b23b2b;--sq-light: #ecdab9;--sq-dark: #ae8a68;--hl-last: rgba(155, 199, 0, .42);--hl-pending: rgba(240, 190, 40, .5);--hl-duck: rgba(255, 215, 64, .32);--hl-selected: rgba(20, 85, 30, .5);--hl-over: rgba(20, 85, 30, .35);--dest: rgba(20, 85, 30, .5);--shadow: 0 1px 3px rgba(0, 0, 0, .12);--radius: 6px;--gutter: 16px;--side-w: 400px;--eval-w: 24px;--board-size: clamp(280px, min( calc(100vh - 150px) , calc(100vw - var(--side-w) - var(--eval-w) - 4 * var(--gutter))), 860px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #1d1c1a;--bg-panel: #272623;--bg-panel-2: #2f2d2a;--bg-hover: #3a3834;--fg: #d8d5cf;--fg-dim: #9a958c;--border: #3d3b37;--accent: #4f9a66;--active-move: #3f7f55;--danger: #e0675a;--shadow: 0 1px 3px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #1d1c1a;--bg-panel: #272623;--bg-panel-2: #2f2d2a;--bg-hover: #3a3834;--fg: #d8d5cf;--fg-dim: #9a958c;--border: #3d3b37;--accent: #4f9a66;--active-move: #3f7f55;--danger: #e0675a;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif}button,select,input,textarea{font:inherit;color:inherit}button{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 11px;cursor:pointer}button:hover:not(:disabled){background-color:var(--bg-hover)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}button.small{padding:2px 9px;font-size:13px}a{color:var(--accent)}.shell{min-height:100vh;display:flex;flex-direction:column}.site-header{display:flex;align-items:center;gap:24px;padding:6px var(--gutter);border-bottom:1px solid var(--border);background:var(--bg-panel)}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;color:var(--fg);text-decoration:none}.site-header nav{display:flex;gap:4px}.site-header nav button{white-space:nowrap;background:none;border:none;padding:6px 10px;color:var(--fg-dim)}.site-header nav button.active{color:var(--fg);box-shadow:inset 0 -2px 0 var(--accent);border-radius:0}main{flex:1;padding:var(--gutter)}.site-footer{padding:12px var(--gutter) 18px;color:var(--fg-dim);font-size:12px;text-align:center;display:flex;flex-direction:column;gap:3px}.footer-line{overflow-wrap:anywhere}.footer-sep{margin:0 6px}.footer-version{font-variant-numeric:tabular-nums}.analyse,.editor{display:grid;grid-template-columns:auto minmax(280px,var(--side-w));grid-template-areas:"board side" "tools side";gap:var(--gutter);justify-content:center;align-items:start}.editor{grid-template-areas:"board side"}.board-col{grid-area:board}.side-col{grid-area:side;display:flex;flex-direction:column;gap:10px;min-width:0;max-height:calc(var(--board-size) + 44px)}.tools-col{grid-area:tools;min-width:0;max-width:calc(var(--board-size) + var(--eval-w) + 6px)}.board-wrap{display:flex;gap:6px}.evalbar-spacer{width:var(--eval-w)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border);font-weight:600}.panel-sub{font-weight:400;font-size:12px;color:var(--fg-dim)}.board{position:relative;width:var(--board-size);height:var(--board-size);user-select:none;-webkit-user-select:none;touch-action:none;-webkit-touch-callout:none;border-radius:3px;overflow:hidden;box-shadow:0 2px 8px #00000040;cursor:pointer}.board-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sq-light{fill:var(--sq-light)}.sq-dark{fill:var(--sq-dark)}.hl-last{fill:var(--hl-last)}.hl-pending{fill:var(--hl-pending)}.hl-duck{fill:var(--hl-duck)}.hl-selected{fill:var(--hl-selected)}.hl-over{fill:var(--hl-over)}.dest{fill:var(--dest)}.dest-capture{fill:none;stroke:var(--dest);stroke-width:.08}.coord{font-size:.2px;font-weight:700;dominant-baseline:auto}.coord-on-light{fill:var(--sq-dark)}.coord-on-dark{fill:var(--sq-light)}.board-pieces{position:absolute;inset:0;pointer-events:none}.piece{position:absolute;left:0;top:0;width:12.5%;height:12.5%;background-size:cover;will-change:transform;transition:transform .2s cubic-bezier(.25,.8,.35,1)}.piece.dragging{transition:none;z-index:10;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.board.is-dragging{cursor:grabbing}.duck-active{animation:duck-pulse 1.1s ease-in-out infinite;z-index:5}@keyframes duck-pulse{0%,to{filter:drop-shadow(0 0 0 rgba(255,196,0,0))}50%{filter:drop-shadow(0 0 5px rgba(255,190,0,1))}}.ghost-duck{opacity:.5}.shape-duck{opacity:.85}.shape-duck-ring{fill:#0b5ea81f;stroke:#0b5ea8;stroke-width:.05;stroke-dasharray:.12 .08}.board-overlay{z-index:3}.promo-overlay{position:absolute;inset:0;background:#00000073;z-index:20}.promo-choice{position:absolute;width:12.5%;height:12.5%;padding:0;border:none;border-radius:50%;background-color:#d8d4cc;background-size:80%;background-position:center;background-repeat:no-repeat;transition:border-radius .15s,background-color .15s}.promo-choice:hover{border-radius:8%;background-color:#f4a340}@media (prefers-reduced-motion: reduce){.piece{transition:none}.duck-active{animation:none;filter:drop-shadow(0 0 4px rgba(255,190,0,1))}}.evalbar{position:relative;width:var(--eval-w);height:var(--board-size);border-radius:3px;overflow:hidden;outline:1px solid rgba(0,0,0,.25);font-size:10px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;background:#8f8a82}.evalbar>div{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.evalbar-white{background:#f2f0ec;color:#333}.evalbar-draw{background:#8f8a82;color:#fff}.evalbar-black{background:#33312e;color:#eee}.evalbar.off{opacity:.45}.hint-bar{margin:8px 0 0 calc(var(--eval-w) + 6px);min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 10px;border-radius:var(--radius);background:var(--bg-panel);border:1px solid var(--border);font-size:14px}.hint-bar.attention{border-color:#e0b030;background:color-mix(in srgb,#f2c230 18%,var(--bg-panel))}.hint-dim{color:var(--fg-dim)}.hint-result{font-weight:600}.turn-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;border:1px solid #777;vertical-align:-1px}.turn-dot.w{background:#fff}.turn-dot.b{background:#222}.engine-head{display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--border)}.eval-big{font-size:22px;font-weight:700;min-width:64px;font-variant-numeric:tabular-nums}.engine-meta{flex:1;min-width:0;display:flex;flex-direction:column;font-size:12px;line-height:1.25}.engine-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-stats{color:var(--fg-dim)}.switch{position:relative;display:inline-block;width:36px;height:20px;flex:none}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;inset:0;background:var(--bg-hover);border-radius:20px;cursor:pointer;transition:background .15s}.slider:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(16px)}.pv-lines{font-size:13px}.pv{display:flex;gap:8px;padding:4px 10px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.pv:last-child{border-bottom:none}.pv.placeholder,.off-note{color:var(--fg-dim);padding:6px 10px;white-space:normal}.pv-eval{font-weight:700;min-width:44px;font-variant-numeric:tabular-nums}.pv-moves{overflow:hidden;text-overflow:ellipsis}.pv-move{cursor:pointer;border-radius:3px}.pv-move:hover{background:var(--bg-hover)}.pv-num{color:var(--fg-dim)}.moves-panel{display:flex;flex-direction:column;min-height:160px;flex:1 1 auto;overflow:hidden}.movelist{flex:1;overflow-y:auto;position:relative;font-size:14px}.movelist-empty{padding:12px;color:var(--fg-dim);font-size:13px}.moves-grid{display:grid;grid-template-columns:2.6em 1fr 1fr}.moves-grid .index{background:var(--bg-panel-2);color:var(--fg-dim);text-align:center;padding:3px 0;border-right:1px solid var(--border)}.moves-grid .move{padding:3px 8px;cursor:pointer;white-space:nowrap}.moves-grid .move:hover:not(.empty){background:var(--bg-hover)}.moves-grid .move.empty{color:var(--fg-dim);cursor:default}.moves-grid .move.active,.imove.active{background:var(--active-move)!important;color:#fff;border-radius:3px}.variations{grid-column:1 / -1;background:var(--bg-panel-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px 8px 4px 14px;font-size:13px}.var-line{border-left:2px solid var(--border);padding:1px 0 1px 7px;margin:2px 0}.imove{cursor:pointer;padding:1px 3px;border-radius:3px;margin-right:2px;white-space:nowrap;display:inline-block}.imove:hover{background:var(--bg-hover)}.imove.on-path,.moves-grid .move.on-path{font-weight:600}.inline-var{color:var(--fg-dim);margin-right:4px}.inline-var .imove{color:var(--fg)}.collapsed-toggle{cursor:pointer;color:var(--accent);padding:0 4px;font-weight:600}.result{padding:8px 10px;text-align:center;font-weight:600;border-top:1px solid var(--border)}.controls{display:flex;border-top:1px solid var(--border)}.controls>button{flex:1;border:none;border-radius:0;background:none;padding:8px 0;display:flex;justify-content:center}.controls button:hover:not(:disabled),.controls button.active{background-color:var(--bg-hover)}.icon{display:block}.dropdown{z-index:50;display:flex;flex-direction:column;min-width:190px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 18px #00000040;padding:4px}.dropdown button,.ctx-menu button{background:none;border:none;text-align:left;padding:6px 10px}.ctx-menu{z-index:50;min-width:180px;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 18px #00000040;padding:4px}.ctx-title{font-weight:700;padding:4px 10px;border-bottom:1px solid var(--border);margin-bottom:2px}.tb-panel{font-size:13px;flex:none}.tb-note{padding:8px 10px;color:var(--fg-dim)}.tb-note.error{color:var(--danger)}.tb-verdict{padding:6px 10px;font-weight:700;font-size:15px}.mock-badge{margin-left:8px;font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px;background:var(--bg-hover);color:var(--fg-dim)}.tb-moves{max-height:180px;overflow-y:auto}.tb-move{display:grid;grid-template-columns:1fr auto 7.5em;white-space:nowrap;gap:8px;padding:3px 10px;cursor:pointer;border-top:1px solid var(--border)}.tb-move:hover{background:var(--bg-hover)}.tb-dist{color:var(--fg);text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.tb-dtz{margin-left:6px;font-weight:400;font-size:11px;color:var(--fg-dim)}.mini-board{--board-size: 168px;pointer-events:none;padding:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 18px #0000004d;z-index:60}.mini-board .piece{transition:none}.pv-dim{opacity:.55}.pv-eval.exact{color:var(--accent)}.tb-chip{font-size:11px;padding:1px 6px;border-radius:8px;color:#fff}.tb-win.tb-chip{background:#2f8a4a}.tb-cursed-win.tb-chip{background:#6a9a5a}.tb-draw.tb-chip{background:#777}.tb-blessed-loss.tb-chip{background:#b07a5a}.tb-loss.tb-chip{background:#b23b2b}.tb-unreachable{font-size:12px;padding:5px 10px}.tb-text-win,.tb-text-cursed-win{color:#2f8a4a}.tb-text-loss,.tb-text-blessed-loss{color:var(--danger)}.tb-move.open{background:var(--bg-hover)}.tb-moves{max-height:260px}.tb-sub{padding:4px 10px 0;font-size:12px;color:var(--fg-dim)}.tb-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;padding:6px 10px 8px;width:200px;max-width:100%;box-sizing:content-box}.tb-cell{aspect-ratio:1;min-width:0;border-radius:2px;padding:0;font-size:10px;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap}.tb-blank{background-color:color-mix(in srgb,var(--sq-light) 35%,var(--bg-panel));background-size:80%;background-position:center;background-repeat:no-repeat;opacity:.6}.tb-blank.dark{background-color:color-mix(in srgb,var(--sq-dark) 30%,var(--bg-panel))}.tb-ducks{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:3px;padding:5px 10px 8px}.tb-duck{padding:2px 0;font-size:12px;border:none;color:#fff;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.tb-duck.tb-win{background:#2f8a4a}.tb-duck.tb-cursed-win{background:#6a9a5a}.tb-duck.tb-draw{background:#777}.tb-duck.tb-blessed-loss{background:#b07a5a}.tb-duck.tb-loss{background:#b23b2b}.tb-duck:hover:not(:disabled){filter:brightness(1.15)}:root{--mark-inaccuracy: #3d9bd6;--mark-mistake: #e69f00;--mark-blunder: #db3031}.evalgraph{position:relative;height:76px;width:var(--board-size);margin:8px 0 0 calc(var(--eval-w) + 6px);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none}.evalgraph svg{display:block;width:100%;height:100%}.eg-white{fill:#f2f0ec}.eg-draw{fill:#9a958c}.eg-black{fill:#3a3835}.eg-mid{stroke:#d64f008c;stroke-width:1;stroke-dasharray:3 3}.eg-cur{stroke:var(--accent);stroke-width:2}.eg-hover{stroke:var(--fg-dim);stroke-width:1}.eg-dot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);border:1.5px solid #fff;pointer-events:none}.eg-dot.mark-inaccuracy{background:var(--mark-inaccuracy)}.eg-dot.mark-mistake{background:var(--mark-mistake)}.eg-dot.mark-blunder{background:var(--mark-blunder)}.eg-label{position:absolute;left:6px;top:4px;font-size:12px;font-weight:600;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--bg-panel) 85%,transparent);color:var(--fg);pointer-events:none;white-space:nowrap}.mark{margin-left:2px;font-weight:700}.mark-inaccuracy{color:var(--mark-inaccuracy)}.mark-mistake{color:var(--mark-mistake)}.mark-blunder{color:var(--mark-blunder)}.active>.mark{color:#fff}.import-export,.editor-panel{padding:10px;display:flex;flex-direction:column;gap:8px}.editor-panel{padding:0 0 10px}.editor-panel>*:not(.panel-head){margin:0 10px}.field{display:flex;flex-direction:column;gap:3px}.field-label{font-size:12px;color:var(--fg-dim);font-weight:600}.fen-input,.pgn-input{width:100%;background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}.pgn-input{resize:vertical}.invalid{border-color:var(--danger)}.field-note{color:var(--fg-dim);font-size:13px}.field-error{color:var(--danger);font-size:13px}.button-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.flash{color:var(--fg-dim);font-size:13px}.palette{display:flex;flex-direction:column;gap:4px;margin-top:10px!important}.palette-row{display:flex;gap:4px}.tool{width:46px;height:46px;padding:0;background-size:85%;background-position:center;background-repeat:no-repeat;font-size:20px}.tool.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background-color:var(--bg-hover)}.editor-row{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:14px}.editor-row label{display:flex;align-items:center;gap:6px}.editor-row.castling .field-label{width:100%}.editor-row label.disabled{opacity:.5}.editor-row select{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:3px 6px}.board.editing{cursor:crosshair}.play{--board-size: clamp(260px, min( calc(100vh - 220px) , calc(100vw - var(--side-w) - var(--eval-w) - 4 * var(--gutter))), 860px)}.board-holder{position:relative}.player-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;width:var(--board-size);margin:6px 0 6px calc(var(--eval-w) + 6px);min-height:30px}.player-name{display:flex;align-items:center;font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-bar.active .player-name{color:var(--fg)}.player-name{color:var(--fg-dim)}.thinking{margin-left:10px;font-weight:400;color:var(--accent);animation:think 1.2s ease-in-out infinite}@keyframes think{0%,to{opacity:.2}50%{opacity:1}}.play .hint-bar{margin-top:0}.game-actions{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border)}.game-actions button{flex:1}.gameover-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:25;padding:16px 18px 14px;text-align:center;min-width:min(300px,90%);box-shadow:0 8px 30px #00000059}.gameover-card .close{position:absolute;right:4px;top:2px;background:none;border:none;font-size:20px;line-height:1;padding:4px 8px;color:var(--fg-dim)}.gameover-title{font-size:20px;font-weight:700}.gameover-detail{color:var(--fg-dim);margin:2px 0 12px}.gameover-card .button-row{justify-content:center}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center;padding:12px}.modal{width:min(440px,100%);max-height:calc(100vh - 24px);overflow-y:auto}.setup-body{padding:12px;display:flex;flex-direction:column;gap:12px}.setup-row{display:flex;flex-direction:column;gap:4px}.segmented{display:flex;flex-wrap:wrap}.segmented button{flex:1;border-radius:0;margin-left:-1px;padding:6px 4px}.segmented button:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.segmented button:last-child{border-radius:0 var(--radius) var(--radius) 0}.segmented button.active,.level-list button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);position:relative}.level-list{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.level-list button{padding:6px 4px}.level-list button:last-child{grid-column:1 / -1}.setup-check{display:flex;align-items:center;gap:8px}@media (max-width: 440px){.brand span{display:none}}@media (max-width: 900px){:root{--gutter: 10px;--eval-w: 20px;--board-size: min(calc(100vw - 2 * var(--gutter) - var(--eval-w) - 6px), calc(100vh - 140px) , 720px)}:root:has(.analyse),:root:has(.editor){--board-size: min(calc(100vw - 2 * var(--gutter) - var(--eval-w) - 6px), 720px)}.analyse,.editor{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "side" "tools";justify-items:center}.side-col,.tools-col{width:100%;max-width:calc(var(--board-size) + var(--eval-w) + 6px);max-height:none}.moves-panel{max-height:50vh}.site-header{gap:8px;padding:6px var(--gutter)}.brand{font-size:16px;white-space:nowrap}.site-header nav button{padding:6px 7px}.site-header nav{min-width:0;flex-wrap:nowrap}.evalgraph{width:100%;margin-left:0}.play{--board-size: min(calc(100vw - 2 * var(--gutter) - var(--eval-w) - 6px), 720px)}.hint-bar{font-size:13px}.tool{width:40px;height:40px}}.debug-panel{max-height:420px;overflow:auto}.debug-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.debug-table th,.debug-table td{padding:2px 10px;text-align:right}.debug-table th:first-child,.debug-table td:first-child{text-align:left}.debug-table th{position:sticky;top:0;background:var(--bg-panel);color:var(--fg-dim);font-weight:600}.debug-empty{padding:7px 10px;color:var(--fg-dim)}
