/* Shared neutral surfaces for the main pages and existing specialist engines.
   Theme selection stays with each host. Weather, alert and map colors retain
   their meaning; only application chrome and control surfaces use these tokens. */
:root {
  --wp-neutral-page:#f2f2f7;
  --wp-neutral-surface:#ffffff;
  --wp-neutral-raised:#f2f2f7;
  --wp-neutral-selected:#e9e9ee;
  --wp-neutral-ink:#1c1c1e;
  --wp-neutral-muted:#5b5b61;
  --wp-neutral-line:#d1d1d6;
  --wp-neutral-strong:#8e8e93;
  --wp-neutral-accent:#1263b7;
  --wp-neutral-action:#1263b7;
  --wp-neutral-on-action:#ffffff;
  --wp-neutral-inverse:#ffffff;
  --wp-neutral-shadow:0 12px 40px #00000018;
}
html:is([data-theme=dark],[data-theme=night]) {
  --wp-neutral-page:#0b0b0d;
  --wp-neutral-surface:#1c1c1e;
  --wp-neutral-raised:#242426;
  --wp-neutral-selected:#2c2c2e;
  --wp-neutral-ink:#f2f2f7;
  --wp-neutral-muted:#acacb2;
  --wp-neutral-line:#48484a;
  --wp-neutral-strong:#636366;
  --wp-neutral-accent:#64b5ff;
  --wp-neutral-action:#64b5ff;
  --wp-neutral-on-action:#101012;
  --wp-neutral-inverse:#101012;
  --wp-neutral-shadow:0 12px 40px #00000055;
}

/* Main application tokens. No preference, density, or motion behavior changes. */
html[data-page][data-theme] {
  --paper:var(--wp-neutral-page);--surface:var(--wp-neutral-surface);
  --surface-alt:var(--wp-neutral-raised);--ink:var(--wp-neutral-ink);
  --muted:var(--wp-neutral-muted);--line:var(--wp-neutral-line);
  --blue:var(--wp-neutral-accent);--blue-soft:var(--wp-neutral-selected);
  --broadcast-navy:var(--wp-neutral-ink);
  --nav:var(--wp-neutral-ink);--nav-ink:var(--wp-neutral-inverse);
  --nav-muted:var(--wp-neutral-muted);--nav-active:var(--wp-neutral-selected);
}
html[data-page][data-theme] .button.primary {
  background:var(--wp-neutral-action);color:var(--wp-neutral-on-action);
  border-color:var(--wp-neutral-action);
}
html[data-page][data-theme] :is(dialog,.stormy-dialog) { box-shadow:var(--wp-neutral-shadow); }
html[data-page][data-theme] :is(dialog,.stormy-dialog)::backdrop { background:#00000080; }

/* Current conditions keep their strong type hierarchy on an ordinary surface. */
html[data-page][data-theme] .broadcast-current {
  background:var(--surface);color:var(--ink);border-color:var(--line);
  border-top-color:var(--wp-neutral-strong);
}
html[data-page][data-theme] .broadcast-current-top { border-bottom-color:var(--line); }
html[data-page][data-theme] .broadcast-current-top :is(.eyebrow,.hero-date),
html[data-page][data-theme] :is(.broadcast-condition span,.broadcast-observed) { color:var(--muted); }
html[data-page][data-theme] .broadcast-current-top .weather-icon { color:var(--blue); }
html[data-page][data-theme] .broadcast-current-metrics {
  background:var(--wp-neutral-raised);color:var(--ink);border-top-color:var(--line);
}
html[data-page][data-theme] .broadcast-current-metrics .hero-metric:not(:first-child) { border-left-color:var(--line); }
html[data-page][data-theme] .broadcast-current-metrics .hero-metric span { color:var(--muted); }
html[data-page][data-theme] .broadcast-current-metrics .hero-metric strong { color:var(--ink); }
html[data-page][data-theme] .broadcast-day-row .range-track { background:var(--wp-neutral-selected); }
html[data-page][data-theme] :is(.forecast-selected,.notification-panel,.editorial-radar .radar-topline) {
  background:var(--wp-neutral-raised);color:var(--ink);border-bottom:1px solid var(--line);
}
html[data-page][data-theme] :is(.forecast-selected-reading>.eyebrow,.forecast-selected-metrics dt,.notification-title .eyebrow,.notification-panel p,.editorial-radar .radar-topline .eyebrow) { color:var(--muted); }
html[data-page][data-theme] :is(.forecast-selected-reading .weather-icon,.notification-title>.icon,.notification-panel .text-link,.home-live-radar .radar-topline .text-link) { color:var(--blue); }
html[data-page][data-theme] .forecast-selected-metrics { border-color:var(--line); }
html[data-page][data-theme] .editorial-radar .radar-topline .button { color:var(--ink);border-color:var(--line); }
html[data-page][data-theme] .editorial-updates .update-image { background:var(--wp-neutral-raised); }
html[data-page][data-theme][data-native=true] body::after { background:var(--wp-neutral-page); }

/* Stormy's original lime artwork stays untouched. Weather tone is a small cue,
   while the surrounding surfaces remain neutral in both appearances. */
html[data-page][data-theme] .storm-summary[data-storm-tone] { --storm-paper:var(--wp-neutral-raised); }
html[data-page][data-theme] .stormy-companion[data-tone] { --companion-tint:var(--wp-neutral-raised); }
html[data-page][data-theme] .stormy-perch::before { border-left:2px solid var(--companion-accent); }
html[data-page][data-theme] .settings-profile-choices label:has(input:checked),
html[data-page][data-theme] .settings-reset-confirm { background:var(--wp-neutral-selected); }

/* Legacy specialist tokens are assigned on their existing body scope. This
   bridges their original skins to one palette without touching map canvases,
   warning severity variables, layer colors, sponsor artwork or form state. */
html[data-wp-integrated][data-theme] {
  --integrated-paper:var(--wp-neutral-page);--integrated-surface:var(--wp-neutral-surface);
  --integrated-ink:var(--wp-neutral-ink);--integrated-muted:var(--wp-neutral-muted);
  --integrated-line:var(--wp-neutral-line);--integrated-blue:var(--wp-neutral-accent);
  --integrated-navy:var(--wp-neutral-surface);
  --specialist-ink:var(--wp-neutral-ink);--specialist-surface:var(--wp-neutral-surface);
  --specialist-rule:var(--wp-neutral-line);--specialist-accent:var(--wp-neutral-accent);
  --ledger-canvas:var(--wp-neutral-page);--ledger-surface:var(--wp-neutral-surface);
  --ledger-surface-alt:var(--wp-neutral-raised);--ledger-ink:var(--wp-neutral-ink);
  --ledger-muted:var(--wp-neutral-muted);--ledger-rule:var(--wp-neutral-line);
  --ledger-rule-strong:var(--wp-neutral-strong);--ledger-accent:var(--wp-neutral-accent);
  --ledger-accent-strong:var(--wp-neutral-accent);--ledger-accent-wash:var(--wp-neutral-selected);
  --ledger-focus:var(--wp-neutral-accent);--ledger-action-ink:var(--wp-neutral-on-action);
  --ledger-hero:var(--wp-neutral-surface);--ledger-hero-ink:var(--wp-neutral-ink);
  --ledger-hero-muted:var(--wp-neutral-muted);--ledger-hero-rail:var(--wp-neutral-accent);
}
html[data-wp-integrated][data-theme] body {
  --wp-exp-ink:var(--wp-neutral-ink)!important;--wp-exp-muted:var(--wp-neutral-muted)!important;
  --wp-exp-surface:var(--wp-neutral-surface)!important;--wp-exp-soft:var(--wp-neutral-raised)!important;
  --wp-exp-line:var(--wp-neutral-line)!important;--wp-exp-accent:var(--wp-neutral-accent)!important;
  --ds-page:var(--wp-neutral-page)!important;--ds-page-deep:var(--wp-neutral-page)!important;
  --ds-ink:var(--wp-neutral-ink)!important;--ds-muted:var(--wp-neutral-muted)!important;
  --ds-faint:var(--wp-neutral-selected)!important;--ds-line:var(--wp-neutral-line)!important;
  --ds-line-strong:var(--wp-neutral-strong)!important;--ds-paper:var(--wp-neutral-surface)!important;
  --ds-paper-solid:var(--wp-neutral-surface)!important;--ds-soft:var(--wp-neutral-raised)!important;
  --ds-accent:var(--wp-neutral-ink)!important;--ds-accent-bright:var(--wp-neutral-ink)!important;
  --ds-shadow:var(--wp-neutral-shadow)!important;--ds-shadow-soft:none!important;
  --page-surface:var(--wp-neutral-page)!important;--bg-app:var(--wp-neutral-page)!important;
  --bg-card:var(--wp-neutral-surface)!important;--bg-overlay:var(--wp-neutral-surface)!important;
  --wp-surface-2:var(--wp-neutral-raised)!important;--input-bg:var(--wp-neutral-raised)!important;
  --text-main:var(--wp-neutral-ink)!important;--text-sub:var(--wp-neutral-muted)!important;
  --text-inverse:var(--wp-neutral-inverse)!important;--divider:var(--wp-neutral-line)!important;
  --wp-hairline:var(--wp-neutral-line)!important;--xp-line:var(--wp-neutral-line)!important;
  --xp-line-strong:var(--wp-neutral-strong)!important;--xp-accent:var(--wp-neutral-ink)!important;
  --xp-accent-strong:var(--wp-neutral-ink)!important;--xp-accent-soft:var(--wp-neutral-selected)!important;
  --brand-primary:var(--wp-neutral-accent)!important;--brand-dark:var(--wp-neutral-accent)!important;
  --wp-accent:var(--wp-neutral-accent)!important;--wp-accent-strong:var(--wp-neutral-accent)!important;
  --wp-accent-soft:var(--wp-neutral-selected)!important;--wp-accent-border:var(--wp-neutral-line)!important;
  --pill-surface:var(--wp-neutral-surface)!important;--pill-border:var(--wp-neutral-line)!important;
  --pill-text:var(--wp-neutral-ink)!important;--pill-sub:var(--wp-neutral-muted)!important;
  --wp-glass-bg:var(--wp-neutral-surface)!important;--wp-glass-border:var(--wp-neutral-line)!important;
  --xp-glass:var(--wp-neutral-surface)!important;--xp-glass-border:var(--wp-neutral-line)!important;
  --glass-strong:var(--wp-neutral-surface)!important;--glass-stroke:var(--wp-neutral-line)!important;
  --lg-panel:var(--wp-neutral-surface)!important;--lg-field:var(--wp-neutral-raised)!important;
  --lg-stroke:var(--wp-neutral-line)!important;--lg-stroke-soft:var(--wp-neutral-line)!important;
  --lg-inner-light:none!important;--shadow:var(--wp-neutral-shadow)!important;
  --radar-panel-bg:var(--wp-neutral-surface)!important;--radar-panel-border:var(--wp-neutral-line)!important;
  --radar-panel-text:var(--wp-neutral-ink)!important;--radar-panel-sub:var(--wp-neutral-muted)!important;
  --radar-accent:var(--wp-neutral-accent)!important;
  --plan-panel:var(--wp-neutral-surface)!important;--plan-soft:var(--wp-neutral-raised)!important;
  --plan-line:var(--wp-neutral-line)!important;--plan-ink:var(--wp-neutral-ink)!important;
  --plan-muted:var(--wp-neutral-muted)!important;--plan-blue-soft:var(--wp-neutral-selected)!important;
  --plan-blue:var(--wp-neutral-accent)!important;
}
html[data-wp-integrated][data-theme] body:is(.wp-page-forecast,.wp-page-warnpins) {
  background:var(--wp-neutral-page)!important;color:var(--wp-neutral-ink)!important;
}
html[data-wp-integrated][data-theme] body .wp-experience-panel { background:var(--wp-neutral-surface);color:var(--wp-neutral-ink); }
html[data-wp-integrated][data-theme] body .wp-experience-overlay { background:#00000080; }
html[data-wp-integrated=planning][data-theme] body :is(.route-check-button,.forecast-event-save,.forecast-add-button) {
  background:var(--wp-neutral-action)!important;color:var(--wp-neutral-on-action)!important;box-shadow:none!important;
}
html[data-wp-integrated=planning][data-theme] body :is(.route-point,.route-checkpoint-dot) { color:var(--wp-neutral-on-action); }

/* Radar controls remain solid and readable over every map/layer style. */
html[data-wp-integrated=radar][data-theme] body :is(.bottom-toolbar,.scrubber-container,.scrubber-row,.radar-pro-desk,.mode-more-menu,.legend-container,.radar-quick-popover,.wp-tools-popup,.radar-frame-time-pill,.modal-content) {
  background:var(--wp-neutral-surface)!important;color:var(--wp-neutral-ink)!important;
  border-color:var(--wp-neutral-line)!important;box-shadow:var(--wp-neutral-shadow)!important;
}
html[data-wp-integrated=radar][data-theme] body :is(.mode-pill,.pill-btn,.radar-source-row,.layer-option,.layers-nav-chip,.site-picker-row,.site-picker-row-state) {
  background:var(--wp-neutral-raised)!important;color:var(--wp-neutral-ink)!important;border-color:var(--wp-neutral-line)!important;
}
html[data-wp-integrated=radar][data-theme] body :is(.mode-pill.active,.pill-btn.active,.site-picker-row.selected,.layers-nav-chip.active) {
  background:var(--wp-neutral-selected)!important;color:var(--wp-neutral-ink)!important;
  box-shadow:inset 0 -2px var(--wp-neutral-accent)!important;
}
html[data-wp-integrated=radar][data-theme] body :is(.btn-circle,.toolbar-action-label,.mode-more-toggle) { color:var(--wp-neutral-ink)!important; }
