/* Safari/iPhone: evita composição GPU cara sem mudar a lógica das telas. */
html.trife-ios {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html.trife-ios,
html.trife-ios body {
    min-height: 100%;
    background-attachment: scroll !important;
    overscroll-behavior-y: none;
}

html.trife-ios body {
    min-height: 100dvh;
    -webkit-overflow-scrolling: touch;
}

html.trife-ios .trife-topbar,
html.trife-ios .trife-app-bottom,
html.trife-ios .trife-app-fab-menu,
html.trife-ios .trife-sidebar-backdrop,
html.trife-ios .category-filter-overlay,
html.trife-ios .client-panel,
html.trife-ios .payment-confirm,
html.trife-ios .trife-store-badge {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

html.trife-ios .calendar,
html.trife-ios .overlay,
html.trife-ios .detail {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

html.trife-ios .trife-topbar,
html.trife-ios .trife-app-bottom,
html.trife-ios .trife-app-fab-menu {
    background-color: var(--bg-header, #0b1626) !important;
}

html.trife-ios .trife-app-bottom {
    box-shadow: 0 -5px 18px rgba(0, 0, 0, .28) !important;
}

html.trife-ios .trife-app-fab-menu,
html.trife-ios .modal,
html.trife-ios .payment-sheet {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .34) !important;
}

html.trife-ios #theme-canvas,
html.trife-ios #fx-canvas,
html.trife-ios .light-spot,
html.trife-ios .spotlight,
html.trife-ios .background-animation {
    display: none !important;
}

/* Convidado no iPhone: mantém os dados, reduz somente custo de pintura e GPU. */
html.trife-ios.trife-guest-mode body {
    background-image: none !important;
}

html.trife-ios.trife-guest-mode .hist-card,
html.trife-ios.trife-guest-mode .client-card,
html.trife-ios.trife-guest-mode .vehicle-card,
html.trife-ios.trife-guest-mode .queue-card,
html.trife-ios.trife-guest-mode .fila-card,
html.trife-ios.trife-guest-mode .recent-card,
html.trife-ios.trife-guest-mode .item-card,
html.trife-ios.trife-guest-mode .card {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    animation: none !important;
    transition-duration: .06s !important;
}

html.trife-ios.trife-guest-mode .hist-card,
html.trife-ios.trife-guest-mode .client-card,
html.trife-ios.trife-guest-mode .queue-card,
html.trife-ios.trife-guest-mode .fila-card,
html.trife-ios.trife-guest-mode .recent-card {
    content-visibility: auto;
    contain: layout paint style;
    contain-intrinsic-size: auto 92px;
}

html.trife-ios.trife-guest-mode .modal,
html.trife-ios.trife-guest-mode .overlay,
html.trife-ios.trife-guest-mode .sheet {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

@media (max-width: 600px) {
    html.trife-ios .trife-app-nav-item,
    html.trife-ios .trife-app-fab,
    html.trife-ios .toolbar-app-btn {
        transition-duration: .08s !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.trife-ios *,
    html.trife-ios *::before,
    html.trife-ios *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}


/* iOS: cards fora da viewport deixam de consumir pintura/composição.
   Não altera dados, listeners, permissões ou cálculos. */
html.trife-ios .android-card,
html.trife-ios .finished-vehicle-card,
html.trife-ios .hist-card,
html.trife-ios .client-card,
html.trife-ios .queue-card,
html.trife-ios .fila-card,
html.trife-ios .recent-card {
    content-visibility: auto;
    contain: layout paint style;
}

html.trife-ios .android-card,
html.trife-ios .finished-vehicle-card { contain-intrinsic-size: auto 150px; }
html.trife-ios .hist-card,
html.trife-ios .client-card,
html.trife-ios .queue-card,
html.trife-ios .fila-card,
html.trife-ios .recent-card { contain-intrinsic-size: auto 96px; }

html.trife-ios .payment-decision-overlay,
html.trife-ios .confirmation-overlay,
html.trife-ios .trife-confirm-overlay {
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
}
