.map-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:24px 0 12px}.map-filters label{display:flex;flex:1;min-width:135px;flex-direction:column;gap:7px;font-size:12px;color:#a8b9ca}.map-filters label:first-child{flex:2;min-width:200px}.map-filters input,.map-filters select{width:100%;border:1px solid #31414f;background:#101d29;color:#e8eef4;padding:11px 12px;border-radius:8px;font:inherit;font-size:14px}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.map-geography{border:1px solid #30404d;border-radius:14px;background:#0b1a27;overflow:hidden;position:sticky;top:18px}.map-controls{display:flex;gap:5px;flex-wrap:wrap;padding:12px;border-bottom:1px solid #30404d}.map-controls button{cursor:pointer;border:1px solid #425967;border-radius:6px;background:#1b3040;color:#eaf0f5;min-width:34px;min-height:34px;padding:5px 10px;font:inherit;font-size:12px}.map-controls button:hover{background:#294453}.map-canvas{aspect-ratio:5/3;min-height:350px;position:relative;overflow:hidden;background:#0c1d2b}.map-canvas svg{width:100%;height:100%;position:absolute;inset:0}.map-grid line{stroke:#7898ac;stroke-width:.5;opacity:.2}.map-grid text{fill:#97aebe;font-size:11px;opacity:.8}.map-marker{position:absolute;transform:translate(-50%,-50%);height:26px;width:26px;border:1px dashed #76e3cc;border-radius:50%;background:#122e30bb;color:#d6fff4;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:pointer;padding:0;z-index:1}.map-marker span{width:8px;height:8px;background:#68d9c2;border-radius:50%;box-shadow:0 0 0 3px #68d9c22a}.map-marker.unverified{border-color:#f6c876;background:#30291abf;color:#ffe0a5}.map-marker.unverified span{background:#f6c876;box-shadow:0 0 0 3px #f6c87620}.map-marker:hover,.map-marker:focus-visible,.map-marker.is-selected{z-index:3;outline:3px solid #fff;outline-offset:3px;background:#3f5363}.map-caption{display:grid;gap:7px;padding:13px;font-size:11px;line-height:1.6;color:#acbfcd;border-top:1px solid #30404d}.map-caption span:first-child{color:#ebcc93}.map-detail{background:#13212e;border:1px solid #30404d;border-radius:14px;padding:22px;max-height:760px;overflow:auto;scrollbar-color:#3e5b6c transparent;overflow-wrap:anywhere}.map-detail h2{font-size:23px;line-height:1.3;margin:12px 0}.map-detail h3{font-size:14px;margin:25px 0 10px;color:#e6edf5}.map-detail p{font-size:13px;line-height:1.7;color:#aec1d0}.map-detail time{color:#e8d1a9}.map-detail .inline-links{margin:9px 0}.map-directory{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}.map-directory h2{font-size:20px;margin:0 0 12px}.map-location{width:100%;display:flex;justify-content:space-between;gap:15px;align-items:center;text-align:left;padding:16px;margin:0 0 8px;border-radius:9px;border:1px solid #2d3f4c;background:#101e2b;color:#e8eef6;font:inherit;cursor:pointer}.map-location:hover,.map-location.is-selected{border-color:#8baec2;background:#193244}.map-location strong{font-size:13px}.map-location small{display:block;font-size:11px;line-height:1.5;color:#9eb4c5;margin-top:5px}.map-location>span:first-child{flex:1}.map-location>span:last-child{max-width:42%;text-align:right}.map-empty{padding:20px;border:1px dashed #425866;color:#a2b8c7;border-radius:8px}.map-filters :focus-visible,.map-controls :focus-visible,.map-location:focus-visible{outline:3px solid #7ed9e1;outline-offset:3px}@media(max-width:1100px){.map-workspace{grid-template-columns:minmax(0,1fr) 290px}.map-directory{grid-template-columns:1fr}.map-canvas{min-height:340px}}@media(max-width:800px){.map-workspace{grid-template-columns:1fr}.map-geography{position:static}.map-detail{max-height:none}.map-canvas{min-height:300px}.map-filters label{min-width:calc(50% - 12px)}.map-location{padding:12px}.map-controls button{min-height:40px}.map-marker{height:30px;width:30px}.map-directory{gap:28px}}
/* Avoid aspect-ratio/min-height forcing a 500px intrinsic width on phones. */
.map-workspace>*,.map-directory>*{min-width:0}.map-canvas{width:100%;aspect-ratio:auto;height:390px;min-height:0}@media(max-width:800px){.map-canvas{height:300px;min-height:0}.map-location{overflow-wrap:anywhere}}
.map-location>span{min-width:0}.map-location .badge{white-space:normal;max-width:100%;text-align:right}
