/* PELP-CAA — autenticação/conta Firebase (Fase 2) */
        /* ── Auth screen (z-index above login overlay) ── */
        .fb-auth-overlay {
            position:fixed; inset:0;
            background:linear-gradient(160deg,#0F1E33 0%,#061020 100%);
            z-index:3000; display:none; flex-direction:column;
            align-items:center; justify-content:flex-start;
            gap:0; padding:16px 0; overflow-y:auto;
        }
        /* Janela mais baixa que o cartão: o cartão NÃO encolhe (com overflow
           hidden, encolher cortava o fim — a nota da conta gratuita ficava
           ilegível, 14/10/2026) e a tela rola. margin:auto centraliza quando
           sobra espaço; justify-content:center esconderia o topo ao rolar. */
        .fb-auth-overlay > .fb-auth-card,
        .fb-auth-overlay > .fb-gate-sheet { flex-shrink:0; margin:auto 0; }
        .fb-auth-overlay.open { display:flex; }
        .fb-auth-card {
            background:#fff; border-radius:28px;
            width:min(400px,95vw); overflow:hidden;
            box-shadow:0 20px 60px rgba(0,0,0,.55);
        }
        .fb-auth-logo {
            background:linear-gradient(135deg,#1A2E4A 0%,#2E4D7B 100%);
            padding:28px 20px 22px; text-align:center;
        }
        .fb-auth-logo-icon { font-size:42px; }
        .fb-auth-logo-name {
            color:#fff; font-size:20px; font-weight:900;
            letter-spacing:.5px; margin-top:8px;
        }
        .fb-auth-logo-sub {
            color:rgba(255,255,255,.55); font-size:12px; margin-top:3px;
        }
        .fb-auth-tabs {
            display:flex; background:#F0F4F8;
        }
        .fb-auth-tab {
            flex:1; padding:12px; border:none; background:transparent;
            font-size:13px; font-weight:700; color:#78909C;
            cursor:pointer; border-bottom:3px solid transparent;
            transition:all .15s;
        }
        .fb-auth-tab.active {
            color:#1A2E4A; border-bottom-color:#1A2E4A;
            background:#fff;
        }
        .fb-auth-body { padding:22px 22px 28px; display:flex; flex-direction:column; gap:14px; }
        .fb-auth-field { display:flex; flex-direction:column; gap:5px; }
        .fb-auth-lbl {
            font-size:11px; font-weight:700; color:#546E7A;
            text-transform:uppercase; letter-spacing:.6px;
        }
        .fb-auth-in {
            padding:12px 14px; border-radius:12px;
            border:1.5px solid #CFD8DC; font-size:15px;
            background:#F7FAFC; color:#1A2E4A; outline:none;
            transition:border-color .15s;
        }
        .fb-auth-in:focus { border-color:#1A2E4A; background:#fff; }
        .fb-auth-btn {
            padding:14px; border-radius:14px; border:none;
            font-size:15px; font-weight:800; cursor:pointer;
            background:#1A2E4A; color:#fff; transition:opacity .15s;
        }
        .fb-auth-btn:active { opacity:.8; }
        .fb-auth-btn:disabled { opacity:.5; cursor:default; }
        .fb-auth-err {
            font-size:12px; color:#C62828; font-weight:600;
            background:#FFEBEE; border-radius:8px; padding:8px 12px;
            display:none;
        }
        .fb-auth-forgot { text-align:right; margin:-4px 0 4px; }
        .fb-auth-link {
            background:none; border:none; padding:2px 0; cursor:pointer;
            color:#1A2E4A; font-size:12.5px; font-weight:600; text-decoration:underline;
        }
        .fb-auth-link:active { opacity:.7; }
        .fb-auth-sep {
            display:flex; align-items:center; gap:10px; color:#B0BEC5; font-size:12px;
        }
        .fb-auth-sep::before,.fb-auth-sep::after {
            content:''; flex:1; height:1px; background:#E0E0E0;
        }
        .fb-auth-offline-btn {
            padding:12px; border-radius:12px; border:1.5px solid #90A4AE;
            font-size:13px; font-weight:700; cursor:pointer;
            background:transparent; color:#546E7A;
            transition:background .15s;
        }
        .fb-auth-offline-btn:hover { background:#F0F4F8; }
        .fb-auth-offline-note {
            font-size:11px; color:#B0BEC5; text-align:center; line-height:1.6;
        }

        /* ── Online / offline chip ── */
        .sync-chip {
            display:flex; align-items:center; gap:5px;
            padding:3px 9px; border-radius:12px;
            font-size:11px; font-weight:700;
            background:rgba(255,255,255,.12); color:rgba(255,255,255,.7);
            cursor:pointer; border:none; transition:background .15s;
            white-space:nowrap;
        }
        .sync-chip.synced    { color:#81D4A0; }
        .sync-chip.syncing   { color:#FFD54F; }
        .sync-chip.offline   { color:rgba(255,255,255,.45); }
        .sync-chip.error     { color:#EF9A9A; }
        .sync-dot {
            width:7px; height:7px; border-radius:50%; flex-shrink:0;
            background:currentColor;
        }
        @keyframes sync-spin {
            to { transform:rotate(360deg); }
        }
        .sync-chip.syncing .sync-dot {
            animation:sync-spin .9s linear infinite;
            border-radius:0; clip-path:polygon(50% 0,100% 100%,0 100%);
        }

        /* ── Sync/account bottom sheet ── */
        .fb-account-overlay {
            position:fixed; inset:0; background:rgba(0,0,0,.5);
            z-index:2800; display:none; align-items:flex-end; justify-content:center;
        }
        .fb-account-overlay.open { display:flex; }
        /* O painel cresce (plano, assinatura, diagnóstico…) e, ancorado no
           rodapé, passava da altura da tela: o TOPO — nome e e-mail da conta —
           ficava cortado acima da borda, sem como rolar até ele (visto em
           14/10/2026, no computador e no iPad). Altura máxima + rolagem interna. */
        .fb-account-sheet {
            background:#fff; border-radius:24px 24px 0 0;
            width:100%; max-width:480px;
            padding:20px 20px calc(36px + env(safe-area-inset-bottom, 0px));
            display:flex; flex-direction:column; gap:14px;
            max-height:92vh; max-height:92dvh;
            overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
        }
        /* Filhos não encolhem: num flex em coluna com altura máxima, eles se
           espremeriam em vez de o painel rolar. */
        .fb-account-sheet > * { flex-shrink:0; }
        .fb-account-name  { font-size:16px; font-weight:800; color:#1A2E4A;
                            display:flex; align-items:center; gap:7px; }
        .fb-account-edit  { border:none; background:none; cursor:pointer; padding:2px 4px;
                            font-size:13px; line-height:1; opacity:.55; border-radius:6px; }
        .fb-account-edit:hover, .fb-account-edit:focus-visible { opacity:1; background:#F0F4F8; }
        .fb-account-email {
            font-size:13px; color:#78909C; margin-top:-8px;
            display:flex; align-items:center; justify-content:center; gap:4px;
            flex-wrap:wrap; word-break:break-all;
        }
        .fb-account-row {
            display:flex; align-items:center; justify-content:space-between;
            padding:10px 0; border-bottom:1px solid #F0F4F8;
        }
        .fb-account-lbl { font-size:14px; color:#1A2E4A; font-weight:600; }
        .fb-account-val { font-size:13px; color:#78909C; }
        .fb-account-btn {
            padding:12px; border-radius:12px; border:none;
            font-size:14px; font-weight:700; cursor:pointer;
        }
        .fb-account-btn.logout { background:#FFEBEE; color:#C62828; }
        .fb-account-btn.close  { background:#ECEFF1; color:#546E7A; }
        /* Dica do convite na tela de entrada: é o caminho PRINCIPAL de quem foi
           convidado, então precisa ser lida — não pode ter o cinza-claro da
           nota de rodapé (1,9:1). #455A64 sobre branco dá ~7:1. */
        /* Nota do "Continuar sem conta": era cinza-claro de 11px (~1,9:1) e
           ninguém lia — justo a frase que diz que, sem conta, nada vai para a
           nuvem. #546E7A sobre branco dá ~6:1. */
        .fb-auth-semconta {
            margin-top:10px; color:#546E7A; font-size:12.5px; line-height:1.5; text-align:center;
        }
        .fb-auth-convite {
            margin:12px 0 4px; padding:10px 12px; border-radius:10px;
            background:#F1F5F9; color:#455A64; font-size:13px; line-height:1.5; text-align:center;
        }

        /* ── Portão de verificação de e-mail (contas novas) ── */
        .fb-gate-sheet {
            background:#fff; border-radius:24px; width:min(420px,92vw);
            padding:30px 26px 24px; text-align:center;
            box-shadow:0 20px 60px rgba(0,0,0,.55);
        }
        .fb-gate-icon { font-size:44px; line-height:1; }
        .fb-gate-sheet h2 {
            margin:12px 0 10px; font-size:21px; font-weight:800; color:#1A2E4A;
        }
        .fb-gate-sheet p {
            margin:0 0 12px; font-size:14px; line-height:1.55; color:#45586F;
        }
        .fb-gate-sheet strong { color:#1A2E4A; word-break:break-all; }
        .fb-gate-dica { font-size:13px !important; color:#64748B !important; }
        .fb-gate-btn {
            display:block; width:100%; margin-top:9px; padding:13px 14px;
            border:1.5px solid #CBD5E1; border-radius:12px; background:#fff;
            font-size:14.5px; font-weight:700; color:#1A2E4A; cursor:pointer;
        }
        .fb-gate-btn.principal { background:#1A2E4A; border-color:#1A2E4A; color:#fff; }
        .fb-gate-btn.sair { border:none; color:#64748B; font-weight:600; }
        .fb-gate-btn:active { opacity:.85; }
        .fb-gate-rodape {
            margin:16px 0 0 !important; padding-top:14px;
            border-top:1px solid #E6EBF2;
            font-size:12.5px !important; color:#64748B !important;
        }

        /* Sugestão de correção do domínio do e-mail */
        .fb-auth-sugestao {
            margin-top:6px; font-size:12.5px; color:#8F3419;
            background:#FFF4E5; border:1px solid #F0A868;
            border-radius:9px; padding:7px 10px; line-height:1.45;
        }
        .fb-auth-sugestao button {
            border:none; background:transparent; padding:0;
            font:inherit; font-weight:800; color:#8F3419;
            text-decoration:underline; cursor:pointer; word-break:break-all;
        }

        /* Campo de senha com o botão de ver */
        .fb-auth-senha { position:relative; display:flex; align-items:center; }
        .fb-auth-senha .fb-auth-in { flex:1; padding-right:46px; }
        .fb-auth-olho {
            position:absolute; right:6px; border:none; background:transparent;
            font-size:18px; line-height:1; padding:8px; cursor:pointer;
        }
        .fb-auth-olho:active { opacity:.6; }
        .fb-auth-dica { display:block; margin-top:6px; font-weight:600; line-height:1.45; }

/* Botão de reenvio em espera ("Enviando…", contagem): visivelmente inativo. */
.fb-gate-btn:disabled, .fb-account-btn:disabled { opacity:.6; cursor:default; }
.fb-gate-btn:not(:disabled):active { transform:scale(.98); }
