/* tokens.css — design tokens + 7 themes. Reskin by editing values or adding a [data-theme].
   Fonts: self-hosted @font-face declarations (Space Grotesk for display/headings/numbers,
   Bricolage Grotesque for body) live in css/base.css, right below these variables.
   Contrast: --primary, --good, --ink-soft and --accent/--warn were re-solved with a WCAG
   relative-luminance script against every background they are actually painted on in
   each theme (--bg, --surface, --surface-2). Normal text clears 4.5:1 everywhere it is
   used as text; UI components/graphical objects (budget-bar fill, tip-card stripe,
   stat icons) clear 3:1 everywhere.
   Accents: each theme now has its OWN --accent hue — no value is reused across themes
   (the old gold #C9A24A repeated on 4 of 7 themes has been replaced). */
:root {
  --radius: 16px; --radius-sm: 10px; --space: 16px;
  /* Body font: Bricolage Grotesque, self-hosted. Display/heading/number font: Space
     Grotesk, self-hosted — its tabular numerals suit a money app. Both fall back to a
     metric-matched local face (defined in base.css) then the system stack, so first
     paint never waits on a network font and layout barely shifts on swap. */
  --font: "Bricolage Grotesque", "Bricolage Grotesque Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-heading: "Space Grotesk", "Space Grotesk Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --num-font: "Space Grotesk", "Space Grotesk Fallback", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --maxw: 560px;
  /* CREAM (default) */
  --bg:#F4ECDE; --surface:#FBF7F0; --surface-2:#EFE6D7; --ink:#2B2622; --ink-soft:#6F6557;
  --primary:#A85433; --primary-ink:#FBF7F0; --accent:#A9822E; --line:#E2D6C4;
  --danger:#A6442E; --good:#367169; --warn:#A9822E;
}
[data-theme="ledger"] { /* Dark Ledger — near-black + money green */
  --bg:#15171A; --surface:#1F2329; --surface-2:#272C33; --ink:#E8EDE9; --ink-soft:#9DA8A0;
  --primary:#4FB286; --primary-ink:#10130F; --accent:#D9A050; --line:#323840;
  --danger:#E08368; --good:#4FB286; --warn:#D9A050;
}
[data-theme="mint"] {
  --bg:#E9F4EE; --surface:#F5FBF7; --surface-2:#D8EBE0; --ink:#22302A; --ink-soft:#516158;
  --primary:#22754F; --primary-ink:#F5FBF7; --accent:#C1602E; --line:#CEE3D6;
  --danger:#A6442E; --good:#22754F; --warn:#C1602E;
}
[data-theme="receipt"] { /* novel: warm receipt paper, monospace numbers */
  --bg:#F3EEE2; --surface:#FBF8EF; --surface-2:#EAE2D0; --ink:#33302A; --ink-soft:#665F52;
  --primary:#3A372F; --primary-ink:#FBF8EF; --accent:#B07A3C; --line:#DDD4C0;
  --danger:#9B4A2E; --good:#516B4B; --warn:#B07A3C;
  --num-font: "DejaVu Sans Mono", ui-monospace, monospace;
}
[data-theme="navy"] { /* Navy & Gold — premium finance */
  --bg:#EEF1F6; --surface:#F8FAFC; --surface-2:#DEE4EE; --ink:#1E2A3A; --ink-soft:#4F5D6E;
  --primary:#1F3A5F; --primary-ink:#F8FAFC; --accent:#A98335; --line:#D5DDEA;
  --danger:#A6442E; --good:#297160; --warn:#A98335;
}
[data-theme="blush"] {
  --bg:#FBEDF0; --surface:#FFF6F8; --surface-2:#F6DCE3; --ink:#3A2A30; --ink-soft:#6E5563;
  --primary:#B24E6A; --primary-ink:#FFF6F8; --accent:#C17F42; --line:#F1D2DB;
  --danger:#A34834; --good:#367169; --warn:#C17F42;
}
[data-theme="mono"] {
  --bg:#F3F3F1; --surface:#FFFFFF; --surface-2:#E9E9E6; --ink:#1C1C1A; --ink-soft:#5F5F5A;
  --primary:#2B2A28; --primary-ink:#FFFFFF; --accent:#8A8A84; --line:#E0E0DC;
  --danger:#8A2E1E; --good:#4A6A60; --warn:#8A8A84;
}
