/* One confirmation lives in #message below the controls. The old decorative
   echo must never add a row above the board, even when it contains text. */
#game-screen .board-footer #cat-mood{display:none!important;pointer-events:none}
/* Do not let browser scroll anchoring follow transient content inside a game. */
#game-screen{overflow-anchor:none}
/* Passive notices belong after the play surface, never on top of a cell. */
body[data-screen=game] #toast{position:static;transform:none;margin:12px auto;min-height:3.2em;pointer-events:none}
@media(max-width:650px){
 /* Optional tools/explanations expand after the board, never before it. */
 #game-screen .hypothesis-panel,#game-screen .hint-lesson{order:4}
 #game-screen #message{min-height:3.2em}
}
/* Sync never inserts or removes rows above the live grid. */
.board-wrap{position:relative}.board-wrap>.cloud-banner{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;margin:0;padding:25px;border:1px solid var(--club-line);border-radius:18px;background:color-mix(in srgb,var(--surface) 96%,transparent);backdrop-filter:blur(9px);color:var(--text);text-align:center;overflow:auto;box-shadow:none}.board-wrap>.cloud-banner[hidden]{display:none!important}.cloud-cat{display:block;width:65px;height:65px;color:var(--orange)}.cloud-cat>svg{width:100%;height:100%}.board-wrap>.cloud-banner>b{font-family:Manrope,sans-serif;font-size:22px;line-height:1.3}.board-wrap>.cloud-banner>span:not(.cloud-cat){font-size:13px;line-height:1.7;color:var(--sub);max-width:310px}.board-wrap>.cloud-banner .sync-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;max-width:360px}.cloud-banner .sync-actions button{min-height:48px;flex:1;padding:13px;border-radius:13px;background:var(--club-bg);color:var(--text);border:1px solid var(--club-line);font-size:13px}.cloud-banner .sync-actions button.primary{background:var(--mint);color:var(--surface)}.sync-actions button b,.sync-actions button small{display:block}.sync-actions button small{font-size:11px;line-height:1.6;font-weight:400;margin-top:5px}.sync-compact{margin:0 0 20px!important;padding:18px!important}.sync-compact>p{font-size:12px;line-height:1.7;margin:7px 0 13px;color:var(--sub)}.sync-card .sync-retry{min-height:44px}.sync-card[data-sync-state=ready] .sync-retry,.sync-card[data-sync-state=saving] .sync-retry,.sync-card[data-sync-state=loading] .sync-retry{display:none}.expedition-zone[hidden],#expedition-zone[hidden]{display:none!important}
@media(max-width:650px){.board-wrap>.cloud-banner{padding:18px;gap:12px;border-radius:17px}.board-wrap>.cloud-banner>b{font-size:20px}.board-wrap>.cloud-banner>span:not(.cloud-cat){font-size:12px}.cloud-cat{width:52px;height:52px}.sync-compact{margin:0 0 12px!important;width:100%;border-radius:18px}.sync-compact .sync-actions{display:grid;grid-template-columns:1fr;gap:9px}.sync-compact .sync-actions>button{text-align:left;min-height:58px}}
