/* CRM F1-23: estilos do CRM (prefixo .crm-). Tema claro/escuro via variaveis do styles.css. */
.crm-aviso {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 10000;
    max-width: 360px;
    padding: 10px 14px;
    border-radius: 6px;
    background: var(--card-bg);
    color: var(--text-color, inherit);
    border: 1px solid var(--border-color, #ccc);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* CRM F1-26: estilos das abas, linha do tempo e historicos */
.crm-aviso-fonte-erro {
    position: static;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    margin-bottom: 14px;
    background: rgba(220, 53, 69, 0.1);
    color: var(--danger-color, #dc3545);
    border: 1px solid rgba(220, 53, 69, 0.3);
    box-shadow: none;
}

.crm-abas {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid var(--border-color, #dee2e6);
    margin-bottom: 16px;
    overflow-x: auto;
}

.crm-aba-btn {
    padding: 8px 16px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--text-muted, #6c757d);
    cursor: pointer;
    font-weight: 500;
    transition: all 0.2s ease;
}

.crm-aba-btn:hover {
    color: var(--text-color, inherit);
}

.crm-aba-btn.ativo {
    color: var(--primary-color, #007bff);
    border-bottom-color: var(--primary-color, #007bff);
    font-weight: 600;
}

.crm-linha-tempo {
    position: relative;
    padding: 10px 0 10px 20px;
    border-left: 2px solid var(--border-color, #dee2e6);
    margin-left: 10px;
    margin-bottom: 16px;
}

.crm-linha-tempo-item {
    position: relative;
    margin-bottom: 18px;
    padding-left: 24px;
}

.crm-linha-tempo-icone {
    position: absolute;
    left: -31px;
    top: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--card-bg, #fff);
    border: 2px solid var(--border-color, #dee2e6);
    color: var(--primary-color, #007bff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
}

.crm-linha-tempo-corpo {
    background: var(--card-bg, #fff);
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 6px;
    padding: 10px 14px;
}

.crm-linha-tempo-titulo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
    gap: 8px;
}

.crm-linha-tempo-data {
    font-size: 12px;
    color: var(--text-muted, #6c757d);
}

.crm-linha-tempo-resumo {
    font-size: 13px;
    color: var(--text-color, inherit);
    margin-bottom: 6px;
}

.crm-linha-tempo-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 12px;
}

.crm-linha-tempo-valor {
    font-weight: 600;
    color: var(--text-color, inherit);
}

.crm-badge {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    background: var(--badge-bg, rgba(0, 123, 255, 0.1));
    color: var(--badge-color, #007bff);
    margin-left: 6px;
}

.crm-tabela-wrapper {
    width: 100%;
    overflow-x: auto;
    margin-bottom: 16px;
}

.crm-tabela {
    width: 100%;
    border-collapse: collapse;
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
}

.crm-tabela th,
.crm-tabela td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-color, #dee2e6);
    text-align: left;
    font-size: 13px;
}

.crm-tabela th {
    font-weight: 600;
    background: var(--table-header-bg, rgba(0, 0, 0, 0.03));
}

.crm-tabela tr:hover td {
    background: var(--hover-bg, rgba(0, 0, 0, 0.02));
}

.crm-vencido {
    color: var(--danger-color, #dc3545) !important;
    font-weight: 600;
}

.crm-em-dia {
    color: var(--success-color, #28a745);
}

.crm-btn-carregar-mais {
    display: block;
    margin: 12px auto;
    padding: 8px 20px;
    border-radius: 4px;
    border: 1px solid var(--border-color, #dee2e6);
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
    cursor: pointer;
    font-weight: 500;
    transition: background 0.15s ease;
}

.crm-btn-carregar-mais:hover:not(:disabled) {
    background: var(--hover-bg, rgba(0, 0, 0, 0.05));
}

.crm-btn-carregar-mais:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.crm-vazio {
    text-align: center;
    padding: 24px;
    color: var(--text-muted, #6c757d);
    font-style: italic;
}

.crm-erro {
    padding: 12px;
    color: var(--danger-color, #dc3545);
    background: rgba(220, 53, 69, 0.1);
    border-radius: 4px;
    margin-bottom: 12px;
}


/* CRM F1-24: tela Clientes CRM (filtros, grade clicavel, badge de status, paginacao) */
.crm-subtitulo {
    color: var(--text-light);
    font-size: 14px;
    margin: 5px 0 0 0;
}

.crm-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 16px 0 12px 0;
    align-items: flex-end;
}

.crm-filtro-grupo {
    min-width: 180px;
}

.crm-filtro-rotulo {
    display: block;
    margin-bottom: 4px;
    font-size: 12px;
    color: var(--text-muted);
}

.crm-aviso-sync {
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--text-muted);
}

.crm-tabela-clientes tr.crm-linha-clicavel,
.crm-ficha-oportunidades-tabela tr.crm-linha-clicavel {
    cursor: pointer;
}

.crm-fantasia {
    color: var(--text-muted);
}

.crm-status-badge {
    margin-left: 0;
}

.crm-status-lead {
    background: rgba(0, 145, 255, 0.15);
    color: #0091ff;
}

.crm-status-prospect {
    background: rgba(255, 170, 0, 0.15);
    color: #c27d00;
}

.crm-status-cliente {
    background: rgba(46, 204, 113, 0.15);
    color: #1e9e55;
}

.crm-status-inativo {
    background: rgba(149, 165, 166, 0.15);
    color: #7f8c8d;
}

.crm-paginacao {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 12px;
    padding: 4px 8px;
}

.crm-paginacao-info {
    font-size: 13px;
    color: var(--text-muted);
}

.crm-paginacao-botoes {
    display: flex;
    gap: 8px;
}

.crm-badge-menu {
    display: inline-block;
    min-width: 18px;
    padding: 1px 6px;
    margin-left: auto;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    background: #e74c3c;
    color: #fff;
}

/* CRM F1-29a: tela Tarefas/Follow-ups */
.crm-tarefas-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.crm-tarefas-titulo {
    margin: 0;
    font-size: 18px;
    color: var(--text-color, inherit);
}

.crm-tarefas-cliente {
    color: var(--primary-color, #007bff);
    text-decoration: none;
}

.crm-tarefas-cliente:hover {
    text-decoration: underline;
}

.crm-tarefas-acoes {
    white-space: nowrap;
}

.crm-tarefas-btn {
    padding: 4px 10px;
    margin-right: 6px;
    border-radius: 4px;
    border: 1px solid var(--border-color, #dee2e6);
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
    cursor: pointer;
    font-size: 12px;
}

.crm-tarefas-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.crm-tarefas-btn-nova {
    padding: 6px 14px;
    border-radius: 4px;
    border: 1px solid var(--primary-color, #007bff);
    background: var(--primary-color, #007bff);
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
}

.crm-tarefas-btn-nova:hover {
    opacity: 0.9;
}

.crm-tarefas-editar {
    color: var(--primary-color, #007bff);
    border-color: var(--primary-color, #007bff);
}

.crm-tarefas-concluir {
    color: var(--success-color, #28a745);
    border-color: var(--success-color, #28a745);
}

.crm-tarefas-cancelar {
    color: var(--danger-color, #dc3545);
    border-color: var(--danger-color, #dc3545);
}

.crm-tarefas-prio-alta {
    background: rgba(220, 53, 69, 0.12);
    color: var(--danger-color, #dc3545);
}

/* CRM F1-29b: modal Nova/Editar tarefa */
.crm-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
}

.crm-modal-card {
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
    width: 560px;
    max-width: 95vw;
    max-height: 90vh;
    overflow-y: auto;
    border-radius: 8px;
    border: 1px solid var(--border-color, #dee2e6);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    padding: 24px;
}

.crm-modal-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color, #dee2e6);
}

.crm-modal-titulo {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
}

.crm-modal-btn-fechar {
    background: transparent;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: var(--text-muted, #6c757d);
    line-height: 1;
}

.crm-modal-btn-fechar:hover {
    color: var(--text-color, inherit);
}

.crm-form-grupo {
    margin-bottom: 14px;
}

.crm-form-rotulo {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-color, inherit);
}

.crm-form-linha {
    display: flex;
    gap: 12px;
}

.crm-form-linha > .crm-form-grupo {
    flex: 1;
}

.crm-modal-card .form-control {
    width: 100%;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 4px;
    border: 1px solid var(--border-color, #dee2e6);
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
    box-sizing: border-box;
}

.crm-modal-card .form-control:focus {
    outline: none;
    border-color: var(--primary-color, #007bff);
}

.crm-modal-card .form-control:disabled,
.crm-modal-card .form-control[readonly] {
    opacity: 0.7;
    background: var(--hover-bg, rgba(0, 0, 0, 0.05));
    cursor: not-allowed;
}

.crm-modal-erro {
    padding: 8px 12px;
    margin-bottom: 14px;
    color: var(--danger-color, #dc3545);
    background: rgba(220, 53, 69, 0.1);
    border: 1px solid rgba(220, 53, 69, 0.3);
    border-radius: 4px;
    font-size: 13px;
    user-select: all;
    display: none;
}

.crm-modal-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--border-color, #dee2e6);
}

.crm-modal-btn-cancelar {
    padding: 7px 16px;
    border-radius: 4px;
    border: 1px solid var(--border-color, #dee2e6);
    background: var(--card-bg, #fff);
    color: var(--text-color, inherit);
    cursor: pointer;
}

.crm-modal-btn-salvar {
    padding: 7px 18px;
    border-radius: 4px;
    border: 1px solid var(--primary-color, #007bff);
    background: var(--primary-color, #007bff);
    color: #fff;
    cursor: pointer;
    font-weight: 500;
}

.crm-modal-btn-salvar:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* CRM F1-25a: ficha Cliente 360 (cabecalho e esqueleto de containers) */
.crm-ficha-topo {
    margin-bottom: 12px;
}

.crm-ficha-cabecalho {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px 24px;
    padding: 16px;
    margin-bottom: 16px;
}

.crm-ficha-titulo {
    flex: 1 1 260px;
    min-width: 0;
}

.crm-ficha-nome {
    margin: 0;
    font-size: 22px;
    overflow-wrap: anywhere;
}

.crm-ficha-fantasia {
    display: block;
    margin-top: 2px;
}

.crm-ficha-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.crm-ficha-meta-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.crm-ficha-meta-rotulo {
    color: var(--text-light);
    font-size: 12px;
}

.crm-ficha-meta-valor {
    font-weight: 600;
}

.crm-ficha-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.crm-ficha-carregando {
    flex: 1 1 100%;
    text-align: center;
    color: var(--text-light);
}

.crm-ficha-erro {
    flex: 1 1 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 0;
}

.crm-ficha-indicadores,
.crm-ficha-dados,
.crm-ficha-obs-upload {
    margin-bottom: 16px;
}

.crm-ficha-indicadores:empty,
.crm-ficha-dados:empty,
.crm-ficha-obs-upload:empty {
    display: none;
}

/* CRM F1-25c: faixa de indicadores da ficha Cliente 360 */
.crm-ind-grade {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}

.crm-ind-cartao {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 8px;
    background: var(--card-bg);
}

.crm-ind-rotulo {
    color: var(--text-light);
    font-size: 12px;
}

.crm-ind-valor {
    font-size: 18px;
    font-weight: 600;
}

.crm-ind-detalhe {
    color: var(--text-light);
    min-height: 1em;
}

/* Vencido > 0: borda grossa + marcador "!" (nao depende so' de cor) */
.crm-ind-alerta {
    border-width: 2px;
    border-color: var(--danger-color, #dc3545);
}

.crm-ind-alerta .crm-ind-valor,
.crm-ind-alerta .crm-ind-rotulo {
    color: var(--danger-color, #dc3545);
}

.crm-ind-alerta .crm-ind-rotulo::before {
    content: "! ";
    font-weight: 700;
}

.crm-ind-aviso {
    grid-column: span 2;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 14px;
    border: 1px dashed var(--border-color, #dee2e6);
    border-radius: 8px;
    color: var(--text-light);
}

.crm-ind-top {
    grid-column: span 2;
}

.crm-ind-top-lista {
    margin: 0;
    padding-left: 18px;
}

.crm-ind-top-item {
    display: flex;
    flex-direction: column;
}

.crm-ind-nota {
    display: block;
    margin-top: 6px;
    color: var(--text-light);
}

/* CRM F1-25b: grupos Dados/Contatos/Enderecos/Credito (sem box) e boxes Observacoes/Upload da ficha Cliente 360 */
.crm-ficha-grupo {
    margin-bottom: 18px;
}

.crm-ficha-grupo-titulo {
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 10px;
}

.crm-ficha-subtitulo {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-light);
    margin: 12px 0 6px;
}

.crm-ficha-grade {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px 15px;
    align-items: end;
}

.crm-ficha-campo-largo {
    grid-column: span 2;
}

.crm-ficha-input {
    width: 100%;
    height: 32px;
    background: var(--card-bg);
}

.crm-ficha-status {
    min-height: 32px;
    display: flex;
    align-items: center;
}

.crm-ficha-vazio {
    color: var(--text-light);
    padding: 6px 0;
}

.crm-ficha-pessoas {
    width: 100%;
    border-collapse: collapse;
}

.crm-ficha-pessoas th,
.crm-ficha-pessoas td {
    text-align: left;
    padding: 6px 10px;
    border-bottom: 1px solid var(--border-color, #dee2e6);
}

.crm-ficha-pessoas th {
    color: var(--text-light);
    font-size: 12px;
}

.crm-ficha-obs-upload-linha {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-start;
}

.crm-ficha-box {
    flex: 1;
    min-width: 280px;
    margin-bottom: 0;
}

.crm-ficha-observacoes {
    width: 100%;
    min-height: 120px;
    background: var(--card-bg);
    resize: none;
    white-space: pre-wrap;
    font-family: inherit;
}

.crm-ficha-upload-reservado {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 10px;
    text-align: center;
    color: var(--text-light);
    background: var(--card-bg);
    border: 1px dashed var(--border-color, #dee2e6);
    border-radius: 10px;
    opacity: 0.7;
    cursor: not-allowed;
}

/* CRM F1-27: modal Registrar interacao (campos form-control campo-padrao, fonte >= 15px) e aba Interacoes */
.crm-modal-card .form-control.campo-padrao {
    font-size: var(--campo-padrao-fonte-minima, 15px);
    padding: 0 15px;
    border-radius: var(--campo-padrao-raio, 10px);
    border: 1px solid var(--campo-padrao-borda, rgba(56, 189, 248, 0.4));
    background: var(--campo-padrao-fundo, var(--card-bg, #fff));
}

.crm-modal-card textarea.form-control.campo-padrao {
    padding: 10px 15px;
}

.crm-modal-card .form-control.campo-padrao:focus {
    border-color: var(--campo-padrao-borda-foco, #38bdf8);
}

.crm-followup .crm-form-rotulo {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

.crm-followup .form-control {
    margin-top: 6px;
}

.crm-aba-barra {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
}

.crm-interacao-item {
    padding: 10px 0;
    border-bottom: 1px solid var(--border-color, #dee2e6);
}

.crm-interacao-cab {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.crm-interacao-dir,
.crm-interacao-data,
.crm-interacao-autor {
    font-size: 12px;
    color: var(--text-muted, #6c757d);
}

.crm-interacao-acoes {
    margin-left: auto;
    display: inline-flex;
    gap: 6px;
}

.crm-interacao-assunto {
    margin-top: 4px;
    font-weight: 600;
}

.crm-interacao-resumo {
    margin-top: 2px;
    white-space: pre-line;
}

.crm-interacao-erro-lista {
    user-select: all;
}

@media (max-width: 600px) {
    #crm-modal-interacao .crm-form-linha {
        flex-direction: column;
        gap: 0;
    }
}

/* CRM F1-28: box Upload de anexos da interacao */
.crm-upload-box {
    border: 1px solid var(--border-color, rgba(0, 145, 255, 0.15));
    border-radius: 10px;
    padding: 10px;
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.crm-upload-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.crm-upload-titulo {
    font-weight: 700;
}

.crm-btn-upload {
    cursor: pointer;
    margin: 0;
    white-space: nowrap;
}

.crm-upload-status {
    font-size: 13px;
    user-select: all;
}

.crm-upload-status:empty {
    display: none;
}

.crm-upload-status-erro {
    color: #ef4444;
    font-weight: 600;
}

.crm-upload-status-sucesso {
    color: #10b981;
    font-weight: 600;
}

.crm-upload-status-info,
.crm-upload-status-aviso {
    color: #3b82f6;
    font-weight: 600;
}

.crm-anexos-lista {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.crm-anexo-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 6px;
    border: 1px solid var(--border-color, rgba(0, 0, 0, 0.08));
}

.crm-anexo-nome {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.crm-anexo-tamanho,
.crm-anexos-vazio {
    font-size: 12px;
    color: var(--text-muted, #64748b);
}

/* CRM F2-13a: Funil de Vendas em kanban (somente leitura) */
.crm-funil-cabecalho { margin-bottom: 12px; }
.crm-funil-titulo { margin: 0; font-size: 20px; }
.crm-funil-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}
.crm-funil-filtro { display: flex; flex-direction: column; gap: 4px; min-width: 180px; }
.crm-funil-filtro label { font-size: 12px; color: var(--text-muted, #6c757d); }
.crm-funil-quadro {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    overflow-x: auto;
    padding-bottom: 8px;
}
.crm-funil-coluna {
    flex: 0 0 260px;
    border: 1px solid var(--border-color, #dee2e6);
    border-top: 4px solid var(--border-color, #dee2e6);
    border-radius: 6px;
    background: var(--card-bg, #fff);
}
.crm-funil-coluna-cab { padding: 10px 12px; border-bottom: 1px solid var(--border-color, #dee2e6); }
.crm-funil-coluna-nome { font-weight: 600; margin-bottom: 6px; }
.crm-funil-total { display: flex; justify-content: space-between; font-size: 12px; }
.crm-funil-total-rotulo { color: var(--text-muted, #6c757d); }
.crm-funil-total-valor { font-weight: 600; }
.crm-funil-coluna-corpo { display: flex; flex-direction: column; gap: 8px; padding: 10px; }
.crm-funil-cartao {
    padding: 8px 10px;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 4px;
    background: var(--card-bg, #fff);
}
.crm-funil-cartao-atrasado { border-left: 3px solid var(--danger-color, #dc3545); }
.crm-funil-cartao-titulo { font-weight: 600; margin-bottom: 4px; word-break: break-word; }
.crm-funil-cartao-linha { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; }
.crm-funil-cartao-rotulo { color: var(--text-muted, #6c757d); }
.crm-funil-atraso { display: inline-block; margin-top: 4px; font-size: 11px; }
.crm-funil-mais {
    text-align: center;
    font-size: 12px;
    color: var(--text-muted, #6c757d);
    font-style: italic;
}

/* CRM F2-13b-2: modal 'Mover para...' do Funil */
.crm-funil-mover-overlay { z-index: 1050; }
.crm-funil-mover-card { max-width: 480px; width: 100%; }
.crm-funil-mover-info { font-size: 13px; color: var(--text-muted, #6c757d); margin-bottom: 12px; }
.crm-funil-mover-secao-perda { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.crm-funil-mover-erro { margin-bottom: 12px; }
.crm-funil-mover-btn-mover.crm-funil-mover-confirmar-ganho {
    background-color: var(--success-color, #28a745);
    border-color: var(--success-color, #28a745);
}

/* F2-13b: botao Mover para... do cartao (area de toque minima de 44px) */
.crm-funil-btn-mover {
    display: block;
    width: 100%;
    min-height: 44px;
    margin-top: 8px;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
}
.crm-funil-btn-mover:disabled { opacity: .6; cursor: default; }

/* CRM F2-13c: arrastar e soltar do cartao do Funil */
.crm-funil-cartao.crm-funil-arrastando,
.crm-funil-arrastando {
    opacity: 0.5;
    cursor: grabbing;
}
.crm-funil-coluna.crm-funil-solta,
.crm-funil-solta {
    background: rgba(0, 123, 255, 0.05);
    outline: 2px dashed var(--primary-color, #007bff);
}

/* CRM F2-15b: configuracao do funil - motivos de perda */
.crm-funil-config-motivos {
    margin-top: 24px;
}
.crm-funil-config-motivo-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 8px 0 12px;
}
.crm-funil-config-motivo-form .crm-funil-config-motivo-nome-novo {
    max-width: 320px;
}
.crm-funil-config-motivo-aviso {
    flex-basis: 100%;
}
.crm-funil-config-motivo-erro {
    white-space: pre-wrap;
    user-select: text;
}
.crm-funil-config-motivo-inativo {
    opacity: 0.55;
}

/* CRM F2-15c: configuracao do funil - origens */
.crm-funil-config-inativo {
    opacity: 0.55;
}
.crm-funil-config-origens {
    margin-top: 24px;
}
.crm-funil-config-origem-form {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
}
.crm-funil-config-origem-input {
    max-width: 320px;
}
.crm-badge-inativo {
    background-color: var(--secondary-color, #6c757d);
    color: #fff;
}

/* CRM F2-17c: faixa de resumo no topo do Funil */
.crm-funil-resumo {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
    padding: 12px;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 6px;
    background: var(--card-bg, #fff);
}
.crm-funil-resumo-item { flex: 1 1 140px; min-width: 120px; }
.crm-funil-resumo-motivos { flex-basis: 220px; }
.crm-funil-resumo-rotulo { font-size: 12px; color: var(--text-muted, #6c757d); }
.crm-funil-resumo-valor { font-size: 18px; font-weight: 600; }
.crm-funil-resumo-apoio { font-size: 12px; color: var(--text-muted, #6c757d); }
.crm-funil-resumo-motivos-lista { margin: 0; padding-left: 18px; font-size: 13px; }
.crm-funil-resumo-vazio { font-style: italic; color: var(--text-muted, #6c757d); }
.crm-funil-resumo-erro {
    flex: 1 1 100%;
    padding: 8px 12px;
    color: var(--danger-color, #dc3545);
    background: rgba(220, 53, 69, 0.1);
    border: 1px solid rgba(220, 53, 69, 0.3);
    border-radius: 4px;
    font-size: 13px;
    user-select: all;
}

/* CRM F2-18c: cartao recolhivel "Perdas por motivo" no Funil */
.crm-funil-perdas {
    margin-top: 16px;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: 6px;
    background: var(--card-bg, #fff);
}
.crm-funil-perdas-toggle {
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border: 0;
    background: transparent;
    font-weight: 600;
    cursor: pointer;
}
.crm-funil-perdas-toggle::before { content: '\25BE\00a0'; }
.crm-funil-perdas-toggle[aria-expanded="false"]::before { content: '\25B8\00a0'; }
.crm-funil-perdas-corpo { padding: 0 12px 12px; overflow-x: auto; }
.crm-funil-perdas-recolhido { display: none; }
.crm-funil-perdas-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.crm-funil-perdas-tabela th,
.crm-funil-perdas-tabela td { padding: 6px 8px; border-bottom: 1px solid var(--border-color, #dee2e6); text-align: left; }
.crm-funil-perdas-tabela th:not(:first-child),
.crm-funil-perdas-tabela .crm-funil-perdas-qtd,
.crm-funil-perdas-tabela .crm-funil-perdas-valor,
.crm-funil-perdas-tabela .crm-funil-perdas-pct { text-align: right; }
.crm-funil-perdas-total td { font-weight: 600; }
.crm-funil-perdas-vazio { padding: 12px; font-style: italic; color: var(--text-muted, #6c757d); }
.crm-funil-perdas-erro {
    padding: 8px 12px;
    color: var(--danger-color, #dc3545);
    background: rgba(220, 53, 69, 0.1);
    border: 1px solid rgba(220, 53, 69, 0.3);
    border-radius: 4px;
    font-size: 13px;
    user-select: all;
}
