:root {
    --font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-xs: 13px;
    --font-sm: 14px;
    --font-base: 16px;
    --font-md: 17px;
    --font-lg: 18px;
    --font-xl: 20px;
    --font-2xl: 24px;
    --font-3xl: 30px;
    --font-4xl: 40px;
    --font-5xl: 52px;
    --font-6xl: 68px;
    --font-head: var(--font-family);
    --font-body: var(--font-family);
}

html {
    font-size: 100%;
    text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea,
dialog {
    font-family: var(--font-family);
}

body {
    font-size: var(--font-base);
    line-height: 1.6;
}

body.wf-public-home,
body.trader-auth-page,
body.trader-portal-page,
body.crm-portal-page,
body.admin-auth-page {
    font-family: var(--font-family);
}

button,
.btn {
    font-size: 15px;
    font-weight: 600;
}

input,
select,
textarea {
    min-width: 0;
    font-size: var(--font-base) !important;
    line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
b {
    font-family: var(--font-family);
}

/* Authentication */
.auth-page {
    font-size: var(--font-base);
}

.auth-heading h1 {
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.12;
    letter-spacing: -.035em;
}

.auth-heading p,
.auth-form-wrap label,
.auth-form-wrap .field-help,
.auth-form-wrap .auth-note {
    font-size: var(--font-base);
    line-height: 1.65;
}

.auth-form-wrap .eyebrow {
    font-size: var(--font-xs);
}

.auth-form-wrap .btn {
    min-height: 48px;
    font-size: 15px;
}

/* Trader dashboard */
.dashboard-page {
    font-size: var(--font-sm);
    line-height: 1.55;
}

.dashboard-page .dashboard-nav a,
.dashboard-page .dashboard-sidebar a,
.dashboard-page .logout-button {
    font-size: 15px;
    font-weight: 600;
}

.dashboard-page .dashboard-welcome h1,
.dashboard-page .module-heading h1,
.dashboard-page .module-header h1,
.dashboard-page .dashboard-command-copy h1 {
    font-size: clamp(32px, 3vw, 40px);
    line-height: 1.15;
    letter-spacing: -.03em;
}

.dashboard-page .dashboard-welcome p,
.dashboard-page .dashboard-welcome small {
    font-size: var(--font-sm);
    line-height: 1.6;
}

.dashboard-page .metric-card > div > span,
.dashboard-page .card-heading > strong,
.dashboard-page .card-heading > div > strong {
    font-size: 15px;
    line-height: 1.35;
}

.dashboard-page .metric-card > strong {
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.15;
    letter-spacing: -.025em;
}

.dashboard-page .metric-card small,
.dashboard-page .card-heading small,
.dashboard-page .card-heading > span,
.dashboard-page .progress-item span,
.dashboard-page .progress-item b,
.dashboard-page .history-row small {
    font-size: var(--font-sm);
    line-height: 1.5;
}

.dashboard-page .data-table th {
    font-size: var(--font-sm) !important;
    font-weight: 600;
    letter-spacing: .01em;
}

.dashboard-page .data-table td {
    font-size: var(--font-sm) !important;
    line-height: 1.5;
}

.dashboard-page .status {
    font-size: var(--font-xs);
}

.dashboard-page .portal-form label,
.dashboard-page .portal-form small {
    font-size: var(--font-sm);
    line-height: 1.55;
}

.dashboard-page .portal-form input,
.dashboard-page .portal-form select,
.dashboard-page .portal-form textarea {
    font-size: var(--font-base);
}

/* CRM keeps its data density, but never becomes difficult to read. */
.admin-page {
    font-size: var(--font-sm);
}

.admin-page .admin-navigation a,
.admin-page .admin-sidebar-footer a,
.admin-page .admin-sidebar-footer button {
    font-size: 15px;
    font-weight: 600;
}

.admin-page .admin-nav-label,
.admin-page .admin-workspace span,
.admin-page .admin-topbar-title span {
    font-size: var(--font-xs);
}

.admin-page .admin-topbar-title strong {
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.15;
    letter-spacing: -.03em;
}

.admin-page .admin-content h1 {
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.16;
}

.admin-page .admin-content h2,
.admin-page .card-heading > strong,
.admin-page .card-heading > div > strong {
    font-size: clamp(20px, 2vw, 24px);
    line-height: 1.25;
}

.admin-page .admin-content h3,
.admin-page .admin-content h4,
.admin-page .modal h3,
.admin-page dialog h3 {
    font-size: clamp(20px, 2vw, 26px);
    line-height: 1.25;
}

.admin-page .data-table th,
.admin-page .admin-table th {
    font-size: var(--font-xs);
    font-weight: 600;
    letter-spacing: .02em;
}

.admin-page .data-table td,
.admin-page .admin-table td {
    font-size: var(--font-sm) !important;
    line-height: 1.5;
}

.admin-page label,
.admin-page .crm-subtext,
.admin-page .crm-date,
.admin-page .card-heading small,
.admin-page .card-heading > span {
    font-size: var(--font-sm);
    line-height: 1.5;
}

.admin-page input,
.admin-page select,
.admin-page textarea {
    font-size: var(--font-base);
}

.admin-page .btn,
.admin-page button {
    font-size: var(--font-sm);
}

/* Certificates, legal pages, support and shared public forms. */
.certificate-page,
.certificate-verification-page,
.marketing-page {
    font-size: var(--font-base);
}

.certificate-page p,
.certificate-verification-page p,
.marketing-page p,
.marketing-page li {
    font-size: var(--font-base);
    line-height: 1.7;
}

.lft-chat {
    font-family: var(--font-family);
    font-size: var(--font-sm);
}

.lft-chat__launcher strong {
    font-size: var(--font-sm);
}

.lft-chat__launcher small,
.lft-chat__message small,
.lft-chat__assistant-row small {
    font-size: var(--font-xs);
}

.lft-chat__message p,
.lft-chat__welcome p,
.lft-chat__profile-form label,
.lft-chat__topic,
.lft-chat__action {
    font-size: var(--font-sm);
    line-height: 1.55;
}

.lft-chat input,
.lft-chat textarea {
    font-size: var(--font-base);
}

@media (max-width: 640px) {
    body {
        font-size: 15px;
    }

    .dashboard-page,
    .admin-page {
        font-size: var(--font-sm);
    }

    .admin-page .admin-topbar-title strong {
        font-size: 26px;
    }

    .dashboard-page .dashboard-welcome h1,
    .dashboard-page .module-heading h1,
    .dashboard-page .module-header h1,
    .dashboard-page .dashboard-command-copy h1 {
        font-size: clamp(26px, 8vw, 32px);
    }
}
