.emi-geographic-map{min-width:0;max-width:100%}.emi-map-toolbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:13px}.emi-map-heading{margin-right:auto;display:flex;flex-direction:column;gap:5px}.emi-map-heading>strong{font-size:13px;color:#d4e4f3}.emi-map-heading>span{font-size:10px;color:#7f98b5}.emi-map-toolbar>label{font-size:10px;color:#90a7c2;display:flex;align-items:center;gap:8px}.emi-map-toolbar select{min-height:35px;border-radius:5px;border:1px solid #344f6b;background:#15283f;padding:7px 10px;color:#c6ddf2;font-size:10px}.emi-map-toolbar>.btn{font-size:10px}.emi-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:14px;min-width:0}.emi-map-canvas-wrap{position:relative;min-width:0;border:1px solid #354760;border-radius:7px;overflow:hidden;background:#10243a}.emi-map-canvas{height:clamp(460px,68vh,830px);min-height:460px;width:100%;z-index:0;background:#162a3f;color:#b5c8da}.emi-map-legend{display:flex;gap:15px;flex-wrap:wrap;padding:10px 14px;font-size:9px;color:#93a6be;border-top:1px solid #35475e;background:#132438}.emi-map-legend .good{color:#77c5a0}.emi-map-legend .warning{color:#dfb77e}.emi-map-legend .danger{color:#f293a2}.emi-map-legend .neutral{color:#8ea3bb}.emi-geographic-map[data-map-style=navy] .leaflet-tile-pane .leaflet-tile{filter:var(--emi-map-navy-filter)}.emi-geographic-map[data-map-style=contrast] .leaflet-tile-pane{filter:grayscale(1) contrast(.82) brightness(.86)}.emi-geographic-map[data-map-style=standard] .leaflet-tile-pane{filter:none}.emi-map-canvas .leaflet-control-zoom a{background:#142940;color:#c6e2f7;border-color:#3a526e;font-size:19px}.emi-map-canvas .leaflet-control-zoom a:hover{background:#204663;color:#18BFEA}.emi-map-canvas .leaflet-bar{border:1px solid #54718c;box-shadow:0 2px 12px #00142433}.emi-map-canvas .leaflet-control-attribution{background:#102438e8;color:#aabdd0;font-size:9px;padding:4px 7px;line-height:1.5}.emi-map-canvas .leaflet-control-attribution a{color:#91cde6}.emi-map-canvas .leaflet-tooltip{background:#142b42;border-color:#446784;color:#cfdfed;font-size:10px;box-shadow:0 4px 16px #06102055}.emi-map-canvas .leaflet-tooltip-top:before{border-top-color:#446784}.emi-map-canvas .leaflet-popup-content-wrapper{border:1px solid #476985;border-radius:8px;background:#142a40;color:#d7e9f7}.emi-map-canvas .leaflet-popup-tip{background:#142a40}.emi-map-canvas .leaflet-popup-close-button{color:#a9c5db}.emi-map-marker-icon{background:transparent;border:0}.emi-leaflet-marker{width:34px;height:34px;position:relative;color:var(--marker-colour)}.emi-leaflet-marker>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#10253ef2;border:2px solid currentColor;box-shadow:0 0 0 5px #10293f66,0 3px 9px #06213970}.emi-leaflet-marker svg{width:23px;height:23px}.emi-leaflet-marker>b{position:absolute;left:42px;top:8px;color:#e5f1fc;background:#112940d9;border-radius:3px;padding:3px 5px;font-family:system-ui,sans-serif;font-size:9px;line-height:1.15;white-space:nowrap;text-shadow:0 1px 2px #021423;max-width:160px;overflow:hidden;text-overflow:ellipsis}.emi-leaflet-marker.is-cluster>span{font-size:14px;font-weight:650}.emi-map-popup-title{display:block;font-size:12px;margin-bottom:11px}.emi-map-popup-site{display:flex;flex-direction:column;gap:5px;border-top:1px solid #33516c;padding:10px 0}.emi-map-popup-site strong{font-size:11px;font-weight:600}.emi-map-popup-site small{font-size:9px;color:#87a3bf}.emi-map-status{font-size:10px}.emi-map-status.good{color:#75c79f}.emi-map-status.warning{color:#e3b57b}.emi-map-status.danger{color:#ee95a2}.emi-map-status.neutral{color:#96aabd}.emi-map-open{font-size:10px;padding:4px 0;background:transparent;color:#18BFEA;text-align:left}.emi-map-register{padding:0 13px 13px;background:#15253b;border:1px solid #2e4159;border-radius:7px;max-height:calc(68vh + 43px);overflow:auto;min-width:0}.emi-map-register h3{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#829ab7;margin:18px 0 9px;font-weight:600}.emi-map-site-row{display:grid;grid-template-columns:minmax(0,1fr) 25px;gap:5px;padding:9px 0;border-bottom:1px solid #293c54}.emi-map-site{border:0;border-left:2px solid #788da6;padding:2px 0 2px 9px;background:transparent;color:#9db0c5;text-align:left;min-width:0}.emi-map-site.good{border-left-color:#63be98}.emi-map-site.warning{border-left-color:#d7ab6d}.emi-map-site.danger{border-left-color:#e78696}.emi-map-site>strong{display:block;font-size:10px;color:#d2e3f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emi-map-site>span{display:block;font-size:9px;color:#829cb7;margin-top:5px}.emi-map-site:hover>strong{color:#18BFEA}.emi-map-site-open{background:transparent;color:#75b6d0;font-size:14px;padding:0}.emi-map-site-row>small{grid-column:1/-1;font-size:8px;color:#738ba6;margin-left:10px;line-height:1.5}.emi-map-empty{font-size:9px;color:#758ba6;line-height:1.5}.emi-map-footnote{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:9px;color:#728fae;margin-top:12px;line-height:1.6}.emi-map-footnote a{color:#87adc6;text-decoration:none}.emi-map-network{padding:10px 13px;margin-bottom:12px;background:#302c27;border:1px solid #6c5940;border-radius:6px;color:#d8ba8c;font-size:10px;line-height:1.6;display:flex;gap:12px;justify-content:space-between;align-items:center}.emi-map-network[hidden]{display:none}.emi-map-network.is-disconnected{background:#253347;border-color:#465975;color:#a7b8ce}.emi-map-network .btn{font-size:9px;flex-shrink:0}.emi-map-error{display:grid;place-items:center;height:100%;padding:25px;font-size:13px;text-align:center}@media(max-width:1000px){.emi-map-layout{grid-template-columns:1fr}.emi-map-register{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;max-height:none}.emi-map-register h3,.emi-map-register .emi-map-empty{grid-column:1/-1}.emi-map-canvas{height:560px;min-height:400px}}@media(max-width:600px){.emi-map-toolbar{gap:9px}.emi-map-heading{width:100%}.emi-map-toolbar>label{margin-right:auto}.emi-map-canvas{height:470px;min-height:360px}.emi-map-register{grid-template-columns:1fr}.emi-map-legend{font-size:8px;gap:10px}.emi-map-network{flex-direction:column;align-items:flex-start}.emi-leaflet-marker>b{max-width:120px}}
.emi-geographic-map{padding:16px;box-sizing:border-box;background:#18243a;border-radius:7px}.emi-map-heading{margin:0 0 15px;padding:0;gap:6px}.emi-map-heading>strong{font-size:16px;line-height:1.35}.emi-map-heading>span{font-size:11px;line-height:1.6}.emi-map-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 8px}.emi-map-toolbar>label{gap:8px;flex-shrink:0}.emi-map-toolbar select,.emi-map-toolbar input.emi-search,.emi-map-toolbar .btn{height:36px;min-height:36px;box-sizing:border-box;padding:8px 11px;font-size:11px;line-height:18px;border-radius:5px}.emi-map-toolbar select{max-width:210px}.emi-map-toolbar input.emi-search{flex:1;min-width:200px;width:auto;max-width:480px;background:#101a2d;border:1px solid #354b64}.emi-map-toolbar .btn{white-space:nowrap}.emi-map-result{font-size:10px;color:#8da4bd;margin:0 0 13px;line-height:1.5}.emi-geographic-map[data-map-style=system-dark] .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.66) contrast(.88)}.emi-map-legend .limited,.emi-map-status.limited{color:#c5a4f6}.emi-map-site.limited{border-left-color:#b694ec}.emi-geographic-map.is-fullscreen,.emi-geographic-map:fullscreen{width:100%;height:100%;max-width:none;border-radius:0;background:#101a2d;padding:18px;overflow:auto;display:flex;flex-direction:column;overscroll-behavior:contain}.emi-geographic-map.is-fullscreen-overlay{position:fixed;inset:0;width:100vw;height:100dvh;z-index:10000}.emi-geographic-map.is-fullscreen .emi-map-layout{flex:1;min-height:360px;grid-template-columns:minmax(0,1fr) 245px}.emi-geographic-map.is-fullscreen .emi-map-canvas-wrap{display:flex;flex-direction:column;min-height:0}.emi-geographic-map.is-fullscreen .emi-map-canvas{flex:1;height:auto;min-height:320px}.emi-geographic-map.is-fullscreen .emi-map-register{max-height:none;min-height:0}.emi-geographic-map.is-fullscreen .emi-map-heading,.emi-geographic-map.is-fullscreen .emi-map-toolbar,.emi-geographic-map.is-fullscreen .emi-map-result,.emi-geographic-map.is-fullscreen .emi-map-network,.emi-geographic-map.is-fullscreen .emi-map-footnote{flex-shrink:0}
@media(max-width:800px){.emi-map-toolbar{gap:8px}.emi-map-toolbar input.emi-search{min-width:0;max-width:none;flex-basis:100%;order:3}.emi-map-toolbar>label{flex:1;min-width:0}.emi-map-toolbar select{width:100%;min-width:0;max-width:none}.emi-map-toolbar .btn{flex:1}.emi-geographic-map.is-fullscreen .emi-map-layout{display:flex;flex-direction:column;min-height:500px}.emi-geographic-map.is-fullscreen .emi-map-canvas-wrap{flex:1;min-height:320px}.emi-geographic-map.is-fullscreen .emi-map-register{max-height:180px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-shrink:0}.emi-geographic-map.is-fullscreen .emi-map-register h3,.emi-geographic-map.is-fullscreen .emi-map-register .emi-map-empty{grid-column:1/-1}}
@media(max-width:480px){.emi-geographic-map,.emi-geographic-map.is-fullscreen{padding:12px}.emi-map-heading>strong{font-size:15px}.emi-map-heading>span{font-size:10px}.emi-map-toolbar>label{flex-basis:100%}.emi-map-toolbar>label>span{width:48px;flex-shrink:0}.emi-map-toolbar select{flex:1}.emi-map-toolbar .btn{font-size:10px;padding:8px}.emi-geographic-map.is-fullscreen .emi-map-register{grid-template-columns:1fr;max-height:160px}.emi-map-result{font-size:9px}}
.emi-geographic-map{background:var(--surface,#18243a)}.emi-map-heading>strong{color:var(--text,#d4e4f3)}.emi-map-heading>span,.emi-map-result,.emi-map-footnote{color:var(--muted,#7f98b5)}.emi-map-toolbar>label{color:var(--muted,#90a7c2)}.emi-map-toolbar select,.emi-map-toolbar input.emi-search{background:var(--bg,#101a2d);color:var(--text,#c6ddf2);border-color:var(--line,#344f6b)}.emi-map-register{background:var(--surface2,#15253b);border-color:var(--line,#2e4159)}.emi-map-register h3,.emi-map-site>span,.emi-map-empty{color:var(--muted,#829ab7)}.emi-map-site-row{border-color:var(--line,#293c54)}.emi-map-site>strong{color:var(--text,#d2e3f2)}.emi-map-site:hover>strong,.emi-map-site-open,.emi-map-footnote a{color:var(--accent,#18bfea)}.emi-geographic-map.is-fullscreen,.emi-geographic-map:fullscreen{background:var(--bg,#101a2d)}

/* Navy restores the original EMI palette while retaining real streets and labels. */
.emi-geographic-map[data-map-style=navy] .emi-map-canvas{background:#101a2d}.emi-geographic-map[data-map-style=navy] .emi-map-canvas-wrap{background:#101a2d;border-color:#354760}

/* Graphite keeps the reference's charcoal land and black water without tinting SCADA statuses. */
.emi-map-colour-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.emi-geographic-map[data-map-style=graphite] .leaflet-tile-pane .leaflet-tile{filter:var(--emi-map-graphite-filter)}
.emi-geographic-map[data-map-style=graphite] .emi-map-canvas{background:#141414}
.emi-geographic-map[data-map-style=graphite] .emi-map-canvas-wrap{background:#141414;border-color:var(--line,#354760)}
.emi-geographic-map[data-map-style=graphite] .emi-leaflet-marker>span{background:#202329f2;box-shadow:0 0 0 5px #28282866,0 3px 9px #0008}
.emi-geographic-map[data-map-style=graphite] .emi-leaflet-marker>b{background:#22262cd9}

/* Labels are a view preference: keep icons, state colours and hover details. */
.emi-geographic-map.is-labels-hidden .emi-leaflet-marker>b{display:none}

/* Fullscreen is the map canvas with its controls, rather than another page. */
.emi-geographic-map.is-fullscreen,.emi-geographic-map:fullscreen{padding:10px;overflow:hidden;gap:8px}
.emi-geographic-map.is-fullscreen :is(.emi-map-heading,.emi-map-register,.emi-map-result,.emi-map-footnote,.emi-map-legend),
.emi-geographic-map:fullscreen :is(.emi-map-heading,.emi-map-register,.emi-map-result,.emi-map-footnote,.emi-map-legend){display:none!important}
.emi-geographic-map.is-fullscreen .emi-map-toolbar,.emi-geographic-map:fullscreen .emi-map-toolbar{margin:0;gap:8px;flex-shrink:0}
.emi-geographic-map.is-fullscreen .emi-map-layout,.emi-geographic-map:fullscreen .emi-map-layout{display:flex;flex:1;min-height:0;min-width:0}
.emi-geographic-map.is-fullscreen .emi-map-canvas-wrap,.emi-geographic-map:fullscreen .emi-map-canvas-wrap{display:flex;flex:1;min-height:0;min-width:0}
.emi-geographic-map.is-fullscreen .emi-map-canvas,.emi-geographic-map:fullscreen .emi-map-canvas{flex:1;height:auto;min-height:0;min-width:0}
.emi-geographic-map.is-fullscreen .emi-map-network,.emi-geographic-map:fullscreen .emi-map-network{margin:0;padding:6px 10px;flex-shrink:0}
@media(max-width:800px){.emi-geographic-map.is-fullscreen .emi-map-toolbar input.emi-search{order:0;flex-basis:180px}.emi-geographic-map.is-fullscreen .emi-map-toolbar>label{flex:0 1 auto}.emi-geographic-map.is-fullscreen .emi-map-toolbar .btn{flex:0 1 auto}.emi-geographic-map.is-fullscreen .emi-map-toolbar>label>span{display:none}}
@media(max-width:480px){.emi-geographic-map.is-fullscreen{padding:7px}.emi-geographic-map.is-fullscreen .emi-map-toolbar{gap:5px}.emi-geographic-map.is-fullscreen .emi-map-toolbar>label{flex-basis:calc(50% - 5px);flex-grow:1}.emi-geographic-map.is-fullscreen .emi-map-toolbar input.emi-search{flex-basis:100%;flex-grow:1}.emi-geographic-map.is-fullscreen .emi-map-toolbar .btn{flex:1;font-size:10px}}
