/* GENERATED from tokens.json — do not edit. Run: node scripts/generate-tokens.mjs
 * Plain :root vars work in any browser; the @theme block maps the same vars
 * for Tailwind v4 (utilities like bg-signature, text-muted). Utilities emit
 * var(--color-*) references — NOT literal hexes — so the [data-theme="dark"]
 * override below swaps every utility with no theme branching.
 * Default palette disabled. Dark mode: selector strategy ([data-theme="dark"])
 * — user toggle, not OS-follow.
 */

:root {
  --color-canvas: #FAF7F2;
  --color-surface: #FFFFFF;
  --color-sunken: #F2EEE6;
  --color-elevated: #FFFFFF;
  --color-border-default: #E3DDD3;
  --color-border-strong: #857D6F;
  --color-text-primary: #1C1A17;
  --color-text-secondary: #57534C;
  --color-text-muted: #6F6A61;
  --color-text-inverse: #FAF7F2;
  --color-signature: #8A3A6B;
  --color-signature-pressed: #6E2E56;
  --color-signature-tint: #F5E4EE;
  --color-data: #2F5D78;
  --color-data-tint: #E4EDF3;
  --color-success: #2E7D5B;
  --color-success-tint: #E2F0EA;
  --color-warning: #B4771A;
  --color-warning-tint: #F8ECD8;
  --color-error: #A32B3E;
  --color-error-tint: #F6E3E6;
  --color-focus-ring: #1C1A17;
  --color-scrim: rgb(58 45 33 / 0.5);
  --color-disabled-surface: #F2EEE6;
  --color-disabled-text: #9B958A;
  --color-series-1: #2F5D78;
  --color-series-2: #4E8C86;
  --color-series-3: #8A5B7A;
  --color-series-4: #6B7A4F;
  --color-series-5: #A67C52;
  --color-series-6: #5568A0;
  --color-partner-ribix: #22543D;
  --color-partner-ribix-tint: #E4EFE8;
  --color-partner-dfult: #3A3FAD;
  --color-partner-dfult-tint: #E9EAF6;
  --color-partner-echolab: #0C7A57;
  --color-partner-echolab-tint: #DEF2EA;
  --color-partner-alecto: #A32733;
  --color-partner-alecto-tint: #F5E5E5;

  /* spacing scale */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* radii */
  --radius-dot: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-card: 10px;
  --radius-lg: 12px;
  --radius-bubble: 14px;
  --radius-full: 999px;

  /* type scale (sizes; line-heights as --text-*-line-height) */
  --text-display-xl: 52px;
  --text-display-xl--line-height: 1.06;
  --text-display-xl--tracking: -0.015em;
  --text-display-xl-mobile: 40px;
  --text-display-xl-mobile--line-height: 1.1;
  --text-display: 34px;
  --text-display--line-height: 1.1;
  --text-wordmark: 17px;
  --text-wordmark--line-height: 1.2;
  --text-h2: 22px;
  --text-h2--line-height: 1.3;
  --text-title: 20px;
  --text-title--line-height: 1.3;
  --text-body-lg: 17px;
  --text-body-lg--line-height: 1.7;
  --text-body: 16px;
  --text-body--line-height: 1.6;
  --text-body-ui: 15px;
  --text-body-ui--line-height: 1.6;
  --text-small: 13px;
  --text-small--line-height: 1.5;
  --text-caption: 12px;
  --text-caption--line-height: 1.5;
  --text-label-mono: 11px;
  --text-label-mono--line-height: 1.4;
  --text-label-mono--tracking: 0.1em;
  --text-label-mono-sm: 11px;
  --text-label-mono-sm--line-height: 1.5;
}

/* Tailwind v4 theme mapping — same vars, exposed as utilities (bg-canvas, text-muted, text-display-xl).
 * NOT @theme inline: inline bakes the literal light hex into every utility, which
 * makes [data-theme="dark"] var overrides unreachable from Tailwind classes
 * (dark mode silently broken on every Tailwind surface). Non-inline utilities
 * emit var() references and resolve at use-site, so the dark block swaps them.
 * Type-scale --text-* keys live here too: Tailwind turns them into text-{role}
 * font-size utilities (with line-height/tracking attached). */
@theme {
  /* default Tailwind palette disabled — semantic names only */
  --color-*: initial;
  --color-canvas: #FAF7F2;
  --color-surface: #FFFFFF;
  --color-sunken: #F2EEE6;
  --color-elevated: #FFFFFF;
  --color-border-default: #E3DDD3;
  --color-border-strong: #857D6F;
  --color-text-primary: #1C1A17;
  --color-text-secondary: #57534C;
  --color-text-muted: #6F6A61;
  --color-text-inverse: #FAF7F2;
  --color-signature: #8A3A6B;
  --color-signature-pressed: #6E2E56;
  --color-signature-tint: #F5E4EE;
  --color-data: #2F5D78;
  --color-data-tint: #E4EDF3;
  --color-success: #2E7D5B;
  --color-success-tint: #E2F0EA;
  --color-warning: #B4771A;
  --color-warning-tint: #F8ECD8;
  --color-error: #A32B3E;
  --color-error-tint: #F6E3E6;
  --color-focus-ring: #1C1A17;
  --color-scrim: rgb(58 45 33 / 0.5);
  --color-disabled-surface: #F2EEE6;
  --color-disabled-text: #9B958A;
  --color-series-1: #2F5D78;
  --color-series-2: #4E8C86;
  --color-series-3: #8A5B7A;
  --color-series-4: #6B7A4F;
  --color-series-5: #A67C52;
  --color-series-6: #5568A0;
  --color-partner-ribix: #22543D;
  --color-partner-ribix-tint: #E4EFE8;
  --color-partner-dfult: #3A3FAD;
  --color-partner-dfult-tint: #E9EAF6;
  --color-partner-echolab: #0C7A57;
  --color-partner-echolab-tint: #DEF2EA;
  --color-partner-alecto: #A32733;
  --color-partner-alecto-tint: #F5E5E5;

  /* type scale as theme keys — text-display-xl, text-body, ... */
  --text-display-xl: 52px;
  --text-display-xl--line-height: 1.06;
  --text-display-xl--tracking: -0.015em;
  --text-display-xl-mobile: 40px;
  --text-display-xl-mobile--line-height: 1.1;
  --text-display: 34px;
  --text-display--line-height: 1.1;
  --text-wordmark: 17px;
  --text-wordmark--line-height: 1.2;
  --text-h2: 22px;
  --text-h2--line-height: 1.3;
  --text-title: 20px;
  --text-title--line-height: 1.3;
  --text-body-lg: 17px;
  --text-body-lg--line-height: 1.7;
  --text-body: 16px;
  --text-body--line-height: 1.6;
  --text-body-ui: 15px;
  --text-body-ui--line-height: 1.6;
  --text-small: 13px;
  --text-small--line-height: 1.5;
  --text-caption: 12px;
  --text-caption--line-height: 1.5;
  --text-label-mono: 11px;
  --text-label-mono--line-height: 1.4;
  --text-label-mono--tracking: 0.1em;
  --text-label-mono-sm: 11px;
  --text-label-mono-sm--line-height: 1.5;
}

/* Dark mode — selector strategy. Only confirmed dark values; everything else
 * intentionally falls through to light values (visible, not silent) until the
 * pending list in tokens.json is resolved. */
[data-theme="dark"] {
  --color-canvas: #1A1815;
  --color-surface: #201D18;
  --color-sunken: #161411;
  --color-elevated: #2A2620;
  --color-border-default: #3A352D;
  --color-border-strong: #4A443A;
  --color-text-primary: #F0EBE2;
  --color-text-secondary: #A9A399;
  --color-text-muted: #8F897E;
  --color-focus-ring: #F0EBE2;
  --color-signature: #C06A9D;
  --color-signature-pressed: #CE85B2;
  --color-signature-tint: #3B2534;
  --color-data: #7FB3D0;
  --color-data-tint: #22333E;
  --color-success: #5BA883;
  --color-success-tint: #1E3329;
  --color-warning: #D9A441;
  --color-warning-tint: #3A2E1C;
  --color-error: #D95A6C;
  --color-error-tint: #3B2229;
  --color-scrim: rgb(10 9 7 / 0.6);
  --color-disabled-text: #6B655B;
  --color-series-1: #7FB3D0;
  --color-series-2: #6FB3AC;
  --color-series-3: #B083A8;
  --color-series-4: #9AAB6F;
  --color-series-5: #C49A6A;
  --color-series-6: #8291C0;
  --color-partner-ribix: #6FB08A;
  --color-partner-ribix-tint: #1E2C23;
  --color-partner-dfult: #9CA0E8;
  --color-partner-dfult-tint: #25273E;
  --color-partner-echolab: #4FBE91;
  --color-partner-echolab-tint: #172B22;
  --color-partner-alecto: #D97C82;
  --color-partner-alecto-tint: #33201F;
}
