/* Shared text scale for admin screens, public forms and acknowledgements. */
:root {
    --font-family: Arial, Helvetica, sans-serif;
    --font-title: 28px;
    --font-section: 20px;
    --font-subheading: 16px;
    --font-body: 14px;
    --font-small: 12px;
    --font-icon: 28px;
}
body {
    font-family: var(--font-family);
    font-size: var(--font-body);
    line-height: 1.5;
}
/* Explicit semantic sizes take precedence over older page-specific rules. */
h1 { font-size: var(--font-title) !important; }
h2 { font-size: var(--font-section) !important; }
h3, h4, h5, h6 { font-size: var(--font-subheading) !important; }
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-family);
    font-weight: 700;
    line-height: 1.3;
}
input, select, textarea, button {
    font-family: var(--font-family) !important;
    font-size: var(--font-body) !important;
    line-height: 1.5;
}
th, td, label, .btn, .primary-button, .cancel-button,
.detail, .value, .detail-label, .label, .tab, .subtitle {
    font-size: var(--font-body) !important;
}
th, label, .detail-label, .label { font-weight: 700; }
small, .help-text, .hint, .filter-count, .remark-save-message {
    font-size: var(--font-small) !important;
    line-height: 1.4;
}
.status, .expense-status, .badge, .field-chip {
    font-size: var(--font-small) !important;
    line-height: 1.4;
}
.section-title, .enrollment-title, .change-title {
    font-size: var(--font-subheading) !important;
    font-weight: 700;
    line-height: 1.3;
}
/* Non-heading markup used by the public acknowledgement. */
.page-title, .academy-name, .title { font-size: var(--font-title) !important; line-height:1.3; }
/* Keep icon controls large enough to recognize and use. */
button.close, .toggle-btn { font-size: 20px !important; }
button.delete-icon { font-size: 17px !important; }
