:root{color-scheme:dark}
.tablebase-page{margin:0;height:auto;min-height:100dvh;background:#0b111b;color:#edf2f8;overflow-x:hidden;overflow-y:visible}
.tablebase-page *{box-sizing:border-box}
.tablebase-page button,.tablebase-page input{font:inherit}
.tablebase-page button{cursor:pointer}
.tablebase-page button:disabled{cursor:not-allowed;opacity:.55}
.tablebase-page :focus-visible{outline:2px solid #8fbaff;outline-offset:2px}
.tablebase-page .skip-link{position:fixed;top:-5rem;left:1rem;z-index:1100;background:#fff;color:#111;padding:.7rem}
.tablebase-page .skip-link:focus{top:1rem}
.tb-main{width:min(100%,1450px);margin:auto;padding:clamp(14px,2vw,30px)}
.tb-header{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:20px}
.tb-header h1{font-size:clamp(1.5rem,2.6vw,2.25rem);letter-spacing:-.025em;margin:2px 0 0}
.tb-eyebrow{margin:0;color:#92aad0;font-size:.84rem;text-transform:uppercase;letter-spacing:.13em;font-weight:750}
.tb-coverage{color:#aac2dc;font-size:.9rem}
.tb-fen-form{margin-bottom:18px}
.tb-fen-form label{display:block;color:#c9d9eb;font-size:.91rem;font-weight:650;margin-bottom:7px}
.tb-fen-form>div{display:flex;gap:8px}
.tb-fen-form input{min-width:0;flex:1;background:#142132;color:#f0f5fc;border:1px solid #415a77;border-radius:7px;padding:11px 13px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.9rem}
.tb-fen-form button,.tb-panel-foot button{border:1px solid #587eaa;border-radius:7px;background:#254976;color:#fff;font-weight:650;min-height:43px;padding:9px 15px}
#fen-error{margin:5px 0 0;min-height:1em;color:#ffadb2;font-size:.88rem}
.tb-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.85fr);column-gap:clamp(14px,2vw,25px);row-gap:8px;align-items:start}
.tb-board-column{min-width:0;width:100%;max-width:720px;justify-self:center;grid-row:span 2}
.tb-board-head,.tb-board-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:36px;color:#adbed2;font-size:.9rem}
.tb-board-head button{border:0;background:transparent;color:#a9c9f5;padding:6px 9px}
.tb-board-frame{width:100%;aspect-ratio:1;border:4px solid #26364c;border-radius:5px;overflow:hidden;background:#152131;box-shadow:0 15px 38px #0006}
.tb-board-frame .caissa-board{--caissa-board-light:#e6d3b1;--caissa-board-dark:#a7795b;--caissa-board-last-move:rgba(255,206,66,.58);width:100%;height:100%}
.tb-board-frame .caissa-board__piece[src*="/b"]{filter:drop-shadow(0 0 1px #f3e8d5) drop-shadow(0 1px 1px #f3e8d5)}
.tb-board-frame .caissa-board__piece[src*="/w"]{filter:drop-shadow(0 1px 1px #1a2632)}
.tb-board-foot{padding:0 3px}
.tb-panel{display:flex;flex-direction:column;min-width:0;min-height:min(730px,calc(100dvh - 210px));max-height:730px;border:1px solid #304056;border-radius:12px;background:#111b29;overflow:hidden}
.tb-panel-head,.tb-panel-foot{flex:none;background:#142132}
.tb-tabs{display:grid;grid-template-columns:repeat(3,1fr)}
.tb-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#a9b8cb;font-weight:700;padding:17px 9px;min-height:52px}
.tb-tabs button[aria-selected=true]{color:#fff;border-color:#73a9ee;background:#1a2b40}
.tb-panel-body{flex:1;min-height:0;overflow-y:auto;padding:24px;scrollbar-width:thin}
.tb-panel-body [hidden]{display:none}
.tb-panel-body h2{font-size:clamp(1.45rem,2vw,2rem);margin:0 0 14px;line-height:1.2}
.tb-result-summary{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:#1d3149;border:1px solid #526a86;border-radius:8px;padding:12px 14px;margin-bottom:12px;box-shadow:0 5px 16px #050d18aa}
#result-label{font-size:1.06rem;font-weight:750}#result-label[data-outcome=win]{color:#b7f1d1}#result-label[data-outcome=loss]{color:#ffb6b9}#result-label[data-outcome=draw]{color:#f4d79b}
.tb-result-distance{display:flex;gap:6px}.tb-result-distance span{border:1px solid #7890ad;border-radius:5px;padding:4px 7px;background:#0e1a2a;font-size:.82rem;font-variant-numeric:tabular-nums;font-weight:700}
.tb-move-context{color:#acc2d7;font-size:.85rem;line-height:1.35;margin:0 0 16px}
.tb-game-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:60px;margin:15px 0 24px;align-content:start}.tb-game-line>p{color:#b7c8da}.tb-game-line button{border:1px solid #405875;border-radius:6px;background:#1a2b40;color:#edf2f8;padding:8px 10px;min-width:58px}.tb-game-line button[aria-current=step]{background:#315b88;border-color:#9bc5f5}.tb-game-line .tb-move-number{color:#a9bad0;font-size:.82rem;margin-left:7px}
.tb-kicker{color:#91abc9;text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:.82rem;margin:0 0 12px}
#result-label[data-outcome=win]{color:#a7e6c5}#result-label[data-outcome=loss]{color:#ffb6b9}#result-label[data-outcome=draw]{color:#f4d79b}
.tb-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}
.tb-metrics>div{display:grid;gap:6px;background:#1a2c41;border:1px solid #3b5270;border-radius:9px;padding:17px}
.tb-metrics span{color:#afc4dd;font-size:.87rem}.tb-metrics strong{font-size:1.9rem;font-variant-numeric:tabular-nums}
.tb-note,.tb-explain{color:#bacada;line-height:1.5;font-size:.95rem}.tb-explain{margin-top:26px;color:#9eafc3}
.tb-groups{display:grid;gap:20px}.tb-move-group h3{font-size:.88rem;text-transform:uppercase;letter-spacing:.08em;color:#a9b8cb;margin:0 0 9px}
.tb-move{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #344962;border-radius:7px;background:#172639;color:#eaf2fb;text-align:left;padding:11px 12px;margin-bottom:6px;min-height:48px}
.tb-move:hover{border-color:#90bdf1;background:#203d5e}.tb-move strong{font-size:1rem}.tb-move span{font-size:.8rem;color:#bfd1e4;text-align:right}
.tb-win{border-left:3px solid #79cbaa}.tb-draw{border-left:3px solid #e3c57d}.tb-loss{border-left:3px solid #e8999b}
.tb-panel-foot{border-top:1px solid #304056;display:flex;gap:9px;justify-content:space-between;padding:12px 16px}.tb-panel-foot button{background:#1c314b;font-size:.9rem;padding:8px 12px}.tb-panel-foot .tb-primary{background:#31527e;border-color:#8eb4e3}.tb-panel-foot [hidden]{display:none}
.tb-setup-head{display:grid;gap:8px;margin-bottom:18px}.tb-setup-head h2{margin-bottom:0}.tb-setup-head>p{margin:0;color:#b6c6d8;line-height:1.45}
.tb-palette{border:0;padding:0;margin:0 0 20px}.tb-palette legend{color:#c9d9eb;font-size:.88rem;font-weight:700;margin-bottom:8px}.tb-palette p{color:#d8e6f4;font-size:.84rem;font-weight:750;margin:12px 0 6px}.tb-palette-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.tb-palette-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tb-palette button,.tb-setup-actions button{min-height:42px;border:1px solid #405875;border-radius:7px;background:#182a40;color:#f0f5fa;font-weight:650}.tb-palette button{padding:3px}.tb-palette button[data-setup-tool]{font-size:.86rem;padding:8px}.tb-palette button[data-setup-piece]{aspect-ratio:1;display:grid;place-items:center;min-width:0}.tb-palette button[data-setup-piece] img{width:min(100%,50px);height:min(100%,50px);object-fit:contain;pointer-events:none}.tb-palette button[data-setup-piece="K"],.tb-palette button[data-setup-piece="Q"],.tb-palette button[data-setup-piece="R"],.tb-palette button[data-setup-piece="B"],.tb-palette button[data-setup-piece="N"],.tb-palette button[data-setup-piece="P"]{background:#344a68}.tb-palette button[data-setup-piece="k"],.tb-palette button[data-setup-piece="q"],.tb-palette button[data-setup-piece="r"],.tb-palette button[data-setup-piece="b"],.tb-palette button[data-setup-piece="n"],.tb-palette button[data-setup-piece="p"]{background:#c3d4e5;border-color:#9badc0}.tb-palette button[aria-pressed=true]{border-color:#ffc861;box-shadow:inset 0 0 0 2px #ffc861,0 0 0 1px #ffc861}
.tb-replay{grid-column:2;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;min-width:0}.tb-replay button{min-height:45px;border:1px solid #405875;border-radius:7px;background:#1c314b;color:#edf4fb;font-size:1.45rem;line-height:1}.tb-replay button:hover:not(:disabled){background:#315b88}.tb-replay button:disabled{opacity:.6}
.tb-setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tb-setup-fields label{display:grid;gap:6px;color:#c9d9eb;font-size:.88rem;font-weight:650}.tb-setup-fields select,.tb-setup-fields input{min-width:0;border:1px solid #415a77;border-radius:7px;background:#142132;color:#f0f5fc;padding:10px}
.tb-setup-note{color:#9eafc3;font-size:.86rem;line-height:1.45}.tb-setup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.tb-setup-actions .tb-primary{background:#254976;border-color:#6c9dd4}.tb-error{min-height:1.25rem;margin:9px 0 0;color:#ffadb2;font-size:.87rem}
.tb-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tb-dialog{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:#05080dcc}.tb-dialog[hidden]{display:none}.tb-dialog>div{width:min(420px,100%);border:1px solid #58708e;border-radius:12px;background:#111b29;padding:22px;box-shadow:0 24px 70px #000b}.tb-dialog h2{margin:0 0 6px}.tb-dialog p{color:#b7c7d8}.tb-dialog>div>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:18px 0}.tb-dialog button{min-height:44px;border:1px solid #587eaa;border-radius:7px;background:#254976;color:#fff;font-weight:650}.tb-dialog #promotion-cancel{width:100%;background:#1c314b}
.tb-credit{color:#95a9be;font-size:.85rem;line-height:1.5;margin:18px 0}.tb-credit a{color:#a9d0ff}
@media(max-width:920px){.tb-workspace{grid-template-columns:minmax(0,1fr)}.tb-board-column{max-width:640px;grid-row:auto}.tb-replay{grid-column:1}.tb-panel{min-height:0;max-height:none;overflow:visible}.tb-panel-body{min-height:0;max-height:none;overflow:visible}.tb-result-summary{position:static}}
@media(max-width:520px){.tb-main{padding:10px 10px 24px}.tb-header{padding-left:58px;align-items:start;flex-wrap:wrap;gap:4px}.tb-header h1{font-size:1.45rem}.tb-eyebrow{font-size:.72rem}.tb-coverage{font-size:.8rem}.tb-fen-form>div{flex-wrap:wrap}.tb-fen-form input{flex-basis:100%}.tb-fen-form button{width:100%}.tb-board-frame{border-width:2px}.tb-board-foot{font-size:.77rem}.tb-tabs button{font-size:.82rem;padding-inline:4px}.tb-panel-body{padding:18px}.tb-panel-foot{display:grid;grid-template-columns:minmax(0,1fr) auto auto;padding:10px;align-items:center}.tb-panel-foot button{min-width:0;padding:8px 6px;font-size:.78rem}.tb-setup-fields{grid-template-columns:1fr}.tb-setup-actions{grid-template-columns:1fr}}
