/* Map-first layout, scoped to the signal map only. */
/* Sprint 3: improve interface readability without changing basemap/provider. */
.signal-map-page .site-ts,
.signal-map-page .md-pill,
.signal-map-page .md-ctrl,
.signal-map-page .md-panel__count,
.signal-map-page .stream-count { color: #b8c7d4; }
.signal-map-page .live-badge { color: #c7d4de; }
.signal-map-page #map .leaflet-control-attribution { color: #b8c7d4; }
.signal-map-page #map .leaflet-control-attribution a { color: #d0e2ef; }
.signal-map-page { --map-header: 60px; margin: 0; height: 100vh; height: 100dvh; overflow: hidden; }
.signal-map-page .site-main { position: fixed; inset: 0; padding: 0; min-height: 0; }
.signal-map-page .md-shell { position: absolute; inset: 0; width: 100%; height: 100%; }
.signal-map-page #map { position: absolute; inset: 0; }
.signal-map-page .site-header { position: fixed; top: 0; left: 0; right: 0; height: auto; min-height: var(--map-header); z-index: 800; background: rgba(8,13,18,.91); }
.signal-map-page .site-header__inner { min-height: 60px; height: auto; max-width: none; padding: 0 12px; gap: 12px; }
.signal-map-page .site-tagline, .signal-map-page .class-banner, .signal-map-page .site-footer { display: none; }
.signal-map-page .md-sidebar, .signal-map-page .md-controls { top: calc(var(--map-header) + 8px); }
.signal-map-page .md-panel { top: calc(var(--map-header) + 8px); max-height: calc(100% - var(--map-header) - 68px); }
.signal-map-page .sd-drawer { top: calc(var(--map-header) + 8px); height: auto; bottom: 52px; }
.signal-map-page .ac-bar, .signal-map-page .md-shell.drawer-open .ac-bar { top: calc(var(--map-header) + 8px); }
.signal-map-page .md-ticker { bottom: 0; height: 28px; }
.signal-map-page #map .leaflet-bottom { bottom: 30px; }
.signal-map-page .map-tools-trigger, .signal-map-page .map-search-trigger { display: none; }
.signal-map-page .map-header-control { min-width: 44px; min-height: 44px; padding: 6px 8px; background: transparent; color: var(--text-primary); border: 1px solid var(--border-dim); border-radius: var(--r-sm); font: inherit; cursor: pointer; }
.signal-map-page .map-menu-extras { display: flex; align-items: center; gap: 12px; }
.signal-map-page :focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 768px) {
  .signal-map-page .site-header__inner { display: flex; flex-wrap: nowrap; min-height: 60px; gap: 6px; padding: env(safe-area-inset-top, 0px) 8px 0; }
  .signal-map-page .site-header__brand { flex: 1 1 auto; min-width: 0; }
  .signal-map-page .site-logo { font-size: 1.2rem; }
  .signal-map-page .map-tools-trigger, .signal-map-page .map-search-trigger { display: block; flex: 0 0 auto; }
  .signal-map-page .nav-toggle { display: flex; flex: 0 0 44px; width: 44px; height: 44px; margin: 0; }
  .signal-map-page .site-header__meta { display: contents; }
  .signal-map-page .site-header__meta > .site-search { display: none; position: absolute !important; top: 100%; left: 8px; right: 8px; padding: 8px; background: var(--bg-void); border: 1px solid var(--border-dim); }
  .signal-map-page .site-search.map-search-open { display: block; }
  .signal-map-page #site-search { width: 100% !important; min-height: 44px; font-size: 16px !important; }
  .signal-map-page .site-nav { display: none; position: absolute; top: 100%; left: auto; right: 8px; width: min(300px, calc(100vw - 16px)); max-height: calc(100dvh - var(--map-header) - 56px); overflow-y: auto; flex-direction: column; align-items: stretch; margin: 0; padding: 8px; background: var(--bg-void); border: 1px solid var(--border-dim); box-sizing: border-box; }
  .signal-map-page .site-nav--open { display: flex; }
  .signal-map-page .site-nav__link { min-height: 44px; display: flex; align-items: center; }
  .signal-map-page .map-menu-extras { flex-direction: column; align-items: stretch; gap: 8px; }
  .signal-map-page .map-menu-extras .site-ts { display: block; align-self: stretch; text-align: left; }
  .signal-map-page .map-menu-extras .site-settings-btn { min-width: 44px; min-height: 44px; align-self: flex-start; }
  .signal-map-page .md-sidebar { display: none; position: fixed; top: var(--map-header); left: 8px; right: auto; bottom: auto; width: min(240px, calc(100vw - 16px)); max-height: calc(100dvh - var(--map-header) - 56px); overflow-y: auto; padding: 6px; gap: 4px; z-index: 850; }
  .signal-map-page .md-sidebar.map-tools-open { display: flex; }
  .signal-map-page .md-pill { min-height: 44px; padding: 8px; }
  /* Sprint 2: compact symbols without shrinking the touch targets. */
  .signal-map-page .md-controls { width: 54px; padding: 4px; gap: 4px; box-sizing: border-box; }
  .signal-map-page .md-controls .md-ctrl { width: 44px; min-width: 44px; min-height: 44px; padding: 0; display: flex; align-items: center; justify-content: center; }
  .signal-map-page .md-controls .md-ctrl[hidden] { display: none; }
  .signal-map-page .md-ctrl__label { display: none; }
  .signal-map-page .md-controls .md-ctrl__icon { font-size: 22px; margin: 0; }
  .signal-map-page .md-controls #ac-home { width: 44px; font-size: 0; }
  .signal-map-page .ac-bar, .signal-map-page .md-shell.drawer-open .ac-bar { right: 74px; }
  .signal-map-page .md-panel, .signal-map-page .md-panel--wide, .signal-map-page .sd-drawer { top: calc(var(--map-header) + 8px); bottom: 52px; height: auto; max-height: calc(100% - var(--map-header) - 60px); }
  .signal-map-page .ac-bar, .signal-map-page .md-shell.drawer-open .ac-bar { left: 8px; right: 74px; top: calc(var(--map-header) + 8px); }
}
@media (max-width: 360px) {
  .signal-map-page .site-logo { font-size: 1.05rem; }
}
