/* HEYGOAL — design tokens · generated from tokens.json by tools/build-tokens.mjs (system 0.6.0). Replaces the 1.19.0 header (lines 11–42), --live and --live-text (561–562) and --stagger (727). Edit tokens.json and rebuild; never edit this block by hand. */
:root{
  /* primitive */
  --neutral-50:#f2f2f0;
  --neutral-100:#d4d4d1;
  --neutral-200:#b7b7b3;
  --neutral-300:#9a9a96;
  --neutral-400:#848480;
  --neutral-500:#6e6e6b;
  --neutral-600:#4d4d4b;
  --neutral-700:#2e2e2e;
  --neutral-750:#232323;
  --neutral-800:#1c1c1c;
  --neutral-900:#141414;
  --warm-50:#fbfbf8;
  --warm-100:#f2f1ec;
  --warm-150:#efeee9;
  --warm-200:#dcdad2;
  --warm-300:#b2b0a8;
  --warm-400:#898780;
  --warm-500:#7a7872;
  --warm-600:#6b6a64;
  --warm-700:#4f4e4a;
  --warm-800:#343331;
  --warm-900:#1b1b1a;
  --sage:#c4d2bf;
  --mint:#b3dcc9;
  --teal:#93c9c0;
  --sky:#b6d8ee;
  --blue:#a8c3e4;
  --periwinkle:#b3bbeb;
  --lilac:#bdb2d6;
  --blush:#e7cbde;
  --rose:#eaaebb;
  --peach:#f2c4a5;
  --clay:#d8a88c;
  --taupe:#c6bbab;
  --stone:#bdb9b0;
  --olive:#cdd09b;
  --butter:#eee0a2;
  --lime:#c4e85f;
  --amber:#efb44a;
  --coral:#e96a4a;
  --bone:#e9e7df;
  --green-400:#5fe09a;
  --green-500:#3ecf7e;
  --green-600:#1f9d5a;
  --brand-blue:#0080ff;
  --brand-navy:#080044;
  --ink:#191919;
  --ink-soft:rgba(0,0,0,.71);
  --paper:#ffffff;
  --paper-ink:#161616;
  --paper-muted:#6b6b66;
  --paper-line:#e4e3dc;
  --paper-line-strong:#c9c8c2;
  --paper-soft:#f2f1ec;
  --paper-good:#2f8f5b;
  --paper-critical:#b02c16;
  --family-bricolage:'Bricolage Grotesque',system-ui,sans-serif;
  --family-inter:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --family-helvetica:'Helvetica','Arial',sans-serif;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-heavy:800;
  --space-4:4px;
  --space-8:8px;
  --space-12:12px;
  --space-16:16px;
  --space-20:20px;
  --space-24:24px;
  --space-32:32px;
  --space-40:40px;
  --space-56:56px;
  --radius-8:8px;
  --radius-10:10px;
  --radius-12:12px;
  --radius-16:16px;
  --radius-24:24px;
  --radius-full:999px;
  --duration-fast:.16s;
  --duration-in:.26s;
  --duration-out:.4s;
  --duration-page:.36s;
  --duration-wipe:.42s;
  --duration-crossfade-out:.12s;
  --duration-crossfade-in:.18s;
  --duration-drawer:.25s;
  --duration-collapse:.2s;
  --duration-theme:.3s;
  --duration-page-out:.26s;
  --duration-intro:.55s;
  --duration-door:.9s;
  --duration-door-rise:.65s;
  --duration-door-card:.5s;
  --duration-pulse:1.6s;
  --duration-ring:2.4s;
  --duration-sync-pulse:1.1s;
  --duration-flash:.3s;
  --delay-door-card:.15s;
  --stagger:calc(1s / 30);
  --stagger-delay:.06s;
  --stagger-max:12;
  --stagger-intro:.05s;
  --ease-out:cubic-bezier(0,0,0,1);
  --ease-in:cubic-bezier(.4,0,1,1);
  --ease-soft:cubic-bezier(.2,.7,.2,1);
  --ease-fade:ease;
  /* semantic · shared */
  --accent:var(--lime);
  --accent-soft:color-mix(in srgb,var(--accent) 16%,transparent);
  --accent-halo:color-mix(in srgb,var(--accent) 22%,transparent);
  --brand:var(--brand-blue);
  --font-display:var(--family-bricolage);
  --font-ui:var(--family-inter);
  --font-pdf:var(--family-helvetica);
  --text-micro:11px;
  --text-small:12px;
  --text-note:13px;
  --text-label:14px;
  --text-body:15px;
  --text-heading:18px;
  --text-title:24px;
  --text-display:clamp(32px,4.4vw,50px);
  --text-number:46px;
  --text-number-min:28px;
  --text-number-fit:clamp(var(--text-number-min),15cqi,var(--text-number));
  --tracking-display:-.035em;
  --tracking-title:-.025em;
  --tracking-heading:-.01em;
  --tracking-number:-.04em;
  --tracking-kicker:.14em;
  --type-display:var(--weight-heavy) var(--text-display)/1.04 var(--font-display);
  --type-title:var(--weight-heavy) var(--text-title)/1.1 var(--font-display);
  --type-heading:var(--weight-bold) var(--text-heading)/1.3 var(--font-display);
  --type-number:var(--weight-heavy) var(--text-number-fit)/1.05 var(--font-display);
  --type-body:var(--weight-regular) var(--text-body)/1.5 var(--font-ui);
  --type-button:var(--weight-semibold) var(--text-label)/1.3 var(--font-ui);
  --type-label:var(--weight-medium) var(--text-label)/1.3 var(--font-ui);
  --type-note:var(--weight-regular) var(--text-note)/1.45 var(--font-ui);
  --type-small:var(--weight-regular) var(--text-small)/1.4 var(--font-ui);
  --type-kicker:var(--weight-heavy) var(--text-micro)/1.3 var(--font-ui);
  --type-micro:var(--weight-semibold) var(--text-micro)/1.3 var(--font-ui);
  --radius-chip:var(--radius-8);
  --radius-control:var(--radius-10);
  --radius-inner:var(--radius-12);
  --radius-card:var(--radius-16);
  --radius-floating:var(--radius-24);
  --radius-round:var(--radius-full);
  --elevation-0:none;
  --elevation-1:0 12px 34px rgb(0 0 0 / .22);
  --elevation-2:0 30px 70px rgb(0 0 0 / .45);
  --scrim:rgba(0,0,0,.5);
  --scrim-blur:2px;
  --glass-blur:16px;
  --glass-saturate:1.4;
  --glass-line:var(--line);
  --glass-bg:color-mix(in srgb,var(--surface) 60%,transparent);
  --good-soft:color-mix(in srgb,var(--good) 14%,transparent);
  --warning-soft:color-mix(in srgb,var(--warning) 14%,transparent);
  --critical-soft:color-mix(in srgb,var(--critical) 14%,transparent);
  --info-soft:color-mix(in srgb,var(--info) 14%,transparent);
  --live:var(--good);
  --live-text:var(--good-text);
  --good-soft-hover:color-mix(in srgb,var(--good) 22%,transparent);
  --good-edge:color-mix(in srgb,var(--good) 40%,transparent);
  --warning-edge:color-mix(in srgb,var(--warning) 40%,transparent);
  --critical-edge:color-mix(in srgb,var(--critical) 40%,transparent);
  --on-color-hover:rgba(0,0,0,.08);
  --on-color-fill:rgba(0,0,0,.1);
  --on-color-fill-hover:rgba(0,0,0,.18);
  --on-color-edge:rgba(0,0,0,.14);
  --on-color-track:rgba(0,0,0,.12);
  --on-color-line:rgba(0,0,0,.12);
  --on-color-edge-strong:rgba(0,0,0,.35);
  --on-color-surface:rgba(255,255,255,.34);
  --on-color-surface-strong:rgba(255,255,255,.55);
  --critical-on-color:#8a1f10;
  --on-ink:var(--neutral-50);
  --image-backdrop:#111111;
  --image-scrim:rgba(0,0,0,.55);
  --on-image:#ffffff;
  --accent-dash:color-mix(in srgb,var(--accent) 60%,var(--line));
  --opacity-disabled:.5;
  --opacity-hover:.8;
  --opacity-placeholder:.28;
  --zone-invoices:var(--amber);
  --zone-project:var(--periwinkle);
  --zone-expenses:var(--peach);
  --zone-payments:var(--mint);
  --zone-neutral:var(--stone);
  --priority-high:var(--text);
  --priority-medium:var(--muted);
  --priority-low:var(--faint);
  --priority-backburner:var(--faint);
  --z-raised:2;
  --z-local:5;
  --z-tip:20;
  --z-shell:45;
  --z-floating:50;
  --z-gate:55;
  --z-scrim:55;
  --z-drawer:60;
  --z-toast:60;
  --z-popover:70;
  /* semantic · dark, the default theme */
  --bg:var(--neutral-900);
  --surface:var(--neutral-800);
  --surface-2:var(--neutral-750);
  --line:var(--neutral-700);
  --line-strong:var(--neutral-500);
  --faint:var(--neutral-500);
  --text:var(--neutral-50);
  --muted:var(--neutral-300);
  --brand-ink:var(--neutral-50);
  --accent-text:var(--accent);
  --accent-ring:var(--accent);
  --on-accent:var(--ink);
  --good:var(--green-500);
  --good-text:var(--green-400);
  --warning:var(--amber);
  --warning-text:var(--amber);
  --critical:var(--coral);
  --critical-text:color-mix(in srgb,var(--critical) 89%,#fff);
  --info:var(--sky);
  --info-text:var(--sky);
  /* component */
  --control-height:44px;
  --control-height-compact:36px;
  --icon-button-size:40px;
  --topbar-height:56px;
  --topbar-blue:10%;
  --topbar-alpha:35%;
  --topbar-line:1.25px;
  --topbar-tint:color-mix(in srgb,var(--brand) var(--topbar-blue),var(--bg));
  --topbar-bg:color-mix(in srgb,var(--topbar-tint) var(--topbar-alpha),transparent);
  --sidebar-width:248px;
  --sidebar-width-rail:76px;
  --sidebar-width-hidden:0px;
  --nav-indicator-width:4.5px;
  --main-max-width:1240px;
  --page-pad-min:18px;
  --page-pad-max:56px;
  --page-pad:clamp(var(--page-pad-min),4vw,var(--page-pad-max));
  --breakpoint-phone:860px;
  --icon-size-sm:16px;
  --icon-size:20px;
  --icon-size-lg:24px;
  --icon-stroke:1.75;
  --logo-height-bar:24px;
  --logo-height-phone:20px;
  --logo-height-door:52px;
  --favicon-size:16px;
  --avatar-size:36px;
  --avatar-size-sm:32px;
  --avatar-size-xl:112px;
  --border-width:1px;
  --border-width-strong:1.5px;
  --shadow-drag:0 24px 50px rgb(0 0 0 / .4);
  --shadow-drawer:16px 0 40px rgb(0 0 0 / .35);
  --shadow-paper:0 24px 60px rgb(0 0 0 / .18);
  --premium-badge:linear-gradient(135deg,var(--butter),var(--amber));
  --scrim-drawer:rgba(0,0,0,.45);
  --lift-card:-9px;
  --lift-chip:-4px;
  --lift-button:-1px;
  --lift-color-pill:-2px;
  --lift-icon:-1px;
  --nudge-nav:2px;
  --nudge-note:3px;
  --rise-page:10px;
  --rise-dialog:10px;
  --rise-toast:16px;
  --rise-intro:14px;
  --rise-tip:4px;
  --rise-door-card:16px;
  --drop-popover:-4px;
  --press-button:.97;
  --press-icon:.86;
  --press-pill:.96;
  --press-swatch:.94;
  --press-color-pill:.95;
  --press-check:.84;
  --press-nav:.98;
  --press-tile:.985;
  --press-day:.98;
  --hover-icon:1.08;
  --hover-swatch:1.14;
  --hover-check:1.1;
  --hover-thumb:1.03;
  --scale-dialog:.97;
  --scale-popover:.96;
  --scale-toast:.96;
  --pop-from:.5;
  --pop-peak:1.2;
  --wipe-from:100%;
  --pulse-opacity:.3;
  --ring-from:.6;
  --ring-to:1.9;
  --ring-opacity:.9;
  --door-logo-drop:130px;
  --door-logo-drop-phone:110px;
  --door-logo-scale:.55;
  --drag-tilt:1.2deg;
  --drag-scale:1.02;
  --turn-theme:-20deg;
  --drawer-offset:-105%;
  --pdf-title:28;
  --pdf-report-title:22;
  --pdf-name:15;
  --pdf-section:12;
  --pdf-stamp:11;
  --pdf-note-title:10.5;
  --pdf-body:10;
  --pdf-table:9.5;
  --pdf-due:9;
  --pdf-label:8.5;
  --pdf-caption:8;
  /* aliases: 1.19.0 names, kept two minor versions */
  --muted-2:var(--faint);
  --r-lg:22px;
  --r:var(--radius-card);
  --pill:var(--radius-full);
  --display:var(--font-display);
  --font:var(--font-ui);
  --ease:var(--ease-out);
  --t-fast:var(--duration-fast);
  --t:var(--duration-in);
  --t-slow:var(--duration-out);
  --logo-ink:var(--brand-ink);
  --logo-blue:var(--brand);
  --topbar:var(--topbar-height);
  --topbar-blur:var(--glass-blur);
}
[data-wd-theme=dark]{
  --bg:var(--neutral-900);
  --surface:var(--neutral-800);
  --surface-2:var(--neutral-750);
  --line:var(--neutral-700);
  --line-strong:var(--neutral-500);
  --faint:var(--neutral-500);
  --text:var(--neutral-50);
  --muted:var(--neutral-300);
  --brand-ink:var(--neutral-50);
  --accent-text:var(--accent);
  --accent-ring:var(--accent);
  --on-accent:var(--ink);
  --good:var(--green-500);
  --good-text:var(--green-400);
  --warning:var(--amber);
  --warning-text:var(--amber);
  --critical:var(--coral);
  --critical-text:color-mix(in srgb,var(--critical) 89%,#fff);
  --info:var(--sky);
  --info-text:var(--sky);
}
[data-wd-theme=light]{
  --bg:var(--warm-150);
  --surface:var(--warm-50);
  --surface-2:var(--warm-100);
  --line:var(--warm-200);
  --line-strong:var(--warm-400);
  --faint:var(--warm-400);
  --text:var(--warm-900);
  --muted:var(--warm-600);
  --brand-ink:var(--brand-navy);
  --accent-text:color-mix(in srgb,var(--accent) 40%,#000);
  --accent-ring:color-mix(in srgb,var(--accent) 50%,#000);
  --on-accent:var(--ink);
  --good:var(--green-600);
  --warning:var(--amber);
  --critical:var(--coral);
  --info:var(--sky);
  --good-text:color-mix(in srgb,var(--good) 70%,#000);
  --warning-text:color-mix(in srgb,var(--warning) 53%,#000);
  --critical-text:color-mix(in srgb,var(--critical) 67%,#000);
  --info-text:color-mix(in srgb,var(--info) 49%,#000);
}
/* tokens that read a themed token, re-declared so a nested data-wd-theme scope recomputes them */
[data-wd-theme]{
  --glass-line:var(--line);
  --glass-bg:color-mix(in srgb,var(--surface) 60%,transparent);
  --good-soft:color-mix(in srgb,var(--good) 14%,transparent);
  --warning-soft:color-mix(in srgb,var(--warning) 14%,transparent);
  --critical-soft:color-mix(in srgb,var(--critical) 14%,transparent);
  --info-soft:color-mix(in srgb,var(--info) 14%,transparent);
  --live:var(--good);
  --live-text:var(--good-text);
  --good-soft-hover:color-mix(in srgb,var(--good) 22%,transparent);
  --good-edge:color-mix(in srgb,var(--good) 40%,transparent);
  --warning-edge:color-mix(in srgb,var(--warning) 40%,transparent);
  --critical-edge:color-mix(in srgb,var(--critical) 40%,transparent);
  --accent-dash:color-mix(in srgb,var(--accent) 60%,var(--line));
  --priority-high:var(--text);
  --priority-medium:var(--muted);
  --priority-low:var(--faint);
  --priority-backburner:var(--faint);
  --topbar-tint:color-mix(in srgb,var(--brand) var(--topbar-blue),var(--bg));
  --topbar-bg:color-mix(in srgb,var(--topbar-tint) var(--topbar-alpha),transparent);
  --muted-2:var(--faint);
  --logo-ink:var(--brand-ink);
}
/* Settings → Motion → Reduced: movement stills and fades stay; the card lift is kept on purpose. With no data-motion, the device setting decides. */
[data-motion=reduced]{
  --duration-page:var(--duration-crossfade-in);
  --duration-wipe:var(--duration-crossfade-in);
  --duration-drawer:0s;
  --duration-collapse:0s;
  --duration-page-out:var(--duration-crossfade-out);
  --duration-intro:var(--duration-crossfade-in);
  --duration-door:var(--duration-crossfade-in);
  --duration-door-rise:0s;
  --duration-door-card:var(--duration-crossfade-in);
  --delay-door-card:0s;
  --stagger:0s;
  --stagger-delay:0s;
  --stagger-intro:0s;
  --lift-button:0px;
  --lift-color-pill:0px;
  --lift-icon:0px;
  --nudge-nav:0px;
  --nudge-note:0px;
  --rise-page:0px;
  --rise-dialog:0px;
  --rise-toast:0px;
  --rise-intro:0px;
  --rise-tip:0px;
  --rise-door-card:0px;
  --drop-popover:0px;
  --press-button:1;
  --press-icon:1;
  --press-pill:1;
  --press-swatch:1;
  --press-color-pill:1;
  --press-check:1;
  --press-nav:1;
  --press-tile:1;
  --press-day:1;
  --hover-icon:1;
  --hover-swatch:1;
  --hover-check:1;
  --hover-thumb:1;
  --scale-dialog:1;
  --scale-popover:1;
  --scale-toast:1;
  --pop-from:1;
  --pop-peak:1;
  --wipe-from:0%;
  --pulse-opacity:1;
  --ring-opacity:0;
  --door-logo-scale:1;
  --drag-tilt:0deg;
  --drag-scale:1;
  --turn-theme:0deg;
}
@media (prefers-reduced-motion: reduce){
  :root:not([data-motion]){
    --duration-page:var(--duration-crossfade-in);
    --duration-wipe:var(--duration-crossfade-in);
    --duration-drawer:0s;
    --duration-collapse:0s;
    --duration-page-out:var(--duration-crossfade-out);
    --duration-intro:var(--duration-crossfade-in);
    --duration-door:var(--duration-crossfade-in);
    --duration-door-rise:0s;
    --duration-door-card:var(--duration-crossfade-in);
    --delay-door-card:0s;
    --stagger:0s;
    --stagger-delay:0s;
    --stagger-intro:0s;
    --lift-button:0px;
    --lift-color-pill:0px;
    --lift-icon:0px;
    --nudge-nav:0px;
    --nudge-note:0px;
    --rise-page:0px;
    --rise-dialog:0px;
    --rise-toast:0px;
    --rise-intro:0px;
    --rise-tip:0px;
    --rise-door-card:0px;
    --drop-popover:0px;
    --press-button:1;
    --press-icon:1;
    --press-pill:1;
    --press-swatch:1;
    --press-color-pill:1;
    --press-check:1;
    --press-nav:1;
    --press-tile:1;
    --press-day:1;
    --hover-icon:1;
    --hover-swatch:1;
    --hover-check:1;
    --hover-thumb:1;
    --scale-dialog:1;
    --scale-popover:1;
    --scale-toast:1;
    --pop-from:1;
    --pop-peak:1;
    --wipe-from:0%;
    --pulse-opacity:1;
    --ring-opacity:0;
    --door-logo-scale:1;
    --drag-tilt:0deg;
    --drag-scale:1;
    --turn-theme:0deg;
  }
}
/* any accent stays AA: relative color syntax where the browser has it; the color-mix values above where it does not */
@supports (color: oklch(from red l c h)){
  :root,[data-wd-theme=dark]{
    --accent-text:oklch(from var(--accent) max(l, 0.72) c h);
    --accent-ring:oklch(from var(--accent) max(l, 0.62) c h);
    --on-accent:oklch(from var(--accent) calc(0.213 + 0.748 * clamp(0, (0.585 - l) * 999, 1)) 0 0);
  }
  [data-wd-theme=light]{
    --accent-text:oklch(from var(--accent) min(l, 0.5) calc(c * min(1, 0.5 / l)) h);
    --accent-ring:oklch(from var(--accent) min(l, 0.6) calc(c * min(1, 0.6 / l)) h);
    --on-accent:oklch(from var(--accent) calc(0.213 + 0.748 * clamp(0, (0.585 - l) * 999, 1)) 0 0);
  }
}
/* kept from the 1.19.0 header: a rule, not a token */
[data-wd-theme=dark] input,[data-wd-theme=dark] select{color-scheme:dark}
