.map-main{width:min(1280px,calc(100% - 48px));margin:0 auto;padding:42px 0 70px}.map-hero{display:flex;align-items:end;justify-content:space-between;gap:25px;padding-bottom:27px;border-bottom:1px solid #24698e}.map-hero h1{font-size:clamp(3.2rem,7vw,6.3rem);line-height:.82}.map-hero p:not(.eyebrow){margin:14px 0 0;color:#b6c7e2;font-size:1.05rem}.map-status{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #a78d2d;color:#f2d655;font:800 .75rem 'Rajdhani';white-space:nowrap}.map-status i{width:8px;height:8px;border-radius:50%;background:#f2d655;box-shadow:0 0 9px #f2d655}.map-workspace{display:grid;grid-template-columns:210px minmax(0,1fr) 245px;gap:14px;margin-top:22px}.map-controls,.map-info{padding:15px;border:1px solid #294d74;background:#09152f}.map-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 9px;border:1px solid #316886;background:#071026;color:var(--cyan)}.map-search input{width:100%;border:0;outline:0;background:transparent;color:#fff;font:600 .9rem 'Rajdhani'}.map-controls>.eyebrow{margin:20px 0 9px;font-size:.68rem}.map-layers{display:grid;gap:6px}.map-layers button{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #2c496c;background:#0e1b38;color:#b8cbe7;font:700 .78rem 'Rajdhani';text-align:left}.map-layers button svg{width:17px;color:#74b9e2}.map-layers button.selected{border-color:var(--cyan);background:#063c50;color:#fff}.map-layers button.selected svg{color:#6affdd}.map-reset{margin-top:20px}.map-canvas{position:relative;min-height:510px;overflow:hidden;border:1px solid #31547d;background:radial-gradient(circle at 50% 42%,#26236e 0,transparent 40%),linear-gradient(145deg,#081b3a,#050a1e 70%);box-shadow:inset 0 0 60px #020611}.map-grid{position:absolute;inset:-50%;opacity:.35;background:linear-gradient(30deg,transparent 48%,#49d7e51c 49%,#49d7e51c 50%,transparent 51%),linear-gradient(150deg,transparent 48%,#49d7e51c 49%,#49d7e51c 50%,transparent 51%);background-size:100px 100px;transform:rotate(6deg)}.map-canvas:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 22%,#02081788 75%);pointer-events:none}.map-signal{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:9px;width:min(360px,80%);padding:25px;text-align:center;border:1px solid #3b77a0;background:#07132ce8;box-shadow:0 0 35px #27cbe933}.map-signal svg{width:38px;color:var(--cyan);animation:mapPulse 2.8s ease-in-out infinite}.map-signal strong{color:#fff;font:800 1.25rem 'Barlow Condensed'}.map-signal span{color:#a9bddb;font-size:.84rem;line-height:1.35}.map-info>svg{width:30px;color:var(--yellow);margin-bottom:20px}.map-info h2{font-size:1.75rem;color:#fff}.map-info p:not(.eyebrow){color:#a9bad6;line-height:1.4;font-size:.9rem}.map-info .button{width:100%;margin-top:14px}@keyframes mapPulse{50%{transform:scale(1.12);filter:drop-shadow(0 0 8px var(--cyan))}}.map-page footer{max-width:none}@media(max-width:900px){.map-workspace{grid-template-columns:190px minmax(0,1fr)}.map-info{grid-column:1/-1}.map-canvas{min-height:430px}}@media(max-width:600px){.map-main{width:min(100% - 28px,1280px);padding-top:25px}.map-hero{align-items:flex-start;flex-direction:column}.map-status{white-space:normal}.map-workspace{display:flex;flex-direction:column}.map-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-search,.map-controls>.eyebrow{grid-column:1/-1}.map-controls>.eyebrow{margin:7px 0 0}.map-layers{grid-column:1/-1;grid-template-columns:1fr 1fr}.map-reset{margin:0}.map-canvas{min-height:390px}.map-info{grid-column:auto}}
.map-external{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}.map-external svg{width:16px}
.map-viewport{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:#06142a}.map-viewport:after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#0a2c4a22,#06102544);pointer-events:none}.map-viewport img{width:min(100%,720px);height:auto;max-height:100%;object-fit:contain;filter:saturate(1.05) contrast(1.04);transform-origin:center;transition:transform .25s}.map-zoom{position:absolute;z-index:4;right:14px;top:14px;display:flex;align-items:center;gap:4px;padding:4px;border:1px solid #3b5d82;background:#07132ce8}.map-zoom button{width:30px;height:28px;border:1px solid #3d6388;background:#0d2342;color:#e8f6ff;font:800 1.1rem Rajdhani}.map-zoom span{min-width:45px;color:#9eeeff;font:700 .68rem Rajdhani;text-align:center}.map-canvas .map-signal{background:#07132ce0}.map-canvas .map-signal strong,.map-canvas .map-signal span,.map-canvas .map-signal a{position:relative}
.map-viewport{cursor:grab;touch-action:none}.map-viewport.is-dragging{cursor:grabbing}.map-viewport img{user-select:none;-webkit-user-drag:none;transition:transform .12s}
.map-surface{position:relative;width:min(100%,720px);aspect-ratio:1/1;transform-origin:center;will-change:transform}.map-surface #map-image{display:block;width:100%;height:100%;max-height:none;object-fit:contain;transform:none}.map-surface .map-markers{inset:0;transform:none}

/* Full-viewport map workspace: the map gets the space, the filters stay docked. */
.map-page{overflow:hidden;background:#080b10}
.map-page .map-main{width:100%;max-width:none;margin:0;padding:0}
.map-page .map-hero{height:76px;padding:14px 22px;border-bottom:1px solid #263746;background:#11151a;align-items:center}
.map-page .map-hero h1{font-size:2.1rem;line-height:1}
.map-page .map-hero p:not(.eyebrow){display:none}
.map-page .map-hero .eyebrow{margin:0 0 4px;font-size:.65rem}
.map-page .map-status{font-size:.68rem}
.map-page .map-workspace{grid-template-columns:270px minmax(0,1fr);gap:0;margin:0;height:calc(100vh - 76px);min-height:0}
.map-page .map-controls{min-height:0;overflow-y:auto;overflow-x:hidden;border:0;border-right:1px solid #30363d;border-radius:0;padding:16px 12px;background:#202327}
.map-page .map-info{display:none}
.map-page .map-canvas{min-height:0;height:100%;border:0;border-radius:0;background:#2b2e33;box-shadow:none}
.map-page .map-grid,.map-page .map-canvas:after{display:none}
.map-page .map-viewport{background:#2b2e33}
.map-page .map-surface{width:min(100%,1800px);min-width:640px}
.map-page .map-surface #map-image{filter:none}
.map-layer-group{margin:0 0 13px;border-bottom:1px solid #3a3e43;padding-bottom:10px}
.map-group-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:8px 6px;border:0;background:transparent;color:#f4f5f6;text-align:left;cursor:pointer}
.map-group-toggle.selected{background:#31d96d;color:#07110a}.map-group-toggle.selected svg{color:#07110a}
.map-group-toggle svg{width:18px;color:#ffe51c}.map-group-toggle strong{font:800 1.05rem 'Rajdhani';flex:1}.map-group-toggle .chevron{font-size:1.15rem;color:#fff;transition:transform .2s}.map-layer-group.collapsed .chevron{transform:rotate(180deg)}
.map-group-toggle .chevron{margin-right:38px}
.map-filter-list{display:grid;gap:2px}.map-filter-list button{display:flex;align-items:center;gap:9px;width:100%;min-height:33px;padding:6px 8px;border:0;background:transparent;color:#e2e5e8;font:700 .83rem 'Rajdhani';text-align:left;cursor:pointer}.map-filter-list button svg{width:18px;height:18px;color:#a9b1b9}.map-filter-list button:hover{background:#30353b}.map-filter-list button.selected{background:#31d96d;color:#07110a}.map-filter-list button.selected svg{color:#07110a}.map-page .map-search{height:38px;border:1px solid #555d66;background:#2b3035}.map-page .map-search input{color:#fff}.map-page .map-controls>.eyebrow{color:#d8dde1;margin:7px 5px 10px}.map-page .map-reset{color:#ffe51c;margin:8px 5px}
.map-filter-list button,.map-group-toggle{position:relative}.map-filter-list button::before,.map-group-toggle::before{content:'';width:12px;height:12px;position:absolute;right:25px;top:50%;margin-top:-6px;border-radius:50%;background:#c5cbd0;z-index:1}.map-filter-list button::after,.map-group-toggle::after{content:'';width:28px;height:16px;position:absolute;right:8px;top:50%;margin-top:-8px;border-radius:999px;background:#687078;box-shadow:inset 0 0 0 1px #8b949b}.map-filter-list button.selected::before,.map-group-toggle.selected::before{background:#fff;transform:translateX(9px)}.map-filter-list button.selected::after,.map-group-toggle.selected::after{background:#ffe51c;box-shadow:inset 0 0 0 1px #fff28b}
.map-page .map-zoom{top:16px;right:16px;background:#202327;border-color:#66717c}.map-page footer{display:none}
@media(max-width:760px){.map-page{overflow:auto}.map-page .map-hero{height:64px;padding:10px 14px}.map-page .map-hero h1{font-size:1.6rem}.map-page .map-workspace{height:calc(100vh - 64px);grid-template-columns:190px minmax(0,1fr)}.map-page .map-controls{padding:12px 8px}.map-page .map-surface{min-width:520px}.map-page .map-filter-list button{font-size:.72rem;min-height:30px;padding:5px}.map-page .map-group-toggle strong{font-size:.88rem}}
.map-page .map-viewport:after{background:transparent}
.map-page .map-surface #map-image{filter:saturate(1.2) contrast(1.08) brightness(1.04);image-rendering:auto}
.map-page .map-surface{overflow:hidden;background:#2b2e33}
#map-tile-layer{position:absolute;inset:0;display:grid;grid-template-columns:repeat(16,1fr);grid-template-rows:repeat(16,1fr);background:#2b2e33}
#map-tile-layer img{display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;filter:saturate(1.2) contrast(1.08) brightness(1.04);user-select:none;-webkit-user-drag:none}

#map-tile-layer.hires-grid{display:grid!important;grid-template-columns:repeat(2,1fr)!important;grid-template-rows:repeat(2,1fr)!important}
#map-tile-layer.hires-grid img{width:100%;height:100%;object-fit:cover}

/* Leaflet map engine: native tile culling keeps the map sharp and fast. */
.leaflet-map{position:absolute;inset:0;background:#2b2e33;overflow:hidden}
.leaflet-container{background:#2b2e33;color:#fff;font-family:'Rajdhani',sans-serif}
.leaflet-tile{image-rendering:auto}
.atlas-leaflet-marker{position:absolute;display:flex;align-items:center;justify-content:center;width:30px!important;height:30px!important;background:transparent;border:0;filter:drop-shadow(0 2px 2px #000);pointer-events:auto}
.atlas-leaflet-marker img{display:block;width:28px;height:28px;object-fit:contain;filter:saturate(1.25) contrast(1.1)}
.atlas-marker-count{position:absolute;left:50%;top:-9px;z-index:3;min-width:17px;height:17px;padding:0 3px;border:2px solid #111;border-radius:999px;background:#ffe51c;color:#111;font:900 12px/13px 'Rajdhani',sans-serif;text-align:center;transform:translateX(-50%);box-shadow:0 1px 3px #000}
.atlas-marker-count.high{background:#ff3b30;color:#fff;border-color:#111}
.atlas-leaflet-marker svg{width:25px;height:25px;color:#ffe51c;stroke-width:2.5}
.atlas-leaflet-marker span{display:none;position:absolute;left:34px;white-space:nowrap;padding:3px 6px;border:1px solid #d2b82d;background:#07132ced;color:#fff;font:700 .72rem Rajdhani}
.atlas-leaflet-marker:hover{z-index:1000!important;transform:scale(1.12)}
.atlas-leaflet-marker:hover span{display:block}
.atlas-place-label{z-index:650!important;background:transparent;border:0;pointer-events:none;white-space:nowrap}
.atlas-place-label span{display:block;transform:translate(-50%,-50%);padding:2px 4px;color:#fff;background:#07111bd9;border:1px solid #ffe51c;border-radius:3px;font:900 15px/1 'Rajdhani',sans-serif;letter-spacing:.02em;text-transform:uppercase;text-shadow:0 2px 0 #000,0 0 4px #000;white-space:nowrap}
.leaflet-control-zoom{display:none}
.map-draw-tools{position:absolute;z-index:700;right:12px;top:78px;display:grid;gap:2px;width:34px;padding:2px;background:#ffe51c;border-radius:4px;box-shadow:0 2px 8px #0008}
.map-draw-tools button{height:31px;border:0;background:#ffe51c;color:#101318;font:900 16px/1 'Rajdhani',sans-serif;cursor:pointer}.map-draw-tools button:hover,.map-draw-tools button.active{background:#111923;color:#ffe51c}.map-draw-tools button:last-child{font-size:10px;border-top:1px solid #8b7800}.atlas-drawing-text{background:transparent;border:0;white-space:nowrap;pointer-events:none}.atlas-drawing-text span{display:block;transform:translate(-50%,-50%);color:#fff;font:900 16px/1 Rajdhani,sans-serif;text-shadow:0 2px 0 #000,0 0 5px #000}
