/* Common outer layout and controls; app-specific boards retain their sizing. */
.standard-app { --app-space: clamp(12px, 2vw, 24px); }
.standard-app .compact-waybar { min-height: 44px; gap: 12px; padding-inline: 16px; }
.standard-app .compact-waybar .brand { font-weight: 600; }
.standard-app :is(.game-shell, .ambient-shell, .radio-shell) { padding: var(--app-space); }
.is-embedded .standard-app :is(.game-shell, .ambient-shell, .radio-shell) { padding: 0; }
.standard-app :is(.game-window, .ambient-window, .radio-window) { border-radius: 12px; }
.standard-app .panel-title { min-height: 44px; padding: 12px 16px; gap: 12px; }
.standard-app :is(.classic-button, .power-button, .preset-button, .mine-mode, .toolbar-button, .app-button) {
  min-height: 44px; padding: 10px 14px; border: 1px solid var(--muted); border-radius: 8px;
  font: 500 .875rem/1.3 ui-sans-serif, system-ui, sans-serif; background: var(--surface-2); color: var(--bright); cursor: pointer;
}
.standard-app :is(button, a, input, select, summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.standard-app button:disabled { opacity: .5; cursor: not-allowed; }
.standard-app [hidden] { display: none !important; }
.resume-banner { padding: 12px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-bottom: 1px solid var(--muted); background: var(--dark-background); }
@media (max-width: 600px) { .standard-app .compact-waybar .bar-center { display: none; } }
.session-dialog { width: min(460px, calc(100vw - 32px)); padding: 24px; border: 1px solid var(--muted); border-radius: 12px; color: var(--foreground); background: var(--surface); }
.session-dialog::backdrop { background: rgb(0 0 0 / .7); }
.session-dialog h2 { margin-top: 0; font-size: 1.25rem; color: var(--bright); }
.session-dialog p { line-height: 1.6; }
.session-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.standard-app .compact-waybar { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; }
.standard-app .compact-waybar .bar-center { flex: 1; text-align: center; }
.standard-app .compact-waybar .bar-right { margin-left: auto; }
.standard-app .radio-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.standard-app .radio-control { min-height: 44px; height: auto; padding: 8px; font: 500 .8rem/1.3 ui-sans-serif, system-ui, sans-serif; border: 1px solid var(--muted); background: var(--surface-2); }
.standard-app .radio-controls .volume-track { flex: 1; min-width: 40px; }
.standard-app :is(.sound-toggle, .icon-button) { min-width: 44px; min-height: 44px; }
.standard-app .reset { min-width: 110px; min-height: 44px; }
.is-embedded .standard-app .compact-waybar { display: none; }
.is-embedded .standard-app :is(.game-window, .ambient-window, .radio-window) { border-radius: 0; }
.standard-app .radio-map-status { bottom: 44px; right: 12px; max-width: calc(100% - 24px); white-space: normal; line-height: 1.5; }
.standard-app .radio-signal-count { bottom: 12px; }
