.geography-panel { background:#fff; border:1px solid #D1B779; border-radius:1.25rem; overflow:hidden; min-width:0; }
.geography-preview { width:min(1100px,calc(100% - 2rem)); margin:2rem auto; }
.geo-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; padding:.75rem; border-bottom:1px solid #D1B779; }
.geo-toolbar button { min-height:44px; padding:.5rem .8rem; border:1px solid #B38A39; border-radius:.65rem; background:#fff; cursor:pointer; }
.geo-north { margin-left:auto; padding:.4rem; }
.geo-map-frame { height:min(72vh,680px); min-height:360px; background:#fff; }
.geo-map-svg { display:block; width:100%; height:100%; touch-action:none; cursor:grab; background:#fff; }
.geo-map-svg:active { cursor:grabbing; }
.geo-map-svg:focus-visible { outline:3px solid #765513; outline-offset:-4px; }
.geo-commune { fill:#fff; fill-rule:evenodd; stroke:#B38A39; stroke-width:1.2px; vector-effect:non-scaling-stroke; }
.geo-roads path { fill:none; pointer-events:none; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.geo-road-local { stroke:#D1B779; stroke-width:.7px; }
.geo-road-main { stroke:#B38A39; stroke-width:1.5px; }
.geo-point { cursor:pointer; }
.geo-point circle { fill:#fff; stroke:#765513; stroke-width:1.4px; vector-effect:non-scaling-stroke; }
.geo-point.is-selected circle { stroke:#765513; stroke-width:3px; }
.geo-point text { fill:#fff; stroke:#765513; stroke-width:1.15px; paint-order:stroke fill; vector-effect:non-scaling-stroke; font-family:system-ui,sans-serif; font-weight:650; -webkit-text-stroke:0; text-shadow:none; }
.geo-readout { padding:.65rem .9rem; margin:0; border-top:1px solid #D1B779; min-height:3.1rem; }
.geo-selectors { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; padding:.5rem .9rem; }
.geo-selectors label { display:grid; gap:.35rem; min-width:0; }
.geo-selectors select { width:100%; min-width:0; max-width:100%; min-height:44px; background:#fff; border:1px solid #B38A39; border-radius:.5rem; }
.geo-attribution { padding:.5rem .9rem .9rem; margin:0; font-size:.85rem; line-height:1.5; }
.geography-panel.is-compact .geo-map-frame { height:480px; }
@media (max-width:600px) { .geo-map-frame,.geography-panel.is-compact .geo-map-frame { height:520px; min-height:320px; } .geo-selectors { grid-template-columns:1fr; } .geo-toolbar { gap:.3rem; } .geo-toolbar button { padding:.45rem .6rem; } }
@media (prefers-reduced-motion:reduce) { .geography-panel * { scroll-behavior:auto; } }
