/* aifleet.cloud — token contract. Single source of truth. Dark mode = token override. */
:root{
  /* neutral ramp, 11 steps */
  --n0:#fcfbf8; --n1:#f3f1ec; --n2:#e8e6df; --n3:#d6d4cc; --n4:#b6b4ac; --n5:#908e87;
  --n6:#6c6a64; --n7:#4d4c47; --n8:#343330; --n9:#1e1d1b; --n10:#121110;
  --white:#ffffff;
  /* accent ramp (warm) */
  --a0:#ffe9dc; --a1:#ffc3a1; --a2:#ff8a4d; --a3:#ef4e0b; --a4:#bf3d06; --a5:#832a03;
  /* semantic */
  --bg:var(--n0); --bg-raised:var(--white); --bg-inset:var(--n1);
  --fg:var(--n10); --fg-muted:var(--n6); --fg-faint:var(--n5);
  --line:var(--n3); --line-strong:var(--n10);
  --accent:var(--a3); --accent-ink:var(--a4); --accent-soft:var(--a0);
  /* spacing, 4px base (name = multiple of 4) */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px; --s32:128px;
  /* type scale, 7 steps, ~1.4 modular */
  --t1:12px; --t2:14px; --t3:16px; --t4:20px; --t5:28px; --t6:40px; --t7:56px;
  --font-ui:'IBM Plex Sans',ui-sans-serif,system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',monospace;
  /* radius (4px hard max) */
  --r1:2px; --r2:4px;
  /* motion */
  --d1:120ms; --d2:220ms; --ease:cubic-bezier(.2,0,.2,1);
  /* rules */
  --hair:1px solid var(--line);
}
[data-theme="dark"]{
  --bg:var(--n10); --bg-raised:var(--n9); --bg-inset:var(--n9);
  --fg:var(--n0); --fg-muted:var(--n4); --fg-faint:var(--n5);
  --line:var(--n8); --line-strong:var(--n0);
  --accent:var(--a2); --accent-ink:var(--a1); --accent-soft:#2b1305;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--accent)}
::selection{background:var(--accent);color:var(--n0)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r1)}
button{font:inherit}
