/* Screen typography shared by management, master, driver portal and public forms.
 * Keep document/PDF typography and icon fonts independent of the UI scale. */
@layer asherloc-typography {
    @media screen and (max-width: 767.98px) {
        .cash-flow-page #cash-date-filters input[type=date] { font-size: 1rem !important; }
    }
    @media screen and (max-width: 359px) {
        .cash-flow-page #cash-date-filters input[type=date] { font-size: .857143rem !important; }
    }
    @media screen {
        /* Relative to the browser default, so larger user text remains usable.
         * --ui-text-scale is also used by the isolated accessibility preview. */
        html { font-size: calc(87.5% * var(--ui-text-scale, 1)) !important; }
        :root {
            --ui-text: 1rem;
            --ui-caption: .857143rem;
            --ui-small: .928571rem;
            --ui-field: 1rem;
            --ui-title-1: 2rem;
            --ui-title-2: 1.714286rem;
            --ui-title-3: 1.428571rem;
            --ui-title-4: 1.285714rem;
            --ui-title-5: 1.142857rem;
            --ui-title-6: 1rem;
            --ui-message: 1rem;
        }
        body {
            font-size: var(--ui-text) !important;
            line-height: 1.5 !important;
        }
        :is(h1,.h1,.fs-1,.text-4xl,.text-5xl,.text-6xl) { font-size: var(--ui-title-1) !important; }
        :is(h2,.h2,.fs-2,.text-3xl) { font-size: var(--ui-title-2) !important; }
        :is(h3,.h3,.fs-3,.text-2xl) { font-size: var(--ui-title-3) !important; }
        :is(h4,.h4,.fs-4,.text-xl) { font-size: var(--ui-title-4) !important; }
        :is(h5,.h5,.fs-5,.text-lg) { font-size: var(--ui-title-5) !important; }
        :is(h6,.h6,.fs-6) { font-size: var(--ui-title-6) !important; }
        :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.card-title,.modal-title) {
            line-height: 1.3 !important;
            font-weight: 700 !important;
            overflow-wrap: anywhere;
        }
        :is(p,.text-base,.table,.list-group-item,.alert,.dc-shell,.dc-settings) {
            font-size: var(--ui-text) !important;
            line-height: 1.5 !important;
        }
        :is(small,.small,.text-sm,.form-text,.help-text) {
            font-size: var(--ui-small) !important;
            line-height: 1.45 !important;
        }
        :is(.text-xs,.text-xxs,.x-small,.badge,.table thead th,.listing-pagination-status) {
            font-size: var(--ui-caption) !important;
            line-height: 1.4 !important;
        }
        :is(label,.form-label,.form-check-label,.input-group-text) {
            font-size: var(--ui-text) !important;
            font-weight: 600 !important;
            line-height: 1.45 !important;
            overflow-wrap: anywhere;
        }
        :is(input,select,textarea,.form-control,.form-select,.app-select-trigger):not([type=checkbox],[type=radio],[type=range],[type=color],[type=file]) {
            font-size: var(--ui-field) !important;
            line-height: 1.5 !important;
            min-width: 0;
            max-width: 100%;
        }
        textarea { overflow-wrap: anywhere; }
        :is(.modal-title,.app-select-header h2,#dc-dialog-title,.swal2-title) {
            font-size: var(--ui-title-4) !important;
        }
        :is(.dropdown-item,.app-select-options [role=option],.dc-menu-panel>button,.dc-menu-panel>a,.dc-file-button,.dc-message-action-list button,.dc-filter-list button,.swal2-html-container,.swal2-actions button) {
            font-size: var(--ui-text) !important;
            line-height: 1.5 !important;
            white-space: normal !important;
            overflow-wrap: anywhere;
        }
        .app-select-options [role=option] { font-size: var(--ui-field) !important; }
        /* The public presentation keeps its existing editorial hero hierarchy. */
        .public-marketing .hero-section h1 { font-size: clamp(2rem,4.5vw,4rem) !important; font-weight: 800 !important; }
        .public-marketing .hero-section p.fs-4 { font-size: clamp(1.142857rem,1.5vw,1.5rem) !important; }
        :is(.card-title,.modal-title,.management-header>div,.modal-body,.modal-footer,.card-body,.input-group,.dc-thread-contact) {
            min-width: 0;
        }
        :is(.modal-body,.alert,.form-text,.card-text,#dc-dialog-body,.dc-notice) {
            overflow-wrap: anywhere;
        }
        .dc-top h1,.dc-empty h2 { font-size: var(--ui-title-3) !important; }
        .dc-thread-header h2 { font-size: var(--ui-title-5) !important; }
        .dc-message-body { font-size: var(--ui-message) !important; line-height: 1.55 !important; }
        .dc-conversation-heading strong { font-size: var(--ui-text) !important; }
        :is(.dc-connection,.dc-inbox-time,.dc-message-name,.dc-message-time,.dc-day-divider,.dc-unread,.dc-thread-header p,#dc-typing) {
            font-size: var(--ui-caption) !important;
            line-height: 1.45 !important;
        }
        :is(.dc-conversation-main small,.dc-message-quote,.dc-reply,.dc-reference-chip,.dc-internal-banner,.dc-internal-banner button,.dc-notice,.dc-search-status,#dc-dialog .dc-details-context) {
            font-size: var(--ui-small) !important;
            line-height: 1.45 !important;
        }
        .dc-internal-banner,.dc-recording-controls,.dc-modal-actions { flex-wrap: wrap; }
        .dc-message,.dc-bubble,.dc-attachment-tray,.dc-upload-card { min-width: 0; max-width: 100%; }
        .dc-message { max-width: 78%; }
        .dc-upload-card { flex-wrap: wrap; }
        .dc-shell .dc-inbox-filters>button { font-size: var(--ui-text) !important; white-space: normal; }
        .swal2-actions { flex-wrap: wrap; }
        .swal2-actions button { min-height: 44px; }
        :is(.swal2-popup,.swal2-html-container) { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
        .dashboard-filter-form,.dashboard-filter-form .filter-inputs { min-width: 0; max-width: 100%; }
        .dashboard-filter-form .label { font-size: var(--ui-caption) !important; line-height: 1.4 !important; flex-shrink: 0; }
    }
    @media screen and (max-width: 767.98px) {
        :root {
            --ui-text: .928571rem;
            --ui-caption: .785714rem;
            --ui-small: .857143rem;
            --ui-field: 1.142857rem;
            --ui-title-1: 1.428571rem;
            --ui-title-2: 1.285714rem;
            --ui-title-3: 1.214286rem;
            --ui-title-4: 1.071429rem;
            --ui-title-5: 1rem;
            --ui-title-6: .928571rem;
            --ui-message: 1.071429rem;
        }
        :is(.management-header,.modal-footer,.card-header) { flex-wrap: wrap; }
        .management-header :is(h1,h2,p),.management-stats :is(h3,h6,.small) { white-space: normal !important; }
        .management-stats h3 { font-size: var(--ui-title-3) !important; }
        .management-stats h6,.management-stats .small { font-size: var(--ui-caption) !important; }
        .management-table-cards td[data-label]::before { font-size: var(--ui-caption) !important; }
        :is(.modal-body,.card-body) :is(p,.form-label) { max-width: 100%; }
        .dashboard-filter-form { flex-wrap: wrap; width: 100%; }
        .dashboard-filter-form .filter-inputs { flex: 1 1 100%; width: 100%; flex-wrap: wrap; gap: 8px; }
        .dashboard-filter-form .filter-group { flex: 1 1 180px; min-width: 0; max-width: 100%; }
        .dashboard-filter-form .filter-group input { flex: 1 1 0; width: 100%; }
        .dashboard-filter-form .filter-divider { display: none; }
        #performance-frota .performance-heading { flex-wrap: wrap; gap: 12px; }
        #performance-frota .performance-heading h5 {
            flex: 1 1 100%; min-width: 0;
            overflow-wrap: normal; word-break: normal;
        }
        #performance-frota .performance-heading > .dropdown { max-width: 100%; }
    }
    @media screen and (max-width: 650px) {
        .dc-message { max-width: 94%; }
        .dc-shell .dc-menu-panel>:is(button,a,label),#dc-dialog button { min-height: 44px; }
        .dc-internal-banner button { max-width: 100%; }
        .dc-thread-header .dc-thread-contact { flex: 1 1 0; }
        #dc-dialog .dc-metric-grid { grid-template-columns: minmax(0,1fr); }
    }
}
