/* ==========================================================================
   Typography
   ========================================================================== */

/* Font Family */
:root {
  --font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "SF Mono", "Fira Code", monospace;
}

body {
  font-family: var(--font-family);
  font-weight: 400;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--color-text);
}

h1 { font-size: var(--font-3xl); }
h2 { font-size: var(--font-2xl); }
h3 { font-size: var(--font-xl); }
h4 { font-size: var(--font-lg); }
h5 { font-size: var(--font-md); }
h6 { font-size: var(--font-sm); }

/* Page Title */
.page-title {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

/* Card Title */
.card-title {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* Important Values */
.value-large {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
}

.value-xl {
  font-size: 28px;
  font-weight: 600;
  line-height: 1.1;
}

/* Secondary Labels */
.label-secondary {
  font-size: var(--font-sm);
  font-weight: 400;
  color: var(--color-text-muted);
  letter-spacing: 0;
}

.label-xs {
  font-size: var(--font-xs);
  font-weight: 500;
  color: var(--color-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Body Text */
.text-body {
  font-size: var(--font-md);
  line-height: 1.6;
  color: var(--color-text);
}

.text-secondary {
  font-size: var(--font-md);
  color: var(--color-text-secondary);
}

.text-muted {
  font-size: var(--font-sm);
  color: var(--color-text-muted);
}

/* Mono for numbers/data */
.text-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* Link */
.link {
  color: var(--color-orange);
  text-decoration: none;
}

.link:hover {
  text-decoration: underline;
}

/* Button Text */
.btn-text {
  font-size: var(--font-md);
  font-weight: 600;
  letter-spacing: 0;
}

/* Input Text */
.input-text {
  font-size: var(--font-base);
}