.gv-map-launch[hidden],.gv-map-view [hidden],.gv-map-view[hidden]{display:none!important}
.gv-map-launch{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:1005;display:flex;gap:9px;align-items:center;border:1px solid #fff8;border-radius:30px;background:#0056b3;color:#fff;padding:13px 20px;font:600 15px/1.3 system-ui,sans-serif;box-shadow:0 3px 18px #15335340;cursor:pointer}
.gv-map-launch:hover{background:#00448e}
.gv-map-active{overflow:hidden!important}
.gv-map-view{--gv-ink:#16334b;--gv-blue:#0056b3;position:fixed;inset:0;height:100vh;height:100dvh;z-index:20000;overflow:hidden;background:#e8eef0;color:var(--gv-ink);font:15px/1.5 system-ui,sans-serif;overscroll-behavior:none;isolation:isolate}
.gv-map-view *{box-sizing:border-box}
.gv-map-view button,.gv-map-view input{font:inherit}
.gv-map-view button,.gv-map-view a{touch-action:manipulation}
.gv-map-view button{cursor:pointer}
.gv-map-view button:disabled{cursor:wait;opacity:.65}
.gv-map-view :focus-visible,.gv-map-launch:focus-visible{outline:3px solid #d18b00;outline-offset:3px}
.gv-map-view .gv-map-canvas{position:absolute;inset:0}
.gv-map-top{position:absolute;top:max(14px,env(safe-area-inset-top));left:14px;right:14px;pointer-events:none}
.gv-map-top>*{pointer-events:auto}
.gv-map-search-row{display:flex;gap:8px}
.gv-map-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;min-height:44px;border:1px solid #dce4eb;border-radius:13px;background:#fff;color:var(--gv-ink);padding:8px 12px;box-shadow:0 2px 8px #16334b12;text-decoration:none}
.gv-map-button:hover{background:#edf5ff;text-decoration:none}
.gv-map-back{font-size:18px!important;font-weight:600!important;white-space:nowrap}
.gv-map-back span{font-size:14px}
#gv-map-search{display:flex;flex:1;min-width:0;align-items:center;overflow:hidden;background:#fff;border:1px solid #dce4eb;border-radius:14px;box-shadow:0 3px 16px #16334b24}
#gv-map-query{width:100%;min-width:0;height:48px;padding:10px 12px;border:0;border-radius:14px;background:#fff;color:var(--gv-ink);font-size:16px;outline-offset:-4px}
#gv-map-search button{border:0;box-shadow:none;font-size:26px;padding:2px 12px}
.gv-map-categories{display:flex;gap:7px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding:2px 1px 5px}
.gv-map-categories button{flex-shrink:0;min-height:40px;border-radius:24px;border:1px solid #dce4eb;background:#fff;color:var(--gv-ink);padding:7px 16px;box-shadow:0 2px 8px #16334b12;font-size:14px;font-weight:600}
.gv-map-categories [aria-pressed=true]{background:var(--gv-blue);border-color:var(--gv-blue);color:#fff}
.gv-map-area{display:block;margin:10px auto 0;min-height:44px;background:#fff;color:#0056b3;border:1px solid #c9dced;border-radius:24px;padding:9px 18px;font-weight:650!important;box-shadow:0 2px 10px #16334b28}
.gv-map-tools{position:absolute;right:14px;bottom:calc(var(--gv-sheet-height,138px) + 16px);display:flex;flex-direction:column;gap:8px}
.gv-map-tools button{font-size:24px;box-shadow:0 2px 9px #16334b25}
.gv-map-notice{position:absolute;left:16px;right:72px;top:180px;background:#fff;padding:12px 15px;border-radius:14px;border:1px solid #dce4eb;box-shadow:0 2px 12px #16334b20}
.gv-map-sheet{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:#fff;border-radius:22px 22px 0 0;box-shadow:0 -3px 25px #16334b20;max-height:calc(100% - 126px);height:calc(138px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);transition:height .2s ease;z-index:2}
.gv-map-sheet[data-size=half]{height:48%}
.gv-map-sheet[data-size=full]{height:calc(100% - 126px)}
.gv-map-sheet-toggle{height:26px;min-height:26px;width:100%;border:0;background:transparent;border-radius:22px 22px 0 0;touch-action:none;display:flex;align-items:center;justify-content:center}
.gv-map-sheet-toggle span{display:block;width:38px;height:4px;background:#bcc9d4;border-radius:4px}
.gv-map-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px}
.gv-map-eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:700;color:#557087;margin:0 0 4px}
.gv-map-sheet h2{font-size:20px;color:var(--gv-ink);line-height:1.25;margin:0;overflow-wrap:anywhere}
.gv-map-status{margin:6px 20px 10px;font-size:13px;color:#536a7d}
.gv-map-sheet-body{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:0 20px 18px}
.gv-map-sheet[data-size=compact] .gv-map-sheet-body{visibility:hidden}
.gv-map-result{display:flex;align-items:center;gap:12px;width:100%;padding:13px 0;text-align:left;color:var(--gv-ink);border:0;border-top:1px solid #e8edf1;background:#fff}
.gv-map-result:hover{background:#f3f8fe}
.gv-map-result-dot{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#e6f0ff;color:#0056b3;display:grid;place-items:center;font-size:12px;font-weight:700}
.gv-map-result strong{display:block;font-size:15px}
.gv-map-result small{display:block;color:#536a7d;margin-top:2px}
.gv-map-detail-copy{color:#425e74;margin:10px 0 18px}
.gv-map-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.gv-map-actions .gv-map-button{font-size:14px}
.gv-map-detail-meta{font-size:14px;color:#536a7d}
.gv-map-view .maplibregl-ctrl-bottom-right{bottom:calc(143px + env(safe-area-inset-bottom));right:4px;max-width:calc(100% - 16px)}
.gv-map-view .maplibregl-ctrl-attrib{font-size:10px;line-height:18px}
.gv-map-view .maplibregl-ctrl-bottom-left{bottom:calc(143px + env(safe-area-inset-bottom));left:8px}
.gv-map-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:799px){.gv-map-view[data-sheet-size=full] .gv-map-tools{display:none}}
@media(min-width:800px){
 .gv-map-top{width:380px;right:auto;top:20px;left:20px}
 .gv-map-sheet{left:20px;right:auto;bottom:20px;top:140px;width:380px;height:auto!important;max-height:none;border-radius:18px;padding:18px 0 0;transition:none}
 .gv-map-sheet-toggle{display:none}
 .gv-map-sheet[data-size=compact] .gv-map-sheet-body{visibility:visible}
 .gv-map-tools{top:20px;right:20px;bottom:auto}
 .gv-map-notice{top:85px;left:auto;right:20px;max-width:340px}
 .gv-map-area{position:fixed;top:20px;left:calc(50% + 160px);margin:0;transform:translateX(-50%)}
 .gv-map-view .maplibregl-ctrl-bottom-right{bottom:0;right:0}
 .gv-map-view .maplibregl-ctrl-bottom-left{bottom:5px;left:410px}
}
@media(prefers-reduced-motion:reduce){.gv-map-sheet{transition:none}}
