/* =========================================================================
   Shared 2026 primitives
   These token-driven building blocks sit above app.css foundations and below component-scoped
   styles. Keeping them separate makes their shared responsibility explicit without changing
   cascade order.
   ========================================================================= */

/* Type utilities are shared primitives: aliases preserve old call sites while the type-role
   classes are the preferred, complete bundles for new work. */
.font-xs, .font-s { font-size: var(--type-small-size); }
.font-m { font-size: var(--type-body-size); }
.font-l { font-size: var(--type-h2-size); }
.font-xl { font-size: var(--type-h1-size); }
.font-xxl { font-size: var(--type-title-size); }

.type-title    { font-family: var(--font-display);    font-size: var(--type-title-size);    font-weight: var(--weight-heavy);    line-height: var(--leading-display);    letter-spacing: var(--tracking-tight); }
.type-subtitle { font-family: var(--font-body); font-size: var(--type-subtitle-size); font-weight: var(--weight-regular); line-height: var(--leading-compact); letter-spacing: var(--tracking-normal); font-style: italic; }
.type-h1       { font-family: var(--font-display);       font-size: var(--type-h1-size);       font-weight: var(--weight-bold);       line-height: var(--leading-heading);       letter-spacing: var(--tracking-tight); }
.type-h2       { font-family: var(--font-display);       font-size: var(--type-h2-size);       font-weight: var(--weight-bold);       line-height: var(--leading-heading);       letter-spacing: var(--tracking-normal); }
.type-body     { font-family: var(--font-body);     font-size: var(--type-body-size);     font-weight: var(--weight-regular);     line-height: var(--leading-body);     letter-spacing: var(--tracking-normal); }
.type-data     { font-family: var(--font-body);     font-size: var(--type-data-size);     font-weight: var(--weight-regular);     line-height: var(--leading-compact);     letter-spacing: var(--tracking-normal); }
.type-small    { font-family: var(--font-label);    font-size: var(--type-small-size);    font-weight: var(--weight-medium);    line-height: var(--leading-compact);    letter-spacing: var(--tracking-fine); }

/* Bootstrap diet shim: the app ships bootstrap-grid instead of the full framework. */
.table { width: 100%; border-collapse: collapse; vertical-align: top; }
.table > :not(caption) > * > * { padding: var(--space-1) var(--space-2); }
.text-center { text-align: center; }
.fw-bold { font-weight: var(--weight-bold); }
