/* Optional Tactical HUD. Scope every rule so switching appearance restores
   Standard and Relief immediately, including already-open drawers and maps. */
body[data-map-style="tactical"] {
  --ink: #e4eaf0;
  --ink-soft: #a7b5c3;
  --navy: #0b1016;
  --navy-2: #111923;
  --paper: #0b1016;
  --paper-2: #131c25;
  --card: #111923;
  --line: #2c3a47;
  --gold: #7ac7e5;
  --gold-soft: #1c3542;
  --green: #82c4a7;
  --red: #ee938d;
  --shadow: 0 18px 50px #0006;
  --radius: 7px;
  --tactical-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --tactical-muted: #94a5b4;
  --tactical-line: #2c3a47;
  color-scheme: dark;
  background: #0b1016;
  color: #e4eaf0;
  -webkit-font-smoothing: antialiased;
}

body[data-map-style="tactical"] :is(h1, h2, h3, h4) {
  color: #e4eaf0;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 550;
  letter-spacing: -.025em;
}
body[data-map-style="tactical"] :is(.eyebrow, .countdown, .deadline-label, .deadline-exact, .micro-stat, .position-summary, .status-pill, .ready-state, .map-province-code, .order-unit small, .war-room-phase-comparison, .war-room-save-status, code) {
  font-family: var(--tactical-mono);
  font-variant-numeric: tabular-nums;
}
body[data-map-style="tactical"] .eyebrow { color: #8cb4c8; font-weight: 600; letter-spacing: .14em; }
body[data-map-style="tactical"] :is(.fine-print, .workspace-help, .recipient-help, .empty-state, .seat-count, .micro-stat) { color: var(--tactical-muted); }
body[data-map-style="tactical"] :is(input, select, textarea) { border-color: #354653; border-radius: 5px; background-color: #0d151e; color: #dce5ed; accent-color: #7ac7e5; }
body[data-map-style="tactical"] :is(input, select, textarea)::placeholder { color: #8193a2; }
body[data-map-style="tactical"] :is(input, select, textarea):focus { border-color: #7ac7e5; box-shadow: 0 0 0 2px #7ac7e51f; }
body[data-map-style="tactical"] :is(button, summary, a):focus-visible { outline: 2px solid #91d8ef; outline-offset: 3px; }
body[data-map-style="tactical"] :is(.primary-button, .quiet-button, .danger-button, .icon-button, .text-button, .war-room-entry-button, .advisor-entry-button) { border-radius: 5px; box-shadow: none; }
body[data-map-style="tactical"] .primary-button { border-color: #87cbe4; background: #82c6df; color: #0b1a23; font-weight: 750; }
body[data-map-style="tactical"] .primary-button:hover { background: #a0d9eb; filter: none; }
body[data-map-style="tactical"] :is(.quiet-button, .icon-button, .advisor-entry-button, .war-room-entry-button) { border-color: #354653; background: #18232e; color: #c9d6e1; }
body[data-map-style="tactical"] :is(.quiet-button, .icon-button, .advisor-entry-button, .war-room-entry-button):hover { border-color: #6597ad; background: #223441; color: #e7f3f8; transform: none; }
body[data-map-style="tactical"] .danger-button { border-color: #74484a; background: #291c23; color: #efaaa4; }
body[data-map-style="tactical"] .text-button { color: #8acde6; }
body[data-map-style="tactical"] .join-card { border-color: #3c5262; border-radius: 8px; background: #131e28; color: #dce7ef; }
body[data-map-style="tactical"] .seat-choice { border-color: #3a4e5d; border-radius: 5px; background: #1b2a35; color: #dce7ef; }
body[data-map-style="tactical"] .seat-choice small { color: #9aafbe; }
body[data-map-style="tactical"] .seat-choice:hover:not(:disabled) { background: #223947; border-color: #719db4; }
body[data-map-style="tactical"] .seat-choice.mystery-seat .power-medallion { border-color: #648da3; background: #223c4c; color: #b4dce9; }
body[data-map-style="tactical"] :is(.key-entry, .chosen-player small) { color: #9cb0bf; }

/* Chrome stays quiet so the board, units and real order states carry emphasis. */
body[data-map-style="tactical"] .topbar { border-bottom: 1px solid #2b3845; background: #0c1219; box-shadow: none; }
body[data-map-style="tactical"] .brand-lockup strong { font-family: var(--tactical-mono); font-weight: 500; letter-spacing: -.055em; }
body[data-map-style="tactical"] :is(.brand-mark, .war-room-mark, .advisor-mark) { border: 1px solid #526c7d; border-radius: 3px; background: #17232d; color: #aad8e9; font-family: var(--tactical-mono); font-weight: 500; transform: none; }
body[data-map-style="tactical"] :is(.brand-mark, .war-room-mark, .advisor-mark)::first-line { transform: none; }
body[data-map-style="tactical"] :is(.brand-lockup small, .account-name small, .deadline-label, .deadline-exact) { color: #8e9faf; }
body[data-map-style="tactical"] .phase-label { color: #d7e3ed; font-family: var(--tactical-mono); font-weight: 400; letter-spacing: -.04em; }
body[data-map-style="tactical"] .countdown { color: #91d0e8; font-weight: 500; }
body[data-map-style="tactical"] .account-lockup .icon-button { border-color: #354653; color: #c9d6e1; }
body[data-map-style="tactical"] .power-dot { border-radius: 2px; box-shadow: 0 0 0 1px #b1c0ce55; }
body[data-map-style="tactical"] .game-shell { gap: 12px; padding: 12px; }
body[data-map-style="tactical"] :is(.panel, .board-column) { border-color: #2c3a47; box-shadow: none; }
body[data-map-style="tactical"] .board-toolbar { border-bottom: 1px solid #293846; background: #111a23; }
body[data-map-style="tactical"] .board-toolbar h2 { font-size: 19px; }
body[data-map-style="tactical"] :is(.map-mode-switch, .war-room-map-mode) { border-color: #354653; border-radius: 5px; background: #0d151d; }
body[data-map-style="tactical"] :is(.map-mode-switch, .war-room-map-mode) button { border-radius: 3px; color: #96a9b8; font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] :is(.map-mode-switch, .war-room-map-mode) button.active { background: #273b49; color: #b5e1ee; box-shadow: none; }
body[data-map-style="tactical"] .map-mode-switch button::before { border-color: #627a8c; border-radius: 1px; background: linear-gradient(135deg, #344553 50%, #101b25 50%); }
body[data-map-style="tactical"] .map-mode-switch button[data-map-mode="political"]::before { background: conic-gradient(#9a616b, #626fa5, #4f8471, #a29158, #9a616b); }
body[data-map-style="tactical"] .overlay-toggle { border-color: #354653; border-radius: 5px; background: #15212b; color: #b2c0cb; }
body[data-map-style="tactical"] .rules-info-button { border-color: #496173; background: #182630; color: #a9d6e6; }
body[data-map-style="tactical"] .board-foot { background: #101821; }
body[data-map-style="tactical"] .round-radio-banner { border-color: #37586a; background: #111f2a; }
body[data-map-style="tactical"] .round-radio-banner-copy > span { color: #a9d7e9; }
body[data-map-style="tactical"] .round-radio-banner-play { border-color: #81c9e1; background: #a9d7e9; color: #101821; }
body[data-map-style="tactical"] :is(.resolution-rule p, .position-summary, .player-meta small, .rhythm-card p, .ready-state) { color: #91a3b2; }
body[data-map-style="tactical"] .resolution-rule > span { width: 5px; height: 5px; border-radius: 1px; background: #739bae; box-shadow: none; }
body[data-map-style="tactical"] .player-row { border-radius: 5px; }
body[data-map-style="tactical"] .roster-panel .panel-heading h2 { font-size: 20px; }
body[data-map-style="tactical"] .player-row.is-me { background: #1b2a36; box-shadow: inset 2px 0 #78bfd9; }
body[data-map-style="tactical"] .power-medallion { border-color: color-mix(in srgb, var(--power-color), #a9bdca 40%); border-radius: 4px; background: color-mix(in srgb, var(--power-color), #101923 78%); color: color-mix(in srgb, var(--power-color), #e4eef5 50%); font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] .ready-state.ready { color: #8ccab0; }
body[data-map-style="tactical"] .ready-state span { border-radius: 1px; background: #566775; }
body[data-map-style="tactical"] .ready-state.ready span { box-shadow: none; }
body[data-map-style="tactical"] .rhythm-card { border-color: #304351; border-radius: 5px; background: #14202a; }
body[data-map-style="tactical"] .rhythm-card strong { font-family: inherit; }

/* The base SVG is still the sole source of territory and coast geometry. */
.map-canvas .tactical-map-layer { display: none; pointer-events: none; }
.order-piece-icon > .unit-tactical-symbol { display: none; }
body[data-map-style="tactical"] .order-piece-icon > .unit-historical-symbol { display: none; }
body[data-map-style="tactical"] .order-piece-icon > .unit-tactical-symbol { display: inline; color: var(--tactical-power, #bad8e9); }
.map-canvas[data-map-style="tactical"] .tactical-map-layer { display: inline; }
.map-shell[data-map-style="tactical"],
.map-canvas[data-map-style="tactical"] { background: #0d1822; scrollbar-color: #496071 #0d1822; }
.map-shell[data-map-style="tactical"]::after { box-shadow: none; }
.map-canvas[data-map-style="tactical"] svg #MapLayer > rect { fill-opacity: 0; }
.map-canvas[data-map-style="tactical"] svg #MapLayer path,
.map-canvas[data-map-style="tactical"] svg #MapLayer polygon {
  fill: #273640 !important;
  fill-opacity: 1;
  stroke: #617783 !important;
  stroke-opacity: .73;
  stroke-width: .85 !important;
}
.map-canvas[data-map-style="tactical"][data-map-mode="classic"] svg #MapLayer [data-province] { fill: #283943 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-province] { fill: #29383f !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .austria { fill: #594148 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .england { fill: #373f63 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .france { fill: #304f63 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .germany { fill: #4b5359 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .italy { fill: #334e43 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .russia { fill: #4f455e !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer .turkey { fill: #5c5238 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="austria"] { fill: #594148 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="england"] { fill: #373f63 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="france"] { fill: #304f63 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="germany"] { fill: #4b5359 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="italy"] { fill: #334e43 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="russia"] { fill: #4f455e !important; }
.map-canvas[data-map-style="tactical"][data-map-mode="political"] svg #MapLayer [data-occupier-power="turkey"] { fill: #5c5238 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode] svg #MapLayer .water,
.map-canvas[data-map-style="tactical"][data-map-mode] svg #MapLayer [data-province].water { fill: #122735 !important; fill-opacity: .16; stroke: #416070 !important; stroke-opacity: .65; stroke-width: .7 !important; }
.map-canvas[data-map-style="tactical"][data-map-mode] svg #MapLayer .neutral,
.map-canvas[data-map-style="tactical"][data-map-mode] svg #MapLayer .impassable { fill: #19252d !important; stroke: #41545f !important; }
.map-canvas[data-map-style="tactical"] svg #BriefLabelLayer text {
  fill: #d9e5eb !important;
  stroke: #15232ae6 !important;
  stroke-width: 3.5 !important;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace !important;
  font-size: 24px !important;
  font-weight: 550 !important;
  letter-spacing: .9px;
}
.map-canvas[data-map-style="tactical"] svg #BriefLabelLayer text[data-terrain="water"] { fill: #91b3c3 !important; stroke: #0d1822e6 !important; font-weight: 500 !important; letter-spacing: 1.9px; }
.map-canvas[data-map-style="tactical"] svg #BriefLabelLayer text.labeltext18 { font-size: 22px !important; }
.map-canvas[data-map-style="tactical"] svg :is(.currentnotetext, .currentphasetext) { fill: #a7becb !important; stroke: #0d1822 !important; stroke-width: 3 !important; font-family: ui-monospace, "SFMono-Regular", Consolas, monospace !important; font-weight: 500; }
.map-canvas[data-map-style="tactical"] svg .currentnoterect { fill: #0d1822 !important; stroke: #344e5d !important; stroke-width: 1 !important; }
.map-canvas[data-map-style="tactical"] svg #SupplyCenterLayer use { filter: drop-shadow(0 1px 1px #07101b); }
.map-canvas[data-map-style="tactical"] svg #SupplyCenter circle:first-child { fill: #c9dce7 !important; stroke: #0d1822 !important; stroke-width: 1.3 !important; }
.map-canvas[data-map-style="tactical"] svg #SupplyCenter circle:last-child { fill: none !important; stroke: #91acbb !important; stroke-width: 1.1 !important; }
.map-canvas[data-map-style="tactical"] svg :is(#UnitLayer, #DislodgedUnitLayer) use { color: var(--tactical-power, #bad8e9); filter: drop-shadow(0 1px 2px #000b); }
.map-canvas[data-map-style="tactical"] svg .unit-tactical-symbol { overflow: visible; }
body[data-map-style="tactical"] .unit-tactical-symbol .tactical-unit-frame { fill: #0e1a25; stroke: var(--tactical-power, currentColor); stroke-width: 1.7; stroke-linejoin: miter; }
body[data-map-style="tactical"] .unit-tactical-symbol .tactical-unit-glyph { fill: none; stroke: var(--tactical-power, currentColor); stroke-width: 1.8; stroke-linecap: square; stroke-linejoin: miter; }
body[data-map-style="tactical"] .unit-tactical-symbol .tactical-unit-divider { fill: none; stroke: var(--tactical-power, currentColor); stroke-width: .9; opacity: .7; }
body[data-map-style="tactical"] .unit-tactical-symbol .tactical-unit-power { fill: var(--tactical-power, currentColor); stroke: none; font-family: var(--tactical-mono); font-size: 10px; font-weight: 700; }
.map-canvas[data-map-style="tactical"] svg .dislodged-piece { filter: drop-shadow(0 0 2px #fa8981) drop-shadow(0 2px 2px #000b) !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) .shadowdash { stroke: #09131d !important; opacity: .8 !important; }
/* Renderer power colours are presentation attributes on lines, paths or groups.
   Recolour those attributes visually while retaining move/support/convoy dashes. */
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="#c48f85"] { stroke: #f18d88 !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="darkviolet"] { stroke: #98a9fa !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="royalblue"] { stroke: #6ec7f4 !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="#a08a75"] { stroke: #c3cdd6 !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="forestgreen"] { stroke: #7fd2a6 !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="#757d91"] { stroke: #c7a6ee !important; }
.map-canvas[data-map-style="tactical"] svg :is(#OrderLayer, #HighestOrderLayer) [stroke="#b9a61c"] { stroke: #e7c277 !important; }
.map-canvas[data-map-style="tactical"] svg #arrow path { fill: #c3e7f2; }
.map-canvas[data-map-style="tactical"] svg #MapLayer .has-draft-order { filter: none; }
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-proposed-destination { stroke: #ecc883 !important; stroke-width: 2.6 !important; stroke-opacity: 1; }
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-legal-destination { stroke: #8cd7bf !important; stroke-width: 2.5 !important; stroke-opacity: 1; }
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-selected-province,
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-map-order-selected { stroke: #b9e5f5 !important; stroke-width: 3.5 !important; stroke-opacity: 1; filter: brightness(1.12); }
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-map-order-target { stroke: #7bd4b3 !important; stroke-width: 3 !important; stroke-opacity: 1; filter: none; }
.map-canvas[data-map-style="tactical"] svg #MapLayer .is-map-support-target { stroke: #98bdf1 !important; stroke-width: 3 !important; stroke-opacity: 1; filter: none; }
.map-canvas[data-map-style="tactical"] svg :is(#UnitLayer, #DislodgedUnitLayer) use.is-map-order-unit-selected { filter: drop-shadow(0 0 3px #a3d7e8) drop-shadow(0 2px 2px #000b); }
.map-canvas[data-map-style="tactical"] svg #MapLayer [data-province]:hover,
.map-canvas[data-map-style="tactical"] svg #MapLayer [data-map-region]:focus,
.map-canvas[data-map-style="tactical"] svg #MapLayer [data-map-region]:focus [data-province] { stroke: #a8d3e3 !important; stroke-opacity: 1; stroke-width: 2 !important; }

/* Map interaction and the order workspace share one visual language. */
body[data-map-style="tactical"] :is(.map-province-inspector, .map-order-composer) { border-color: #486477; border-radius: 6px; background: #101b25f5; box-shadow: 0 12px 30px #0005; }
body[data-map-style="tactical"] .map-province-code { border: 1px solid #3f5a6c; border-radius: 3px; background: #213340; color: #a8d8e9; }
body[data-map-style="tactical"] :is(.map-province-inspector strong, .map-order-composer-copy strong) { color: #e0edf4; font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] :is(.map-province-inspector small, .map-order-composer-copy p) { color: #9dafbd; }
body[data-map-style="tactical"] .map-order-composer-copy .eyebrow { color: #92bdd1; }
body[data-map-style="tactical"] .map-order-composer-actions button { border-color: #3e5263; border-radius: 4px; background: #1b2a37; color: #d1e0e9; font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] .map-order-composer-actions button:hover { border-color: #8bcbe1; color: #c3eafa; }
body[data-map-style="tactical"] .map-order-composer-actions button.primary { border-color: #8dd0e6; background: #82c6df; color: #0d1b24; font-weight: 750; }
body[data-map-style="tactical"] .map-order-composer-actions button.danger { border-color: #805154; color: #f2aaa3; }
body[data-map-style="tactical"] .map-loading { background: #101b25; color: #a0b6c5; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .map-loading span { border-color: #344d5d; border-top-color: #86cbe3; }
body[data-map-style="tactical"] .workspace-drawer-backdrop { background: #05090e80; }
body[data-map-style="tactical"] .command-panel { box-shadow: -18px 24px 60px #0007; }
body[data-map-style="tactical"] :is(.workspace-drawer-heading, .workspace-drawer-heading .icon-button, .workspace-tab) { color: #9bafbd; }
body[data-map-style="tactical"] .workspace-tab { font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] .workspace-tab.active { color: #c9e7f1; }
body[data-map-style="tactical"] .workspace-tab span:not(:empty) { border-radius: 3px; background: #243e4f; color: #acd5e4; }
body[data-map-style="tactical"] :is(.order-card, .war-room-order-card) { border-color: #31424f; border-radius: 5px; background: #17222c; }
body[data-map-style="tactical"] .order-card.selected { border-color: #72b5cf; box-shadow: inset 2px 0 #72b5cf; }
body[data-map-style="tactical"] .order-progress { height: 2px; background: #2a3c49; }
body[data-map-style="tactical"] .order-progress span { background: #77bfd9; }
body[data-map-style="tactical"] .order-unit strong { color: #dfe8ef; }
body[data-map-style="tactical"] .order-unit small { color: #97acbb; }
body[data-map-style="tactical"] .unit-icon { border: 1px solid #3d5262; border-radius: 4px; background: #15232f; }
body[data-map-style="tactical"] :is(.order-card, .war-room-order-card) select { border-color: #3b5060; background: #101b25; color: #d0dfe9; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .orders-footer { border-color: #344756; background: #101923f7; }
body[data-map-style="tactical"] .orders-footer > p { color: #9eafbb; }
body[data-map-style="tactical"] .status-pill { border-radius: 4px; color: #a1b1bd; }
body[data-map-style="tactical"] .status-pill.saved { border-color: #446455; background: #192e27; color: #9dd4b8; }
body[data-map-style="tactical"] .status-pill.ready { border-color: #4e7385; background: #1b3442; color: #aed9e9; }

/* Settings, messages, history and dialogs retain their content hierarchy. */
body[data-map-style="tactical"] .modal-backdrop { background: #04080cbf; backdrop-filter: blur(5px); }
body[data-map-style="tactical"] .modal { border: 1px solid #3a4e5e; border-radius: 8px; background: #131d27; }
body[data-map-style="tactical"] :is(.access-card, .hud-settings, .host-roster-row) { border-color: #344755; border-radius: 5px; background: #192630; }
body[data-map-style="tactical"] .hud-settings > summary { color: #c0d4e1; font-family: var(--tactical-mono); font-weight: 500; letter-spacing: .08em; }
body[data-map-style="tactical"] .hud-settings-body { background: #121d27; }
body[data-map-style="tactical"] .hud-settings-body select { border-color: #506c7d; }
body[data-map-style="tactical"] :is(.access-card small, .host-roster-row small) { color: #95aaba; }
body[data-map-style="tactical"] .access-card code { color: #c1d3df; }
body[data-map-style="tactical"] .session-check { border-radius: 4px; background: #203d35; color: #9bd6bc; }
body[data-map-style="tactical"] :is(.message-card, .history-item, .history-summary, .history-recap, .history-orders-disclosure) { border-color: #324653; border-radius: 5px; background: #17232d; }
body[data-map-style="tactical"] .message-card.mine { background: #1c303e; }
body[data-map-style="tactical"] :is(.message-card p, .history-recap-event p, .history-orders-disclosure > summary strong, .history-order) { color: #c2d1dc; }
body[data-map-style="tactical"] :is(.message-meta span:last-child, .history-summary small, .history-recap-heading span, .history-orders-disclosure > summary small) { color: #8fa5b6; }
body[data-map-style="tactical"] .recipient-option { color: #b4c5d1; }
body[data-map-style="tactical"] .recipient-option:has(input:checked) { border-color: color-mix(in srgb, var(--power-color), #a6c0d1 40%); background: color-mix(in srgb, var(--power-color), #17232d 78%); }
body[data-map-style="tactical"] :is(.history-summary strong, .round-radio strong) { color: #dde9f1; font-family: inherit; }
body[data-map-style="tactical"] :is(.history-detail, .history-orders-body) { border-color: #324653; background: #101a24; }
body[data-map-style="tactical"] :is(.history-recap-heading, .history-recap-event + .history-recap-event, .history-order) { border-color: #334754; }
body[data-map-style="tactical"] :is(.history-recap-heading strong, .history-orders-disclosure > summary i, .round-radio small, .round-radio-transcript summary) { color: #9ccddd; }
body[data-map-style="tactical"] :is(.history-power > strong, .war-room-exact-power strong) { color: color-mix(in srgb, var(--power-color), #deebf4 50%); }
body[data-map-style="tactical"] .history-recap-icon { border-radius: 3px; background: #263b48; color: #bddce9; }
body[data-map-style="tactical"] .round-radio { border-color: #486575; border-radius: 5px; background: #192c39; box-shadow: none; }
body[data-map-style="tactical"] .round-radio-mark { border-color: #577c91; border-radius: 4px; background: #223c4b; color: #b0ddec; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .rules-modal-heading { border-color: #344957; background: #17232d; }
body[data-map-style="tactical"] :is(.rules-goal, .rules-order-list > div, .rules-legality-note) { border-color: #3c5464; border-radius: 5px; background: #1a2a36; }
body[data-map-style="tactical"] :is(.rules-goal strong, .rules-section summary > strong) { font-family: inherit; }
body[data-map-style="tactical"] .rules-goal-number { border: 1px solid #52788f; border-radius: 4px; color: #b2d8e8; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] :is(.rules-goal p, .rules-section-body, .rules-legality-note) { color: #b0c1ce; }
body[data-map-style="tactical"] .rules-order-list code { color: #a7d9eb; }
body[data-map-style="tactical"] .advisor-atmosphere { display: none; }
body[data-map-style="tactical"] .advisor-modal-heading { border-color: #3c5262; background: #111b25; }
body[data-map-style="tactical"] :is(.advisor-privacy, .advisor-caveats, .advisor-notice, .advisor-limit, .advisor-answer) { border-color: #3b5263; border-radius: 5px; background: #1a2a36; }
body[data-map-style="tactical"] :is(.advisor-privacy p, .advisor-intro > p:last-child, .advisor-working > p:not(.eyebrow), .advisor-question, .advisor-plan p, .advisor-caveats ul, .advisor-notice p, .advisor-limit) { color: #b3c4d1; }
body[data-map-style="tactical"] :is(.advisor-privacy strong, .advisor-privacy > span, .advisor-caveats strong, .advisor-form-heading label, .advisor-answer-kicker, .advisor-modal-heading .eyebrow) { color: #abd2e2; }
body[data-map-style="tactical"] :is(.advisor-form-heading label, .advisor-working blockquote, .advisor-question, .advisor-notice strong) { font-family: inherit; }
body[data-map-style="tactical"] .advisor-form textarea { border-color: #4b6779; background: #101b25; }
body[data-map-style="tactical"] :is(.advisor-suggestions button, .advisor-orders code) { border-color: #3e586a; border-radius: 4px; background: #1c303e; color: #b2d7e7; }
body[data-map-style="tactical"] .advisor-answer > header { background: #12212d; }
body[data-map-style="tactical"] :is(.advisor-plan > section, .advisor-answer > footer) { border-color: #364e5e; }
body[data-map-style="tactical"] .advisor-working-seal { border-color: #5e8ca4; background: #172c3a; color: #b4deeb; box-shadow: 0 0 0 7px #1b2c38, 0 0 0 8px #3c586a; }
body[data-map-style="tactical"] .advisor-working-line { background: #355164; }
body[data-map-style="tactical"] .toast { border-color: #547286; border-radius: 5px; background: #1b2b37; color: #ddebf3; }
body[data-map-style="tactical"] .toast.error { border-color: #9d6768; color: #fac0b8; }
body[data-map-style="tactical"] .paused-banner { background: #3c3323; color: #ead0a0; }

/* The simulation uses the same instruments, with its real warning preserved. */
body[data-map-style="tactical"] .war-room-view { background: #0b1219; color: #dce7ee; }
body[data-map-style="tactical"] .war-room-header { border-color: #2c414f; background: #0c131b; }
body[data-map-style="tactical"] .war-room-brand strong { color: #dce9f1; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] :is(.war-room-brand small, .war-room-phase-comparison small, .war-room-orders-help, .war-room-orders-footer p, .war-room-power-heading small, .war-room-exact-orders, .war-room-exact-power span) { color: #96acbb; }
body[data-map-style="tactical"] .war-room-phase-comparison strong { color: #d0e3ed; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .war-room-phase-comparison :is(i, em) { color: #a9cee0; }
body[data-map-style="tactical"] .war-room-phase-comparison em { border-color: #3e596c; border-radius: 4px; background: #1b2d3a; }
body[data-map-style="tactical"] :is(.war-room-quiet-button, .war-room-close-button, .war-room-icon-button) { border-color: #3c5364; border-radius: 4px; background: #172631; color: #bbd8e7; }
body[data-map-style="tactical"] .war-room-warning { border-color: #5b5139; background: #27261f; color: #c6b992; }
body[data-map-style="tactical"] .war-room-warning > span { border-color: #958054; border-radius: 2px; color: #e4cc94; font-family: var(--tactical-mono); font-weight: 500; }
body[data-map-style="tactical"] .war-room-warning strong { color: #e2d8be; }
body[data-map-style="tactical"] .war-room-warning small { color: #b8af99; }
body[data-map-style="tactical"] :is(.war-room-map-column, .war-room-orders-panel) { border-color: #304552; border-radius: 6px; background: #131e28; }
body[data-map-style="tactical"] .war-room-map-toolbar { border-bottom: 1px solid #304552; }
body[data-map-style="tactical"] :is(.war-room-map-toolbar .eyebrow, .war-room-orders-heading .eyebrow) { color: #8cb4c8; }
body[data-map-style="tactical"] .war-room-watermark { color: #bfd9e114; font-family: var(--tactical-mono); font-weight: 500; letter-spacing: .06em; text-shadow: none; }
body[data-map-style="tactical"] .war-room-map-shell::after { box-shadow: none; }
body[data-map-style="tactical"] .war-room-result { border-color: #324855; background: #101b24; }
body[data-map-style="tactical"] .war-room-recap-event { border-color: #304754; border-radius: 4px; background: #182833; }
body[data-map-style="tactical"] .war-room-recap-event > span { border-radius: 3px; background: #2b4555; color: #b4dceb; }
body[data-map-style="tactical"] .war-room-recap-event p { color: #b6c9d5; }
body[data-map-style="tactical"] .war-room-orders-heading > span { border-color: #456c5c; border-radius: 3px; color: #9bc5af; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .war-room-orders-heading > span.dirty { border-color: #88774e; color: #d9bd83; }
body[data-map-style="tactical"] .war-room-power-tabs { border-color: #344d5d; }
body[data-map-style="tactical"] .war-room-power-tabs button { border-color: color-mix(in srgb, var(--power-color), #99b2c5 30%); border-radius: 3px; background: color-mix(in srgb, var(--power-color), #101b25 85%); color: #c9d9e6; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .war-room-power-tabs button.active { background: color-mix(in srgb, var(--power-color), #101b25 52%); box-shadow: inset 0 -2px #b3dcea; }
body[data-map-style="tactical"] .war-room-power-heading > span { border-radius: 4px; font-family: var(--tactical-mono); }
body[data-map-style="tactical"] .war-room-power-heading strong { color: #d0e0eb; }
body[data-map-style="tactical"] .war-room-orders-footer { border-color: #385364; background: #111d27fa; }
body[data-map-style="tactical"] .war-room-orders-footer p span { color: #91c5db; }
body[data-map-style="tactical"] .war-room-try-button { border-color: #80bcd5; border-radius: 4px; background: #83c5dc; color: #0c1b25; }
body[data-map-style="tactical"] #warRoomView .war-room-map-order-composer { border-color: #55768a; background: #101b25f7; }
body[data-map-style="tactical"] .war-room-resolution { background: #0c141d; color: #dce8ef; }
body[data-map-style="tactical"] .war-room-resolution-atmosphere { opacity: .25; }
body[data-map-style="tactical"] .war-room-resolution-header { border-color: #324b5d; }
body[data-map-style="tactical"] .war-room-resolution-footer { border-color: #324b5d; color: #9caeba; }
body[data-map-style="tactical"] .war-room-resolution-footer strong { color: #add4e4; }

@media (max-width: 980px) {
  body[data-map-style="tactical"] .game-shell { gap: 0; padding: 0; }
  body[data-map-style="tactical"] .topbar { padding-right: 9px; padding-left: 9px; }
  body[data-map-style="tactical"] .topbar .compact .brand-mark { width: 30px; height: 30px; font-size: 9px; }
  body[data-map-style="tactical"] .phase-label { font-size: 11px; }
  body[data-map-style="tactical"] .countdown { font-size: 11px; letter-spacing: -.04em; }
  body[data-map-style="tactical"] #boardPanel { background: #0d1822; }
  body[data-map-style="tactical"] #boardPanel .board-toolbar { border-color: #4a6476; border-radius: 6px; background: #101c27f5; box-shadow: 0 6px 18px #0004; }
  body[data-map-style="tactical"] #boardPanel .board-toolbar.tools-expanded { background: #12212cfb; }
  body[data-map-style="tactical"] #boardPanel .board-actions > :is(button, label) { border-radius: 4px; color: #c6d8e4; }
  body[data-map-style="tactical"] #boardPanel .board-actions > :is(button, label):hover { background: #294251; color: #d3edf7; }
  body[data-map-style="tactical"] #boardPanel .board-toolbar:not(.tools-expanded) #toggleBoardTools { color: #a9d7e9; }
  body[data-map-style="tactical"] #boardPanel .board-actions .rules-info-button > span { border-color: #75a4bc; color: #b8ddeb; }
  body[data-map-style="tactical"] #boardPanel .board-actions .advisor-entry-button > span:first-child,
  body[data-map-style="tactical"] #toggleMapModeMobile > span { color: #acd8e8; }
  body[data-map-style="tactical"] #boardPanel .board-actions .overlay-toggle input { accent-color: #81c9e1; }
  body[data-map-style="tactical"] .mobile-nav { border-color: #456174; border-radius: 6px; background: #101b26f7; box-shadow: 0 -5px 20px #0004; }
  body[data-map-style="tactical"] .mobile-nav.nav-expanded { background: #11202bfb; }
  body[data-map-style="tactical"] .mobile-nav button { border-radius: 3px; color: #98afbf; }
  body[data-map-style="tactical"] .mobile-nav button:hover { background: #263d4c; color: #cae5ef; }
  body[data-map-style="tactical"] .mobile-nav button.active { background: #284553; color: #b8e7f7; }
  body[data-map-style="tactical"] .mobile-nav button.active::after { border-radius: 0; background: #9bd6e8; }
  body[data-map-style="tactical"] .mobile-nav .mobile-nav-toggle { color: #afd8e8 !important; }
  body[data-map-style="tactical"] .mobile-nav.nav-expanded .mobile-nav-label { font-family: var(--tactical-mono); font-weight: 500; letter-spacing: 0; }
  body[data-map-style="tactical"] .map-order-composer-copy strong { font-size: 12px; line-height: 1.4; }
  body[data-map-style="tactical"] .map-order-composer-actions button { min-height: 44px; font-size: 9px; }
  body[data-map-style="tactical"] .war-room-mobile-nav { border-color: #3d5a6d; background: #0f1c27; }
  body[data-map-style="tactical"] .war-room-mobile-nav button { color: #91aabd; }
  body[data-map-style="tactical"] .war-room-mobile-nav button.active { background: #1f3747; color: #b1dff0; }
  body[data-map-style="tactical"] :is(.order-card, .war-room-order-card) select { min-height: 44px; font-size: 16px; }
  body[data-map-style="tactical"] :is(.filter-label select, .advisor-form textarea, .message-form textarea) { font-size: 16px; }
  body[data-map-style="tactical"] .modal { border-radius: 7px; }
}
