/**
 * Typography lock — same type scale on every page.
 * Scale (from style.css :root):
 *   2xs 12px | xs 13px | sm 14px | base 15px | md 17px | lg 20px | xl 24px | 2xl 30px
 */

/* Utility classes */
.text-2xs { font-size: var(--fs-2xs) !important; }
.text-xs  { font-size: var(--fs-xs) !important; }
.text-sm  { font-size: var(--fs-sm) !important; }
.text-base { font-size: var(--fs-base) !important; }
.text-md  { font-size: var(--fs-md) !important; }
.text-lg  { font-size: var(--fs-lg) !important; }
.text-xl  { font-size: var(--fs-xl) !important; }
.text-2xl { font-size: var(--fs-2xl) !important; }

html, body,
button, input, select, textarea,
.btn, .form-control,
.sidebar, .topbar, .main-content,
.auth-card, .login-box, .survey-container {
    font-family: var(--font-sans);
}

/* Page titles (not inside report document) */
.page-toolbar h1,
.page-toolbar h2,
.page-header h1,
.page-header h2 {
    font-size: var(--fs-xl) !important;
    font-weight: 700 !important;
    line-height: var(--lh-tight) !important;
    letter-spacing: -0.015em !important;
}

.main-content > h1,
.main-content > h2,
.main-content .page-toolbar h1,
.main-content .page-toolbar h2 {
    font-size: var(--fs-xl) !important;
    font-weight: 700 !important;
    line-height: var(--lh-tight) !important;
    letter-spacing: -0.015em !important;
}

.main-content h3,
.main-content .card-title,
.main-content .panel-title,
.main-content .panel-header,
.main-content .modal-title,
.main-content .part-title,
.main-content .section-title {
    font-size: var(--fs-lg) !important;
    font-weight: 700 !important;
    line-height: var(--lh-tight) !important;
}

.main-content h4:not(.report-block h4),
.main-content h5,
.main-content h6 {
    font-size: var(--fs-md) !important;
    font-weight: 700 !important;
}

.main-content {
    font-size: var(--fs-base) !important;
}

.main-content > p,
.main-content .card p,
.main-content .panel p,
.main-content li,
.main-content .table-modern td,
.main-content label,
.main-content strong,
.main-content a:not(.btn):not(.sidebar-link) {
    font-size: var(--fs-base) !important;
}

.main-content .table-modern th {
    font-size: var(--fs-sm) !important;
}

.main-content small,
.main-content .text-muted,
.main-content .hint,
.main-content .note:not(.report-kpi-cell .note),
.main-content .sub,
.main-content .meta,
.main-content .part-hint,
.main-content [class*="-meta"],
.main-content .dash-metric .label,
.main-content .dash-metric .sub,
.page-toolbar p,
.page-header p {
    font-size: var(--fs-sm) !important;
}

/* Dashboard KPIs only — skip report document cells */
.main-content .dash-metric .value,
.main-content .dash-kpi .val,
.main-content .dash-kpi .value,
.main-content .kpi-card .val,
.main-content .kpi-card .value {
    font-size: var(--fs-2xl) !important;
    font-weight: 700 !important;
}

.main-content .form-control,
.main-content select,
.main-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.main-content textarea,
.main-content .btn,
.main-content button:not(.icon-btn) {
    font-size: var(--fs-base) !important;
}

.main-content .btn-primary,
.main-content a.btn-primary,
.main-content button.btn-primary {
    color: #fff !important;
}

.main-content .badge,
.main-content span.badge,
.main-content [class*="badge-"] {
    font-size: var(--fs-xs) !important;
}

.main-content .q-title,
.survey-container .q-title {
    font-size: var(--fs-md) !important;
    font-weight: 700 !important;
}

.sidebar,
.sidebar a,
.sidebar-link,
#adminSidebar a,
#alumniSidebar a {
    font-family: var(--font-sans);
    font-size: var(--fs-base) !important;
}

.sidebar-brand-title,
.sidebar .brand-name {
    font-weight: 800 !important;
}

.sidebar-brand-sub,
.sidebar .brand-sub {
    font-weight: 800 !important;
}

.topbar h1 {
    font-size: var(--fs-lg) !important;
    font-weight: 700 !important;
}
.topbar-welcome {
    font-size: var(--fs-sm) !important;
}

.auth-card,
.login-box,
.survey-container {
    font-family: var(--font-sans);
    font-size: var(--fs-base);
}
.auth-card h1,
.auth-card h2,
.login-box h1,
.login-box h2,
.survey-container h1,
.survey-container h2 {
    font-size: var(--fs-xl) !important;
    font-weight: 700 !important;
}
.auth-card p,
.login-box p,
.survey-container p,
.auth-card label,
.login-box label,
.survey-container label,
.auth-card .btn,
.login-box .btn,
.survey-container .btn,
.auth-card .form-control,
.login-box .form-control,
.survey-container .form-control,
.auth-card input,
.login-box input,
.survey-container input,
.auth-card select,
.login-box select,
.survey-container select,
.auth-card textarea,
.login-box textarea,
.survey-container textarea {
    font-size: var(--fs-base) !important;
}

.site-footer,
.site-footer-credit {
    font-family: var(--font-sans);
    font-size: var(--fs-xs) !important;
}

