/* One saved scale for lobby, battle and training. Lobby keeps its existing
   tokens; these rules give the same choice real battle/training dimensions.
   Load after common skins, window-layout and training-layout styles. */
body.game-interface[data-ui-scale='large'] {
  --ui17-menu-font:16px;
  --ui17-button-font:15px;
  --ui17-target:54px;
  --ui17-hud-number:16px;
  --ui17-stick:120px;
  --ui17-knob:48px;
  --ui17-skill:80px;
  --ui17-auto:52px;
  --ui17-actions:84px;
  --ui17-deck:154px;
}
body.game-interface[data-ui-scale='max'] {
  --ui17-menu-font:18px;
  --ui17-button-font:16px;
  --ui17-target:58px;
  --ui17-hud-number:17px;
  --ui17-stick:128px;
  --ui17-knob:52px;
  --ui17-skill:88px;
  --ui17-auto:56px;
  --ui17-actions:92px;
  --ui17-deck:164px;
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) #battle-view-panel .view-page :is(button,select,input:not([type='checkbox'])) {
  min-height:var(--ui17-target);
  font-size:var(--ui17-menu-font);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) #battle-view-panel :is(.field > span,.field small,.check-field,.check-field small,.speed-field > span,.formation-note,.start-reason,.pending-note,.party-member-copy small,.party-member-status,.party-heading > span) {
  font-size:var(--ui17-menu-font);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) #battle-view-panel :is(.conditions-summary p,.time-principle p,.training-basic-intro,.party-member-name) {
  font-size:var(--ui17-menu-font);
  line-height:1.55;
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) #battle-view-panel .view-thumb-footer > * {
  min-height:var(--ui17-target);
  font-size:var(--ui17-menu-font);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) :is(.result-card,.battle-confirm-v15) :is(p,dt,button),
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) .training-welcome :is(p,ol) {
  font-size:var(--ui17-menu-font);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) .battle-hud dd {
  font-size:var(--ui17-hud-number);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']) .thumb-player-hp {
  font-size:var(--ui17-button-font);
}
/* Taller portrait screens have space for larger native hit boxes. No CSS zoom
   or transform scales the whole game or changes pointer-to-world mapping. */
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-controls {
  --joystick-size:var(--ui17-stick);
  --joystick-knob-size:var(--ui17-knob);
  --skill-size:var(--ui17-skill);
  grid-template-columns:var(--ui17-stick) var(--ui17-actions) minmax(0,1fr);
}
body.game-interface[data-control-hand='right']:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-controls {
  grid-template-columns:minmax(0,1fr) var(--ui17-actions) var(--ui17-stick);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .battle-panel > .combat-deck {
  height:var(--ui17-deck);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-actions {
  width:var(--ui17-actions);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-actions .thumb-skill {
  width:var(--ui17-skill); height:var(--ui17-skill);
  min-width:var(--ui17-skill); min-height:var(--ui17-skill);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-actions .thumb-auto {
  width:var(--ui17-auto); height:var(--ui17-auto);
  min-width:var(--ui17-auto); min-height:var(--ui17-auto);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-actions :is(strong,small) {
  font-size:var(--ui17-button-font);
}
body.game-interface:is([data-ui-scale='large'],[data-ui-scale='max']):not([data-low-landscape='true']):not([data-training-compact='true']) .thumb-auto > strong {
  max-width:calc(var(--ui17-auto) - 10px);
}
/* Width and height caps reserve the center for the field. In short landscape
   the original tested combat geometry remains; menus still use the saved size. */
body.game-interface[data-narrow='true'][data-ui-scale='large'] { --ui17-stick:100px; --ui17-skill:76px; --ui17-actions:80px; }
body.game-interface[data-narrow='true'][data-ui-scale='max'] { --ui17-stick:108px; --ui17-skill:80px; --ui17-actions:84px; }
body.game-interface[data-narrow='true']:is([data-ui-scale='large'],[data-ui-scale='max']) .battle-hud dd { font-size:15px; }
body.game-interface[data-low-landscape='true']:is([data-ui-scale='large'],[data-ui-scale='max']) .battle-hud dd { font-size:15px; }
body.game-interface[data-ultra-short-landscape='true']:is([data-ui-scale='large'],[data-ui-scale='max']) #battle-view-panel .view-thumb-footer > * {
  min-height:52px;
  padding:8px 10px;
}
body.game-interface[data-training-compact='true']:is([data-ui-scale='large'],[data-ui-scale='max']) .training-welcome :is(p,ol) { font-size:15px; }
body.game-interface[data-training-compact='true']:is([data-ui-scale='large'],[data-ui-scale='max']) .battle-hud dd { font-size:14px; }
