/* TVRP Enhanced interactive PUBLIC locations map — self-hosted, dependency-free. */
.explorer-page{background:#050b13;color:#f4fbff;padding-bottom:38px}
.explorer-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;padding-block:44px 27px}
.explorer-intro h1{font-size:clamp(38px,5vw,63px);letter-spacing:-.055em;line-height:1.04;margin:12px 0 13px;font-weight:900}
.explorer-intro h1 span{color:#4ddbf3}
.explorer-intro p{color:#a9c2d1;max-width:660px;font-size:14px;line-height:1.7;margin:0}
.explorer-intro-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;font-size:11px;white-space:nowrap}
.explorer-intro-side strong{color:#9beefa;letter-spacing:.14em}
.explorer-intro-side span{color:#7995a7}.explorer-intro-side a{font-weight:800;color:#f0c382;margin-top:7px}
.explorer-stats{display:flex;gap:18px;flex-wrap:wrap;margin-top:19px;color:#92aebd;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.explorer-stats span+span{border-left:1px solid #326072;padding-left:18px}.explorer-stats strong{color:#6ae7f5}
.explorer-shell{display:grid;grid-template-columns:minmax(294px,350px) minmax(0,1fr);gap:13px;width:min(1580px,calc(100% - 46px));margin:auto;align-items:stretch}
.explorer-sidebar,.explorer-map-panel{background:#081520;border:1px solid #204057;border-radius:12px;min-width:0;overflow:hidden}
.explorer-sidebar{display:flex;flex-direction:column;max-height:800px}
.explorer-sidebar-head{padding:22px 20px 13px;border-bottom:1px solid #204257}
.explorer-eyebrow{color:#67dcef;font-size:10px;letter-spacing:.17em;font-weight:850}
.explorer-sidebar h2{font-size:26px;letter-spacing:-.04em;margin:7px 0 17px}.explorer-sidebar h2 span{color:#4eddf2}
.explorer-search{display:flex;align-items:center;gap:8px;border:1px solid #416277;background:#07111b;border-radius:8px;padding:0 12px;min-height:43px}
.explorer-search:focus-within{border-color:#69ddf0;box-shadow:0 0 0 3px #43d2e91f}
.explorer-search span{color:#74a5ba;font-size:26px}.explorer-search input{border:none;outline:0;background:transparent;min-width:0;flex:1;color:#fff;font-size:12px;padding:10px 0}
.explorer-search input::placeholder{color:#7593a7}
.explorer-categories{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px}
.explorer-chip{background:#102331;color:#a0c2d3;border:1px solid #34556a;padding:7px 9px;border-radius:7px;font-size:10px;font-weight:800;cursor:pointer}
.explorer-chip:hover,.explorer-chip:focus-visible{border-color:#65d7e7;color:#fff}.explorer-chip[aria-pressed="true"]{background:#116a80;color:#fff;border-color:#4dcfe4}
.explorer-result-head{display:flex;align-items:center;justify-content:space-between;margin-top:15px;font-size:10px;color:#99b1bf;letter-spacing:.08em;text-transform:uppercase}
.explorer-result-head button{border:0;background:transparent;color:#5bd5e8;font-size:10px;font-weight:900;cursor:pointer;letter-spacing:.07em}
.explorer-list{overflow-y:auto;min-height:120px;flex:1;scrollbar-color:#2a5d71 transparent;scrollbar-width:thin}
.explorer-result{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid #182f3e;padding:11px 16px;background:transparent;text-align:left;cursor:pointer;color:#e9f5fa}
.explorer-result:hover,.explorer-result:focus-visible{background:#122e3f}.explorer-result.is-selected{background:#164053;box-shadow:inset 3px 0 #60d9e9}
.explorer-result-icon{display:grid;place-items:center;flex:0 0 35px;height:35px;border-radius:9px;background:#173748;border:1px solid #3a6c81;font-size:17px}
.explorer-result-title{font-size:12px;font-weight:820;line-height:1.25;display:block}
.explorer-result-meta{font-size:10px;color:#83a5b6;margin-top:4px;display:block}
.explorer-result-go{margin-left:auto;color:#82ddec;font-size:16px}
.explorer-detail{flex:0 0 auto;padding:16px 19px;border-top:1px solid #2c5367;background:#0e2533}
.explorer-detail strong{display:block;font-size:13px;color:#eff9fc;margin-bottom:6px}
.explorer-detail p{font-size:11px;color:#9fbac7;line-height:1.5;margin:0}
.explorer-detail-tag{color:#63dbea!important;letter-spacing:.09em;font-size:10px!important;font-weight:900;text-transform:uppercase;margin-bottom:7px!important}
.explorer-detail-coords{font-variant-numeric:tabular-nums;color:#f2cf92!important;margin-top:10px!important}
.explorer-copy{border:1px solid #63dce9;border-radius:7px;background:#13465a;color:white;padding:7px 12px;font-size:11px;font-weight:850;cursor:pointer;margin-top:10px}
.explorer-map-panel{display:flex;flex-direction:column;height:800px;position:relative}
.explorer-toolbar{background:#0c1f2b;padding:13px 17px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #20445a}
.explorer-map-label{display:flex;gap:8px;align-items:center;color:#d8edf5;letter-spacing:.13em;font-size:10px;font-weight:850}
.explorer-live-dot{width:7px;height:7px;border-radius:50%;background:#46cbdf;box-shadow:0 0 8px #48daf8}
.explorer-map-actions{display:flex;align-items:center;gap:5px}
.explorer-map-actions button{min-width:34px;height:31px;border:1px solid #396177;background:#113144;color:#e0f8ff;border-radius:5px;font-size:17px;font-weight:bold;cursor:pointer}
.explorer-map-actions button:hover,.explorer-map-actions button:focus-visible{border-color:#74dcea}
.explorer-map-actions button#map-reset{font-size:10px;padding:0 12px;letter-spacing:.04em}
#map-zoom-label{font-size:11px;color:#b4cdda;min-width:44px;text-align:center}
.explorer-viewport{position:relative;flex:1;background:radial-gradient(ellipse at center,#0c2b3a 0%,#07141e 70%,#071017 100%);touch-action:none;overflow:hidden;cursor:grab;outline:0}
.explorer-viewport:focus-visible{outline:3px solid #57d8e9;outline-offset:-4px}
.explorer-viewport.dragging{cursor:grabbing}
.explorer-map-layer{position:absolute;top:0;left:0;width:4096px;height:6144px;transform-origin:0 0;will-change:transform;user-select:none}
.explorer-tiles{position:absolute;inset:0;pointer-events:none}
.explorer-tile{position:absolute;display:block;width:2048px;height:2048px;max-width:none;object-fit:fill;pointer-events:none;user-select:none}
.explorer-markers{position:absolute;inset:0}
.explorer-pin{position:absolute;display:grid;place-items:center;border:2px solid #def6ff;border-radius:50%;width:34px;height:34px;font-size:15px;line-height:1;color:white;background:#12647a;cursor:pointer;z-index:2;box-shadow:0 3px 18px #00121de0;transform-origin:center;touch-action:none;padding:0}
.explorer-pin:hover,.explorer-pin:focus-visible{background:#0ea5c3;z-index:5;outline:2px solid #9beaf6;outline-offset:2px}
.explorer-pin[data-category="Jobs"]{background:#1c8b76}.explorer-pin[data-category="Government"]{background:#4964ac}.explorer-pin[data-category="Emergency"]{background:#ba3c66}.explorer-pin[data-category="Licensing"]{background:#aa7833}.explorer-pin[data-category="Services"]{background:#755b9d}
.explorer-pin.is-selected{background:#19b4d4;border-color:#fff;z-index:6;box-shadow:0 0 0 6px #40cbe44d,0 4px 22px #00131a}
.explorer-pin-label{position:absolute;left:50%;top:calc(100% + 6px);white-space:nowrap;background:#05151deb;border:1px solid #3ba8ba;border-radius:5px;padding:5px 8px;font-size:10px;color:white;transform:translateX(-50%);font-weight:850;pointer-events:none;opacity:0;transition:opacity .14s;z-index:8}
.explorer-pin:hover .explorer-pin-label,.explorer-pin:focus-visible .explorer-pin-label,.explorer-pin.is-selected .explorer-pin-label{opacity:1}
.explorer-map-corner{position:absolute;left:15px;bottom:14px;pointer-events:none;background:#061721d9;border:1px solid #2f6074;border-radius:8px;padding:10px 12px;font-size:10px;letter-spacing:.08em;font-weight:900;color:#dceef5;max-width:min(310px,90%)}
.explorer-map-corner span{display:block;font-size:10px;font-weight:500;color:#a1c1d0;letter-spacing:0;line-height:1.45;margin-top:4px}
.explorer-map-footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:11px 17px;border-top:1px solid #24455a;color:#88aabd;font-size:9px;font-weight:850;letter-spacing:.08em}
.explorer-note{display:flex;align-items:center;gap:20px;justify-content:space-between;padding-block:23px}
.explorer-note>div{display:flex;gap:13px;max-width:850px}.explorer-note-icon{font-size:23px;color:#4addf1}.explorer-note strong{font-size:12px;color:#e3f1f5}.explorer-note p{font-size:11px;line-height:1.7;color:#87a7b8;margin:4px 0 0}
.explorer-note .btn{white-space:nowrap;font-size:11px}
.explorer-empty{padding:28px 19px;color:#98b8c9;font-size:12px;line-height:1.5}
@media (max-width:1150px){.explorer-intro{padding-top:30px}.explorer-shell{grid-template-columns:300px minmax(0,1fr);width:calc(100% - 24px)}.explorer-map-panel,.explorer-sidebar{height:690px;max-height:690px}}
@media (max-width:800px){.explorer-intro{display:block}.explorer-intro-side{display:none}.explorer-shell{display:flex;flex-direction:column;width:calc(100% - 24px)}.explorer-sidebar{max-height:none;height:auto}.explorer-list{max-height:200px}.explorer-map-panel{height:650px;min-height:0}.explorer-note{flex-wrap:wrap}.explorer-map-label{letter-spacing:.02em}}
@media (max-width:480px){.explorer-intro{padding-block:25px 18px}.explorer-intro h1{font-size:40px}.explorer-map-panel{height:540px}.explorer-map-actions button{min-width:28px;height:29px}.explorer-toolbar{padding:8px}.explorer-map-corner{font-size:9px}.explorer-map-footer{font-size:8px}.explorer-result{padding-block:8px}.explorer-sidebar-head{padding:15px}}
@media(prefers-reduced-motion:reduce){.explorer-pin-label{transition:none}}

.explorer-inline-detail{display:none}
@media(max-width:800px){.explorer-inline-detail:not([hidden]){display:flex;align-items:center;justify-content:space-between;gap:10px;position:absolute;z-index:50;top:9px;left:9px;right:9px;background:#051b29ef;border:1px solid #48b9d0;border-radius:9px;padding:11px 12px;box-shadow:0 8px 25px #001018b3}.explorer-inline-detail strong{font-size:12px;color:#f4fcff;display:block}.explorer-inline-detail span{font-size:11px;color:#ffdaa2;display:block;margin-top:3px}.explorer-inline-detail button{border:1px solid #69d9ec;border-radius:6px;background:#0f5268;padding:7px 10px;color:#fff;font-size:10px;font-weight:800}}

/* Authentic server postal atlas: crisp 2×3 tile grid (4096×6144). */
.postal-lookup{margin:14px 0 9px;background:#112938;border:1px solid #35627a;padding:12px;border-radius:9px}
.postal-label{display:block;color:#70e5f4;font-size:10px;font-weight:900;letter-spacing:.14em;margin-bottom:8px}
.postal-form{display:flex;gap:6px}.postal-form input{border:1px solid #56798a;border-radius:6px;min-width:0;width:100%;color:#f7fdff;font-size:13px;padding:10px;background:#081721}
.postal-form input:focus{outline:2px solid #74d9e6;outline-offset:1px}
.postal-form button{background:#47d0e5;color:#06202e;border:0;border-radius:6px;white-space:nowrap;padding:0 10px;font-size:11px;font-weight:900;cursor:pointer}
.postal-form button:hover,.postal-form button:focus-visible{background:#a8f4ff}
.postal-status{color:#a6cadb;font-size:10px;line-height:1.45;margin-top:9px;min-height:14px}
.postal-results{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.postal-results:empty{display:none}
.postal-match{border:1px solid #47748a;background:#0a202e;color:#ddf9ff;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:800;cursor:pointer}
.postal-match:hover,.postal-match:focus-visible{background:#15586d;border-color:#7be7f1}
.explorer-directory-label{color:#91c5d5;font-size:10px;font-weight:900;letter-spacing:.13em;margin-top:15px}
.postal-pin{position:absolute;z-index:9;left:0;top:0;transform-origin:50% 100%;border-radius:7px 7px 7px 0;min-width:68px;min-height:41px;background:#f2bd74;color:#12202b;border:2px solid #fff7df;display:grid;place-items:center;font-size:20px;font-weight:950;box-shadow:0 0 0 7px #f4b45b4a,0 7px 20px #051018a6;pointer-events:none}
.postal-pin::after{content:'';position:absolute;left:-2px;bottom:-11px;border-right:11px solid transparent;border-top:11px solid #f2bd74}
.postal-pin[hidden]{display:none!important}
@media(max-width:480px){.postal-form input{font-size:12px}.postal-lookup{padding:10px}.explorer-map-footer{letter-spacing:0}}
