.tactical-map{display:grid;gap:10px;color:var(--text, #e8ebe3);font:13px/1.5 var(--ui, "Segoe UI", Tahoma, sans-serif)}.tactical-map-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.tactical-map-selector,.tactical-map-skins,.tactical-map-zoom,.tactical-map-filters{display:flex;gap:6px;flex-wrap:wrap}.tactical-map-toolbar button{background:var(--surface, #191f18);border:1px solid var(--line, #3a4434);color:var(--muted, #b3bcac);padding:6px 10px;font:11px Roboto Mono,Consolas,monospace;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.tactical-map-toolbar button.is-active{color:var(--bg, #111611);background:var(--accent, #b3d087);border-color:var(--accent, #b3d087)}.tactical-map-toolbar button:focus-visible{outline:3px solid var(--accent, #b3d087);outline-offset:2px}.tactical-map-fit,.tactical-map-centre-mission{display:inline-flex;align-items:center;gap:5px}.tactical-map-fit svg{color:var(--muted, #b3bcac)}.tactical-map-layers{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted, #b3bcac);font:11px Roboto Mono,Consolas,monospace;text-transform:uppercase;letter-spacing:.04em}.tactical-map-layers label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.tactical-map-canvas-wrap{position:relative;width:100%;max-width:min(100%,70vh);aspect-ratio:1;min-height:220px;background:var(--bg, #111611);border:1px solid var(--line, #3a4434);overflow:hidden;touch-action:none}.tactical-map-canvas-wrap:focus-visible{outline:2px solid var(--accent, #b3d087);outline-offset:-2px}.tactical-map-canvas-wrap canvas{display:block;cursor:grab;touch-action:none}.tactical-map-canvas-wrap canvas:active{cursor:grabbing}.tactical-map-canvas-wrap.filter-flir canvas{filter:grayscale(1) contrast(1.35) brightness(1.15) sepia(.25) hue-rotate(180deg)}.tactical-map-canvas-wrap.filter-nvg canvas{filter:grayscale(1) brightness(1.3) contrast(1.2) sepia(1) hue-rotate(70deg) saturate(4)}.tactical-map-cursor{position:absolute;left:8px;bottom:8px;padding:4px 8px;background:#0c0f0bbf;border:1px solid var(--line, #3a4434);color:var(--accent, #b3d087);font:11px Roboto Mono,Consolas,monospace;pointer-events:none}.tactical-map-mission-readout{position:absolute;right:8px;bottom:8px;display:grid;gap:2px;padding:4px 8px;background:#0c0f0bbf;border:1px solid var(--line, #3a4434);color:#e0943c;font:11px Roboto Mono,Consolas,monospace;pointer-events:none;text-align:right}.tactical-map-menu-overlay{position:fixed;inset:0;z-index:20;background:transparent}.tactical-map-context-menu{position:absolute;z-index:21;display:grid;min-width:180px;background:var(--surface, #191f18);border:1px solid var(--line, #3a4434);box-shadow:0 6px 18px #0006}.tactical-map-context-menu button{display:block;width:100%;padding:8px 12px;background:none;border:0;border-bottom:1px solid var(--line, #3a4434);color:var(--text, #e8ebe3);font:12px var(--ui, "Segoe UI", Tahoma, sans-serif);text-align:left;cursor:pointer}.tactical-map-context-menu button:last-child{border-bottom:0}.tactical-map-context-menu button:hover,.tactical-map-context-menu button:focus-visible{background:var(--accent, #b3d087);color:var(--bg, #111611);outline:none}.tactical-map-grid-explanation,.tactical-map-provenance,.tactical-map-fire-instructions{margin:0;color:var(--muted, #b3bcac);font-size:11px}@media(max-width:480px){.tactical-map-toolbar{flex-direction:column;align-items:flex-start}}.tactical-map-canvas-wrap.is-split canvas.tm-overlay{position:absolute;left:0;top:0}.tactical-map-canvas-wrap.is-split canvas.tm-base{pointer-events:none}:root{--hajin-enhanced-saturation: .85}.tactical-map-canvas-wrap.is-split.skin-enhanced.filter-none canvas.tm-base{filter:saturate(var(--hajin-enhanced-saturation, .85))}.tactical-map-canvas-wrap.is-split.filter-flir canvas.tm-overlay,.tactical-map-canvas-wrap.is-split.filter-nvg canvas.tm-overlay{filter:none}.tactical-map-canvas-wrap.is-split.filter-nvg:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 2px,#00120029 2px 3px),radial-gradient(ellipse at center,#0000 58%,#000e006b)}.tactical-map-canvas-wrap.is-split .tactical-map-cursor{z-index:3;bottom:34px}.tactical-map-canvas-wrap.is-split.is-external .tactical-map-cursor{bottom:8px}.tactical-map--fill .tactical-map-canvas-wrap{max-width:none;aspect-ratio:auto;height:var(--tm-height, clamp(420px, 72vh, 820px));min-height:320px;border-radius:8px}.tactical-map--fill .tactical-map-toolbar button{min-height:40px}.tactical-map-layers-btn{min-width:96px}.tactical-map-compass{position:absolute;left:10px;top:10px;z-index:3;color:var(--accent, #b3d087);pointer-events:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}.tactical-map-attrib{position:absolute;left:0;right:0;bottom:0;z-index:3;margin:0;padding:5px 10px 6px;background:#0a0b08d1;border-top:1px solid rgba(196,204,168,.18);color:#cfd6bb;font:11px/1.35 var(--ui, "Segoe UI", Tahoma, sans-serif);pointer-events:none}.tactical-map-tip{position:absolute;z-index:4;display:grid;gap:2px;max-width:230px;padding:7px 10px;background:#0a0b08f2;border:1px solid var(--line, #3a4434);border-radius:6px;color:var(--text, #e8ebe3);font:12px/1.35 var(--ui, "Segoe UI", Tahoma, sans-serif);pointer-events:none}.tactical-map-tip strong{font-weight:700}.tactical-map-tip span{color:var(--muted, #b3bcac)}.tactical-map-tip .tactical-map-tip__gloss{color:var(--ew-text-muted, #a7b09f)}.tactical-map-tip em{color:var(--muted, #b3bcac);font-size:11px;font-style:normal;opacity:.85}.tactical-map-tip__threat{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--c, #fff);color:#0b0c08;font:800 10px/1 var(--ui, "Segoe UI", Tahoma, sans-serif)}.tactical-map-attrib--below{position:static;border:1px solid var(--line, #3a4434);border-top:0;border-radius:0 0 8px 8px;background:#0a0b08e6;pointer-events:auto}.mm-sidebar,.mm-sheet{color:var(--ew-text, #e8ebe3);font:13px/1.4 var(--ew-font-body, "Segoe UI", Tahoma, sans-serif);background:var(--ew-surface-overlay, #14170f)}.mm-sidebar{position:absolute;inset:0;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--ew-border-strong, #3a4434);border-radius:8px;animation:mm-in .22s ease both}@keyframes mm-in{0%{opacity:0}to{opacity:1}}.mm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mm-head{display:flex;gap:8px;align-items:center;padding:8px;border-bottom:1px solid var(--ew-border, #2a3225)}.mm-treatment{display:flex;flex:1;min-width:0;gap:4px}.mm-treatment button{flex:1;min-height:36px;padding:4px 6px;border:1px solid var(--ew-border-strong, #3a4434);border-radius:6px;background:transparent;color:var(--ew-text-muted, #b3bcac);font:700 11px/1 var(--ew-font-mono, "Roboto Mono", Consolas, monospace);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.mm-treatment button.is-active{color:#0d1206;background:var(--ew-primary-hover, #b3d087);border-color:var(--ew-primary-hover, #b3d087)}.mm-basemap{padding:8px 8px 0}.mm-basemap__row{display:flex;gap:4px;align-items:center}.mm-basemap__label{flex:none;margin-right:4px;color:var(--ew-text-faint, #8a9484);font:700 10.5px/1.2 var(--ew-font-mono, "Roboto Mono", Consolas, monospace);letter-spacing:.09em;text-transform:uppercase}.mm-basemap__row button{flex:1;min-height:34px;padding:4px 6px;border:1px solid var(--ew-border-strong, #3a4434);border-radius:6px;background:transparent;color:var(--ew-text-muted, #b3bcac);font:700 11px/1 var(--ew-font-mono, "Roboto Mono", Consolas, monospace);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.mm-basemap__row button.is-active{color:#0d1206;background:var(--ew-primary-hover, #b3d087);border-color:var(--ew-primary-hover, #b3d087)}.mm-hint{margin:6px 0 0;padding:2px 0;border:0;background:none;color:var(--ew-primary-hover, #b3d087);font:12px/1.3 var(--ew-font-body, sans-serif);text-align:left;text-decoration:underline;cursor:pointer}.mm-collapse,.mm-chev{display:inline-grid;place-items:center;min-width:36px;min-height:36px;padding:0;border:1px solid var(--ew-border-strong, #3a4434);border-radius:6px;background:transparent;color:var(--ew-text, #e8ebe3);cursor:pointer}.mm-collapse svg{transform:scaleX(-1)}.mm-sidebar--rail .mm-collapse svg{transform:none}.mm-chev{min-width:28px;min-height:28px;border-color:transparent}.mm-chevron{transition:transform .18s ease}.mm-chevron.is-open{transform:rotate(90deg)}.mm-collapse .mm-chevron.is-open{transform:none}.mm-body{display:flex;flex:1;flex-direction:column;min-height:0}.mm-search{display:block;padding:8px 8px 0}.mm-search input{width:100%;min-height:38px;padding:6px 10px;border:1px solid var(--ew-border-strong, #3a4434);border-radius:6px;background:var(--ew-surface-sunken, #0c0f0b);color:var(--ew-text, #e8ebe3);font:inherit}.mm-bulk{display:flex;gap:6px;padding:8px}.mm-bulk button{flex:1;min-height:32px;border:1px solid var(--ew-border-strong, #3a4434);border-radius:6px;background:transparent;color:var(--ew-text-muted, #b3bcac);font:600 12px/1 var(--ew-font-body, sans-serif);cursor:pointer}.mm-scroll{flex:1;min-height:0;padding:0 8px 12px;overflow-y:auto;overscroll-behavior:contain}.mm-section__title{margin:14px 0 4px;color:var(--ew-text-faint, #8a9484);font:700 10.5px/1.2 var(--ew-font-mono, "Roboto Mono", Consolas, monospace);letter-spacing:.09em;text-transform:uppercase}.mm-group__head{display:grid;grid-template-columns:28px 20px 18px minmax(0,1fr) auto;gap:6px;align-items:center;min-height:34px}.mm-group.is-off .mm-glyph,.mm-group.is-off .mm-group__name{opacity:.5}.mm-glyph{color:var(--ew-primary-hover, #b3d087)}.mm-group__name{min-width:0;font-weight:600}.mm-group__name small{display:block;color:var(--ew-text-faint, #8a9484);font-size:11px;font-weight:400}.mm-count{color:var(--ew-text-muted, #b3bcac);font:600 12px/1 var(--ew-font-mono, "Roboto Mono", Consolas, monospace)}.mm-check{width:18px;height:18px;margin:0;accent-color:var(--ew-primary, #7fae3c);cursor:pointer}.mm-list{margin:0 0 6px;padding:0 0 0 28px;list-style:none}.mm-list[hidden],.mm-area__body[hidden]{display:none}.mm-list--nested{padding-left:0}.mm-item{display:flex;gap:8px;align-items:center;min-height:34px}.mm-item--area{display:block}.mm-item__row{display:flex;gap:4px;align-items:center}.mm-item--area .mm-item__row .mm-check{margin-right:4px}.mm-item__name{flex:1;min-width:0;padding:4px 6px;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.mm-item__name:hover{background:#93c34c1a}.mm-item__name span{display:block;overflow-wrap:anywhere}.mm-item__name small{display:block;color:var(--ew-text-faint, #8a9484);font-size:11px}.mm-item__name small.mm-gloss{color:var(--ew-text-muted, #a7b09f);overflow-wrap:anywhere}.mm-item.is-off .mm-item__name{opacity:.5}.mm-item.is-selected>.mm-item__name,.mm-item.is-selected>.mm-item__row .mm-item__name{background:#93c34c29;box-shadow:inset 0 0 0 1px var(--ew-primary, #7fae3c)}.mm-threat{display:inline-grid;place-items:center;width:14px;height:14px;margin-right:5px;border-radius:50%;background:var(--c, #fff);color:#12130f;font:800 9px/1 var(--ew-font-mono, monospace);vertical-align:-2px}.mm-area__body{padding:2px 0 6px 40px}.mm-area__band,.mm-area__lead{margin:2px 0 4px;color:var(--ew-text-muted, #b3bcac);font-size:12px}.mm-empty,.mm-note{margin:10px 0 0;color:var(--ew-text-muted, #b3bcac);font-size:12px}.mm-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:4px 0 8px;color:var(--ew-text-muted, #b3bcac);font-size:12px}.mm-legend__chip{display:inline-flex;gap:5px;align-items:center}.mm-legend__chip i{width:10px;height:10px;border-radius:50%}.mm-legend__rings{flex-basis:100%}.mm-base{display:flex;gap:8px;align-items:center;min-height:32px;cursor:pointer}.mm-sidebar button:focus-visible,.mm-sidebar input:focus-visible,.mm-sheet button:focus-visible,.mm-sheet input:focus-visible{outline:3px solid var(--ew-warm, #e8c547);outline-offset:1px}.mm-sidebar--rail{align-items:center;padding:6px 0}.mm-rail{display:flex;flex:1;flex-direction:column;gap:4px;width:100%;min-height:0;padding:8px 0 0;align-items:center;overflow-y:auto}.mm-rail__btn{display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ew-primary-hover, #b3d087);cursor:pointer}.mm-rail__btn:hover{background:#93c34c1f}.mm-rail__btn.is-off{color:var(--ew-text-faint, #8a9484);opacity:.45}.mm-rail__btn.is-mixed{border:1px dashed var(--ew-primary, #7fae3c)}.mm-sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;flex-direction:column;max-height:82%;border-top:1px solid var(--ew-border-strong, #3a4434);border-radius:12px 12px 0 0;box-shadow:0 -8px 24px #00000073}.mm-sheet__bar{display:flex;gap:8px;align-items:center;padding:6px 8px}.mm-sheet__handle{display:flex;flex:1;gap:10px;align-items:center;min-width:0;min-height:44px;padding:0 4px;border:0;background:transparent;color:inherit;font:700 12px/1.2 var(--ew-font-body, sans-serif);text-align:left;cursor:pointer}.mm-sheet__grip{flex:none;width:28px;height:4px;border-radius:2px;background:var(--ew-text-faint, #8a9484)}.mm-sheet__summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mm-sheet .mm-treatment{flex:none}.mm-sheet .mm-treatment button{flex:none;min-height:40px;padding:4px 8px;font-size:10.5px}.mm-sheet__body{display:flex;flex:1;flex-direction:column;min-height:0;max-height:min(56vh,420px);border-top:1px solid var(--ew-border, #2a3225)}.mm-sheet__body[hidden]{display:none}@media(max-width:480px){.tactical-map-canvas-wrap.is-split.is-external .tactical-map-cursor{bottom:58px}.tactical-map-attrib{font-size:10.5px}}@media(prefers-reduced-motion:reduce){.mm-sidebar{animation:none}.mm-chevron{transition:none}}@media(prefers-reduced-motion:reduce){.tactical-map-canvas-wrap.is-split.filter-nvg:after{background:radial-gradient(ellipse at center,#0000 58%,#000e006b)}}
