/* ============================================================
   Typography tokens — single source of truth for every font
   family, size, weight, and line-height used under dashboard/.
   See CLAUDE.md "Frontend Design System Rules". Mirrors the
   pattern tokens.css uses for color: define once here, reference
   everywhere else via var(--token-name). Never write a literal
   font-size/font-weight/font-family in another dashboard/ CSS file.

   Scale is a step up from the old ad-hoc px literals (9–14px body/
   label text, 14px base) to a more readable floor across the app —
   same relative hierarchy, larger absolute sizes.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root{
  /* Families */
  --font-sans:'Montserrat',sans-serif;
  --font-mono:'Courier New',monospace;

  /* Size scale — old value -> new value noted for traceability */
  --fs-3xs:11px;   /* was 9px   — smallest badges */
  --fs-2xs:12px;   /* was 10/10.5px — uppercase micro-labels */
  --fs-xs:13px;    /* was 11/11.5px — secondary meta text/labels */
  --fs-sm:14px;    /* was 12px  — secondary text, buttons, form labels */
  --fs-base:15px;  /* was 13px  — primary body/UI text (most common size) */
  --fs-md:16px;    /* was 14px  — page base font-size, emphasized text */
  --fs-lg:17px;    /* was 15px  — small headings/subtitles */
  --fs-xl:20px;    /* was 18px  — section headings */
  --fs-2xl:22px;   /* was 20px  — larger headings */
  --fs-3xl:24px;   /* was 22px  — auth/page titles */
  --fs-4xl:28px;   /* was 26px  — stat values, wordmark */
  --fs-5xl:34px;   /* was 32px  — large glyph/icon-in-text */
  --fs-6xl:42px;   /* was 40/36px — empty-state glyph, big stat numbers */
  --fs-7xl:50px;   /* was 48px  — large empty-state icon */
  --fs-8xl:56px;   /* was 52px  — full-bleed confirmation glyph */

  /* Weights */
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --fw-extrabold:800;

  /* Line heights */
  --lh-tight:1;
  --lh-heading:1.1; /* compact leading for large numeric stat displays */
  --lh-snug:1.4;
  --lh-normal:1.5;
  --lh-relaxed:1.6;
  --lh-loose:1.7;
  --lh-double:2;    /* generously spaced short banner/callout text */
}
