/* =============================================================================
   BUAMS AI new-ui — TYPOGRAPHY
   Spec: /frontend_design.md §C

   Element defaults plus a small set of .bui-text-* utilities. The scale lives
   in variables.css; this file only applies it. Never introduce a font-size
   outside the token set.
   ============================================================================= */

/* ── Headings ─────────────────────────────────────────────────────────────── */
.bui-display {
  font-size: var(--bui-text-display);
  line-height: var(--bui-lh-tight);
  font-weight: var(--bui-fw-heavy);
  letter-spacing: -.02em;
  color: var(--bui-ink-900);
}

.bui-h1 {
  font-size: var(--bui-text-h1);
  line-height: var(--bui-lh-tight);
  font-weight: var(--bui-fw-heavy);
  letter-spacing: -.01em;
  color: var(--bui-ink-900);
}

.bui-h2 {
  font-size: var(--bui-text-h2);
  line-height: var(--bui-lh-snug);
  font-weight: var(--bui-fw-bold);
  color: var(--bui-ink-900);
}

.bui-h3 {
  font-size: var(--bui-text-h3);
  line-height: var(--bui-lh-snug);
  font-weight: var(--bui-fw-bold);
  color: var(--bui-ink-900);
}

/* ── Body ─────────────────────────────────────────────────────────────────── */
.bui-body {
  font-size: var(--bui-text-body);
  line-height: var(--bui-lh-normal);
  color: var(--bui-ink-700);
}

.bui-text-sm {
  font-size: var(--bui-text-sm);
  line-height: var(--bui-lh-normal);
}

.bui-text-xs {
  font-size: var(--bui-text-xs);
  line-height: var(--bui-lh-snug);
}

/* Eyebrow / section label. The ONLY place uppercase is permitted — uppercase
   costs ~10% reading speed, and this is a long-session application. */
.bui-overline {
  font-size: var(--bui-text-overline);
  line-height: var(--bui-lh-snug);
  font-weight: var(--bui-fw-heavy);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--bui-ink-500);
}

/* ── Colour modifiers ─────────────────────────────────────────────────────── */
.bui-muted     { color: var(--bui-ink-500); }
.bui-text-brand{ color: var(--bui-primary-700); }
.bui-text-ok   { color: var(--bui-success); }
.bui-text-warn { color: var(--bui-warning); }
.bui-text-bad  { color: var(--bui-danger); }
.bui-text-info { color: var(--bui-info); }

/* ── Figures ──────────────────────────────────────────────────────────────
   Any aligned numeral — timers, OTP codes, dates, dosages, table figures. */
.bui-nums {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum';
}

.bui-mono {
  font-family: var(--bui-font-mono);
  font-variant-numeric: tabular-nums;
}

/* ── Links ────────────────────────────────────────────────────────────────── */
.bui-link {
  color: var(--bui-primary-700);
  font-weight: var(--bui-fw-semibold);
  text-decoration: none;
  border-radius: var(--bui-radius-sm);
  transition: color var(--bui-transition);
}

.bui-link:hover,
.bui-link:focus-visible {
  color: var(--bui-primary-800);
  text-decoration: underline;
}
