:root{
  /* Base ramp — ink (deep navy, muted/chart-like) */
  --ink-900:#08131f; --ink-800:#0c1c2e; --ink-700:#12283f; --ink-600:#1d3b57;
  --ink-500:#2c5170; --ink-400:#4a6e8c; --ink-300:#7691a8; --ink-200:#a9becd;
  --ink-100:#d2dfe8; --ink-050:#eff4f8;

  /* Base ramp — ocean blue (primary accent) */
  --blue-700:#123e6b; --blue-600:#17548f; --blue-500:#1d6fb8; --blue-400:#4a93d1;
  --blue-300:#82b7e2; --blue-200:#b9d6ee; --blue-100:#e3f0fa;

  /* Base ramp — sky blue (secondary accent, gradient tail) */
  --cyan-700:#0e6e8c; --cyan-600:#1690b4; --cyan-500:#2ab0db; --cyan-400:#63c7e6;
  --cyan-300:#97daef; --cyan-200:#c7ecf6; --cyan-100:#e9f8fc;

  /* Neutrals — cool blue-grey */
  --white:#ffffff; --grey-050:#f5f8fa; --grey-100:#ebf0f4; --grey-200:#d8e1e8;
  --grey-300:#b9c6d1; --grey-400:#8598a8; --grey-500:#5a6e7e; --grey-600:#3a4a57;

  /* Status — deliberately off the brand ocean/sky blue */
  --green-500:#2e8b57; --green-100:#e0f0e6;
  --amber-500:#d98c1f; --amber-100:#fbecd9;
  --red-500:#c4433d;   --red-100:#f7dfdd;

  /* Safety-orange — the one loud accent (CTAs / small badges only), echoing
     lifebuoys and hi-vis rather than an arbitrary brand-refresh color. */
  --orange-700:#8c3a15; --orange-600:#b84e1e; --orange-500:#d9622b; --orange-400:#e68856;
  --orange-300:#eeaa85; --orange-200:#f5cab3; --orange-100:#fbe6da;

  /* Signature gradient — ocean blue → sky blue */
  --gradient-wave:linear-gradient(90deg,var(--blue-700) 0%,var(--blue-500) 100%);
  --gradient-ink:linear-gradient(160deg,var(--ink-800) 0%,var(--ink-700) 45%,var(--blue-700) 100%);

  /* Semantic — surfaces */
  --surface-page:var(--white);
  --surface-subtle:var(--grey-050);
  --surface-card:var(--white);
  --surface-inset:var(--grey-100);
  --surface-inverse:var(--ink-800);
  --surface-inverse-raised:var(--ink-600);
  --surface-accent-soft:var(--blue-100);

  /* Semantic — text */
  --text-body:var(--ink-700);
  --text-strong:var(--ink-900);
  --text-muted:var(--grey-500);
  --text-faint:var(--grey-400);
  --text-accent:var(--blue-500);
  --text-on-accent:var(--white);
  --text-on-inverse:var(--grey-100);
  --text-inverse-muted:var(--ink-200);

  /* Semantic — lines */
  --border-subtle:var(--grey-200);
  --border-default:var(--grey-300);
  --border-strong:var(--ink-500);
  --border-accent:var(--blue-500);
  --border-inverse:rgba(255,255,255,.14);

  /* Semantic — interactive */
  --action-primary:var(--blue-500);
  --action-primary-hover:var(--blue-600);
  --action-primary-active:var(--blue-700);
  --action-secondary:var(--ink-700);
  --focus-ring:var(--cyan-500);

  /* Semantic — status */
  --status-success:var(--green-500); --status-success-soft:var(--green-100);
  --status-warning:var(--amber-500); --status-warning-soft:var(--amber-100);
  --status-danger:var(--red-500);    --status-danger-soft:var(--red-100);
  --status-info:var(--cyan-600);     --status-info-soft:var(--cyan-100);
}
