.world-theater {
  display:grid;
  grid-template-columns:minmax(0,1fr) 258px;
  gap:12px;
  height:100%;
  min-height:0;
}
.world-map {
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.map-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border-bottom:1px solid var(--navy);
  font-size:10px;
  letter-spacing:1px;
}
.map-toolbar>span {
  display:flex;
  gap:8px;
  align-items:center;
  flex:0 0 auto;
}
.map-controls {
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.map-regions {
  min-width:0;
  display:flex;
  overflow-x:auto;
  scrollbar-width:none;
}
.map-regions::-webkit-scrollbar {
  display:none;
}
.map-regions button {
  flex:0 0 auto;
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  margin-left:-1px;
  padding:5px 6px;
  font-size:7px;
  letter-spacing:.55px;
}
.map-regions button:hover,
.map-regions button.selected {
  color:var(--paper);
  border-color:var(--paper);
  background:var(--panel);
  position:relative;
  z-index:1;
}
.map-toolbar small {
  font-size:7px;
  color:var(--muted);
  margin-left:8px;
}
.segmented {
  display:flex;
}
.segmented button {
  background:transparent;
  border:1px solid var(--us);
  margin-left:-1px;
  font-size:8px;
  color:var(--muted);
  padding:5px 7px;
  letter-spacing:.8px;
}
.segmented button.selected {
  color:var(--cyan);
  background:var(--navy);
  border-color:var(--cyan);
}
.map-viewport {
  flex:1;
  position:relative;
  display:flex;
  align-items:center;
  min-height:0;
  overflow:hidden;
  background:var(--bg);
}
#world-svg {
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
  touch-action:none;
  user-select:none;
  overflow:hidden;
}
.map-grid path {
  stroke:color-mix(in srgb,var(--us) 26%,transparent);
  stroke-width:.8;
  fill:none;
}
.map-country path {
  stroke:var(--panel);
  stroke-width:.5;
  vector-effect:non-scaling-stroke;
  transition:fill .2s;
}
.map-country {
  cursor:pointer;
}
.map-country:focus,
.map-country:focus-visible,
.map-node:focus,
.map-node:focus-visible,
.available-operation-marker:focus,
.available-operation-marker:focus-visible {
  outline:none!important;
  box-shadow:none!important;
}
.map-country:hover>path:first-child,.map-country:focus>path:first-child {
  filter:brightness(1.3);
  stroke:var(--paper);
  stroke-width:1.2;
}
.map-country .contested-hatch {
  stroke:transparent;
  pointer-events:none;
}
.region-labels {
  transition:opacity .15s;
}
.region-labels text {
  fill:color-mix(in srgb,var(--paper) 53%,transparent);
  font-size:var(--map-label-size,12px);
  letter-spacing:var(--map-label-spacing,2.5px);
  pointer-events:none;
  text-anchor:middle;
}
#world-svg.map-regional-detail .region-labels {
  opacity:.24;
}
.map-node {
  cursor:pointer;
  pointer-events:none;
}
.node-hit {
  fill:transparent;
  stroke:none;
  pointer-events:all;
}
.node-core {
  pointer-events:all;
  fill:var(--panel-alt);
  stroke:currentColor;
  stroke-width:1.5;
}
.node-ring,.node-diamond {
  fill:none;
  stroke:currentColor;
  stroke-width:1.2;
  pointer-events:none;
}
.node-ring {
  filter:drop-shadow(0 0 3px currentColor);
}
.map-node.selected .node-core {
  fill:var(--paper);
}
.map-node text {
  fill:var(--paper);
  pointer-events:none;
  font-size:11px;
  letter-spacing:2px;
  paint-order:stroke;
  stroke:var(--bg);
  stroke-width:4px;
}
.map-node.active .node-ring {
  animation:pulse-node 2.5s infinite;
}
.operation-route {
  stroke:var(--paper);
  stroke-width:1;
  stroke-dasharray:5 5;
  fill:none;
  opacity:.8;
}
.map-navigation {
  position:absolute;
  right:12px;
  bottom:14px;
  display:flex;
  gap:3px;
}
.map-navigation button {
  background:color-mix(in srgb,var(--panel-alt) 93%,transparent);
  border:1px solid var(--us);
  width:28px;
  height:28px;
  font-size:19px;
}
.map-scale {
  position:absolute;
  left:12px;
  bottom:14px;
  font-size:7px;
  letter-spacing:1.6px;
  color:var(--paper);
  pointer-events:none;
}
.map-legend {
  display:flex;
  gap:17px;
  flex-wrap:wrap;
  border-top:1px solid var(--navy);
  padding:7px 10px;
  font-size:7px;
  letter-spacing:1px;
}
.map-legend span {
  display:flex;
  align-items:center;
  gap:6px;
}
.map-legend i {
  width:8px;
  height:8px;
  border:1px solid var(--paper);
}
.us-key {
  background:var(--us);
}
.soviet-key {
  background:var(--red);
}
.neutral-key {
  background:var(--line);
}
.hatch-key {
  background:repeating-linear-gradient(135deg,var(--red) 0 2px,var(--panel) 2px 3px);
}
.regional-wire {
  display:grid;
  grid-template-rows:minmax(0,1fr);
  gap:10px;
  min-height:0;
  overflow:hidden;
  align-content:stretch;
}
.region-image {
  width:calc(100% - 18px);
  height:82px;
  object-fit:cover;
  margin:8px 9px 0;
  border:1px solid var(--us);
}
.region-copy {
  padding:8px 13px 12px;
}
.region-copy h3 {
  font-size:15px;
  color:var(--paper);
  letter-spacing:2px;
}
.region-copy .eyebrow {
  font-size:7px;
  letter-spacing:1px;
}
.region-copy p {
  font-size:10px;
  margin:7px 0 12px;
  color:var(--paper);
}
.region-copy .metric {
  font-size:8px;
  grid-template-columns:minmax(85px,1fr) auto 17px;
  gap:4px;
}
.region-copy .gauge {
  min-width:82px;
  gap:1px;
}
.region-copy .gauge i {
  width:8px;
  height:8px;
}
.region-copy .metric b {
  font-size:8px;
}
.briefing-status {
  display:flex;
  justify-content:space-between;
  margin:12px 0 8px;
  font-size:8px;
  color:var(--muted);
}
.region-copy .command {
  font-size:8px;
  min-height:29px;
  padding:7px 8px;
  margin-top:5px;
}
.wire-feed {
  padding:6px 12px;
}
.wire-entry {
  display:grid;
  grid-template-columns:27px 1fr;
  gap:9px;
  width:100%;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--navy);
  padding:8px 0;
  text-align:left;
  font-size:9px;
  color:var(--paper);
}
.wire-entry:hover {
  color:var(--cyan);
}
.wire-entry time {
  color:var(--muted);
  font-size:8px;
}
.wire-entry small {
  display:block;
  font-size:7px;
  letter-spacing:.8px;
  margin-top:2px;
  color:var(--us);
}
.wire-panel>.command {
  font-size:8px;
  margin:3px 10px 10px;
  width:calc(100% - 20px);
  min-height:28px;
}
.map-operation-callout {
  position:absolute;
  z-index:12;
  width:min(285px,42%);
  transform:translate(-50%,calc(-100% - 18px));
  border:1px solid var(--paper);
  background:color-mix(in srgb,var(--bg) 95%,transparent);
  box-shadow:7px 7px 0 color-mix(in srgb,var(--bg) 60%,transparent);
  padding:11px;
}
.map-operation-callout:after {
  content:'';
  position:absolute;
  left:50%;
  bottom:-9px;
  width:16px;
  height:16px;
  border-right:1px solid var(--paper);
  border-bottom:1px solid var(--paper);
  background:var(--bg);
  transform:translateX(-50%) rotate(45deg);
}
.map-callout-close {
  position:absolute;
  top:5px;
  right:6px;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:18px;
  line-height:1;
}
.map-callout-operation {
  position:relative;
  z-index:1;
  margin-top:9px;
  border-top:1px solid var(--line);
  padding-top:8px;
}
.map-callout-operation>button {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:9px;
  width:100%;
  border:0;
  background:transparent;
  padding:0;
  color:var(--paper);
  text-align:left;
}
.map-callout-operation>button strong {
  font-size:10px;
  font-weight:400;
}
.map-callout-operation>button span {
  font-size:7px;
  color:var(--muted);
  white-space:nowrap;
}
.map-callout-agents {
  display:flex;
  gap:6px;
  margin-top:8px;
  overflow:hidden;
}
.map-callout-agents>span {
  display:grid;
  width:42px;
  gap:2px;
}
.map-callout-agents img {
  width:42px;
  height:48px;
  object-fit:cover;
  border:1px solid var(--line);
  filter:sepia(.2);
}
.map-callout-agents small {
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:6px;
  color:var(--muted);
  white-space:nowrap;
}

.map-toolbar {font-family:var(--display);font-size:18px;font-weight:700;letter-spacing:1.5px;padding:10px 14px;border-bottom-color:var(--line);}
.map-toolbar small {font-family:var(--mono);font-size:9px;letter-spacing:.5px;}
.map-regions button,.segmented button {font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.5px;min-height:30px;border-color:var(--line);padding:6px 8px;}
.map-regions button.selected,.segmented button.selected {background:#b33e5126;border-color:var(--red);color:var(--paper);}
.map-grid path {stroke:var(--line-soft);opacity:.5;}
.map-legend {border-top-color:var(--line);font-size:9px;letter-spacing:.4px;gap:10px;}
.map-navigation button {border-color:var(--line);background:var(--bg);}
.map-navigation button:hover {border-color:var(--paper);}
.map-operation-callout {border-color:var(--line);border-top:2px solid var(--red);background:var(--bg);box-shadow:0 8px 24px #0006;}
.map-operation-callout:after {border-color:var(--line);}
.map-callout-operation>button strong {font-size:12px;}
.map-callout-operation>button span {font-size:10px;}
.map-callout-agents small {font-size:9px;}
