/* Local SVG area picker: map and list are two views of the same selection. */
.area-view-switch,.geo-view-switch{display:flex;gap:4px;background:#eef3f5;border-radius:10px;padding:4px}
.area-view-switch{margin-bottom:20px}.area-view-switch button,.geo-view-switch button{border:0;border-radius:7px;background:transparent;padding:10px 15px;color:#405967;font-size:14px;font-weight:700;min-height:44px}.area-view-switch button[aria-pressed=true],.geo-view-switch button[aria-pressed=true]{background:white;color:#073c39;box-shadow:0 2px 6px #122a3512}.area-view-switch #open-area-map{color:#086d62;flex:1}
.geo-map-dialog{width:min(1320px,calc(100vw - 48px));height:min(920px,94dvh);max-width:none;max-height:94dvh;padding:0;border:1px solid #d2dfe6;border-radius:22px;overflow:hidden;color:var(--ink);box-shadow:0 35px 130px #0006}.geo-map-dialog::backdrop{background:#01012ca8;backdrop-filter:blur(6px)}
.geo-map-shell{height:100%;display:flex;flex-direction:column;background:#fff}.geo-map-header{padding:22px 26px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-shrink:0}.geo-map-header .eyebrow{color:#39776f;margin:0 0 7px;font-size:10px}.geo-map-header h2{margin:0;font-size:28px;letter-spacing:-.8px;line-height:1.2;color:var(--navy)}.geo-map-close{border:0;border-radius:50%;background:#edf3f6;width:44px;min-width:44px;height:44px;font-size:26px;color:#425b6a}
.geo-map-toolbar{padding:0 26px 16px;display:flex;gap:20px;align-items:center;flex-shrink:0}.geo-map-search{flex:1;max-width:460px;margin-left:auto}.geo-map-search input{width:100%;border:1px solid #c3d5dd;border-radius:10px;min-height:48px;padding:10px 14px;font-size:16px;background:#f8fafc;color:var(--ink)}
.geo-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;flex:1;min-height:0;border-top:1px solid #dce4ed;border-bottom:1px solid #dce4ed}.geo-map-stage{position:relative;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 40% 35%,#174453,#091b31 80%);isolation:isolate}.geo-map-stage:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#a1d9d107 1px,transparent 1px),linear-gradient(90deg,#a1d9d107 1px,transparent 1px);background-size:48px 48px}#geo-svg{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-4px}#geo-svg:active{cursor:grabbing}
.geo-shape{fill:#b3d8d5;stroke:#163b47;stroke-width:1;fill-rule:evenodd;cursor:pointer;transition:fill .15s,stroke .15s}.geo-shape:hover{fill:#e7f6e9;stroke:#fff;stroke-width:1.8}.geo-shape.selected{fill:#58d6b9;stroke:#0b655e}.geo-shape.partial{fill:url(#geo-partial-fill)}.geo-shape.inspected{stroke:#ffe6a3;stroke-width:2.7}.geo-shape:focus-visible{outline:none;stroke:#fff7b8;stroke-width:4}.geo-county-shapes.is-context .geo-shape{fill:#345767;stroke:#466f7b}.geo-municipality-shapes .geo-shape{stroke-width:1.2}#geo-selected-overlay{pointer-events:none}#geo-selected-overlay path{fill:#58d6b9;stroke:#0b655e;stroke-width:.8;fill-rule:evenodd}#geo-labels{pointer-events:none}#geo-labels text{fill:white;stroke:#113244;paint-order:stroke;stroke-linejoin:round;font-weight:600;letter-spacing:.2px}
.geo-map-context{position:absolute;top:20px;left:22px;z-index:2;max-width:calc(100% - 100px);color:#d8edee;pointer-events:none}.geo-map-context>span{font-size:11px;letter-spacing:1.6px;font-weight:700;display:block;text-shadow:0 1px 3px #051b28}.geo-map-context button{display:block;pointer-events:auto;margin-top:10px;border:1px solid #789ba4;background:#102f3edb;color:white;border-radius:8px;padding:8px 12px;font-size:14px;min-height:44px}.geo-map-controls{position:absolute;top:16px;right:16px;display:grid;gap:5px;z-index:3}.geo-map-controls button{width:44px;height:44px;border:1px solid #b4d0d8;background:#fbfffd;border-radius:9px;font-size:24px;font-weight:500;color:#163e45;box-shadow:0 4px 12px #0002}.geo-map-controls button:disabled{opacity:.45}.geo-map-legend{position:absolute;bottom:51px;left:20px;display:flex;gap:18px;color:#e2eeef;font-size:12px;pointer-events:none}.geo-map-legend span{display:flex;align-items:center;gap:7px}.geo-map-legend i{display:inline-block;width:12px;height:12px;border:1px solid #adeada;border-radius:3px}.legend-selected{background:#58d6b9}.legend-partial{background:repeating-linear-gradient(35deg,#a6d8d2 0 3px,#57afaa 3px 6px)}.geo-map-instructions{position:absolute;bottom:10px;left:20px;right:20px;margin:0;color:#c2d8df;font-size:12px;line-height:1.5;pointer-events:none}.geo-north{position:absolute;bottom:88px;right:26px;display:grid;text-align:center;color:#afc9d5;font-size:25px;pointer-events:none}.geo-north small{font-size:10px;letter-spacing:1px}.geo-map-loading{position:absolute;inset:0;display:flex;gap:14px;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;color:#d5e9e8;z-index:4;background:#0d273b}.geo-map-loading span{font-size:15px;line-height:1.5}
.geo-map-sidebar{padding:22px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:#fbfcfd}.geo-inspector{padding-bottom:20px;border-bottom:1px solid var(--line)}.geo-inspector .eyebrow{font-size:10px;color:#4b7e78;letter-spacing:1.2px}.geo-inspector h3{font-size:25px;letter-spacing:-.6px;line-height:1.2;margin:8px 0;color:var(--navy)}.geo-inspector p{font-size:14px;line-height:1.65;margin:12px 0;color:#566c7b}.geo-inspector>.primary,.geo-inspector>.secondary{width:100%;margin-top:9px;min-height:46px;font-size:14px}.geo-inspector>.text-button{margin-top:10px;min-height:44px;text-align:left}.geo-inspector>.primary{background:#075b52}.geo-map-sidebar h4{font-size:13px;margin:20px 0 8px}.geo-place-list{display:grid;gap:3px}.geo-place-list button{border:0;border-bottom:1px solid #e4ecef;background:transparent;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;padding:11px 4px;color:#244250;font-size:14px;min-height:48px}.geo-place-list button:hover{background:#eaf5f1}.geo-place-list small{display:block;font-size:12px;color:#6a7c88;margin-top:4px}.geo-place-list button>span:last-child{font-size:20px;color:#157467}.geo-map-sidebar details{border-top:1px solid #dce4ed;margin-top:22px;padding-top:10px}.geo-map-sidebar summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:14px;font-weight:700}.geo-map-sidebar summary>span{display:inline-block;background:#d8eee7;color:#175e50;border-radius:16px;min-width:24px;text-align:center;padding:3px 5px;margin-left:4px}.geo-chips{display:grid;gap:6px;margin:6px 0 10px}.geo-chips button{border:1px solid #b6dacc;background:#eaf7f2;border-radius:8px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;color:#145b4f;font-size:13px;line-height:1.5;min-height:44px}.geo-chips button>span:last-child{font-size:20px}.geo-undo{width:100%;margin-top:14px;min-height:44px}.geo-map-sidebar #geo-clear{min-height:44px;font-size:13px}
.geo-map-footer{display:flex;gap:16px;align-items:center;padding:15px 24px;flex-shrink:0}.geo-map-footer>div{flex:1;min-width:0}.geo-map-footer strong{font-size:15px;display:block}.geo-map-footer small{font-size:12px;line-height:1.5;color:var(--muted);display:block;margin-top:5px}.geo-map-footer .primary{background:#075b52;min-width:180px;min-height:48px}.geo-map-source{font-size:11px;line-height:1.5;color:#6b7c88;background:#f4f7f9;padding:7px 24px;flex-shrink:0}.geo-map-source a{text-underline-offset:2px}
@media(max-width:1000px) and (min-width:761px){.geo-map-layout{grid-template-columns:minmax(0,1fr) 290px}.geo-map-sidebar{padding:16px}.geo-map-header h2{font-size:24px}.geo-map-dialog{width:calc(100vw - 24px)}}
@media(max-width:760px){.geo-map-dialog{inset:0;margin:0;width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.geo-map-header{padding:16px 16px 12px}.geo-map-header h2{font-size:21px;letter-spacing:-.4px}.geo-map-header .eyebrow{font-size:9px;letter-spacing:1px}.geo-map-toolbar{padding:0 16px 12px;gap:10px;flex-wrap:wrap}.geo-view-switch{padding:3px}.geo-view-switch button{padding:8px 12px;font-size:14px}.geo-map-search{min-width:190px;flex:1}.geo-map-search input{font-size:16px}.geo-map-layout{display:block;overflow-y:auto;overscroll-behavior:contain}.geo-map-stage{height:390px;min-height:300px}.geo-map-sidebar{overflow:visible;padding:18px}.geo-map-context{top:16px;left:16px}.geo-map-context>span{font-size:10px}.geo-map-controls{right:12px;top:12px}.geo-map-instructions{left:16px;right:16px;font-size:12px;bottom:12px;max-width:280px}.geo-map-legend{left:16px;bottom:62px;font-size:12px}.geo-north{bottom:100px;right:22px}.geo-map-sidebar h4{font-size:15px}.geo-place-list button{font-size:15px}.geo-place-list small{font-size:13px}.geo-map-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom));gap:8px;flex-wrap:wrap}.geo-map-footer>div{flex-basis:100%}.geo-map-footer strong{font-size:14px}.geo-map-footer small{display:none}.geo-map-footer .primary{min-width:0;flex:1}.geo-map-footer .quiet{min-width:80px;min-height:48px}.geo-map-source{font-size:10px;padding:6px 16px}.geo-inspector h3{font-size:24px}.geo-inspector p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.geo-shape{transition:none}}

.geo-map-context>span{background:#0d293dcc;border-radius:5px;padding:6px 8px}.geo-map-legend{background:#0d293de8;padding:6px 9px;border-radius:6px}.geo-map-instructions{background:#0d293ded;padding:6px 9px;border-radius:6px;width:fit-content;max-width:calc(100% - 40px)}.geo-map-sidebar #geo-map-selection details{margin-top:12px}.geo-mobile-choice{display:none}
@media(max-width:760px){.geo-searching .geo-map-stage,.geo-searching #geo-map-inspector,.geo-searching #geo-map-selection{display:none}.geo-searching #geo-map-results h4{margin-top:0}.geo-mobile-choice:not(:empty){position:absolute;z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:8px;bottom:106px;left:16px;right:68px;padding:12px;background:#fffffffa;border:1px solid #b7d7d0;border-radius:12px;box-shadow:0 6px 30px #0003}.geo-mobile-choice>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#123d46}.geo-mobile-choice strong{font-size:16px}.geo-mobile-choice #geo-dismiss-place{border:0;background:transparent;color:#45646d;min-width:32px;min-height:32px;font-size:24px}.geo-mobile-choice>.primary{background:#075b52}.geo-mobile-choice>.primary,.geo-mobile-choice>.secondary{padding:8px;font-size:13px;min-height:44px}.geo-mobile-choice>.primary:last-child{grid-column:1/-1}.geo-map-instructions{max-width:calc(100% - 32px)}}

/* Quiet feedback keeps the geography visible during repeated selections. */
.geo-shape.is-hovered{fill:#d8eee5;stroke:#fff;stroke-width:2}.geo-shape.selected.is-hovered{fill:#76e3c8;stroke:#fff}.geo-shape.partial.is-hovered{stroke:#fff;stroke-width:2.5}.geo-county-shapes.is-context .geo-shape.is-hovered{fill:#537a88}
.geo-hover{position:absolute;z-index:5;pointer-events:none;max-width:calc(100% - 20px);padding:8px 11px;border:1px solid #749d9c;border-radius:7px;background:#102f3ff5;color:#f0fffa;box-shadow:0 3px 12px #0002;font-size:13px;line-height:1.4}.geo-hover[hidden]{display:none}
.geo-feedback{position:absolute;z-index:5;bottom:101px;left:20px;max-width:calc(100% - 94px);padding:9px 13px;border:1px solid #80d9ba;border-radius:9px;background:#effff7f5;color:#154e42;font-size:14px;font-weight:700;line-height:1.4;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .16s,transform .16s}.geo-feedback.is-visible{opacity:1;transform:none}
@media(max-width:760px){.geo-feedback{left:16px;bottom:111px;font-size:14px}.geo-mobile-choice.is-municipality:not(:empty){grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:9px 12px}.geo-mobile-choice.is-municipality>div{grid-column:1}.geo-mobile-choice.is-municipality>.primary:last-child{grid-column:2;font-size:13px}.geo-mobile-choice.is-municipality #geo-dismiss-place{display:none}}
@media(prefers-reduced-motion:reduce){.geo-feedback,.geo-shape{transition:none;transform:none}}
/* SVG focus follows the polygon boundary instead of its rectangular bounds. */
#geo-svg .geo-shape:focus{outline:none;box-shadow:none}
#geo-svg .geo-shape:focus-visible{stroke:#fff7b8;stroke-width:4}

.preview-map-credit,.map-credit-trigger{display:inline-block;background:none;border:0;padding:4px 0;color:#42675f;font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left;min-height:28px}
.map-credit-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 32px));max-height:80vh;overflow:auto;padding:24px;border:1px solid #bfded5;border-radius:14px;background:white;color:#142f3c;box-shadow:0 18px 70px #001b3033;font:14px/1.6 Arial,Helvetica,sans-serif}
.map-credit-dialog::backdrop{background:#071b3659}
.map-credit-dialog h2{font-size:21px;line-height:1.3;margin:0 0 16px;color:#142f3c}
.map-credit-dialog p{margin:0 0 12px}.map-credit-dialog a{color:#176f62;text-decoration:underline}
.map-credit-dialog button{min-height:44px;padding:8px 20px;cursor:pointer;border:1px solid #789c99;border-radius:8px;background:white;color:#173d3b;font:inherit;font-weight:700}
.map-credit-dialog :focus-visible{outline:3px solid #278eaf;outline-offset:3px}

/* A separate desktop navigation rail leaves the main geography unobstructed. */
.geo-overview{position:absolute;left:0;top:0;bottom:0;z-index:3;width:132px;padding:18px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-right:1px solid #91bfb224;background:#0c2638;color:#d4e8e3}
.geo-overview[hidden]{display:none}.geo-overview>strong{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600}.geo-overview>span{font-size:10px;line-height:1.4;color:#9fbdb6;text-align:center}
#geo-overview-svg{display:block;flex:none;width:108px;height:var(--geo-overview-height,210px);touch-action:none;cursor:crosshair;background:transparent;border-radius:0;overflow:hidden}
#geo-overview-svg path{fill:#709c97;stroke:#0c2638;stroke-width:.45;pointer-events:none}
#geo-overview-frame{fill:#57ddb61a;stroke:#65edbd;stroke-width:2;cursor:grab}#geo-overview-svg:active,#geo-overview-svg:active #geo-overview-frame{cursor:grabbing}
#geo-overview-svg:focus:not(:focus-visible){outline:none;box-shadow:none}
#geo-overview-svg:focus-visible{outline:2px solid #fff2a8;outline-offset:4px;border-radius:4px}
@media(min-width:1024px){
 .geo-map-stage{display:grid;grid-template-columns:132px minmax(0,1fr)}
 #geo-svg{grid-column:2;min-width:0;min-height:0}
 .geo-map-context{left:150px;top:16px}
 .geo-map-context>span{font-size:10px;letter-spacing:1.2px;background:#0d293d99}
 .geo-map-legend{left:auto;right:16px;bottom:14px;gap:12px;font-size:11px;padding:5px 8px}
 .geo-map-instructions{left:148px;bottom:14px;right:190px;font-size:11px;max-width:calc(100% - 350px);padding:5px 8px}
 .geo-map-controls{right:14px;top:14px;gap:4px}
 .geo-map-controls button{width:36px;height:36px;font-size:21px;border-radius:7px}
 .geo-north{display:none}
 .geo-feedback{left:148px;bottom:52px;max-width:calc(100% - 210px)}
}
@media(min-width:1024px) and (max-height:760px){
 .geo-map-header{padding:14px 22px 10px}.geo-map-header h2{font-size:24px}.geo-map-header .eyebrow{display:none}
 .geo-map-toolbar{padding:0 22px 10px}.geo-map-footer{padding:10px 22px}
}
#geo-overview-toggle[hidden]{display:none}
#geo-overview-close{display:none}
@media(max-width:1023px){
 .geo-map-context #geo-overview-toggle{display:inline-block;vertical-align:middle;font-size:12px;padding:8px 12px;background:#102f3ef0}
 .geo-map-context #geo-overview-toggle[hidden]{display:none}
 .geo-overview{top:96px;bottom:auto;left:12px;width:136px;padding:8px;gap:4px;border:1px solid #719c98;border-radius:12px;box-shadow:0 12px 32px #0005;z-index:6}
 .geo-overview>strong{align-self:flex-start;font-size:9px;letter-spacing:.7px;line-height:30px}
 .geo-overview>span{font-size:10px}
 #geo-overview-svg{width:118px;height:var(--geo-mobile-overview-height,132px)}
 #geo-overview-close{display:block;position:absolute;right:4px;top:4px;width:44px;height:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:#e0f2ed;font-size:24px;cursor:pointer}
 #geo-overview-frame,#geo-overview-svg:active,#geo-overview-svg:active #geo-overview-frame{cursor:crosshair}
 .geo-map-context{max-width:calc(100% - 70px)}
 .geo-map-context #geo-back:not([hidden]){display:inline-block;vertical-align:middle;margin-right:6px;font-size:12px}
 .geo-overview[hidden]{display:none}
}
@media(min-width:1024px){#geo-overview-toggle{display:none}}


/* QA: keep results and navigation usable on touch devices and short screens. */
.geo-searching #geo-map-inspector,.geo-searching #geo-map-selection{display:none}
.geo-searching #geo-map-results h4{margin-top:0}
.geo-overview-open .geo-map-instructions,.geo-overview-open .geo-map-legend,.geo-overview-open .geo-mobile-choice{visibility:hidden}
@media(pointer:coarse){.geo-map-controls button{width:44px;height:44px}.geo-mobile-choice #geo-dismiss-place{min-width:44px;min-height:44px}}
@media(max-height:500px) and (min-width:761px) and (max-width:1023px){
 .geo-map-dialog{inset:0;margin:0;width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}
 .geo-map-header{padding:4px 16px;min-height:44px}.geo-map-header .eyebrow{display:none}.geo-map-header h2{font-size:20px}
 .geo-map-toolbar{padding:0 16px 6px;gap:12px}.geo-map-layout{grid-template-columns:minmax(0,1fr) 260px}
 .geo-map-sidebar{padding:12px}.geo-map-footer{padding:6px 16px;gap:12px}.geo-map-footer small{display:none}
 .geo-map-source{padding:2px 16px}.geo-map-context{top:8px;left:12px;max-width:calc(100% - 116px)}
 .geo-map-context>span{font-size:9px}.geo-map-context button{margin-top:5px}
 .geo-map-controls{top:8px;right:8px;grid-template-columns:repeat(2,44px);gap:4px}.geo-map-controls button{width:44px;height:44px}
 .geo-map-instructions{font-size:11px;bottom:6px;left:12px;max-width:calc(100% - 132px)}
 .geo-map-legend,.geo-north{display:none}
 .geo-overview{top:8px;left:12px}.geo-overview-open .geo-map-context{visibility:hidden}
}
@media(max-width:760px) and (max-height:600px){
 .geo-overview{top:8px}
 .geo-overview-open .geo-map-context{visibility:hidden}
}

/* Native browser gestures stay outside the custom map's gesture surfaces. */
#geo-svg,#geo-overview-svg{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

/* The selection action belongs to the map, separate from zoom controls. */
.geo-map-controls{justify-items:end}
#geo-fit{position:absolute;right:12px;bottom:12px;z-index:3;width:108px;min-height:44px;padding:6px 8px;border:1px solid #b4d0d8;border-radius:9px;background:#fbfffd;color:#163e45;box-shadow:0 4px 12px #0002;font-size:12px;line-height:1.3;font-weight:600;cursor:pointer}
#geo-fit[hidden]{display:none}
.geo-has-selection .geo-map-instructions{max-width:calc(100% - 156px)}
@media(min-width:1024px){
 #geo-fit{right:16px;bottom:14px}
 .geo-has-selection .geo-map-legend{bottom:68px}
 .geo-has-selection .geo-map-instructions{max-width:calc(100% - 280px)}
}
