/* ============================================================
   MEDSY — TYPOGRAPHY TOKENS
   Inter carries the voice; hierarchy comes from weight, scale and
   tracking, never from mixing display faces. Three ROLES, named
   for what they do:
     --f-body    reading text
     --f-display the same family at heavy weight + tight tracking
     --f-caps    the label voice — Inter uppercase, wide tracking
                 (eyebrows, section labels, table headers)
     --f-code    literal values — a real monospace stack for code,
                 keys, IDs, hex and token names

   FIGURES — measured, not assumed. Inter ships real tabular figures:
   at 24.8px/800, "111111" and "000000" both measure 94.86px with
   `font-variant-numeric:tabular-nums`, against a 38px drift without
   it. So any number that shares a column or changes in place stays
   in the brand face and adds `tabular-nums` (or the `.figs` helper).
   Monospace is for literals, NOT for alignment — swapping figures to
   --f-code puts a foreign face inside charts and readouts.

   --f-mono is the historical alias of --f-caps, kept working for
   consumers; it was never monospace despite the name. Reach for
   --f-caps (labels), .figs (figures) or --f-code (literals).
   ============================================================ */
:root{
  /* ---- families ---- @kind font ---- */
  --f-display:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,system-ui,sans-serif; /* @kind font */
  --f-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,system-ui,sans-serif; /* @kind font */
  --f-caps:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,system-ui,sans-serif; /* @kind font */
  /* real monospace — system faces only, so it stays offline-safe like the rest */
  --f-code:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace; /* @kind font */
  --f-mono:var(--f-caps);  /* deprecated alias — see header  @kind font */

  /* semantic family aliases */
  --font-display:var(--f-display); /* @kind font */
  --font-body:var(--f-body); /* @kind font */
  --font-label:var(--f-caps); /* @kind font */
  --font-code:var(--f-code); /* @kind font */

  /* ---- weights ---- @kind font ---- */
  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */
  --fw-extrabold:800; /* @kind font */
  --fw-black:900; /* @kind font */

  /* ---- type scale (fluid where it matters) ---- @kind font ---- */
  --fs-display:clamp(3rem,8.5vw,6.4rem); /* @kind font */
  --fs-h1:clamp(2.4rem,6vw,4rem); /* @kind font */
  --fs-h2:clamp(2.1rem,5.2vw,3.6rem); /* @kind font */
  --fs-h3:clamp(1.5rem,3vw,2rem); /* @kind font */
  --fs-h4:clamp(1.2rem,1.6vw,1.35rem); /* @kind font */
  --fs-lead:clamp(1.05rem,2.2vw,1.32rem); /* @kind font */
  --fs-body:1.0625rem;   /* 17px base  @kind font */
  --fs-sm:0.95rem; /* @kind font */
  --fs-xs:0.82rem; /* @kind font */
  --fs-eyebrow:0.72rem; /* @kind font */
  --fs-micro:0.6875rem;  /* 11px — the legibility floor: table headers, chart axis
                            labels, badges, timestamps. Never set type below this.  @kind font */

  /* ---- line-heights ---- @kind font ---- */
  --lh-tight:0.98; /* @kind font */
  --lh-snug:1.04; /* @kind font */
  --lh-body:1.6; /* @kind font */

  /* ---- letter-spacing ---- @kind font ---- */
  --ls-display:-0.03em; /* @kind font */
  --ls-tight:-0.02em; /* @kind font */
  --ls-body:-0.011em; /* @kind font */
  --ls-caps:0.18em;       /* eyebrows / labels  @kind font */
  --ls-caps-wide:0.28em; /* @kind font */
}
