/* ==========================================================================
   ELEMENTS · TABLES — a bare <table> already reads as a printed ledger:
   hairline rules, small-caps grotesque headers, mono tabular figures in the
   cells. Components (the ledger, the pricing table) build on this foundation.
   ========================================================================== */

table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
}

caption {
  font-family: var(--font-furniture);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-secondary);
  text-align: left;
  padding-bottom: var(--space-2xs);
}

thead th {
  font-family: var(--font-furniture);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-secondary);
  text-align: left;
  vertical-align: bottom;
  border-bottom: 1.5px solid var(--rule-strong);
  padding: var(--space-2xs) var(--space-sm);
}

tbody th { font-weight: var(--weight-semibold); text-align: left; }

td, tbody th {
  padding: var(--space-2xs) var(--space-sm);
  border-bottom: 1px solid var(--rule);
  vertical-align: baseline;
}

/* Numeric columns are mono and right-aligned by convention */
td[data-numeric],
th[data-numeric] {
  font-family: var(--font-data);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: var(--feat-tabular);
  text-align: right;
}

tbody tr:last-child td,
tbody tr:last-child th { border-bottom: 0; }

tfoot td, tfoot th {
  border-top: 1.5px solid var(--rule-strong);
  font-weight: var(--weight-semibold);
}
