/* One window shares the toolbar's outer edges and follows it while moving. */
html body.compact-controls[data-screen=desktop] .board-footer{overflow:visible}
/* The reserve column follows actual toolbar bounds, including a moved toolbar.
   Panel height is capped first; the remaining reserve trays always fit below. */
html body.compact-controls[data-screen=desktop][data-reserves=left]>.playground>.panel-rail-left{
 position:fixed;left:var(--desktop-reserve-left,8px);top:var(--desktop-reserve-top,120px);right:auto;bottom:auto;
 height:auto;max-height:calc(100dvh - var(--desktop-reserve-top,120px) - 8px);overflow:visible;
 transition:top 320ms cubic-bezier(.2,.7,.2,1);
}
html body.compact-controls[data-screen=desktop][data-reserves=left] .panel-rail-left .drawer-content{overflow:visible}
html body.compact-controls[data-screen=desktop][data-reserves=left] #banks.reserve-dock .tray>svg{
 height:var(--desktop-tray-height,150px);max-height:none;aspect-ratio:auto;
 transition:height 320ms cubic-bezier(.2,.7,.2,1);
}
@media(prefers-reduced-motion:reduce){
 html body.compact-controls[data-screen=desktop][data-reserves=left]>.playground>.panel-rail-left,
 html body.compact-controls[data-screen=desktop][data-reserves=left] #banks.reserve-dock .tray>svg{transition:none}
}
html body.compact-controls[data-screen=desktop] #toolbar-panel{
 position:absolute;left:-1px;right:-1px;width:auto;min-width:0;max-height:var(--toolbar-panel-height,480px);box-sizing:border-box;
 display:flex;flex-direction:column;overflow:hidden;background:var(--panel);border:1px solid var(--line);box-shadow:0 6px 14px #0002;pointer-events:auto;
 animation:toolbar-reveal-down 320ms cubic-bezier(.2,.7,.2,1);
}
html body.compact-controls[data-screen=desktop] .board-footer[data-panel-side=above]>#toolbar-panel{animation-name:toolbar-reveal-up}
@keyframes toolbar-reveal-down{from{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}
@keyframes toolbar-reveal-up{from{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){html body.compact-controls[data-screen=desktop] #toolbar-panel{animation:none}}
html body.compact-controls[data-screen=desktop] >.playground>.board-footer.panel-expanded[data-panel-side=below]{border-radius:12px 12px 0 0}
html body.compact-controls[data-screen=desktop] >.playground>.board-footer.panel-expanded[data-panel-side=below]>#toolbar-panel{top:100%;bottom:auto;border-radius:0 0 12px 12px}
html body.compact-controls[data-screen=desktop] >.playground>.board-footer.panel-expanded[data-panel-side=above]{border-radius:0 0 12px 12px}
html body.compact-controls[data-screen=desktop] >.playground>.board-footer.panel-expanded[data-panel-side=above]>#toolbar-panel{top:auto;bottom:100%;border-radius:12px 12px 0 0}
html body.compact-controls[data-screen=desktop] >.playground>.board-footer.panel-expanded[data-panel-side=above]>.toolbar-position-handle{top:auto;bottom:0;transform:translate(-50%,50%)}
html body #toolbar-panel>:is(.game-widget,.game-window,#toolbar-games){position:relative;inset:auto;width:100%;height:auto;min-height:0;max-height:var(--toolbar-panel-height);margin:0;padding:0;border:0;border-radius:0;box-shadow:none;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;flex:0 1 auto;background:var(--panel)}
html body #toolbar-panel :is(#ai-panel,.position-panel,.history-panel){margin:0;border:0;border-radius:0;box-shadow:none;max-height:none;height:auto;overflow:visible}
html body #toolbar-panel :is(#ai-panel>summary,.position-heading,#graph-panel>summary,.history-panel>summary,.toolbar-panel-heading,.room-dialog-heading,#board-chat-dialog>header){display:flex;align-items:center;flex-wrap:nowrap;gap:6px;min-height:44px;height:auto;margin:0;padding:4px 10px;border:0;border-bottom:1px solid var(--line);border-radius:0;box-sizing:border-box;background:var(--panel)}
html body #toolbar-panel :is(h2,.history-panel>summary){font-size:14px;font-weight:600;line-height:1.4}
html body #toolbar-panel h2{margin:0;flex:1}
html body #toolbar-panel :is(.panel-close,.history-close,.toolbar-panel-heading>button){flex:0 0 32px;margin-left:auto;min-width:32px;width:32px;height:32px;min-height:32px;padding:0;border:0;background:transparent;color:var(--muted);font-size:22px}
html body #toolbar-panel :is(.ai-content,.stat-body,.position-content,.position-help){padding:10px;min-height:0;overflow:visible!important}
html body #toolbar-panel .analysis-actions{margin:0 0 8px}
html body #toolbar-panel .search-options{margin:0 0 10px}
html body #toolbar-panel .idea-picker{grid-template-columns:1fr;gap:8px}
html body #toolbar-panel .idea-choice{padding:10px}
html body #toolbar-panel #piece-notes{padding:0 10px}
html body #toolbar-panel #history-list{max-height:none;height:auto;overflow:visible;padding:4px 6px}
html body #toolbar-panel #history-popover>#change-panel{padding:0 8px}
html body #toolbar-panel #strategy-panel .position-panel{display:block}
html body #toolbar-panel #strategy-panel .position-content{padding:0 10px}
html body #toolbar-panel #strategy-panel .visual-metrics>button{min-height:76px;padding:9px 0!important;background:transparent}
html body #toolbar-panel #board-chat-dialog[open]{display:flex;flex-direction:column;height:min(400px,var(--toolbar-panel-height));overflow:hidden}
html body #toolbar-panel #board-chat-dialog #chat-messages{flex:1;min-height:70px;max-height:none;overflow:auto}
html body #toolbar-panel #board-chat-dialog .chat-controls{display:flex;gap:6px;padding:8px}
html body #toolbar-panel #board-chat-dialog #chat-form{display:flex;min-width:0;width:100%;gap:6px}
html body #toolbar-panel #board-chat-dialog .chat-controls input{min-width:0;width:0;flex:1}
html body #toolbar-panel #room-dialog[open]{display:flex;flex-direction:column}
html body #toolbar-panel #room-dialog #online-panel{order:0;overflow:visible;padding:10px}

/* These rows have their own sizing; toolbar icon rules must never size them. */
html body.compact-controls[data-screen] .game-picker-list{min-width:0;box-sizing:border-box;overflow-x:hidden;scrollbar-width:thin}
html body.compact-controls[data-screen] #toolbar-games .game-picker-list{display:block;position:static;inset:auto;width:100%;max-height:none;margin:0;padding:5px;border:0;border-radius:0;box-shadow:none;overflow:visible;background:transparent}
html body.compact-controls[data-screen] .game-picker-list .game-picker-row{display:flex;align-items:center;gap:2px;min-width:0;width:100%;box-sizing:border-box;padding:0;overflow:hidden}
html body.compact-controls[data-screen] .game-picker-list :is(.game-picker-select,.game-picker-close,.game-picker-pin){box-sizing:border-box;border:0;border-radius:8px;height:auto;min-height:48px;margin:0;max-width:100%;color:var(--ink);background:transparent}
html body.compact-controls[data-screen] .game-picker-list .game-picker-select{display:flex;align-items:center;justify-content:flex-start;flex:1 1 0;width:0;min-width:0;padding:8px;gap:8px;text-align:left}
html body.compact-controls[data-screen] .game-picker-list :is(.game-picker-close,.game-picker-pin){display:grid;place-items:center;flex:0 0 32px;width:32px;min-width:32px;max-width:32px;padding:4px;color:var(--muted)}
html body.compact-controls[data-screen] .game-picker-list .game-label{display:flex;flex:1;flex-direction:column;align-items:flex-start;min-width:0;gap:3px;white-space:normal}
html body.compact-controls[data-screen] .game-picker-list .game-title{display:block;max-width:100%;font-size:14px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body.compact-controls[data-screen] .game-picker-list .game-detail{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere;color:var(--muted)}
html body.compact-controls[data-screen] .game-picker-list .archive-menu-row{display:flex;margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
html body.compact-controls[data-screen] .game-picker-list .archive-menu-row>.game-picker-select{width:100%}
html body.compact-controls[data-screen] .game-picker-list .game-picker-select>svg{flex:none;width:20px;height:24px}
html body.compact-controls[data-screen] .game-picker-list .game-picker-select:before{flex:none}
html body.compact-controls[data-screen] .game-picker-list .game-picker-row.active{background:var(--pressed-face);border-radius:8px}
html body.compact-controls[data-screen] .game-picker-list [hidden]{display:none!important}

/* Mobile retains its fixed positions with one continuous sheet boundary. */
html body.compact-controls[data-screen=mobile] :is(#toolbar-position-lock,.toolbar-position-handle,#toolbar-panel){display:none!important}
html body.compact-controls[data-screen=mobile] .panel-rail.drawer-open{padding:0;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--panel);overflow:hidden}
html body.compact-controls[data-screen=mobile] .panel-rail .drawer-content{padding:0;background:var(--panel)}
html body.compact-controls[data-screen=mobile] .panel-rail .game-widget{border:0;border-radius:0;padding:8px!important;background:var(--panel);box-shadow:none}
html body.compact-controls[data-screen=mobile] #strategy-panel .position-panel{border:0;border-radius:0;box-shadow:none}
html body.compact-controls[data-screen=mobile]:not([data-landscape=true]):is([data-mobile-panel=moves],[data-mobile-panel=openings],[data-mobile-panel=position],[data-mobile-panel=edge])>.playground>.board-footer,
html body.compact-controls[data-screen=mobile]:not([data-landscape=true])[data-history-open=true]>.playground>.board-footer{margin-top:0;border-radius:0 0 12px 12px}
html body.compact-controls[data-screen=mobile][data-landscape=true]:is(.drawer-left-open,.drawer-right-open,.panel-rail.drawer-open,[data-history-popover],#history-popover:not([hidden]),[data-strategy-open],#strategy-panel:not([hidden]))>.playground>.board-footer{margin-bottom:0;border-radius:12px 12px 0 0}
html body.compact-controls[data-screen=mobile][data-landscape=true]>.playground>:is(.panel-rail.drawer-open,#strategy-panel.game-widget:not([hidden]),#history-popover:not([hidden])){margin-top:0!important;border-top:0;border-radius:0 0 12px 12px}
html body.compact-controls[data-screen=mobile][data-landscape=true] .panel-rail .position-heading{padding-left:0}

html body.compact-controls[data-screen] .game-picker-list .game-detail .game-progress:not(:empty):before{content:" · "}
html body.compact-controls[data-screen=desktop]>.playground>.board-footer.panel-expanded{z-index:200}
html body.compact-controls[data-screen=mobile]>.playground>:is(.panel-rail.drawer-open,#history-popover:not([hidden]),#strategy-panel.game-widget:not([hidden])){z-index:200}
html body.compact-controls[data-screen=mobile][data-landscape=true]>.playground>.board-footer:has(#mobile-game-select[open]){border-radius:12px 12px 0 0}

.study-tabs{display:flex;gap:4px;padding:8px 0;flex:none}.study-tabs button{flex:1;min-width:0;padding:8px 4px;font-size:12px;border-radius:7px}.study-tabs button[aria-pressed=true]{background:var(--accent,#d5b974);color:var(--bg,#172025)}
