/* ============================================================
   IONIA — token layer
   Radix Colors: cyan (accent) · slate (neutral)
   Archivo (interface) · JetBrains Mono (identifiers, durations)
   Authored for both themes. Dark swaps values only, never classes.
   ============================================================ */

:root{
  /* type */
  --font-ui:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;

  /* neutral ramp — radix slate */
  --s1:#fcfcfd;--s2:#f9f9fb;--s3:#f0f0f3;--s4:#e8e8ec;--s5:#e0e1e6;--s6:#d9d9e0;
  --s7:#cdced6;--s8:#b9bbc6;--s9:#8b8d98;--s10:#80838d;--s11:#60646c;--s12:#1c2024;

  /* accent ramp — radix cyan */
  --a1:#fafdfe;--a2:#f2fafb;--a3:#def7f9;--a4:#caf1f6;--a5:#b5e9f0;--a6:#9ddde7;
  --a7:#7dcedc;--a8:#3db9cf;--a9:#00a2c7;--a10:#0797b9;--a11:#107d98;--a12:#0d3c48;
  --a-on:#ffffff;
  /* filled accent: cyan-9 is a light solid, so the accessible filled
     background is cyan-11 with white ink (4.76:1) */
  --accent-solid:#107d98;--accent-solid-hover:#0c6a81;--accent-on:#ffffff;

  /* surface */
  --surface-page:#f9f9fb;--surface-raised:#ffffff;--surface-sunken:#f0f0f3;
  --surface-nav:#ffffff;--surface-overlay:#ffffff;--scrim:rgba(17,17,19,.44);

  /* content */
  /* three text levels, all AA at small sizes. slate-10 (#80838d) is a
     border/hover step, never text — tertiary text is slate-11. */
  --ink-1:#1c2024;--ink-2:#4a4f57;--ink-3:#60646c;--ink-inv:#ffffff;

  /* border — surfaces are separated by BORDERS; shadow is reserved for overlays */
  --line-subtle:#f0f0f3;--line:#e0e1e6;--line-strong:#b9bbc6;--line-focus:#00a2c7;

  /* intent */
  --ok:#29a383;--ok-bg:#ddf3ea;--ok-fg:#1d3b31;
  --warn:#ffc53d;--warn-bg:#fff7c2;--warn-fg:#8f5700;--warn-solid:#ffb224;--warn-hatch:#c98a00;
  --bad:#e5484d;--bad-bg:#feebec;--bad-fg:#b31e26;
  --danger-solid:#ce2c31;--danger-solid-hover:#aa1d24;--danger-on:#ffffff;
  --info:#0090ff;--info-bg:#e6f4fe;--info-fg:#113264;

  /* status taxonomy — hue advances along the workflow (M-02).
     Chip foregrounds are step 12, not step 11: Radix only guarantees
     step 11 against steps 1-2, and these chips sit on step 3. */
  --st-open:#0090ff;--st-open-bg:#e6f4fe;--st-open-fg:#113264;
  --st-todo:#3e63dd;--st-todo-bg:#e6edfe;--st-todo-fg:#1f2d5c;
  --st-going:#6e56cf;--st-going-bg:#f4f0fe;--st-going-fg:#2f265f;
  --st-fixed:#ab4aba;--st-fixed-bg:#fbebfb;--st-fixed-fg:#53195d;
  --st-rfp:#29a383;--st-rfp-bg:#ddf3ea;--st-rfp-fg:#1d3b31;
  --st-closed:#46a758;--st-closed-bg:#e9f6e9;--st-closed-fg:#203c25;
  --st-rej:#e54d2e;--st-rej-bg:#feebe7;--st-rej-fg:#5c271f;
  --st-canc:#8b8d98;--st-canc-bg:#f0f0f3;--st-canc-fg:#1c2024;

  /* severity taxonomy — separate axis, separate treatment (square tag + bar count) */
  --sev-low:#8b8d98;--sev-low-bg:#f0f0f3;--sev-low-fg:#60646c;
  --sev-med:#ffc53d;--sev-med-bg:#fff7c2;--sev-med-fg:#8f5700;
  --sev-high:#e5484d;--sev-high-bg:#feebec;--sev-high-fg:#641723;

  /* radius */
  --r-sm:3px;--r-md:6px;--r-lg:10px;--r-pill:999px;

  /* elevation — overlays only */
  --shadow-1:0 1px 2px rgba(28,32,36,.05),0 4px 12px -6px rgba(28,32,36,.10);
  --shadow-2:0 10px 44px -8px rgba(28,32,36,.24),0 2px 6px rgba(28,32,36,.06);
}

[data-theme="dark"]{
  --s1:#111113;--s2:#18191b;--s3:#212225;--s4:#272a2d;--s5:#2e3135;--s6:#363a3f;
  --s7:#43484e;--s8:#5a6169;--s9:#696e77;--s10:#777b84;--s11:#b0b4ba;--s12:#edeef0;

  --a1:#0b161a;--a2:#101b20;--a3:#082c36;--a4:#003848;--a5:#004558;--a6:#045468;
  --a7:#12677e;--a8:#11809c;--a9:#00a2c7;--a10:#23afd0;--a11:#4ccce6;--a12:#b6ecf7;
  --a-on:#00191f;
  /* dark: cyan-9 stays the filled background, ink goes dark (5.95:1) */
  --accent-solid:#00a2c7;--accent-solid-hover:#23afd0;--accent-on:#00191f;

  --surface-page:#111113;--surface-raised:#18191b;--surface-sunken:#0c0c0e;
  --surface-nav:#151517;--surface-overlay:#212225;--scrim:rgba(0,0,0,.62);

  --ink-1:#edeef0;--ink-2:#b0b4ba;--ink-3:#8b9099;--ink-inv:#111113;

  --line-subtle:#212225;--line:#2e3135;--line-strong:#43484e;--line-focus:#23afd0;

  --ok:#1fd8a4;--ok-bg:#0b2b26;--ok-fg:#1fd8a4;
  --warn:#ffc53d;--warn-bg:#302008;--warn-fg:#ffca16;--warn-solid:#ffc53d;--warn-hatch:#8f6424;
  --bad:#e5484d;--bad-bg:#3b1219;--bad-fg:#ff9592;
  --info:#0090ff;--info-bg:#0d2847;--info-fg:#70b8ff;

  --st-open:#0090ff;--st-open-bg:#0d2847;--st-open-fg:#70b8ff;
  --st-todo:#3e63dd;--st-todo-bg:#182449;--st-todo-fg:#9eb1ff;
  --st-going:#6e56cf;--st-going-bg:#291f43;--st-going-fg:#baa7ff;
  --st-fixed:#ab4aba;--st-fixed-bg:#351a35;--st-fixed-fg:#e796f3;
  --st-rfp:#1fd8a4;--st-rfp-bg:#0b2b26;--st-rfp-fg:#1fd8a4;
  --st-closed:#46a758;--st-closed-bg:#0f2e12;--st-closed-fg:#63c174;
  --st-rej:#e54d2e;--st-rej-bg:#481505;--st-rej-fg:#ff977d;
  --st-canc:#696e77;--st-canc-bg:#212225;--st-canc-fg:#b0b4ba;

  --sev-low:#696e77;--sev-low-bg:#212225;--sev-low-fg:#b0b4ba;
  --sev-med:#ffc53d;--sev-med-bg:#302008;--sev-med-fg:#ffca16;
  --sev-high:#e5484d;--sev-high-bg:#3b1219;--sev-high-fg:#ff9592;

  --danger-solid:#e5484d;--danger-solid-hover:#ec5d61;--danger-on:#1f0f10;
  --shadow-1:0 1px 2px rgba(0,0,0,.5);
  --shadow-2:0 14px 52px -8px rgba(0,0,0,.75);
}

*{box-sizing:border-box}
body{margin:0;font-family:var(--font-ui);background:var(--surface-page);color:var(--ink-1);
  -webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:var(--a11);text-decoration:none}
a:hover{color:var(--a12);text-decoration:underline}
iconify-icon{display:inline-block;vertical-align:-0.135em}
:focus-visible{outline:2px solid var(--line-focus);outline-offset:2px}
::selection{background:var(--a4);color:var(--a12)}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shimmer{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
@keyframes riseIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}
@keyframes slideIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
