/* Readouts share the game's steel/cyan palette; dialogs use physical CSS px. */
.formation-ability-row { position: relative; }
.tactics-mobile-menu { display: none; }

.exploration-result-modal.is-won { width: min(1040px, calc(100% - 36px)); height: min(630px, calc(100% - 30px)); }
.exploration-debrief { min-height: 0; display: grid; grid-template-columns: minmax(240px, .85fr) minmax(0, 1.4fr); grid-template-rows: minmax(0, 1fr) auto; gap: 12px; overflow: hidden; text-align: left; }
.exploration-crew, .exploration-danger { padding: 12px 14px; background: #0b1b23; border: 1px solid #42616d; border-radius: 4px; }
.exploration-crew { min-height: 0; overflow-y: auto; }
.exploration-debrief h3 { margin: 0 0 7px; font-size: 19px; color: #dceff2; }
.exploration-debrief small { display: block; color: #a8c2cb; font-size: 14px; line-height: 1.45; }
.exploration-crew-row { display: grid; grid-template-columns: 1fr auto; gap: 6px; margin-top: 12px; font-size: 17px; line-height: 1.3; }
.exploration-crew-row > strong { font-size: 18px; line-height: 1.3; }
.exploration-crew-row > span { color: #ceeaee; font-variant-numeric: tabular-nums; }
.exploration-hp-meter { grid-column: 1 / -1; height: 9px; overflow: hidden; background: #263b45; border-radius: 2px; }
.exploration-hp-meter i { display: block; height: 100%; background: #6ed5bc; }
.exploration-crew-row.is-down { color: #e59999; }
.exploration-crew-row.is-down > span { color: #e59999; }
.exploration-danger { grid-column: 1 / -1; border-left: 4px solid #70cfbc; }
.exploration-danger.danger-1 { border-left-color: #e4c078; }
.exploration-danger.danger-2, .exploration-danger.danger-3 { border-left-color: #ec9090; }
.exploration-danger strong { font-size: 17px; color: #dfebed; }
.exploration-danger p { margin: 6px 0; font-size: 16px; color: #edcfa7; }
.exploration-debrief .exploration-result-rewards { gap: 12px; }
.exploration-debrief .exploration-result-rewards > div { padding: 12px; background: #10212a; border: 1px solid #42616d; border-radius: 4px; }
.exploration-debrief .exploration-result-rewards h3 { font-size: 17px; }
.exploration-result-modal .exploration-result-actions { grid-template-columns: .8fr 1fr 1.2fr; }

.guidance-overlay { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: rgba(1, 7, 11, .9); color: #e3eff3; box-sizing: border-box; }
.guidance-dialog { width: min(850px, 100%); max-height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #608895; border-top: 3px solid #72dae0; border-radius: 6px; background: #101e27; box-shadow: 0 20px 70px #000; }
.guidance-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border-bottom: 1px solid #3b5662; }
.guidance-head h2 { margin: 0; font-size: 20px; line-height: 1.4; }
.guidance-overlay button { min-width: 60px; min-height: 44px; height: auto; padding: 9px 16px; font-size: 16px; line-height: 1.4; flex-shrink: 0; touch-action: manipulation; }
.guidance-overlay button:focus-visible { outline: 2px solid #9eeef2; outline-offset: 2px; }
.guidance-overlay button:disabled { opacity: .4; }
.guidance-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px 20px; font-size: 16px; line-height: 1.65; }
.guidance-content > p { margin: 0 0 14px; }
.guidance-content > .tactics-tools { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.guidance-content .tactics-bank { display: flex; flex: 1 1 240px; padding: 10px; gap: 10px; }
.guidance-content .tactics-bank-label { font-size: 22px; }
.guidance-content .tactics-bank button { flex: 1; min-height: 44px; font-size: 16px; padding: 9px 16px; }
.guidance-content .tactics-undo { width: 100%; min-height: 44px; height: auto; }
.guidance-content .tactics-undo-count { font-size: 16px; }
.guidance-content .tactics-tools-notice { flex: 1 1 100%; max-width: none; font-size: 16px; }
.guidance-content .tactics-overwrite { position: static; flex-wrap: wrap; width: 100%; padding: 12px; box-sizing: border-box; }
.guidance-content .tactics-overwrite > span { width: 100%; font-size: 16px; }
.guidance-content .tactics-overwrite button { min-height: 44px; height: auto; font-size: 16px; }
.guidance-open .battle-stage * { animation-play-state: paused !important; }

.guidance-return { width: min(780px, 100%); border-top-color: #80d9bc; }
.guidance-return .guidance-content { display: grid; gap: 16px; }
.return-success { text-align: center; padding: 10px 12px 4px; animation: return-arrival .45s ease-out both; }
.return-success-kicker { font-size: 12px; font-weight: 800; letter-spacing: .18em; color: #82cbb8; }
.return-success h3 { margin: 4px 0 6px; color: #baf0d5; font-size: 44px; line-height: 1.3; letter-spacing: .12em; text-shadow: 0 0 24px #5aaf8b40; }
.return-success p { margin: 0; color: #bdcfd5; font-size: 16px; }
.return-records { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.return-record { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; padding: 10px 14px; border: 1px solid #3d606c; background: #102630; border-radius: 4px; }
.return-record > span { font-size: 14px; color: #b3c9d1; }
.return-record strong { font-size: 20px; white-space: nowrap; color: #d9edf1; }
.return-record .return-new-record { font-size: 12px; font-weight: 800; color: #f0d38b; }
.return-credits { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; padding: 16px 20px; border: 1px solid #5f8f7b; border-radius: 5px; background: linear-gradient(110deg, #19382e, #11252a); }
.return-credits h4 { margin: 0; font-size: 16px; color: #c1ddcf; }
.return-credits strong { color: #e3f3b7; font-size: 36px; line-height: 1.3; overflow-wrap: anywhere; }
.return-confirmed { margin-left: auto; padding: 2px 9px; border: 1px solid #5e8e7c; border-radius: 3px; color: #abe0c4; font-size: 14px; }
.return-rewards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.return-reward-group { min-width: 0; padding: 14px 16px; border: 1px solid #3d5664; border-radius: 4px; background: #0b1a24; }
.return-reward-group h4 { margin: 0 0 9px; font-size: 16px; color: #c3dae3; }
.return-reward-list { margin: 0; padding-left: 20px; font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; }
.return-reward-empty { margin: 0; font-size: 16px; color: #889faa; }
.return-actions { display: flex; justify-content: center; padding: 12px 20px; border-top: 1px solid #3b5662; background: #10232b; flex: 0 0 auto; }
.return-actions button { min-width: 220px; color: #d0f3e6; }
@keyframes return-arrival { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
  .return-success h3 { font-size: 36px; }
  .return-rewards { grid-template-columns: minmax(0, 1fr); }
  .return-record { padding: 9px 10px; }
}
@media (max-height: 500px) and (min-width: 600px) {
  .guidance-return .guidance-content { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .return-success { grid-column: 1; grid-row: 1; padding: 0; }
  .return-success h3 { font-size: 32px; }
  .return-success p { font-size: 14px; }
  .return-records { grid-column: 1; grid-row: 2; gap: 8px; align-self: start; }
  .return-record { padding: 8px 10px; }
  .return-record strong { font-size: 18px; }
  .return-credits { grid-column: 2; grid-row: 1; align-self: start; padding: 12px 16px; }
  .return-rewards { grid-column: 2; grid-row: 2; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .return-reward-group { padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) { .return-success { animation: none; } }

.guidance-content > small { display: block; color: #acc3ce; font-size: 14px; line-height: 1.6; }

/* Portrait fallback only. Landscape uses the same layout as the PC canvas. */
@media (orientation: portrait) {
body[data-compact-ui="true"] { --tap-size: calc(44px / var(--app-scale)); --menu-font: calc(16px / var(--app-scale)); }
body[data-compact-ui="true"] :is(.command-back-button, .stage-launch-button) { min-height: var(--tap-size); font-size: var(--menu-font); }
body[data-compact-ui="true"] .command-back-row { min-height: var(--tap-size); }
body[data-compact-ui="true"][data-route="ai"] #app .tactics-tools > :not(.tactics-mobile-menu) { display: none; }
body[data-compact-ui="true"] .tactics-tools .tactics-mobile-menu { display: inline-flex; align-items: center; min-height: var(--tap-size); height: auto; font-size: var(--menu-font); padding: 4px 16px; }
body[data-compact-ui="true"] .ai-loop-slot-clear { display: none; }
body[data-compact-ui="true"] .ai-chip-board { display: block; overflow-y: auto; overscroll-behavior: contain; }
body[data-compact-ui="true"] .ai-chip-board > * { margin-bottom: 14px; }
body[data-compact-ui="true"] .ai-condition-shelf { display: block; overflow: visible; }
body[data-compact-ui="true"] :is(.ai-category-chip, .ai-condition-option, .ai-direction-chip, .action-chip) { min-height: var(--tap-size); height: auto; font-size: var(--menu-font); touch-action: manipulation; }
body[data-compact-ui="true"] .ai-category-chip { min-width: 0; padding: 5px; }
body[data-compact-ui="true"] .ai-condition-category-row { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 14px 0; }
body[data-compact-ui="true"] :is(.ai-condition-hint, .ai-condition-preview, .ai-condition-group > strong, .ai-edit-hint *, .action-chip > span, .ai-shelf-label) { font-size: var(--menu-font); }
body[data-compact-ui="true"] .ai-condition-detail { margin-bottom: 14px; }
body[data-compact-ui="true"] :is(.ai-condition-option, .ai-direction-chip) { width: calc(130px / var(--app-scale)); flex-basis: calc(130px / var(--app-scale)); }
body[data-compact-ui="true"] .ai-condition-slider input { min-height: var(--tap-size); }
body[data-compact-ui="true"] .ai-loop-column { overflow-y: auto; grid-template-rows: 34px minmax(max-content, 1fr); }
body[data-compact-ui="true"] .ai-loop-lanes { min-height: calc(6 * var(--tap-size) + 35px); }
body[data-compact-ui="true"] .ai-loop-slot { min-height: calc(46px / var(--app-scale)); box-sizing: border-box; }
body[data-compact-ui="true"] .ai-slot-condition { font-size: calc(13px / var(--app-scale)); }
body[data-compact-ui="true"] .ai-character-summary { display: block; overflow: visible; }
body[data-compact-ui="true"] .ai-character-unit { display: none; }
body[data-compact-ui="true"] .ai-character-stats { display: none; }
body[data-compact-ui="true"] .ai-character-abilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body[data-compact-ui="true"] .ai-character-abilities .formation-ability-row { overflow: visible; display: block; }
body[data-compact-ui="true"] .ai-character-abilities .formation-ability-row p { font-size: var(--menu-font); }
body[data-compact-ui="true"] .formation-ability-row > strong { font-size: var(--menu-font); }
body[data-compact-ui="true"][data-route="formation"] .formation-ability-row { display: block; min-height: calc(78px / var(--app-scale)); overflow: visible; }
body[data-compact-ui="true"][data-route="formation"] .formation-status-ability { overflow-y: auto; }
body[data-compact-ui="true"][data-route="formation"] .formation-ability-row > p { font-size: var(--menu-font); }
body[data-compact-ui="true"][data-route="formation"] .formation-ability-row > strong { display: block; line-height: 1.4; }
body[data-compact-ui="true"] .formation-detail-panel { display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
body[data-compact-ui="true"] .formation-detail-panel > * { flex: 0 0 auto; }
body[data-compact-ui="true"] .formation-detail-stats { max-height: calc(90px / var(--app-scale)); overflow-y: auto; }
body[data-compact-ui="true"] .formation-detail-panel .formation-team-actions { position: sticky; bottom: 0; margin-top: 8px; background: #10212a; }
body[data-compact-ui="true"] .formation-detail-panel .formation-status-action { min-height: var(--tap-size); font-size: var(--menu-font); }
body[data-compact-ui="true"] .command-back-button { min-width: var(--tap-size); }
body[data-compact-ui="true"] .stage-briefing-panel { overflow-y: auto; }
body[data-compact-ui="true"] .exploration-result-modal.is-won { width: calc(100% - 24px); height: calc(100% - 24px); padding: 12px; }
body[data-compact-ui="true"] .exploration-debrief { grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr); grid-template-rows: minmax(0, calc(84px / var(--app-scale))) minmax(0, 1fr); overflow: hidden; }
body[data-compact-ui="true"] .exploration-crew { grid-column: 1; grid-row: 1 / 3; }
body[data-compact-ui="true"] .exploration-result-rewards { grid-column: 2; grid-row: 1; }
body[data-compact-ui="true"] .exploration-danger { grid-column: 2; grid-row: 2; overflow-y: auto; }
body[data-compact-ui="true"] .exploration-debrief :is(h3, strong, span, p, small) { font-size: var(--menu-font); }
body[data-compact-ui="true"] .exploration-debrief small { font-size: calc(13px / var(--app-scale)); }
body[data-compact-ui="true"] .exploration-crew-row { margin-top: calc(8px / var(--app-scale)); }
body[data-compact-ui="true"] .exploration-result-rewards { min-height: calc(68px / var(--app-scale)); }
body[data-compact-ui="true"] .exploration-depth-line { font-size: calc(14px / var(--app-scale)); }
body[data-compact-ui="true"] .exploration-result-actions button { min-height: var(--tap-size); font-size: var(--menu-font); }
body[data-compact-ui="true"] .exploration-risk-note { font-size: calc(13px / var(--app-scale)); }
}
body[data-portrait-phone="true"]::after { content: "横向きにすると文字や操作が大きくなります"; position: fixed; bottom: max(24px, env(safe-area-inset-bottom)); left: 16px; right: 16px; padding: 14px 16px; background: #102632; color: #d9edf2; border: 1px solid #4e8590; border-radius: 5px; font-size: 16px; text-align: center; pointer-events: none; z-index: 10000; }
@media (max-height: 500px) {
  .guidance-head { padding: 6px 14px; }
  .guidance-head h2 { font-size: 18px; }
  .guidance-content { padding: 12px 16px; }
}
@layer game-controls {
  @media (orientation: portrait) {
    body[data-compact-ui="true"] .ai-condition-category-row { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; grid-auto-flow: row !important; grid-auto-columns: auto !important; }
    body[data-compact-ui="true"] .exploration-debrief .exploration-result-rewards > div > strong { font-size: var(--menu-font) !important; line-height: 1.3 !important; }
  }
  .exploration-result-modal .exploration-result-actions { grid-template-columns: .8fr 1fr 1.2fr !important; }
  .exploration-result-modal.is-lost .exploration-result-actions { grid-template-columns: .8fr 1fr !important; }
}
