/*
 * Advisionr typography floor
 * Visible interface copy must never be rendered below 15px.
 * Larger component-specific typography remains untouched.
 */
:root {
    --adv-font-size-min: 15px;
    --adv-font-size-body: 16px;
    --adv-line-height-readable: 1.5;
}

body.app-body,
body.marketing-body {
    font-size: var(--adv-font-size-body);
}

/* Semantic microcopy and common compact UI primitives. */
body.app-body :where(
    small,
    caption,
    label,
    .small,
    .text-small,
    .micro,
    .microcopy,
    .eyebrow,
    .kicker,
    .helper,
    .help-text,
    .hint,
    .muted,
    .meta,
    .badge,
    .chip,
    .pill,
    .status,
    .table-meta,
    .card-meta,
    .form-text,
    .field-help,
    .empty-state-copy
),
body.marketing-body :where(
    small,
    caption,
    label,
    .small,
    .text-small,
    .micro,
    .microcopy,
    .eyebrow,
    .kicker,
    .helper,
    .help-text,
    .hint,
    .muted,
    .meta,
    .badge,
    .chip,
    .pill,
    .status,
    .form-text,
    .field-help
) {
    font-size: var(--adv-font-size-min) !important;
    line-height: var(--adv-line-height-readable);
}

body.app-body :where(button, input, select, textarea),
body.marketing-body :where(button, input, select, textarea) {
    font-size: max(var(--adv-font-size-min), 1em);
}

body.app-body :where(td, th),
body.marketing-body :where(td, th) {
    font-size: max(var(--adv-font-size-min), 1em);
}
