.maplibregl-map{font:12px/1.5 system-ui,-apple-system,sans-serif}.maplibregl-canvas{outline:none;touch-action:none}.maplibregl-ctrl-group{border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #243e2926}.maplibregl-ctrl-group button{width:38px;height:38px;min-height:38px;border-radius:0;padding:0;display:block}.maplibregl-ctrl-group button .maplibregl-ctrl-icon{display:block;width:100%;height:100%;background-position:center;background-repeat:no-repeat}.maplibregl-ctrl-attrib-button{min-height:24px;min-width:24px;padding:0;border:0}.maplibregl-ctrl-attrib{font-size:10px;line-height:20px;max-width:calc(100vw - 30px)}#map .maplibregl-ctrl-top-left{top:80px;left:6px}#map .maplibregl-ctrl-bottom-right{bottom:var(--map-sheet-visible,56px);transition:bottom 180ms ease}.map-gesture-hint{position:absolute;z-index:2;top:12px;left:58px;right:10px;color:#526c5d;font-size:10px;line-height:1.5;pointer-events:none;width:max-content;max-width:calc(100% - 76px);background:#fffffff2;border-radius:7px;padding:4px 7px}#map .map-gesture-hint{top:196px;left:16px;right:16px;max-width:calc(100% - 32px)}.map-retry{position:absolute;z-index:3;top:52px;left:58px;right:12px;width:auto;padding:7px 10px;min-height:32px;font-size:11px;border:1px solid #d7c9a8;background:#fff9e9;color:#765f28;border-radius:9px}#map .map-retry{top:228px;left:16px}.shimgil-map-marker{display:grid;place-items:center;width:22px;height:22px;cursor:pointer;outline-offset:4px}.shimgil-map-marker .pin{margin:0}.maplibregl-popup-content{padding:8px 11px;border-radius:9px;font-size:12px;max-width:230px;overflow-wrap:anywhere}.maplibregl-popup-content span{line-height:1.5}.mini-map .leaflet-overlay-pane svg{width:auto;height:auto;max-width:none}.leaflet-tile{max-width:none!important;max-height:none!important;object-fit:fill!important;border-radius:0!important}.maplibregl-map .maplibregl-canvas{max-width:none;max-height:none;border-radius:0;transform:none!important}.maplibregl-ctrl-attrib-inner a{font-size:10px}#walk-map .map-gesture-hint{max-width:calc(100% - 76px)}
@media(min-width:760px){#map .maplibregl-ctrl-bottom-right{bottom:0}}@media(max-height:500px){#map .map-gesture-hint{display:none}#map .maplibregl-ctrl-top-left{top:76px}#map .map-retry{top:78px;left:65px;right:100px}}
.map-view-modes{position:absolute;z-index:4;top:10px;left:60px;right:10px;max-width:230px;display:flex;gap:3px;padding:4px;border-radius:12px;background:#ffffffed;box-shadow:0 3px 15px #213b4822;border:1px solid #dce6e1}.map-view-modes button{flex:1;min-width:0;min-height:34px;padding:7px 10px;font-size:12px;line-height:1.3;border:0;border-radius:8px;background:transparent;color:#3d5549;white-space:nowrap}.map-view-modes button[aria-pressed=true]{background:#245f4d;color:#fff;font-weight:700}.map-view-modes button:focus-visible{outline:3px solid #59a4ff;outline-offset:1px}#map .map-view-modes{left:auto;right:16px;top:84px;width:min(230px,calc(100% - 82px))}.map-view-status{position:absolute;top:60px;left:60px;right:10px;z-index:4;background:#fff6de;color:#6d5121;font-size:11px;line-height:1.5;border-radius:8px;padding:6px}.map-view-status:empty{display:none}#map .map-view-status{top:228px;left:16px;right:16px}.map-view-modes~.map-gesture-hint{top:60px}#walk-map .map-gesture-hint{top:60px}.mini-map .map-view-modes{display:none}.mini-map .map-gesture-hint{top:10px}@media(max-height:500px){#map .map-view-status{top:130px;left:70px;right:16px}}

.map-note{pointer-events:none}.map-view-modes{z-index:510}
/* One control cycles through views without moving its neighbors. */
.map-view-modes.map-view-cycle{width:128px;max-width:128px;right:auto;padding:0;overflow:hidden}
#map .map-view-modes.map-view-cycle{width:128px;max-width:128px}
.map-view-modes.map-view-cycle button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:42px;padding:8px;color:#245f4d;background:#fff;font-weight:700}
.map-view-cycle button>svg{flex:0 0 16px;width:16px;height:16px}
.map-view-cycle .map-view-label{min-width:0;white-space:nowrap;font-size:12px;line-height:1.35}
.map-view-cycle .map-view-next{flex:0 0 12px;font-size:16px;line-height:1}
.map-view-cycle button:hover{background:#edf5f1}
.map-view-cycle button:active{transform:none;background:#e1eee7}
.maplibregl-ctrl-group button .maplibregl-ctrl-icon{background-size:18px 18px}

html[data-ui-mode=dark] :is(.leaflet-container,.maplibregl-map){background:#172720;color:#eff8f2}
html[data-ui-mode=dark] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9)}
html[data-ui-mode=dark] :is(.map-gesture-hint,.maplibregl-ctrl-group,.maplibregl-popup-content,.leaflet-popup-content-wrapper,.leaflet-popup-tip,.leaflet-tooltip,.leaflet-control-zoom a){background:#20352c;color:#eff8f2;border-color:#466253}
html[data-ui-mode=dark] .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert(1)}
html[data-ui-mode=dark] :is(.maplibregl-ctrl-attrib,.leaflet-control-attribution){background:#172720ed;color:#c7d9ce}
html[data-ui-mode=dark] :is(.maplibregl-ctrl-attrib,.leaflet-control-attribution) a{color:#b5dbe7}

html[data-ui-mode=dark] #map,html[data-ui-mode=dark] .mini-map.leaflet-container,html[data-ui-mode=dark] #walk-map{background:#172720}

/* Attribution stays available behind a native, keyboard-operable information
   disclosure. Its expanded text grows inward and preserves all provider links. */
:is(.maplibregl-ctrl-attrib,.leaflet-control).shimgil-attribution{position:relative;box-sizing:border-box;max-width:min(320px,calc(100vw - 24px));min-height:32px;margin:6px;padding:0;border:1px solid #d4e1d9;border-radius:17px;background:#fffffff2;color:#254c3c;box-shadow:0 2px 9px #173b2c1a;font-size:10px;line-height:1.6}
:is(.maplibregl-ctrl-attrib,.leaflet-control).shimgil-attribution>.shimgil-attribution-toggle{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;min-width:30px;min-height:30px;margin-left:auto;padding:0;border:0;border-radius:50%;background:none;list-style:none;cursor:pointer;touch-action:manipulation;outline-offset:2px;color:inherit}
.shimgil-attribution .shimgil-attribution-toggle::-webkit-details-marker{display:none}
.shimgil-attribution .shimgil-attribution-toggle>span{display:grid;place-items:center;width:18px;height:18px;border:1.5px solid currentColor;border-radius:50%;font:700 12px/1 system-ui,sans-serif}
.shimgil-attribution .shimgil-attribution-toggle:focus-visible{outline:3px solid #59a4ff;box-shadow:none}
.shimgil-attribution[open]{padding:0 0 6px}
.shimgil-attribution[open]>.maplibregl-ctrl-attrib-inner,.shimgil-attribution[open]>.leaflet-control-attribution{display:block;padding:0 10px;background:none;font-size:10px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.shimgil-attribution:not([open])>.maplibregl-ctrl-attrib-inner,.shimgil-attribution:not([open])>.leaflet-control-attribution{display:none}
.shimgil-attribution a{font-size:inherit;color:inherit;text-decoration:underline}
#map .leaflet-bottom.leaflet-right:has(>.shimgil-attribution){bottom:var(--map-sheet-visible,56px);transition:bottom 180ms ease}
@media(min-width:760px){#map .leaflet-bottom.leaflet-right:has(>.shimgil-attribution){bottom:0}}
html[data-ui-mode=dark] .shimgil-attribution{background:#172720f5;color:#d9e8de;border-color:#466253}
@media(prefers-reduced-motion:reduce){#map .leaflet-bottom.leaflet-right:has(>.shimgil-attribution){transition:none}}

/* Before GPS is ready there is no map canvas or nationwide tile request. */
#map.map-start-pending{display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#eef6f0,#dfece3)}
#map.map-start-pending::before{content:'';display:block;width:64px;height:64px;margin-top:-80px;border:1px solid #cadfd0;border-radius:50%;background:radial-gradient(circle,#448066 0 4px,transparent 4.5px 15px,#448066 15.5px 17px,transparent 17.5px),#ffffffcf;box-shadow:0 8px 30px #2e604313}
#map-page .map-start-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
#map-page .map-start-actions>button{flex:1 1 150px;font-size:13px;min-height:44px;white-space:normal}
#map-page .map-start-actions>small{flex-basis:100%;color:#5c7165;font-size:11px;line-height:1.5}
html[data-ui-mode=dark] #map.map-start-pending{background:radial-gradient(circle at 50% 42%,#213d2e,#172720)}
html[data-ui-mode=dark] #map.map-start-pending::before{background:radial-gradient(circle,#b8dcc5 0 4px,transparent 4.5px 15px,#b8dcc5 15.5px 17px,transparent 17.5px),#223b2ee8;border-color:#496957}
