:root {
    --app-font-family: Arial, Helvetica, sans-serif;
    --app-text-sm: 14px;
    --app-text-base: 16px;
    --app-text-lg: 18px;
    --app-text-xl: 22px;
    --app-text-2xl: 28px;
    --app-text-3xl: 32px;
}

/* Une seule police, sans remplacer la police des icônes. */
body.app-body,
body.login-page {
    font-family: var(--app-font-family) !important;
    font-size: var(--app-text-base) !important;
    line-height: 1.5 !important;
}

body.app-body :where(:not(i):not(svg):not(path)),
body.login-page :where(:not(i):not(svg):not(path)) {
    font-family: inherit !important;
}

body.app-body h1,
body.login-page h1 {
    font-size: var(--app-text-3xl) !important;
    line-height: 1.25 !important;
}

body.app-body h2,
body.login-page h2 {
    font-size: var(--app-text-2xl) !important;
    line-height: 1.3 !important;
}

body.app-body h3,
body.login-page h3 {
    font-size: var(--app-text-xl) !important;
    line-height: 1.3 !important;
}

body.app-body h4,
body.login-page h4,
body.app-body h5,
body.login-page h5,
body.app-body h6,
body.login-page h6 {
    font-size: var(--app-text-lg) !important;
    line-height: 1.35 !important;
}

body.app-body p,
body.login-page p,
body.app-body label,
body.login-page label,
body.app-body input,
body.login-page input,
body.app-body select,
body.login-page select,
body.app-body textarea,
body.login-page textarea,
body.app-body button,
body.login-page button,
body.app-body a,
body.login-page a {
    font-size: var(--app-text-base) !important;
}

body.app-body small,
body.login-page small {
    font-size: 13px !important;
}

body.app-body table,
body.app-body td {
    font-size: 15px !important;
}

body.app-body th {
    font-size: var(--app-text-sm) !important;
}

body.app-body .nav-link,
body.app-body .nav-link span,
body.app-body .logout-link,
body.app-body .user-menu {
    font-size: var(--app-text-base) !important;
}

body.app-body .app-brand {
    font-size: var(--app-text-lg) !important;
}

body.app-body .app-brand small {
    font-size: 13px !important;
}

body.app-body .legacy-entetes .entete {
    font-size: clamp(15px, 1.5vw, 22px) !important;
}

body.app-body .legacy-heading h2 {
    font-size: clamp(26px, 2.8vw, 40px) !important;
}

body.app-body .stat-card span {
    font-size: var(--app-text-xl) !important;
}

body.app-body .stat-card strong {
    font-size: 36px !important;
}

body.login-page .pulse-text h2 {
    font-size: 30px !important;
}

body.login-page .pulse-text p,
body.login-page .brand-kicker {
    font-size: var(--app-text-base) !important;
}

@media (max-width: 1023px) {
    body.app-body .nav-link,
    body.app-body .nav-link span {
        font-size: var(--app-text-base) !important;
    }
}

@media (max-width: 640px) {
    body.app-body h1,
    body.login-page h1 {
        font-size: var(--app-text-2xl) !important;
    }

    body.app-body h2,
    body.login-page h2 {
        font-size: 24px !important;
    }

    body.app-body h3,
    body.login-page h3 {
        font-size: 20px !important;
    }

    body.app-body table,
    body.app-body td,
    body.app-body th {
        font-size: var(--app-text-sm) !important;
    }

    body.login-page .pulse-text h2 {
        font-size: var(--app-text-2xl) !important;
    }
}

@media print {
    body.app-body,
    body.app-body p,
    body.app-body td,
    body.app-body th {
        font-size: 12pt !important;
    }

    body.app-body h1 { font-size: 20pt !important; }
    body.app-body h2 { font-size: 17pt !important; }
    body.app-body h3 { font-size: 15pt !important; }
}
