:root{--bg:#e7e9ed;--bg-glow:#f3f4f7;--panel:#f5f6f8;--panel-raised:#fbfbfc;--panel-border:#d3d8e0;--text:#14234a;--muted:#5c6680;--accent:#1f3c88;--accent-hover:#2a4fae;--accent-text:#fff;--danger:#c0392b;--ok:#1e8f5a;--warn:#d4860b;--square-light:#dfe3ea;--square-dark:#34508a;--shadow:0 10px 28px #14234a29;--shadow-hover:0 6px 16px #14234a38;--stripe:#14234a0a;--tint:#3a62c81f;--ring:#1f3c8838;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(1200px 600px at 50% -10%, var(--bg-glow), transparent 70%), var(--bg);background-attachment:fixed;min-height:100vh;margin:0}h1,h2{margin:0;line-height:1.2}h1{font-size:1.75rem}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.75rem;font-size:1rem}.muted{color:var(--muted);margin:0}.app{max-width:1440px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.app-header{margin-bottom:1.25rem}.layout{grid-template-columns:270px minmax(0,1fr) 330px;grid-template-areas:"left board right";align-items:start;gap:1.5rem;display:grid}.left-column{flex-direction:column;grid-area:left;gap:1rem;display:flex}.board-column{grid-area:board;justify-self:center}.side-column{grid-area:right}@media (width<=1180px){.layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"board right""left right"}.left-column{flex-flow:wrap;align-items:flex-start}.left-column>*{flex:240px}}@media (width<=860px){.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"board""right""left"}}.board-column{flex-direction:column;gap:.5rem;width:100%;max-width:max(300px,min(640px,100svh - 13rem));display:flex}.board-wrap{position:relative}.board{width:100%;box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.board:focus-visible{outline:3px solid var(--warn);outline-offset:3px}.player-bar{border:1px solid #0000;border-radius:6px;align-items:center;gap:.6rem;min-height:2.5rem;padding:.35rem .75rem;display:flex}.player-active{background:var(--panel);border-color:var(--panel-border)}.player-swatch{border:1px solid var(--muted);border-radius:50%;flex:none;width:.9rem;height:.9rem}.player-swatch-w{background:#f8fafc}.player-swatch-b{background:#0f172a}.player-name{font-weight:600}.player-note{color:var(--accent);font-size:.85rem}.player-captured{letter-spacing:-.12em;color:var(--muted);margin-left:auto;font-size:1.15rem;line-height:1}.player-advantage{letter-spacing:normal;color:var(--text);font-size:.85rem;font-weight:600}.promotion-backdrop{background:#14234a73;border-radius:6px;place-items:center;display:grid;position:absolute;inset:0}.promotion-dialog{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow);text-align:center;border-radius:10px;max-width:calc(100% - 1rem);padding:1rem}.promotion-dialog h2{color:var(--text);text-transform:none;letter-spacing:normal;font-size:1.05rem}.promotion-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin-bottom:.75rem;display:grid}.promotion-choice{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.promotion-choice:hover,.promotion-choice:focus-visible{border-color:var(--accent)}.promotion-glyph{font-size:2.4rem;line-height:1}.status{background:var(--panel);border:1px solid var(--panel-border);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.6rem .9rem;font-weight:600;display:flex}.status-check{border-color:var(--danger)}.status-over{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.side-column{flex-direction:column;gap:1rem;display:flex}.panel{background:linear-gradient(180deg, var(--panel-raised), var(--panel));border:1px solid var(--panel-border);border-radius:12px;padding:1rem;box-shadow:0 1px 2px #14234a0f}.field{flex-direction:column;gap:.35rem;margin:0 0 .9rem;display:flex}fieldset.field{border:none;flex-flow:wrap;gap:1rem;padding:0}fieldset.field legend{width:100%;margin-bottom:.35rem;padding:0}select,input[type=text],button{font:inherit;color:inherit}select,input[type=text]{background:var(--panel-raised);border:1px solid var(--panel-border);border-radius:6px;padding:.45rem .6rem}button{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:6px;padding:.5rem .9rem;font-weight:600}button:hover:not(:disabled){background:var(--accent-hover)}button.secondary{color:var(--text);border:1px solid var(--panel-border);background:0 0}button.secondary:hover:not(:disabled){background:var(--tint);border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.button-row{flex-wrap:wrap;gap:.5rem;display:flex}.history-list{max-height:260px;margin:0;padding:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;list-style:none;overflow-y:auto}.history-list li{grid-template-columns:2.5rem 1fr 1fr;padding:.15rem .25rem;display:grid}.history-list li:nth-child(odd){background:var(--stripe)}.history-latest{color:var(--accent);font-weight:700}.move-number{color:var(--muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.transcript-form{gap:.5rem;display:flex}.transcript-form input{flex:1;min-width:0}.feedback-region:not(:empty){margin-top:.75rem}.feedback{border-left:4px solid var(--muted);background:var(--tint);border-radius:6px;margin:0;padding:.5rem .7rem}.feedback-played{border-left-color:var(--ok)}.feedback-ambiguous{border-left-color:var(--accent)}.feedback-error{border-left-color:var(--danger)}.options{margin-top:.5rem}.mic{margin-bottom:.75rem}.mic-button{justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;font-size:1.05rem;display:flex}.mic-listening{background:var(--danger);animation:1.4s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #f8717180}50%{box-shadow:0 0 0 8px #f8717100}}@media (prefers-reduced-motion:reduce){.mic-listening{animation:none}}.mic-interim{color:var(--muted);margin:.5rem 0 0;font-style:italic}.mic .feedback{margin-top:.5rem}.mic-unsupported{margin:0 0 .75rem}.switch{cursor:pointer;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.switch input{margin-top:.2rem}.mic-status{border:1px solid var(--panel-border);color:var(--muted);border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.mic-status-active{border-color:var(--accent);color:var(--text);box-shadow:0 0 0 3px var(--ring)}.feedback-confirm{border-left-color:var(--accent);font-weight:600}.feedback-info{border-left-color:var(--muted)}.toggles label{align-items:center;gap:.5rem;display:flex}.shortcuts{margin-top:1rem;font-size:.9rem}.shortcuts summary{cursor:pointer;color:var(--muted)}.shortcuts dl{gap:.35rem;margin:.75rem 0;display:grid}.shortcuts dl>div{grid-template-columns:7.5rem 1fr;gap:.5rem;display:grid}.shortcuts dt,.shortcuts dd{margin:0}kbd{border:1px solid var(--panel-border);border-bottom-width:2px;border-radius:4px;padding:.05rem .35rem;font-family:inherit;font-size:.85em}@media (width<=600px){.app{padding:.75rem .75rem 2rem}.app-header{margin-bottom:.75rem}h1{font-size:1.35rem}.app-header .muted{font-size:.9rem}.layout{gap:1rem}.board-column{max-width:none}.panel{padding:.85rem}.promotion-dialog{padding:.6rem}.promotion-glyph{font-size:1.8rem}.shortcuts dl>div{grid-template-columns:6rem 1fr}}.field-hint{font-size:.85rem}.model-status{margin:.5rem 0 0;font-size:.9rem}.model-status progress{width:100%;height:.5rem;accent-color:var(--accent)}.controls .button-row button{white-space:nowrap;flex:1;padding-inline:.6rem}button.secondary:disabled{opacity:.6;color:var(--muted)}.segmented{border:1px solid var(--panel-border);background:var(--bg);border-radius:8px;grid-template-columns:1fr 1fr;width:100%;padding:3px;display:grid}.segment{cursor:pointer;color:var(--muted);border-radius:6px;justify-content:center;align-items:center;gap:.45rem;padding:.4rem .5rem;display:flex}.segment input{opacity:0;pointer-events:none;position:absolute}.segment-on{background:var(--panel-raised);color:var(--text);box-shadow:0 0 0 1px var(--accent) inset}.segment:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.settings>summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}.settings>summary::-webkit-details-marker{display:none}.settings>summary h2{margin:0}.settings>summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:.5rem;height:.5rem;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.settings[open]>summary:after{transform:rotate(-135deg)translateY(-2px)}.settings .field:last-child{margin-bottom:0}.mic-hint{text-align:center;color:var(--muted);margin:.45rem 0 0;font-size:.8rem}.mic-hint kbd{font-size:.75rem}@media (prefers-reduced-motion:reduce){.settings>summary:after{transition:none}}button,select,input[type=text],.segment,.switch,.toggles label,.settings>summary,.shortcuts summary{transition:background-color .14s,border-color .14s,box-shadow .14s,color .14s,transform .14s}button:hover:not(:disabled){box-shadow:var(--shadow-hover);transform:translateY(-1px)}button:active:not(:disabled){box-shadow:none;transform:translateY(0)scale(.98)}.mic-button:hover:not(:disabled){transform:translateY(-2px)scale(1.01)}button.secondary:hover:not(:disabled){color:var(--accent)}select:hover,input[type=text]:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}select{cursor:pointer}.segment:hover:not(.segment-on){background:var(--tint);color:var(--accent)}.switch,.toggles label{cursor:pointer;border-radius:6px;margin-inline:-.35rem;padding:.2rem .35rem}.switch:hover,.toggles label:hover{background:var(--tint);color:var(--accent)}.settings>summary,.shortcuts summary{border-radius:6px}.settings>summary{margin:-.35rem -.5rem;padding:.35rem .5rem}.settings[open]>summary{margin-bottom:.55rem}.settings>summary:hover,.shortcuts summary:hover{background:var(--tint)}.settings>summary:hover h2,.shortcuts summary:hover{color:var(--accent)}.settings>summary:hover:after{border-color:var(--accent)}.shortcuts summary{width:fit-content;margin-left:-.4rem;padding:.15rem .4rem}@media (prefers-reduced-motion:reduce){button,select,input[type=text],.segment,.switch,.toggles label,.settings>summary,.shortcuts summary{transition:none}button:hover:not(:disabled),button:active:not(:disabled),.mic-button:hover:not(:disabled){transform:none}}
