/* PayMaster — design tokens. Single source of truth: every other CSS rule references var(--…). */
:root{
  /* Typography */
  --font-ui:"IBM Plex Sans",-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,Menlo,monospace;
  --fs-11:11px; --fs-12:12px; --fs-13:13px; --fs-14:14px; --fs-16:16px; --fs-18:18px; --fs-22:22px; --fs-28:28px;
  --lh-tight:1.25; --lh-body:1.5;

  /* Surfaces & text — cool neutrals */
  --bg:oklch(97.3% .005 225);
  --surface:#ffffff;
  --surface-sunken:oklch(95.5% .006 225);
  --border:oklch(90% .009 225);
  --border-strong:oklch(80% .014 225);
  --text:oklch(25% .022 235);
  --text-muted:oklch(46% .02 235);
  --text-faint:oklch(60% .016 235);
  --sidebar-bg:oklch(22% .025 230);
  --sidebar-text:oklch(88% .01 225);
  --sidebar-muted:oklch(68% .015 225);

  /* Accent — workflow blue (azure 205) */
  --accent:oklch(46% .1 220);
  --accent-strong:oklch(38% .1 220);
  --accent-tint:oklch(94% .025 220);
  --accent-border:oklch(80% .06 220);

  /* State families: bg / text / border. One chip system app-wide. */
  --neutral-bg:oklch(94.5% .006 225); --neutral-text:oklch(40% .02 235);  --neutral-border:oklch(86% .012 225);
  --flow-bg:var(--accent-tint);       --flow-text:var(--accent-strong);   --flow-border:var(--accent-border);
  --good-bg:oklch(94% .05 155);       --good-text:oklch(38% .1 155);      --good-border:oklch(82% .09 155);
  --warn-bg:oklch(95% .06 85);        --warn-text:oklch(42% .11 70);      --warn-border:oklch(83% .11 85);
  --bad-bg:oklch(94.5% .035 25);      --bad-text:oklch(43% .16 27);       --bad-border:oklch(84% .07 25);
  --bad-solid:oklch(50% .18 27);
  --good-solid:oklch(52% .12 155);
  --warn-solid:oklch(70% .13 80);

  /* Aging buckets */
  --age-0:oklch(60% .09 220); --age-30:oklch(66% .1 90); --age-30-text:oklch(30% .06 80);
  --age-60:oklch(62% .12 60); --age-90:oklch(56% .15 40); --age-90p:var(--bad-solid);

  /* Overlays */
  --overlay-hover:oklch(100% 0 0 / .07); --overlay-active:oklch(100% 0 0 / .12);
  --overlay-hairline:oklch(100% 0 0 / .1); --overlay-backdrop:oklch(20% .02 235 / .5);

  /* Spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px;

  /* Radii */
  --r-1:4px; --r-2:6px; --r-3:10px; --r-round:999px;

  /* Shadows */
  --shadow-1:0 1px 2px oklch(30% .02 235 / .07);
  --shadow-2:0 2px 8px oklch(30% .02 235 / .1);
  --shadow-dialog:0 12px 40px oklch(25% .03 235 / .25);

  /* Focus */
  --focus:0 0 0 2px var(--surface),0 0 0 4px var(--accent);

  /* Layout */
  --sidebar-w:224px; --topbar-h:52px; --content-max:1360px;
  --row-h:40px; --row-h-compact:30px;
}
