.board{--board:min(92vw, 560px);--sq:calc(var(--board) / 8);--light:#c3cfe4;--dark:#6f819f;--accent-blue:#5b9dff;--accent-amber:#f0b429;--frame:#111a2e;--frame-border:#2f4470;--frame-label:#8fa4c8;--piece-white:#fff;--piece-white-rim:#1a2033;--piece-black:#10151f;--piece-black-rim:#ffffff73;--mark-rim:#0d1220;padding:calc(var(--sq) * .12);background:var(--frame);border:1px solid var(--frame-border);-webkit-user-select:none;user-select:none;border-radius:6px;display:inline-block}.board-row{grid-template-columns:calc(var(--sq) * .6) repeat(8, var(--sq));display:grid}.board-files{grid-template-rows:calc(var(--sq) * .6)}.board-label{font-size:calc(var(--sq) * .32);color:var(--frame-label);justify-content:center;align-items:center;font-family:ui-monospace,monospace;display:flex}.square{width:var(--sq);height:var(--sq);background:var(--light);cursor:pointer;font-size:calc(var(--sq) * .74);border:none;margin:0;padding:0;line-height:1;position:relative}.square[data-dark]{background:var(--dark)}.board[data-disabled] .square{cursor:not-allowed}.square:focus-visible{outline:calc(var(--sq) * .06) solid var(--accent-blue);outline-offset:calc(var(--sq) * -.06);z-index:2}.piece{z-index:1;text-align:center;display:block;position:relative}.piece[data-color=white]{color:var(--piece-white);text-shadow:0 0 2px var(--piece-white-rim), 0 1px 0 var(--piece-white-rim), 1px 0 0 var(--piece-white-rim), -1px 0 0 var(--piece-white-rim), 0 -1px 0 var(--piece-white-rim)}.piece[data-color=black]{color:var(--piece-black);text-shadow:0 1px 0 var(--piece-black-rim), 1px 0 0 var(--piece-black-rim), -1px 0 0 var(--piece-black-rim), 0 -1px 0 var(--piece-black-rim)}.square[data-selected]{box-shadow:inset 0 0 0 calc(var(--sq) * .08) var(--accent-amber), inset 0 0 0 calc(var(--sq) * .13) var(--frame)}.target-mark{pointer-events:none;margin:auto;position:absolute;inset:0}.square[data-target=move] .target-mark{width:calc(var(--sq) * .26);height:calc(var(--sq) * .26);background:var(--accent-blue);box-shadow:0 0 0 1px var(--mark-rim);border-radius:50%}.square[data-target=capture] .target-mark{width:calc(var(--sq) * .84);height:calc(var(--sq) * .84);border:calc(var(--sq) * .08) solid var(--accent-blue);box-sizing:border-box;border-radius:50%}.last-mark{top:calc(var(--sq) * .02);left:calc(var(--sq) * .06);font-size:calc(var(--sq) * .24);color:var(--accent-amber);text-shadow:0 0 2px var(--piece-black);pointer-events:none;line-height:1;position:absolute}.check-mark{right:calc(var(--sq) * .04);bottom:calc(var(--sq) * -.02);font-size:calc(var(--sq) * .42);color:var(--accent-amber);text-shadow:0 0 2px var(--piece-black);pointer-events:none;font-weight:700;line-height:1;position:absolute}.square[data-check]{box-shadow:inset 0 0 0 calc(var(--sq) * .07) var(--accent-amber)}.jev-panel{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.jev-panel h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px;font-size:15px}.jev-thinking,.jev-idle{color:var(--accent-amber);text-transform:none;letter-spacing:0;font-size:13px}.jev-played{align-items:baseline;gap:10px;margin:0 0 12px;display:flex}.jev-played-san{font-family:var(--mono);color:var(--accent-amber);font-size:26px}.jev-played-p{font-family:var(--mono);color:var(--text-muted);font-size:13px}.jev-bars{gap:5px;margin:0 0 12px;padding:0;list-style:none;display:grid}.jev-bars li{font-family:var(--mono);grid-template-columns:4.5rem 1fr 2.6rem;align-items:center;gap:8px;font-size:13px;display:grid}.jev-bars li.chosen .bar-san,.jev-bars li.chosen .bar-p{color:var(--accent-amber)}.bar-track{background:var(--surface-sunken);border:1px solid var(--border);border-radius:3px;height:12px;overflow:hidden}.bar-fill{background:var(--accent-blue);height:100%;display:block}.jev-bars li.chosen .bar-fill{background:var(--accent-amber)}.bar-p{text-align:right;color:var(--text)}.jev-stats{grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 10px;font-size:13px;display:grid}.jev-stats dt{color:var(--text-muted)}.jev-stats dd{font-family:var(--mono);margin:0}.jev-note{color:var(--text-muted);border-top:1px solid var(--border);margin:0;padding-top:8px;font-size:12px;line-height:1.45}.replay-copied{color:var(--accent-amber);margin:0;font-size:.85rem}.replay-url{border:1px solid var(--border);background:var(--surface-raised);width:100%;color:var(--text-muted);font-family:var(--mono);border-radius:6px;margin:0 0 20px;padding:.4rem .6rem;font-size:.8rem}.replay-controls{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.replay-hint{color:var(--text-muted);margin:.5rem 0 0;font-size:.8rem}.replay-status .status-tag{color:var(--accent-blue)}.replay-list button.move-san{color:var(--text);font-family:var(--mono);font-size:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:4px;padding:.1rem .3rem}.replay-list button.move-san:hover:not(:disabled){border-color:var(--border)}.replay-list button.move-san[data-current]{border-color:var(--accent-amber);color:var(--accent-amber)}.theme-toggle{justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:inline-flex;position:relative}.theme-toggle-icon{transition:transform .16s ease-out;animation:.16s ease-out theme-toggle-swap}.theme-toggle:hover:not(:disabled) .theme-toggle-icon{transform:rotate(-12deg)}@keyframes theme-toggle-swap{0%{opacity:0;transform:scale(.75)}}.theme-toggle-auto{background:var(--accent-amber);border-radius:50%;width:5px;height:5px;position:absolute;bottom:7px;right:7px}@media (prefers-reduced-motion:reduce){.theme-toggle-icon{transition:none;animation:none}.theme-toggle:hover:not(:disabled) .theme-toggle-icon{transform:none}}.about{gap:24px;max-width:70ch;display:grid}.about h2{color:var(--accent-amber);margin:0 0 8px;font-size:15px;font-weight:600}.about p{color:var(--text);margin:0 0 10px}.about p:last-child{margin-bottom:0}@media (width<=860px){.about{gap:20px}}.verify{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:12px 14px;font-size:13px;display:flex}.verify-note{text-align:center;max-width:40ch;color:var(--text-muted);margin:0}.verify-widget{min-height:65px}.verify-actions{gap:8px;display:flex}:root,[data-theme=dark]{--surface:#0b0f18;--surface-raised:#141a28;--surface-sunken:#0d1220;--border:#24304a;--text:#e5ebf7;--text-muted:#8d9bb8;--accent-blue:#4c8dff;--accent-amber:#f0b13f;--on-accent:#0b0f18;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--surface:#f5f7fb;--surface-raised:#fff;--surface-sunken:#e9edf5;--border:#9aa7c0;--text:#121722;--text-muted:#4a5468;--accent-blue:#1d4ed8;--accent-amber:#8a5200;--on-accent:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--mono:ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{background:var(--surface);color:var(--text);margin:0;font:15px/1.5 system-ui,-apple-system,sans-serif}.app{max-width:1080px;margin:0 auto;padding:24px 20px 48px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.app-nav{align-items:center;gap:8px;display:flex}.nav-link{color:var(--text);background:var(--surface-raised);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:13px;text-decoration:none}.nav-link:hover{color:var(--accent-blue);border-color:var(--accent-blue)}.app-header h1{margin:0 0 12px;font-size:22px;font-weight:600}.app-header h1:after{content:"";background:var(--accent-amber);width:48px;height:2px;margin-top:8px;display:block}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;display:flex}.playing-as{color:var(--text-muted);font-size:13px}button{font:inherit;color:var(--text);background:var(--surface-raised);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}button:hover:not(:disabled){border-color:var(--accent-blue);color:var(--accent-blue)}button:disabled{opacity:.45;cursor:default}.app-body{grid-template-columns:minmax(320px,1fr) minmax(300px,380px);align-items:start;gap:24px;display:grid}.board-column{gap:12px;display:grid}.side-column{gap:16px;display:grid}.status{align-items:baseline;gap:8px;margin:0;font-size:14px;display:flex}.status-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border);border-radius:4px;flex:none;padding:1px 6px;font-size:11px}.status-thinking,.status-promote,.status-error{color:var(--accent-amber)}.status-error .status-tag{border-color:var(--accent-amber);color:var(--accent-amber)}.promotion,.error-actions,.choose{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex}.promotion{border-color:var(--accent-amber)}.moves{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.moves h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:15px}.move-list{max-height:240px;font-family:var(--mono);margin:0;padding:0;font-size:13px;list-style:none;overflow-y:auto}.move-list li{grid-template-columns:2.5rem 1fr 1fr;gap:8px;padding:2px 0;display:grid}.move-number{color:var(--text-muted)}.game-over{background:var(--surface-raised);border:1px solid var(--accent-amber);border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;font-size:13px;display:flex}.game-over-result{color:var(--accent-amber);margin:0;font-size:15px}.game-over-count{color:var(--text-muted);margin:0}.replay-link{font-family:var(--mono);color:var(--accent-blue);word-break:break-all;font-size:12px;text-decoration:underline}.replay-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.replay-note{color:var(--text-muted)}.move-list-full{max-height:none}@media (width<=860px){.app-body{grid-template-columns:1fr}}.landing{text-align:center;justify-items:center;gap:20px;padding:48px 0;display:grid}.landing-title{max-width:32ch;color:var(--text-muted);margin:0;font-size:16px}.landing-actions{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:520px;display:flex}.landing-actions button{color:var(--on-accent);background:var(--accent-blue);border-color:var(--accent-blue);flex:200px;padding:14px 20px;font-size:16px;font-weight:600}.landing-actions button:hover:not(:disabled){color:var(--on-accent);background:var(--text);border-color:var(--text)}.landing-note{max-width:40ch;color:var(--text-muted);margin:0;font-size:13px}.move-budget{font-family:var(--mono);color:var(--text-muted);font-size:12px}.error-verify{background:0 0;border:none;padding:0;display:block}
