/* Seismic Monitor-inspired preview: charcoal canvas, slate surfaces and mint signals. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e5edf5;
  --muted: #94a6b7;
  --panel: #101820;
  --panel-strong: #14212c;
  --line: #243240;
  --green: #30c78f;
  --yellow: #f5bd4f;
  --red: #fb6b68;
  --accent: #167d67;
  --accent-secondary: #49cba5;
  --accent-deep: #83e5c5;
  --accent-soft: #12372f;
  --shadow: #00000055;
}
:root[data-theme="light"] {
  color-scheme: light;
  --ink: #172a39;
  --muted: #576a7a;
  --panel: #ffffff;
  --panel-strong: #f3f8f8;
  --line: #cbd9df;
  --green: #149e71;
  --yellow: #b77709;
  --red: #d34545;
  --accent: #147d69;
  --accent-secondary: #087e68;
  --accent-deep: #0d6957;
  --accent-soft: #dff4ee;
  --shadow: #17364a1a;
}
body,
:root[data-theme="dark"] body {
  background: radial-gradient(circle at 5% 0, #0b2934 0, transparent 34%),
    radial-gradient(circle at 95% 0, #0b2934 0, transparent 30%), #070b10;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}
:root[data-theme="light"] body {
  background: radial-gradient(circle at 5% 0, #e5f6f2 0, transparent 35%), #f4f7f8;
}
main { max-width: 1160px; padding-top: 30px; }
h1 { color: var(--ink); font-size: clamp(30px, 4vw, 43px); letter-spacing: -.035em; line-height: 1.06; }
h2 { font-size: 22px; }
.eyebrow, .label { color: var(--accent-secondary); letter-spacing: .12em; }
.theme-toggle, .secondary, input { background: var(--panel-strong); color: var(--ink); }
.theme-toggle { box-shadow: none; }
.theme-toggle:hover, .secondary:hover { border-color: var(--accent-secondary); }
.site-section-nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.site-section-nav a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px; border-radius: 7px; color: var(--muted); font-weight: 750; text-decoration: none; }
.site-section-nav svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.site-section-nav a[aria-current="page"] { color: var(--accent-deep); background: var(--accent-soft); }
.site-section-nav a:hover { color: var(--accent-deep); }
.site-section-nav a:focus-visible { outline: 2px solid var(--accent-secondary); outline-offset: 2px; }
@media (max-width: 560px) {
  .site-section-nav { width: fit-content; max-width: 100%; margin-left: auto; justify-content: flex-end; flex-wrap: nowrap; gap: 8px; }
  .site-section-nav a { gap: 5px; padding: 8px 7px; font-size: 12px; white-space: nowrap; }
  .site-section-nav svg { flex-basis: 16px; width: 16px; height: 16px; }
}
button { box-shadow: none; }
button:hover { filter: brightness(1.12); }
input:focus { border-color: var(--accent-secondary); outline-color: color-mix(in srgb, var(--accent-secondary) 35%, transparent); }
.panel,
.weather-widget,
.site-footer {
  border: 1px solid var(--line);
  border-radius: 9px;
  background: color-mix(in srgb, var(--panel) 94%, transparent);
  box-shadow: 0 12px 34px var(--shadow);
  backdrop-filter: none;
}
.panel { margin-top: 18px; }
.weather-widget { margin-top: 18px; }
:root[data-theme="dark"] .weather-widget { background: var(--panel); }
.weather-widget > .weather-error,
.weather-widget > .weather-loading { grid-column: 1 / -1; }
.weather-icon { border-radius: 9px; }
.weather-metric { border-color: var(--line); }
.traffic-map-panel { padding: 0; }
.traffic-map-heading { margin: 0; padding: 14px 18px; border-bottom: 1px solid var(--line); }
#traffic-map { border: 0; border-radius: 0; }
.traffic-map-meta { margin: 0; padding: 11px 18px; border-top: 1px solid var(--line); }
:root[data-theme="dark"] #traffic-map .base-map-tiles { filter: brightness(.82) contrast(1.07) saturate(.9); }
.traffic-legend .legend-flowing { background: var(--green); box-shadow: 0 0 10px color-mix(in srgb, var(--green) 65%, transparent); }
.traffic-legend .legend-moderate { background: var(--yellow); box-shadow: 0 0 10px color-mix(in srgb, var(--yellow) 65%, transparent); }
.traffic-legend .legend-heavy { background: var(--red); box-shadow: 0 0 10px color-mix(in srgb, var(--red) 65%, transparent); }
.locations-heading { border-bottom: 1px solid var(--line); }
.location-filters { border-radius: 8px; background: var(--panel-strong); }
.location-filters button { border-radius: 6px; }
.location-filters button[aria-pressed="true"] { background: var(--accent); box-shadow: none; }
.road { border-radius: 9px; background: var(--panel-strong); box-shadow: none; }
.road::before { opacity: .7; }
.road:hover, .road:focus-within { box-shadow: 0 10px 25px var(--shadow); }
.road-speed, .direction-reading { border-radius: 7px; background: color-mix(in srgb, var(--panel) 88%, var(--panel-strong)); }
.direction-reading em { color: var(--ink); }
.report-section, .reading { border-radius: 9px; background: var(--panel); }
:root[data-theme="dark"] .report-section { background: var(--panel); }
:root[data-theme="dark"] .reading.bad,
:root[data-theme="dark"] .reading.avoid { background: #2c1c25; }
:root[data-theme="light"] .reading.bad,
:root[data-theme="light"] .reading.avoid { background: #fff3f3; }
.reading { border-left-width: 3px; }
.site-footer { color: var(--ink); }
:root[data-theme="dark"] .site-footer { background: var(--panel); border-color: var(--line); }
.footer-directory h2 { color: var(--ink); }
.footer-directory a { color: var(--muted); }
.footer-directory a:hover { color: var(--accent-deep); }
@media (max-width: 700px) {
  main { padding-top: 25px; }
  h1 { font-size: clamp(26px, 6vw, 36px); }
}
@media (max-width: 450px) {
  h1 { font-size: 24px; }
}
