/* Perto BR map: map canvas stays mounted; controls occupy edges, sheet owns its scroll. */
.map-shell .workspace{height:100dvh;min-height:0;overflow:hidden}.map-stage{height:auto;min-height:0;flex:1;--map-sheet-size:166px;background:#e7ece2}.map-stage .explore-map{background:#e7ece2}.map-stage .maplibregl-canvas{outline:none}.map-stage .maplibregl-canvas:focus-visible{outline:3px solid #e9b256;outline-offset:-3px}
.map-top{top:20px;left:22px;right:100px}.map-city{border-radius:18px;box-shadow:0 6px 24px #173e351a;border-color:#ffffffb0;background:#fffffff5;min-width:0;max-width:100%;padding:12px 14px}.map-city span{min-width:0}.map-city strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px}.map-city small{font-size:9px;color:#5b8a78;letter-spacing:.12em}.map-city>svg:first-child{color:#147e68}
.map-zoom-dock{position:absolute;z-index:500;right:20px;top:20px;display:flex;flex-direction:column;background:#fffffff5;border:1px solid #ffffffc9;box-shadow:0 6px 24px #173e351a;border-radius:15px;overflow:hidden}.map-zoom-dock .map-round{box-shadow:none;border:0;border-radius:0;background:transparent;width:44px;height:44px;font:400 27px/1 system-ui;color:#244d40}.map-zoom-dock .map-round+button{border-top:1px solid #dfe7de}.map-round:focus-visible,.map-drawer-toggle:focus-visible,.map-city:focus-visible{outline:3px solid #e9b256;outline-offset:-3px}
.map-location-dock{position:absolute;z-index:500;right:20px;bottom:44px;display:flex;align-items:center;gap:8px;transition:opacity .18s}.map-location-dock .map-round{width:44px;height:44px;box-shadow:0 6px 22px #173e3520;border:1px solid #ffffffe0;border-radius:15px}.map-location-dock .location-action{width:auto;min-width:112px;display:flex;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:750}.map-location-dock .location-action.active{background:#234f46;color:#fff}.map-private-note{position:absolute;right:20px;bottom:96px;z-index:500;font-size:10px;color:#2d6077;background:#fffffff2;border-radius:8px;padding:6px 9px;box-shadow:0 3px 13px #153e3710;pointer-events:none}
.map-drawer{border:1px solid #ffffffe0;border-radius:23px;box-shadow:0 12px 40px #183d3425;backdrop-filter:none;background:#fffffff8;padding:12px 18px 17px;max-height:min(66vh,600px);overflow:hidden}.map-drawer-head{align-items:center}.map-drawer-head .eyebrow{font-size:9px;letter-spacing:.12em;margin:0 0 7px;color:#6b9681}.map-drawer-head h1{font-size:23px;letter-spacing:-.9px;margin:0 0 6px;color:#24483b}.map-drawer-head span{font-size:11px;color:#7e8f81}.map-drawer-handle{height:5px;width:42px;margin:0 auto 14px;background:#d3ded2;border-radius:6px;touch-action:none;cursor:ns-resize;position:relative}.map-drawer-handle:before{content:"";position:absolute;inset:-9px -24px}.map-drawer-body{max-height:min(48vh,450px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-top:1px}.map-view-tabs{margin:18px 0 14px;gap:6px}.map-view-tabs button{min-height:42px;border-radius:12px;font-size:11px;font-weight:700;background:#f3f6ef;border-color:#e5ebdf;color:#738773}.map-view-tabs button[aria-selected=true]{background:#244f41;border-color:#244f41}.map-empty{background:#f3f6ef;border-color:#e3eadd}.map-story{border-radius:15px;border-color:#e6ecdf;min-height:72px}.map-story strong{font-size:13px}.map-story small{font-size:11px}.map-story em{font-size:11px;color:#7a897c;line-height:1.4}.map-story-icon{background:#e3eee1;color:#327f65;width:36px;height:36px;flex-shrink:0}.map-panel-note{font-size:10px}.map-drawer-toggle{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border:0;background:#edf3e7;border-radius:14px;color:#466b50}.map-drawer-toggle svg{height:18px;width:18px;fill:none;stroke:currentColor;stroke-width:2;transform:rotate(-90deg);transition:transform .2s}.map-drawer.expanded .map-drawer-toggle svg{transform:rotate(90deg)}
.map-network-status{position:absolute;z-index:450;top:92px;left:22px;max-width:calc(100% - 105px);border-radius:9px;padding:7px 10px;background:#fff9e9;color:#796547;font-size:11px;box-shadow:0 2px 12px #173e3510}.map-network-status[hidden],.map-private-note[hidden]{display:none}.map-attribution{bottom:10px;right:18px;top:auto;font-size:9px;line-height:1.5;z-index:501;background:#fffffff0;color:#5b776b;border-radius:5px;max-width:calc(100% - 36px)}.map-unavailable{max-width:340px;padding:28px;margin:130px auto 0;color:#365347;font-size:14px;line-height:1.6}.map-unavailable strong{font-size:20px}
@media(min-width:721px){.map-drawer{left:22px;bottom:24px;width:min(390px,calc(100% - 100px))}.map-drawer:not(.expanded){max-height:calc(100% - 125px)}.map-drawer-handle{display:none}.map-drawer-toggle{display:none}.map-drawer-body{max-height:min(48vh,calc(100dvh - 330px))}}
@media(max-width:720px){.map-shell .workspace{height:100dvh;min-height:0;padding:0 0 calc(63px + env(safe-area-inset-bottom))}.map-shell .mobile-header{height:60px;min-height:60px;position:relative}.map-stage{height:auto;min-height:0;--map-sheet-size:126px}.map-top{top:12px;left:max(12px,env(safe-area-inset-left));right:74px}.map-city{padding:10px 12px;min-height:55px;border-radius:17px;max-width:100%;gap:9px}.map-city strong{font-size:13px}.map-city small{font-size:8px;margin-bottom:4px}.map-zoom-dock{top:12px;right:max(12px,env(safe-area-inset-right));border-radius:14px}.map-attribution{left:12px;right:auto;top:76px;bottom:auto;font-size:8px;max-width:calc(100% - 82px);padding:3px 5px;line-height:1.45}.map-network-status{top:108px;left:12px;font-size:10px}.map-location-dock{right:max(12px,env(safe-area-inset-right));bottom:calc(var(--map-sheet-size) + 16px);gap:7px}.map-location-dock .map-round{height:44px}.map-private-note{bottom:calc(var(--map-sheet-size) + 67px);right:12px;font-size:9px}.map-stage.drawer-open .map-location-dock,.map-stage.drawer-open .map-private-note{opacity:0;pointer-events:none}.map-drawer{left:0;bottom:0;width:100%;border-radius:24px 24px 0 0;padding:12px 17px 18px;box-shadow:0 -8px 28px #183d341a;border-bottom:0;transition:height .2s}.map-drawer:not(.expanded){height:var(--map-sheet-size);max-height:var(--map-sheet-size);overflow:hidden}.map-drawer:not(.expanded) .map-drawer-body{display:none}.map-drawer.expanded{height:auto;max-height:calc(100% - 118px)}.map-drawer.expanded .map-drawer-body{max-height:calc(100dvh - 370px);min-height:90px}.map-drawer-handle{margin-bottom:16px}.map-drawer-head h1{font-size:22px;letter-spacing:-.8px}.map-drawer-head span{font-size:10px}.map-drawer-head .eyebrow{font-size:8px;margin-bottom:5px}.map-drawer-toggle{width:42px;height:42px}.map-view-tabs button{font-size:10px;min-height:42px}}
@media(max-height:600px) and (max-width:720px){.map-stage{--map-sheet-size:108px}.map-drawer-head .eyebrow{display:none}.map-drawer-handle{margin-bottom:13px}.map-drawer-head h1{font-size:19px}.map-drawer.expanded{max-height:calc(100% - 90px)}.map-drawer.expanded .map-drawer-body{max-height:calc(100dvh - 290px)}.map-location-dock .city-action{display:none}}
@media(prefers-reduced-motion:reduce){.map-drawer,.map-drawer-toggle svg,.map-location-dock{transition:none}}

/* v35: contextual people filter stays accessible on small screens. */
.map-stage .map-view-tabs{display:flex;overflow-x:auto;scrollbar-width:thin;padding-bottom:3px}.map-stage .map-view-tabs button{flex:0 0 auto;min-width:62px;padding-inline:10px}.map-test-shortcut{font-size:10px;line-height:1.4}
