/* AxonRays — colour tokens.
   Ink is sampled directly from the supplied logo mark (#10233E). */
:root{
  /* Ink — the brand core */
  --ink-900:#091425;
  --ink-800:#10233E;
  --ink-700:#1A3557;
  --ink-600:#24486F;
  --ink-500:#33608F;
  --ink-400:#5B82AE;
  --ink-300:#8FA8C6;
  --ink-200:#C1D0E1;
  --ink-100:#DFE7F0;
  --ink-050:#EFF3F8;

  /* Signal — the single accent: a confident azure blue */
  --signal-700:#0B3E8C;
  --signal-600:#1053B5;
  --signal-500:#1665DE;
  --signal-400:#2A7CEF;
  --signal-300:#7FAEF6;
  --signal-200:#BED7FB;
  --signal-100:#E6F0FE;

  /* Sky — links, information, selection */
  --sky-700:#0C3C82;
  --sky-600:#1352AE;
  --sky-500:#3B8AF5;
  --sky-300:#92BCF9;
  --sky-100:#DDEAFD;
  --sky-050:#EFF6FE;

  /* Paper & stone — neutral, white-side greys */
  --paper-000:#FFFFFF;
  --paper-050:#FBFBFC;
  --paper-100:#F4F5F7;
  --paper-200:#E5E7EB;
  --stone-300:#D1D4DA;
  --stone-400:#A0A4AC;
  --stone-500:#71757E;
  --stone-600:#4C5057;
  --stone-700:#32353A;

  /* Status */
  --green-700:#0B5B41;
  --green-600:#14795A;
  --green-100:#E4F0EB;
  --amber-700:#8A5310;
  --amber-600:#AC6A16;
  --amber-100:#F7EBD8;
  --red-700:#8F2A25;
  --red-600:#B5372F;
  --red-100:#F8E1DE;

  /* ---- Semantic aliases: use these in product code ---- */
  --text-primary:var(--ink-800);
  --text-secondary:var(--stone-600);
  --text-muted:var(--stone-500);
  --text-disabled:var(--stone-400);
  --text-inverse:var(--paper-050);
  --text-on-signal:var(--paper-000);
  --text-link:var(--sky-600);
  --text-link-hover:var(--sky-700);

  --surface-page:var(--paper-050);
  --surface-card:var(--paper-000);
  --surface-sunken:var(--paper-100);
  --surface-hover:var(--paper-100);
  --surface-selected:var(--ink-050);
  --surface-inverse:var(--ink-800);
  --surface-inverse-raised:var(--ink-700);
  --surface-signal:var(--signal-400);
  --surface-info:var(--sky-050);

  --border-subtle:var(--paper-200);
  --border-default:var(--stone-300);
  --border-strong:var(--ink-800);
  --border-inverse:rgba(255,255,255,.16);
  --border-focus:var(--sky-500);

  --status-success-fg:var(--green-700);
  --status-success-bg:var(--green-100);
  --status-warning-fg:var(--amber-700);
  --status-warning-bg:var(--amber-100);
  --status-danger-fg:var(--red-700);
  --status-danger-bg:var(--red-100);
  --status-info-fg:var(--sky-700);
  --status-info-bg:var(--sky-100);
}

/* Inverse scope — drop this on any dark panel and semantic tokens flip. */
[data-theme="inverse"]{
  --text-primary:var(--paper-050);
  --text-secondary:var(--ink-200);
  --text-muted:var(--ink-300);
  --text-link:var(--signal-300);
  --text-link-hover:var(--signal-200);
  --surface-page:var(--ink-800);
  --surface-card:var(--ink-700);
  --surface-sunken:var(--ink-900);
  --surface-hover:var(--ink-600);
  --surface-selected:var(--ink-600);
  --border-subtle:rgba(255,255,255,.10);
  --border-default:rgba(255,255,255,.18);
  --border-strong:var(--signal-300);
}
