/* Board-sized columns keep the compact sidebar close to the frame. */
:root{--play-side:344px;--play-gap:24px}.panel-heading{display:none}.game-panel{padding:16px;max-height:calc(100svh - 96px);overflow-y:auto;background:linear-gradient(155deg,#213641cc,#162932e8);border:1px solid #48606a;border-radius:14px;box-shadow:0 12px 35px #08141b26;scrollbar-gutter:stable;scrollbar-width:thin}.robot-portrait{margin:0;aspect-ratio:2.06;border-radius:9px;border-color:#61707880}.robot-portrait>img{object-position:center 45%}.portrait-caption{left:12px;right:12px;bottom:10px}.portrait-caption>div>span{font-size:.45rem;letter-spacing:.14em}.portrait-caption strong{font-size:.86rem}.portrait-caption b{margin:0 7px}.portrait-level{font-size:.64rem;padding:4px 7px}.bot-greeting{font-size:.69rem;margin:8px 1px 12px;line-height:1.55;color:#adbdc6;min-height:16px}.mode-switch{padding:3px;background:#10212b;border-color:#3d535f;border-radius:7px;gap:3px}.mode-switch button{font-size:.78rem;min-height:36px;padding:8px 4px}.mode-switch button[aria-pressed=true]{background:#405260;color:#fff4df}.match-card{margin-top:13px;padding:14px 12px 12px;border:1px solid #9f845344;border-radius:8px;background:linear-gradient(135deg,#b99e6211,#0c202630)}.status-block{margin:0;padding:0;border:0;min-height:0}.status-overline{font-size:.53rem;letter-spacing:.12em;color:#e6c28a}.status-block h2{font-size:1.19rem;margin:7px 0 5px;line-height:1.4;font-weight:650;color:#fff1d9}.status-block p{font-size:.71rem;line-height:1.65;min-height:0;color:#a9bdc6}.players{margin-top:12px;gap:7px}.player{padding:8px 7px;gap:3px 6px;grid-template-columns:20px minmax(0,1fr);min-height:55px;border-radius:5px;background:#152732;border-color:#3a505b}.player.active{border-color:#bb9960;background:#aa8b4614}.player-symbol{width:20px;height:28px}.player-symbol svg{width:23px;height:27px}.player-info>strong{font-size:.72rem;line-height:1.5}.player-info>span{font-size:.6rem;color:#a6b6bf}.turn-tag{font-size:.51rem;padding:2px 4px;margin-top:1px}.captured .piece{width:13px;height:15px}.actions{margin:11px 0 0;gap:7px}.actions button{min-height:42px;font-size:.77rem;padding:10px 7px;border-radius:6px}.primary-button{background:linear-gradient(#f2c88f,#e8b16c);border-color:#d6ad76;color:#35281b;box-shadow:inset 0 1px 0 #ffe5b755,0 2px 6px #0002}.primary-button:hover{background:linear-gradient(#ffe0b2,#f4c184)}.secondary-button{border-color:#4e6671;color:#cbd6d9}.match-settings{margin-top:14px;padding-top:12px;border-top:1px solid #3c535e;min-height:37px}.match-settings>summary{list-style:none;display:flex;gap:8px;align-items:center;cursor:pointer;font-size:.76rem;color:#e3e5df;padding:3px 0 4px;user-select:none}.match-settings>summary::-webkit-details-marker{display:none}.match-settings>summary>small{margin-left:auto;font-size:.64rem;color:#94aab6;font-weight:400}.match-settings>summary>b{font-size:.9rem;color:#b7b195;line-height:1;transition:transform .15s}.match-settings[open]>summary>b{transform:rotate(180deg)}.settings-body{padding-top:4px}.difficulty-heading{font-size:.73rem;margin:13px 0 8px}.difficulty-heading strong{font-size:.69rem}.level-grid{gap:3px}.level-button{height:30px;min-height:30px;font-size:.72rem}.level-description{font-size:.65rem;line-height:1.5;margin:8px 0 12px}.color-picker{font-size:.7rem;padding-top:10px}.color-picker button{font-size:.65rem;padding:6px 8px}.history-heading{font-size:.69rem;margin:15px 0 8px;color:#b0c1c9}.history-heading strong{font-size:.81rem}.history-heading strong span{font-size:.64rem}.move-history{height:67px;font-size:.73rem;border-color:#364c59;background:#11232d;border-radius:5px}.empty-history{font-size:.64rem;margin:18px 0;color:#849daa}.rules{margin-top:13px;padding-top:11px;border-color:#3b515b}.rules summary{font-size:.7rem;color:#aebec6}.rules p{font-size:.72rem}.board-caption{margin-top:11px}.bottom-strip{margin-top:22px}.quiet-note{margin-top:13px}.game-panel .rules[open] p{line-height:1.85}footer{color:#95aab5}
@media(min-width:961px){main{--play-board:min(calc(100svh - 132px),calc(100vw - 56px - var(--play-side) - var(--play-gap)),980px);grid-template-columns:var(--play-board) var(--play-side);gap:var(--play-gap);justify-content:center;width:fit-content;max-width:100%;margin:0 auto;padding-top:14px}.board-stage,.bottom-strip,.board-caption,.quiet-note{max-width:none;width:100%}.board-frame{padding:21px}.app-shell{max-width:1480px;padding:0 28px}.game-panel{align-self:start;min-width:0}.board-heading{display:none}}
@media(min-width:961px) and (max-width:1100px){main{--play-side:310px;--play-board:min(calc(100svh - 132px),calc(100vw - 44px - var(--play-side) - 24px))}.app-shell{padding:0 22px}.game-panel{padding:13px}.board-frame{padding:18px}}
@media(max-width:960px){.app-shell{max-width:680px;padding:0 14px}main{display:grid;grid-template-columns:minmax(0,1fr);gap:26px;width:100%;padding-top:20px}.board-stage,.bottom-strip,.board-caption,.quiet-note{max-width:none;width:100%}.board-heading{display:flex}.board-heading h1{font-size:1.55rem}.game-panel{width:100%;max-height:none;padding:16px;overflow:visible}.header{gap:9px}.robot-portrait{aspect-ratio:2.1}.portrait-caption strong{font-size:1rem}.portrait-caption>div>span{font-size:.53rem}.portrait-level{font-size:.75rem}.bot-greeting{font-size:.76rem}.mode-switch button{font-size:.85rem;min-height:39px}.match-card{padding:15px}.status-block h2{font-size:1.3rem}.status-block p{font-size:.78rem}.players{gap:9px}.player{padding:10px;min-height:64px}.player-info>strong{font-size:.8rem}.player-info>span{font-size:.65rem}.turn-tag{font-size:.57rem}.actions button{font-size:.85rem;min-height:44px}.match-settings>summary{font-size:.82rem}.match-settings>summary>small{font-size:.7rem}.difficulty-heading{font-size:.8rem}.level-button{height:35px;min-height:35px;font-size:.78rem}.level-description{font-size:.73rem}.color-picker{font-size:.77rem}.color-picker button{font-size:.72rem}.move-history{height:79px;font-size:.78rem}.history-heading{font-size:.77rem}.rules summary{font-size:.77rem}}
@media(max-width:380px){.app-shell{padding:0 9px}.game-panel{padding:13px}.brand-copy>span{font-size:1.15rem}.header .icon-button{width:28px;height:28px}.brand{gap:7px}.brand-emblem{width:39px;height:39px}.header-note{display:none}.match-card{padding:12px}}
