/* Keep actions above a generous, uninterrupted bottom swipe surface. */
.arcade-control-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; }
.arcade-control-toolbar .input-mode-tabs { justify-content:flex-start; gap:4px; min-width:0; }
.arcade-control-toolbar .input-mode-tabs button { min-height:44px; padding:7px 12px; font-size:14px; white-space:nowrap; }
.arcade-control-toolbar .ability-control { flex:0 0 auto; min-height:44px; height:44px; min-width:92px; margin:0; padding:7px 12px; font-size:14px; border:2px solid var(--ink); border-radius:14px; }
.arcade-input .arcade-touchpad { height:128px; min-height:128px; font-size:16px; }
.arcade-input .arcade-action-row { margin:0; }
.arcade-input .arcade-action-row .control { flex:1; max-width:190px; }
.arcade-input .arcade-dpad { margin:auto; }
.beat-toolbar { justify-content:flex-end; }
.game-stage:has(.arcade-input) { --control-space:350px; }
.game-stage:has(.arcade-input.has-extra-actions) { --control-space:402px; }
.game-stage:has(.arcade-input[data-input-mode=buttons]) { --control-space:410px; }
.game-stage:has(.arcade-input.has-extra-actions[data-input-mode=buttons]) { --control-space:462px; }
.game-stage:has(.arcade-input[data-input-type=rally][data-input-mode=buttons]) { --control-space:280px; }
.game-stage:has(.beat-input) { --control-space:310px; }
#game-dialog .game-stage:has(.arcade-input) .canvas-wrap { max-height:calc(96dvh - var(--control-space)); width:calc((96dvh - var(--control-space)) * .75); }
@media (max-width:650px) {
  .game-stage:has(.arcade-input) { --control-space:360px; }
  .game-stage:has(.arcade-input.has-extra-actions) { --control-space:412px; }
  .game-stage:has(.arcade-input[data-input-mode=buttons]) { --control-space:420px; }
  .game-stage:has(.arcade-input.has-extra-actions[data-input-mode=buttons]) { --control-space:472px; }
  .game-stage:has(.arcade-input[data-input-type=rally][data-input-mode=buttons]) { --control-space:290px; }
  .game-stage:has(.beat-input) { --control-space:315px; }
  #game-dialog .game-stage:has(.arcade-input) .canvas-wrap { max-height:calc(100dvh - var(--control-space)); width:calc((100dvh - var(--control-space)) * .75); }
}
@media (max-width:360px) {
  .arcade-control-toolbar { gap:5px; }
  .arcade-control-toolbar .input-mode-tabs button { padding:7px 9px; font-size:13px; }
  .arcade-control-toolbar .ability-control { min-width:86px; padding:7px 9px; font-size:13px; }
}
@media (max-height:700px) {
  .arcade-input .arcade-touchpad { height:104px; min-height:104px; }
  .game-stage:has(.arcade-input) { --control-space:336px; }
  .game-stage:has(.arcade-input.has-extra-actions) { --control-space:388px; }
  .game-stage:has(.arcade-input[data-input-mode=buttons]) { --control-space:396px; }
  .game-stage:has(.arcade-input.has-extra-actions[data-input-mode=buttons]) { --control-space:448px; }
  .game-stage:has(.arcade-input[data-input-type=rally][data-input-mode=buttons]) { --control-space:266px; }
  .game-stage:has(.beat-input) { --control-space:291px; }
}
@media (orientation:landscape) and (max-height:500px) and (min-width:650px) {
  .game-dialog { width:100vw; height:100dvh; max-width:100vw; max-height:100dvh; margin:0; border:0; border-radius:0; }
  .game-guide { display:none!important; }
  .game-stage:has(.arcade-input) { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,1fr); grid-template-rows:44px 32px 30px 20px minmax(0,1fr); gap:6px 16px; height:100dvh; max-width:920px; padding:8px 16px; }
  .game-stage .game-toolbar { grid-area:1/1/2/3; margin:0; }
  .game-stage .scorebar { grid-area:2/2; padding:0; }
  .game-stage .run-status { grid-area:3/2; margin:0; padding:4px 8px; font-size:12px; }
  .game-stage .top-speed-status { grid-area:4/2; margin:0; }
  #game-dialog .game-stage:has(.arcade-input) .canvas-wrap { grid-area:2/1/6/2; align-self:center; justify-self:center; max-height:calc(100dvh - 72px); width:calc((100dvh - 72px)*.75); }
  .game-stage .touch-controls { grid-area:5/2; align-self:end; padding-top:0; }
  .arcade-input .arcade-touchpad { height:104px; min-height:104px; }
  .arcade-input.has-extra-actions .arcade-touchpad { height:80px; min-height:80px; }
  .arcade-dpad { grid-template-columns:44px 44px 44px; grid-template-rows:40px 40px 40px; }
  .arcade-dpad .control { height:40px; width:44px; }
}
