/* Exploration uses the same console, with the map and a compact tactical dock. */
.tactical-dock { display: none; }

html:has(body.in-exploration), body.in-exploration {
  height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
}
body.in-exploration { padding: 0; }
body.in-exploration #viewport-container.in-exploration {
  height: 100dvh;
  max-height: 100dvh;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: var(--sat) calc(12px + var(--sar)) max(8px, var(--sab)) calc(12px + var(--sal));
  box-sizing: border-box;
}

#viewport-container.in-exploration > .telemetry {
  flex: 0 0 84px;
  min-height: 0;
  padding: 0 0 6px;
  display: grid;
  grid-template: 48px 28px / minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 12px;
}
.in-exploration .identity-row { grid-column: 1 / -1; height: 48px; margin: 0; gap: 6px; }
.in-exploration .brand h1 { font-size: 25px; margin: 0; }
.in-exploration .brand-cross { display: none; }
.in-exploration .system-controls { flex: 0 0 auto; gap: 2px; }
.in-exploration .system-controls button { min-width: 48px; min-height: 48px; height: 48px; padding: 4px; }
.in-exploration .telemetry-divider, .in-exploration .brand .eyebrow,
.in-exploration #audio-toggle, .in-exploration .stage-heading .eyebrow,
.in-exploration .grid-axis, .in-exploration .combat-instruction,
.in-exploration .action-dock > .dock-heading, .in-exploration .action-dock > .charge-track,
.in-exploration .action-dock > .charge-caption, .in-exploration #protocol-buttons,
.in-exploration .console-footer, .in-exploration .signal-chevron, .in-exploration .signal-index,
.in-exploration .action-dock::before, .in-exploration .action-dock::after { display: none; }
.in-exploration .telemetry > .gauge-row { min-width: 0; margin: 0; }
.in-exploration .gauge-label { margin: 0 0 3px; line-height: 18px; letter-spacing: 0; }
.in-exploration .gauge-label > span { font-size: 0; }
.in-exploration .integrity .gauge-label > span::after { content: 'HULL'; font-size: 12px; }
.in-exploration .thermal .gauge-label > span::after { content: 'HEAT'; font-size: 12px; }
.in-exploration .heat-symbol { display: none; }
.in-exploration .gauge-label strong, .in-exploration .gauge-label small { font-size: 12px; }
.in-exploration .segmented-track, .in-exploration .heat-track { height: 5px; }

#viewport-container.in-exploration > .staging {
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px 0;
  gap: 6px;
  overflow: hidden;
}
.in-exploration .stage-heading { height: 36px; }
.in-exploration .stage-heading h2 { font-size: 26px; margin: 0; }
.in-exploration .sector-badge { gap: 6px; padding-left: 8px; }
.in-exploration .sector-badge span { writing-mode: horizontal-tb; font-size: 12px; letter-spacing: 0; }
.in-exploration .sector-badge b { font-size: 28px; }
.in-exploration .stage-meta { margin: 0; padding: 0 0 4px; line-height: 16px; font-size: 11px; letter-spacing: 0; }
#viewport-container.in-exploration .stage-bay {
  flex: 1 1 auto;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr);
  container-type: size;
}
.in-exploration .stage-bay > .combat-view { display: none; }
.in-exploration .stage-bay > .traversal-view {
  --sector-grid-size: clamp(260px, min(85vw, 42dvh, calc(100cqh - 60px)), 100%);
  min-height: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: none;
}
.in-exploration .grid-surround {
  flex: 0 0 auto;
  width: var(--sector-grid-size);
  aspect-ratio: 1 / 1;
  min-height: 0;
  max-height: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.in-exploration .sector-grid {
  flex: 0 0 auto;
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  grid-template: repeat(5, minmax(0, 1fr)) / repeat(5, minmax(0, 1fr));
  gap: 5px;
}
.in-exploration .node { min-width: 48px; min-height: 48px; aspect-ratio: 1 / 1; }
.in-exploration .node .node-code { font-size: 10px; line-height: 12px; }
.in-exploration .grid-footer {
  flex: 0 0 28px;
  width: var(--sector-grid-size);
  padding: 6px 0;
  font-size: 11px;
  line-height: 16px;
}

#viewport-container.in-exploration .signal-panel { flex: 0 0 26px; min-height: 0; height: 26px; width: var(--sector-grid-size); margin-top: 6px; padding: 4px 6px; overflow: hidden; }
.in-exploration .signal-panel > div { min-width: 0; display: flex; align-items: baseline; gap: 8px; }
.in-exploration .signal-panel b { flex: 0 0 auto; max-width: 46%; overflow: hidden; text-overflow: ellipsis; }
.in-exploration .signal-panel p { min-width: 0; max-width: none; overflow: hidden; text-overflow: ellipsis; }
.in-exploration .signal-panel b, .in-exploration .signal-panel p { margin: 0; font-size: 11px; line-height: 16px; letter-spacing: 0; white-space: nowrap; }

#viewport-container.in-exploration > .action-dock { flex: 0 0 auto; min-height: 0; padding: 0; width: 100%; }
.in-exploration .tactical-dock {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 86px;
  align-items: center;
  gap: 6px;
  height: clamp(52px, 7dvh, 60px);
  width: 100%;
  box-sizing: border-box;
}
.in-exploration .tactical-energy { display: flex; flex-direction: column; font-size: 11px; line-height: 16px; color: var(--hazard-amber); white-space: nowrap; }
.in-exploration .tactical-energy-limit { color: var(--muted); }
.in-exploration .tactical-modules { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; min-width: 0; }
.in-exploration .tactical-module {
  position: relative;
  min-width: 0;
  height: 48px;
  padding: 7px 3px 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #586579;
  background: #202833;
  color: #e3ecf6;
  font-size: 10px;
  line-height: 13px;
}
.in-exploration .tactical-module-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.in-exploration .tactical-module::after { content: ''; position: absolute; top: 3px; right: 3px; width: 4px; height: 4px; border-radius: 50%; background: #a7dfab; }
.in-exploration .tactical-module[data-state=cooldown]::after,
.in-exploration .tactical-module[data-state=casting]::after { background: #ffcc68; }
.in-exploration .tactical-module[data-state=lockout]::after { background: #ff8791; }
.in-exploration .tactical-module:disabled { color: #b5c2d4; }
.in-exploration #loadout-open {
  width: 100%;
  height: 48px;
  min-height: 48px;
  margin: 0;
  padding: 4px;
  font-size: 11px;
  line-height: 15px;
  letter-spacing: 0;
  font-weight: 700;
  color: #ffe1a1;
  border-color: #ab8744;
  background: #32291a;
}

/* Native dialog focus trapping and internal scrolling keep the sector stationary. */
body.in-exploration .loadout-dialog {
  position: fixed;
  inset: auto 0 0;
  margin: 0 auto;
  width: min(650px, calc(100% - var(--sal) - var(--sar)));
  max-height: min(88dvh, calc(100dvh - var(--sat) - 12px));
  padding: 16px 12px max(12px, var(--sab));
  overscroll-behavior: contain;
}
body.in-exploration .loadout-dialog[open] { animation: tactical-drawer-in 180ms ease-out; }
body.in-exploration .loadout-dialog h2 { font-size: 26px; margin-block: 8px; }
@keyframes tactical-drawer-in { from { transform: translateY(32px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body.in-exploration .loadout-dialog[open] { animation: none; } }

body.in-exploration .update-banner { display: none; }
