/* ==========================================================================
   Entwine — Typography tokens
   One typeface: Inter — headings, UI, body and numerals, matching the product.
   IBM Plex Mono is available for code and dense tabular data only.
   Numerals use tabular figures so metric columns align.
   ========================================================================== */

:root {
  /* Families */
  --font-display: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-black: 800;

  /* Type scale — tuned for a dense B2B dashboard. Body sits at 14px. */
  --text-2xs: 0.6875rem;  /* 11px — dense table meta, micro-labels */
  --text-xs:  0.75rem;    /* 12px — captions, badges, eyebrows */
  --text-sm:  0.8125rem;  /* 13px — secondary UI text */
  --text-base:0.875rem;   /* 14px — body / default UI */
  --text-md:  1rem;       /* 16px — lead paragraph */
  --text-lg:  1.125rem;   /* 18px — card / section titles */
  --text-xl:  1.375rem;   /* 22px — page section heads */
  --text-2xl: 1.75rem;    /* 28px — page titles */
  --text-3xl: 2.25rem;    /* 36px — big KPI numbers */
  --text-4xl: 3rem;       /* 48px — hero secondary */
  --text-5xl: 3.75rem;    /* 60px — display / marketing */

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

  /* Letter spacing */
  --tracking-tighter: -0.022em;  /* large display / hero */
  --tracking-tight: -0.014em;    /* headings, big numbers */
  --tracking-normal: 0em;
  --tracking-wide: 0.02em;
  --tracking-caps: 0.06em;       /* uppercase eyebrows / labels */

  /* Semantic roles — display is now a bold sans, not a serif. */
  --role-display-font: var(--font-display);
  --role-display-weight: var(--weight-bold);
  --role-display-tracking: var(--tracking-tighter);
  --role-display-leading: var(--leading-tight);

  --role-heading-font: var(--font-sans);
  --role-heading-weight: var(--weight-semibold);
  --role-heading-tracking: var(--tracking-tight);

  --role-body-font: var(--font-sans);
  --role-body-weight: var(--weight-regular);
  --role-body-leading: var(--leading-normal);

  /* Eyebrows / KPI labels — uppercase sans, letterspaced (not mono). */
  --role-eyebrow-font: var(--font-sans);
  --role-eyebrow-weight: var(--weight-semibold);
  --role-eyebrow-tracking: var(--tracking-caps);
  --role-eyebrow-size: var(--text-xs);
}
