/*
 * GENERATED. Do not hand-edit: run `python3 .tools/design/build-tokens.py`.
 *
 * Derived from the Claude design system's `colors_and_type.css`. The deltas applied and the
 * reasoning behind each are in that script's docblock and in assets/design/SOURCE.md.
 */

@font-face {
  font-family: "Jost";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Jost-VariableFont_wght.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Jost";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Jost-Italic-VariableFont_wght.woff2") format("woff2-variations");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Inter-Italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("fonts/Inter-Italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  /* Light */
  --lm-orange: #FF5A28;
  --lm-light-orange: #FFF2EB;
  --lm-electric-blue: #1462D2;
  --lm-brand-blue: #1F2B7A;
  --lm-midnight-blue: #121948;
  --lm-neutral-text: #333333;
  --lm-white: #FFFFFF;
  --lm-light-blue: #EBEBF3;


  /* ----- Type stack ----- */
  --font-sans: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* Type weights */
  --weight-light: 350;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-heavy: 800;

  /* Type scale (clamp-based, fluid) */
  --text-xs: 0.75rem;     /* 12px */
  --text-sm: 0.875rem;    /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg: 1.125rem;    /* 18px */
  --text-xl: 1.25rem;     /* 20px */
  --text-2xl: 1.5rem;     /* 24px */
  --text-3xl: 1.875rem;   /* 30px */
  --text-4xl: 2.25rem;    /* 36px */
  --text-5xl: 3rem;       /* 48px */
  --text-6xl: 3.75rem;    /* 60px */
  --text-display: clamp(2.5rem, 4vw + 1rem, 4.5rem);

  /* Line heights */
  --leading-tight: 1.15;
  --leading-snug: 1.3;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* Letter spacing */
  --tracking-tighter: -0.025em;
  --tracking-tight: -0.015em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-widest: 0.12em;

  /* Spacing scale (4px base) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  /* Radii */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-pill: 999px;

  /* Shadows (light-mode tuned) */
  --shadow-xs: 0 1px 2px rgba(18, 25, 72, 0.05);
  --shadow-sm: 0 1px 3px rgba(18, 25, 72, 0.08), 0 1px 2px rgba(18, 25, 72, 0.04);
  --shadow-md: 0 4px 12px rgba(18, 25, 72, 0.08), 0 2px 4px rgba(18, 25, 72, 0.04);
  --shadow-lg: 0 12px 32px rgba(18, 25, 72, 0.12), 0 4px 8px rgba(18, 25, 72, 0.06);
  --shadow-xl: 0 24px 48px rgba(18, 25, 72, 0.16), 0 8px 16px rgba(18, 25, 72, 0.08);
  --shadow-focus: 0 0 0 3px rgba(20, 98, 210, 0.25);
  --shadow-focus-primary: 0 0 0 3px rgba(255, 90, 40, 0.3);

  /* Motion */
  --ease-standard: cubic-bezier(0.2, 0, 0.2, 1);
  --ease-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 120ms;
  --duration-base: 180ms;
  --duration-slow: 280ms;

  /* Layout */
  --navbar-height-lg: 56px;
  --navbar-height-md: 52px;
  --navbar-height-sm: 52px;
  --content-max-width: 1280px;

  --color-primary: var(--lm-orange);
  --color-primary-hover: #E8491C;
  --color-primary-muted: var(--lm-light-orange);
  --color-secondary: var(--lm-electric-blue);
  --color-secondary-hover: #0F4FAB;
  --color-brand: var(--lm-brand-blue);

  --color-bg: var(--lm-white);
  --color-bg-alt: var(--lm-light-blue);
  --color-surface: var(--lm-white);
  --color-surface-hover: var(--lm-light-blue);
  --color-surface-active: #DADBE6;
  --color-border: #DADBE6;
  --color-border-strong: #B7B9CC;

  --color-text-heading: var(--lm-midnight-blue);
  --color-text-body: var(--lm-neutral-text);
  --color-text-muted: #6B7280;
  --color-text-on-primary: #FFFFFF;
  --color-text-on-dark: #FFFFFF;

  --color-success: #10B981;
  --color-success-muted: #D1FAE5;
  --color-warning: #F59E0B;
  --color-warning-muted: #FEF3C7;
  --color-danger: #EF4444;
  --color-danger-muted: #FEE2E2;

  --color-sidebar-bg: var(--lm-midnight-blue);
  --color-sidebar-text: #C7C9E0;
  --color-sidebar-text-active: #FFFFFF;
  --color-sidebar-hover: rgba(255, 255, 255, 0.08);
  --color-sidebar-section: rgba(255, 255, 255, 0.04);

  --color-topnav-bg: var(--lm-white);
  --color-topnav-text: var(--lm-midnight-blue);
  --color-topnav-text-muted: #6B7280;
  --color-topnav-border: #DADBE6;
  --color-topnav-badge-bg: var(--lm-light-blue);
  --color-topnav-badge-text: var(--lm-neutral-text);

  --color-table-stripe: rgba(0, 0, 0, 0.025);

  /* Ageing series */
  --color-ageing-current: #10B981;
  --color-ageing-1-30: #3B82F6;
  --color-ageing-31-60: #F59E0B;
  --color-ageing-61-90: #F97316;
  --color-ageing-91-120: #EF4444;
  --color-ageing-120-plus: #7C3AED;

  /* Complementary */
  --color-comp-violet: #7C3AED;
  --color-comp-violet-muted: #EDE9FE;
  --color-comp-teal: #0D9488;
  --color-comp-teal-muted: #CCFBF1;
  --color-comp-rose: #E11D48;
  --color-comp-rose-muted: #FFE4E6;
  --color-comp-sky: #0284C7;
  --color-comp-sky-muted: #E0F2FE;
  --color-comp-fuchsia: #C026D3;
  --color-comp-fuchsia-muted: #FAE8FF;

  --gradient-warm: linear-gradient(135deg, #FF5A28, #E11D48);
  --gradient-cool: linear-gradient(135deg, #1462D2, #0D9488);
  --gradient-brand: linear-gradient(135deg, #FF5A28, #1462D2);
  --gradient-neutral: linear-gradient(180deg, #FFFFFF, #EBEBF3);
  --gradient-vivid: linear-gradient(135deg, #7C3AED, #C026D3, #E11D48);
  --gradient-ocean: linear-gradient(135deg, #0284C7, #0D9488);
  /* ADDED here, not read from source. The consolidation of 2026-08-14 adopted the
     1520px marketing container; the source stylesheet predates it and ships only
     --content-max-width (1280px), which is app-only. */
  --row-max-width: 1520px;

  /* ADDED here. The consolidation sanctions Inter for long-form reading, and the
     four subsets above are what makes the name resolve. Ship the font before the
     token: a family that is not there falls back with no error anywhere. */
  --font-reading: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
