/* FalaTudo 3.0.0 — camada transversal para fonte ampliada e navegação acessível. */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
html[data-text-size="large"] { font-size: 125%; }
html[data-text-size="xlarge"] { font-size: 150%; }
body { overflow-wrap: anywhere; }
:where(p, li, dd, dt, label, legend, small, strong, span, a, button, input, textarea, select) {
    overflow-wrap: anywhere;
}
:where(button, a, select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="color"]):not([type="file"]), [role="button"], [tabindex]:not([tabindex="-1"])) {
    min-height: 44px;
}
:where(button, a, input, select, textarea):focus-visible {
    outline: 3px solid var(--focus-ring, #087b62);
    outline-offset: 3px;
}
:where(button, input, select, textarea) { max-width: 100%; }
:where(h1, h2, h3, h4, p) { text-wrap: pretty; }
dialog { max-height: calc(100dvh - 24px); overflow: auto; overscroll-behavior: contain; }

body:not(.messenger-app) :where(.button, button, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="color"]):not([type="file"]), select, textarea) {
    height: auto;
    min-height: 48px;
    padding-block: 11px;
    white-space: normal;
    line-height: 1.35;
}
body:not(.messenger-app) :where(.auth-dialog, .install-card, .welcome-card) {
    max-height: calc(100dvh - 24px);
    overflow: auto;
    overscroll-behavior: contain;
}
body:not(.messenger-app) :where(.landing-footer, nav, header, .dialog-actions, .landing-install-notice) {
    flex-wrap: wrap;
}

body.messenger-app[data-text-size="normal"] { --font-scale: 1; --app-font-size: 16px; }
body.messenger-app[data-text-size="large"] { --font-scale: 1.25; --app-font-size: 20px; }
body.messenger-app[data-text-size="xlarge"] { --font-scale: 1.5; --app-font-size: 24px; }

body.messenger-app {
    font-size: var(--app-font-size, 16px);
}
body.messenger-app :where(
    .profile-copy strong,
    .profile-copy small,
    .chat-person-copy strong,
    .chat-person-copy small,
    .conversation-title-row strong,
    .conversation-preview-row span,
    .reply-preview span,
    .file-card strong,
    .composer-mode p,
    .group-profile-cover h2,
    .profile-business-list strong
) ,
body.messenger-app :where(
    .user-result strong,
    .user-result small,
    .share-conversation strong,
    .share-conversation small,
    .public-profile-link span,
    .media-dialog-head > strong,
    .selected-file-name,
    .group-admin-hero .group-identity strong
) {
    text-overflow: clip;
    white-space: normal;
    overflow: visible;
    overflow-wrap: anywhere;
}
body.messenger-app :where(
    .search-box,
    .filter-tab,
    .round-button,
    .dialog-tabs button,
    .dialog-search,
    .settings-nav > button,
    .action-button,
    .secondary-action,
    .danger-button,
    .outlined-share-button,
    .text-icon-button,
    .attachment-menu button,
    .conversation-item,
    .chat-head,
    .sidebar-head,
    .recording-bar,
    .composer,
    .composer-mode,
    .group-media-button,
    .group-member-actions button,
    .notification-health-card
) {
    height: auto;
    min-height: 44px;
}
body.messenger-app :where(.dialog-empty, .segmented span, .status-type-tabs span, .quick-reactions button) {
    height: auto;
    min-height: 44px;
    padding-block: 8px;
}
body.messenger-app .dialog-empty { min-height: 180px; padding-inline: 18px; }
body.messenger-app .dialog-x {
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
    padding: 0;
    overflow: hidden;
    font-size: 26px !important;
    line-height: 1;
}
body.messenger-app :where(.user-result, .share-conversation, .public-profile-link, .group-admin-hero .group-identity) {
    min-width: 0;
}
body.messenger-app :where(.user-result, .share-conversation, .public-profile-link) {
    height: auto;
    min-height: 48px;
}
body.messenger-app :where(.action-button, .secondary-action, .danger-button, .outlined-share-button, .text-icon-button) {
    padding-block: 11px;
    white-space: normal;
    line-height: 1.3;
}
body.messenger-app :where(.dialog-head, .chat-head, .sidebar-head, .recording-bar, .notification-health-card) {
    flex-wrap: wrap;
}
body.messenger-app :where(.app-dialog, .settings-dialog, .group-settings-dialog) {
    overflow: auto;
    max-height: calc(100dvh - 24px);
}
body.messenger-app .settings-content,
body.messenger-app .group-settings-body,
body.messenger-app .user-results { overscroll-behavior: contain; }
body.messenger-app .mobile-nav .primary-nav-item {
    height: auto;
    min-height: 54px;
    padding: 5px 2px;
    line-height: 1.15;
    white-space: normal;
}
body.messenger-app .mobile-nav .primary-nav-item span { max-width: 100%; text-align: center; }

body.messenger-app[data-text-size="large"] :where(.conversation-item, .group-member, .notification-health-card),
body.messenger-app[data-text-size="xlarge"] :where(.conversation-item, .group-member, .notification-health-card) {
    align-items: start;
}
body.messenger-app[data-text-size="large"] .conversation-item,
body.messenger-app[data-text-size="xlarge"] .conversation-item {
    grid-template-columns: auto minmax(0, 1fr);
}
body.messenger-app[data-text-size="large"] .conversation-meta,
body.messenger-app[data-text-size="xlarge"] .conversation-meta {
    grid-column: 2;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
}
body.messenger-app[data-text-size="large"] :where(.settings-grid.two, .profile-field-grid, .privacy-control-grid),
body.messenger-app[data-text-size="xlarge"] :where(.settings-grid.two, .profile-field-grid, .privacy-control-grid) {
    grid-template-columns: 1fr;
}
body.messenger-app[data-text-size="xlarge"] .theme-gallery { grid-template-columns: 1fr; }
body.messenger-app[data-text-size="xlarge"] .text-size-options { grid-template-columns: 1fr; }
body.messenger-app[data-text-size="xlarge"] .desktop-primary-nav .primary-nav-item { grid-template-columns: 1fr; justify-items: start; }

body.messenger-app[data-high-contrast="true"] {
    --border: color-mix(in srgb, var(--text-primary) 48%, var(--surface-card));
    --text-secondary: color-mix(in srgb, var(--text-primary) 78%, var(--surface-card));
    --focus-ring: #ffbf00;
}
body:not(.messenger-app)[data-high-contrast="true"] {
    --border: color-mix(in srgb, var(--text-primary) 52%, var(--surface-card));
    --text-secondary: color-mix(in srgb, var(--text-primary) 82%, var(--surface-card));
    --focus-ring: #ffbf00;
}
body:not(.messenger-app)[data-high-contrast="true"] :where(input, textarea, select, button, a, article, section) {
    border-color: var(--border);
}
body.messenger-app[data-high-contrast="true"] :where(.bubble, input, textarea, select, button, a, .appearance-card, .conversation-item.active) {
    border-color: var(--border);
}
body.messenger-app[data-high-contrast="true"] :where(a, .accent-text, .sender-label) { text-decoration-thickness: 2px; }

body.messenger-app[data-reduce-motion="true"] *,
body.messenger-app[data-reduce-motion="true"] *::before,
body.messenger-app[data-reduce-motion="true"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
}
body:not(.messenger-app)[data-reduce-motion="true"] *,
body:not(.messenger-app)[data-reduce-motion="true"] *::before,
body:not(.messenger-app)[data-reduce-motion="true"] *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

@media (max-width: 820px) {
    body.messenger-app .settings-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: max-content;
        align-content: start;
        max-height: min(34dvh, 310px);
        overflow: auto;
        overscroll-behavior: contain;
        transition: max-height .2s ease, padding .2s ease;
    }
    body.messenger-app .settings-nav header { grid-column: 1 / -1; }
    body.messenger-app .settings-nav > button {
        height: auto;
        min-height: 44px;
        padding: 8px 5px;
        overflow: visible;
        text-overflow: clip;
        white-space: normal;
        line-height: 1.25;
    }
    body.messenger-app .settings-nav.is-collapsed {
        grid-template-columns: minmax(0, 1fr);
        max-height: none;
        overflow: visible;
    }
    body.messenger-app .settings-nav.is-collapsed header {
        grid-column: 1;
        min-height: 44px;
        padding-bottom: 2px;
    }
    body.messenger-app .settings-nav.is-collapsed > button:not(.active) { display: none; }
    body.messenger-app .settings-nav.is-collapsed > button.active {
        display: block;
        grid-column: 1;
        min-height: 44px;
        text-align: left;
    }
    body.messenger-app .conversation-item {
        grid-template-columns: auto minmax(0, 1fr);
        overflow: hidden;
    }
    body.messenger-app .conversation-meta {
        grid-column: 2;
        min-width: 0;
        max-width: 100%;
        align-items: flex-start;
        flex-direction: row;
        flex-wrap: wrap;
    }
    body.messenger-app .mobile-nav {
        min-height: calc(66px + env(safe-area-inset-bottom));
        height: auto;
    }
    body.messenger-app .app-shell { height: calc(var(--app-height, 100dvh) - var(--mobile-nav-h)); }
    body.messenger-app[data-text-size="large"] { --mobile-nav-h: 82px; }
    body.messenger-app[data-text-size="xlarge"] { --mobile-nav-h: 96px; }
    body.messenger-app .message-row .bubble { max-width: min(88%, 620px); }
    body.messenger-app .dialog-head { align-items: flex-start; }
}

@media (max-width: 430px), (min-resolution: 2dppx) {
    body:not(.messenger-app) :where(.button, button, select, textarea, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="color"]):not([type="file"]), a[role="button"]) {
        min-height: 48px;
    }
}

@media (max-width: 620px) {
    body:not(.messenger-app) .landing-footer {
        position: static;
        justify-content: center;
        transform: none;
        padding: 18px;
    }
}
