/* Final palette shared by every screen. Saved board themes stay valid. */
:root{color-scheme:dark;--page:#14191c;--surface:#1c2428;--ink:#bac7c0;--muted:#94a39b;--line:#35413e;--primary:#8eae9b;--soft:#24322d;--board-light:#7b8879;--board-dark:#35443c;--board-frame:#29372f;--cream:#bac7c0}
html,body,#app{background:#14191c;color:var(--ink)}html{min-height:100%;background-color:#14191c}body{color-scheme:dark}input,select,option,dialog{color-scheme:dark}header.wood,.panel,.historybox,dialog{background:var(--surface);color:var(--ink)}.profile{overflow:hidden;background:#101311;border:1px solid var(--line)}.profile img{display:block;width:100%;height:100%;object-fit:contain}.big,.green,.dialogActions .green{background:#365344;border-color:#4c6f5b;color:#c4d2c9}.big.blue,.blue{background:#25352f;color:var(--ink);border-color:var(--line)}.settingrow input:after{background:#93a99b}.settingrow input:checked{background:#466f59}.sq.check{background:#795349}.sq.last{box-shadow:inset 0 0 0 2px #9f9963}.coord{color:#23332a}.dark .coord{color:#99ac9c}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #83a88e;outline-offset:3px}dialog::backdrop{background:#080d10c9}#promotionChoices button{background:#28372f}.pieceSprite[data-piece^="w"]{filter:brightness(.82) saturate(.8)}.dragPiece.pieceSprite{position:fixed}.captureGhost.pieceSprite{position:absolute}
:root[data-board-theme=classic]{--board-light:#7b8879;--board-dark:#35443c;--board-frame:#29372f}:root[data-board-theme=walnut]{--board-light:#91816a;--board-dark:#514337;--board-frame:#3b322b}:root[data-board-theme=green]{--board-light:#7b9177;--board-dark:#3b543e;--board-frame:#2c4030}:root[data-board-theme=blue]{--board-light:#798e9a;--board-dark:#3c5265;--board-frame:#2d3e4c}:root[data-board-theme=slate]{--board-light:#7c878e;--board-dark:#3d4851;--board-frame:#2e383e}:root[data-board-theme=rose]{--board-light:#958181;--board-dark:#59434a;--board-frame:#40333a}
#studioSplash{position:fixed;inset:0;display:grid;place-items:center;background:#0a0c0b;z-index:20000;pointer-events:none;opacity:1;transition:opacity .16s}#studioSplash img{width:min(68vw,310px);height:auto;filter:brightness(.8)}#studioSplash.leaving{opacity:0}@media(prefers-reduced-motion:reduce){#studioSplash{transition:none}}
/* Fixed app shell: only settings and analysis lists have their own scroll area. */
html,body{height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}#app{height:100%;height:100dvh;min-height:0;overflow:hidden}header.wood{height:64px;min-height:64px;flex:0 0 64px;padding:9px 15px}.profile{width:42px;height:42px;border-radius:11px}#heading b{font-size:17px}#heading small{font-size:10px;margin-top:3px}.ribbon{top:11px;right:15px;width:39px;height:39px}main{flex:1;min-height:0;padding:10px 12px;overflow:hidden}.screen{height:100%;min-height:0;padding-bottom:12px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#45594b #18201d}footer{display:none!important}#home{padding:0 8px 8px}#home h1{font-size:27px;margin-bottom:7px}.eyebrow{margin:6px 0 9px}.subtitle{font-size:12px;margin-bottom:12px}.homeSpotlight{margin:12px 0;padding:8px 12px 12px;border-radius:17px}.hero{height:clamp(80px,19dvh,145px)}.hero .pieceSprite{width:clamp(85px,23dvh,140px);height:clamp(85px,23dvh,140px)}.big{min-height:46px;padding:11px;margin:6px 0;font-size:14px}.autosave{margin:10px 0;font-size:10px}.titlebar{min-height:48px;padding-top:5px;padding-bottom:9px}.panel{padding:14px;margin:10px 0}#gameScreen{display:flex;flex-direction:column;align-items:stretch;overflow:hidden;padding:0;position:relative}#gameScreen .titlebar{flex:0 0 45px;min-height:45px;padding:2px 40px 8px}#gameScreen .titlebar h1{font-size:14px}#gameScreen .titlebar p{font-size:11px;margin:2px 0 0}.back{width:32px;height:32px;font-size:24px;top:2px}.opponentLine,.underboard{flex:0 0 auto;line-height:1.4;font-size:10px;padding:3px 1px 7px}.boardFrame.wood{flex:0 0 auto;width:min(100%,calc(100dvh - 315px));align-self:center;padding:3px;border-radius:7px}.underboard{padding-top:7px;padding-bottom:3px}#captured{flex:0 0 17px;min-height:17px;font-size:9px;line-height:17px}.gameActions{margin:5px 0 3px;flex:0 0 54px}.gameActions>button{min-height:50px;min-width:50px;font-size:9px;gap:3px}.round{width:35px;height:35px;border-radius:10px;font-size:24px}.message{margin:3px 0;font-size:10px;min-height:16px;line-height:1.5}.historybox{margin:4px 0 0;padding:9px 12px;flex:0 0 auto}.historybox[open]{position:absolute;bottom:0;left:0;right:0;z-index:12;max-height:45%;overflow:auto;background:#1c2428}.gameResult{position:absolute;left:8px;right:8px;top:60px;z-index:20;max-height:calc(100% - 75px);overflow:auto;background:#1c2924;box-shadow:0 12px 45px #000b;padding:18px;border:1px solid #58745f}.gameResult p{font-size:12px}.resultActions{display:flex;flex-wrap:wrap;gap:8px}.resultActions .big{flex:1 1 40%;margin:0;min-height:42px}.resultActions #analysisOpen{flex-basis:100%}#analysis{padding:0 2px 12px}#analysisProgress{font-size:11px;line-height:1.5;color:var(--muted);margin:2px 0 10px}#analysisBoard{display:grid;grid-template-columns:repeat(8,1fr);width:min(100%,300px);aspect-ratio:1;border:4px solid var(--board-frame);border-radius:6px;overflow:hidden;margin:auto}.analysisSq{aspect-ratio:1;position:relative;background:var(--board-light)}.analysisSq.dark{background:var(--board-dark)}.analysisSq .pieceSprite{position:absolute;inset:0}.analysisSq.analysisLast{box-shadow:inset 0 0 0 2px #a3a36b}.analysisNav{display:flex;justify-content:center;align-items:center;gap:16px;margin:10px 0}.analysisNav button{width:43px;min-height:38px;background:#293b31;border:1px solid #47614f;color:var(--ink);border-radius:8px;font-size:22px}#analysisPosition{font-size:13px;min-width:140px;text-align:center}#analysisScore,#analysisMoveNote,#analysisSummary{font-size:12px;line-height:1.7;margin:7px 0;color:var(--ink)}.analysisHelp{font-size:10px;line-height:1.7;color:var(--muted)}#analysisMoves{display:flex;flex-direction:column;gap:5px}#analysisMoves button{background:#1d2a23;color:var(--ink);border:1px solid #374c3e;text-align:left;border-radius:7px;padding:11px;font-size:12px}#analysisMoves button[aria-pressed=true]{border-color:#8aa88f}#analysisMoves button.inaccuracy{border-left:4px solid #8f8858}#analysisMoves button.mistake{border-left:4px solid #a17c50}#analysisMoves button.blunder{border-left:4px solid #a56860}@media(max-height:620px){header.wood{height:55px;min-height:55px;flex-basis:55px;padding:6px 12px}.profile{width:38px;height:38px}.ribbon{top:8px}.boardFrame.wood{width:min(100%,calc(100dvh - 300px))}.homeSpotlight .hero{height:70px}.hero .pieceSprite{width:85px;height:85px}.homeSpotlight{margin:8px 0}.spotlightText span{display:none}.big{min-height:40px;padding:9px}#home h1{font-size:23px}.subtitle{font-size:11px}}
/* Move feedback: compact badges live on the destination square. */
.moveBadge{position:absolute;top:1px;right:1px;z-index:15;width:clamp(14px,3.7vw,21px);height:clamp(14px,3.7vw,21px);display:grid;place-items:center;border-radius:50%;font:800 clamp(9px,2.4vw,13px)/1 system-ui;color:#dce6e4;background:#416a8c;border:1px solid #8da9bb;box-shadow:0 1px 3px #0008;pointer-events:none;user-select:none}.moveBadge svg{width:80%;height:80%}[data-quality=book]>.moveBadge{background:#76613e;border-color:#a38d62}[data-quality=best]>.moveBadge,[data-quality=good]>.moveBadge{background:#316c9c;border-color:#7da9c9}[data-quality=inaccuracy]>.moveBadge{background:#8b7133;border-color:#baa365}[data-quality=mistake]>.moveBadge{background:#a64f50;border-color:#d48d86}[data-quality=blunder]>.moveBadge{background:#913e49;border-color:#d27f8b}[data-quality=good],[data-quality=best]{--quality-color:#7caed4}[data-quality=book]{--quality-color:#c2aa79}[data-quality=inaccuracy]{--quality-color:#c3af70}[data-quality=mistake],[data-quality=blunder]{--quality-color:#d38f89}#history [data-quality]{color:var(--quality-color,inherit)}#liveFeedbackStatus{font-size:10px;line-height:16px;flex:0 0 16px;height:16px;min-height:16px;margin:0;text-align:center;color:var(--quality-color,var(--muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boardFrame.wood{width:min(100%,calc(100dvh - 331px))}#analysisMoves button.good,#analysisMoves button.best{border-left:4px solid #4e88b6;color:#93b9d4}#analysisMoves button.book{border-left:4px solid #a38d62;color:#c2aa79}#analysisMoves button.mistake,#analysisMoves button.blunder{border-left:4px solid #b65e65;color:#d38f89}#analysisMoves button.inaccuracy{border-left:4px solid #ab9556;color:#c3af70}.analysisSq[data-quality]{box-shadow:inset 0 0 0 2px var(--quality-color)}@media(max-height:620px){.boardFrame.wood{width:min(100%,calc(100dvh - 316px))}}

/* Optional green/cream tournament board; the application chrome stays dark. */
:root[data-board-theme=tournament]{--board-light:#e7e9ce;--board-dark:#779657;--board-frame:#44573c}:root[data-board-theme=tournament] .sq.last{background:#c1c75a;box-shadow:inset 0 0 0 2px #a8ad4b}:root[data-board-theme=tournament] .sq.selected{background:#c4c65a}:root[data-board-theme=tournament] .sq.check{background:#aa6552}
:root[data-piece-set=tournament] .pieceSprite::before{left:0;top:4%;width:100%;height:100%;background-size:contain;background-position:center}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wp"]::before{background-image:url(pieces-tournament/wp.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wn"]::before{background-image:url(pieces-tournament/wn.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wb"]::before{background-image:url(pieces-tournament/wb.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wr"]::before{background-image:url(pieces-tournament/wr.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wq"]::before{background-image:url(pieces-tournament/wq.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="wk"]::before{background-image:url(pieces-tournament/wk.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="bp"]::before{background-image:url(pieces-tournament/bp.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="bn"]::before{background-image:url(pieces-tournament/bn.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="bb"]::before{background-image:url(pieces-tournament/bb.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="br"]::before{background-image:url(pieces-tournament/br.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="bq"]::before{background-image:url(pieces-tournament/bq.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece="bk"]::before{background-image:url(pieces-tournament/bk.svg)}
:root[data-piece-set=tournament] .pieceSprite[data-piece$="p"]::before{left:.5%;top:6.2%;width:99%;height:99%}:root[data-piece-set=tournament] .pieceSprite[data-piece^="w"]{filter:none}
/* The board uses the full available width, with a height limit on short phones. */
#gameScreen{width:calc(100% + 24px);margin-left:-12px}#gameScreen .titlebar{min-height:35px;flex-basis:35px;padding-bottom:3px;margin:0 12px}#gameScreen .opponentLine,#gameScreen .underboard{padding-left:12px;padding-right:12px;font-size:10px;padding-top:2px;padding-bottom:4px}#gameScreen .boardFrame.wood{width:min(100%,calc(100dvh - 284px));padding:2px;border-radius:4px}#gameScreen .gameActions{flex-basis:48px;margin:3px 8px 2px}#gameScreen .gameActions>button{min-height:45px}#gameScreen #captured{min-height:12px;flex-basis:12px;line-height:12px}#gameScreen .historybox{margin-left:12px;margin-right:12px;padding:7px 10px}#gameScreen .message{margin:2px 8px;font-size:9px;min-height:14px}#gameScreen .historybox[open]{left:12px;right:12px;margin-left:0;margin-right:0}@media(max-height:620px){#gameScreen .boardFrame.wood{width:min(100%,calc(100dvh - 278px))}}
