/* Shared 2.1 presentation: keep the neon identity and make the game legible. */
body { font: 16px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button, .button, summary, select { min-height: 44px; }
button, .button, summary { white-space: normal; overflow-wrap: anywhere; max-width: 100%; }
input, select, textarea { min-width: 0; max-width: 100%; }
.inline-form > label { min-width: 0; }
.setup-card { min-width: 0; overflow-wrap: anywhere; }
.setup-card header { display: flex; flex-wrap: wrap; }
.setup-card header h2 { min-width: 0; flex: 1 1 8rem; }
.route-finish > * { min-width: 0; overflow-wrap: anywhere; }
.signal-siege-banner figcaption { flex-wrap: wrap; }
.signal-siege-banner figcaption > * { min-width: 0; }
.setup-meter .progress-1 { width: 20%; }
.setup-meter .progress-2 { width: 40%; }
.setup-meter .progress-3 { width: 60%; }
.setup-meter .progress-4 { width: 80%; }
.setup-meter .progress-5 { width: 100%; }
#account-recovery-form fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.weekly-strip > div, .setup-nodes li { min-width: 0; overflow-wrap: anywhere; }
.weekly-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.setup-nodes { grid-template-columns: repeat(5, minmax(0, 1fr)); }
button, .button, label, summary, .mobile-tabbar, .map-popup { text-transform: none; letter-spacing: normal; }
button, .button, select, .map-field, .map-filters, .patrol-icon-button { font-size: 14px; }
.site-header { background: #061311; box-shadow: none; }
.site-header .brand small { letter-spacing: .04em; }
.brand #season-status { display: block; font: 12px/1.3 system-ui, sans-serif; text-transform: none; color: #bdd8cc; }
.panel, .auth-card, .setup-card { background-color: #081a17; box-shadow: none; }
.panel p, .panel li, .auth-card p { line-height: 1.6; }
.panel p, .setup-card p, .route-finish p, .auth-card p { font-size: 1rem; }
.nd-spectrum-ticker { display: none; }
.web-patrol-page { background: #04110e; }
.web-patrol-page::before { display: none; }
.eyebrow { letter-spacing: .06em; }
.competition-board { margin-block: 1rem 2rem; }
.competition-list { padding: 0; list-style: none; }
.competition-list li { display: flex; align-items: start; justify-content: space-between; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.competition-list li span { min-width: 0; overflow-wrap: anywhere; }
#crew-objective { overflow-wrap: anywhere; }
.competition-list li b { white-space: nowrap; }
.onboarding-core-steps li { padding: .5rem .25rem; }
.onboarding-core-steps .done { color: #88efb4; }
.map-popup { min-width: min(230px, 65vw); font-size: 14px; }
.map-popup p { margin: .35rem 0; }
.map-popup small { font-size: 13px; color: #c1d3cd; }
.map-popup ul { padding-left: 1.2rem; max-height: 190px; overflow: auto; }
.map-compact-hud, .map-status, .map-location-status { font-size: 14px; }
.gangzone-label > span { box-shadow: none; background: #061512ed; }
.repeater-marker > span { position: absolute; top: 8px; left: 8px; display: grid; place-content: center; width: 28px; height: 28px; transform: none; border: 2px solid var(--repeater-color); border-radius: 6px; background: #081a17; animation: none; box-shadow: 0 1px 4px #0008; }
.repeater-marker b { color: #f0fff9; font: 700 11px/1 system-ui, sans-serif; }
.repeater-cluster, .map-hq-marker { background: none; border: 0; }
.repeater-cluster > span, .map-hq-marker > span { display: grid; place-content: center; width: 44px; height: 44px; border: 2px solid var(--zone-color, #20e3ff); border-radius: 8px; background: #061512; color: #e6fff4; font: 700 14px/1.2 system-ui, sans-serif; text-align: center; box-shadow: 0 2px 6px #0008; }
.repeater-cluster > span { border-radius: 50%; }
.map-quick-layers { margin-bottom: 3.5rem !important; border: 1px solid #609485; border-radius: 5px; background: #061512ee; }
.map-quick-layers label { display: flex; align-items: center; gap: .35rem; min-height: 44px; margin: 0; padding: .25rem .65rem; font-size: 14px; }
.map-quick-layers input { width: 18px; height: 18px; }
.patrol-readiness { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; }
.patrol-readiness span { display: flex; align-items: center; padding: .35rem .5rem; border: 1px solid #52675f; border-radius: 5px; color: #d3e1db; font-size: 14px; line-height: 1.35; }
.patrol-readiness .ready { color: #88efb4; border-color: #377951; }
.patrol-readout { grid-template-columns: repeat(3, minmax(0, 1fr)); font-family: inherit; }
.patrol-readout div { min-height: 58px; padding: .35rem; }
.patrol-readout b { font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.patrol-readout span { font: 14px/1.3 system-ui, sans-serif; white-space: normal; overflow: visible; text-overflow: clip; text-transform: none; }
.patrol-support { font-size: 14px; color: #b8cdc4; }
.patrol-live-status { font: 14px/1.45 system-ui, sans-serif; max-height: 5.9em; overflow: auto; }
.patrol-objective { padding: .5rem .7rem; margin: 0; border-left: 2px solid var(--cyan); font-size: 14px; background: #061512; }
.patrol-detail-totals { display: grid; grid-template-columns: 1fr auto; gap: .4rem; }
.patrol-detail-totals dd { margin: 0; }
.patrol-actions-main { grid-template-columns: 1fr; }
.patrol-actions-main:has(#patrol-view-return:not([hidden])) { grid-template-columns: 1fr 1fr; }
.patrol-primary-action { font-size: 16px; min-height: 48px; }
.patrol-settings-dialog, #patrol-leave-dialog { max-width: min(540px, calc(100vw - 1rem)); max-height: calc(100dvh - 2rem); overflow: auto; background: #081a17; color: #e6fff4; border: 1px solid var(--cyan); padding: 1rem; }
dialog::backdrop { background: #000a; }
.web-patrol-shell { grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); grid-template-rows: auto auto minmax(320px, 1fr); }
.patrol-cockpit-bar { grid-column: 1 / -1; grid-row: 1; }
.patrol-readiness { grid-column: 1 / -1; grid-row: 2; }
.patrol-map-wrap { grid-column: 1; grid-row: 3; }
.patrol-side { grid-column: 2; grid-row: 3; display: flex; flex-direction: column; gap: .75rem; }
.web-patrol-shell[data-view="map"] .patrol-readout, .web-patrol-shell[data-view="map"] .patrol-objective { display: none; }
html[data-nd-effects-mode="tactical"] .nd-entrance, html[data-nd-effects-mode="tactical"] .nd-scanline, html[data-nd-effects-mode="tactical"] .nd-aurora { display: none; }
html[data-nd-effects-mode="tactical"] .nd-field { opacity: .12; }
html[data-nd-effects-mode="tactical"] .territory-cell, html[data-nd-effects-mode="tactical"] .flashpoint-boundary { animation: none; filter: none; }
@media (max-width: 820px) {
  body { font-size: 16px; }
  .weekly-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .setup-nodes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
  .route-picker { grid-template-columns: minmax(0, 1fr); }
  .onboarding-route-grid, .setup-prereqs, .route-workflow { grid-template-columns: minmax(0, 1fr); }
  .mobile-tabbar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mobile-tabbar a { font: 600 14px/1.25 system-ui, sans-serif; min-height: 52px; }
  .web-patrol-page main { height: auto; min-height: calc(100dvh - 114px - env(safe-area-inset-bottom)); }
  .web-patrol-shell, .web-patrol-shell:fullscreen { height: auto; min-height: calc(100dvh - 114px - env(safe-area-inset-bottom)); grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(260px, 1fr) auto auto auto; gap: .35rem; }
  .patrol-cockpit-bar { grid-column: 1; grid-row: 1; }
  .patrol-readiness { grid-column: 1; grid-row: 2; }
  .patrol-map-wrap { grid-column: 1; grid-row: 3; min-height: 260px; }
  .patrol-side { display: contents; }
  .patrol-readout { grid-column: 1; grid-row: 4; }
  .patrol-objective { grid-column: 1; grid-row: 5; }
  .patrol-actions-main { grid-column: 1; grid-row: 6; }
  .web-patrol-shell[data-view="map"] { grid-template-rows: auto auto minmax(340px, 1fr) 0 0 auto; }
  .patrol-map-tools { flex-wrap: wrap; max-width: calc(100% - 64px); }
  .patrol-readiness span { padding: .3rem; }
}
@media (prefers-reduced-motion: reduce) { .nd-field, .nd-aurora, .nd-scanline { display: none; } }

.setup-shell .setup-card::after, .route-finish::before { display: none; }
