/* Keep PC geometry on landscape phones; adjust typography only. */
@media (orientation: landscape) {
  body[data-compact-ui="true"] {
    --landscape-copy: clamp(14px, calc(9px / var(--app-scale)), 17px);
    --landscape-title: clamp(16px, calc(10px / var(--app-scale)), 19px);
  }
  body[data-compact-ui="true"] .formation-detail-panel .formation-ability-row > p {
    font-size: var(--landscape-copy);
  }
  body[data-compact-ui="true"] .formation-detail-panel .formation-ability-row > strong {
    font-size: var(--landscape-title);
  }
  body[data-compact-ui="true"][data-route="ai"] :is(.ai-condition-hint, .ai-condition-preview, .ai-edit-hint, .ai-shelf-label) {
    font-size: var(--landscape-copy);
  }
  body[data-compact-ui="true"][data-route="ai"] .ai-character-abilities .formation-ability-row :is(p, strong) {
    font-size: 14px;
  }

  /* Battle HUD: on a phone the PC sizes drop to 4.5-6.5px on screen. */
  body[data-viewport][data-compact-ui="true"] .battle-hud-title .battle-stage-name {
    font-size: var(--landscape-copy);
  }
  body[data-viewport][data-compact-ui="true"] :is(.battle-hud-clock, .side-label) {
    font-size: clamp(11px, calc(8px / var(--app-scale)), 16px);
  }
  body[data-viewport][data-compact-ui="true"] .unit-hp {
    font-size: clamp(13px, calc(8px / var(--app-scale)), 16px);
  }
  /* Finger-sized retreat button. */
  body[data-viewport][data-compact-ui="true"] .battle-retreat-button {
    min-height: clamp(38px, calc(28px / var(--app-scale)), 56px);
    padding-inline: 18px;
    font-size: var(--landscape-copy);
  }

  /* Ranking: the squad detail of a record. */
  body[data-viewport][data-compact-ui="true"] :is(.ranking-unit-detail, .ranking-unit-detail > small, .ranking-detail-note, .ranking-tactics > summary) {
    font-size: var(--landscape-copy);
  }
  body[data-viewport][data-compact-ui="true"] .ranking-unit-detail > strong {
    font-size: var(--landscape-title);
  }

  /* Purchase / unlock confirmation (the sale dialog is enlarged in part-inventory.css). */
  body[data-viewport][data-compact-ui="true"] .unlock-confirm-modal:not(.part-sale-modal) {
    width: min(640px, calc(100% - 40px));
  }
  body[data-viewport][data-compact-ui="true"] .unlock-confirm-modal:not(.part-sale-modal) :is(.unlock-description, .unlock-price span, .unlock-price small, .unlock-shortage, .unlock-confirm-head small) {
    font-size: var(--landscape-copy);
  }
  body[data-viewport][data-compact-ui="true"] .unlock-confirm-modal:not(.part-sale-modal) .unlock-confirm-actions button {
    min-height: clamp(38px, calc(28px / var(--app-scale)), 56px);
    font-size: var(--landscape-title);
  }
}
