/* CONTROLPRO V132 - Alertas, central de mensagens e ações de cliente
   Blocos originais 07-11 da V131. Ordem interna preservada. */

/* =====================================================================
   controlpro-v67-ui-receipt-alerts
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V67: correções visuais realmente aplicadas ao app, fora do template do relatório PDF. */
        #topCloudIcon, #notificationBellBtn { display:none !important; }
        #mainScreen .topbar-right { width:44px !important; min-width:44px !important; visibility:hidden !important; pointer-events:none !important; }

        /* Busca + adicionar cliente na mesma linha. */
        #pageListaClientes .cp-v66-search-add-row {
            width:100% !important; display:grid !important; grid-template-columns:minmax(0,1fr) 44px !important;
            gap:8px !important; align-items:center !important; margin:0 0 9px !important;
        }
        #pageListaClientes .cp-v66-search-add-row .search-container { width:auto !important; min-width:0 !important; margin:0 !important; }
        #pageListaClientes .cp-v66-search-add-row .search-container input { width:100% !important; height:44px !important; margin:0 !important; box-sizing:border-box !important; }
        #pageListaClientes #addClientBtn.cp-v66-add-client-search {
            position:static !important; inset:auto !important; width:44px !important; min-width:44px !important; height:44px !important;
            margin:0 !important; padding:0 !important; border-radius:14px !important; display:grid !important; place-items:center !important;
            box-shadow:0 5px 16px rgba(15,23,42,.10) !important;
        }

        /* Hoje: duas colunas, conteúdo centralizado e Central de renovação em largura total. */
        #pageHoje .cp-v64-kpis { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:9px !important; }
        #pageHoje .cp-v66-today-hero { text-align:center !important; padding:13px 15px !important; }
        #pageHoje .cp-v66-today-hero small, #pageHoje .cp-v66-today-hero h3 { width:100% !important; text-align:center !important; }
        #pageHoje .cp-v66-today-kpi {
            min-height:86px !important; display:flex !important; flex-direction:column !important; align-items:center !important;
            justify-content:center !important; text-align:center !important; gap:6px !important; padding:10px !important;
        }
        #pageHoje .cp-v66-today-kpi > span { display:flex !important; align-items:center !important; justify-content:center !important; gap:6px !important; width:100% !important; text-align:center !important; }
        #pageHoje .cp-v66-today-kpi > strong { display:block !important; width:100% !important; margin:0 !important; text-align:center !important; line-height:1.05 !important; }
        #pageHoje .cp-v67-kpi-wide { grid-column:1 / -1 !important; min-height:74px !important; }

        /* Alerta neon de comprovante pendente, sem depender do sino. */
        .cp-v67-neon-alert {
            border-color:#22e3a2 !important;
            box-shadow:0 0 0 1px rgba(34,227,162,.55),0 0 17px rgba(34,227,162,.38),0 7px 20px rgba(15,23,42,.07) !important;
            animation:cpV67NeonPulse 1.7s ease-in-out infinite !important;
        }
        .cp-v67-neon-alert::after { content:'NOVO COMPROVANTE'; display:block; margin-top:3px; font-size:8px; font-weight:900; letter-spacing:.06em; color:#059669; }
        #todayFilterBtnV66.cp-v67-neon-alert::after { content:''; display:none; }
        .cp-v67-receipt-pending { border-color:#22e3a2 !important; box-shadow:0 0 0 1px rgba(34,227,162,.42),0 0 16px rgba(34,227,162,.26) !important; }
        @keyframes cpV67NeonPulse { 0%,100%{filter:brightness(1)} 50%{filter:brightness(1.06)} }

        /* Painel do cliente: histórico de renovações e Suporte no mesmo padrão/tamanho dos outros cards. */
        #clientScreen .cp-v66-client-mini-actions { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:6px !important; margin:6px 0 0 !important; }
        #clientScreen .cp-v66-client-mini-card {
            min-width:0 !important; min-height:58px !important; padding:10px !important; border-radius:15px !important;
            border:1px solid var(--card-border) !important; background:var(--card-bg) !important; box-shadow:0 3px 10px rgba(0,0,0,.04) !important;
            grid-template-columns:28px minmax(0,1fr) 10px !important; gap:7px !important; align-items:center !important;
        }
        #clientScreen .cp-v66-client-mini-icon { width:28px !important; height:28px !important; border-radius:9px !important; font-size:12px !important; }
        #clientScreen .cp-v66-client-mini-card strong { font-size:11px !important; line-height:1.15 !important; }
        #clientScreen .cp-v66-client-mini-card small { font-size:9px !important; margin-top:2px !important; line-height:1.15 !important; }

        @media(max-width:420px){
            #pageListaClientes .cp-v66-search-add-row { grid-template-columns:minmax(0,1fr) 42px !important; gap:7px !important; }
            #pageListaClientes #addClientBtn.cp-v66-add-client-search { width:42px !important; min-width:42px !important; height:42px !important; }
            #pageListaClientes .cp-v66-search-add-row .search-container input { height:42px !important; }
            #pageHoje .cp-v66-today-kpi { min-height:82px !important; padding:9px 7px !important; }
        }


/* =====================================================================
   controlpro-v68-message-center-layout
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V68: espaçamento consistente, envelope de notificações, neon multicolorido e cards compactos. */
        #topCloudIcon { display:none !important; }
        #notificationBellBtn { display:flex !important; }
        #mainScreen .topbar-right { width:auto !important; min-width:40px !important; visibility:visible !important; pointer-events:auto !important; }
        .cp-message-icon-v68 {
            position:relative; width:38px; height:38px; min-width:38px; border-radius:13px; border:1px solid color-mix(in srgb,var(--card-border) 72%,transparent);
            background:color-mix(in srgb,var(--filter-btn-bg) 88%,var(--card-bg)); color:var(--text-main); display:grid; place-items:center;
            cursor:pointer; box-shadow:0 3px 11px rgba(15,23,42,.06); font-size:16px; transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
        }
        .cp-message-icon-v68:active { transform:scale(.93); }
        .cp-message-icon-v68.has-notification { background:var(--btn-primary-bg); color:#fff; animation:cpV68MessagePulse 1.65s ease-in-out infinite; }
        .cp-message-icon-v68 .badge { position:absolute; top:-5px; right:-5px; min-width:17px; height:17px; padding:0 4px; display:grid; place-items:center; border-radius:999px; background:#ef4444; color:#fff; font-size:9px; font-weight:900; border:2px solid var(--card-bg); line-height:1; }
        .cp-message-icon-v68 .badge.hidden { display:none !important; }
        @keyframes cpV68MessagePulse { 0%,100%{box-shadow:0 3px 11px rgba(15,23,42,.06),0 0 0 0 rgba(59,130,246,.36)} 50%{box-shadow:0 3px 11px rgba(15,23,42,.06),0 0 0 7px rgba(59,130,246,0)} }

        /* A busca começa com o mesmo respiro dos módulos/cards e mantém + na mesma linha. */
        #mainScreen #mainContentArea { padding-top:4px !important; }
        #pageListaClientes .cp-v66-search-add-row { margin-top:0 !important; margin-bottom:0 !important; gap:7px !important; }
        #pageListaClientes .cp-v66-search-add-row .search-container { padding:0 !important; margin:0 !important; }
        #pageListaClientes #filterBar { margin-top:0 !important; }

        /* Neon V68: várias cores pulsando nos dois pontos de atenção. */
        .cp-v67-neon-alert {
            animation:cpV68RainbowNeon 2.4s ease-in-out infinite !important;
            border-color:#44f0d1 !important;
        }
        @keyframes cpV68RainbowNeon {
            0%,100%{box-shadow:0 0 0 1px rgba(68,240,209,.72),0 0 18px rgba(68,240,209,.48),0 7px 20px rgba(15,23,42,.07);filter:brightness(1)}
            20%{box-shadow:0 0 0 1px rgba(59,130,246,.78),0 0 20px rgba(59,130,246,.48),0 7px 20px rgba(15,23,42,.07);filter:brightness(1.045)}
            40%{box-shadow:0 0 0 1px rgba(168,85,247,.8),0 0 21px rgba(168,85,247,.5),0 7px 20px rgba(15,23,42,.07);filter:brightness(1.075)}
            60%{box-shadow:0 0 0 1px rgba(236,72,153,.8),0 0 21px rgba(236,72,153,.48),0 7px 20px rgba(15,23,42,.07);filter:brightness(1.065)}
            80%{box-shadow:0 0 0 1px rgba(250,204,21,.78),0 0 20px rgba(250,204,21,.43),0 7px 20px rgba(15,23,42,.07);filter:brightness(1.035)}
        }

        /* V90: Próximos — borda arco-íris viva, sem pintar o fundo do botão.
           Recupera o caráter multicolorido da V76, mas preserva o pedido posterior
           de manter o efeito somente ao redor. Ciclo suave de aproximadamente 5 s. */
        #btnProximos.cp-v72-upcoming-neon {
            position: relative;
            z-index: 1;
            isolation: isolate;
            overflow: visible;
            background: var(--filter-btn-bg) !important;
            color: var(--text-main) !important;
            border: 1px solid transparent !important;
            box-shadow: none !important;
            filter: none !important;
            transform: none !important;
            text-shadow: none !important;
            animation: none !important;
        }
        #btnProximos.cp-v72-upcoming-neon::before {
            content:'';
            position:absolute;
            inset:-3px;
            border-radius:inherit;
            pointer-events:none;
            z-index:-2;
            background:linear-gradient(
                105deg,
                #00e5ff 0%,
                #2979ff 14%,
                #7c3aed 29%,
                #ff2d95 44%,
                #ff6b00 58%,
                #ffe600 72%,
                #00d084 86%,
                #00e5ff 100%
            );
            background-size:520% 520%;
            animation:
                cpV90UpcomingRainbowFlow 5s linear infinite,
                cpV90UpcomingRainbowPulse 5s ease-in-out infinite;
            will-change:background-position,box-shadow,opacity;
        }
        #btnProximos.cp-v72-upcoming-neon::after {
            content:'';
            position:absolute;
            inset:0;
            border-radius:inherit;
            pointer-events:none;
            z-index:-1;
            background:var(--filter-btn-bg);
        }
        #btnProximos.cp-v72-upcoming-neon.active-filter::after {
            background:var(--filter-active-bg);
        }
        @keyframes cpV90UpcomingRainbowFlow {
            0%{background-position:0% 50%}
            50%{background-position:100% 50%}
            100%{background-position:0% 50%}
        }
        @keyframes cpV90UpcomingRainbowPulse {
            0%,100%{
                opacity:.72;
                box-shadow:
                    0 0 6px rgba(0,229,255,.34),
                    0 0 12px rgba(41,121,255,.18);
            }
            25%{
                opacity:.94;
                box-shadow:
                    0 0 8px rgba(124,58,237,.42),
                    0 0 17px rgba(255,45,149,.22);
            }
            50%{
                opacity:1;
                box-shadow:
                    0 0 9px rgba(255,107,0,.43),
                    0 0 18px rgba(255,230,0,.22);
            }
            75%{
                opacity:.94;
                box-shadow:
                    0 0 8px rgba(0,208,132,.40),
                    0 0 17px rgba(0,229,255,.22);
            }
        }
        @media (prefers-reduced-motion: reduce) {
            #btnProximos.cp-v72-upcoming-neon::before { animation:none !important; }
        }

        /* V77: Pix automático seguro + conta de recebimento. */
        .cp-v77-pix-config {
            margin: 12px 0 4px;
            padding: 13px;
            border: 1px solid color-mix(in srgb,var(--card-border) 76%,transparent);
            border-radius: 17px;
            background: color-mix(in srgb,var(--filter-btn-bg) 74%,var(--card-bg));
            box-shadow: 0 5px 16px rgba(15,23,42,.05);
        }
        .cp-v77-pix-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
        .cp-v77-pix-head strong { display:flex; align-items:center; gap:7px; font-size:13px; }
        .cp-v77-pix-status {
            display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:5px 9px;
            border-radius:999px; font-size:10px; font-weight:800;
            background:#e5e7eb; color:#475569;
        }
        .cp-v77-pix-status.connected { background:#dcfce7; color:#166534; }
        .cp-v77-pix-status.pending { background:#fef3c7; color:#92400e; }
        .cp-v77-pix-status.error { background:#fee2e2; color:#991b1b; }
        .cp-v77-pix-note { margin:8px 0 0; font-size:10.5px; color:#7c8ba1; line-height:1.45; }
        .cp-v77-pix-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:10px; }
        .cp-v77-pix-actions button { width:100%; min-height:38px; padding:8px 10px; font-size:11px; }
        .cp-v77-security-note {
            display:flex; gap:8px; align-items:flex-start; margin-top:9px; padding:9px 10px;
            border-radius:13px; background:color-mix(in srgb,#0ea5e9 8%,var(--card-bg));
            border:1px solid color-mix(in srgb,#0ea5e9 18%,transparent); color:var(--text-main);
            font-size:10px; line-height:1.4;
        }
        .cp-v77-security-note i { margin-top:2px; color:#0ea5e9; }
        .cp-v77-pix-box { max-width:430px !important; }
        .cp-v77-pix-qr {
            width:min(250px,78vw); aspect-ratio:1; object-fit:contain; display:none; margin:10px auto;
            padding:8px; border-radius:20px; background:#fff; border:1px solid #e2e8f0;
            box-shadow:0 10px 28px rgba(15,23,42,.12);
        }
        .cp-v77-pix-code-wrap { display:none; margin-top:9px; }
        .cp-v77-pix-code {
            width:100%; min-height:84px; resize:none; border-radius:14px !important; font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
            word-break:break-all; margin:0 !important;
        }
        .cp-v77-pix-live-status {
            display:flex; align-items:center; gap:8px; padding:10px 11px; border-radius:14px;
            border:1px solid var(--card-border); background:var(--filter-btn-bg); margin:9px 0;
            font-size:11px; font-weight:700;
        }
        .cp-v77-pix-live-status .dot { width:8px; height:8px; border-radius:50%; background:#f59e0b; box-shadow:0 0 0 0 rgba(245,158,11,.3); animation:cpV77PayDot 2.2s ease-out infinite; }
        .cp-v77-pix-live-status.paid .dot { background:#10b981; animation:none; }
        .cp-v77-pix-live-status.failed .dot { background:#ef4444; animation:none; }
        @keyframes cpV77PayDot { 0%{box-shadow:0 0 0 0 rgba(245,158,11,.28)} 100%{box-shadow:0 0 0 8px rgba(245,158,11,0)} }
        .cp-v77-reauth-box { max-width:390px !important; }
        .cp-v77-receipt-picker {
            display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:46px;
            border:1px dashed color-mix(in srgb,var(--btn-primary-bg) 45%,var(--card-border));
            border-radius:14px; background:color-mix(in srgb,var(--btn-primary-bg) 6%,var(--card-bg));
            color:var(--text-main); font-size:12px; font-weight:750; cursor:pointer;
        }
        .cp-v77-receipt-picker input { position:absolute; width:1px !important; height:1px; opacity:0; pointer-events:none; }
        @media (max-width:480px) {
            .cp-v77-pix-actions { grid-template-columns:1fr; }
        }

        /* V79: provedores simultâneos e escolha do cliente. */
        .cp-v79-provider-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:10px; }
        .cp-v79-provider-card {
            padding:11px; border:1px solid var(--card-border); border-radius:15px;
            background:color-mix(in srgb,var(--filter-btn-bg) 78%,var(--card-bg)); min-width:0;
        }
        .cp-v79-provider-head { display:flex; align-items:center; justify-content:space-between; gap:7px; margin-bottom:7px; }
        .cp-v79-provider-head strong { display:flex; align-items:center; gap:6px; font-size:12px; min-width:0; }
        .cp-v79-provider-note { min-height:44px; font-size:10px; line-height:1.4; color:#7c8ba1; margin:0; word-break:break-word; }
        .cp-v79-provider-actions { display:grid; grid-template-columns:1fr; gap:6px; margin-top:9px; }
        .cp-v79-provider-actions button { width:100%; min-height:36px; padding:7px 8px; font-size:10.5px; }
        .cp-v79-provider-choice { margin:10px 0 2px; padding:10px; border:1px solid var(--card-border); border-radius:14px; background:var(--filter-btn-bg); }
        .cp-v79-provider-choice-title { display:block; font-size:11px; font-weight:800; margin-bottom:7px; }
        .cp-v79-provider-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
        .cp-v79-provider-choice-btn {
            min-height:43px; border:1px solid var(--card-border); border-radius:12px; background:var(--card-bg);
            color:var(--text-main); font-weight:800; font-size:11px; display:flex; align-items:center; justify-content:center; gap:6px;
        }
        .cp-v79-provider-choice-btn.selected { border-color:#10b981; box-shadow:0 0 0 2px color-mix(in srgb,#10b981 18%,transparent); background:color-mix(in srgb,#10b981 8%,var(--card-bg)); }
        .cp-v79-provider-choice-note { margin:7px 0 0; font-size:9.5px; line-height:1.35; color:#7c8ba1; }
        @media (max-width:480px) {
            .cp-v79-provider-grid { grid-template-columns:1fr; }
        }

        /* V84/V85: base visual dos provedores. */
        .cp-v79-provider-card {
            position:relative; overflow:hidden; padding:13px;
            box-shadow:0 8px 24px rgba(15,23,42,.055);
            transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
        }
        .cp-v79-provider-card::before {
            content:''; position:absolute; left:0; top:0; right:0; height:3px; opacity:.9;
        }
        .cp-v79-provider-card[data-provider="mercadopago"]::before { background:linear-gradient(90deg,#009ee3,#36bdf6); }
        .cp-v79-provider-card[data-provider="infinitepay"]::before { background:linear-gradient(90deg,#111827,#64748b); }
        .cp-v84-provider-brand { display:flex; align-items:center; gap:9px; min-width:0; }
        .cp-v84-provider-brand > div { min-width:0; }
        .cp-v84-provider-brand strong { display:block !important; font-size:12.5px !important; line-height:1.2; white-space:nowrap; }
        .cp-v84-provider-brand small { display:block; margin-top:2px; color:#94a3b8; font-size:9px; font-weight:700; line-height:1.2; }
        .cp-v84-provider-logo {
            width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:12px;
            font-size:16px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 5px 13px rgba(15,23,42,.09);
        }
        .cp-v84-provider-logo.mp { background:linear-gradient(145deg,#dff5ff,#bfeaff); color:#007eb5; }
        .cp-v84-provider-logo.ip { background:linear-gradient(145deg,#111827,#334155); color:#fff; }
        .cp-v79-provider-card .cp-v77-pix-status { flex:0 0 auto; }
        .cp-v79-provider-card .btn-action { border-radius:12px; }
        @media (max-width:380px) {
            .cp-v79-provider-head { align-items:flex-start; }
            .cp-v84-provider-brand small { display:none; }
            .cp-v77-pix-status { padding:5px 7px; }
        }

        /* V85: cartões financeiros com identidade visual clara e sem dependência de imagens externas. */
        .cp-v79-provider-grid { gap:12px; }
        .cp-v79-provider-card {
            border-radius:20px; padding:15px; background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg) 96%,white),var(--card-bg));
            box-shadow:0 12px 30px rgba(15,23,42,.075); isolation:isolate;
        }
        .cp-v79-provider-card[data-provider="mercadopago"] { border-color:color-mix(in srgb,#009ee3 26%,var(--card-border)); }
        .cp-v79-provider-card[data-provider="infinitepay"] { border-color:color-mix(in srgb,#111827 26%,var(--card-border)); }
        .cp-v79-provider-card::before { height:4px; }
        .cp-v85-brand-mark {
            width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;font-weight:950;
            letter-spacing:-.6px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 8px 18px rgba(15,23,42,.10);
        }
        .cp-v85-brand-mark.mp { background:linear-gradient(145deg,#00a8e8,#008bd2);color:#fff;font-size:11px; }
        .cp-v85-brand-mark.ip { background:linear-gradient(145deg,#0f172a,#111827);color:#fff;font-size:25px; }
        .cp-v85-brand-copy { min-width:0; }
        .cp-v85-brand-copy strong { font-size:13.5px !important;letter-spacing:-.15px; }
        .cp-v85-brand-copy small { font-size:9.5px !important;color:#7c8ba1; }
        .cp-v85-mini-logo { width:23px;height:23px;border-radius:8px;display:grid;place-items:center;font-size:8px;font-weight:950;flex:0 0 23px; }
        .cp-v85-mini-logo.mp { background:#009ee3;color:#fff; }
        .cp-v85-mini-logo.ip { background:#111827;color:#fff;font-size:16px; }
        .cp-v79-provider-card .btn-action { min-height:42px;border-radius:14px;font-weight:850; }
        .cp-v79-provider-card[data-provider="mercadopago"] .btn-action { background:linear-gradient(135deg,#009ee3,#007db8); }
        .cp-v79-provider-card[data-provider="infinitepay"] .btn-action { background:linear-gradient(135deg,#111827,#334155); }
        .cp-v79-provider-card .btn-cancel { border-radius:14px; }
        .cp-v77-pix-status.connected { box-shadow:0 0 0 1px color-mix(in srgb,#16a34a 12%,transparent); }

        /* V83: rota precisa da notificação + destaque da solicitação aberta. */
        .cp-v83-notification-target {
            outline:2px solid color-mix(in srgb,#22c55e 72%,transparent) !important;
            box-shadow:0 0 0 4px color-mix(in srgb,#22c55e 12%,transparent),0 12px 32px rgba(15,23,42,.12) !important;
            animation:cpV83TargetPulse 1.1s ease-in-out 2;
        }
        @keyframes cpV83TargetPulse {
            0%,100%{filter:brightness(1)}
            50%{filter:brightness(1.08)}
        }
        @media (prefers-reduced-motion: reduce) {
            .cp-v83-notification-target { animation:none !important; }
        }

        /* Cards do cliente menores, mas com leitura maior e melhor proporção. */
        #clientScreen .cp-v66-client-mini-actions { gap:7px !important; margin:7px 0 0 !important; }
        #clientScreen .cp-v66-client-mini-card { min-height:50px !important; padding:8px 9px !important; border-radius:14px !important; grid-template-columns:31px minmax(0,1fr) 11px !important; gap:8px !important; }
        #clientScreen .cp-v66-client-mini-icon { width:31px !important; height:31px !important; border-radius:10px !important; font-size:14px !important; }
        #clientScreen .cp-v66-client-mini-card strong { font-size:12.5px !important; line-height:1.12 !important; }
        #clientScreen .cp-v66-client-mini-card small { font-size:10px !important; margin-top:2px !important; line-height:1.15 !important; }

        /* Envelope no painel do cliente. */
        #clientScreen .client-message-icon-v68 { grid-column:1; justify-self:start; }
        #clientScreen .client-portal-topbar { grid-template-columns:1fr auto 1fr !important; gap:7px; }
        #clientScreen .client-portal-logout { grid-column:3; }

        /* Envelope no cabeçalho Admin sem apertar o título. */
        #adminScreen .admin-header { display:grid !important; grid-template-columns:auto minmax(0,1fr) auto !important; align-items:center !important; }
        #adminScreen .admin-title { text-align:center; min-width:0; }
        #adminScreen .cp-admin-header-actions-v68 { display:flex; align-items:center; gap:6px; justify-self:end; }
        #adminScreen .admin-message-icon-v68 { width:38px; height:38px; min-width:38px; border-radius:12px; }

        .cp-message-center-v68 .modal-title { display:flex; align-items:center; justify-content:center; gap:8px; }
        .cp-message-center-list-v68 { display:flex; flex-direction:column; gap:8px; max-height:52vh; overflow:auto; margin:11px 0 4px; }
        .cp-message-row-v68 { width:100%; border:1px solid color-mix(in srgb,var(--card-border) 72%,transparent); background:color-mix(in srgb,var(--filter-btn-bg) 52%,var(--card-bg)); border-radius:15px; padding:11px 12px; display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:9px; text-align:left; color:var(--text-main); }
        button.cp-message-row-v68 { cursor:pointer; }
        .cp-message-row-v68 .cp-msg-icon { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:color-mix(in srgb,var(--btn-primary-bg) 12%,var(--card-bg)); color:var(--btn-primary-bg); }
        .cp-message-row-v68 strong { display:block; font-size:12.5px; line-height:1.25; }
        .cp-message-row-v68 small { display:block; margin-top:3px; color:#64748b; font-size:10px; line-height:1.35; }
        .cp-message-row-v68 .cp-msg-count { min-width:25px; height:25px; padding:0 6px; border-radius:999px; display:grid; place-items:center; background:var(--btn-primary-bg); color:#fff; font-size:10px; font-weight:900; }
        .cp-message-empty-v68 { padding:22px 12px; text-align:center; color:#94a3b8; font-size:12px; }

        /* Long press da marca: feedback só para admin. */
        #userAreaHomeBtn, #userAreaHomeBtn * { user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
        #userAreaHomeBtn { touch-action:manipulation; }
        #userAreaHomeBtn.cp-v68-longpress-active { transform:scale(.985); filter:brightness(.96); }

        @media(max-width:420px){
            #mainScreen #mainContentArea { padding-top:4px !important; }
            .cp-message-icon-v68 { width:36px; height:36px; min-width:36px; border-radius:12px; }
            #clientScreen .client-portal-logout { padding:8px 10px; font-size:11px; }
            #adminScreen .admin-title { font-size:13px !important; }
            #adminScreen .admin-message-icon-v68, #adminScreen .refresh-btn { width:36px !important; height:36px !important; min-width:36px !important; }
        }


/* =====================================================================
   controlpro-v69-client-actions-today-kpi-ui
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V69: cards mais limpos e KPIs do Hoje com tipografia maior sem quebra. */
        #pageHoje .cp-v66-today-kpi > span {
            font-size:clamp(13px,3.45vw,15.5px) !important;
            font-weight:800 !important;
            white-space:nowrap !important;
            letter-spacing:-.018em !important;
            line-height:1.08 !important;
        }
        #pageHoje .cp-v66-today-kpi > span i {
            font-size:clamp(13px,3.4vw,15.5px) !important;
            flex:0 0 auto !important;
        }
        #pageHoje .cp-v66-today-kpi > strong {
            font-size:clamp(27px,7vw,33px) !important;
            font-weight:850 !important;
            letter-spacing:-.045em !important;
            white-space:nowrap !important;
        }
        #pageHoje .cp-v67-kpi-wide > span {
            font-size:clamp(14px,3.6vw,16px) !important;
        }
        #pageHoje .cp-v67-kpi-wide > strong {
            font-size:clamp(28px,7.2vw,34px) !important;
        }
        #clientListContainer .action-row {
            align-items:center !important;
        }
        #clientListContainer .btn-more-v64 {
            margin-left:auto !important;
        }
        .cp-v69-delete-action {
            background:color-mix(in srgb,#ef4444 7%,var(--card-bg)) !important;
        }
        @media(max-width:380px){
            #pageHoje .cp-v66-today-kpi > span { font-size:12.5px !important; gap:5px !important; }
            #pageHoje .cp-v66-today-kpi > strong { font-size:27px !important; }
        }


/* =====================================================================
   controlpro-v70-edit-visible-intl-whatsapp
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V70: Editar volta a ser uma ação principal visível; Excluir permanece em Mais ações. */
        #clientListContainer .action-row .btn-editar { flex:1 1 auto; }


/* =====================================================================
   cp-v71-block-message-style
   Extraído do index V129 na separação V131
   ===================================================================== */
.btn-bloqueio-v71 { background:linear-gradient(135deg,#111827,#374151); color:#fff; border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:9px 11px; font-weight:700; font-size:12px; display:inline-flex; align-items:center; justify-content:center; gap:6px; }
        .btn-bloqueio-v71:active { transform:scale(.98); }
        #pageMensagemBloqueioV71 textarea { min-height:132px; resize:vertical; }


