/* AUTO-GENERATED from design/tokens/tokens.json — DO NOT EDIT. Run: npm run tokens:build */
:root{
  /* constants */
  --pure-white: #ffffff;
  --glass-blur: 18px;
  --scrim: rgba(8,15,26,.55);
  --scrim-blur: 3px;
  --r-compact: 8px;
  --r-input: 10px;
  --r-btn: 12px;
  --r-card: 16px;
  --r-pop: 18px;
  --r-sheet: 24px;
  --r-chip: 999px;
  --r-pill: 999px;
  --ctl-lg: 50px;
  --ctl-md: 44px;
  --ctl-sm: 38px;
  --ctl-xs: 32px;
  --tap-min: 44px;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 40px;
  --fs-xs: 12px;
  --fs-sm: 13px;
  --fs-base: 15px;
  --fs-md: 16px;
  --fs-lg: 18px;
  --fs-xl: 22px;
  --fs-2xl: 26px;
  --dur-fast: 120ms;
  --dur-base: 220ms;
  --dur-slow: 300ms;
  --ease-standard: cubic-bezier(.32,.72,0,1);
  --z-fab: 55;
  --z-setup: 58;
  --z-nav: 60;
  --z-overlay: 65;
  --z-sheet: 70;
  --z-voice: 75;
  --z-toast: 90;
  --z-menu: 120;
  --z-modal: 140;
  --z-auth: 200;
  --z-lock: 250;
  --z-scan: 300;
  --z-viewer: 320;
  /* theme-aware (light) */
  --primary: #10B981;
  --primary-d: #0E9E6E;
  --navy: #0E1A2B;
  --navy-2: #13233A;
  --slate: #33455E;
  --secondary: #FF6B6B;
  --success: #34D399;
  --neutral: #F4F6FA;
  --text: #13233A;
  --muted: #6B7686;
  --border: #E2E5EA;
  --surface: #ffffff;
  --white: #ffffff;
  --field: #F1F4F8;
  --field-focus: #ffffff;
  --income: #10B981;
  --expense: #FF6B6B;
  --amber: #F0A202;
  --sh-light: 0 1px 2px rgba(20,30,40,.06);
  --sh-med: 0 4px 14px rgba(20,30,40,.08);
  --sh-heavy: 0 16px 40px rgba(20,30,40,.18);
  --glass-fab: rgba(255,255,255,.5);
  --glass-brd: rgba(255,255,255,.6);
  --glass-tab: rgba(252,253,255,.72);
  --glass-hi: rgba(255,255,255,.85);
  --glass-sheen: rgba(255,255,255,.7);
  --tab-active: rgba(14,26,43,.08);
  --pagebg: linear-gradient(135deg,#eef1f5,#ECEEF1 60%,#e7edf2);
}
[data-theme="dark"]{
  --primary: #10B981;
  --primary-d: #34D399;
  --navy: #0E1A2B;
  --navy-2: #13233A;
  --slate: #33455E;
  --secondary: #FF7B7B;
  --success: #34D399;
  --neutral: #15181d;
  --text: #e9edf2;
  --muted: #8b94a0;
  --border: #2a3038;
  --surface: #1d2127;
  --white: #1d2127;
  --field: #22272e;
  --field-focus: #2c333d;
  --income: #34d27b;
  --expense: #FF7B7B;
  --amber: #f3b13a;
  --sh-light: 0 1px 2px rgba(0,0,0,.4);
  --sh-med: 0 4px 14px rgba(0,0,0,.45);
  --sh-heavy: 0 16px 40px rgba(0,0,0,.6);
  --glass-fab: rgba(40,46,54,.45);
  --glass-brd: rgba(255,255,255,.18);
  --glass-tab: rgba(20,24,30,.62);
  --glass-hi: rgba(255,255,255,.25);
  --glass-sheen: rgba(255,255,255,.22);
  --tab-active: rgba(255,255,255,.14);
  --pagebg: linear-gradient(135deg,#0b1422,#0E1A2B 60%,#0c1830);
}
