/* ========================================
   TABLE TYPOGRAPHY (Enterprise Standard)
   Goal:
   - One consistent font-size + font-weight per table role (header vs body)
   - No per-column typography drift across pages
   Notes:
   - Loaded late (after component-scoped CSS) and uses !important intentionally
     to override page-local tweaks for enterprise consistency.
   ======================================== */

/* Admin "div-table" system */
.admin-table-header-cell {
    font-family: var(--font-family-base) !important;
    font-size: var(--table-header-font-size) !important;
    font-weight: var(--table-header-font-weight) !important;
    line-height: var(--table-line-height) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

.admin-table-cell,
.admin-table-cell-primary,
.admin-table-cell-secondary {
    font-family: var(--font-family-base) !important;
    font-size: var(--table-body-font-size) !important;
    font-weight: var(--table-body-font-weight) !important;
    line-height: var(--table-line-height) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

/* Keep role colors, but typography is unified */
.admin-table-cell-primary {
    color: var(--color-text-primary) !important;
}

.admin-table-cell-secondary {
    color: var(--color-text-muted) !important;
}

/* Common inline elements inside admin tables should not change typography */
.admin-table-container :is(
    code,
    .admin-code-badge,
    .admin-badge,
    .promo-code,
    .usage-count,
    .duration-text,
    .type-badge
) {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}

/* Bootstrap and plain HTML tables */
table :is(th, td),
.table :is(th, td) {
    font-family: var(--font-family-base) !important;
    line-height: var(--table-line-height) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

table thead :is(th, td),
.table thead :is(th, td),
.report-table-header-cell,
.validation-logs-table-header-cell {
    font-size: var(--table-header-font-size) !important;
    font-weight: var(--table-header-font-weight) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

table tbody :is(th, td),
.table tbody :is(th, td),
.report-table-body-cell,
.validation-logs-table-body-cell {
    font-size: var(--table-body-font-size) !important;
    font-weight: var(--table-body-font-weight) !important;
}

/* Inline badges within HTML tables should inherit body typography */
table :is(code, .ticket-id-badge, .user-id-badge, .status-badge, .message-text) {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}

/* Custom admin grid-tables (e.g., Fares) */
.admin-page :is(.fare-th) {
    font-family: var(--font-family-base) !important;
    font-size: var(--table-header-font-size) !important;
    font-weight: var(--table-header-font-weight) !important;
    line-height: var(--table-line-height) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

.admin-page :is(.fare-cell) {
    font-family: var(--font-family-base) !important;
    font-size: var(--table-body-font-size) !important;
    font-weight: var(--table-body-font-weight) !important;
    line-height: var(--table-line-height) !important;
    letter-spacing: var(--table-letter-spacing) !important;
}

.admin-page :is(.fare-type-chip, .fare-zone-num, .fare-price) {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}
