        /* ── Ticket System ── */
        .tkt-status { display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:0.74rem;font-weight:700; }
        .tkt-status-pendente { background:rgba(239,68,68,0.15);color:#ef4444; }
        .tkt-status-processando { background:rgba(245,158,11,0.15);color:#f59e0b; }
        .tkt-status-resolvido { background:rgba(16,185,129,0.15);color:#10b981; }
        .tkt-action-btn { background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--muted);padding:4px 8px;font-size:0.76rem;cursor:pointer;transition:all 0.15s;white-space:nowrap; }
        .tkt-action-btn:hover { border-color:var(--primary);color:var(--primary); }
        .tkt-action-btn.sent { border-color:var(--success);color:var(--success);opacity:0.7;cursor:default; }
        .tkt-action-btn.tkt-consulta-empty { background:rgba(148,163,184,0.08);border-color:rgba(148,163,184,0.28);color:#94a3b8; }
        .tkt-action-btn.tkt-consulta-pendente { background:rgba(239,68,68,0.15);border-color:rgba(239,68,68,0.35);color:#ef4444; }
        .tkt-action-btn.tkt-consulta-processando { background:rgba(245,158,11,0.15);border-color:rgba(245,158,11,0.35);color:#f59e0b; }
        .tkt-action-btn.tkt-consulta-resolvido { background:rgba(16,185,129,0.15);border-color:rgba(16,185,129,0.35);color:#10b981; }
        .tkt-action-btn.tkt-consulta-empty:hover,
        .tkt-action-btn.tkt-consulta-pendente:hover,
        .tkt-action-btn.tkt-consulta-processando:hover,
        .tkt-action-btn.tkt-consulta-resolvido:hover { filter:brightness(1.03); }
        .tkt-modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px; }
        .tkt-modal-overlay.hidden { display:none; }
        .tkt-modal { background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:580px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden; }
        .tkt-modal-header { display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-alt); }
        .tkt-modal-titlebar { display:flex;align-items:center;gap:8px;flex:1;min-width:0; }
        .tkt-modal-header h3 { margin:0;font-size:0.92rem;font-weight:700;color:#fff; }
        .tkt-modal-close { background:none;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:4px 8px; }
        .tkt-modal-close:hover { color:#fff; }
        .tkt-modal-body { flex:1;overflow-y:auto;padding:16px 18px;min-height:200px; }
        .tkt-modal-footer { display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border);align-items:flex-end; }
        .tkt-chat-input { flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:10px 14px;font-size:0.86rem;font-family:inherit;resize:none;outline:none; }
        .tkt-chat-input:focus { border-color:var(--primary); }
        .tkt-send-btn { background:var(--primary);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:0.84rem;font-weight:700;cursor:pointer;white-space:nowrap; }
        .tkt-send-btn:hover { background:var(--primary-strong); }
        .tkt-chat-messages { display:flex;flex-direction:column;gap:8px; }
        .tkt-chat-empty { text-align:center;color:var(--muted);font-size:0.84rem;padding:30px 0; }
        .tkt-msg { max-width:85%;padding:10px 14px;border-radius:14px;font-size:0.84rem;line-height:1.45; }
        .tkt-msg-mine { align-self:flex-end;background:rgba(59,130,246,0.18);border:1px solid rgba(59,130,246,0.25);border-bottom-right-radius:4px; }
        .tkt-msg-other { align-self:flex-start;background:var(--surface-alt);border:1px solid var(--border);border-bottom-left-radius:4px; }
        .tkt-msg-deleted { opacity:0.72; filter:saturate(0.7); }
        .tkt-msg-author { font-size:0.72rem;font-weight:700;color:var(--accent);margin-bottom:3px; }
        .tkt-msg-text { color:var(--text);white-space:pre-wrap;word-break:break-word; }
        .tkt-msg-meta { font-size:0.68rem;color:var(--muted);margin-top:4px;display:flex;gap:8px;align-items:center; }
        .tkt-msg-edit-btn { background:none;border:none;color:var(--muted);font-size:0.68rem;cursor:pointer;padding:0; }
        .tkt-msg-edit-btn:hover { color:var(--primary);text-decoration:underline; }
        .tkt-status-toggle { display:flex;gap:4px; }
        .tkt-status-btn { background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:0.9rem;cursor:pointer;opacity:0.4;transition:all 0.15s; }
        .tkt-status-btn:hover { opacity:0.8; }
        .tkt-status-btn.active { opacity:1;border-width:2px; }
        .tkt-status-btn[data-status="pendente"].active { border-color:#ef4444; }
        .tkt-status-btn[data-status="processando"].active { border-color:#f59e0b; }
        .tkt-status-btn[data-status="resolvido"].active { border-color:#10b981; }
        .tkt-decision-toggle { display:flex;align-items:center;gap:2px; }
        .tkt-decision-toggle.hidden { display:none; }
        .tkt-decision-btn { appearance:none;background:none;border:none;padding:0 2px;font-size:1.02rem;line-height:1;cursor:pointer;color:var(--muted);opacity:0.45;transition:transform 0.15s,opacity 0.15s,filter 0.15s,text-shadow 0.15s,color 0.15s;text-shadow:0 1px 0 rgba(255,255,255,0.08),0 -1px 0 rgba(0,0,0,0.5); }
        .tkt-decision-btn:hover { opacity:0.82;transform:translateY(-1px); }
        .tkt-decision-btn.active { opacity:1; }
        .tkt-decision-display { display:inline-flex;align-items:center;justify-content:center;font-size:0.95rem;line-height:1;text-shadow:0 1px 0 rgba(255,255,255,0.08),0 -1px 0 rgba(0,0,0,0.5); }
        .tkt-decision-money,
        .tkt-decision-btn[data-decision="money"].active { color:#22c55e;filter:drop-shadow(0 0 6px rgba(34,197,94,0.45));text-shadow:0 0 10px rgba(34,197,94,0.45),0 1px 0 rgba(255,255,255,0.12),0 -1px 0 rgba(0,0,0,0.55); }
        .tkt-decision-follow,
        .tkt-decision-btn[data-decision="follow"].active { color:#38bdf8;filter:drop-shadow(0 0 6px rgba(56,189,248,0.45));text-shadow:0 0 10px rgba(56,189,248,0.45),0 1px 0 rgba(255,255,255,0.12),0 -1px 0 rgba(0,0,0,0.55); }
        .tkt-decision-blocked,
        .tkt-decision-btn[data-decision="blocked"].active { color:#f87171;filter:none;text-shadow:0 1px 0 rgba(255,255,255,0.1),0 -1px 0 rgba(0,0,0,0.55); }
        .tkt-consulta-cell { display:inline-flex;align-items:center;gap:6px; }
        .tkt-status-cell { display:inline-flex;align-items:center;gap:6px; }
        .tkt-section-card { border:1px solid var(--border); border-radius:14px; background:rgba(15,23,42,0.12); padding:14px; display:grid; gap:12px; }
        .tkt-section-header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
        .tkt-section-header h4 { margin:0; font-size:0.86rem; color:#fff; }
        .tkt-section-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
        .tkt-secondary-btn { background:var(--surface); border:1px solid var(--border); border-radius:10px; color:var(--text); padding:8px 12px; font-size:0.78rem; font-weight:700; cursor:pointer; }
        .tkt-secondary-btn:hover { border-color:var(--primary); color:#fff; }
        .tkt-secondary-btn.hidden { display:none !important; }
        .tkt-ticket-meta { display:flex; flex-wrap:wrap; gap:8px; }
        .tkt-ticket-meta .v2-tag { background:rgba(59,130,246,0.08); }
        .tkt-modal-footer { padding-top:14px; }
        .tkt-footer-main { display:flex; gap:8px; align-items:flex-end; width:100%; }
        .tkt-footer-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
        .tkt-attachments-list { display:grid; gap:10px; }
        .tkt-attachment-item { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; border:1px solid var(--border); border-radius:12px; padding:12px; background:rgba(15,23,42,0.18); }
        .tkt-attachment-main { min-width:0; display:grid; gap:4px; }
        .tkt-attachment-name { font-size:0.86rem; color:#fff; font-weight:700; word-break:break-word; }
        .tkt-attachment-original { font-size:0.72rem; color:var(--muted); }
        .tkt-attachment-meta { font-size:0.72rem; color:var(--muted); display:flex; flex-wrap:wrap; gap:8px; }
        .tkt-attachment-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
        .tkt-attachment-link { color:var(--primary); text-decoration:none; font-size:0.76rem; font-weight:700; }
        .tkt-attachment-link:hover { text-decoration:underline; }
        .tkt-attachment-delete { border:1px solid rgba(248,113,113,0.35); background:rgba(248,113,113,0.10); color:#fecaca; border-radius:8px; padding:6px 10px; font-size:0.72rem; font-weight:700; cursor:pointer; }
        .tkt-attachment-delete:hover { filter:brightness(1.06); }
        .tkt-attachment-drafts { display:grid; gap:8px; }
        .tkt-attachment-draft-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; align-items:center; }
        .tkt-attachment-draft-file { font-size:0.78rem; color:var(--text); word-break:break-word; }
        .tkt-attachment-name-input { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:10px; color:var(--text); padding:9px 12px; font-size:0.82rem; }
        .tkt-attachment-name-input:focus { border-color:var(--primary); outline:none; }
        .tkt-attachment-muted { font-size:0.74rem; color:var(--muted); }
        .consulta-overview-overlay { position:fixed; inset:0; z-index:10010; background:rgba(0,0,0,0.76); display:flex; align-items:center; justify-content:center; padding:18px; }
        .consulta-overview-overlay.hidden { display:none; }
        .consulta-overview { width:min(1320px, 100%); max-height:92vh; background:var(--surface); border:1px solid var(--border); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; }
        .consulta-overview-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 20px; border-bottom:1px solid var(--border); background:var(--surface-alt); }
        .consulta-overview-header h3 { margin:0; font-size:1rem; color:#fff; }
        .consulta-overview-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
        .consulta-overview-header-actions { display:flex; gap:8px; align-items:center; }
        .consulta-overview-close { background:none; border:none; color:var(--muted); cursor:pointer; font-size:1.3rem; }
        .consulta-overview-close:hover { color:#fff; }
        .consulta-overview-body { padding:18px 20px; overflow:auto; }
        .consulta-overview-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(340px,0.9fr); gap:16px; align-items:start; }
        .consulta-overview-main, .consulta-overview-side { display:grid; gap:14px; }
        .consulta-overview-chat { max-height:360px; overflow:auto; }
        .consulta-overview-composer { display:grid; gap:10px; }
        .consulta-overview-statusbar { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
        .overview-field-header { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
        .overview-field-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
        .overview-copy-btn, .overview-edit-btn { border:1px solid var(--border); background:var(--surface); color:var(--muted); border-radius:8px; padding:4px 8px; font-size:0.70rem; font-weight:700; cursor:pointer; }
        .overview-copy-btn:hover, .overview-edit-btn:hover { color:#fff; border-color:var(--primary); }
        .overview-copy-btn.is-copied { color:var(--success); border-color:rgba(16,185,129,0.4); }
        .overview-sim-grid { display:grid; gap:12px; }
        .overview-sim-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; }
        .overview-sim-card { border:1px solid var(--border); border-radius:12px; padding:12px; background:rgba(15,23,42,0.16); }
        .overview-sim-card .label { font-size:0.74rem; color:var(--muted); margin-bottom:4px; }
        .overview-sim-card .value { font-size:0.94rem; font-weight:700; color:#fff; word-break:break-word; }
        .overview-sim-products { display:grid; gap:10px; }
        .overview-sim-product { border:1px solid var(--border); border-radius:12px; padding:12px; background:rgba(15,23,42,0.20); display:grid; gap:8px; }
        .overview-sim-product h5 { margin:0; font-size:0.84rem; color:#fff; }
        .overview-sim-product-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px 14px; }
        .overview-empty { color:var(--muted); font-size:0.84rem; }
        .consulta-overview-accordion summary { list-style:none; }
        .consulta-overview-accordion summary::-webkit-details-marker { display:none; }
        @media (max-width: 980px) {
            .consulta-overview-grid { grid-template-columns:1fr; }
            .tkt-attachment-draft-row { grid-template-columns:1fr; }
        }

        /* CPF Result Blocks */
        .cpf-result { margin-top: 10px; }
        .cpf-block {
            border: 1px solid var(--border);
            border-radius: 14px;
            margin-bottom: 10px;
            overflow: hidden;
        }
        .cpf-block-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 12px 16px;
            background: var(--surface-alt);
            cursor: pointer;
            user-select: none;
            gap: 8px;
        }
        .cpf-block-header h4 {
            margin: 0;
            font-size: 0.88rem;
            font-weight: 700;
            color: #fff;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .cpf-block-header .toggle-icon {
            font-size: 0.72rem;
            color: var(--muted);
            transition: transform 0.2s;
        }
        .cpf-block-header.collapsed .toggle-icon { transform: rotate(-90deg); }
        .cpf-block-body {
            padding: 14px 16px;
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
            gap: 10px 18px;
        }
        .cpf-block-body.hidden { display: none; }
        .cpf-field { }
        .cpf-field-label { font-size: 0.76rem; color: var(--muted); margin-bottom: 2px; }
        .cpf-field-value { font-size: 0.90rem; color: var(--text); font-weight: 600; word-break: break-word; }

        /* Highlight cards for commercial summary */
        .cpf-highlight-cards {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 12px;
            margin-bottom: 10px;
        }
        .cpf-highlight-card {
            background: rgba(59, 130, 246, 0.08);
            border: 1px solid rgba(59, 130, 246, 0.25);
            border-radius: 14px;
            padding: 16px;
            text-align: center;
        }
        .cpf-highlight-card .hl-label { font-size: 0.78rem; color: var(--muted); margin-bottom: 4px; }
        .cpf-highlight-card .hl-value { font-size: 1.4rem; font-weight: 800; color: var(--success); }
        .cpf-margin-subheader { font-size: 0.82rem; font-weight: 700; color: var(--accent); margin: 10px 0 4px; padding-bottom: 3px; border-bottom: 1px solid rgba(59,130,246,0.15); }
        .cpf-block-body--margins { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; }
        .cpf-margin-group {
            background: rgba(59, 130, 246, 0.04);
            border: 1px solid rgba(59, 130, 246, 0.12);
            border-radius: 10px;
            padding: 12px 14px;
        }
        .cpf-margin-group-title {
            font-size: 0.82rem;
            font-weight: 700;
            color: var(--accent);
            margin-bottom: 10px;
            padding-bottom: 5px;
            border-bottom: 1px solid rgba(59, 130, 246, 0.15);
        }
        .cpf-margin-group-fields {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 8px 18px;
        }
        @media (max-width: 640px) {
            .cpf-margin-group-fields { grid-template-columns: 1fr; }
        }

        .cpf-loading { text-align: center; padding: 20px; color: var(--muted); }
        .cpf-error { color: var(--danger); font-size: 0.88rem; margin-top: 8px; }

        @media (max-width: 768px) {
            .kpi-grid { grid-template-columns: 1fr; }
            .charts-grid { grid-template-columns: 1fr; }
            .cpf-highlight-cards { grid-template-columns: repeat(2, 1fr); }
            .gm-toolbar-inner { flex-direction: column; align-items: stretch; }
            .gm-toolbar-tabs { justify-content: center; }
            .history-search { min-width: 100%; }
        }


        /* ALTERAÇÃO [2]: estilos do cadastro operacional V2 e do novo launcher V1/V2. */
        .sim-launcher-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
        }
        .sim-version-actions {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            margin-bottom: 16px;
        }
        .new-sim-btn.new-sim-btn-secondary {
            background: var(--surface-alt);
            color: var(--text);
            border: 1px solid var(--border);
        }
        .new-sim-btn.new-sim-btn-secondary:hover {
            background: var(--surface);
            color: #fff;
            border-color: var(--primary);
        }
        .new-sim-btn.is-selected {
            box-shadow: 0 0 0 1px rgba(59,130,246,0.28), 0 0 20px rgba(59,130,246,0.16);
        }
        .v2-shell-spacing {
            display: grid;
            gap: 20px;
        }
        .v2-inline-grid {
            display: grid;
            gap: 14px;
        }
        .v2-line-grid-1 {
            grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
        }
        .v2-line-grid-2 {
            grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
        }
        .v2-line-grid-3 {
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
            align-items: end;
        }
        .v2-inline-note {
            border: 1px solid rgba(59,130,246,0.22);
            border-radius: 14px;
            padding: 12px 14px;
            background: rgba(59,130,246,0.08);
            color: #dbeafe;
            font-size: 0.86rem;
        }
        .v2-action-stack {
            display: flex;
            align-items: end;
            justify-content: flex-end;
            gap: 10px;
            flex-wrap: wrap;
            min-height: 100%;
        }
        .v2-action-btn {
            min-width: 190px;
        }
        .v2-action-btn.v2-action-ready {
            box-shadow: 0 0 0 1px rgba(16,185,129,0.28), 0 0 22px rgba(16,185,129,0.18);
        }
        .v2-action-btn.v2-action-active {
            box-shadow: inset 0 2px 8px rgba(15,23,42,0.28);
            transform: translateY(1px);
        }
        .v2-action-btn:disabled {
            opacity: 0.55;
            cursor: not-allowed;
            box-shadow: none;
        }
        .v2-operations-grid {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }
        .v2-operation-chip {
            border: 1px solid var(--border);
            background: var(--surface-alt);
            color: var(--text);
            border-radius: 999px;
            padding: 10px 14px;
            font-size: 0.84rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.18s ease;
        }
        .v2-operation-chip:hover {
            border-color: var(--primary);
            transform: translateY(-1px);
        }
        .v2-operation-chip.is-selected {
            background: rgba(59,130,246,0.14);
            border-color: var(--primary);
            color: #fff;
        }
        .v2-operation-chip.is-disabled {
            opacity: 0.45;
            cursor: not-allowed;
            transform: none;
        }
        .v2-operation-chip.is-unlinked {
            border-style: dashed;
            opacity: 0.82;
        }
        .v2-operation-panels {
            display: grid;
            gap: 14px;
            margin-top: 18px;
        }
        .v2-operation-card {
            border: 1px solid var(--border);
            border-radius: 18px;
            padding: 16px;
            background: var(--surface-alt);
            box-shadow: 0 10px 24px rgba(2,8,23,0.12);
        }
        .v2-operation-card-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
        }
        .v2-operation-card h4 {
            margin: 0;
            font-size: 0.96rem;
            color: #fff;
        }
        .v2-close-chip {
            border: 1px solid rgba(248,113,113,0.35);
            background: rgba(248,113,113,0.12);
            color: #fecaca;
            border-radius: 999px;
            width: 32px;
            height: 32px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-weight: 700;
        }
        .v2-badge-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin: 12px 0 14px;
        }
        .v2-mini-badge,
        .v2-tag {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 5px 10px;
            border-radius: 999px;
            font-size: 0.74rem;
            font-weight: 700;
            border: 1px solid var(--border);
            background: rgba(15,23,42,0.25);
            color: var(--text);
        }
        .v2-empty-box {
            border: 1px dashed var(--border);
            border-radius: 16px;
            padding: 16px;
            color: var(--muted);
            background: rgba(15,23,42,0.18);
            font-size: 0.86rem;
            line-height: 1.55;
        }
        .v2-sim-panel {
            display: grid;
            gap: 14px;
        }
        .v2-operation-card.tone-emprestimo {
            border-color: rgba(59,130,246,0.28);
            box-shadow: 0 10px 24px rgba(59,130,246,0.08);
        }
        .v2-operation-card.tone-cartao {
            border-color: rgba(16,185,129,0.28);
            box-shadow: 0 10px 24px rgba(16,185,129,0.08);
        }
        .v2-operation-card.tone-beneficio {
            border-color: rgba(245,158,11,0.28);
            box-shadow: 0 10px 24px rgba(245,158,11,0.08);
        }
        .v2-panel-grid {
            display: grid;
            gap: 14px;
        }
        .v2-panel-grid.two-columns {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .v2-panel-grid.three-columns {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
        .v2-panel-grid.four-columns {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
        .v2-panel-grid.five-columns {
            grid-template-columns: repeat(5, minmax(0, 1fr));
        }
        .v2-panel-grid-main {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: 12px;
            align-items: end;
        }
        .v2-panel-grid-manual {
            display: grid;
            grid-template-columns: 1.3fr 0.8fr 1fr;
            gap: 12px;
            align-items: end;
        }
        .v2-panel-extra-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
        }
        .v2-panel-grid .field,
        .v2-panel-grid-main .field,
        .v2-panel-grid-manual .field,
        .v2-panel-extra-grid .field {
            min-width: 0;
        }
        .v2-engine-toggle {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            min-height: 44px;
        }
        .v2-engine-btn {
            border: 1px solid var(--border);
            background: rgba(15,23,42,0.26);
            color: var(--text);
            border-radius: 999px;
            padding: 9px 14px;
            font-size: 0.78rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.18s ease;
        }
        .v2-engine-btn:hover {
            border-color: var(--primary);
            transform: translateY(-1px);
        }
        .v2-engine-btn.is-active {
            background: rgba(59,130,246,0.14);
            border-color: var(--primary);
            color: #fff;
        }
        .v2-engine-btn.is-factor.is-active {
            background: rgba(16,185,129,0.14);
            border-color: rgba(16,185,129,0.36);
        }
        .v2-policy-box,
        .v2-alert-box,
        .v2-result-box,
        .v2-global-actions {
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 14px 16px;
            background: rgba(15,23,42,0.18);
            display: grid;
            gap: 10px;
        }
        .v2-policy-box h5,
        .v2-alert-box h5,
        .v2-result-box h5,
        .v2-global-actions h5 {
            margin: 0;
            color: #fff;
            font-size: 0.88rem;
        }
        .v2-policy-box p,
        .v2-alert-box p,
        .v2-global-actions p {
            margin: 0;
            color: var(--muted);
            font-size: 0.8rem;
            line-height: 1.55;
        }
        .v2-policy-list,
        .v2-alert-list {
            display: grid;
            gap: 6px;
            margin: 0;
            padding-left: 18px;
            color: #dbeafe;
            font-size: 0.82rem;
            line-height: 1.5;
        }
        .v2-alert-box.is-danger {
            border-color: rgba(248,113,113,0.32);
            background: rgba(127,29,29,0.12);
        }
        .v2-alert-box.is-danger .v2-alert-list {
            color: #fecaca;
        }
        .v2-alert-box.is-warning {
            border-color: rgba(245,158,11,0.32);
            background: rgba(120,53,15,0.10);
        }
        .v2-alert-box.is-warning .v2-alert-list {
            color: #fde68a;
        }
        .v2-result-grid,
        .v2-result-summary-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 10px;
        }
        .v2-result-item {
            border: 1px solid rgba(148,163,184,0.14);
            border-radius: 14px;
            padding: 10px 12px;
            background: rgba(15,23,42,0.22);
            display: grid;
            gap: 4px;
        }
        .v2-result-item span {
            color: var(--muted);
            font-size: 0.75rem;
        }
        .v2-result-item strong {
            color: #fff;
            font-size: 0.92rem;
            line-height: 1.35;
        }
        .v2-result-item.is-highlight strong {
            color: var(--success);
        }
        .v2-field-error {
            margin-top: 6px;
            color: #fca5a5;
            font-size: 0.72rem;
            line-height: 1.45;
        }
        .input.is-invalid,
        select.is-invalid,
        textarea.is-invalid {
            border-color: rgba(248,113,113,0.55) !important;
            box-shadow: 0 0 0 3px rgba(248,113,113,0.12);
        }
        .v2-panel-indicator {
            color: #f87171;
            font-size: 1rem;
            font-weight: 800;
            margin-left: 6px;
        }
        .v2-panel-meta-note {
            color: var(--muted);
            font-size: 0.78rem;
        }
        .v2-global-actions {
            margin-top: 6px;
        }
        .v2-global-toolbar {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
        }
        .v2-global-toolbar .action-row {
            margin-top: 0;
        }
        .v2-result-summary-card {
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 14px;
            background: rgba(15,23,42,0.22);
            display: grid;
            gap: 10px;
        }
        .v2-result-summary-card.tone-emprestimo { border-left: 4px solid var(--color-emprestimo); }
        .v2-result-summary-card.tone-cartao { border-left: 4px solid var(--color-cartao); }
        .v2-result-summary-card.tone-beneficio { border-left: 4px solid var(--color-beneficio); }
        .v2-result-summary-head {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            align-items: flex-start;
        }
        .v2-result-summary-head h6 {
            margin: 0;
            color: #fff;
            font-size: 0.92rem;
            line-height: 1.4;
        }
        .v2-result-summary-head .tag {
            flex: 0 0 auto;
        }
        .v2-readonly {
            opacity: 0.92;
        }
        .v2-panel-actions {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }
        .v2-action-chip {
            border: 1px solid rgba(148,163,184,0.22);
            background: rgba(15,23,42,0.22);
            color: #e2e8f0;
            border-radius: 999px;
            padding: 8px 12px;
            font-size: 0.76rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.18s ease;
        }
        .v2-action-chip:hover {
            border-color: var(--primary);
            transform: translateY(-1px);
        }
        .v2-contract-editor {
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 14px 16px;
            background: rgba(15,23,42,0.16);
            display: grid;
            gap: 12px;
        }
        .v2-contract-editor-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
        }
        .v2-contract-editor-head h5 {
            margin: 0;
            color: #fff;
            font-size: 0.86rem;
        }
        .v2-contract-editor-head p {
            margin: 4px 0 0;
            color: var(--muted);
            font-size: 0.78rem;
            line-height: 1.45;
        }
        .v2-contract-rows {
            display: grid;
            gap: 12px;
        }
        .v2-contract-row {
            display: grid;
            grid-template-columns: 1.35fr 1fr 0.8fr 1fr auto;
            gap: 12px;
            align-items: end;
        }
        .v2-contract-row .field {
            min-width: 0;
        }
        .v2-contract-remove-field {
            width: 74px;
        }
        .v2-contract-remove {
            width: 44px;
            height: 44px;
            border-radius: 12px;
            border: 1px solid rgba(248,113,113,0.35);
            background: rgba(127,29,29,0.14);
            color: #fecaca;
            font-size: 1.2rem;
            font-weight: 800;
            cursor: pointer;
            transition: transform 0.18s ease, border-color 0.18s ease;
        }
        .v2-contract-remove:hover {
            transform: translateY(-1px);
            border-color: rgba(248,113,113,0.55);
        }
        .v2-add-contract {
            align-self: center;
            white-space: nowrap;
        }
        .v2-global-actions.v2-result-shell {
            gap: 14px;
        }
        .v2-summary-title {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
        }
        .v2-summary-pills {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .v2-summary-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            border: 1px solid rgba(96,165,250,0.20);
            background: rgba(37,99,235,0.08);
            color: #dbeafe;
            padding: 8px 12px;
            border-radius: 999px;
            font-size: 0.78rem;
            line-height: 1.35;
        }
        .v2-summary-pill strong {
            color: #fff;
        }
        .v2-result-detail-grid {
            display: grid;
            gap: 12px;
        }
        .v2-detailed-result-card {
            gap: 14px;
        }
        .v2-bank-product-line {
            color: #fff;
            font-size: 0.84rem;
            line-height: 1.45;
            margin-top: 4px;
        }
        .v2-section-block {
            border: 1px solid rgba(148,163,184,0.16);
            border-radius: 14px;
            padding: 12px;
            background: rgba(2,6,23,0.18);
            display: grid;
            gap: 10px;
        }
        .v2-section-title {
            margin: 0;
            color: #fff;
            font-size: 0.82rem;
        }
        .v2-contract-table-wrap {
            overflow: auto;
            border-radius: 12px;
            border: 1px solid rgba(148,163,184,0.14);
        }
        .v2-contract-table {
            width: 100%;
            border-collapse: collapse;
            min-width: 620px;
        }
        .v2-contract-table th,
        .v2-contract-table td {
            padding: 10px 12px;
            border-bottom: 1px solid rgba(148,163,184,0.10);
            text-align: left;
            font-size: 0.78rem;
        }
        .v2-contract-table th {
            color: #cbd5e1;
            background: rgba(15,23,42,0.28);
            font-weight: 700;
        }
        .v2-contract-table td {
            color: #e2e8f0;
        }
        .v2-contract-table td:last-child,
        .v2-contract-table th:last-child {
            text-align: right;
        }
        .v2-contract-table .is-total td {
            font-weight: 800;
            color: #fff;
            background: rgba(15,23,42,0.32);
        }
        .v2-new-bank-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
            gap: 10px;
        }
        .v2-metric-card {
            border: 1px solid rgba(148,163,184,0.14);
            border-radius: 14px;
            padding: 10px 12px;
            background: rgba(15,23,42,0.22);
            display: grid;
            gap: 4px;
        }
        .v2-metric-card span {
            color: var(--muted);
            font-size: 0.74rem;
        }
        .v2-metric-card strong {
            color: #fff;
            font-size: 0.92rem;
            line-height: 1.35;
        }
        .v2-metric-card.is-highlight strong {
            color: var(--success);
        }
        .v2-inline-note strong {
            color: #fff;
        }
        @media (max-width: 1200px) {
            .v2-panel-grid-main {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .v2-contract-row {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .v2-contract-remove-field {
                width: auto;
            }
        }
        @media (max-width: 760px) {
            .v2-panel-grid.two-columns,
            .v2-panel-grid.three-columns,
            .v2-panel-grid.four-columns,
            .v2-panel-grid.five-columns,
            .v2-panel-grid-main,
            .v2-panel-grid-manual,
            .v2-panel-extra-grid,
            .v2-contract-row {
                grid-template-columns: 1fr;
            }
            .v2-contract-table {
                min-width: 540px;
            }
        }

        .product-rules-calc-mode {
            display: grid;
            gap: 12px;
        }
        .product-rules-calc-grid {
            display: grid;
            gap: 10px;
        }
        .product-rules-row.is-calc-two {
            grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
        }
        .product-rules-row.is-calc-three {
            grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
        }
        .product-rules-calc-note {
            color: var(--muted);
            font-size: 0.76rem;
            line-height: 1.5;
        }
        .admin-operational-stack {
            display: grid;
            gap: 18px;
            margin-top: 20px;
        }
        .admin-rules-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 18px;
        }
        .v2-multiselect {
            min-height: 140px;
        }
        .v2-list-grid {
            display: grid;
            gap: 12px;
        }
        .v2-list-card {
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 14px;
            display: grid;
            gap: 10px;
            background: var(--surface-alt);
        }
        .v2-list-card.is-inactive {
            opacity: 0.78;
            border-style: dashed;
        }
        .v2-list-card h4 {
            margin: 0;
            font-size: 0.92rem;
            color: #fff;
        }
        .v2-list-meta {
            color: var(--muted);
            font-size: 0.78rem;
            line-height: 1.5;
        }
        .v2-tag-row {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .v2-convenio-configs {
            display: grid;
            gap: 14px;
            margin-top: 14px;
        }
        .v2-config-card {
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 14px;
            background: var(--surface);
            display: grid;
            gap: 12px;
        }
        .v2-config-card h4 {
            margin: 0;
            font-size: 0.92rem;
            color: #fff;
        }
        .v2-config-line-ops {
            display: grid;
            gap: 10px;
        }
        .v2-admin-empty {
            color: var(--muted);
            font-size: 0.86rem;
        }
        .admin-products-panel {
            margin-top: 18px;
        }
        .admin-products-toolbar {
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 8px;
        }
        .admin-products-toolbar .helper {
            margin: 0 0 0 auto;
        }
        .product-registry-tree {
            display: grid;
            gap: 14px;
            margin-top: 14px;
        }
        .product-tree-group {
            display: grid;
            gap: 8px;
        }
        .product-tree-children {
            display: grid;
            gap: 8px;
            padding-left: 26px;
            border-left: 1px dashed rgba(148, 163, 184, 0.20);
            margin-left: 10px;
        }
        .product-tree-row {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
            color: var(--text);
        }
        .product-tree-row.is-inactive {
            opacity: 0.72;
        }
        .product-tree-prefix {
            color: var(--muted);
            min-width: 32px;
            padding-top: 4px;
            flex: 0 0 32px;
        }
        .product-tree-root-label,
        .product-tree-label {
            color: #fff;
            font-weight: 700;
        }
        .product-tree-row-content {
            flex: 1 1 auto;
            min-width: 0;
            display: grid;
            gap: 8px;
        }
        .product-tree-row-top {
            display: flex;
            align-items: center;
            gap: 10px;
            justify-content: space-between;
            flex-wrap: wrap;
        }
        .product-tree-node-meta {
            font-size: 0.74rem;
            color: var(--muted);
            line-height: 1.45;
        }
        .product-tree-product-row {
            border: 1px solid rgba(148, 163, 184, 0.16);
            border-radius: 14px;
            padding: 10px 12px;
            background: rgba(15, 23, 42, 0.18);
        }
        .product-tree-product-main {
            display: flex;
            align-items: center;
            gap: 10px;
            flex: 1 1 auto;
            min-width: 0;
            flex-wrap: wrap;
        }
        .product-tree-checkbox {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            cursor: pointer;
            flex: 1 1 auto;
            min-width: 0;
        }
        .product-tree-checkbox input {
            width: 18px;
            height: 18px;
            accent-color: var(--primary);
            flex: 0 0 18px;
        }
        .product-tree-product-label {
            font-weight: 600;
            color: #fff;
            line-height: 1.5;
            word-break: break-word;
        }
        .product-tree-product-label.is-inactive {
            color: var(--muted);
            text-decoration: line-through;
        }
        .product-tree-actions {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 8px;
            margin-left: auto;
        }
        .btn-sm {
            min-height: 38px;
            padding: 8px 12px;
            font-size: 0.82rem;
            border-radius: 12px;
        }
        .product-tree-add-btn {
            min-width: 38px;
            padding: 8px 10px;
            font-size: 1rem;
            line-height: 1;
        }
        .product-editor {
            border: 1px dashed rgba(96, 165, 250, 0.38);
            border-radius: 16px;
            padding: 14px;
            background: rgba(15, 23, 42, 0.24);
            display: grid;
            gap: 12px;
        }
        .product-editor-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 12px;
        }
        .product-editor .helper {
            margin: 0;
        }
        .product-tree-inline {
            margin-top: 8px;
        }
        .product-editor-title {
            margin: 0;
            font-size: 0.84rem;
            color: #fff;
        }
        .product-editor-subtitle {
            margin: 0;
            font-size: 0.76rem;
            color: var(--muted);
            line-height: 1.5;
        }

        .admin-products-bulk-bar,
        .admin-products-groups-toolbar {
            margin-top: 16px;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
        }
        .admin-products-bulk-bar {
            justify-content: flex-start;
        }
        .admin-products-groups-toolbar .helper {
            margin-left: auto;
        }
        .product-bulk-edit-panel,
        .product-rules-editor-panel,
        .product-rules-review-panel {
            margin-top: 14px;
            border: 1px solid rgba(96, 165, 250, 0.20);
            border-radius: 18px;
            padding: 16px;
            background: rgba(15, 23, 42, 0.22);
            display: grid;
            gap: 14px;
        }
        .product-bulk-edit-panel.hidden,
        .product-rules-editor-panel.hidden,
        .product-rules-review-panel.hidden {
            display: none !important;
        }
        .product-rules-editor-header,
        .product-rules-review-header {
            display: flex;
            gap: 10px;
            align-items: flex-start;
            justify-content: space-between;
            flex-wrap: wrap;
        }
        .product-rules-editor-header h4,
        .product-rules-review-header h4,
        .product-rules-groups-panel h4,
        .product-bulk-edit-panel h4 {
            margin: 0;
            color: #fff;
            font-size: 0.95rem;
        }
        .product-rules-editor-header p,
        .product-rules-review-header p,
        .product-bulk-edit-panel p {
            margin: 4px 0 0;
            color: var(--muted);
            font-size: 0.82rem;
            line-height: 1.55;
        }
        .product-rules-form-grid,
        .product-bulk-edit-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 12px;
        }
        .product-rules-block {
            display: grid;
            gap: 10px;
            padding: 14px;
            border: 1px solid rgba(148, 163, 184, 0.14);
            border-radius: 16px;
            background: rgba(15, 23, 42, 0.18);
        }
        .product-rules-block h5 {
            margin: 0;
            color: #fff;
            font-size: 0.86rem;
        }
        .product-rules-block p {
            margin: 0;
            color: var(--muted);
            font-size: 0.78rem;
            line-height: 1.5;
        }
        .product-rules-rows {
            display: grid;
            gap: 10px;
        }
        .product-rules-row {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
            gap: 10px;
            align-items: end;
        }
        .product-rules-row.is-single {
            grid-template-columns: minmax(0, 1fr) auto;
        }
        .product-rules-row .btn {
            min-height: 42px;
        }
        .product-rules-list,
        .product-rules-checklist {
            display: grid;
            gap: 8px;
            max-height: 240px;
            overflow: auto;
            padding: 10px;
            border-radius: 14px;
            border: 1px solid rgba(148, 163, 184, 0.14);
            background: rgba(15, 23, 42, 0.16);
        }
        .product-rules-checklist label,
        .product-rules-list-item {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            color: #fff;
            font-size: 0.84rem;
            line-height: 1.45;
        }
        .product-rules-checklist input {
            margin-top: 2px;
            accent-color: var(--primary);
        }
        .product-rules-pill-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        .product-rules-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 8px 12px;
            border-radius: 999px;
            background: rgba(59, 130, 246, 0.12);
            border: 1px solid rgba(59, 130, 246, 0.20);
            color: #dbeafe;
            font-size: 0.78rem;
        }
        .product-rules-groups-panel {
            margin-top: 18px;
        }
        .product-rules-groups-table-wrap {
            margin-top: 12px;
            overflow: auto;
            border-radius: 16px;
            border: 1px solid rgba(148, 163, 184, 0.16);
            background: rgba(15, 23, 42, 0.18);
        }
        .product-rules-groups-table {
            width: 100%;
            min-width: 1120px;
            border-collapse: collapse;
        }
        .product-rules-groups-table th,
        .product-rules-groups-table td {
            padding: 12px 14px;
            border-bottom: 1px solid rgba(148, 163, 184, 0.12);
            vertical-align: top;
            text-align: left;
            font-size: 0.82rem;
            line-height: 1.5;
        }
        .product-rules-groups-table th {
            color: var(--muted);
            font-size: 0.76rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            background: rgba(15, 23, 42, 0.28);
            position: sticky;
            top: 0;
            z-index: 1;
        }
        .product-rules-groups-table tbody tr {
            cursor: pointer;
            transition: background 0.18s ease, border-color 0.18s ease;
        }
        .product-rules-groups-table tbody tr:hover {
            background: rgba(59, 130, 246, 0.06);
        }
        .product-rules-groups-table tbody tr.is-selected {
            background: rgba(59, 130, 246, 0.12);
        }
        .product-rules-groups-table tbody tr:last-child td {
            border-bottom: none;
        }
        .product-rules-group-id {
            font-weight: 700;
            color: #fff;
        }
        .product-rules-group-checkbox {
            width: 18px;
            height: 18px;
            accent-color: var(--primary);
        }
        .product-rules-review-list {
            display: grid;
            gap: 12px;
        }
        .product-rules-review-product {
            display: grid;
            gap: 10px;
            padding: 14px;
            border: 1px solid rgba(148, 163, 184, 0.14);
            border-radius: 16px;
            background: rgba(15, 23, 42, 0.18);
        }
        .product-rules-review-product h5 {
            margin: 0;
            color: #fff;
            font-size: 0.88rem;
        }
        .product-rules-review-path {
            font-size: 0.76rem;
            color: var(--muted);
        }
        .product-rules-review-note {
            font-size: 0.8rem;
            color: #cbd5e1;
            line-height: 1.5;
        }
        .product-rules-review-change {
            display: grid;
            grid-template-columns: minmax(150px, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
            gap: 10px;
            align-items: start;
            padding: 10px 12px;
            border-radius: 14px;
            background: rgba(15, 23, 42, 0.22);
            border: 1px solid rgba(148, 163, 184, 0.12);
        }
        .product-rules-review-change.is-excluded {
            opacity: 0.52;
            border-style: dashed;
        }
        .product-rules-review-label {
            color: #fff;
            font-weight: 600;
            font-size: 0.8rem;
        }
        .product-rules-review-value {
            color: #cbd5e1;
            font-size: 0.8rem;
            word-break: break-word;
        }
        .product-rules-review-value strong {
            color: #fff;
        }
        .product-rules-review-value.is-old {
            color: #fca5a5;
        }
        .product-rules-review-value.is-new {
            color: #86efac;
        }
        .product-rules-empty {
            color: var(--muted);
            font-size: 0.84rem;
        }
        @media (max-width: 920px) {
            .product-rules-row,
            .product-rules-review-change {
                grid-template-columns: 1fr;
            }
            .admin-products-groups-toolbar .helper {
                margin-left: 0;
            }
        }
        .v2-result-alert {
            border-radius: 14px;
            padding: 12px 14px;
            margin-bottom: 14px;
            font-size: 0.86rem;
            line-height: 1.5;
            border: 1px solid rgba(59,130,246,0.24);
            background: rgba(59,130,246,0.08);
            color: #dbeafe;
        }
        .v2-result-alert.warning {
            border-color: rgba(245,158,11,0.35);
            background: rgba(245,158,11,0.12);
            color: #fde68a;
        }
        .v2-result-alert.success {
            border-color: rgba(16,185,129,0.30);
            background: rgba(16,185,129,0.10);
            color: #86efac;
        }
        .v2-hidden-field {
            display: none !important;
        }
        @media (max-width: 1100px) {
            .admin-rules-grid {
                grid-template-columns: 1fr;
            }
        }
        @media (max-width: 920px) {
            .sim-launcher-row {
                align-items: stretch;
            }
            .sim-version-actions {
                width: 100%;
            }
            .v2-line-grid-1,
            .v2-line-grid-2,
            .v2-line-grid-3 {
                grid-template-columns: 1fr;
            }
            .v2-action-stack {
                justify-content: stretch;
            }
            .v2-action-btn {
                width: 100%;
            }
        }
