/* Tipografia minimalista: somente regular e um nivel de destaque. */
html {
    font-size: 16px;
}

body {
    font-size: 16px !important;
    line-height: 1.5;
}

body *:not(i) {
    font-weight: 400 !important;
}

body :where(
    h1, h2, h3, h4, h5, h6,
    strong, b,
    button, .button, .btn,
    th, label,
    .active, [aria-current="page"]
) {
    font-weight: 600 !important;
}

body :where(p, label, td) {
    font-size: 14px !important;
}

body :where(
    .client-breadcrumb, .task-detail-breadcrumb, .recurring-form-breadcrumb,
    .audit-breadcrumb, .generation-breadcrumb
) :where(a, span, strong) {
    font-size: 13px !important;
}

body :where(.nav-link, .brand-text) {
    font-size: 16px !important;
}

body :where(.badge, .client-status) {
    font-size: 13px !important;
}

body :where(input, select, textarea, button, .button, .btn) {
    font-size: 15px !important;
}

body :where(small, time) {
    font-size: 13px !important;
    line-height: 1.45;
}

body th {
    font-size: 13px !important;
}

body h1 {
    font-size: 28px !important;
}

body h2 {
    font-size: 23px !important;
}

/* Indicadores de obrigatoriedade sempre acompanham o texto do rótulo. */
body label > span:first-child,
body label > span:first-child > b {
    display: inline !important;
}

body label > span:first-child > b,
body label:has(> b) > b {
    margin-left: 2px;
    color: #dc2626 !important;
    white-space: nowrap;
}

body label:has(> b) {
    display: block !important;
}

body label:has(> b) > :is(input, select, textarea) {
    display: block;
    margin-top: 6px;
}

body :where(h3, h4, h5, h6) {
    font-size: 18px !important;
}
