:root {
  color-scheme: dark;
  --ink: #e8f0e9;
  --muted: #8d9c99;
  --dim: #52615f;
  --void: #050b0e;
  --surface: #091317;
  --surface-raised: #0d1a1f;
  --line: rgba(168, 191, 181, 0.16);
  --line-strong: rgba(168, 191, 181, 0.32);
  --signal: #b9d86f;
  --signal-bright: #d8f28d;
  --warning: #e1a75a;
  --danger: #e26d62;
  --cyan: #71bac1;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
}

* { box-sizing: border-box; }

html {
  min-width: 320px;
  background: var(--void);
}

body {
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
  font-family: var(--sans);
  background:
    radial-gradient(circle at 78% 14%, rgba(72, 119, 112, 0.12), transparent 30rem),
    linear-gradient(rgba(104, 139, 130, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(104, 139, 130, 0.035) 1px, transparent 1px),
    var(--void);
  background-size: auto, 32px 32px, 32px 32px, auto;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 45%, rgba(185, 216, 111, 0.025) 50%, transparent 55%);
}

a { color: inherit; }

.skip-link {
  position: fixed;
  z-index: 20;
  top: 1rem;
  left: 1rem;
  padding: 0.75rem 1rem;
  color: var(--void);
  background: var(--signal-bright);
  transform: translateY(-200%);
}

.skip-link:focus { transform: translateY(0); }

.site-header,
.site-footer,
main {
  width: min(1180px, calc(100% - 3rem));
  margin-inline: auto;
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 84px;
  border-bottom: 1px solid var(--line);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-family: var(--mono);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-decoration: none;
}

.brand-mark {
  position: relative;
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid var(--signal);
  border-radius: 50%;
}

.brand-mark::after {
  content: "";
  position: absolute;
  width: 1.85rem;
  height: 1px;
  top: 50%;
  left: -0.35rem;
  background: var(--signal);
  transform: rotate(-32deg);
}

.header-label,
.section-index,
.readout-label,
.system-state,
.site-footer,
.request-id {
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.header-label {
  color: var(--muted);
  font-size: 0.68rem;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-family: var(--mono);
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.site-nav a,
.site-nav button {
  color: var(--muted);
  text-decoration: none;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav button:hover,
.site-nav button:focus-visible { color: var(--ink); }

.site-nav form { margin: 0; }

.site-nav button {
  padding: 0;
  border: 0;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  background: none;
  cursor: pointer;
}

.site-nav .nav-primary {
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--line-strong);
  color: var(--signal-bright);
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  align-items: center;
  min-height: 530px;
  border-bottom: 1px solid var(--line);
}

.eyebrow,
.section-index {
  margin: 0 0 1.25rem;
  color: var(--signal);
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

h1,
h2,
p { text-wrap: pretty; }

h1 {
  max-width: 780px;
  margin: 0;
  font-size: clamp(3rem, 7.2vw, 6.9rem);
  font-weight: 560;
  letter-spacing: -0.065em;
  line-height: 0.9;
}

h1 em {
  color: var(--muted);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.lede {
  max-width: 620px;
  margin: 2rem 0 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.7;
}

.orbit-graphic {
  position: relative;
  justify-self: end;
  width: min(33vw, 380px);
  aspect-ratio: 1;
  opacity: 0.82;
}

.orbit,
.core,
.contact,
.bearing-line {
  position: absolute;
  display: block;
}

.orbit {
  inset: 12%;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
}

.orbit-two {
  inset: 29%;
  border-style: dashed;
}

.orbit::after {
  content: "";
  position: absolute;
  inset: 48%;
  border: 1px solid var(--dim);
  border-radius: 50%;
}

.core {
  inset: 47.5%;
  border-radius: 50%;
  background: var(--signal-bright);
  box-shadow: 0 0 30px rgba(216, 242, 141, 0.55);
}

.bearing-line {
  width: 76%;
  height: 1px;
  top: 50%;
  left: 12%;
  background: linear-gradient(90deg, transparent, var(--signal), transparent);
  transform: rotate(-28deg);
  transform-origin: center;
}

.contact {
  width: 7px;
  height: 7px;
  border: 1px solid var(--warning);
  transform: rotate(45deg);
}

.contact-one { top: 16%; left: 63%; }
.contact-two { top: 67%; left: 15%; }
.contact-three { top: 72%; left: 76%; border-color: var(--cyan); }

.command-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 1px;
  margin-top: 4rem;
  border: 1px solid var(--line);
  background: var(--line);
}

.panel {
  padding: clamp(1.5rem, 4vw, 3rem);
  background: linear-gradient(150deg, var(--surface-raised), var(--surface));
}

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.panel-heading .section-index { margin-bottom: 0.75rem; }

h2 {
  margin: 0;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 570;
  letter-spacing: -0.035em;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid currentColor;
  font-family: var(--mono);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.status-dot {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 12px currentColor;
}

.status-operational,
.status-text-operational { color: var(--signal-bright); }
.status-unavailable,
.status-text-unavailable { color: var(--danger); }

.campaign-readout {
  display: grid;
  grid-template-columns: 0.65fr 1fr 1.4fr;
  margin-top: 3.5rem;
  border-block: 1px solid var(--line);
}

.campaign-readout > div {
  min-width: 0;
  padding: 1.25rem 1rem 1.25rem 0;
}

.campaign-readout > div + div {
  padding-left: 1.25rem;
  border-left: 1px solid var(--line);
}

.readout-label {
  display: block;
  margin-bottom: 0.65rem;
  color: var(--dim);
  font-size: 0.58rem;
}

.campaign-readout strong {
  display: block;
  overflow: hidden;
  font-size: 1rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.panel-note,
.empty-state p {
  margin: 1.5rem 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.65;
}

.empty-state {
  margin-top: 3rem;
  padding: 1.5rem;
  border-left: 2px solid var(--danger);
  background: rgba(226, 109, 98, 0.06);
}

.empty-state p { margin-top: 0.5rem; }

.panel-heading time {
  color: var(--dim);
  font-family: var(--mono);
  font-size: 0.62rem;
  text-transform: uppercase;
}

.system-list {
  margin: 2.25rem 0 0;
  padding: 0;
  list-style: none;
}

.system-list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.9rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}

.system-list li:last-child { border-bottom: 1px solid var(--line); }

.system-icon {
  width: 0.55rem;
  height: 0.55rem;
  border: 1px solid currentColor;
  border-radius: 50%;
  box-shadow: 0 0 10px currentColor;
}

.system-copy { min-width: 0; }
.system-copy strong,
.system-copy span { display: block; }
.system-copy strong { font-size: 0.86rem; font-weight: 650; }
.system-copy span { margin-top: 0.2rem; color: var(--muted); font-size: 0.72rem; }
.system-state { font-size: 0.56rem; font-weight: 700; }

.doctrine {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 4rem;
  align-items: end;
  padding: 6rem 0;
}

.doctrine .section-index { margin-bottom: 0.75rem; }
.doctrine > p {
  max-width: 610px;
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.8;
}

.site-footer {
  display: flex;
  justify-content: space-between;
  padding: 1.5rem 0 2.5rem;
  border-top: 1px solid var(--line);
  color: var(--dim);
  font-size: 0.58rem;
}

.error-page {
  min-height: 650px;
  padding: 8rem 0;
}

.auth-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.7fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
  min-height: 720px;
  padding: 5rem 0;
}

.auth-intro h1,
.profile-hero h1 { font-size: clamp(3.4rem, 7vw, 6.5rem); }

.auth-form {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
}

.auth-form label {
  margin-top: 1.4rem;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.auth-form input {
  width: 100%;
  margin-top: 0.55rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  outline: none;
  color: var(--ink);
  font: inherit;
  background: rgba(5, 11, 14, 0.75);
}

.auth-form input:focus {
  border-color: var(--signal);
  box-shadow: 0 0 0 2px rgba(185, 216, 111, 0.12);
}

.field-help,
.field-error {
  margin-top: 0.45rem;
  font-size: 0.72rem;
  line-height: 1.5;
}

.field-help { color: var(--dim); }
.field-error { color: var(--danger); }

.form-alert {
  margin-top: 1.5rem;
  padding: 0.9rem 1rem;
  border-left: 2px solid var(--danger);
  color: #f0b0aa;
  font-size: 0.82rem;
  background: rgba(226, 109, 98, 0.08);
}

.primary-button {
  margin-top: 2rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--signal);
  color: var(--void);
  font-family: var(--mono);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: var(--signal-bright);
  cursor: pointer;
}

.primary-button:hover,
.primary-button:focus-visible { background: #e7f8b4; }

.form-footnote {
  margin: 1.25rem 0 0;
  color: var(--muted);
  font-size: 0.76rem;
  text-align: center;
}

.form-footnote a { color: var(--signal-bright); }

.profile-hero {
  padding: 7rem 0 4rem;
  border-bottom: 1px solid var(--line);
}

.profile-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin: 4rem 0 6rem;
  border: 1px solid var(--line);
  background: var(--line);
}

.identity-list { margin: 1.5rem 0 0; }
.identity-list div {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}
.identity-list div:last-child { border-bottom: 1px solid var(--line); }
.identity-list dt {
  color: var(--dim);
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.identity-list dd { margin: 0; color: var(--ink); font-size: 0.85rem; overflow-wrap: anywhere; }
.briefing-panel p:not(.section-index) { color: var(--muted); line-height: 1.7; }

.campaign-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
  padding: 7rem 0 4rem;
  border-bottom: 1px solid var(--line);
}

.campaign-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }

.enlistment-badge {
  min-width: 180px;
  padding: 1.25rem;
  border: 1px solid currentColor;
  font-family: var(--mono);
}

.enlistment-badge span,
.enlistment-badge strong { display: block; }
.enlistment-badge span { font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.7; }
.enlistment-badge strong { margin-top: 0.5rem; font-size: 1.1rem; }
.faction-helios { color: #efbe64; }
.faction-aegis { color: #75c6d1; }

.campaign-alert {
  margin-top: 2rem;
  padding: 1rem 1.25rem;
  border-left: 2px solid var(--danger);
  color: #f0b0aa;
  background: rgba(226, 109, 98, 0.08);
}

.faction-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 4rem;
  border: 1px solid var(--line);
  background: var(--line);
}

.faction-card {
  padding: clamp(1.5rem, 4vw, 3rem);
  color: var(--ink);
  background: linear-gradient(145deg, var(--surface-raised), var(--surface));
}

.faction-card.faction-helios { box-shadow: inset 0 2px #efbe64; }
.faction-card.faction-aegis { box-shadow: inset 0 2px #75c6d1; }

.faction-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.faction-card .section-index { margin-bottom: 0.7rem; }
.faction-card.faction-helios .section-index { color: #efbe64; }
.faction-card.faction-aegis .section-index { color: #75c6d1; }

.recruitment-status {
  padding: 0.5rem 0.65rem;
  border: 1px solid currentColor;
  font-family: var(--mono);
  font-size: 0.56rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.recruitment-status.open { color: var(--signal-bright); }
.recruitment-status.paused { color: var(--danger); }

.faction-doctrine {
  min-height: 3.4rem;
  margin: 2rem 0;
  color: var(--muted);
  line-height: 1.7;
}

.population-readout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 0;
  border-block: 1px solid var(--line);
}
.population-readout span {
  color: var(--dim);
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.population-readout strong { font-size: 1.5rem; }

.faction-card form { margin: 1.5rem 0 0; }
.faction-button {
  display: block;
  width: 100%;
  margin-top: 1.5rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line-strong);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  background: transparent;
  cursor: pointer;
}
.faction-card form .faction-button { margin-top: 0; }
.faction-button:hover:not(:disabled),
.faction-button:focus-visible:not(:disabled) { border-color: var(--signal); color: var(--signal-bright); }
.faction-button:disabled { color: var(--dim); cursor: not-allowed; }
.faction-confirmed { margin: 1.5rem 0 0; color: var(--signal-bright); font-size: 0.8rem; }

.balance-note {
  display: grid;
  grid-template-columns: 0.5fr 1.5fr;
  gap: 3rem;
  margin: 4rem 0 6rem;
  padding: 2rem 0;
  border-block: 1px solid var(--line);
}
.balance-note .section-index { margin: 0; }
.balance-note > p:last-child { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.7; }

.operations-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
  padding: 7rem 0 4rem;
  border-bottom: 1px solid var(--line);
}

.operations-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.operations-summary {
  min-width: 210px;
  padding: 1.4rem;
  border: 1px solid currentColor;
  font-family: var(--mono);
  text-transform: uppercase;
}
.operations-summary span,
.operations-summary strong,
.operations-summary small { display: block; }
.operations-summary span,
.operations-summary small { font-size: 0.58rem; letter-spacing: 0.13em; opacity: 0.75; }
.operations-summary strong { margin: 0.55rem 0; font-size: 1.25rem; }

.command-notice {
  margin-top: 2rem;
  padding: 1rem 1.25rem;
  border-left: 2px solid var(--signal);
  color: var(--signal-bright);
  background: rgba(185, 216, 111, 0.07);
}

.operations-empty { margin: 4rem 0 7rem; }
.operations-empty > p:not(.section-index) { max-width: 660px; color: var(--muted); line-height: 1.7; }
.operations-section { padding: 4rem 0; border-bottom: 1px solid var(--line); }
.operations-heading {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 4rem;
  align-items: end;
}
.operations-heading .section-index { margin-bottom: 0.65rem; }
.operations-heading > p { margin: 0; color: var(--muted); line-height: 1.7; }

.vessel-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 2.5rem;
  border: 1px solid var(--line);
  background: var(--line);
}
.vessel-card { padding: 1.6rem; background: var(--surface); }
.vessel-card.active { box-shadow: inset 0 2px var(--signal-bright); background: linear-gradient(145deg, var(--surface-raised), var(--surface)); }
.vessel-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.vessel-card .section-index { margin-bottom: 0.45rem; }
.vessel-card h2 { font-size: 1.15rem; }
.vessel-type { margin: 1.2rem 0 0; color: var(--signal-bright); font-family: var(--mono); font-size: 0.63rem; letter-spacing: 0.06em; text-transform: uppercase; }
.vessel-description { min-height: 3.5rem; margin: 0.8rem 0 0; color: var(--muted); font-size: 0.78rem; line-height: 1.55; }
.vessel-readout { margin: 1.3rem 0 0; }
.vessel-readout div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.65rem 0; border-top: 1px solid var(--line); }
.vessel-readout div:last-child { border-bottom: 1px solid var(--line); }
.vessel-readout dt { color: var(--dim); font-family: var(--mono); font-size: 0.56rem; letter-spacing: 0.08em; text-transform: uppercase; }
.vessel-readout dd { margin: 0; font-size: 0.7rem; text-align: right; }
.transit-readout { padding: 0.8rem; color: var(--warning); font-family: var(--mono); font-size: 0.62rem; line-height: 1.6; background: rgba(216, 164, 103, 0.07); }
.vessel-actions { display: grid; gap: 0.6rem; margin-top: 1.2rem; }
.vessel-actions form { margin: 0; }

.operations-button {
  width: 100%;
  padding: 0.75rem 0.8rem;
  border: 1px solid var(--signal);
  color: var(--void);
  font-family: var(--mono);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--signal-bright);
  cursor: pointer;
}
.operations-button.secondary { color: var(--signal-bright); background: transparent; }
.operations-button:hover,
.operations-button:focus-visible { filter: brightness(1.12); }

.operations-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 1px;
  margin-top: 4rem;
  border: 1px solid var(--line);
  background: var(--line);
}
.jump-list { margin-top: 1.5rem; }
.jump-list form { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 0.9rem 0; border-top: 1px solid var(--line); }
.jump-list form:last-child { border-bottom: 1px solid var(--line); }
.jump-list span strong,
.jump-list span small { display: block; }
.jump-list span strong { font-size: 0.82rem; }
.jump-list span small { margin-top: 0.25rem; color: var(--dim); font-family: var(--mono); font-size: 0.55rem; text-transform: uppercase; }
.jump-list .operations-button { width: auto; }
.dock-list { display: grid; gap: 0.6rem; margin-top: 1.25rem; }
.dock-list form { margin: 0; }
.station-list,
.alert-list { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.station-list li { padding: 0.85rem 0; border-top: 1px solid var(--line); }
.station-list li:last-child { border-bottom: 1px solid var(--line); }
.station-list strong,
.station-list span { display: block; }
.station-list strong { font-size: 0.8rem; }
.station-list span { margin-top: 0.25rem; color: var(--dim); font-family: var(--mono); font-size: 0.56rem; text-transform: uppercase; }

.sector-network {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: 1px;
  margin-top: 2.5rem;
  border: 1px solid var(--line);
  background: var(--line);
}
.sector-node { min-height: 150px; padding: 1rem; background: var(--surface); }
.sector-node span,
.sector-node strong,
.sector-node small { display: block; }
.sector-node span { color: var(--dim); font-family: var(--mono); font-size: 0.55rem; }
.sector-node strong { margin-top: 2rem; font-size: 0.82rem; }
.sector-node small { margin-top: 0.5rem; color: var(--dim); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.sector-node.status-contested { box-shadow: inset 0 2px var(--warning); }
.sector-node.current { color: var(--signal-bright); box-shadow: inset 0 2px var(--signal-bright); background: var(--surface-raised); }

.alerts-section { margin-bottom: 3rem; }
.alert-list li { display: grid; grid-template-columns: 190px 1fr; gap: 1rem; padding: 0.9rem 0; border-top: 1px solid var(--line); }
.alert-list li:last-child { border-bottom: 1px solid var(--line); }
.alert-list time { color: var(--dim); font-family: var(--mono); font-size: 0.58rem; }
.alert-list span { font-size: 0.76rem; }

.comms-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 3rem;
  padding: 7rem 0 4rem;
  border-bottom: 1px solid var(--line);
}
.comms-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.comms-compose { padding: 4rem 0; border-bottom: 1px solid var(--line); }
.report-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 2.5rem;
  border: 1px solid var(--line);
  background: var(--line);
}
.report-form { display: flex; flex-direction: column; }
.report-form > p:not(.section-index) { min-height: 3rem; margin: 1rem 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.6; }
.report-form label { margin-top: 1.25rem; color: var(--ink); font-family: var(--mono); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.report-form label span { color: var(--dim); font-weight: 400; }
.report-form select,
.report-form textarea,
.bearing-input input {
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.8rem;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  outline: none;
  color: var(--ink);
  font: inherit;
  background: rgba(5, 11, 14, 0.75);
}
.report-form select:focus,
.report-form textarea:focus,
.bearing-input input:focus { border-color: var(--signal); box-shadow: 0 0 0 2px rgba(185, 216, 111, 0.12); }
.report-form textarea { resize: vertical; }
.bearing-input { position: relative; }
.bearing-input input { padding-right: 5rem; }
.bearing-input span { position: absolute; right: 0.9rem; bottom: 0.85rem; color: var(--dim); font-family: var(--mono); font-size: 0.6rem; text-transform: uppercase; }
.report-form .operations-button { margin-top: 1.5rem; }

.feed-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.feed-toolbar .section-index { margin-bottom: 0.65rem; }
.filter-nav { display: flex; gap: 0.5rem; }
.filter-nav a { padding: 0.55rem 0.7rem; border: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 0.56rem; letter-spacing: 0.07em; text-decoration: none; text-transform: uppercase; }
.filter-nav a[aria-current="page"] { border-color: var(--signal); color: var(--signal-bright); }
.stream-status { margin: 1.5rem 0 0; color: var(--warning); font-family: var(--mono); font-size: 0.58rem; letter-spacing: 0.08em; text-transform: uppercase; }
.stream-status.connected { color: var(--signal-bright); }
.report-feed { display: grid; gap: 1px; margin-top: 1rem; border: 1px solid var(--line); background: var(--line); }
.report-card { padding: 1.4rem; background: var(--surface); }
.report-card.report-position_ping { box-shadow: inset 2px 0 var(--cyan); }
.report-card.report-bearing_report { box-shadow: inset 2px 0 var(--warning); }
.report-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.report-card-head > div > span,
.report-card-head > div > strong { display: block; }
.report-card-head > div > span { color: var(--dim); font-family: var(--mono); font-size: 0.56rem; letter-spacing: 0.1em; text-transform: uppercase; }
.report-card-head > div > strong { margin-top: 0.35rem; font-size: 0.95rem; }
.scope-chip { padding: 0.4rem 0.55rem; border: 1px solid var(--line-strong); color: var(--muted); font-family: var(--mono); font-size: 0.52rem; letter-spacing: 0.08em; text-transform: uppercase; }
.report-origin { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1.2rem; border-block: 1px solid var(--line); }
.report-origin > div { padding: 0.75rem 0.75rem 0.75rem 0; }
.report-origin > div + div { padding-left: 0.75rem; border-left: 1px solid var(--line); }
.report-origin span,
.report-origin strong { display: block; }
.report-origin span { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; letter-spacing: 0.08em; text-transform: uppercase; }
.report-origin strong { margin-top: 0.35rem; font-size: 0.75rem; }
.report-card > p { margin: 1rem 0 0; color: var(--muted); line-height: 1.6; }
.report-card > time { display: block; margin-top: 0.8rem; color: var(--dim); font-family: var(--mono); font-size: 0.52rem; }
.empty-report-feed { padding: 2rem; color: var(--muted); background: var(--surface); }
.intelligence-warning { margin: 1.2rem 0 0; color: var(--dim); font-size: 0.72rem; }

.map-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; padding: 7rem 0 4rem; border-bottom: 1px solid var(--line); }
.map-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.map-privacy { min-width: 220px; padding: 1.4rem; border: 1px solid var(--signal); color: var(--signal-bright); font-family: var(--mono); text-transform: uppercase; }
.map-privacy span, .map-privacy strong, .map-privacy small { display: block; }
.map-privacy span, .map-privacy small { font-size: 0.56rem; letter-spacing: 0.1em; opacity: 0.75; }
.map-privacy strong { margin: 0.55rem 0; font-size: 1rem; }
.map-workspace { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(310px, 0.5fr); gap: 1px; margin-top: 4rem; border: 1px solid var(--line); background: var(--line); }
.map-stage-panel { min-width: 0; padding: 1.5rem; background: var(--surface); }
.map-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.map-toolbar .section-index { margin-bottom: 0.5rem; }
.map-tools { display: flex; gap: 0.4rem; }
.map-tools button, .map-clear-route, .danger-button { padding: 0.5rem 0.6rem; border: 1px solid var(--line-strong); color: var(--muted); font-family: var(--mono); font-size: 0.52rem; letter-spacing: 0.07em; text-transform: uppercase; background: transparent; cursor: pointer; }
.map-tools button:hover, .map-clear-route:hover { border-color: var(--signal); color: var(--signal-bright); }
.map-instructions { margin: 1rem 0; color: var(--dim); font-size: 0.7rem; line-height: 1.55; }
.tactical-map-frame { position: relative; overflow: hidden; border: 1px solid var(--line-strong); background: #050c10; }
.tactical-map-frame svg { display: block; width: 100%; aspect-ratio: 5 / 3; outline: none; cursor: crosshair; touch-action: none; }
.tactical-map-frame svg:focus-visible { box-shadow: inset 0 0 0 2px var(--signal); }
.map-coordinates { position: absolute; right: 0.7rem; bottom: 0.7rem; padding: 0.35rem 0.5rem; color: var(--signal-bright); font-family: var(--mono); font-size: 0.5rem; background: rgba(5, 12, 16, 0.86); pointer-events: none; }
.map-grid-line { stroke: rgba(124, 155, 163, 0.13); stroke-width: 1; vector-effect: non-scaling-stroke; }
.map-sector-node circle { fill: #0a171c; stroke: var(--dim); stroke-width: 1; vector-effect: non-scaling-stroke; }
.map-sector-node text, .map-object text { fill: var(--muted); font-family: var(--mono); font-size: 13px; letter-spacing: 0.04em; user-select: none; }
.map-object { outline: none; cursor: grab; }
.map-object:active { cursor: grabbing; }
.map-object-point { fill: #0a171c; stroke: currentColor; stroke-width: 2; vector-effect: non-scaling-stroke; }
.map-bearing-line, .map-route-line { fill: none; stroke: currentColor; stroke-width: 2; stroke-dasharray: 8 6; vector-effect: non-scaling-stroke; }
.map-object.classification-friendly { color: var(--cyan); }
.map-object.classification-enemy { color: var(--danger); }
.map-object.classification-suspected { color: var(--warning); }
.map-object.classification-neutral { color: var(--muted); }
.map-object.selected .map-object-point, .map-object:focus .map-object-point { filter: drop-shadow(0 0 6px currentColor); stroke-width: 3; }
.map-preview-point { fill: transparent; stroke: var(--signal-bright); stroke-width: 2; }
.map-route-line.map-preview { color: var(--signal-bright); }
.map-editor { min-width: 0; }
.map-editor form, .map-object-card form:first-child { display: flex; flex-direction: column; }
.map-editor label, .map-object-card label { margin-top: 1rem; color: var(--ink); font-family: var(--mono); font-size: 0.58rem; letter-spacing: 0.07em; text-transform: uppercase; }
.map-editor label span { color: var(--dim); }
.map-editor input, .map-editor select, .map-editor textarea, .map-object-card input, .map-object-card select, .map-object-card textarea { width: 100%; margin-top: 0.4rem; padding: 0.65rem; border: 1px solid var(--line-strong); border-radius: 0; outline: none; color: var(--ink); font: inherit; background: rgba(5, 11, 14, 0.75); }
.map-editor input:focus, .map-editor select:focus, .map-editor textarea:focus, .map-object-card input:focus, .map-object-card select:focus, .map-object-card textarea:focus { border-color: var(--signal); }
.coordinate-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; }
.map-clear-route { margin-top: 0.5rem; }
.map-editor .operations-button { margin-top: 1.4rem; }
.map-object-ledger { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 2rem; border: 1px solid var(--line); background: var(--line); }
.map-object-card { padding: 1.2rem; background: var(--surface); }
.map-object-card.classification-friendly { box-shadow: inset 0 2px var(--cyan); }
.map-object-card.classification-enemy { box-shadow: inset 0 2px var(--danger); }
.map-object-card.classification-suspected { box-shadow: inset 0 2px var(--warning); }
.map-object-card-head { display: flex; justify-content: space-between; color: var(--dim); font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.08em; text-transform: uppercase; }
.map-object-card .operations-button { margin-top: 1rem; }
.map-object-card > form:last-child { margin-top: 0.6rem; }
.danger-button { width: 100%; border-color: rgba(226, 109, 98, 0.5); color: var(--danger); }
.danger-button:hover { border-color: var(--danger); }

.infrastructure-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; padding: 7rem 0 4rem; border-bottom: 1px solid var(--line); }
.infrastructure-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.resource-gauge { min-width: 230px; padding: 1.4rem; border: 1px solid currentColor; font-family: var(--mono); text-transform: uppercase; }
.resource-gauge span, .resource-gauge strong, .resource-gauge small { display: block; }
.resource-gauge span, .resource-gauge small { font-size: 0.56rem; letter-spacing: 0.1em; opacity: 0.75; }
.resource-gauge strong { margin: 0.4rem 0; font-size: 2.2rem; }
.builder-status { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: 2rem; margin-top: 4rem; }
.builder-status .section-index { margin-bottom: 0.55rem; }
.builder-status dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: var(--line); }
.builder-status dl div { padding: 0.9rem; background: var(--surface); }
.builder-status dt { color: var(--dim); font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.08em; text-transform: uppercase; }
.builder-status dd { margin: 0.35rem 0 0; font-size: 0.76rem; text-transform: capitalize; }
.builder-status .panel-note { grid-column: 1 / -1; margin: 0; }
.build-type-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.build-type-card { padding: 1.2rem; background: var(--surface); }
.build-type-card .section-index { margin-bottom: 0.5rem; }
.build-type-card h2 { min-height: 2.6rem; font-size: 1rem; }
.build-type-card > p:not(.section-index) { min-height: 4.6rem; color: var(--muted); font-size: 0.72rem; line-height: 1.55; }
.build-type-card dl { margin: 1rem 0 0; }
.build-type-card dl div { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.55rem 0; border-top: 1px solid var(--line); }
.build-type-card dt { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.build-type-card dd { margin: 0; font-size: 0.65rem; text-align: right; }
.build-type-card form { display: flex; flex-direction: column; margin-top: 1rem; }
.build-type-card label { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.build-type-card input { width: 100%; margin-top: 0.4rem; padding: 0.65rem; border: 1px solid var(--line-strong); color: var(--ink); background: rgba(5, 11, 14, 0.75); }
.build-type-card .operations-button { margin-top: 0.7rem; }
.operations-button:disabled { border-color: var(--line); color: var(--dim); background: transparent; cursor: not-allowed; }
.infrastructure-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.infrastructure-card { padding: 1.3rem; background: var(--surface); }
.infrastructure-card.status-operational { box-shadow: inset 0 2px var(--signal); }
.infrastructure-card.status-under_construction { box-shadow: inset 0 2px var(--warning); }
.infrastructure-card.status-damaged, .infrastructure-card.status-disabled { box-shadow: inset 0 2px var(--danger); }
.infrastructure-card.status-destroyed { opacity: 0.58; }
.infrastructure-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.infrastructure-card-head > div > span { color: var(--dim); font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.08em; text-transform: uppercase; }
.infrastructure-card-head h2 { margin-top: 0.4rem; font-size: 1rem; }
.infrastructure-location { color: var(--muted); font-size: 0.72rem; }
.health-readout { display: grid; grid-template-columns: auto 1fr auto; gap: 0.7rem; align-items: center; margin-top: 1rem; color: var(--dim); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.health-readout progress { width: 100%; height: 0.45rem; border: 0; border-radius: 0; accent-color: var(--signal); }
.job-readout { padding: 0.75rem; color: var(--warning); font-family: var(--mono); font-size: 0.58rem; line-height: 1.6; background: rgba(216, 164, 103, 0.07); }
.infrastructure-card form { margin-top: 1rem; }

.industry-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; padding: 7rem 0 4rem; border-bottom: 1px solid var(--line); }
.industry-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.industry-location { min-width: 230px; padding: 1.4rem; border: 1px solid var(--cyan); color: var(--cyan); font-family: var(--mono); text-transform: uppercase; }
.industry-location span, .industry-location strong, .industry-location small { display: block; }
.industry-location span, .industry-location small { font-size: 0.56rem; letter-spacing: 0.1em; opacity: 0.75; }
.industry-location strong { margin: 0.55rem 0; color: var(--ink); font-size: 1rem; }
.industry-platforms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.industry-platform { min-width: 0; padding: 1.4rem; background: var(--surface); }
.industry-platform.type-mining_platform { box-shadow: inset 0 2px var(--cyan); }
.industry-platform.type-shell_manufacturing_platform { box-shadow: inset 0 2px var(--warning); }
.industry-platform-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.industry-platform-head > div > span { color: var(--dim); font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.08em; text-transform: uppercase; }
.industry-platform-head h2 { margin-top: 0.4rem; font-size: 1.05rem; }
.industry-platform > p { color: var(--muted); font-size: 0.72rem; }
.inventory-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 1rem; background: var(--line); }
.inventory-list > div { padding: 0.8rem; background: rgba(5, 11, 14, 0.72); }
.inventory-list span, .inventory-list strong { display: block; }
.inventory-list span { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; letter-spacing: 0.06em; text-transform: uppercase; }
.inventory-list strong { margin-top: 0.35rem; font-size: 0.78rem; }
.production-controls { display: grid; gap: 1px; margin-top: 1rem; background: var(--line); }
.production-controls form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.8rem; background: rgba(5, 11, 14, 0.72); }
.production-controls span, .production-controls strong, .production-controls small { display: block; }
.production-controls strong { font-size: 0.72rem; }
.production-controls small { margin-top: 0.3rem; color: var(--dim); font-family: var(--mono); font-size: 0.5rem; text-transform: uppercase; }
.production-controls .operations-button { flex: 0 0 auto; }
.production-jobs { margin: 1rem 0 0; padding: 0; list-style: none; }
.production-jobs li { display: grid; grid-template-columns: 1fr auto; gap: 0.35rem 1rem; padding: 0.65rem 0; border-top: 1px solid var(--line); font-size: 0.7rem; }
.production-jobs li strong { color: var(--warning); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.production-jobs time { grid-column: 1 / -1; color: var(--dim); font-family: var(--mono); font-size: 0.5rem; }
.recipe-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.recipe-grid article { display: flex; flex-direction: column; padding: 1.2rem; background: var(--surface); }
.recipe-grid article > span { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; letter-spacing: 0.08em; text-transform: uppercase; }
.recipe-grid h2 { min-height: 2.7rem; margin-top: 0.45rem; font-size: 1rem; }
.recipe-grid p { min-height: 4.8rem; color: var(--muted); font-size: 0.7rem; line-height: 1.55; }
.recipe-grid strong { margin-top: auto; font-size: 0.68rem; }
.recipe-grid small { margin-top: 0.55rem; color: var(--dim); font-family: var(--mono); font-size: 0.5rem; text-transform: uppercase; }

.supply-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; padding: 7rem 0 4rem; border-bottom: 1px solid var(--line); }
.supply-hero h1 { font-size: clamp(3.4rem, 8vw, 7rem); }
.supply-destination { min-width: 250px; padding: 1.4rem; border: 1px solid var(--warning); color: var(--warning); font-family: var(--mono); text-transform: uppercase; }
.supply-destination span, .supply-destination strong, .supply-destination small { display: block; }
.supply-destination span, .supply-destination small { font-size: 0.56rem; letter-spacing: 0.09em; opacity: 0.78; }
.supply-destination strong { margin: 0.55rem 0; color: var(--ink); }
.supply-command-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 1px; margin-top: 4rem; border: 1px solid var(--line); background: var(--line); }
.supply-command-grid > .panel { border: 0; }
.supply-request-form { display: flex; flex-direction: column; }
.supply-request-form > p:not(.section-index) { min-height: 3rem; color: var(--muted); font-size: 0.72rem; line-height: 1.55; }
.supply-request-form label { margin-top: 1rem; color: var(--dim); font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.07em; text-transform: uppercase; }
.supply-request-form select, .supply-request-form input { width: 100%; margin-top: 0.4rem; padding: 0.7rem; border: 1px solid var(--line-strong); color: var(--ink); font: inherit; background: rgba(5, 11, 14, 0.75); }
.supply-request-form .operations-button { margin-top: 1.25rem; }
.vessel-cargo .inventory-list { margin-top: 1.5rem; }
.depot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.depot-grid article { padding: 1.25rem; background: var(--surface); box-shadow: inset 0 2px var(--warning); }
.depot-grid article span { color: var(--dim); font-family: var(--mono); font-size: 0.54rem; text-transform: uppercase; }
.depot-grid article h2 { margin-top: 0.45rem; font-size: 1rem; }
.depot-grid article strong { display: block; margin-top: 1rem; color: var(--warning); font-size: 0.7rem; }
.supply-request-ledger { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); background: var(--line); }
.supply-request { padding: 1.3rem; background: var(--surface); }
.supply-request.status-delivered { box-shadow: inset 0 2px var(--signal); }
.supply-request.status-in_transit, .supply-request.status-partially_allocated, .supply-request.status-partially_fulfilled { box-shadow: inset 0 2px var(--cyan); }
.supply-request.status-waiting_stock, .supply-request.status-waiting_route, .supply-request.status-waiting_capacity { box-shadow: inset 0 2px var(--warning); }
.supply-request-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.supply-request-head > div > span { color: var(--dim); font-family: var(--mono); font-size: 0.52rem; text-transform: uppercase; }
.supply-request-head h2 { margin-top: 0.4rem; font-size: 1rem; }
.supply-request dl { display: grid; grid-template-columns: repeat(4, 1fr); margin: 1rem 0 0; background: var(--line); gap: 1px; }
.supply-request dl div { padding: 0.7rem; background: rgba(5, 11, 14, 0.72); }
.supply-request dt { color: var(--dim); font-family: var(--mono); font-size: 0.5rem; text-transform: uppercase; }
.supply-request dd { margin: 0.3rem 0 0; font-size: 0.68rem; }
.delivery-list { margin: 1rem 0 0; padding: 0; list-style: none; }
.delivery-list li { display: grid; grid-template-columns: 1fr auto; gap: 0.35rem 1rem; padding: 0.7rem 0; border-top: 1px solid var(--line); font-size: 0.66rem; }
.delivery-list strong { color: var(--cyan); font-family: var(--mono); font-size: 0.5rem; text-transform: uppercase; }
.delivery-list small { grid-column: 1 / -1; color: var(--dim); font-family: var(--mono); font-size: 0.48rem; text-transform: uppercase; }

.error-page h1 { font-size: clamp(3.5rem, 8vw, 7rem); }
.error-code {
  position: absolute;
  right: max(1.5rem, calc((100vw - 1180px) / 2));
  color: rgba(185, 216, 111, 0.08);
  font-family: var(--mono);
  font-size: clamp(8rem, 24vw, 22rem);
  line-height: 0.7;
}
.request-id { margin-top: 2rem; color: var(--dim); font-size: 0.6rem; }
.text-link { display: inline-block; margin-top: 2rem; color: var(--signal-bright); }

@media (max-width: 820px) {
  .site-header,
  .site-footer,
  main { width: min(100% - 2rem, 680px); }
  .hero { grid-template-columns: 1fr; min-height: auto; padding: 6rem 0 4rem; }
  .orbit-graphic { display: none; }
  .command-grid { grid-template-columns: 1fr; }
  .doctrine { grid-template-columns: 1fr; gap: 2rem; padding: 4.5rem 0; }
  .auth-shell { grid-template-columns: 1fr; min-height: auto; gap: 3rem; }
  .profile-grid { grid-template-columns: 1fr; }
  .campaign-hero { align-items: flex-start; flex-direction: column; }
  .faction-grid { grid-template-columns: 1fr; }
  .balance-note { grid-template-columns: 1fr; gap: 1rem; }
  .operations-hero { align-items: flex-start; flex-direction: column; }
  .comms-hero { align-items: flex-start; flex-direction: column; }
  .map-hero { align-items: flex-start; flex-direction: column; }
  .infrastructure-hero { align-items: flex-start; flex-direction: column; }
  .industry-hero { align-items: flex-start; flex-direction: column; }
  .supply-hero { align-items: flex-start; flex-direction: column; }
  .operations-heading { grid-template-columns: 1fr; gap: 1rem; }
  .vessel-grid { grid-template-columns: 1fr; }
  .operations-grid { grid-template-columns: 1fr; }
  .sector-network { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .report-form-grid { grid-template-columns: 1fr; }
  .map-workspace { grid-template-columns: 1fr; }
  .map-object-ledger { grid-template-columns: 1fr 1fr; }
  .builder-status { grid-template-columns: 1fr; }
  .build-type-grid { grid-template-columns: 1fr 1fr; }
  .infrastructure-grid { grid-template-columns: 1fr 1fr; }
  .industry-platforms { grid-template-columns: 1fr; }
  .recipe-grid { grid-template-columns: 1fr 1fr; }
  .supply-command-grid { grid-template-columns: 1fr; }
  .depot-grid { grid-template-columns: 1fr 1fr; }
  .supply-request-ledger { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .header-label { display: none; }
  .site-nav { gap: 0.65rem; }
  .site-nav .nav-primary { padding: 0.55rem; }
  h1 { font-size: clamp(2.8rem, 15vw, 4.25rem); }
  .panel-heading { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
  .campaign-readout { grid-template-columns: 1fr; }
  .campaign-readout > div,
  .campaign-readout > div + div { padding: 1rem 0; border-left: 0; border-top: 1px solid var(--line); }
  .campaign-readout > div:first-child { border-top: 0; }
  .site-footer { gap: 1rem; flex-direction: column; }
  .sector-network { grid-template-columns: 1fr; }
  .sector-node { min-height: auto; }
  .sector-node strong { margin-top: 0.8rem; }
  .alert-list li { grid-template-columns: 1fr; gap: 0.3rem; }
  .feed-toolbar { align-items: flex-start; flex-direction: column; }
  .report-origin { grid-template-columns: 1fr 1fr; }
  .report-origin > div + div { border-left: 0; }
  .map-toolbar { flex-direction: column; }
  .map-object-ledger { grid-template-columns: 1fr; }
  .builder-status dl { grid-template-columns: 1fr; }
  .build-type-grid, .infrastructure-grid { grid-template-columns: 1fr; }
  .recipe-grid { grid-template-columns: 1fr; }
  .production-controls form { align-items: flex-start; flex-direction: column; }
  .depot-grid { grid-template-columns: 1fr; }
  .supply-request dl { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
