/* Winter and Layers share the existing right-hand control rail. */
.imagery-controls { width:46px; }
.imagery-controls #winter-toggle, .imagery-controls #toolbox-toggle { width:44px; height:44px; }
.imagery-controls #toolbox-toggle { border-radius:0 0 13px 13px; }
.imagery-controls #winter-toggle[hidden] + #toolbox-toggle { border-radius:13px; }
#winter-toggle[data-unavailable=true]::after { content:'!'; position:absolute; top:3px; right:3px; width:13px; height:13px; border-radius:50%; background:#a85a23; color:#fff; font:bold 10px/13px system-ui,sans-serif; }
#winter-toggle[aria-disabled=true] { opacity:.55; }
.map-offline-indicator { position:absolute; right:3px; top:2px; width:14px; height:14px; border-radius:50%; background:#28689a; color:white; font:bold 12px/14px system-ui,sans-serif; }
.map-tools .map-layers-panel { position:fixed; top:var(--map-layers-top,100px); left:var(--map-layers-left,var(--edge)); right:auto; bottom:auto; display:block; width:var(--map-layers-width,260px); max-width:calc(100vw - 2 * var(--edge)); max-height:min(560px,calc(var(--map-layers-space, 60dvh) - env(safe-area-inset-bottom))); overflow:auto; overscroll-behavior:contain; padding:8px 12px 12px; border-radius:16px; }
#map-mode-slot:empty, #map-imagery-status:empty, #map-imagery-details:empty { display:none; }
.map-layers-panel #native-offline-status { position:static; display:block; width:100%; max-width:100%; min-height:44px; margin:0 0 10px; padding:9px 10px; border:1px solid var(--line); border-radius:10px; box-shadow:none; font-size:11px; overflow-wrap:anywhere; }
.map-layers-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.map-layers-heading h2 { font-size:16px; font-weight:600; margin:0; }
.map-layers-heading .close-button { position:static; flex:none; }
.map-layer-options { display:grid; gap:3px; }
.map-layer-options .icon-button { width:100%; height:auto; min-height:44px; padding:10px; gap:12px; justify-content:flex-start; border-radius:10px; text-align:left; font-size:13px; line-height:1.4; }
.map-layer-options .icon-button span { min-width:0; }
.map-layer-options [data-tip]::before { display:none!important; }
.map-layer-options .icon-button[aria-pressed=true]::after { content:'✓'; width:auto; height:auto; background:none; position:static; margin-left:auto; font-size:14px; }
.map-view-control { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:7px; padding:9px 10px 0; border-top:1px solid var(--line); font-size:13px; }
.map-view-control>span { min-width:0; overflow-wrap:anywhere; }
.map-layer-options .map-view-control .view-button { width:auto; min-width:52px; justify-content:center; flex:none; background:#e7ecdf; border:1px solid #cbd3c5; }
.map-route-layers { border-bottom:1px solid var(--line); margin-bottom:5px; padding-bottom:4px; }
.map-route-layers>summary { cursor:pointer; padding:12px 10px; min-height:44px; font-size:13px; font-weight:600; }
.map-route-layers[open]>summary { margin-bottom:3px; }
.public-winter { min-width:0; color:#26372d; font:13px/1.5 system-ui,sans-serif; border-bottom:1px solid var(--line); padding:0 0 7px; margin:0 0 7px; }
.public-winter p { margin:5px 0 10px; overflow-wrap:anywhere; font-size:12px; }
.public-winter .public-winter-caption { color:var(--muted); margin:2px 0 0; font-size:11px; }
.public-winter .public-winter-status { margin:7px 0 0; }
.public-winter summary { cursor:pointer; min-height:44px; padding:12px 0; font-size:12px; }
.public-winter button { padding:10px 12px; min-height:44px; max-width:100%; margin-bottom:8px; border:1px solid #a7b0a2; border-radius:10px; background:transparent; color:inherit; font:inherit; cursor:pointer; }

.public-winter-operations[hidden] { display:none; }
.map-layers-panel :focus-visible, .map-about-content :focus-visible { outline:2px solid #156bc1; outline-offset:2px; }
/* Browser chrome shortens a portrait viewport. Keep one vertical rail, so
   navigation cannot extend beneath and squeeze the adjacent Layers panel. */
@media(max-width:600px) and (min-height:521px) and (max-height:700px) {
  .map-tools { top:calc(82px + env(safe-area-inset-top)); gap:7px; }
}
@media(max-height:520px) {
  .map-tools { top:calc(88px + env(safe-area-inset-top)); }
}
