/* ── Underway AI colour system ───────────────────────────────────────────────
   Premise: maritime signalling, not "water is blue". The two accents are the
   two lights every vessel carries after dark — starboard green and port red.
   Blue appears only as STEEL: a muted, cold support colour, never the hero.
   Sand is the warm counterweight that keeps the light palette from reading
   pastel. Neutrals carry a faint green-grey cast (sea haze), never true grey. */
:root {
  /* Haze — neutral ramp, cool with a green cast */
  --n-000:#ffffff; --n-025:#f9fbf9; --n-050:#f1f4f1; --n-100:#e6eae7;
  --n-200:#d3d9d5; --n-300:#b4bdb8; --n-400:#8e9a95; --n-500:#6c7873;
  --n-600:#4f5a56; --n-700:#38423f; --n-800:#232c29; --n-900:#151b19;
  --n-950:#0b100f;

  /* Signal — starboard chartreuse. The brand's one loud colour. */
  --signal-100:#f0fbd6; --signal-200:#dff59f; --signal-300:#c8f24b;
  --signal-400:#b4e62e; --signal-500:#9bcc17; --signal-600:#7ba30f;
  --signal-700:#5c7a0c;

  /* Port — vermilion. Alerts, live states, one-per-view emphasis. */
  --port-100:#ffe8e1; --port-200:#ffc9b9; --port-300:#ff8f74;
  --port-400:#ff5c3a; --port-500:#ee4322; --port-600:#c7331a;

  /* Steel — permitted blue. Charts, secondary data, cold surfaces. */
  --steel-100:#e8f1f3; --steel-200:#cfe0e4; --steel-300:#a3c2cb;
  --steel-400:#6e97a5; --steel-500:#4e7c8c; --steel-600:#3c616e;
  --steel-800:#1e353d;

  /* Sand — warm ballast */
  --sand-100:#f7f2e7; --sand-200:#eee5d0; --sand-300:#e0cfa8; --sand-500:#bfa571;
  --amber-100:#fdf0d5; --amber-400:#f2a62b; --amber-600:#b9761a;

  /* ── Semantic aliases: light (default) ── */
  --surface-page:var(--n-025);
  --surface-card:var(--n-000);
  --surface-raised:var(--n-000);
  --surface-sunken:var(--n-050);
  --surface-inset:var(--n-100);
  --surface-inverse:var(--n-950);
  --surface-accent:var(--signal-400);
  --surface-accent-soft:var(--signal-100);
  --surface-cold:var(--steel-100);
  --surface-warm:var(--sand-100);

  --text-primary:var(--n-950);
  --text-secondary:var(--n-600);
  --text-muted:var(--n-400);
  --text-inverse:var(--n-025);
  --text-on-accent:var(--n-950);
  --text-link:var(--n-950);
  --text-link-hover:var(--signal-600);

  --border-hairline:var(--n-100);
  --border-subtle:var(--n-200);
  --border-default:var(--n-300);
  --border-strong:var(--n-950);
  --border-accent:var(--signal-500);

  --accent:var(--signal-400);
  --accent-hover:var(--signal-300);
  --accent-press:var(--signal-500);
  --accent-ink:var(--signal-700);

  --state-ok:var(--signal-600);
  --state-ok-soft:var(--signal-100);
  --state-warn:var(--amber-400);
  --state-warn-soft:var(--amber-100);
  --state-danger:var(--port-500);
  --state-danger-soft:var(--port-100);
  --state-info:var(--steel-500);
  --state-info-soft:var(--steel-100);

  --focus-ring:var(--n-950);
  --focus-ring-halo:color-mix(in oklab, var(--signal-400) 60%, transparent);
  --selection-bg:var(--signal-300);
  --selection-fg:var(--n-950);
  --scrim:color-mix(in oklab, var(--n-950) 62%, transparent);
}

/* ── Dark: "night bridge". Instrument-panel dark, not inverted grey. ── */
[data-theme="dark"] {
  --surface-page:var(--n-950);
  --surface-card:#111817;
  --surface-raised:#18211f;
  --surface-sunken:#080c0b;
  --surface-inset:#1d2725;
  --surface-inverse:var(--n-025);
  --surface-accent:var(--signal-400);
  --surface-accent-soft:color-mix(in oklab, var(--signal-400) 14%, #111817);
  --surface-cold:var(--steel-800);
  --surface-warm:#241f16;

  --text-primary:#eef2ee;
  --text-secondary:#a4b0ab;
  --text-muted:#71807a;
  --text-inverse:var(--n-950);
  --text-on-accent:var(--n-950);
  --text-link:#eef2ee;
  --text-link-hover:var(--signal-300);

  --border-hairline:#1f2927;
  --border-subtle:#2a3532;
  --border-default:#3a4642;
  --border-strong:#7d8b85;
  --border-accent:var(--signal-400);

  --accent-hover:var(--signal-300);
  --accent-press:var(--signal-500);
  --accent-ink:var(--signal-300);

  --state-ok:var(--signal-400);
  --state-ok-soft:color-mix(in oklab, var(--signal-400) 16%, #111817);
  --state-warn-soft:color-mix(in oklab, var(--amber-400) 16%, #111817);
  --state-danger:var(--port-400);
  --state-danger-soft:color-mix(in oklab, var(--port-400) 16%, #111817);
  --state-info:var(--steel-300);
  --state-info-soft:color-mix(in oklab, var(--steel-400) 18%, #111817);

  --focus-ring:var(--signal-300);
  --selection-bg:var(--signal-400);
  --scrim:color-mix(in oklab, #000 74%, transparent);
}
