:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:dark;font-synthesis:none;--canvas: #262522;--surface: #302e2b;--raised: #3a3733;--border: #49453f;--text: #f1eee8;--muted: #b7b1a7;--accent: #b0cb82;--accent-ink: #20271a;--light-square: #eddbc0;--dark-square: #a47c58;--focus: #d4e9ae;--workspace-gap: 20px;--workspace-padding: 20px;--board-size: min(960px, calc(100dvh - 180px) , calc(100vw - 600px) )}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button,a,select,summary{touch-action:manipulation}button,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link:focus{position:absolute;top:8px;left:8px;z-index:20;padding:12px;background:var(--surface)}.topbar{height:48px;display:flex;align-items:center;gap:32px;padding:0 var(--workspace-padding);border-bottom:1px solid #ffffff0b;background:var(--surface)}.brand{display:flex;align-items:center;gap:7px;font-weight:800;font-size:23px;letter-spacing:-.8px}.brand>.piece{width:34px;height:38px}.brand-chess{color:var(--muted);font-weight:400;margin-left:5px}.header-section{height:100%;display:flex;align-items:center;font-weight:600;border-bottom:2px solid var(--accent)}.connection{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.connected .status-dot{background:var(--accent)}.workspace{display:grid;grid-template-columns:minmax(220px,.85fr) var(--board-size) minmax(300px,1.15fr);grid-template-areas:"engine board record";align-items:start;gap:var(--workspace-gap);width:100%;padding:12px var(--workspace-padding) 8px}.engine-column{grid-area:engine;min-width:0;max-height:calc(100dvh - 68px);background:var(--surface);border:1px solid #ffffff0b;border-radius:7px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.engine-column .game-actions{grid-template-columns:1fr;padding:0 16px 18px}.engine-column .engine-details{border-top:1px solid var(--border)}.play-column{grid-area:board;width:var(--board-size);min-width:0}.player-row{display:flex;align-items:center;gap:10px;min-height:32px;padding:0 2px}.player-row:first-child{margin-bottom:6px}.board-wrap+.player-row{margin-top:6px}.avatar{width:32px;height:32px;border-radius:5px;background:var(--raised);display:grid;place-items:center}.avatar .piece{width:28px;height:30px}.engine-avatar{background:#4b5140}.player-name{display:grid;gap:2px}.player-name strong{display:flex;align-items:center;gap:7px;font-size:15px;line-height:17px}.player-name>span{font-size:12px;line-height:13px;color:var(--muted)}.tag{font-size:9px;line-height:10px;font-weight:600;letter-spacing:.7px;padding:2px 4px;border:1px solid #ffffff26;border-radius:3px;color:var(--muted)}.player-indicator{margin-left:auto;font-size:12px;color:var(--muted);padding:8px 12px;border-radius:4px;background:#ffffff04}.player-indicator.is-active{background:#b0cb8218;color:var(--accent)}.board-wrap{position:relative;width:100%;aspect-ratio:1}.board-frame{width:100%;height:100%;border-radius:4px;overflow:hidden;box-shadow:0 3px 20px #0003}.chessboard{width:100%;height:100%;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);-webkit-user-select:none;user-select:none}.square{padding:0;border:0;border-radius:0;position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0}.square.light{background:var(--light-square);color:#765231}.square.dark{background:var(--dark-square);color:#f9e4c8}.square.last-move.light{background:#e4d78b}.square.last-move.dark{background:#b3a35c}.square.selected.light,.square.selected.dark{background:#a9b36a}.square.in-check{background-image:radial-gradient(ellipse,#dc3939 0,#cf3939b3 35%,#cf393900 72%)}.square:focus-visible{outline:3px solid #2d596f;outline-offset:-3px;z-index:2}.piece{display:block;overflow:visible;width:88%;height:88%;pointer-events:none}.piece-white{color:#faf7ed}.piece-black{color:#302c29}.square[draggable=true]{cursor:grab}.square[draggable=true]:active{cursor:grabbing}.square>.piece{filter:drop-shadow(0 2px 1px #0003);z-index:1}.rank-label,.file-label{position:absolute;font-size:clamp(10px,calc(var(--board-size) / 50),15px);line-height:1;font-weight:650;z-index:2;pointer-events:none}.rank-label{left:5px;top:5px}.file-label{right:5px;bottom:4px}.move-target{width:25%;height:25%;border-radius:50%;background:#29251e35;position:absolute;pointer-events:none;z-index:2}.capture-target{width:93%;height:93%;background:none;border:5px solid #29251e50}.board-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:32px;margin-top:4px}.board-toolbar>span{color:var(--muted);font-size:12px}.board-actions{display:flex;gap:4px}.icon-button{border:0;background:none;border-radius:4px;width:32px;height:32px;display:inline-grid;place-items:center;color:var(--muted)}.icon-button:hover:not(:disabled){background:var(--raised);color:var(--text)}.side-column{grid-area:record;min-width:0;background:var(--surface);border:1px solid #ffffff0b;border-radius:7px;height:calc(var(--board-size) + 112px);display:flex;flex-direction:column;overflow:hidden}.game-heading{padding:20px 16px;display:flex;align-items:center;gap:12px}.opponent-mark{width:42px;height:42px;background:var(--raised);border-radius:6px;display:grid;place-items:center}.opponent-mark .piece{width:37px;height:37px}h1{font-size:18px;margin:0 0 5px;font-weight:650;letter-spacing:-.3px}.game-heading p{font-size:12px;color:var(--muted);margin:0}.game-status{margin:16px;padding:13px 14px;border:1px solid #b0cb822b;background:#b0cb820a;border-radius:5px;display:flex;gap:12px;align-items:center;flex-shrink:0}.turn-marker{width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0}.status-thinking .turn-marker{animation:thinking 1s ease-in-out infinite alternate}.game-status h2{font-size:15px;font-weight:600;margin:0 0 4px}.game-status p{margin:0;color:var(--muted);font-size:12px}.record-card{display:flex;flex-direction:column;flex:1;min-height:0;border-top:1px solid var(--border)}.record-tabs{display:flex;border-bottom:1px solid var(--border)}.record-tabs button{padding:12px 20px;background:none;border:0;border-bottom:2px solid transparent;flex:1;color:var(--muted);font-weight:600}.record-tabs button:hover{background:#ffffff04}.record-tabs button.selected-tab{color:var(--text);border-bottom-color:var(--accent)}.record-tabs button>span{font-size:11px;margin-left:7px;background:var(--raised);padding:1px 5px;border-radius:3px;font-variant-numeric:tabular-nums}.move-scroll{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.empty-moves{display:grid;align-content:center;justify-items:center;min-height:140px;height:min(100%,360px);padding:20px;color:var(--muted)}.empty-moves .piece{width:42px;height:42px;opacity:.45;margin-bottom:10px}.empty-moves strong{font-size:13px;font-weight:500}.empty-moves p{margin:7px 0 0;font-size:12px;text-align:center}.move-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.move-table thead{position:sticky;top:0;background:var(--surface)}.move-table thead th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:9px 12px;text-align:left;font-weight:500}.move-table tbody tr:nth-child(odd){background:#ffffff03}.move-table tbody th{color:var(--muted);width:16%;font-size:12px;font-weight:400;padding:9px 14px}.move-table td{width:42%;padding:9px 12px;font-size:15px}.move-table .latest-move{color:var(--accent);background:#b0cb8210;font-weight:650}.search-summary{display:grid;grid-template-columns:1fr .7fr 1.2fr;padding:16px;gap:10px;background:#ffffff03}.search-summary>div{display:grid;gap:5px}.search-summary span{font-size:11px;color:var(--muted)}.search-summary strong{font-size:14px;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap}.engine-details summary{cursor:pointer;padding:16px;font-size:12px;font-weight:550}.engine-details summary>span{float:right;color:var(--muted);font-size:11px;font-weight:400}.settings-body{padding:0 16px 16px}.search-fields{display:grid;grid-template-columns:1fr}.field{display:grid;gap:7px;margin-bottom:13px;font-size:11px;color:var(--muted)}input,select,textarea{color:var(--text);border:1px solid var(--border);background:var(--canvas);border-radius:4px;min-width:0;padding:8px 9px;font-size:12px;width:100%}select{cursor:pointer}.search-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.search-stats div{display:grid;gap:4px}.search-stats dt{font-size:11px;color:var(--muted)}.search-stats dd{margin:0;font-size:12px;font-variant-numeric:tabular-nums}.runtime-note,.setting-note{font-size:11px;line-height:1.6;color:var(--muted);margin:10px 0 0}.game-actions{display:grid;grid-template-columns:1.3fr 1fr;padding:4px 16px 18px;gap:8px}.primary-button,.secondary-button,.text-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:39px;padding:9px 12px;border-radius:4px;font-size:13px;font-weight:600;border:1px solid transparent}.primary-button{background:var(--accent);color:var(--accent-ink);box-shadow:0 2px #6d8445}.primary-button:hover:not(:disabled){background:#bedb8d}.secondary-button{background:var(--raised);border-color:var(--border);color:var(--text)}.secondary-button:hover:not(:disabled){background:#464139}.text-button{background:none;color:var(--muted)}.text-button:hover:not(:disabled){color:var(--text);background:#ffffff05}.retry-move{grid-column:1 / -1}.position-form{padding:18px}.position-form label{display:block;margin-bottom:8px;font-size:12px;color:var(--muted)}.position-form textarea{resize:vertical;min-height:100px;line-height:1.6;font-family:ui-monospace,monospace}.position-actions{display:flex;gap:8px;margin-top:12px}.notice,.error-message{margin:0 16px 16px;padding:11px;font-size:12px;line-height:1.5;overflow-wrap:anywhere;border-radius:4px}.notice{background:#b0cb8215;color:#d4e8b7}.error-message{background:#b64b4b25;border:1px solid #b66b6b70;color:#ffd0c9}.loading-overlay{position:absolute;inset:0;z-index:5;background:#262522bb;display:grid;place-items:center;border-radius:4px}.loading-card{width:min(340px,86%);display:grid;justify-items:center;text-align:center;padding:26px;background:var(--surface);border:1px solid var(--border);border-radius:7px;box-shadow:0 10px 30px #0005;gap:14px}.loading-card>.piece{width:54px;height:54px}.loading-card strong{font-size:18px}.loading-card>span{color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.loading-card progress{width:100%;height:5px;accent-color:var(--accent)}.modal{width:min(420px,calc(100% - 32px));color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:24px;box-shadow:0 20px 60px #0006}.modal::backdrop{background:#171613b3}.modal-heading{display:flex;align-items:center;justify-content:space-between}.modal-heading h2{font-size:21px;margin:0}.modal-description{color:var(--muted);font-size:13px;margin:12px 0 20px}.side-picker,.promotion-options{display:flex;gap:12px}.side-picker button{width:50%;display:grid;justify-items:center;gap:12px;padding:18px 8px;border:1px solid var(--border);border-radius:5px;background:var(--canvas);font-size:13px}.side-picker .piece{width:60px;height:60px}.side-picker .chosen-side{border-color:var(--accent);background:#b0cb8210;box-shadow:inset 0 0 0 1px var(--accent)}.modal-play{width:100%;margin-top:24px}.promotion-options button{flex:1;border:1px solid var(--border);border-radius:4px;background:var(--raised);padding:5px}.promotion-options .piece{width:100%;height:auto}.promotion-options button:hover{background:#6a7052}@keyframes thinking{to{opacity:.25}}@media(min-width:2000px){:root{--board-size: min(1200px, calc(100dvh - 180px) , calc(100vw - 600px) )}.workspace{grid-template-columns:minmax(220px,13fr) var(--board-size) minmax(300px,16fr);max-width:calc(var(--board-size) + 1240px);margin-inline:auto}.engine-column .game-actions,.engine-column .search-fields{grid-template-columns:1fr 1fr;gap:12px}}@media(min-width:760px)and (max-width:1239px){:root{--workspace-gap: 16px;--board-size: min(960px, calc(100dvh - 180px) , calc(100vw - 376px) )}.workspace{grid-template-columns:var(--board-size) minmax(280px,1fr);grid-template-areas:"board record" "engine record"}.engine-column{max-height:none}.engine-column .game-actions{grid-template-columns:1fr 1fr}.engine-column .search-fields{grid-template-columns:1fr 1fr;gap:12px}}@media(max-width:759px){:root{--board-size: calc(100vw - 40px) ;--workspace-padding: 12px}.topbar{padding:0 12px;gap:24px}.brand{font-size:20px}.brand>.piece{width:28px;height:32px}.connection{font-size:0}.header-section{font-size:12px}.workspace{grid-template-columns:var(--board-size);grid-template-areas:"board" "record" "engine";gap:16px;padding-top:10px}.side-column{height:auto}.engine-column{max-height:none}.engine-column .game-actions{grid-template-columns:1fr 1fr}.record-card{flex:auto}.move-scroll{height:180px}.engine-column .search-fields{grid-template-columns:1fr 1fr;gap:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.square{forced-color-adjust:none}.primary-button,.secondary-button,.player-indicator,.game-status{border:1px solid ButtonText}.status-dot,.turn-marker{background:Highlight}}
