/* Zoning tools: steady color, local selection, and geographic context. */
#parcels { opacity:.55; }
.zoning-toggle { display:flex;align-items:center;gap:5px;font:12px var(--sans);cursor:pointer; }
.zoning-toggle input { width:17px;height:17px;accent-color:var(--jungle); }
.view-legend-heading { gap:10px; }
.zoning-strength { border-bottom:1px solid #dce3d7;padding:6px 0 12px;margin-bottom:8px; }
.zoning-strength>label { display:flex;justify-content:space-between;font:12px var(--sans);color:#52665b; }
.zoning-strength input[type=range] { width:100%;margin:8px 0 2px;accent-color:var(--jungle);cursor:pointer; }
.strength-endpoints { display:flex;justify-content:space-between;font:11px var(--sans);color:#52665b; }
.settings-panel .strength-endpoints { margin:-9px 0 17px; }
.view-key-empty { grid-column:1/-1; }
.parcel.sel { filter:none; }
#contextTiles,#placeLabels,#zoneSelection { pointer-events:none; }
.selected-zone-halo,.selected-zone-outline { fill:none; vector-effect:non-scaling-stroke; stroke-linejoin:round; }
.selected-zone-halo { stroke:#fffdf6;stroke-width:4; }
.selected-zone-outline { stroke:#173e38;stroke-width:1.7; }
.selected-zone-pin circle:first-child { fill:#fffdf6;stroke:#173e38;stroke-width:2; }
.selected-zone-pin circle:last-child { fill:#173e38; }
#placeLabels text { font:500 13px 'DM Sans',sans-serif;fill:#163d3a;stroke:#fffef7;stroke-width:3px;stroke-linejoin:round;paint-order:stroke; }
#placeLabels circle { fill:#214d47;stroke:#fffef7;stroke-width:1.5; }
.quick-locate { position:absolute;top:20px;left:24px;z-index:6;display:flex;align-items:center;gap:12px;min-height:46px;width:min(355px,calc(100% - 200px));padding:11px 14px;background:#fffef8;box-shadow:0 4px 16px #153c3920;border:1px solid #c6d3cb;border-radius:8px;font:14px var(--sans);text-align:left; }
.quick-locate svg { flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6; }
.quick-locate span { flex:1; }.quick-locate kbd { margin:0;font-size:12px; }
.map-title { top:91px;left:26px;transition:opacity .15s; }.map-title .eyebrow { display:none; }.map-title h2 { margin:0 0 7px; }.map-title p { font-size:12px; }
.stage.is-zoomed .map-title { display:none; }
.map-top-right { top:20px;right:24px; }.plan-badge { display:none; }.map-settings-button { min-height:46px;background:#fffef8; }
.settings-panel { top:75px;right:24px;max-height:calc(100% - 180px);overflow:auto; }
.settings-panel select { width:100%;padding:11px 9px;margin:9px 0;border:1px solid var(--line-2);border-radius:5px;background:#fffef8;font:14px var(--sans); }
.settings-note { font:12px/1.5 var(--sans);color:var(--ink-dim);margin:0 0 19px; }
.north-mark { top:86px;right:37px; }.stage[data-background=satellite] .north-mark { color:#fff; }
.view-legend { position:absolute;left:24px;bottom:82px;z-index:4;width:270px;max-width:calc(100% - 100px);padding:14px 16px;background:#fffef8f5;border:1px solid #c4d0c7;border-radius:9px;box-shadow:0 4px 18px #17413716; }
.view-legend { background:#fffef8; }
.view-legend-heading { display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:8px; }.view-legend-heading strong { font:600 14px var(--sans); }
.view-legend button { background:none;border:0;padding:5px 0;color:#315f54;font:14px var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer; }
#viewLegendRows { max-height:190px;overflow:auto;scrollbar-width:thin; }.view-key-row { display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;min-height:28px;font:13px/1.35 var(--sans);padding:3px 0; }
.view-key-row i { height:11px;width:11px;border-radius:3px;border:1px solid #0002; }.view-key-row small { color:#64756b;font-size:11px; }.view-key-empty { font:13px/1.6 var(--sans);color:#52665b; }
#legendMore { margin-top:5px;font-size:12px; }
.map-context { left:24px;bottom:25px;max-width:calc(100% - 105px);margin:0;padding:8px 12px;gap:3px;background:#fffef8e8;border:1px solid #c4d0c7;border-radius:7px; }
.map-context-title { font:500 17px var(--sans); }.map-context-desc { font-size:12px;line-height:1.4; }
.map-controls { right:24px;bottom:38px; }
.map-attribution { position:absolute;right:5px;bottom:2px;left:5px;text-align:right;font:10px/1.4 var(--sans);color:#244a44;z-index:5;pointer-events:none; }
.map-attribution:not([hidden]) { background:#fffef8e8;padding:3px 5px;border-radius:3px; }.map-attribution a { pointer-events:auto;color:inherit; }
.background-status { position:absolute;left:50%;top:82px;transform:translateX(-50%);z-index:6;max-width:65%;background:#fffef8ee;border:1px solid #bccdc2;border-radius:6px;padding:8px 11px;font:12px/1.5 var(--sans); }
.zone-explanation { font:16px/1.6 var(--sans);margin:13px 0;color:#234d43; }.zone-place { font:13px/1.6 var(--sans);color:#536b61; }
.zone-area { margin:20px 0 15px;padding:16px;background:#edf2e9;border-radius:7px; }.zone-area>span { display:block;font:13px var(--sans); }.zone-area strong { display:block;margin:8px 0;font:500 25px var(--sans);font-variant-numeric:tabular-nums; }.zone-area p,.zone-small { font:13px/1.65 var(--sans);color:#536b61; }
.zone-caution { font:14px/1.65 var(--sans);color:#614d31;padding:0 0 17px; }
.zone-details { border-top:1px solid #d8dfd3;padding:13px 0; }.zone-details>summary { cursor:pointer;font:500 14px/1.5 var(--sans);padding:4px 0; }.zone-details[open]>summary { margin-bottom:12px; }
.zone-limits { display:grid;gap:10px;margin-top:16px; }.zone-limits span { display:flex;justify-content:space-between;gap:15px;font:14px/1.5 var(--sans); }.zone-small { margin:10px 0; }
.dossier__prov { margin-top:0; }.dossier__zone { margin-top:10px; }.dossier__id { padding-right:55px;line-height:1.5; }
.place-suggestions { border:1px solid #cad5c7;border-radius:6px;overflow:hidden;margin:8px 0; }.place-suggestions button { display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid #e2e7dc;background:#fffef8;font:14px var(--sans); }.place-suggestions button:hover { background:#edf2e9; }.place-suggestions small { color:#64756b;font-size:12px; }.place-suggestion-note { font:12px/1.6 var(--sans);color:#52665b;margin:10px 0 15px; }
@media(min-width:761px) and (max-width:1100px) { .quick-locate { left:15px;width:calc(100% - 155px); }.quick-locate span { font-size:12px; }.quick-locate kbd { display:none; }.map-top-right { right:15px; }.map-settings-button { padding:10px 8px; }.view-legend { left:15px;width:240px; }.map-context { left:15px; }.map-controls { right:15px; } }
@media(max-width:760px) {
 .quick-locate { top:15px;left:14px;width:calc(100% - 146px);gap:8px;padding:10px;min-height:45px; }.quick-locate span { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px; }.quick-locate kbd { display:none; }
 .map-top-right { top:15px;right:14px; }.map-settings-button { min-height:45px;padding:9px;font-size:12px; }.settings-panel { top:69px;right:14px; }
 .map-title { top:81px;left:20px; }.map-title h2 { font-size:37px; }.north-mark { top:76px;right:26px; }
 .view-legend { left:14px;right:14px;top:76px;bottom:auto;width:auto;max-width:none;padding:11px 13px; }.view-key-row { font-size:12px;min-height:25px;grid-template-columns:12px 1fr; }.view-key-row small { display:none; }#viewLegendRows { display:grid;grid-template-columns:1fr 1fr;gap:0 12px;max-height:150px; }.view-legend-heading { margin-bottom:4px; }.view-legend-heading strong,.view-legend-heading button { font-size:13px; }.map-title,.north-mark { display:none; }
 .map-context { left:14px;bottom:101px;max-width:calc(100% - 88px);padding:7px 10px; }.map-context-title { font-size:15px; }.map-context-desc { font-size:11px;line-height:1.35;max-width:none; }
 .map-controls { right:14px;bottom:105px; }.map-attribution { bottom:2px;left:7px;right:7px;max-height:32px;font-size:9px; }.background-status { top:72px;max-width:calc(100% - 65px);width:max-content; }
 .mobile-open .view-legend,.mobile-open .map-context { visibility:hidden; }.dossier { max-height:calc(100dvh - var(--header) - 142px); }
}
@media(max-height:600px) { .view-legend { bottom:80px; }.view-key-row { min-height:22px; }#viewLegendRows { max-height:88px; }.map-title { display:none; } }
@media(max-height:600px) and (max-width:760px) { .view-legend { top:70px;bottom:auto; } }
