/*
 * Canonical Personal / Corporate Participant typography.
 * Personal Cabinet v1.1 is the source scale. Page styles consume these roles,
 * never redefine them. Legacy fallbacks preserve other application shells.
 * Mobile here means browser viewport, not the native mobile application.
 */
:is(body.personal-cabinet-shell, body.corporate-participant-shell) {
    --cabinet-font: Montserrat, sans-serif;
    --cabinet-weight-body: 400;
    --cabinet-weight-control: 500;
    --cabinet-weight-heading: 600;
    --cabinet-size-page: 32px;
    --cabinet-size-section: 25px;
    --cabinet-size-card: 20px;
    --cabinet-size-subsection: 17px;
    --cabinet-size-large-body: 17px;
    --cabinet-size-body: 15px;
    --cabinet-size-supporting: 14px;
    --cabinet-size-label: 13px;
    --cabinet-size-control: 14px;
    --cabinet-size-input: 15px;
    --cabinet-size-nav: 14px;
    --cabinet-size-caption: 13px;
    --cabinet-size-metadata: 12px;
    --type-display-title: var(--cabinet-size-page);
    --type-page-title: var(--cabinet-size-page);
    --type-section-title: var(--cabinet-size-section);
    --type-card-title: var(--cabinet-size-card);
    --type-subsection-title: var(--cabinet-size-subsection);
    --type-large-body: var(--cabinet-size-large-body);
    --type-body: var(--cabinet-size-body);
    --type-supporting: var(--cabinet-size-supporting);
    --type-label: var(--cabinet-size-label);
    --type-button: var(--cabinet-size-control);
    --type-nav: var(--cabinet-size-nav);
    --type-caption: var(--cabinet-size-caption);
    --type-metadata: var(--cabinet-size-metadata);
    font-family: var(--cabinet-font);
    font-size: var(--cabinet-size-body);
    font-weight: var(--cabinet-weight-body);
}

:is(body.personal-cabinet-shell, body.corporate-participant-shell) :is(h1, h2, h3, h4, h5, h6, strong, b) {
    font-weight: var(--cabinet-weight-heading);
}
:is(body.personal-cabinet-shell, body.corporate-participant-shell) h1 { font-size: var(--cabinet-size-page); }
:is(body.personal-cabinet-shell, body.corporate-participant-shell) h2 { font-size: var(--cabinet-size-section); }
:is(body.personal-cabinet-shell, body.corporate-participant-shell) h3 { font-size: var(--cabinet-size-card); }
:is(body.personal-cabinet-shell, body.corporate-participant-shell) :is(h4, h5, h6) { font-size: var(--cabinet-size-subsection); }
:is(body.personal-cabinet-shell, body.corporate-participant-shell) :is(button, .btn, [role="tab"], summary) {
    font-weight: var(--cabinet-weight-control);
}
:is(body.personal-cabinet-shell, body.corporate-participant-shell) :is(button, .btn, [role="tab"], summary) :is(strong, b) {
    font-weight: var(--cabinet-weight-control);
}
:is(body.personal-cabinet-shell, body.corporate-participant-shell) :is(input, textarea, select) {
    font-size: var(--cabinet-size-input);
}

@media (max-width: 900px) {
    :is(body.personal-cabinet-shell, body.corporate-participant-shell) {
        --cabinet-size-page: 22px;
        --cabinet-size-section: 20px;
        --cabinet-size-card: 18px;
        --cabinet-size-subsection: 16px;
        --cabinet-size-input: 16px;
    }
}
