/* CONTROLPRO V132 - Renovação, pagamentos e painel do cliente
   Blocos originais 12-29 da V131. Ordem interna preservada. */

/* =====================================================================
   controlpro-v92-renewal-fullscreen-brand-ui
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V92 — RENOVAÇÃO/PAGAMENTOS EM TELA CHEIA + MARCAS REAIS
           Camada estritamente visual. IDs, listeners, callables e fluxo V81/V91
           permanecem inalterados.
           ===================================================================== */
        #renewalAutoConfigModal {
            inset:0 !important;
            padding:0 !important;
            align-items:stretch !important;
            justify-content:stretch !important;
            background:var(--bg-body) !important;
            backdrop-filter:none !important;
            -webkit-backdrop-filter:none !important;
        }
        #renewalAutoConfigModal .cp-v92-renewal-shell {
            width:100% !important;
            max-width:none !important;
            height:100dvh !important;
            min-height:100vh !important;
            max-height:none !important;
            margin:0 !important;
            padding:0 !important;
            border:0 !important;
            border-radius:0 !important;
            background:var(--bg-body) !important;
            box-shadow:none !important;
            overflow:hidden !important;
            display:flex !important;
            flex-direction:column !important;
        }
        #renewalAutoConfigModal .cp-v92-renewal-header {
            flex:0 0 auto;
            display:flex;
            align-items:center;
            gap:12px;
            padding:calc(12px + env(safe-area-inset-top)) 16px 12px;
            background:color-mix(in srgb,var(--card-bg) 94%,transparent);
            border-bottom:1px solid color-mix(in srgb,var(--card-border) 78%,transparent);
            box-shadow:0 4px 18px rgba(15,23,42,.055);
            backdrop-filter:blur(18px) saturate(150%);
            -webkit-backdrop-filter:blur(18px) saturate(150%);
            z-index:3;
        }
        #renewalAutoConfigModal .cp-v92-renewal-header-icon {
            width:44px;height:44px;flex:0 0 44px;border-radius:15px;
            display:grid;place-items:center;
            background:color-mix(in srgb,var(--btn-primary-bg) 12%,var(--card-bg));
            border:1px solid color-mix(in srgb,var(--btn-primary-bg) 18%,transparent);
            color:var(--btn-primary-bg);font-size:18px;
        }
        #renewalAutoConfigModal .cp-v92-renewal-header-copy { min-width:0; flex:1; }
        #renewalAutoConfigModal .cp-v92-renewal-header-copy h2 {
            margin:0;color:var(--text-main);font-size:19px;line-height:1.15;font-weight:820;letter-spacing:-.035em;
        }
        #renewalAutoConfigModal .cp-v92-renewal-header-copy p {
            margin:4px 0 0;color:#7c8ba1;font-size:10.5px;line-height:1.35;font-weight:560;
        }
        #renewalAutoConfigModal .cp-v92-renewal-scroll {
            flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
            padding:12px 12px 20px;
        }
        #renewalAutoConfigModal .cp-v92-renewal-content {
            width:min(100%,820px);margin:0 auto;display:flex;flex-direction:column;gap:11px;
        }
        #renewalAutoConfigModal .cp-v92-renewal-section {
            padding:14px;
            border:1px solid color-mix(in srgb,var(--card-border) 78%,transparent);
            border-radius:20px;
            background:linear-gradient(155deg,color-mix(in srgb,var(--card-bg) 99%,white 1%),color-mix(in srgb,var(--card-bg) 94%,var(--filter-btn-bg) 6%));
            box-shadow:0 8px 24px rgba(15,23,42,.06),inset 0 1px 0 rgba(255,255,255,.25);
        }
        #renewalAutoConfigModal .cp-v92-section-head {
            display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;
        }
        #renewalAutoConfigModal .cp-v92-section-title {
            display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-main);font-size:13.5px;font-weight:800;letter-spacing:-.018em;
        }
        #renewalAutoConfigModal .cp-v92-section-title i { color:var(--btn-primary-bg); }
        #renewalAutoConfigModal .cp-v92-section-note {
            margin:-3px 0 11px;color:#7c8ba1;font-size:10.5px;line-height:1.45;
        }
        #renewalAutoConfigModal .cp-v92-renewal-section .field-label {
            margin:0 0 6px;font-size:11px;font-weight:780;color:var(--text-main);
        }
        #renewalAutoConfigModal .cp-v92-renewal-section input,
        #renewalAutoConfigModal .cp-v92-renewal-section select,
        #renewalAutoConfigModal .cp-v92-renewal-section textarea {
            margin-bottom:0 !important;
        }
        #renewalAutoConfigModal .cp-v77-pix-config {
            margin:0 !important;padding:0 !important;border:0 !important;background:transparent !important;box-shadow:none !important;
        }
        #renewalAutoConfigModal .cp-v77-pix-head { margin:0 0 5px !important; }
        #renewalAutoConfigModal .cp-v77-pix-note { margin:0 0 11px !important;font-size:10.5px !important;line-height:1.45 !important; }
        #renewalAutoConfigModal .cp-v79-provider-grid {
            grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:0;
        }
        #renewalAutoConfigModal .cp-v79-provider-card {
            padding:14px;border-radius:18px;background:var(--card-bg);
            box-shadow:0 8px 22px rgba(15,23,42,.065);
        }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="mercadopago"] {
            border-color:color-mix(in srgb,#00b1ea 34%,var(--card-border));
            background:linear-gradient(155deg,color-mix(in srgb,#eaf9ff 34%,var(--card-bg)),var(--card-bg) 66%);
        }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="infinitepay"] {
            border-color:color-mix(in srgb,#00ee26 30%,var(--card-border));
            background:linear-gradient(155deg,color-mix(in srgb,#d3ff68 8%,var(--card-bg)),var(--card-bg) 74%);
        }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="mercadopago"]::before {
            background:linear-gradient(90deg,#00b1ea,#2abcff,#0a0080);
        }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="infinitepay"]::before {
            background:linear-gradient(90deg,#00ee26,#d3ff68,#0f172a);
        }
        #renewalAutoConfigModal .cp-v79-provider-head {
            align-items:center;margin-bottom:9px;
        }
        #renewalAutoConfigModal .cp-v92-provider-brand {
            display:flex;align-items:center;gap:10px;min-width:0;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo-shell {
            flex:0 0 auto;display:grid;place-items:center;background:#fff;
            border:1px solid rgba(15,23,42,.08);box-shadow:0 6px 16px rgba(15,23,42,.09);overflow:hidden;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo-shell.mp {
            width:54px;height:46px;border-radius:14px;padding:5px;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo-shell.ip {
            width:78px;height:46px;border-radius:14px;padding:7px 8px;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo {
            display:block;width:100%;height:100%;object-fit:contain;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo-fallback {
            display:none;width:100%;height:100%;place-items:center;font-weight:900;
        }
        #renewalAutoConfigModal .cp-v92-provider-logo-fallback.mp { color:#009ee3;font-size:11px; }
        #renewalAutoConfigModal .cp-v92-provider-logo-fallback.ip { color:#0f172a;font-size:13px; }
        #renewalAutoConfigModal .cp-v92-provider-copy { min-width:0; }
        #renewalAutoConfigModal .cp-v92-provider-copy strong {
            display:block !important;font-size:14px !important;line-height:1.15;font-weight:830 !important;letter-spacing:-.025em;white-space:nowrap;
        }
        #renewalAutoConfigModal .cp-v92-provider-copy small {
            display:block;margin-top:3px;color:#7c8ba1;font-size:9.5px;font-weight:650;line-height:1.25;
        }
        #renewalAutoConfigModal .cp-v79-provider-note {
            min-height:0;margin:0;font-size:10px;line-height:1.45;color:#7c8ba1;
        }
        #renewalAutoConfigModal .cp-v79-provider-actions { margin-top:11px;gap:7px; }
        #renewalAutoConfigModal .cp-v79-provider-actions button { min-height:40px;font-size:10.5px; }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="mercadopago"] .btn-action {
            background:#009ee3 !important;color:#fff !important;
        }
        #renewalAutoConfigModal .cp-v79-provider-card[data-provider="infinitepay"] .btn-action {
            background:#111827 !important;color:#fff !important;
        }
        #renewalAutoConfigModal .cp-v77-security-note {
            margin:10px 0 0;padding:9px 10px;border-radius:13px;font-size:9.5px;line-height:1.4;
        }
        #renewalAutoConfigModal .renewal-config-options { margin:0 0 8px; }
        #renewalAutoConfigModal .renewal-payment-grid { margin:0;gap:7px; }
        #renewalAutoConfigModal .renewal-payment-option {
            min-height:43px;padding:9px 11px;border-radius:13px;background:var(--input-bg);
        }
        #renewalAutoConfigModal .cp-v92-renewal-footer {
            flex:0 0 auto;display:grid;grid-template-columns:minmax(110px,.55fr) minmax(160px,1fr);gap:8px;
            padding:10px 12px calc(10px + env(safe-area-inset-bottom));
            background:color-mix(in srgb,var(--card-bg) 95%,transparent);
            border-top:1px solid color-mix(in srgb,var(--card-border) 78%,transparent);
            box-shadow:0 -5px 20px rgba(15,23,42,.055);
            backdrop-filter:blur(18px) saturate(150%);
            -webkit-backdrop-filter:blur(18px) saturate(150%);
            z-index:3;
        }
        #renewalAutoConfigModal .cp-v92-renewal-footer button {
            width:100%;min-height:44px;margin:0 !important;border-radius:14px !important;font-size:12px;font-weight:800;
        }
        @media (max-width:620px) {
            #renewalAutoConfigModal .cp-v79-provider-grid { grid-template-columns:1fr; }
            #renewalAutoConfigModal .cp-v92-renewal-scroll { padding:10px 10px 18px; }
            #renewalAutoConfigModal .cp-v92-renewal-section { padding:13px;border-radius:18px; }
            #renewalAutoConfigModal .cp-v92-renewal-header { padding-left:12px;padding-right:12px; }
        }
        @media (max-width:390px) {
            #renewalAutoConfigModal .cp-v92-provider-logo-shell.ip { width:70px; }
            #renewalAutoConfigModal .cp-v92-provider-copy strong { font-size:13px !important; }
            #renewalAutoConfigModal .cp-v92-provider-copy small { font-size:9px; }
            #renewalAutoConfigModal .cp-v77-pix-status { padding:5px 7px;font-size:9px; }
        }


/* =====================================================================
   controlpro-v93-client-panel-renewal-ui
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V93 — PAINEL DO CLIENTE / RENOVAÇÃO / FOTO
           Camada visual isolada. Não altera rotas V81/V91 nem integrações.
           ===================================================================== */
        #clientScreen .client-portal-topbar {
            grid-template-columns:auto minmax(0,1fr) auto !important;
            gap:8px !important;
        }
        #clientScreen #clientPortalLogoutBtn {
            grid-column:1 !important;
            justify-self:start !important;
            min-height:36px !important;
            padding:8px 12px !important;
            border-radius:12px !important;
        }
        #clientScreen .client-portal-brand { grid-column:2 !important; justify-self:center !important; }
        #clientScreen #clientMessageCenterBtnV68 {
            grid-column:3 !important;
            justify-self:end !important;
        }

        #clientScreen .cp-v93-client-support-row {
            grid-template-columns:minmax(0,1fr) !important;
            margin-top:6px !important;
        }
        #clientScreen #clientPortalSupportBtnV66.cp-v93-support-whatsapp {
            width:100% !important;
            background:#25D366 !important;
            border-color:#25D366 !important;
            color:#fff !important;
            box-shadow:0 6px 18px rgba(37,211,102,.20) !important;
        }
        #clientScreen #clientPortalSupportBtnV66.cp-v93-support-whatsapp .cp-v66-client-mini-icon {
            background:rgba(255,255,255,.18) !important;
            color:#fff !important;
        }
        #clientScreen #clientPortalSupportBtnV66.cp-v93-support-whatsapp small,
        #clientScreen #clientPortalSupportBtnV66.cp-v93-support-whatsapp strong,
        #clientScreen #clientPortalSupportBtnV66.cp-v93-support-whatsapp > i { color:#fff !important; }

        #clientScreen .cp-v93-client-actions {
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:7px !important;
            margin-top:8px !important;
        }
        #clientScreen .cp-v93-client-actions > button {
            min-height:43px !important;
            border-radius:14px !important;
            font-size:11.5px !important;
            line-height:1.2 !important;
        }
        #clientScreen #clientPortalRenewBtn.cp-v93-renew-btn {
            background:linear-gradient(135deg,#2563eb,#0ea5e9) !important;
            color:#fff !important;
            border:1px solid rgba(37,99,235,.14) !important;
            box-shadow:0 7px 18px rgba(37,99,235,.20) !important;
        }
        #clientScreen #clientPortalEditProfileBtnV64.cp-v93-edit-profile-btn {
            background:#3b82f6 !important;
            color:#fff !important;
            border-color:#3b82f6 !important;
            box-shadow:0 6px 16px rgba(59,130,246,.18) !important;
        }
        #clientScreen #clientPortalTimelineBtnV64 { grid-column:1 / -1 !important; }
        #clientScreen #clientPortalPushBtn.cp-v93-push-active {
            background:#10b981 !important;
            color:#fff !important;
            border-color:#10b981 !important;
            box-shadow:0 6px 17px rgba(16,185,129,.20) !important;
        }
        #clientScreen #clientPortalPushBtn.cp-v93-push-denied {
            border-color:#ef4444 !important;
            color:#ef4444 !important;
        }

        #clientRenewModal.cp-v93-client-renew-modal {
            padding:12px !important;
            background:rgba(8,15,28,.52) !important;
            backdrop-filter:blur(12px) saturate(130%) !important;
            -webkit-backdrop-filter:blur(12px) saturate(130%) !important;
        }
        #clientRenewModal .cp-v93-client-renew-box {
            width:min(520px,100%) !important;
            max-width:520px !important;
            max-height:94vh !important;
            padding:18px 16px 16px !important;
            border-radius:26px !important;
            border:1px solid color-mix(in srgb,var(--card-border) 68%,transparent) !important;
            background:linear-gradient(160deg,color-mix(in srgb,var(--card-bg) 99%,white 1%),color-mix(in srgb,var(--stat-card-bg) 38%,var(--card-bg))) !important;
            box-shadow:0 28px 72px rgba(2,8,23,.30),inset 0 1px 0 rgba(255,255,255,.26) !important;
        }
        #clientRenewModal .modal-title {
            margin-bottom:8px !important;
            border-left:0 !important;
            padding-left:0 !important;
            text-align:center !important;
            font-size:20px !important;
        }
        #clientRenewModal .client-renew-options {
            gap:7px !important;
            margin:10px 0 12px !important;
        }
        #clientRenewModal .client-renew-option {
            border-radius:16px !important;
            padding:12px 11px !important;
            box-shadow:0 4px 13px rgba(15,23,42,.05) !important;
        }
        #clientRenewModal .client-renew-option.selected {
            box-shadow:0 0 0 2px color-mix(in srgb,var(--btn-primary-bg) 22%,transparent),0 7px 18px rgba(15,23,42,.07) !important;
        }
        #clientRenewModal #clientRenewPaymentMethod {
            min-height:44px !important;
            margin-bottom:10px !important;
            border-radius:14px !important;
        }
        #clientRenewModal .cp-v79-provider-choice {
            padding:11px !important;
            border-radius:18px !important;
            border:1px solid var(--card-border) !important;
            background:color-mix(in srgb,var(--filter-btn-bg) 72%,var(--card-bg)) !important;
        }
        #clientRenewModal .cp-v79-provider-choice-title {
            display:block !important;
            margin-bottom:8px !important;
            font-size:11px !important;
            font-weight:800 !important;
            color:var(--text-main) !important;
        }
        #clientRenewModal .cp-v79-provider-choice-grid { gap:8px !important; }
        #clientRenewModal .cp-v93-client-provider-choice {
            min-height:58px !important;
            padding:8px 10px !important;
            border-radius:15px !important;
            display:flex !important;
            align-items:center !important;
            justify-content:flex-start !important;
            gap:8px !important;
            background:var(--card-bg) !important;
            border:1px solid var(--card-border) !important;
            color:var(--text-main) !important;
            overflow:hidden !important;
        }
        #clientRenewModal .cp-v93-client-provider-choice.selected {
            border-color:var(--btn-primary-bg) !important;
            box-shadow:0 0 0 2px color-mix(in srgb,var(--btn-primary-bg) 16%,transparent) !important;
        }
        #clientRenewModal .cp-v93-client-provider-logo-shell {
            flex:0 0 auto;
            height:38px;
            display:grid;
            place-items:center;
            background:#fff;
            border:1px solid rgba(15,23,42,.08);
            border-radius:11px;
            overflow:hidden;
            box-shadow:0 4px 10px rgba(15,23,42,.07);
        }
        #clientRenewModal .cp-v93-client-provider-logo-shell.mp { width:46px;padding:4px; }
        #clientRenewModal .cp-v93-client-provider-logo-shell.ip { width:68px;padding:6px; }
        #clientRenewModal .cp-v93-client-provider-logo { width:100%;height:100%;object-fit:contain;display:block; }
        #clientRenewModal .cp-v93-client-provider-fallback { display:none;width:100%;height:100%;place-items:center;font-weight:900;font-size:9px; }
        #clientRenewModal .cp-v93-client-provider-fallback.mp { color:#009ee3; }
        #clientRenewModal .cp-v93-client-provider-fallback.ip { color:#111827; }
        #clientRenewModal .cp-v93-client-provider-label {
            min-width:0;
            font-size:11.5px !important;
            font-weight:800 !important;
            text-align:left;
        }
        #clientRenewModal .cp-v79-provider-choice-note {
            margin:8px 2px 0 !important;
            font-size:9.5px !important;
            line-height:1.35 !important;
        }
        #clientRenewModal .client-renew-summary {
            border:1px solid var(--card-border) !important;
            background:color-mix(in srgb,var(--filter-btn-bg) 70%,var(--card-bg)) !important;
            border-radius:18px !important;
            padding:12px !important;
            gap:7px !important;
        }
        #clientRenewModal .modal-actions {
            position:sticky;
            bottom:-1px;
            z-index:2;
            margin-top:12px !important;
            padding-top:9px;
            background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--card-bg) 96%,transparent) 28%);
        }
        #clientRenewModal .modal-actions button { min-height:43px !important;border-radius:14px !important; }

        .client-photo-modal input[type="file"], .cp-v65-photo-input { max-width:100%; }
        @media(max-width:480px){
            #clientScreen .client-portal-topbar { padding-left:8px !important;padding-right:8px !important; }
            #clientScreen #clientPortalLogoutBtn { padding:7px 9px !important;font-size:11px !important; }
            #clientScreen .client-portal-brand { font-size:14px !important;gap:6px !important; }
            #clientRenewModal.cp-v93-client-renew-modal { padding:8px !important;align-items:flex-end !important; }
            #clientRenewModal .cp-v93-client-renew-box { width:100% !important;max-width:none !important;max-height:95vh !important;border-radius:26px 26px 18px 18px !important; }
        }


/* =====================================================================
   controlpro-v94-client-panel-refinement
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V94 — REFINO DO PAINEL DO CLIENTE
           Somente UI/UX + fallback local do lembrete V81. Rotas V81/V91 intactas.
           ===================================================================== */
        #clientScreen .client-portal-brand {
            min-width:0;
        }
        #clientScreen .cp-v94-brand-icon {
            width:27px;
            height:27px;
            flex:0 0 27px;
            border-radius:8px;
            object-fit:cover;
            display:block;
            background:var(--filter-btn-bg);
            border:1px solid color-mix(in srgb,var(--card-border) 78%,transparent);
            box-shadow:0 3px 10px rgba(15,23,42,.10);
        }
        #clientScreen .client-portal-avatar-camera { display:none !important; }

        #clientScreen .cp-v94-client-actions {
            display:grid !important;
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:8px !important;
            margin:8px 0 0 !important;
        }
        #clientScreen .cp-v94-client-actions > button {
            width:100% !important;
            min-width:0 !important;
            min-height:46px !important;
            margin:0 !important;
            padding:9px 9px !important;
            border-radius:14px !important;
            display:flex !important;
            align-items:center !important;
            justify-content:center !important;
            gap:7px !important;
            font-size:11.2px !important;
            line-height:1.15 !important;
            font-weight:800 !important;
            white-space:normal !important;
            text-align:center !important;
        }
        #clientScreen #clientPortalSupportBtnV66.cp-v94-support-whatsapp {
            background:#25D366 !important;
            border-color:#25D366 !important;
            color:#fff !important;
            box-shadow:0 7px 18px rgba(37,211,102,.22) !important;
        }
        #clientScreen #clientPortalSupportBtnV66.cp-v94-support-whatsapp i { color:#fff !important; font-size:16px !important; }
        #clientScreen #clientPortalRenewBtn.cp-v94-renew-btn {
            background:linear-gradient(135deg,#2563eb,#0ea5e9) !important;
            border-color:transparent !important;
            color:#fff !important;
            box-shadow:0 7px 18px rgba(37,99,235,.20) !important;
        }
        #clientScreen #clientPortalEditProfileBtnV64.cp-v94-edit-profile-btn {
            background:#3b82f6 !important;
            border-color:#3b82f6 !important;
            color:#fff !important;
            box-shadow:0 6px 16px rgba(59,130,246,.18) !important;
        }
        #clientScreen #clientPortalPushBtn.cp-v93-push-active,
        #clientScreen #clientPortalPushBtn.cp-v94-push-active {
            background:#10b981 !important;
            color:#fff !important;
            border-color:#10b981 !important;
            box-shadow:0 7px 18px rgba(16,185,129,.22) !important;
        }
        #clientScreen #clientPortalPushBtn.cp-v93-push-denied,
        #clientScreen #clientPortalPushBtn.cp-v94-push-denied {
            border-color:#ef4444 !important;
            color:#ef4444 !important;
        }

        /* Cartões das sugestões/opções de renovação com separação visual mais forte. */
        #clientRenewModal .client-renew-options {
            gap:10px !important;
        }
        #clientRenewModal .client-renew-option {
            background:var(--card-bg) !important;
            border:1px solid color-mix(in srgb,var(--card-border) 92%,#64748b 8%) !important;
            box-shadow:0 8px 22px rgba(15,23,42,.12),0 1px 2px rgba(15,23,42,.08) !important;
            transform:translateZ(0);
        }
        #clientRenewModal .client-renew-option:hover {
            box-shadow:0 10px 26px rgba(15,23,42,.15),0 2px 5px rgba(15,23,42,.08) !important;
        }
        #clientRenewModal .client-renew-option.selected {
            border-color:var(--btn-primary-bg) !important;
            box-shadow:0 0 0 2px color-mix(in srgb,var(--btn-primary-bg) 22%,transparent),0 10px 26px rgba(37,99,235,.16) !important;
        }
        #clientRenewalStatusSectionV64 .cp-v64-panel {
            border:1px solid color-mix(in srgb,var(--card-border) 88%,#64748b 12%) !important;
            box-shadow:0 8px 24px rgba(15,23,42,.10) !important;
        }
        #clientRenewalStatusListV64 .cp-v64-item {
            border:1px solid color-mix(in srgb,var(--card-border) 90%,#64748b 10%) !important;
            box-shadow:0 7px 20px rgba(15,23,42,.09) !important;
        }

        /* Central de Renovação da revenda: cards mais destacados e fáceis de separar visualmente. */
        #pageCentralRenovacoes .cp-v64-panel {
            border:1px solid color-mix(in srgb,var(--card-border) 82%,#64748b 18%) !important;
            box-shadow:0 12px 30px rgba(15,23,42,.10),0 2px 6px rgba(15,23,42,.05) !important;
        }
        #pageCentralRenovacoes #renewalRequestListV64 {
            gap:12px !important;
        }
        #pageCentralRenovacoes #renewalRequestListV64 .cp-v64-item {
            background:color-mix(in srgb,var(--card-bg) 97%,#f8fafc 3%) !important;
            border:1px solid color-mix(in srgb,var(--card-border) 76%,#64748b 24%) !important;
            box-shadow:0 8px 22px rgba(15,23,42,.12),0 2px 5px rgba(15,23,42,.06) !important;
            border-radius:18px !important;
        }
        #pageCentralRenovacoes #renewalRequestListV64 .cp-v64-item:hover {
            box-shadow:0 11px 28px rgba(15,23,42,.15),0 3px 8px rgba(15,23,42,.07) !important;
        }
        #clientRenewalStatusListV64 .cp-v94-payment-waiting-note {
            margin-top:8px;
            padding:9px 10px;
            border-radius:12px;
            background:color-mix(in srgb,#f59e0b 11%,var(--card-bg));
            border:1px solid color-mix(in srgb,#f59e0b 28%,var(--card-border));
            color:var(--text-main);
            font-size:10.5px;
            font-weight:700;
            line-height:1.4;
        }

        .cp-v94-payment-modal .modal-box {
            max-width:430px !important;
            border-radius:24px !important;
            padding:20px 17px 16px !important;
            box-shadow:0 28px 76px rgba(2,8,23,.32) !important;
        }
        .cp-v94-payment-success-icon {
            width:64px;height:64px;border-radius:21px;margin:0 auto 12px;
            display:grid;place-items:center;font-size:28px;color:#fff;
            background:linear-gradient(145deg,#10b981,#059669);
            box-shadow:0 12px 30px rgba(16,185,129,.26);
        }
        .cp-v94-payment-modal h3 { margin:0;text-align:center;font-size:20px;color:var(--text-main); }
        .cp-v94-payment-modal .cp-v94-payment-sub { margin:7px auto 12px;text-align:center;font-size:11.5px;line-height:1.45;color:#64748b;max-width:350px; }
        .cp-v94-payment-status {
            display:flex;align-items:center;justify-content:center;gap:7px;
            margin:0 auto 12px;padding:9px 11px;border-radius:13px;
            background:color-mix(in srgb,#f59e0b 12%,var(--card-bg));
            border:1px solid color-mix(in srgb,#f59e0b 30%,var(--card-border));
            color:#b45309;font-size:11px;font-weight:900;text-align:center;
        }
        .cp-v94-payment-guidance {
            padding:12px;border-radius:15px;background:color-mix(in srgb,var(--filter-btn-bg) 78%,var(--card-bg));
            border:1px solid var(--card-border);font-size:11px;line-height:1.5;color:var(--text-main);
        }
        .cp-v94-payment-guidance strong { color:var(--btn-primary-bg); }
        .cp-v94-payment-modal .modal-actions { margin-top:13px !important; }
        .cp-v94-payment-modal .modal-actions button { width:100% !important;min-height:44px !important;border-radius:14px !important; }

        @media(max-width:390px){
            #clientScreen .cp-v94-client-actions { gap:7px !important; }
            #clientScreen .cp-v94-client-actions > button { font-size:10.6px !important;padding:8px 6px !important; }
            #clientScreen .cp-v94-brand-icon { width:25px;height:25px;flex-basis:25px; }
        }


/* =====================================================================
   controlpro-v95-client-summary-fix
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V95 — RESUMO DO CLIENTE NO CARD PRINCIPAL
           Corrige o layout solicitado sem alterar pagamentos V81/V91.
           ===================================================================== */
        #clientScreen .cp-v95-reseller-photo {
            border-radius:50% !important;
            object-fit:cover !important;
            background:var(--filter-btn-bg) !important;
        }

        #clientScreen .cp-v95-client-summary {
            grid-template-columns:auto minmax(0,1fr) auto !important;
            grid-template-areas:
                "avatar identity status"
                "details details details" !important;
            align-items:center !important;
            gap:10px 11px !important;
            padding:13px !important;
            border-radius:20px !important;
            box-shadow:0 8px 24px rgba(15,23,42,.09) !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn { grid-area:avatar !important; }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity {
            grid-area:identity !important;
            align-self:center !important;
        }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity h2 {
            margin:0 !important;
            font-size:20px !important;
            line-height:1.15 !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalStatus { grid-area:status !important; }
        #clientScreen .cp-v95-hidden-code { display:none !important; }

        #clientScreen .cp-v95-client-details {
            grid-area:details !important;
            display:grid !important;
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:0 14px !important;
            margin-top:2px !important;
            padding-top:3px !important;
            border-top:1px solid color-mix(in srgb,var(--card-border) 88%,transparent) !important;
        }
        #clientScreen .cp-v95-client-detail {
            min-width:0 !important;
            padding:9px 1px 8px !important;
            background:transparent !important;
            border:0 !important;
            border-bottom:1px solid color-mix(in srgb,var(--card-border) 64%,transparent) !important;
            box-shadow:none !important;
        }
        #clientScreen .cp-v95-client-detail:nth-last-child(-n+2) {
            border-bottom:0 !important;
            padding-bottom:2px !important;
        }
        #clientScreen .cp-v95-client-detail span {
            display:block !important;
            margin:0 0 3px !important;
            color:#94a3b8 !important;
            font-size:9.5px !important;
            font-weight:800 !important;
            line-height:1.2 !important;
        }
        #clientScreen .cp-v95-client-detail strong {
            display:block !important;
            min-width:0 !important;
            color:var(--text-main) !important;
            font-size:12.5px !important;
            font-weight:800 !important;
            line-height:1.25 !important;
            overflow-wrap:anywhere !important;
        }

        /* Garante exatamente dois atalhos por linha. */
        #clientScreen .cp-v94-client-actions {
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        }
        #clientScreen .cp-v94-client-actions > button {
            grid-column:auto !important;
        }
        #clientScreen #clientPortalTimelineBtnV64 {
            grid-column:auto !important;
        }

        @media(max-width:390px){
            #clientScreen .cp-v95-client-summary { gap:9px 9px !important;padding:11px !important; }
            #clientScreen .cp-v95-client-details { gap:0 10px !important; }
            #clientScreen .cp-v95-client-detail strong { font-size:11.6px !important; }
            #clientScreen .cp-v95-client-detail span { font-size:9px !important; }
        }


/* =====================================================================
   controlpro-v97-client-panel-hard-apply
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V97: aplicação final e prioritária do layout solicitado no Painel do Cliente. */
        #clientScreen .client-portal-topbar{
            display:grid !important;grid-template-columns:auto minmax(0,1fr) auto !important;align-items:center !important;gap:10px !important;
        }
        #clientScreen #clientPortalLogoutBtn{grid-column:1 !important;justify-self:start !important;}
        #clientScreen .client-portal-brand{grid-column:2 !important;justify-self:center !important;min-width:0 !important;}
        #clientScreen #clientMessageCenterBtnV68{grid-column:3 !important;justify-self:end !important;}
        #clientScreen #clientPortalBrandIconV94{
            width:30px !important;height:30px !important;min-width:30px !important;border-radius:10px !important;object-fit:cover !important;
            border:1px solid color-mix(in srgb,var(--card-border) 78%,transparent) !important;background:var(--filter-btn-bg) !important;
        }
        #clientScreen .client-portal-kicker,
        #clientScreen .client-portal-avatar-camera,
        #clientScreen .client-portal-grid,
        #clientScreen .cp-v66-client-mini-actions,
        #clientScreen #clientPortalRenewHistoryBtnV66,
        #clientScreen #clientPortalRefreshBtn{display:none !important;}

        #clientScreen .cp-v95-client-summary{
            display:grid !important;grid-template-columns:auto minmax(0,1fr) auto !important;grid-template-areas:
                "avatar identity status"
                "details details details" !important;
            gap:12px 12px !important;align-items:center !important;padding:14px !important;margin-bottom:10px !important;
            border:1px solid color-mix(in srgb,var(--card-border) 86%,#64748b 14%) !important;
            box-shadow:0 10px 28px rgba(15,23,42,.10),0 2px 7px rgba(15,23,42,.06) !important;
            border-radius:20px !important;background:var(--card-bg) !important;
        }
        #clientScreen #clientPortalAvatarBtn{grid-area:avatar !important;}
        #clientScreen .cp-v95-client-summary-identity{grid-area:identity !important;min-width:0 !important;}
        #clientScreen #clientPortalStatus{grid-area:status !important;justify-self:end !important;}
        #clientScreen .cp-v95-client-details{
            grid-area:details !important;display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:0 14px !important;width:100% !important;margin:0 !important;padding-top:8px !important;
            border-top:1px solid color-mix(in srgb,var(--card-border) 78%,transparent) !important;
        }
        #clientScreen .cp-v95-client-detail{padding:9px 1px !important;border-bottom:1px solid color-mix(in srgb,var(--card-border) 62%,transparent) !important;}
        #clientScreen .cp-v95-client-detail:nth-last-child(-n+2){border-bottom:0 !important;}

        #clientScreen .cp-v94-client-actions{
            display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;margin-top:8px !important;
        }
        #clientScreen .cp-v94-client-actions>button{
            width:100% !important;min-width:0 !important;min-height:48px !important;grid-column:auto !important;margin:0 !important;
            border-radius:15px !important;padding:10px 8px !important;font-size:11.5px !important;font-weight:800 !important;
            display:flex !important;align-items:center !important;justify-content:center !important;gap:7px !important;text-align:center !important;
        }
        #clientScreen #clientPortalSupportBtnV66{order:1 !important;background:#25D366 !important;border-color:#25D366 !important;color:#fff !important;box-shadow:0 7px 18px rgba(37,211,102,.22) !important;}
        #clientScreen #clientPortalPushBtn{order:2 !important;}
        #clientScreen #clientPortalRenewBtn{order:3 !important;background:linear-gradient(135deg,#2563eb,#0ea5e9) !important;border-color:transparent !important;color:#fff !important;box-shadow:0 7px 18px rgba(37,99,235,.20) !important;}
        #clientScreen #clientPortalEditProfileBtnV64{order:4 !important;background:#3b82f6 !important;border-color:#3b82f6 !important;color:#fff !important;box-shadow:0 6px 16px rgba(59,130,246,.18) !important;}
        #clientScreen #clientPortalInstallBtn{order:5 !important;}
        #clientScreen #clientPortalTimelineBtnV64{order:6 !important;grid-column:auto !important;}
        #clientScreen #clientPortalPushBtn.cp-v93-push-active,
        #clientScreen #clientPortalPushBtn.cp-v94-push-active{background:#10b981 !important;border-color:#10b981 !important;color:#fff !important;box-shadow:0 7px 18px rgba(16,185,129,.22) !important;}
        #clientScreen #clientPortalPushBtn.cp-v93-push-denied,
        #clientScreen #clientPortalPushBtn.cp-v94-push-denied{border-color:#ef4444 !important;color:#ef4444 !important;}

        /* Renovação: cards mais legíveis e separados, inclusive em tema claro. */
        #clientRenewModal .client-renew-options{gap:10px !important;}
        #clientRenewModal .client-renew-option{
            background:var(--card-bg) !important;border:1px solid color-mix(in srgb,var(--card-border) 75%,#64748b 25%) !important;
            box-shadow:0 9px 24px rgba(15,23,42,.13),0 2px 5px rgba(15,23,42,.07) !important;border-radius:16px !important;
        }
        #clientRenewModal .client-renew-option.selected{
            border-color:var(--btn-primary-bg) !important;box-shadow:0 0 0 2px color-mix(in srgb,var(--btn-primary-bg) 24%,transparent),0 11px 28px rgba(37,99,235,.17) !important;
        }
        #clientRenewalStatusSectionV64 .cp-v64-item,
        #pageCentralRenovacoes .cp-v64-item{
            border:1px solid color-mix(in srgb,var(--card-border) 72%,#64748b 28%) !important;
            box-shadow:0 9px 24px rgba(15,23,42,.11),0 2px 5px rgba(15,23,42,.06) !important;
        }

        @media(max-width:390px){
            #clientScreen .cp-v95-client-summary{padding:12px !important;gap:10px 9px !important;}
            #clientScreen .cp-v95-client-details{gap:0 10px !important;}
            #clientScreen .cp-v94-client-actions{gap:7px !important;}
            #clientScreen .cp-v94-client-actions>button{min-height:46px !important;font-size:10.8px !important;}
        }


/* =====================================================================
   controlpro-v98-client-panel-3x2-large-photo
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V98 — PAINEL DO CLIENTE 3x2 + FOTO MAIOR
           Camada visual final. Não altera pagamentos V81, OTP V91 ou renovação.
           ===================================================================== */
        #clientScreen .cp-v95-client-summary {
            display:grid !important;
            grid-template-columns:96px minmax(0,1fr) auto !important;
            grid-template-areas:
                "avatar identity status"
                "avatar details details" !important;
            align-items:start !important;
            column-gap:13px !important;
            row-gap:7px !important;
            padding:15px !important;
            margin-bottom:10px !important;
            border-radius:22px !important;
            box-shadow:0 12px 30px rgba(15,23,42,.11),0 2px 8px rgba(15,23,42,.06) !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn {
            grid-area:avatar !important;
            width:96px !important;
            height:96px !important;
            min-width:96px !important;
            min-height:96px !important;
            border-radius:25px !important;
            align-self:start !important;
            box-shadow:0 9px 22px rgba(15,23,42,.13) !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn img {
            width:100% !important;
            height:100% !important;
            object-fit:cover !important;
        }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity {
            grid-area:identity !important;
            align-self:start !important;
            padding-top:1px !important;
            min-width:0 !important;
        }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity h2 {
            margin:0 !important;
            padding:0 !important;
            font-size:21px !important;
            line-height:1.08 !important;
            font-weight:850 !important;
            letter-spacing:-.02em !important;
            white-space:normal !important;
            overflow-wrap:anywhere !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalStatus {
            grid-area:status !important;
            align-self:start !important;
            justify-self:end !important;
            margin-top:0 !important;
        }
        #clientScreen .cp-v95-client-details {
            grid-area:details !important;
            display:grid !important;
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:0 12px !important;
            width:100% !important;
            margin:0 !important;
            padding:2px 0 0 !important;
            border-top:0 !important;
        }
        #clientScreen .cp-v95-client-detail {
            padding:6px 0 7px !important;
            border-bottom:1px solid color-mix(in srgb,var(--card-border) 62%,transparent) !important;
        }
        #clientScreen .cp-v95-client-detail span {
            font-size:9px !important;
            margin-bottom:2px !important;
        }
        #clientScreen .cp-v95-client-detail strong {
            font-size:11.8px !important;
            line-height:1.18 !important;
        }
        #clientScreen .cp-v95-client-detail:nth-last-child(-n+2) {
            border-bottom:0 !important;
        }

        /* Exatamente três atalhos em cada linha: 3 + 3. */
        #clientScreen .cp-v94-client-actions {
            display:grid !important;
            grid-template-columns:repeat(3,minmax(0,1fr)) !important;
            gap:8px !important;
            margin-top:9px !important;
            width:100% !important;
        }
        #clientScreen .cp-v94-client-actions > button,
        #clientScreen #clientPortalTimelineBtnV64 {
            grid-column:auto !important;
            width:100% !important;
            min-width:0 !important;
            min-height:68px !important;
            margin:0 !important;
            padding:8px 5px !important;
            border-radius:16px !important;
            font-size:10px !important;
            line-height:1.12 !important;
            font-weight:800 !important;
            white-space:normal !important;
            text-align:center !important;
            display:flex !important;
            flex-direction:column !important;
            align-items:center !important;
            justify-content:center !important;
            gap:6px !important;
        }
        #clientScreen .cp-v94-client-actions > button > i {
            margin:0 !important;
            font-size:16px !important;
            line-height:1 !important;
        }
        #clientScreen #clientPortalPushBtn .cp-push-activating {
            display:flex !important;
            flex-direction:column !important;
            align-items:center !important;
            gap:3px !important;
        }

        /* Topbar: foto real da revenda mais legível, sem alterar a função do envelope/sair. */
        #clientScreen #clientPortalBrandIconV94 {
            width:36px !important;
            height:36px !important;
            min-width:36px !important;
            border-radius:50% !important;
            object-fit:cover !important;
            box-shadow:0 4px 12px rgba(15,23,42,.10) !important;
        }
        #clientScreen .client-portal-brand { gap:8px !important; }

        @media(max-width:390px) {
            #clientScreen .cp-v95-client-summary {
                grid-template-columns:86px minmax(0,1fr) auto !important;
                column-gap:10px !important;
                padding:12px !important;
            }
            #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn {
                width:86px !important;
                height:86px !important;
                min-width:86px !important;
                min-height:86px !important;
                border-radius:22px !important;
            }
            #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity h2 { font-size:18px !important; }
            #clientScreen .cp-v95-client-details { gap:0 9px !important; }
            #clientScreen .cp-v95-client-detail strong { font-size:10.8px !important; }
            #clientScreen .cp-v95-client-detail span { font-size:8.4px !important; }
            #clientScreen .cp-v94-client-actions { gap:6px !important; }
            #clientScreen .cp-v94-client-actions > button,
            #clientScreen #clientPortalTimelineBtnV64 {
                min-height:66px !important;
                padding:7px 4px !important;
                font-size:9.2px !important;
                border-radius:14px !important;
            }
            #clientScreen .cp-v94-client-actions > button > i { font-size:15px !important; }
        }


/* =====================================================================
   controlpro-v99-client-info-3x2-horizontal
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V99: seis informações em duas linhas horizontais de três, ao lado da foto. */
        #clientScreen .cp-v95-client-summary {
            grid-template-columns:88px minmax(0,1fr) auto !important;
            column-gap:10px !important;
            row-gap:5px !important;
            padding:13px !important;
        }
        #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn {
            width:88px !important;
            height:88px !important;
            min-width:88px !important;
            min-height:88px !important;
            border-radius:23px !important;
        }
        #clientScreen .cp-v95-client-details {
            grid-template-columns:repeat(3,minmax(0,1fr)) !important;
            gap:0 7px !important;
            align-items:start !important;
            width:100% !important;
        }
        #clientScreen .cp-v95-client-detail {
            min-width:0 !important;
            padding:6px 0 7px !important;
            border-bottom:0 !important;
        }
        #clientScreen .cp-v95-client-detail:nth-child(-n+3) {
            border-bottom:1px solid color-mix(in srgb,var(--card-border) 62%,transparent) !important;
        }
        #clientScreen .cp-v95-client-detail span {
            display:block !important;
            min-width:0 !important;
            margin:0 0 2px !important;
            font-size:8.2px !important;
            line-height:1.12 !important;
            white-space:normal !important;
        }
        #clientScreen .cp-v95-client-detail strong {
            display:block !important;
            min-width:0 !important;
            font-size:10.5px !important;
            line-height:1.16 !important;
            letter-spacing:-.015em !important;
            white-space:nowrap !important;
            overflow:visible !important;
            overflow-wrap:normal !important;
        }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity h2 {
            font-size:20px !important;
        }
        @media(max-width:390px) {
            #clientScreen .cp-v95-client-summary {
                grid-template-columns:76px minmax(0,1fr) auto !important;
                column-gap:8px !important;
                padding:11px !important;
            }
            #clientScreen .cp-v95-client-summary #clientPortalAvatarBtn {
                width:76px !important;
                height:76px !important;
                min-width:76px !important;
                min-height:76px !important;
                border-radius:20px !important;
            }
            #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity h2 {
                font-size:17px !important;
            }
            #clientScreen .cp-v95-client-details { gap:0 5px !important; }
            #clientScreen .cp-v95-client-detail span { font-size:7.4px !important; }
            #clientScreen .cp-v95-client-detail strong { font-size:9.25px !important; letter-spacing:-.025em !important; }
        }


/* =====================================================================
   controlpro-v100-client-info-tight-top
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V100: aproxima as seis informações do nome sem alterar a grade 3x2. */
        #clientScreen .cp-v95-client-summary {
            row-gap:0 !important;
        }
        #clientScreen .cp-v95-client-summary .cp-v95-client-summary-identity {
            padding-top:0 !important;
        }
        #clientScreen .cp-v95-client-details {
            margin-top:-6px !important;
            padding-top:0 !important;
        }
        #clientScreen .cp-v95-client-detail {
            padding:3px 0 4px !important;
        }
        #clientScreen .cp-v95-client-detail span {
            margin-bottom:1px !important;
        }
        @media(max-width:390px) {
            #clientScreen .cp-v95-client-details {
                margin-top:-5px !important;
            }
            #clientScreen .cp-v95-client-detail {
                padding:2px 0 3px !important;
            }
        }


/* =====================================================================
   controlpro-v101-client-info-autofit-reseller-photo
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V101: tipografia 3x2 cresce até o maior tamanho que cabe em uma linha. */
        #clientScreen .cp-v95-client-detail span,
        #clientScreen .cp-v95-client-detail strong {
            white-space:nowrap !important;
            overflow:hidden !important;
            text-overflow:clip !important;
            min-width:0 !important;
            max-width:100% !important;
        }
        #clientScreen #clientPortalBrandIconV94 {
            background:var(--filter-btn-bg) !important;
            object-fit:cover !important;
        }
        #clientScreen #clientPortalBrandIconV94.cp-v101-brand-loaded {
            box-shadow:0 0 0 2px color-mix(in srgb,var(--btn-primary-bg) 20%,transparent),0 4px 12px rgba(15,23,42,.12) !important;
        }


/* =====================================================================
   controlpro-v104-client-info-app-card
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V104: resumo principal mais compacto/padrão app + card complementar de largura total. */
        #clientScreen .cp-v102-client-identity-only {
            grid-template-columns:104px minmax(0,1fr) auto !important;
            min-height:142px !important;
            padding:13px 14px !important;
            column-gap:12px !important;
            align-items:start !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn {
            width:104px !important;height:104px !important;min-width:104px !important;min-height:104px !important;
            border-radius:25px !important;margin-top:1px !important;
        }
        #clientScreen .cp-v103-client-primary h2 {
            margin:0 0 5px !important;
            font-size:21px !important;
            line-height:1.06 !important;
            letter-spacing:-.02em !important;
        }
        #clientScreen .cp-v103-primary-status-lines {
            gap:0 !important;
            margin-top:0 !important;
            max-width:100% !important;
        }
        #clientScreen .cp-v103-primary-line {
            grid-template-columns:minmax(0,1fr) auto !important;
            gap:7px !important;
            min-height:25px !important;
            padding:3px 0 !important;
            border-bottom:1px solid color-mix(in srgb,var(--card-border) 58%,transparent) !important;
        }
        #clientScreen .cp-v103-primary-line span {
            font-size:9.6px !important;
            line-height:1.08 !important;
            font-weight:750 !important;
            color:color-mix(in srgb,var(--text-secondary,#94a3b8) 94%,transparent) !important;
            letter-spacing:-.005em !important;
        }
        #clientScreen .cp-v103-primary-line strong {
            font-size:11.7px !important;
            line-height:1.08 !important;
            font-weight:850 !important;
            letter-spacing:-.012em !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus {
            font-size:12.5px !important;
            line-height:1 !important;
            min-height:31px !important;
            padding:8px 11px !important;
            border-radius:999px !important;
            font-weight:900 !important;
            display:inline-flex !important;
            align-items:center !important;
            justify-content:center !important;
            margin-top:0 !important;
            box-shadow:0 4px 12px rgba(15,23,42,.06) !important;
        }

        /* ID, plano e telefone em um card grande, no mesmo padrão visual do card principal. */
        #clientScreen .cp-v103-secondary-details-card {
            width:100% !important;
            margin:13px 0 0 !important;
            padding:12px 14px !important;
            border-radius:20px !important;
            border:1px solid color-mix(in srgb,var(--card-border) 88%,#64748b 12%) !important;
            background:var(--card-bg) !important;
            box-shadow:0 9px 25px rgba(15,23,42,.09),0 2px 6px rgba(15,23,42,.05) !important;
            box-sizing:border-box !important;
        }
        #clientScreen .cp-v103-secondary-details {
            width:100% !important;
            display:grid !important;
            grid-template-columns:repeat(3,minmax(0,1fr)) !important;
            gap:0 !important;
            margin:0 !important;
            padding:0 !important;
            border:0 !important;
        }
        #clientScreen .cp-v103-secondary-details .cp-v95-client-detail {
            min-width:0 !important;
            min-height:58px !important;
            padding:7px 11px !important;
            display:flex !important;
            flex-direction:column !important;
            justify-content:center !important;
            border:0 !important;
            background:transparent !important;
            box-shadow:none !important;
        }
        #clientScreen .cp-v103-secondary-details .cp-v95-client-detail:not(:last-child) {
            border-right:1px solid color-mix(in srgb,var(--card-border) 66%,transparent) !important;
        }
        #clientScreen .cp-v103-secondary-details .cp-v95-client-detail span {
            margin:0 0 5px !important;
            font-size:10px !important;
            line-height:1.08 !important;
            font-weight:800 !important;
            color:#94a3b8 !important;
            white-space:nowrap !important;
            overflow:hidden !important;
            text-overflow:ellipsis !important;
        }
        #clientScreen .cp-v103-secondary-details .cp-v95-client-detail strong {
            font-size:13.4px !important;
            line-height:1.12 !important;
            font-weight:900 !important;
            color:var(--text-main) !important;
            white-space:nowrap !important;
            overflow:hidden !important;
            text-overflow:ellipsis !important;
            letter-spacing:-.012em !important;
        }

        /* A foto da revenda no topbar ganha presença sem alterar a altura do topo. */
        #clientScreen #clientPortalBrandIconV94 {
            width:32px !important;height:32px !important;min-width:32px !important;
            border-radius:50% !important;object-fit:cover !important;
            box-shadow:0 4px 12px rgba(15,23,42,.10) !important;
        }

        @media(max-width:390px){
            #clientScreen .cp-v102-client-identity-only {
                grid-template-columns:88px minmax(0,1fr) auto !important;
                min-height:128px !important;padding:11px !important;column-gap:9px !important;
            }
            #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn {
                width:88px !important;height:88px !important;min-width:88px !important;min-height:88px !important;border-radius:21px !important;
            }
            #clientScreen .cp-v103-client-primary h2 { font-size:18.5px !important;margin-bottom:4px !important; }
            #clientScreen .cp-v103-primary-line { min-height:22px !important;padding:2px 0 !important;gap:4px !important; }
            #clientScreen .cp-v103-primary-line span { font-size:8.7px !important; }
            #clientScreen .cp-v103-primary-line strong { font-size:10.6px !important; }
            #clientScreen .cp-v102-client-identity-only #clientPortalStatus { font-size:11px !important;min-height:28px !important;padding:7px 9px !important; }
            #clientScreen .cp-v103-secondary-details-card { padding:9px 8px !important;border-radius:18px !important; }
            #clientScreen .cp-v103-secondary-details .cp-v95-client-detail { min-height:54px !important;padding:6px 6px !important; }
            #clientScreen .cp-v103-secondary-details .cp-v95-client-detail span { font-size:8.8px !important;margin-bottom:4px !important; }
            #clientScreen .cp-v103-secondary-details .cp-v95-client-detail strong { font-size:11.1px !important; }
        }


/* =====================================================================
   controlpro-v105-client-info-nested-card-clean-note
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V105: resumo principal em card interno 3 colunas; nota WhatsApp removida visualmente; card complementar sobe. */
        #clientScreen .cp-v105-hidden-reseller-note { display:none !important; margin:0 !important; padding:0 !important; height:0 !important; }
        #clientScreen .cp-v102-client-identity-only {
            grid-template-columns:104px minmax(0,1fr) auto !important;
            grid-template-rows:auto auto !important;
            align-items:start !important;
            row-gap:10px !important;
            min-height:0 !important;
            padding:13px 14px !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn {
            width:100px !important; height:100px !important; min-width:100px !important; min-height:100px !important;
            border-radius:24px !important; margin-top:1px !important;
        }
        #clientScreen .cp-v103-client-primary { align-self:center !important; }
        #clientScreen .cp-v103-client-primary h2 { margin:0 !important; font-size:22px !important; line-height:1.08 !important; }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus { align-self:start !important; margin-top:1px !important; }
        #clientScreen .cp-v105-primary-info-card {
            grid-column:1 / -1 !important;
            display:grid !important;
            grid-template-columns:repeat(3,minmax(0,1fr)) !important;
            gap:0 !important;
            width:100% !important;
            margin:0 !important;
            padding:10px 9px !important;
            border-radius:16px !important;
            border:1px solid color-mix(in srgb,var(--card-border) 88%,#64748b 12%) !important;
            background:color-mix(in srgb,var(--card-bg) 94%,var(--filter-btn-bg) 6%) !important;
            box-shadow:0 6px 18px rgba(15,23,42,.07),0 1px 4px rgba(15,23,42,.04) !important;
            box-sizing:border-box !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
            display:flex !important; flex-direction:column !important; align-items:flex-start !important; justify-content:center !important;
            min-width:0 !important; min-height:50px !important; gap:5px !important; padding:6px 10px !important;
            border-bottom:0 !important; background:transparent !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line:not(:last-child) {
            border-right:1px solid color-mix(in srgb,var(--card-border) 66%,transparent) !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line span {
            font-size:9.5px !important; line-height:1.08 !important; font-weight:800 !important; color:#94a3b8 !important;
            white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; width:100% !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line strong {
            font-size:13px !important; line-height:1.1 !important; font-weight:900 !important; color:var(--text-main) !important;
            white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; max-width:100% !important;
        }
        #clientScreen .cp-v103-secondary-details-card { margin:8px 0 0 !important; }
        @media(max-width:390px){
            #clientScreen .cp-v102-client-identity-only { grid-template-columns:90px minmax(0,1fr) auto !important; padding:11px !important; column-gap:9px !important; row-gap:8px !important; }
            #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn { width:88px !important;height:88px !important;min-width:88px !important;min-height:88px !important;border-radius:21px !important; }
            #clientScreen .cp-v103-client-primary h2 { font-size:19px !important; }
            #clientScreen .cp-v105-primary-info-card { padding:8px 5px !important;border-radius:15px !important; }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line { min-height:46px !important;padding:5px 6px !important;gap:4px !important; }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line span { font-size:8.4px !important; }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line strong { font-size:11.2px !important; }
            #clientScreen .cp-v103-secondary-details-card { margin-top:7px !important; }
        }


/* =====================================================================
   controlpro-v106-primary-info-card-inner-fit
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V106: encaixa o resumo de vencimento no espaço interno à direita da foto. */
        #clientScreen .cp-v102-client-identity-only {
            grid-template-columns:100px minmax(0,1fr) auto !important;
            grid-template-rows:auto auto !important;
            column-gap:12px !important;
            row-gap:6px !important;
            align-items:start !important;
            padding:13px 14px !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn {
            grid-column:1 !important;
            grid-row:1 / 3 !important;
            align-self:start !important;
            width:100px !important;
            height:100px !important;
            min-width:100px !important;
            min-height:100px !important;
        }
        #clientScreen .cp-v103-client-primary {
            grid-column:2 !important;
            grid-row:1 !important;
            align-self:center !important;
            min-width:0 !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus {
            grid-column:3 !important;
            grid-row:1 !important;
            align-self:start !important;
        }
        #clientScreen .cp-v105-primary-info-card {
            grid-column:2 / 4 !important;
            grid-row:2 !important;
            align-self:start !important;
            width:100% !important;
            margin:0 !important;
            padding:6px 6px !important;
            border-radius:14px !important;
            box-shadow:0 4px 12px rgba(15,23,42,.055),0 1px 3px rgba(15,23,42,.035) !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
            min-height:40px !important;
            padding:4px 7px !important;
            gap:3px !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line span {
            font-size:9px !important;
            line-height:1.05 !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line strong {
            font-size:12px !important;
            line-height:1.08 !important;
        }
        @media(max-width:390px){
            #clientScreen .cp-v102-client-identity-only {
                grid-template-columns:84px minmax(0,1fr) auto !important;
                column-gap:8px !important;
                row-gap:5px !important;
                padding:11px !important;
            }
            #clientScreen .cp-v102-client-identity-only #clientPortalAvatarBtn {
                width:84px !important;
                height:84px !important;
                min-width:84px !important;
                min-height:84px !important;
                border-radius:20px !important;
            }
            #clientScreen .cp-v105-primary-info-card {
                padding:5px 4px !important;
                border-radius:13px !important;
            }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
                min-height:37px !important;
                padding:3px 4px !important;
                gap:3px !important;
            }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line span { font-size:8px !important; }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line strong { font-size:10.6px !important; }
        }


/* =====================================================================
   controlpro-v107-primary-card-up-active-rect
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V107: aproxima o resumo do nome e reforça visualmente o status Ativo. */
        #clientScreen .cp-v102-client-identity-only {
            row-gap:0 !important;
        }
        #clientScreen .cp-v105-primary-info-card {
            margin-top:-22px !important;
            padding:8px 7px !important;
            border-radius:15px !important;
            box-shadow:0 5px 15px rgba(15,23,42,.07),0 1px 3px rgba(15,23,42,.04) !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
            min-height:43px !important;
            padding:5px 7px !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
            min-width:62px !important;
            min-height:30px !important;
            display:inline-flex !important;
            align-items:center !important;
            justify-content:center !important;
            padding:6px 12px !important;
            border-radius:10px !important;
            background:linear-gradient(180deg,#22c55e 0%,#16a34a 100%) !important;
            color:#ffffff !important;
            border:1px solid rgba(21,128,61,.72) !important;
            box-shadow:0 5px 12px rgba(22,163,74,.24),inset 0 1px 0 rgba(255,255,255,.18) !important;
            font-size:12.5px !important;
            font-weight:900 !important;
            line-height:1 !important;
            letter-spacing:.01em !important;
        }
        @media(max-width:390px){
            #clientScreen .cp-v105-primary-info-card {
                margin-top:-18px !important;
                padding:7px 5px !important;
                border-radius:14px !important;
            }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
                min-height:40px !important;
                padding:4px 5px !important;
            }
            #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
                min-width:58px !important;
                min-height:28px !important;
                padding:5px 10px !important;
                border-radius:9px !important;
                font-size:11.5px !important;
            }
        }


/* =====================================================================
   controlpro-v108-primary-card-down-status-fit
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V108: desce o resumo para alinhar melhor com a borda inferior da foto e mantém o status livre, sem sobreposição. */
        #clientScreen .cp-v102-client-identity-only {
            row-gap:4px !important;
        }
        #clientScreen .cp-v105-primary-info-card {
            margin-top:0 !important;
            padding:8px 7px 9px !important;
            align-self:start !important;
            position:relative !important;
            z-index:1 !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
            min-height:44px !important;
            padding:5px 7px !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
            align-self:start !important;
            justify-self:end !important;
            margin:0 1px 0 6px !important;
            position:relative !important;
            z-index:3 !important;
            transform:translateY(-1px) !important;
            min-width:62px !important;
            min-height:29px !important;
            padding:6px 11px !important;
        }
        @media(max-width:390px){
            #clientScreen .cp-v102-client-identity-only {
                row-gap:3px !important;
            }
            #clientScreen .cp-v105-primary-info-card {
                margin-top:0 !important;
                padding:6px 5px 7px !important;
            }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
                min-height:39px !important;
                padding:4px 5px !important;
            }
            #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
                margin-left:5px !important;
                min-width:56px !important;
                min-height:27px !important;
                padding:5px 9px !important;
                transform:translateY(-1px) !important;
            }
        }


/* =====================================================================
   controlpro-v109-primary-card-grow-status-up
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V109: amplia o resumo para preencher a altura ao lado da foto, aproxima do nome e sobe/reduz o status Ativo. */
        #clientScreen .cp-v102-client-identity-only {
            row-gap:0 !important;
        }
        #clientScreen .cp-v105-primary-info-card {
            margin-top:-3px !important;
            padding:9px 7px 10px !important;
            align-self:start !important;
            min-height:73px !important;
            box-sizing:border-box !important;
        }
        #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
            min-height:54px !important;
            padding:6px 7px !important;
            justify-content:center !important;
        }
        #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
            min-width:52px !important;
            min-height:24px !important;
            padding:4px 8px !important;
            border-radius:8px !important;
            font-size:10.5px !important;
            line-height:1 !important;
            margin:0 0 0 5px !important;
            transform:translateY(-7px) !important;
            align-self:start !important;
            justify-self:end !important;
            z-index:4 !important;
        }
        @media(max-width:390px){
            #clientScreen .cp-v105-primary-info-card {
                margin-top:-2px !important;
                padding:7px 5px 8px !important;
                min-height:60px !important;
            }
            #clientScreen .cp-v105-primary-info-card .cp-v103-primary-line {
                min-height:45px !important;
                padding:5px 5px !important;
            }
            #clientScreen .cp-v102-client-identity-only #clientPortalStatus.active {
                min-width:49px !important;
                min-height:23px !important;
                padding:4px 7px !important;
                border-radius:8px !important;
                font-size:10px !important;
                transform:translateY(-6px) !important;
                margin-left:4px !important;
            }
        }


/* =====================================================================
   controlpro-v110-client-photo-frame
   Extraído do index V129 na separação V131
   ===================================================================== */
/* V110: a foto real do cliente permanece dentro da moldura do card, sem engolir a borda. */
        #clientListContainer .cp-client-card-avatar-v50 {
            box-sizing: border-box !important;
            padding: 5px !important;
            background: color-mix(in srgb, var(--card-bg) 96%, white 4%) !important;
            border: 2px solid color-mix(in srgb, var(--text-main) 84%, var(--card-border)) !important;
            border-radius: 19px !important;
            object-fit: cover !important;
            object-position: center !important;
            box-shadow:
                0 8px 20px rgba(15,23,42,.12),
                inset 0 0 0 1px color-mix(in srgb, white 46%, transparent) !important;
        }
        #clientListContainer .cp-client-card-avatar-v50.is-default {
            padding: 6px !important;
            object-fit: contain !important;
        }
        @media (max-width:390px) {
            #clientListContainer .cp-client-card-avatar-v50 {
                padding: 4px !important;
                border-radius: 17px !important;
            }
            #clientListContainer .cp-client-card-avatar-v50.is-default { padding: 5px !important; }
        }


/* =====================================================================
   controlpro-v118-renewal-cta-safe-viewport
   Extraído do index V129 na separação V131
   ===================================================================== */
/* =====================================================================
           CONTROLPRO V118 — CTA DA RENOVAÇÃO SEMPRE ACIMA DA BARRA DO NAVEGADOR
           Camada somente visual. Fluxos V81/V91, providers e listeners intactos.
           ===================================================================== */
        #clientRenewModal.cp-v93-client-renew-modal {
            box-sizing:border-box !important;
            height:100dvh !important;
            min-height:100dvh !important;
            max-height:100dvh !important;
            padding-top:max(8px, env(safe-area-inset-top)) !important;
            padding-right:8px !important;
            padding-bottom:max(12px, calc(env(safe-area-inset-bottom) + 8px)) !important;
            padding-left:8px !important;
            overflow:hidden !important;
        }

        #clientRenewModal .cp-v93-client-renew-box {
            box-sizing:border-box !important;
            width:min(520px,100%) !important;
            max-height:calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
            overflow-y:auto !important;
            overscroll-behavior:contain !important;
            -webkit-overflow-scrolling:touch !important;
            scroll-padding-bottom:96px !important;
        }

        #clientRenewModal .modal-actions {
            position:sticky !important;
            bottom:0 !important;
            z-index:25 !important;
            margin:12px -16px -16px !important;
            padding:10px 16px calc(10px + env(safe-area-inset-bottom)) !important;
            border-top:1px solid color-mix(in srgb,var(--card-border) 82%,transparent) !important;
            background:color-mix(in srgb,var(--card-bg) 98%,transparent) !important;
            box-shadow:0 -8px 24px rgba(15,23,42,.10) !important;
            backdrop-filter:blur(16px) saturate(145%) !important;
            -webkit-backdrop-filter:blur(16px) saturate(145%) !important;
        }

        #clientRenewModal .modal-actions button {
            min-height:46px !important;
        }

        @supports (height: 100svh) {
            #clientRenewModal.cp-v93-client-renew-modal {
                height:100svh !important;
                min-height:100svh !important;
                max-height:100svh !important;
            }
            #clientRenewModal .cp-v93-client-renew-box {
                max-height:calc(100svh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
            }
        }

        @media (max-width:480px) {
            #clientRenewModal .cp-v93-client-renew-box {
                border-radius:26px 26px 16px 16px !important;
            }
        }


/* =====================================================================
   controlpro-v125-ios-refined-visual
   Extraído do index V129 na separação V131
   ===================================================================== */
