.geo-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.7fr);gap:30px;align-items:start}.geo-controls,.geo-map-panel{background:white;border:1px solid #dfe6f1;border-radius:20px;padding:24px}.geo-controls h3,.geo-map-panel h3{margin-top:0}.geo-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.geo-chips button,.geo-areas button{font:inherit;border:1px solid #dfe6f1;background:#fafbfe;border-radius:8px;padding:10px 12px;text-align:left;cursor:pointer;color:#2168e8}.geo-chips button{font-size:13px}.geo-chips button[aria-pressed=true],.geo-areas button[aria-pressed=true]{background:#246cf0;border-color:#246cf0;color:white}.geo-areas{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:420px;overflow:auto}.geo-areas button{font-size:14px;overflow-wrap:anywhere}.geo-search-row{display:flex;gap:10px;margin:8px 0 20px}.geo-search-row input{min-width:0;flex:1;padding:12px;border:1px solid #c5d2e8;border-radius:8px;font:inherit}#geo-search label{font-size:14px}#geo-map{width:100%;height:440px;border:0;border-radius:12px;background:#eaf1ff}.geo-layout button:focus-visible,.geo-layout input:focus-visible{outline:3px solid #f2ab36;outline-offset:3px}.geo-layout .actions{align-items:center;gap:18px}.geo-layout button:disabled{opacity:.6;cursor:wait}@media(max-width:900px){.geo-layout{grid-template-columns:1fr}.geo-areas{max-height:250px}}@media(max-width:480px){.geo-controls,.geo-map-panel{padding:16px}#geo-map{height:350px}.geo-search-row{flex-direction:column}}
#geo-map.brand-map{height:auto;position:relative;border-radius:22px;overflow:hidden;background:#edf6ff}.brand-map svg{display:block;width:100%;height:auto}.map-district{cursor:pointer;outline:none}.map-district polygon{fill:#c7dcfa;stroke:#f5faff;stroke-width:5;stroke-linejoin:round;transition:fill .2s}.map-district:nth-of-type(3n) polygon{fill:#b4d1f6}.map-district text{font:700 15px Arial,sans-serif;text-anchor:middle;fill:#315c91;pointer-events:none}.map-district:hover polygon,.map-district:focus-visible polygon{fill:#8db9f5}.map-district[aria-pressed=true] polygon{fill:#246cf0}.map-district[aria-pressed=true] text{fill:white}.map-town{cursor:pointer;outline:none}.map-town circle{fill:#246cf0;stroke:white;stroke-width:2}.map-town text{font:600 10px Arial,sans-serif;fill:#41648d;text-anchor:middle;paint-order:stroke;stroke:#e8f3ff;stroke-width:3px;stroke-linejoin:round}.map-town:hover circle,.map-town:focus-visible circle{r:8;fill:#14223a}.map-region-label{font:700 10px Arial,sans-serif;letter-spacing:2px;fill:#7c9dc5}.map-selection-card{position:absolute;left:16px;right:16px;bottom:16px;background:white;border:1px solid #dbe8fa;border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center;box-shadow:0 8px 30px #1c5ca614}.map-selection-card small{display:block;font-size:8px;color:#6d86a4;letter-spacing:1.3px;margin-bottom:5px}.map-selection-card strong{display:block;font-size:15px;color:#14223a}.map-selection-card a{margin-left:auto;background:#246cf0;color:white;border-radius:10px;padding:10px 14px}.map-live-dot{width:10px;height:10px;flex-shrink:0;background:#246cf0;border:3px solid #dbeaff;border-radius:50%;box-sizing:content-box}.map-caption{font-size:11px;color:#72869f;margin:10px 0 18px}.brand-map svg{padding-bottom:70px}@media(prefers-reduced-motion:reduce){.map-district polygon{transition:none}}

.town-directory{border:1px solid #dce6f8;border-radius:16px;padding:22px 24px;background:#fff}.town-directory summary{font-size:18px;color:#2168e8}.town-directory-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 25px;padding-left:20px;margin:24px 0 0;line-height:1.5}.town-directory-list li{padding:9px 0;color:#246cf0;break-inside:avoid}.town-directory-list a{font-size:15px;color:#254f89}.town-directory-list a:hover{text-decoration:underline}@media(max-width:900px){.town-directory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.town-directory-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.town-directory{padding:18px}.town-directory-list a{font-size:14px}}@media(max-width:360px){.town-directory-list{grid-template-columns:1fr}}

.map-ring-label{font:700 9px Arial,sans-serif;fill:#688ab5;letter-spacing:1px}.map-town-caption{font:600 10px Arial,sans-serif;fill:#58779d;text-anchor:middle}.brand-map .map-district polygon{stroke-width:2.5}.brand-map .map-district text{font-size:13px}
