/* Galway Pulse v18 — night mode with genuinely dark map and surfaces. */
.brand-logo{display:block;width:43px;height:43px;flex:none;border-radius:13px;box-shadow:0 7px 18px #07161b50}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;padding:7px 12px;background:#25424d;border:1px solid #45646c;border-radius:999px;color:#e6f5ef;font-size:11px;font-weight:800;letter-spacing:.25px;transition:background .2s,border-color .2s}
.theme-toggle:hover{background:#355865;border-color:#73a4a5}
.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .theme-sun{display:none}
:root[data-theme="dark"] .theme-toggle .theme-sun{display:block}
:root[data-theme="dark"] .theme-toggle .theme-moon{display:none}
:root[data-theme="dark"]{
  --ink:#e7f3f2;--ink2:#c6d9dc;--cream:#081923;--paper:#142a35;
  --line:#2b4650;--mute:#9fb7be;--teal:#68d2b8;--green:#74cbb0;
  --orange:#ff9b60;--shadow:0 15px 50px #020c1250;
  color-scheme:dark;
}
:root[data-theme="dark"] body{background:var(--cream);color:var(--ink)}
:root[data-theme="dark"] .topbar{background:#06151e;color:#f1f8f6;border-bottom:1px solid #203945}
:root[data-theme="dark"] .hero{background:linear-gradient(110deg,#091e29,#0f2c37);color:#f7f9f6}
:root[data-theme="dark"] .hero-description{color:#b0cbd0}
:root[data-theme="dark"] .theme-toggle{background:#122b36;border-color:#4a7880;color:#ffcf92}
:root[data-theme="dark"] .brand-sub{color:#a5c0c5}
:root[data-theme="dark"] .tiny-time{color:#b8ccd1}
:root[data-theme="dark"] .pilot-badge{border-color:#36545e;color:#bdd4d7}
:root[data-theme="dark"] .tabs{background:#142b35;border:1px solid #2d4851}
:root[data-theme="dark"] .tab{color:#b1c4c7}
:root[data-theme="dark"] .tab.active{background:#28515a;color:#fff;box-shadow:0 3px 15px #010a1055}
:root[data-theme="dark"] .button{background:#16313c;color:#e4f1f1;border-color:#34505a}
:root[data-theme="dark"] .button.dark{background:#28766e;color:#fff;border-color:#319b89}
:root[data-theme="dark"] .button:hover,:root[data-theme="dark"] .tab:hover{filter:brightness(1.14)}
:root[data-theme="dark"] .status-strip{background:#242f34;border-color:#66563c;color:#e7c692}
:root[data-theme="dark"] .status-strip .source{color:#c7aa83}
:root[data-theme="dark"] .section-caption,:root[data-theme="dark"] .map-layer-note{color:#9fb7bc}
:root[data-theme="dark"] .map-summary-card,:root[data-theme="dark"] .map-layer-toolbar,
:root[data-theme="dark"] .map-side,:root[data-theme="dark"] .about-box,
:root[data-theme="dark"] .road-card{background:#132b35;border-color:#294652;color:#e8f4f3}
:root[data-theme="dark"] .map-summary-card .summary-eyebrow,:root[data-theme="dark"] .map-summary-card small,
:root[data-theme="dark"] .map-side p,:root[data-theme="dark"] .map-sidebar-foot{color:#a5c0c5}
:root[data-theme="dark"] .map-layer-toggle{background:#1e3741;border-color:#37545d;color:#c5d8da}
:root[data-theme="dark"] .map-layer-toggle[aria-pressed="true"]{background:#26786d;border-color:#46af96;color:#fff}
:root[data-theme="dark"] .map-layer-select{background:#19333f;border-color:#3b5963;color:#e3f0ef}
:root[data-theme="dark"] .map-layer-select option{background:#19333f;color:#e3f0ef}
:root[data-theme="dark"] .map-tool-label{color:#a7c2c5}
:root[data-theme="dark"] .map-frame.street-map-ready{background:#f5f7f4;border-color:#34525d}
:root[data-theme="dark"] .street-map-ready .leaflet-container{background:#f5f7f4}
:root[data-theme="dark"] .street-map-ready .leaflet-tile-pane{filter:none}
:root[data-theme="dark"] .street-map-ready .leaflet-roadContext-pane{filter:none}
:root[data-theme="dark"] .street-map-ready.map-no-webgl #trafficStreetMap{background:#f5f7f4}
:root[data-theme="dark"] .street-map-ready .maplibregl-ctrl-group,
:root[data-theme="dark"] .street-map-ready .leaflet-bar{border-color:#34525d}
:root[data-theme="dark"] .street-map-ready .maplibregl-ctrl-group button,
:root[data-theme="dark"] .street-map-ready .leaflet-bar a{background-color:#1a3642;color:#eaf4f3}
:root[data-theme="dark"] .street-map-ready .maplibregl-ctrl-icon{filter:invert(1)}
:root[data-theme="dark"] .street-map-ready .maplibregl-ctrl-attrib,
:root[data-theme="dark"] .street-map-ready .leaflet-control-attribution{background:#152c37dd;color:#b8cdd0}
:root[data-theme="dark"] .street-map-ready .maplibregl-ctrl-attrib a,
:root[data-theme="dark"] .street-map-ready .leaflet-control-attribution a{color:#7ed4c6}
:root[data-theme="dark"] .map-lede button{background:#143440ed;border-color:#42616c;color:#edf8f4}
:root[data-theme="dark"] .map-lede #mapCloseAll{background:#a63d38;color:#fff;border-color:#ff8c7d}
:root[data-theme="dark"] .map-pin-coverage{color:#ffca80}
:root[data-theme="dark"] .map-key{background:#132d39ed;border:1px solid #42606a;color:#d1e1e2}
:root[data-theme="dark"] .map-key-title{color:#d8e9e7}
:root[data-theme="dark"] .map-key-note{color:#afc5c8}
:root[data-theme="dark"] .map-list-item{background:#18333f;border-color:#33525d;color:#eaf5f3}
:root[data-theme="dark"] .map-list-item:hover,:root[data-theme="dark"] .map-list-item.is-selected{background:#24515a;border-color:#529f92}
:root[data-theme="dark"] .map-list-copy small,:root[data-theme="dark"] .map-list-time small{color:#afc8ca}
:root[data-theme="dark"] .map-row button{background:#284b56;color:#c4ebe2}
:root[data-theme="dark"] .map-row small{color:#abc0c6}
:root[data-theme="dark"] .road-card{border-color:#2c4c57}
:root[data-theme="dark"] .road-card:hover{box-shadow:0 18px 50px #0009}
:root[data-theme="dark"] .direction,:root[data-theme="dark"] .confidence,
:root[data-theme="dark"] .metric-label,:root[data-theme="dark"] .routes{color:#aac3c7}
:root[data-theme="dark"] .confidence b,:root[data-theme="dark"] .about-box p,
:root[data-theme="dark"] .about-box li{color:#d0e1e1}
:root[data-theme="dark"] .line{background:#2c4d58}
:root[data-theme="dark"] .bookmark{background:#233e49;border-color:#3e5b66;color:#a5c7c6}
:root[data-theme="dark"] .bookmark.selected{background:#503c35;border-color:#996b55;color:#ffb17a}
:root[data-theme="dark"] .chip{color:#bed2d3}
:root[data-theme="dark"] .chip.active{background:#2b7671;color:#fff;border-color:#50a994}
:root[data-theme="dark"] .info-panel{background:#163740;border-color:#35656a}
:root[data-theme="dark"] .info-symbol{background:#2b6064;color:#d7f1e9}
:root[data-theme="dark"] .info-panel p{color:#bfddda}
:root[data-theme="dark"] .map-route-callout{background:#333951;color:#d5d6f3}
:root[data-theme="dark"] .bus-trend{border-color:#34515d}
:root[data-theme="dark"] .bus-trend-track{background:#31515c}
:root[data-theme="dark"] .bus-trend-label{color:#abc3c5}
:root[data-theme="dark"] .bus-trend-bottom{color:#adc4c5}
:root[data-theme="dark"] .map-webgl-warning{background:#16313ded;border-color:#3b5d65;color:#dbefec}
:root[data-theme="dark"] .map-webgl-warning a{color:#9ee1d2}
:root[data-theme="dark"] .street-map-ready .maplibregl-popup-content,
:root[data-theme="dark"] .street-map-ready .leaflet-popup-content-wrapper{background:#1d3742;color:#ecf6f4}
:root[data-theme="dark"] .street-map-ready .maplibregl-popup-tip,
:root[data-theme="dark"] .street-map-ready .leaflet-popup-tip{border-top-color:#1d3742;background:#1d3742}
:root[data-theme="dark"] .hotspot-popup h3,:root[data-theme="dark"] .map-pop-head,
:root[data-theme="dark"] .map-pop-metric b{color:#f0f7f4}
:root[data-theme="dark"] .hotspot-popup p,:root[data-theme="dark"] .hotspot-popup small,
:root[data-theme="dark"] .map-pop-note,:root[data-theme="dark"] .map-pop-route,
:root[data-theme="dark"] .map-pop-metric span{color:#b8d0d1}
:root[data-theme="dark"] .hotspot-popup>span{color:#8fdac9}
:root[data-theme="dark"] .hotspot-popup>strong{color:#ffc084}
:root[data-theme="dark"] .hotspot-popup small,:root[data-theme="dark"] .map-pop-metrics{border-color:#44606a}
:root[data-theme="dark"] .pulse-brief,:root[data-theme="dark"] .hotspot-overview{background:#0e2630;border-color:#335360}
:root[data-theme="dark"] .foot{background:#05131b}
@media(max-width:700px){
  .theme-toggle{padding:7px 10px}.theme-toggle-text{display:none}
  .top-right{gap:9px}.brand-logo{width:36px;height:36px}
}
@media(max-width:480px){.topbar-inner{min-height:67px}.pilot-badge,.tiny-time{display:none}}
