/* Galway Traffic Pulse: Atlantic midnight-blue identity.
   Keep traffic severity colours untouched: green / amber / red / purple. */
:root:not([data-theme="dark"]){
  --ink:#071d3b;
  --ink2:#153458;
  --teal:#245a9a;
  --cream:#eef2f7;
  --paper:#ffffff;
  --line:#d8e1ed;
}
body{background:#eef2f7}
.topbar{background:#061832;border-bottom-color:#24426a}
.hero{background:linear-gradient(112deg,#071a38 0%,#0c2a51 72%,#163f67 100%)}
.brand-mark{background:#d8ab5b}
.brand-mark span{background:#071d3b}
.hero h1 em{color:#8ebfe7}
.tabs .tab.active{background:#123a68;color:#fff}
.button.dark{background:#143f71;border-color:#23568a;color:#fff}
.map-layer-toggle[aria-pressed="true"]{background:#10365f;border-color:#10365f;color:#fff}
.traffic-thermometer{background:linear-gradient(108deg,#071a38,#103862)}
.map-summary-card.positive strong{color:#246b8d}
.foot{background:#071a35}
.theme-toggle{background:#15355b;border-color:#42628a}
.pulse-brief,.hotspot-overview{background:#0b294e;border-color:#294c78}
.pulse-pick,.hotspot-item{background:#183c65;border-color:#36587d}
.pulse-pick:hover,.hotspot-item:hover,.hotspot-item.is-selected{background:#23517d}
.pulse-brief-kicker,.hotspot-kicker,.pulse-priority-label{color:#a1c5ed}
.hotspot-status,.hotspot-guide,.pulse-incident-line,.pulse-empty{color:#c5d8ec}
.map-layer-toolbar,.map-summary-card,.road-card,.map-side,.about-box{border-color:#d7e2ee}
.map-layer-toggle{background:#eff4fa;border-color:#cedbe9;color:#214769}
.map-layer-select{background:#f0f5fb;border-color:#cddce9;color:#143e68}
.map-tool-label,.section-caption,.map-layer-note{color:#567391}
.map-summary-card .summary-eyebrow,.map-summary-card small{color:#627e9c}
.map-key,.map-lede,.map-pin-coverage{border-color:#315677}
.map-lede-title{background:#082c56ed}
.map-lede button{color:#173b66;border-color:#cad9e7}
.map-key{color:#355474;background:#fcfdfff0}
.map-key-title{color:#173f67}
.map-key-note{color:#5a7491}
.map-list-item{background:#fff;border-color:#d7e2ee;color:#163c64}
.map-list-item:hover,.map-list-item.is-selected{background:#eef4fb;border-color:#9ab9d7}
.map-list-copy small,.map-sidebar-foot{color:#67809c}
.map-frame.street-map-ready{background:#edf2f8}
.map-side h3,.road-name{color:#102f54}
.mini-map-art .art-badge{background:#0a2b52ed}
.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px}
.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;padding:6px;gap:6px;background:#dce7f4;border:1px solid #c9d8e9;border-radius:17px}
.tabs .tab{min-width:0;justify-content:center;gap:11px;text-align:left;border-radius:12px;padding:13px 14px;color:#244a75}
.tabs .tab.active{background:#103b6f;color:#fff;box-shadow:0 5px 15px #0b31562c}
.tabs .tab:hover:not(.active){background:#edf4fc}
.tabs .tab-icon{font-size:23px;min-width:40px}
.tabs .vehicle-icon svg,.tabs .corridor-icon svg{display:block;width:40px;height:29px}
.tabs .tab-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.tabs .tab-copy strong{font:800 13px/1.2 'Space Grotesk',sans-serif}
.tabs .tab-copy small{font-size:10px;font-weight:650;line-height:1.2;opacity:.77}
.tabs .double-decker-icon svg{display:block;width:40px;height:29px}
.traffic-thermometer{padding:10px 15px 9px;border-radius:13px;margin-bottom:10px}
.gps-history-note{background:#e7f0fa;border:1px solid #c7daed;color:#315b83;border-radius:10px;font-size:11px;font-weight:700;padding:9px 12px;margin:-4px 0 12px}
body[data-map-mode="bus"] .gps-history-note{display:none}
.traffic-thermo-kicker{font-size:9px;letter-spacing:1px}
.traffic-thermo-reading{margin-top:2px;gap:10px}
.traffic-thermo-reading strong{font-size:18px}
.traffic-thermo-reading span{font-size:13px}
.traffic-thermo-trend{font-size:10px;padding:4px 8px}
.traffic-thermo-scale{height:9px;margin-top:9px}
.traffic-thermo-pointer{top:-4px;height:17px;width:3px}
.traffic-thermo-ends{margin-top:4px;font-size:9px}
.traffic-thermo-foot{margin:5px 0 0;font-size:9px}
.tools{justify-content:flex-end;gap:9px}
.refresh-feedback{font-size:10px;color:#5d7795;font-weight:700;max-width:165px;line-height:1.35}
.refresh-feedback[data-result="success"]{color:#216b57}
.refresh-feedback[data-result="error"]{color:#b44c3f}
.refresh-feedback[data-result="loading"]{color:#285f94}
#refreshBtn.is-refreshing .refresh-icon{display:inline-block;animation:galway-refresh-spin 1s linear infinite}
@keyframes galway-refresh-spin{to{transform:rotate(360deg)}}
.info-panel{background:#e7eef8;border-color:#c8d9ea}
.info-symbol{background:#cbdcf0;color:#22537e}
.info-panel p{color:#4e6b8c}
.map-row button{background:#e5effa;color:#1d4b78}
.map-link{border-bottom-color:#8cadd0;color:#22588b}
.road-art{background:#0c294e}
.road-scene{background:#23476f;border-color:#526984}
.road-art-foot{background:#0a2a50dc}
.bus-route-key{background:#edf4fb;border-color:#cadae9}
.bus-route-chip{color:#244e76;border-color:#c3d5e8;background:#fff}
.bus-route-chip.selected{border-color:#467bad;box-shadow:0 0 0 2px #4682b324}
.bus-route-key-title,.bus-route-key-help{color:#507394}
:root[data-theme="dark"] .tabs{background:#0b2645;border-color:#25466d}
:root[data-theme="dark"] .tabs .tab{color:#b9d2ec}
:root[data-theme="dark"] .tabs .tab.active{background:#24558b;color:#fff}
:root[data-theme="dark"] .tabs .tab:hover:not(.active){background:#17395e}
:root[data-theme="dark"] .info-panel{background:#102b4b;border-color:#2b4e75}
:root[data-theme="dark"] .info-symbol{background:#21456d;color:#d9ebff}
:root[data-theme="dark"] .info-panel p{color:#abc6e2}
:root[data-theme="dark"] .bus-route-key{background:#102b4b;border-color:#315176}
:root[data-theme="dark"] .bus-route-chip{background:#183c62;border-color:#426389;color:#eaf3ff}
:root[data-theme="dark"] .refresh-feedback{color:#bbd0e9}
@media(max-width:1000px){.toolbar{grid-template-columns:1fr}.tools{justify-content:flex-end}.refresh-feedback{max-width:none}}
@media(max-width:650px){.tabs{gap:4px;padding:4px}.tabs .tab{padding:10px 5px;gap:5px;flex-direction:column;text-align:center;min-height:76px}.tabs .tab-icon{font-size:20px;min-width:30px}.tabs .vehicle-icon svg,.tabs .corridor-icon svg,.tabs .double-decker-icon svg{width:32px;height:24px}.tabs .tab-copy strong{font-size:11px}.tabs .tab-copy small{font-size:9px}.tools{width:100%;justify-content:space-between}.traffic-thermometer{padding:9px 11px}.traffic-thermo-reading strong{font-size:17px}.traffic-thermo-trend{display:none}.traffic-thermo-foot{line-height:1.3}}
:root[data-theme="dark"] .topbar{background:#030f25;border-color:#233f61}
:root[data-theme="dark"] .hero{background:linear-gradient(112deg,#07142c,#10365c)}
:root[data-theme="dark"] .tab.active{background:#174471}
:root[data-theme="dark"] .button.dark{background:#174a7c;border-color:#326694}
:root[data-theme="dark"] .map-layer-toggle[aria-pressed="true"]{background:#194a7a;border-color:#4179a8}
:root[data-theme="dark"] .traffic-thermometer{background:linear-gradient(108deg,#06152c,#11385b)}
:root[data-theme="dark"] body{background:#081526}
:root[data-theme="dark"] .pulse-brief,:root[data-theme="dark"] .hotspot-overview{background:#0a2444;border-color:#264b77}
:root[data-theme="dark"] .pulse-pick,:root[data-theme="dark"] .hotspot-item{background:#16385e;border-color:#32567e}
:root[data-theme="dark"] .map-side h3,:root[data-theme="dark"] .road-name{color:#e5f0ff}
@media(max-width:650px){.hero{background:linear-gradient(125deg,#071832,#123c65)}}
