
        body { font-family: 'Outfit', sans-serif; user-select: none; -webkit-tap-highlight-color: transparent; transition: background-color 0.3s ease, color 0.3s ease; }
        ::-webkit-scrollbar { width: 4px; }
        .light ::-webkit-scrollbar-track { background: #FBFBFC; }
        .dark ::-webkit-scrollbar-track { background: #0B0B0B; }
        .light ::-webkit-scrollbar-thumb { background: #A68A64; border-radius: 2px; }
        .dark ::-webkit-scrollbar-thumb { background: #C5A880; border-radius: 2px; }

        /* DEV-20/373 — no extrato, não exponha o thumb nativo arrastável na mesma
           borda reservada ao gesto da gaveta. A rolagem por toque continua normal. */
        #transactions-container { scrollbar-width: none; -ms-overflow-style: none; }
        #transactions-container::-webkit-scrollbar { display: none; width: 0; height: 0; }

        /*
         * Hierarquia visual do app:
         * base < page overlay < context detail < bottom sheet < global modal < critical confirmation.
         * Use estas classes para camadas compartilhadas em vez de z-index avulso.
         */
        .layer-base { z-index: 20; }
        .layer-page-overlay { z-index: 50; }
        .layer-context-detail { z-index: 55; }
        .layer-bottom-sheet { z-index: 60; }
        .layer-global-modal { z-index: 70; }
        .layer-modal-sheet { z-index: 75; }
        .layer-critical-confirmation { z-index: 80; }

        .light .insight-card-bg { background: rgba(255,255,255,0.92); border-color: rgba(166,138,100,0.25); }
        .dark .insight-card-bg { background: rgba(28,28,28,0.7); border-color: rgba(197,168,128,0.18); }
        /* Safe areas — status bar (top) e navigation bar (bottom) */
        :root {
            /* MOB15_SAFEAREA_400_393_BASELINE — preserva a correção do teto confirmada fisicamente. */
            --c4-system-safe-top: max(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)), var(--cash4ds-statusbar-fallback, 0px));
            --c4-system-safe-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));
            --c4-system-safe-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));
            --c4-system-safe-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));
            --sat: var(--c4-system-safe-top);
            --sab: var(--c4-system-safe-bottom);
            --sal: var(--c4-system-safe-left);
            --sar: var(--c4-system-safe-right);
        }
        /* Conteúdo rolável: espaço embaixo da navbar + navigation bar */
        #home-scroll, #tab-content-perfil, #tab-content-insights {
            padding-bottom: calc(8rem + var(--sab));
        }
        /* Navbar: empurra o conteúdo acima da navigation bar */
        #global-navbar {
            padding-bottom: calc(0.75rem + var(--sab));
        }
        #global-navbar::after {
            content: '';
            position: absolute;
            bottom: 0; left: 0; right: 0;
            height: var(--sab);
            background: inherit;
        }
        /* Telas de onboarding (py-12 = 3rem): adiciona status bar no topo */
        #view-login, #view-email-signup,
        #view-otp, #view-onboarding {
            padding-top: calc(3rem + var(--sat)) !important;
        }
        /* Tela de PIN (py-16 = 4rem) */
        #view-pin {
            padding-top: calc(4rem + var(--sat)) !important;
        }
        /* Dashboard e conta: só o espaço da status bar */
        #view-dashboard, #view-account {
            padding-top: var(--sat) !important;
        }
        .premium-group-box { position: relative; margin-top: 0.75rem; margin-bottom: 1rem; border-radius: 16px; transition: all 0.3s ease; overflow: hidden; }
        .light .premium-group-box { border: 1px solid rgba(166, 138, 100, 0.25); background-color: rgba(255, 255, 255, 0.9); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02); }
        .dark .premium-group-box { border: 1px solid rgba(197, 168, 128, 0.2); background-color: rgba(20, 20, 20, 0.5); }
        
        .premium-group-header { position: relative; padding: 10px 14px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; display: flex; align-items: center; transition: all 0.3s ease; border-radius: 0; }
        .light .premium-group-header { background: linear-gradient(135deg, rgba(166,138,100,0.14) 0%, rgba(166,138,100,0.04) 100%); color: #8C704C; border-bottom: 1px solid rgba(166, 138, 100, 0.15); }
        .dark .premium-group-header { background: linear-gradient(135deg, rgba(197,168,128,0.18) 0%, rgba(197,168,128,0.05) 100%); color: #e2cba9; border-bottom: 1px solid rgba(197, 168, 128, 0.15); }

        /* Cabeçalhos de categoria: tons mais escuros para diferenciar Receitas e Despesas, sem confundir com Grupos & Contas */
        .light .cat-header-entrada { background: linear-gradient(135deg, rgba(16,150,90,0.10) 0%, rgba(16,150,90,0.035) 100%); color: #15805b; border-bottom: 1px solid rgba(16,150,90,0.12); }
        .dark .cat-header-entrada { background: linear-gradient(135deg, rgba(52,211,153,0.13) 0%, rgba(52,211,153,0.045) 100%); color: #86efac; border-bottom: 1px solid rgba(52,211,153,0.13); }
        .light .cat-header-saida { background: linear-gradient(135deg, rgba(220,38,38,0.09) 0%, rgba(220,38,38,0.03) 100%); color: #c24141; border-bottom: 1px solid rgba(220,38,38,0.11); }
        .dark .cat-header-saida { background: linear-gradient(135deg, rgba(248,113,113,0.13) 0%, rgba(248,113,113,0.045) 100%); color: #fca5a5; border-bottom: 1px solid rgba(248,113,113,0.13); }
        
        .mono-font { font-family: 'Space Grotesk', sans-serif; font-variant-numeric: tabular-nums; }
        .text-gradient-metallic { background: linear-gradient(135deg, #8C704C 0%, #C5A880 45%, #8C704C 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
        
        .fade-in-up { animation: fadeInUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; opacity: 0; transform: translateY(20px); }
        @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }
        
        .swipe-transition { transition: transform 0.25s ease-out, opacity 0.25s ease-out; }
        .swipe-left { transform: translateX(-30px); opacity: 0; }
        .swipe-right { transform: translateX(30px); opacity: 0; }
        
        /* HLG540: o antigo indicador 100% absoluto invadia campos vizinhos no Android.
   O calendário de data é aberto somente pelo toque no input correspondente. */
input[type="date"] { cursor: pointer; }
input[type="date"]::-webkit-calendar-picker-indicator { opacity: 0; position: static; width: 18px; height: 18px; pointer-events: none; }
input[type="date"]::-webkit-inner-spin-button { display: none; }
        
        .pin-dot { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #A68A64; transition: all 0.2s; }
        .pin-dot.filled { background-color: #A68A64; }
        .pin-btn { width: 63px; height: 63px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 600; background-color: rgba(166, 138, 100, 0.1); color: #A68A64; transition: all 0.1s; }
        .pin-btn:active { background-color: rgba(166, 138, 100, 0.3); transform: scale(0.95); }
        
        .accordion-content { transition: max-height 0.3s ease-in-out, opacity 0.3s ease-in-out; overflow: hidden; }
        .accordion-content.no-transition { transition: none !important; }
        .chevron-icon { transition: transform 0.3s ease; }
        .chevron-icon.rotated { transform: rotate(-90deg); }

        .limit-transaction-focus {
            position: relative;
            z-index: 1;
            margin-left: -1rem;
            margin-right: -1rem;
            padding-left: 1rem;
            padding-right: 1rem;
            padding-top: 0.55rem;
            padding-bottom: 0.55rem;
            animation: c4dsTransactionFocus 2.6s ease-out;
        }
        @keyframes c4dsTransactionFocus {
            0%, 55% { background: rgba(166, 138, 100, 0.14); }
            100% { background: transparent; }
        }
        .dark .limit-transaction-focus {
            animation-name: c4dsTransactionFocusDark;
        }
        @keyframes c4dsTransactionFocusDark {
            0%, 55% { background: rgba(197, 168, 128, 0.13); }
            100% { background: transparent; }
        }

        .c4ds-processing-spinner {
            width: 44px;
            height: 44px;
            border-radius: 9999px;
            border: 4px solid rgba(166, 138, 100, 0.18);
            border-top-color: #A68A64;
            animation: c4dsSpin 0.85s linear infinite;
        }
        .dark .c4ds-processing-spinner {
            border-color: rgba(197, 168, 128, 0.18);
            border-top-color: #C5A880;
        }
        @keyframes c4dsSpin {
            to { transform: rotate(360deg); }
        }

        .analysis-feature-card {
            background: rgba(166, 138, 100, 0.075);
            border-color: rgba(166, 138, 100, 0.22);
        }
        .dark .analysis-feature-card {
            background: rgba(197, 168, 128, 0.07);
            border-color: rgba(197, 168, 128, 0.18);
        }

        /* Extrato: Entrada, Saída e Transferência com fundo cinza muito claro,
           sem bordas coloridas e com sombra quase imperceptível. */
        .c4ds-statement-icon {
            width: 26px !important;
            height: 26px !important;
            min-width: 26px !important;
            max-width: 26px !important;
            min-height: 26px !important;
            max-height: 26px !important;
            flex: 0 0 26px;
            box-sizing: border-box;
            overflow: hidden;
            background: rgba(244, 244, 246, 0.72);
            border: none;
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.035);
            flex-shrink: 0;
        }
        .dark .c4ds-statement-icon {
            background: rgba(255, 255, 255, 0.055);
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.10);
        }
        .c4ds-statement-transfer { color: #91763E; }
        .dark .c4ds-statement-transfer { color: #BBA16B; }
        .c4ds-statement-transfer svg {
            width: 0.92rem;
            height: 0.92rem;
            stroke-width: 1.95;
        }
        .c4ds-statement-art {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: contain;
            background: transparent;
            border: 0;
            box-shadow: none;
        }
        /* Entrada assets now arrive without an internal green frame. Do not crop art. */
        .c4ds-statement-art-official { transform: none; }
        /* Zoom apenas da arte de Entradas; contorno e tamanho do quadrado intactos. */
        .c4ds-statement-income .c4ds-statement-art-official { transform: scale(1.10); transform-origin: center; }

        .batch-flow-header {
            min-height: 116px;
            background: #F8F5F0;
            border-bottom: 1px solid rgba(166, 138, 100, 0.25);
            box-shadow: 0 1px 8px rgba(15, 23, 42, 0.04);
        }
        .dark .batch-flow-header {
            background: #0B0B0B;
            border-bottom-color: rgba(197, 168, 128, 0.20);
            box-shadow: none;
        }
        #batch-detail-view.batch-confirmation-layout > div:first-child {
            align-items: flex-start;
            padding-top: 1.25rem;
            padding-bottom: 0.75rem;
        }
        #batch-detail-view.batch-confirmation-layout #batch-detail-account-badge {
            margin-top: 1.65rem;
        }
        #batch-detail-view.batch-confirmation-layout #batch-detail-batch-name {
            margin-top: 0.35rem;
        }
        
        .calc-btn { transition: all 0.1s; display: flex; align-items: center; justify-content: center; }
        .calc-btn:active { transform: scale(0.95); opacity: 0.8; }
    
        /* ── Banner de nova versão (updater.js) ─────────────────────────────── */
        #update-banner {
            position: fixed;
            left: 50%;
            transform: translateX(-50%) translateY(140%);
            bottom: calc(1rem + var(--sab));
            width: calc(100% - 2rem);
            max-width: 28rem;
            z-index: 10000;
            opacity: 0;
            transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.35s ease;
            pointer-events: none;
        }
        #update-banner.update-banner-visible {
            transform: translateX(-50%) translateY(0);
            opacity: 1;
            pointer-events: auto;
        }
        #update-banner-inner {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 14px;
            border-radius: 16px;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }
        .light #update-banner-inner {
            background: rgba(255, 255, 255, 0.96);
            border: 1px solid rgba(166, 138, 100, 0.30);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
        }
        .dark #update-banner-inner {
            background: rgba(24, 24, 24, 0.96);
            border: 1px solid rgba(197, 168, 128, 0.25);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
        }
        .update-banner-icon {
            flex: 0 0 auto;
            width: 34px; height: 34px;
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            background: rgba(166, 138, 100, 0.12);
            color: #8C704C;
        }
        .dark .update-banner-icon { color: #e2cba9; background: rgba(197, 168, 128, 0.14); }
        .update-banner-icon svg { width: 18px; height: 18px; }
        .update-banner-text { display: flex; flex-direction: column; line-height: 1.15; flex: 1 1 auto; min-width: 0; }
        .update-banner-title { font-size: 13px; font-weight: 700; color: #8C704C; }
        .dark .update-banner-title { color: #e2cba9; }
        .update-banner-sub { font-size: 11px; font-weight: 500; }
        .light .update-banner-sub { color: #71717a; }
        .dark .update-banner-sub { color: #a1a1aa; }
        .update-banner-cta {
            flex: 0 0 auto;
            padding: 8px 14px;
            border-radius: 10px;
            font-size: 11px; font-weight: 700;
            text-transform: uppercase; letter-spacing: 0.06em;
            background: #A68A64; color: #fff;
            transition: all 0.1s;
        }
        .update-banner-cta:active { transform: scale(0.95); background: #8C704C; }
        .update-banner-close {
            flex: 0 0 auto;
            width: 26px; height: 26px;
            display: flex; align-items: center; justify-content: center;
            color: #a1a1aa;
        }
        .update-banner-close svg { width: 15px; height: 15px; }


/* DEV17_CALCULATOR_PRESS_FEEDBACK_3040
   Feedback inspirado na sensação de toque da calculadora Android,
   mas usando a linguagem visual bronze/dourada do Cash4DS. */
.calc-btn {
    position: relative;
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
    transition: transform .12s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease;
}
.calc-btn::after {
    content: '';
    position: absolute;
    inset: 3px;
    border-radius: inherit;
    border: 1px solid rgba(166, 138, 100, 0);
    opacity: 0;
    transform: scale(.78);
    pointer-events: none;
}
.calc-btn.calc-pressed {
    transform: scale(.965);
    border-color: rgba(166, 138, 100, .45);
    box-shadow: 0 0 0 2px rgba(166, 138, 100, .14), 0 0 18px rgba(166, 138, 100, .28);
}
.calc-btn.calc-pressed::after {
    animation: cash4ds-calc-tap .26s ease-out;
}
.dark .calc-btn.calc-pressed {
    border-color: rgba(197, 168, 128, .55);
    box-shadow: 0 0 0 2px rgba(197, 168, 128, .16), 0 0 20px rgba(197, 168, 128, .30);
}
.dark .calc-btn.calc-pressed::after {
    border-color: rgba(197, 168, 128, .55);
}
@keyframes cash4ds-calc-tap {
    0% { opacity: .68; transform: scale(.78); border-color: rgba(166, 138, 100, .62); }
    100% { opacity: 0; transform: scale(1.18); border-color: rgba(166, 138, 100, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .calc-btn { transition: none; }
    .calc-btn.calc-pressed { transform: none; }
    .calc-btn.calc-pressed::after { animation: none; }
}


/* DEV17_EDITABLE_CALCULATOR_MODAL_SAFE_PENDING */
#calc-display.calc-display-editable {
    -webkit-user-select: text;
    user-select: text;
    cursor: text;
    caret-color: #A68A64;
    touch-action: manipulation;
}
.dark #calc-display.calc-display-editable { caret-color: #C5A880; }
#calc-display.calc-display-editable::selection { background: rgba(166, 138, 100, 0.28); }
.dark #calc-display.calc-display-editable::selection { background: rgba(197, 168, 128, 0.30); }

/* O modal de lançamento é um bottom sheet dentro do phone-wrapper.
   Usar % do contêiner evita que vh inclua barras do sistema e esconda o cabeçalho/X. */
#add-modal { box-sizing: border-box; padding-top: 0.75rem; }
#add-modal-panel.cash4ds-transaction-modal-panel { max-height: 90% !important; }

/* DEV-22/3.0.47 — legibilidade, contraste e hierarquia visual
   Objetivo: facilitar a leitura sem redesenhar o app nem alterar comportamento.
   As cores de fundo da identidade permanecem; apenas cores usadas como texto
   ganham contraste suficiente nos fundos claros/escuros predominantes. */
:root {
    --c4ds-text-brand-strong-light: #665B4C;
    --c4ds-text-brand-soft-light: #745F45;
    --c4ds-text-muted-light: #63636A;
    --c4ds-text-muted-soft-light: #66666F;
    --c4ds-text-muted-dark: #86868F;
    --c4ds-text-muted-soft-dark: #8F8F98;
}

/* Bronze é preservado nos fundos e elementos decorativos. Quando é texto,
   usamos um tom mais escuro no modo claro para não desaparecer no bege/cinza. */
.light body .text-brand-activeLight { color: var(--c4ds-text-brand-strong-light) !important; }
.light body .text-brand-light { color: var(--c4ds-text-brand-soft-light) !important; }
.light body .text-brand-activeLight\/75 { color: var(--c4ds-text-brand-soft-light) !important; }
.dark body .text-brand-dark\/75 { color: #C5A880 !important; }

/* Textos auxiliares antes muito claros passam a continuar secundários,
   porém legíveis sobre #FBFBFC, #F8F5F0, #0B0B0B e #111111. */
.light body .text-zinc-400 { color: var(--c4ds-text-muted-soft-light) !important; }
.light body .text-zinc-500 { color: var(--c4ds-text-muted-light) !important; }
.dark body .text-zinc-500 { color: var(--c4ds-text-muted-dark) !important; }
.dark body .text-zinc-600 { color: var(--c4ds-text-muted-soft-dark) !important; }

/* Escala mínima de leitura do Cash4DS. Mantém a hierarquia existente e só
   corrige os degraus muito pequenos, inclusive conteúdo criado via JavaScript. */
body .text-\[8px\] { font-size: 10px !important; }
body .text-\[9px\] { font-size: 10px !important; }
body .text-\[10px\] { font-size: 11px !important; }
body .text-\[11px\] { font-size: 12px !important; }
body .text-\[12px\] { font-size: 13px !important; }
body .text-xs { font-size: 13px !important; }
body .text-\[13px\] { font-size: 14px !important; }

/* Exemplo que originou a ampliação do DEV-22: gaveta Contas no extrato.
   O cabeçalho fica em superfície sólida e o título ganha contraste real. */
.light #account-sidebar { background: #FBFBFC !important; }
.light #account-sidebar > div:first-child { background: #FFFFFF; }
.light #account-sidebar > div:first-child p:first-child {
    color: var(--c4ds-text-brand-strong-light) !important;
    font-size: 14px !important;
}
.light #account-sidebar > div:first-child p:nth-child(2) {
    color: #595960 !important;
    font-size: 12px !important;
}
.light #sidebar-account-count { color: var(--c4ds-text-brand-soft-light) !important; }
.dark #account-sidebar > div:first-child p:first-child { color: #E2CBA9 !important; }
.dark #account-sidebar > div:first-child p:nth-child(2) { color: #B9B9C2 !important; }
.dark #sidebar-account-count { color: #C5A880 !important; }

/* Cabeçalhos dos grupos precisam ser identificáveis sem depender apenas da cor. */
.premium-group-header { font-size: 13px; }



/* MOB03_ANDROID_SAFE_VIEWPORT
 * Android 15/16 força edge-to-edge. O SystemBars do Capacitor injeta os insets
 * reais em --safe-area-inset-*. Em vez de corrigir tela/modal por tela, todo o
 * viewport web do Cash4DS passa a viver dentro dessa área segura. Assim qualquer
 * overlay absolute inset-0, inclusive os criados dinamicamente, herda o limite.
 */
html.cash4ds-native-android,
html.cash4ds-native-android body {
    width: 100%;
    height: 100dvh !important;
    min-height: 100dvh !important;
}
html.cash4ds-native-android body {
    box-sizing: border-box;
    padding-top: var(--sat) !important;
    padding-right: var(--sar) !important;
    padding-bottom: var(--sab) !important;
    padding-left: var(--sal) !important;
    overflow: hidden !important;
    background: #FBFBFC !important;
}
html.dark.cash4ds-native-android body {
    background: #0B0B0B !important;
}

/* Overlays fixed criados diretamente no body não respeitam o padding seguro
 * do body. No Android nativo, o próprio retângulo fixed passa a terminar antes
 * das barras do sistema. Dentro dele, --sat/--sab viram zero para evitar somar
 * o mesmo inset duas vezes em componentes que já tinham compensação própria. */
html.cash4ds-native-android .c4-fixed-safe-overlay {
    top: var(--c4-system-safe-top) !important;
    right: var(--c4-system-safe-right) !important;
    bottom: var(--c4-system-safe-bottom) !important;
    left: var(--c4-system-safe-left) !important;
    --sat: 0px;
    --sab: 0px;
    --sal: 0px;
    --sar: 0px;
}
html.cash4ds-native-android #phone-wrapper {
    height: 100% !important;
    max-height: 100% !important;
}

/* O wrapper já está inteiro dentro da área segura; retire compensações antigas
 * de telas específicas para não somar o inset duas vezes. */
html.cash4ds-native-android #view-login,
html.cash4ds-native-android #view-email-signup,
html.cash4ds-native-android #view-otp,
html.cash4ds-native-android #view-onboarding {
    padding-top: 3rem !important;
}
html.cash4ds-native-android #view-pin {
    padding-top: 4rem !important;
}
html.cash4ds-native-android #view-dashboard,
html.cash4ds-native-android #view-account {
    padding-top: 0 !important;
}
html.cash4ds-native-android #global-navbar {
    padding-bottom: 0.75rem !important;
}
html.cash4ds-native-android #global-navbar::after {
    height: 0 !important;
}
html.cash4ds-native-android #home-scroll,
html.cash4ds-native-android #tab-content-perfil,
html.cash4ds-native-android #tab-content-insights {
    padding-bottom: 8rem !important;
}

/* Estes avisos vivem fora do phone-wrapper e por isso recebem o inset direto. */
html.cash4ds-native-android #env-stripe {
    top: var(--sat) !important;
    left: var(--sal) !important;
    right: var(--sar) !important;
}
html.cash4ds-native-android #env-stripe[style*="display: block"] + #offline-banner {
    top: calc(var(--sat) + 6px) !important;
    left: var(--sal) !important;
    right: var(--sar) !important;
}
html.cash4ds-native-android #env-stripe:not([style*="display: block"]) + #offline-banner {
    top: var(--sat) !important;
    left: var(--sal) !important;
    right: var(--sar) !important;
}


/* MOB03_LOGIN_KEYBOARD_COMPACT
 * No Android, o teclado reduz a altura útil da WebView. A tela inicial troca
 * deliberadamente para uma composição de digitação: marca compacta, gráfico
 * recolhido e formulário em fluxo acima do teclado. Evita o efeito de o campo
 * "subir sozinho" enquanto o gráfico fica parado.
 */
html.cash4ds-native-android body.cash4ds-keyboard-open #view-login {
    padding-top: 0.65rem !important;
    padding-bottom: 0.4rem !important;
    justify-content: flex-start !important;
}
html.cash4ds-native-android #login-brand-block,
html.cash4ds-native-android #login-brand-block h1,
html.cash4ds-native-android #login-brand-block p,
html.cash4ds-native-android #login-access-panel {
    transition: opacity 140ms ease, transform 150ms ease, max-height 150ms ease, margin 150ms ease, padding 150ms ease !important;
}

/* ONBOARDING_POLISH_470 — o gráfico troca entre os dois layouts do teclado sem
 * interpolação. Ao fechar o teclado ele já nasce na posição final, sem "escorregar". */
html.cash4ds-native-android #login-graphic {
    transition: none !important;
}

/* Primeira entrada da tela inicial: linhas desenhadas da esquerda para a direita.
 * O estado "preintro" existe no HTML para não haver flash antes de o login aparecer. */
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-preintro .c4-login-line,
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-line {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-preintro .c4-login-node,
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-node {
    opacity: 0;
    transform: scale(0.82);
    transform-box: fill-box;
    transform-origin: center;
}
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-line-secondary {
    animation: cash4dsLoginLineDraw 3.15s linear 100ms forwards;
}
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-line-primary {
    animation: cash4dsLoginLineDraw 3.55s linear 180ms forwards;
}
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-node-secondary,
html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-node-primary {
    animation: cash4dsLoginNodeReveal 220ms ease-out var(--c4-node-delay) forwards;
}
@keyframes cash4dsLoginLineDraw {
    to { stroke-dashoffset: 0; }
}
@keyframes cash4dsLoginNodeReveal {
    to { opacity: 1; transform: scale(1); }
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block {
    margin-top: 0 !important;
    transform: translateY(0) !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block h1 {
    font-size: 2rem !important;
    line-height: 1.05 !important;
    margin-bottom: 0.15rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block p {
    max-height: 0 !important;
    margin: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-graphic {
    flex: 0 0 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    transform: scale(0.97) !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-access-panel {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin-top: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0.35rem !important;
    gap: 0.45rem !important;
    transform: none !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-access-panel #acesso-timer {
    min-height: 16px !important;
    font-size: 12px !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-access-panel > p:last-child {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    html.cash4ds-native-android #login-brand-block,
    html.cash4ds-native-android #login-brand-block h1,
    html.cash4ds-native-android #login-brand-block p,
    html.cash4ds-native-android #login-graphic,
    html.cash4ds-native-android #login-access-panel {
        transition: none !important;
    }
    html.cash4ds-native-android #login-graphic.cash4ds-login-graph-preintro .c4-login-line,
    html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-line {
        stroke-dashoffset: 0 !important;
        animation: none !important;
    }
    html.cash4ds-native-android #login-graphic.cash4ds-login-graph-preintro .c4-login-node,
    html.cash4ds-native-android #login-graphic.cash4ds-login-graph-intro .c4-login-node {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}


/* MOB03_NATIVE_FORM_KEYBOARD_UX
 * OTP: quando o teclado numérico entra, a tela deixa de tentar conservar o
 * espaçamento alto de confirmação e muda para uma composição compacta, como a
 * tela de e-mail. Editor de lançamento: o sheet ganha geometria estável dentro
 * do viewport seguro; só a área central rola, enquanto cabeçalho e ações ficam
 * ancorados. Isso evita X escondido, painel saltando e a sensação de tremida.
 */
html.cash4ds-native-android #otp-brand-block,
html.cash4ds-native-android #otp-brand-block > div:first-child,
html.cash4ds-native-android #otp-title,
html.cash4ds-native-android #otp-subtitle,
html.cash4ds-native-android #otp-email-address,
html.cash4ds-native-android #otp-code-panel,
html.cash4ds-native-android #otp-confirm-panel {
    transition: opacity 140ms ease, transform 150ms ease, max-height 150ms ease,
                margin 150ms ease, padding 150ms ease, gap 150ms ease !important;
}

html.cash4ds-native-android body.cash4ds-keyboard-open #view-otp {
    padding-top: 0.65rem !important;
    padding-bottom: 0.35rem !important;
    justify-content: flex-start !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-brand-block {
    margin-top: 0 !important;
    transform: none !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-brand-block > div:first-child {
    width: 2.75rem !important;
    height: 2.75rem !important;
    margin-bottom: 0.45rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-brand-block > div:first-child svg {
    width: 1.35rem !important;
    height: 1.35rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-title {
    font-size: 1.1rem !important;
    line-height: 1.15 !important;
    margin-bottom: 0.15rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-subtitle {
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-email-address {
    font-size: 0.76rem !important;
    line-height: 1.15 !important;
    margin-top: 0.1rem !important;
    max-width: 19rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-code-panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    justify-content: flex-start !important;
    padding-top: 0.65rem !important;
    padding-bottom: 0 !important;
    gap: 0.45rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #input-otp-code {
    max-width: 16.5rem !important;
    font-size: 1.3rem !important;
    line-height: 1.15 !important;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    letter-spacing: 0.28em !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #resend-otp-wrapper {
    gap: 0.15rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-confirm-panel {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin-top: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0.2rem !important;
    gap: 0.25rem !important;
    transform: none !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-confirm-panel > div:first-child {
    display: none !important;
}

/* O editor de lançamento ocupa uma geometria previsível em vez de um sheet de
 * 90vh que muda de posição quando o Android redimensiona a WebView. */
html.cash4ds-native-android #add-modal {
    overflow: hidden !important;
}
html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor {
    height: calc(100% - 0.65rem) !important;
    max-height: calc(100% - 0.65rem) !important;
    min-height: 0 !important;
    margin-top: 0.65rem !important;
    padding-top: 0.9rem !important;
    padding-bottom: 0.9rem !important;
    transform: none !important;
    transition: opacity 150ms ease !important;
}
html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor #modal-header {
    position: relative !important;
    z-index: 30 !important;
    min-height: 2.75rem !important;
    margin-bottom: 0.75rem !important;
    padding-top: 0.15rem !important;
    padding-bottom: 0.35rem !important;
    align-items: flex-start !important;
}
html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor #modal-header > button {
    width: 2.75rem !important;
    height: 2.75rem !important;
    margin-top: -0.45rem !important;
    margin-right: -0.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 9999px !important;
    touch-action: manipulation !important;
}
html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor #modal-scroll-area {
    min-height: 0 !important;
    overscroll-behavior: contain !important;
    scroll-padding-top: 0.75rem !important;
    scroll-padding-bottom: 1rem !important;
}
html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor #modal-actions-area {
    position: relative !important;
    z-index: 30 !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #add-modal-panel.cash4ds-transaction-editor {
    height: calc(100% - 0.35rem) !important;
    max-height: calc(100% - 0.35rem) !important;
    margin-top: 0.35rem !important;
    padding-top: 0.65rem !important;
    padding-bottom: 0.55rem !important;
    transition: none !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #add-modal-panel.cash4ds-transaction-editor #modal-header {
    min-height: 2.4rem !important;
    margin-bottom: 0.4rem !important;
    padding-bottom: 0.3rem !important;
    border-bottom: 1px solid rgba(166,138,100,0.12) !important;
}
html.dark.cash4ds-native-android body.cash4ds-keyboard-open #add-modal-panel.cash4ds-transaction-editor #modal-header {
    border-bottom-color: rgba(197,168,128,0.14) !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #add-modal-panel.cash4ds-transaction-editor #modal-tabs {
    margin-bottom: 0.75rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #add-modal-panel.cash4ds-transaction-editor #modal-actions-area {
    padding-top: 0.45rem !important;
    margin-top: 0.35rem !important;
    gap: 0.4rem !important;
}

@media (prefers-reduced-motion: reduce) {
    html.cash4ds-native-android #otp-brand-block,
    html.cash4ds-native-android #otp-brand-block > div:first-child,
    html.cash4ds-native-android #otp-title,
    html.cash4ds-native-android #otp-subtitle,
    html.cash4ds-native-android #otp-email-address,
    html.cash4ds-native-android #otp-code-panel,
    html.cash4ds-native-android #otp-confirm-panel,
    html.cash4ds-native-android #add-modal-panel.cash4ds-transaction-editor {
        transition: none !important;
    }
}


/* ANA-10 — seleção das contas das análises: identidade bronze do Cash4DS. */
.ana10-hero,.ana10-summary,.ana10-selector-intro {
    position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(166,138,100,.27);
    background:linear-gradient(145deg,#fff 0%,#faf5ee 54%,#f6f0e8 100%);
    border-radius:25px;box-shadow:0 10px 30px -20px rgba(83,63,37,.36),0 2px 8px rgba(83,63,37,.035);
}
.dark .ana10-hero,.dark .ana10-summary,.dark .ana10-selector-intro {
    border-color:rgba(197,168,128,.26);background:linear-gradient(140deg,#242019 0%,#171614 62%,#121212 100%);
    box-shadow:0 10px 35px -26px rgba(0,0,0,.7);
}
.ana10-hero {padding:25px 21px 22px;margin-bottom:23px;}
.ana10-hero-glow {position:absolute;width:210px;height:210px;right:-108px;top:-104px;z-index:-1;border-radius:50%;
    background:radial-gradient(circle,rgba(166,138,100,.21),rgba(166,138,100,0) 70%);pointer-events:none;}
.ana10-kicker {display:inline-flex;align-items:center;gap:7px;color:#806342;font-size:9px;font-weight:800;letter-spacing:1.45px;line-height:1.35;}
.dark .ana10-kicker {color:#d9bb91;}
.ana10-hero-title {font-size:24px;line-height:1.15;letter-spacing:-.55px;font-weight:800;color:#272523;margin-top:17px;max-width:270px;}
.dark .ana10-hero-title {color:#f5efe7;}
.ana10-hero-text {font-size:12px;line-height:1.65;color:#57524c;margin-top:13px;}
.dark .ana10-hero-text {color:#c4b8a9;}
.ana10-hero-explain {margin-top:17px;}
.ana10-journey {display:flex;flex-wrap:wrap;gap:7px;margin-top:20px;}
.ana10-journey span {display:flex;align-items:center;gap:5px;padding:8px 10px;font-size:9px;line-height:1.2;font-weight:700;
    border:1px solid rgba(166,138,100,.23);border-radius:12px;color:#756048;background:rgba(255,255,255,.7);}
.ana10-journey svg {width:13px;height:13px;stroke-width:2px;}
.dark .ana10-journey span {color:#e2cba9;border-color:rgba(197,168,128,.24);background:rgba(197,168,128,.1);}
.ana10-info,.ana10-mini-info {display:flex;align-items:flex-start;gap:10px;padding:12px;margin-top:18px;border-radius:13px;
    background:rgba(166,138,100,.095);border:1px solid rgba(166,138,100,.18);font-size:11px;line-height:1.55;color:#635542;}
.ana10-info svg,.ana10-mini-info svg {flex-shrink:0;margin-top:1px;color:#8c704c;}
.ana10-info strong {font-weight:800;color:#645036;}
.dark .ana10-info,.dark .ana10-mini-info {background:rgba(197,168,128,.1);border-color:rgba(197,168,128,.18);color:#e2d4c1;}
.dark .ana10-info strong,.dark .ana10-info svg,.dark .ana10-mini-info svg {color:#e2cba9;}
.ana10-primary {display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:49px;margin-top:20px;padding:13px 15px;
    border-radius:14px;background:#8c704c;color:#fff;font-size:12px;font-weight:800;letter-spacing:.15px;
    box-shadow:0 8px 16px -9px rgba(88,58,25,.5);transition:transform .15s ease,opacity .15s ease,background .15s ease;}
.ana10-primary:active:not(:disabled) {transform:scale(.982);}
.ana10-primary:focus-visible,.ana10-edit:focus-visible,.ana10-account-row:focus-within,.ana10-back:focus-visible,.ana10-group-select:focus-within {
    outline:2px solid #b99a6f;outline-offset:3px;}
.ana10-primary:disabled {opacity:.48;cursor:not-allowed;box-shadow:none;}
.dark .ana10-primary {color:#1f1a13;background:#d6b98c;}
.ana10-note {font-size:11px;color:#736d65;margin-top:12px;text-align:center;}
.dark .ana10-note {color:#a99d8f;}
.ana10-summary {padding:19px 18px 17px;margin-bottom:22px;}
.ana10-summary-top,.ana10-summary-foot {display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ana10-ready-badge {display:flex;align-items:center;gap:4px;border-radius:50px;background:rgba(81,138,106,.13);
    color:#366d4d;font-weight:800;font-size:9px;padding:5px 8px;white-space:nowrap;}
.dark .ana10-ready-badge {background:rgba(74,142,105,.18);color:#94c9a3;}
.ana10-ready-badge svg {width:12px;height:12px;}
.ana10-summary-title {font-size:19px;font-weight:800;color:#272523;letter-spacing:-.3px;margin-top:12px;}
.dark .ana10-summary-title {color:#f3ebdf;}
.ana10-summary-sub {font-size:11px;line-height:1.5;color:#685b4b;margin-top:6px;}
.dark .ana10-summary-sub {color:#c6b8a5;}
.ana10-summary-foot {margin-top:17px;}
.ana10-avatars {display:flex;align-items:center;padding-left:4px;min-width:0;}
.ana10-avatars .ana10-account-logo,.ana10-avatar-extra {width:32px;height:32px;margin-left:-4px;border:2px solid #f9f4ec;border-radius:11px;box-shadow:0 1px 4px rgba(0,0,0,.07);}
.dark .ana10-avatars .ana10-account-logo,.dark .ana10-avatar-extra {border-color:#242019;}
.ana10-avatar-extra {display:flex;align-items:center;justify-content:center;background:#e5d5c0;color:#5e4d39;font-size:9px;font-weight:800;}
.ana10-edit {display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;min-height:37px;
    color:#735734;border:1px solid rgba(166,138,100,.36);border-radius:11px;background:rgba(255,255,255,.6);font-size:11px;font-weight:800;}
.dark .ana10-edit {color:#e2cba9;background:rgba(197,168,128,.08);border-color:rgba(197,168,128,.27);}
.ana10-selector {padding-bottom:calc(168px + env(safe-area-inset-bottom, 0px));}
.ana10-selector-heading {display:flex;align-items:center;gap:14px;margin-bottom:17px;}
.ana10-selector-heading h1 {font-size:20px;line-height:1.25;font-weight:800;color:#292724;margin-top:3px;}
.dark .ana10-selector-heading h1 {color:#f1eee9;}
.ana10-back {width:39px;height:39px;flex-shrink:0;display:flex;justify-content:center;align-items:center;
    border-radius:12px;background:#fff;border:1px solid rgba(166,138,100,.25);color:#765e40;box-shadow:0 2px 7px rgba(0,0,0,.035);}
.dark .ana10-back {background:#1d1c1a;color:#e2cba9;border-color:rgba(197,168,128,.22);}
.ana10-selector-intro {padding:17px 17px 19px;}
.ana10-selector-sparkle {display:flex;align-items:center;justify-content:center;width:35px;height:35px;
    border-radius:11px;background:rgba(166,138,100,.16);color:#806342;}
.dark .ana10-selector-sparkle {color:#dfc39e;background:rgba(197,168,128,.17);}
.ana10-selector-intro h2 {font-size:17px;font-weight:800;letter-spacing:-.3px;color:#282522;margin-top:11px;}
.dark .ana10-selector-intro h2 {color:#f5efe7;}
.ana10-selector-intro p {color:#5b5348;font-size:11px;line-height:1.65;margin-top:7px;}
.dark .ana10-selector-intro p {color:#c3b8ac;}
.ana10-mini-info {margin-top:13px;background:rgba(255,255,255,.65);padding:9px 10px;font-size:10px;}
.dark .ana10-mini-info {background:rgba(197,168,128,.08);}
.ana10-selector-count {display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 2px 11px;
    font-size:10px;color:#80776d;}
.ana10-selector-count span:first-child {font-size:12px;font-weight:800;color:#6c5438;}
.dark .ana10-selector-count span:first-child {color:#d6b98c;}
.ana10-group {border-radius:18px;overflow:hidden;background:#fff;border:1px solid rgba(166,138,100,.20);
    box-shadow:0 3px 13px rgba(53,43,32,.035);margin-bottom:12px;}
.dark .ana10-group {background:#171615;border-color:rgba(197,168,128,.2);box-shadow:none;}
.ana10-group-head {display:flex;align-items:center;justify-content:space-between;gap:9px;padding:12px 11px;
    background:linear-gradient(100deg,rgba(166,138,100,.13),rgba(166,138,100,.035));}
.dark .ana10-group-head {background:linear-gradient(100deg,rgba(197,168,128,.18),rgba(197,168,128,.035));}
.ana10-group-title {display:flex;gap:9px;align-items:center;min-width:0;flex:1;}
.ana10-group-text {display:flex;flex-direction:column;gap:3px;min-width:0;}
.ana10-group-text strong {font-size:11px;line-height:1.3;font-weight:800;color:#655037;overflow-wrap:anywhere;}
.dark .ana10-group-text strong {color:#e2cba9;}
.ana10-group-text small {font-size:10px;font-weight:500;color:#7d7367;}
.dark .ana10-group-text small {color:#ada191;}
.ana10-group-icon {width:29px;height:29px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:10px;
    background:rgba(166,138,100,.15);color:#876a46;}
.dark .ana10-group-icon {color:#d8bb8e;background:rgba(197,168,128,.15);}
.ana10-group-select {display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;width:29px;height:29px;cursor:pointer;border-radius:50%;}
.ana10-group-checkbox {position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1;}
.ana10-group-select:focus-within {outline:2px solid #b99a6f;outline-offset:3px;}
.ana10-account-list {padding:3px 7px 7px;}
.ana10-account-row {position:relative;display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 7px;border-radius:11px;
    border:1px solid transparent;transition:background .16s ease,border-color .16s ease;cursor:pointer;}
.ana10-account-row+.ana10-account-row {margin-top:2px;}
.ana10-account-row.ana10-checked {border-color:rgba(166,138,100,.26);background:rgba(166,138,100,.07);}
.dark .ana10-account-row.ana10-checked {background:rgba(197,168,128,.09);border-color:rgba(197,168,128,.25);}
.ana10-account-row.ana10-disabled {opacity:.49;cursor:not-allowed;}
.ana10-native-checkbox {position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1;}
.ana10-checkmark {display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;border-radius:50%;
    border:1.5px solid #c7beb1;background:#fff;color:transparent;transition:background .16s ease,border-color .16s ease;}
.ana10-checked .ana10-checkmark,.ana10-group-select .ana10-all-selected {border-color:#94744e;background:#94744e;color:#fff;}
.ana10-group-select .ana10-partly-selected {border-color:#94744e;background:rgba(148,116,78,.18);color:#94744e;}
.dark .ana10-checkmark {background:#1c1b19;border-color:#766954;}
.dark .ana10-checked .ana10-checkmark,.dark .ana10-group-select .ana10-all-selected {border-color:#d6b98c;background:#d6b98c;color:#1e1b17;}
.dark .ana10-group-select .ana10-partly-selected {border-color:#d6b98c;background:rgba(214,185,140,.2);color:#d6b98c;}
.ana10-checkmark svg {width:10px;height:10px;stroke-width:3;}
.ana10-account-logo {display:flex;justify-content:center;align-items:center;flex-shrink:0;width:39px;height:39px;border-radius:12px;
    background:#fff;border:1px solid rgba(166,138,100,.14);overflow:hidden;}
.ana10-account-logo img {display:block;width:100%;height:100%;object-fit:contain;padding:3px;}
.ana10-logo-fallback {display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#806342;background:#f5efe6;}
.ana10-account-logo img+.ana10-logo-fallback {display:none;}
.dark .ana10-account-logo {background:#efede7;border-color:rgba(197,168,128,.22);}
.ana10-account-label {display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;}
.ana10-account-name {font-size:11px;font-weight:750;line-height:1.35;color:#36332f;overflow-wrap:anywhere;}
.dark .ana10-account-name {color:#ece9e3;}
.ana10-account-sub {font-size:10px;line-height:1.3;color:#83776a;}
.dark .ana10-account-sub {color:#aea395;}
.ana10-checked .ana10-account-sub {color:#806342;}
.dark .ana10-checked .ana10-account-sub {color:#e1c298;}
.ana10-selector-footer {position:static;margin-top:22px;padding:12px 0 6px;border-top:1px solid rgba(166,138,100,.16);
    background:transparent;}
.dark .ana10-selector-footer {background:transparent;border-top-color:rgba(197,168,128,.18);}
/* O rodapé é movido ao phone-wrapper, FORA da área que rola. A lista passa
   por trás; a última conta permanece acessível pelo espaço de rolagem. */
.ana10-footer-overlay {position:absolute;left:0;right:0;width:100%;margin:0;padding:10px 16px 12px;
    z-index:39;background:rgba(249,249,251,.96);border-top:1px solid rgba(166,138,100,.18);
    box-shadow:0 -8px 22px rgba(24,20,16,.045);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
.dark .ana10-footer-overlay {background:rgba(11,11,11,.96);border-top-color:rgba(197,168,128,.22);box-shadow:0 -8px 22px rgba(0,0,0,.16);}
.ana10-footer-overlay .ana10-primary {width:100%;}
.ana10-selector-footer .ana10-primary {margin-top:8px;}
.ana10-footer-info {display:flex;align-items:center;justify-content:center;gap:6px;color:#736044;font-weight:750;font-size:10px;}
.dark .ana10-footer-info {color:#dfc39e;}
.ana10-save-error {margin-top:8px;color:#b33f3f;font-size:11px;text-align:center;}
.ana10-utilities-note {margin:17px 4px 12px;font-size:10px;line-height:1.5;color:#70685d;}
.dark .ana10-utilities-note {color:#ada294;}
@media (max-width:350px) {.ana10-hero-title{font-size:21px}.ana10-kicker{letter-spacing:.8px}.ana10-summary-top{flex-wrap:wrap}.ana10-journey span{font-size:8px;padding:7px 8px}}


/* ANA-11 — visão determinística. Não altera a seleção de contas ANA-10. */
.ana11-card {border:1px solid rgba(166,138,100,.24);border-radius:22px;background:#fff;
    padding:19px 17px;box-shadow:0 6px 24px rgba(48,39,29,.045);overflow-wrap:anywhere;}
.dark .ana11-card {background:#171615;border-color:rgba(197,168,128,.27);box-shadow:none;}
.ana11-label,.ana11-mini-label {font-size:11px;font-weight:800;letter-spacing:1.1px;color:#806342;}
.dark .ana11-label,.dark .ana11-mini-label {color:#d4b688;}
.ana11-title {font-size:19px;font-weight:800;line-height:1.32;letter-spacing:-.3px;color:#322a22;margin-top:7px;}
.dark .ana11-title {color:#f0e7db;}
.ana11-context,.ana11-footnote {font-size:12px;line-height:1.55;color:#736b61;margin-top:7px;}
.dark .ana11-context,.dark .ana11-footnote {color:#b7ac9d;}
.ana11-body {font-size:14px;line-height:1.55;color:#51483d;margin-top:16px;}
.dark .ana11-body {color:#d2c8b8;}
.ana11-mini-label {font-size:11px;margin:1px 0 9px;}
.ana11-summary-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:9px 0 14px;}
.ana11-summary-grid>div {display:flex;flex-direction:column;gap:6px;border-radius:13px;padding:10px;
    background:#f8f5f0;border:1px solid rgba(166,138,100,.12);min-width:0;}
.dark .ana11-summary-grid>div {background:#24211d;border-color:rgba(197,168,128,.15);}
.ana11-summary-grid small {font-size:12px;color:#786f63;line-height:1.35;}
.dark .ana11-summary-grid small {color:#b9aa98;}
.ana11-summary-grid strong {font-size:16px;line-height:1.35;font-weight:800;color:#453726;overflow-wrap:anywhere;}
.dark .ana11-summary-grid strong {color:#f0ddbd;}
.ana11-line {font-size:13px;line-height:1.6;}
.ana11-line strong {font-weight:800;color:#806342;}
.dark .ana11-line strong {color:#d6b98c;}
.ana11-divider {height:1px;background:rgba(166,138,100,.19);margin:16px 0;}
.dark .ana11-divider {background:rgba(197,168,128,.21);}
.ana11-message {font-weight:600;font-size:14px;line-height:1.65;color:#494034;}
.dark .ana11-message {color:#ece0d0;}
.ana11-scope {font-size:13px;line-height:1.55;padding:10px 11px;border-radius:11px;
    color:#69543b;background:#f6f1e9;margin-top:12px;}
.dark .ana11-scope {color:#dbc49f;background:#2b261f;}
.ana11-scope[hidden] {display:none!important;}
.ana11-footnote {margin-top:13px;}

.ana11-mini-explain {display:block;font-size:11px;font-weight:500;color:#746e67;margin-top:3px;}
.dark .ana11-mini-explain {color:#b9aa98;}
/* Labels and totals must remain readable at 320px without sideways scroll. */
@media (max-width:350px) {
  .ana11-card {padding:17px 13px;}
  .ana11-summary-grid {gap:7px;}
  .ana11-summary-grid>div {padding:9px 7px;}
  .ana11-summary-grid strong {font-size:15px;}
}


/* Entrada única e tela exclusiva das Análises. */
.ana10-summary-open {display:block;width:100%;padding:0;margin:0;text-align:left;border:0;background:transparent;
    color:inherit;cursor:pointer;border-radius:13px;}
.ana10-summary-open:focus-visible {outline:2px solid #94744e;outline-offset:5px;}
.ana10-summary-open .ana10-summary-top,.ana10-summary-open .ana10-summary-foot {display:flex;}
.ana10-summary-open .ana10-summary-title,.ana10-summary-open .ana10-summary-sub {display:block;}
.ana10-summary-cta {display:inline-flex;align-items:center;gap:6px;justify-content:center;
    padding:9px 11px;min-height:37px;border:1px solid rgba(166,138,100,.36);border-radius:11px;
    color:#735734;background:rgba(255,255,255,.62);font-size:11px;font-weight:800;}
.dark .ana10-summary-cta {color:#e2cba9;background:rgba(197,168,128,.08);border-color:rgba(197,168,128,.28);}
.ana11-detail-heading {display:flex;align-items:center;gap:13px;margin-bottom:19px;}
.ana11-detail-heading h1 {font-size:20px;line-height:1.35;font-weight:800;color:#292724;margin-top:4px;}
.dark .ana11-detail-heading h1 {color:#f1eee9;}
.ana11-detail-selection {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
    gap:9px;font-size:12px;line-height:1.4;color:#776750;margin-bottom:16px;}
.dark .ana11-detail-selection {color:#d4b688;}


/* APK457 — apenas geometria das telas de acesso e cadastro no Android. */
html.cash4ds-native-android #view-biometric-signup {
    padding-top: 3rem !important;
}
html.cash4ds-native-android #login-access-panel #btn-acesso-continuar {
    margin-top: 0.65rem;
}
html.cash4ds-native-android #login-access-panel > p:last-child {
    margin-top: 0.35rem;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #view-login {
    padding-top: 3rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block {
    margin-top: 2rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block h1 {
    font-size: 3rem !important;
    line-height: 1 !important;
    margin-bottom: 0.5rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-brand-block p {
    font-size: 15px !important;
    line-height: 1.4 !important;
    max-height: none !important;
    margin: 0 !important;
    opacity: 1 !important;
    overflow: visible !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-access-panel {
    margin-top: auto !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #login-access-panel #btn-acesso-continuar {
    margin-top: 0 !important;
}

html.cash4ds-native-android body.cash4ds-keyboard-open #view-otp {
    padding-top: 1.35rem !important;
    padding-bottom: 0.5rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-brand-block {
    margin-top: 0.7rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-code-panel {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    justify-content: center !important;
    padding-top: 0.8rem !important;
    padding-bottom: 0.5rem !important;
    gap: 0.7rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #otp-confirm-panel {
    margin-top: 0 !important;
    flex-shrink: 0 !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #view-onboarding {
    padding-top: 1.4rem !important;
    padding-bottom: 0.5rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #view-onboarding > div:first-of-type {
    margin-top: 0.45rem !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #view-onboarding > div:nth-of-type(2) {
    min-height: 0 !important;
    flex: 1 1 auto !important;
    padding-top: 1rem !important;
    padding-bottom: 0.8rem !important;
    justify-content: center !important;
}
html.cash4ds-native-android body.cash4ds-keyboard-open #view-onboarding > div:last-of-type {
    position: relative !important;
    inset: auto !important;
    margin-top: 0 !important;
    padding: 0 0 0.2rem !important;
    flex-shrink: 0 !important;
}


/* Perfil — caixas de e-mail nunca ficam sob as barras do Android;
   em telas baixas/teclado aberto, apenas o conteúdo interno rola. */
#secondary-email-overlay > .c4-profile-dialog-shell,
#primary-email-overlay > .c4-profile-dialog-shell {
  max-height: min(92dvh, calc(100% - 12px));
  display: flex;
  flex-direction: column;
}
#secondary-email-overlay #secondary-email-body,
#primary-email-overlay #primary-email-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
#secondary-email-overlay .c4-profile-dialog-shell > div:first-child,
#primary-email-overlay .c4-profile-dialog-shell > div:first-child {
  flex-shrink: 0;
}

/* Janelas centrais do Perfil (suporte/exportação) dentro da área útil. */
.c4-perfil-safe-card {
  max-height: calc(100% - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
