<?php
session_start();

// Verificar se o usuário está logado
if (!isset($_SESSION['logado']) || $_SESSION['logado'] !== true) {
    header('Location: login.php');
    exit;
}

// Verificar tenant_id
$tenant_id = $_SESSION['tenant_id'] ?? null;
if (!$tenant_id) {
    die("Tenant não identificado.");
}

// CSRF token
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

require_once 'conexao.php';

// Informações da sessão para permissões
$usuario_id = $_SESSION['usuario_id'] ?? null;
$permissao = $_SESSION['permissao'] ?? 'usuario';
$is_admin = ($permissao === 'admin' || $permissao === 'super_admin');
$nomeUsuario = $_SESSION['nome_usuario'] ?? 'Usuário';
$emailUsuario = $_SESSION['email_usuario'] ?? '';

// ========== FUNÇÕES DE ENVIO DE E-MAIL (copiadas do enviar_email.php) ========== //

/**
 * Função para enviar email usando PHPMailer + SMTP (SaaS)
 */
function enviarEmailPHPMailer($destinatario, $assunto, $mensagem, $nomeRemetente, $emailRemetenteReplyTo = null) {
    try {
        // Incluir arquivo de configurações SMTP externo
        require_once 'config_smtp.php';
        
        // Verificar se o PHPMailer está disponível
        $phpmailer_paths = [
            'PHPMailer/PHPMailer.php',
            'PHPMailer/src/PHPMailer.php',
            '../PHPMailer/PHPMailer.php',
            'vendor/phpmailer/phpmailer/src/PHPMailer.php'
        ];
        
        $phpmailer_file = null;
        $smtp_file = null;
        $exception_file = null;
        
        foreach ($phpmailer_paths as $path) {
            if (file_exists($path)) {
                $phpmailer_file = $path;
                $smtp_file = str_replace('PHPMailer.php', 'SMTP.php', $path);
                $exception_file = str_replace('PHPMailer.php', 'Exception.php', $path);
                break;
            }
        }
        
        if (!$phpmailer_file || !file_exists($phpmailer_file)) {
            return [
                'success' => false,
                'message' => 'PHPMailer não encontrado.'
            ];
        }
        
        // Incluir PHPMailer
        require_once $phpmailer_file;
        require_once $smtp_file;
        if (file_exists($exception_file)) {
            require_once $exception_file;
        }
        
        // Usar namespaces se disponível
        if (class_exists('PHPMailer\PHPMailer\PHPMailer')) {
            $mail = new PHPMailer\PHPMailer\PHPMailer(true);
            $mail->isSMTP();
            $mail->Host       = SMTP_HOST;
            $mail->SMTPAuth   = true;
            $mail->Username   = SMTP_USER;
            $mail->Password   = SMTP_PASS;
            $mail->SMTPSecure = PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS;
            $mail->Port       = SMTP_PORT;
        } else {
            // Fallback para versão sem namespace
            $mail = new PHPMailer(true);
            $mail->isSMTP();
            $mail->Host       = SMTP_HOST;
            $mail->SMTPAuth   = true;
            $mail->Username   = SMTP_USER;
            $mail->Password   = SMTP_PASS;
            $mail->SMTPSecure = 'tls';
            $mail->Port       = SMTP_PORT;
        }
        
        $mail->CharSet    = 'UTF-8';
        $mail->SMTPDebug  = 0;
        
        // ✅ CORREÇÃO: Usar SMTP_USER como remetente principal (conta do sistema)
        // mas definir o nome do remetente como o nome do usuário logado
        $mail->setFrom(SMTP_USER, $nomeRemetente);
        
        // ✅ CORREÇÃO: Reply-To é o email real do usuário (para respostas)
        if (!empty($emailRemetenteReplyTo) && filter_var($emailRemetenteReplyTo, FILTER_VALIDATE_EMAIL)) {
            $mail->addReplyTo($emailRemetenteReplyTo, $nomeRemetente);
        }
        
        // Destinatário
        $mail->addAddress($destinatario);
        
        // Conteúdo
        $mail->isHTML(true);
        $mail->Subject = $assunto;
        $mail->Body    = $mensagem;
        $mail->AltBody = strip_tags($mensagem);
        
        // Enviar
        if ($mail->send()) {
            return ['success' => true, 'message' => 'E-mail enviado com sucesso'];
        } else {
            return ['success' => false, 'message' => 'Erro ao enviar: ' . $mail->ErrorInfo];
        }
        
    } catch (Exception $e) {
        return ['success' => false, 'message' => 'Exception: ' . $e->getMessage()];
    }
}

/**
 * Função para enviar email usando mail() nativo (fallback)
 */
function enviarEmailNativo($destinatario, $assunto, $mensagem, $nomeRemetente, $emailRemetenteReplyTo = null) {
    // Usar SMTP_USER como remetente principal (conta do sistema)
    $remetenteEmail = SMTP_USER;
        
    $headers = "From: $nomeRemetente <$remetenteEmail>\r\n";
    
    if ($emailRemetenteReplyTo && filter_var($emailRemetenteReplyTo, FILTER_VALIDATE_EMAIL)) {
        $headers .= "Reply-To: $emailRemetenteReplyTo\r\n";
    }
    
    $headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    
    if (mail($destinatario, $assunto, $mensagem, $headers)) {
        return ['success' => true, 'message' => 'E-mail enviado com sucesso (mail())'];
    }
    
    return ['success' => false, 'message' => 'Falha no envio via mail()'];
}

/**
 * Função principal para enviar email (tenta PHPMailer, depois fallback para mail())
 */
function enviarEmail($destinatario, $assunto, $mensagem, $nomeRemetente, $emailRemetenteReplyTo = null) {
    // Primeiro tenta com PHPMailer
    $resultado = enviarEmailPHPMailer($destinatario, $assunto, $mensagem, $nomeRemetente, $emailRemetenteReplyTo);
    
    // Se PHPMailer falhar, tenta com mail() nativo
    if (!$resultado['success']) {
        error_log("PHPMailer falhou, tentando mail() nativo: " . $resultado['message']);
        $resultado = enviarEmailNativo($destinatario, $assunto, $mensagem, $nomeRemetente, $emailRemetenteReplyTo);
    }
    
    return $resultado;
}

// ========== FUNÇÕES EXISTENTES ========== //

// Buscar se o usuário pode ver todos os clientes
$stmtPerm = $conn->prepare("SELECT ver_todos_clientes FROM usuarios WHERE id = ?");
$stmtPerm->bind_param("i", $usuario_id);
$stmtPerm->execute();
$resultPerm = $stmtPerm->get_result();
$linhaPerm = $resultPerm->fetch_assoc();
$ver_todos_clientes = isset($linhaPerm['ver_todos_clientes']) ? (int)$linhaPerm['ver_todos_clientes'] : 0;
$stmtPerm->close();

// Buscar formulários disponíveis
$formularios = [];
$query = "SELECT id, nome, criado_em FROM formularios WHERE tenant_id = ? ORDER BY criado_em DESC";
$stmt = $conn->prepare($query);
if ($stmt) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $formularios = $result->fetch_all(MYSQLI_ASSOC);
    $stmt->close();
}

// Buscar origens disponíveis
$origens = [];
$query = "SELECT id, nome FROM origens WHERE tenant_id = ? AND ativo = 1 ORDER BY nome";
$stmt = $conn->prepare($query);
if ($stmt) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $origens = $result->fetch_all(MYSQLI_ASSOC);
    $stmt->close();
}

// Buscar estados disponíveis (UFs)
$estados = [];
$query = "SELECT DISTINCT Estado FROM clientes 
          WHERE tenant_id = ? AND Estado IS NOT NULL AND Estado != '' 
          AND (deletado_em IS NULL OR deletado_em = '0000-00-00 00:00:00')
          ORDER BY Estado";
$stmt = $conn->prepare($query);
if ($stmt) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        if (!empty($row['Estado'])) {
            $estados[] = $row['Estado'];
        }
    }
    $stmt->close();
}

// Buscar cidades disponíveis
$cidades = [];
$query = "SELECT DISTINCT Cidade FROM clientes 
          WHERE tenant_id = ? AND Cidade IS NOT NULL AND Cidade != '' 
          AND (deletado_em IS NULL OR deletado_em = '0000-00-00 00:00:00')
          ORDER BY Cidade";
$stmt = $conn->prepare($query);
if ($stmt) {
    $stmt->bind_param("i", $tenant_id);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        if (!empty($row['Cidade'])) {
            $cidades[] = $row['Cidade'];
        }
    }
    $stmt->close();
}

// Buscar clientes conforme permissões
if ($is_admin || $ver_todos_clientes === 1) {
    $query = "SELECT 
                c.id, 
                c.Nome_Cliente, 
                c.Email, 
                c.Telefone, 
                c.Estado, 
                c.Cidade, 
                o.id as origem_id,
                o.nome as origem_nome,
                c.responsavel,
                u.nome AS responsavel_nome,
                ur.nome AS usuario_cadastro_nome
              FROM clientes c 
              LEFT JOIN usuarios u ON c.responsavel = u.id 
              LEFT JOIN usuarios ur ON c.usuario_cadastro = ur.id 
              LEFT JOIN origens o ON c.origem_id = o.id AND o.tenant_id = c.tenant_id
              WHERE c.tenant_id = ? AND (c.deletado_em IS NULL OR c.deletado_em = '0000-00-00 00:00:00')
              ORDER BY c.Nome_Cliente ASC";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("i", $tenant_id);
} else {
    $query = "SELECT 
                c.id, 
                c.Nome_Cliente, 
                c.Email, 
                c.Telefone, 
                c.Estado, 
                c.Cidade, 
                o.id as origem_id,
                o.nome as origem_nome,
                c.responsavel,
                u.nome AS responsavel_nome,
                ur.nome AS usuario_cadastro_nome
              FROM clientes c 
              LEFT JOIN usuarios u ON c.responsavel = u.id 
              LEFT JOIN usuarios ur ON c.usuario_cadastro = ur.id 
              LEFT JOIN origens o ON c.origem_id = o.id AND o.tenant_id = c.tenant_id
              WHERE c.tenant_id = ? AND c.responsavel = ? 
              AND (c.deletado_em IS NULL OR c.deletado_em = '0000-00-00 00:00:00')
              ORDER BY c.Nome_Cliente ASC";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("ii", $tenant_id, $usuario_id);
}

$stmt->execute();
$resultado = $stmt->get_result();

if (!$resultado) {
    die("Erro ao buscar clientes: " . $conn->error);
}

$clientes = [];
while ($cliente = $resultado->fetch_assoc()) {
    $camposParaGarantir = [
        'Nome_Cliente' => '',
        'Email' => '',
        'Telefone' => '',
        'Estado' => '',
        'Cidade' => '',
        'origem_id' => null,
        'origem_nome' => '',
        'responsavel' => '',
        'responsavel_nome' => 'Não atribuído',
        'usuario_cadastro_nome' => ''
    ];
    
    foreach ($camposParaGarantir as $campo => $valorPadrao) {
        if (!isset($cliente[$campo]) || $cliente[$campo] === null) {
            $cliente[$campo] = $valorPadrao;
        }
    }
    
    $clientes[] = $cliente;
}

$stmt->close();

// Função para converter caminho relativo em URL absoluta
function converterParaUrlAbsoluta($caminhoRelativo) {
    if (filter_var($caminhoRelativo, FILTER_VALIDATE_URL)) {
        return $caminhoRelativo;
    }
    
    $protocolo = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
    $host = $_SERVER['HTTP_HOST'];
    
    if (strpos($caminhoRelativo, '/') === 0) {
        return $protocolo . "://" . $host . $caminhoRelativo;
    }
    
    $diretorioBase = dirname($_SERVER['PHP_SELF']);
    return $protocolo . "://" . $host . $diretorioBase . '/' . ltrim($caminhoRelativo, '/');
}

// Função para carregar dados da assinatura
function carregarDadosAssinatura($conn, $tenantId, $usuarioId) {
    try {
        $stmt = $conn->prepare("SELECT logo_path, nome as nome_tenant FROM tenants WHERE id = ?");
        $stmt->bind_param("i", $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        $tenant = $result->fetch_assoc();
        $stmt->close();
        
        $stmt = $conn->prepare("SELECT nome, email, assinatura_email, telefone, cargo FROM usuarios WHERE id = ?");
        $stmt->bind_param("i", $usuarioId);
        $stmt->execute();
        $result = $stmt->get_result();
        $usuario = $result->fetch_assoc();
        $stmt->close();
        
        return [
            'tenant' => $tenant,
            'usuario' => $usuario
        ];
        
    } catch (Exception $e) {
        error_log("Erro ao carregar dados da assinatura: " . $e->getMessage());
        return null;
    }
}

// Função para gerar assinatura HTML
function gerarAssinatura($dadosAssinatura) {
    if (!$dadosAssinatura) return '';
    
    $logo = $dadosAssinatura['tenant']['logo_path'] ?? '';
    $nomeUsuario = $dadosAssinatura['usuario']['nome'] ?? '';
    $emailUsuario = $dadosAssinatura['usuario']['email'] ?? '';
    $telefoneUsuario = $dadosAssinatura['usuario']['telefone'] ?? '';
    $cargoUsuario = $dadosAssinatura['usuario']['cargo'] ?? '';
    $nomeTenant = $dadosAssinatura['tenant']['nome_tenant'] ?? '';
    
    if (!empty($dadosAssinatura['usuario']['assinatura_email'])) {
        return $dadosAssinatura['usuario']['assinatura_email'];
    }
    
    $assinatura = "\n\n<div style='margin-top: 30px; padding-top: 20px; border-top: 2px solid #007bff; font-family: Arial, sans-serif; color: #333;'>\n";
    
    if (!empty($logo)) {
        $logoUrl = converterParaUrlAbsoluta($logo);
        $assinatura .= "    <div style='margin-bottom: 15px;'>\n";
        $assinatura .= "        <img src='{$logoUrl}' alt='{$nomeTenant}' style='max-height: 50px; max-width: 200px;' />\n";
        $assinatura .= "    </div>\n";
    }
    
    $assinatura .= "    <div style='line-height: 1.6;'>\n";
    $assinatura .= "        <strong>{$nomeUsuario}</strong>\n";
    
    if (!empty($cargoUsuario)) {
        $assinatura .= "        <br>{$cargoUsuario}\n";
    }
    
    if (!empty($nomeTenant)) {
        $assinatura .= "        <br>{$nomeTenant}\n";
    }
    
    if (!empty($emailUsuario)) {
        $assinatura .= "        <br>E-mail: <a href='mailto:{$emailUsuario}' style='color: #007bff; text-decoration: none;'>{$emailUsuario}</a>\n";
    }
    
    if (!empty($telefoneUsuario)) {
        $assinatura .= "        <br>Telefone: {$telefoneUsuario}\n";
    }
    
    $assinatura .= "    </div>\n";
    $assinatura .= "</div>";
    
    return $assinatura;
}

// Função para substituir variáveis no conteúdo do e-mail
function substituirVariaveisEmail($conteudo, $clienteId, $conn, $tenantId, $formulario = null, $link = null) {
    try {
        $stmt = $conn->prepare("
            SELECT 
                c.*,
                f.nome as nome_funil,
                ef.nome as nome_etapa,
                u_resp.nome as nome_responsavel,
                u_resp.email as email_responsavel,
                u_cad.nome as nome_usuario_cadastro,
                t.nome as nome_tenant
            FROM clientes c
            LEFT JOIN funis f ON c.funil_id = f.id AND f.tenant_id = ?
            LEFT JOIN etapas_funis ef ON c.etapa_funil_id = ef.id
            LEFT JOIN usuarios u_resp ON c.responsavel = u_resp.id
            LEFT JOIN usuarios u_cad ON c.usuario_cadastro = u_cad.id
            LEFT JOIN tenants t ON c.tenant_id = t.id
            WHERE c.id = ? AND c.tenant_id = ?
        ");
        $stmt->bind_param("iii", $tenantId, $clienteId, $tenantId);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows === 0) {
            return $conteudo;
        }
        
        $cliente = $result->fetch_assoc();
        $stmt->close();
        
        $substituicoes = [
            '{cliente_id}' => $cliente['id'],
            '{cliente_nome}' => $cliente['Nome_Cliente'] ?? '',
            '{nome_cliente}' => $cliente['Nome_Cliente'] ?? '',
            '[NOME_CLIENTE]' => $cliente['Nome_Cliente'] ?? '',
            '{cliente_email}' => $cliente['Email'] ?? '',
            '{email_cliente}' => $cliente['Email'] ?? '',
            '{cliente_telefone}' => $cliente['Telefone'] ?? '',
            '{telefone_cliente}' => $cliente['Telefone'] ?? '',
            '{cliente_celular}' => $cliente['Celular'] ?? '',
            '{celular_cliente}' => $cliente['Celular'] ?? '',
            '{cliente_cidade}' => $cliente['Cidade'] ?? '',
            '{cidade_cliente}' => $cliente['Cidade'] ?? '',
            '{cliente_estado}' => $cliente['Estado'] ?? '',
            '{estado_cliente}' => $cliente['Estado'] ?? '',
            '{data_cadastro}' => date('d/m/Y', strtotime($cliente['Data_Cadastro'])),
            '{data_atual}' => date('d/m/Y'),
            '{data}' => date('d/m/Y'),
            '{hora_atual}' => date('H:i:s'),
            '{hora}' => date('H:i:s'),
            '{data_hora}' => date('d/m/Y H:i:s'),
            '{url_sistema}' => 'https://' . $_SERVER['HTTP_HOST'],
            '{sistema_nome}' => 'SON',
            '{tenant_nome}' => $cliente['nome_tenant'] ?? '',
            '{responsavel_nome}' => $cliente['nome_responsavel'] ?? '',
            '{link_formulario}' => $link ?? '',
            '{link}' => $link ?? ''
        ];
        
        if ($formulario) {
            $substituicoes['{formulario_nome}'] = $formulario['nome'] ?? '';
            $substituicoes['{nome_formulario}'] = $formulario['nome'] ?? '';
            $substituicoes['[NOME_FORMULARIO]'] = $formulario['nome'] ?? '';
            $substituicoes['{formulario_id}'] = $formulario['id'] ?? '';
        }
        
        return str_replace(
            array_keys($substituicoes),
            array_values($substituicoes),
            $conteudo
        );
        
    } catch (Exception $e) {
        error_log("Erro ao substituir variáveis: " . $e->getMessage());
        return $conteudo;
    }
}

// Função para registrar log de e-mail enviado
function registrarLogEmail($conn, $clienteId, $usuarioId, $nomeUsuario, $assunto, $destinatario, $mensagem, $tenantId, $formularioId = null) {
    try {
        $acao = "Formulário Enviado em Massa";
        
        $mensagemLog = $mensagem;
        if (strlen($mensagemLog) > 1000) {
            $mensagemLog = substr($mensagemLog, 0, 1000) . "... [mensagem truncada]";
        }
        
        $detalhes = "Formulário enviado por e-mail (envio em massa):\n";
        $detalhes .= "- Formulário ID: " . ($formularioId ?? 'N/A') . "\n";
        $detalhes .= "- Cliente ID: {$clienteId}\n";
        $detalhes .= "- E-mail: {$destinatario}\n";
        $detalhes .= "- Assunto: {$assunto}\n\n";
        $detalhes .= "Conteúdo:\n{$mensagemLog}";
        
        $stmt = $conn->prepare("
            INSERT INTO cliente_logs 
            (cliente_id, usuario_id, nome_usuario, acao, detalhes, tenant_id, observacao_id) 
            VALUES (?, ?, ?, ?, ?, ?, 0)
        ");
        $stmt->bind_param("iissss", $clienteId, $usuarioId, $nomeUsuario, $acao, $detalhes, $tenantId);
        $result = $stmt->execute();
        $stmt->close();
        
        return $result;
        
    } catch (Exception $e) {
        error_log("Erro ao registrar log de e-mail: " . $e->getMessage());
        return false;
    }
}

// Carregar dados para assinatura
$dadosAssinatura = carregarDadosAssinatura($conn, $tenant_id, $usuario_id);
$assinatura = $dadosAssinatura ? gerarAssinatura($dadosAssinatura) : '';

// Processar envio em massa
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['enviar_formulario_massa'])) {
    // Verificar CSRF token
    if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        $_SESSION['mensagem'] = "Token de segurança inválido!";
        header('Location: enviar_formulario_massa.php');
        exit;
    }

    $formulario_id = (int)$_POST['formulario_id'];
    $clientes_selecionados = $_POST['clientes'] ?? [];
    $mensagem_personalizada = trim($_POST['mensagem_email'] ?? '');
    $incluirAssinatura = isset($_POST['incluir_assinatura']);
    
    // Validações
    if (empty($formulario_id)) {
        $_SESSION['mensagem'] = "Selecione um formulário!";
        header('Location: enviar_formulario_massa.php');
        exit;
    }
    
    if (empty($clientes_selecionados)) {
        $_SESSION['mensagem'] = "Selecione pelo menos um cliente!";
        header('Location: enviar_formulario_massa.php');
        exit;
    }
    
    // Verificar se o formulário existe
    $sqlVerifica = "SELECT * FROM formularios WHERE id = ? AND tenant_id = ?";
    $stmtVerifica = $conn->prepare($sqlVerifica);
    $stmtVerifica->bind_param("ii", $formulario_id, $tenant_id);
    $stmtVerifica->execute();
    $formulario = $stmtVerifica->get_result()->fetch_assoc();
    $stmtVerifica->close();
    
    if (!$formulario) {
        $_SESSION['mensagem'] = "Formulário selecionado não encontrado!";
        header('Location: enviar_formulario_massa.php');
        exit;
    }
    
    $enviados = 0;
    $falhas = 0;
    $resultados = [];
    
    foreach ($clientes_selecionados as $clienteId) {
        // Verificar permissão para este cliente
        if (!$is_admin && $ver_todos_clientes !== 1) {
            $sqlVerificaPerm = "SELECT id FROM clientes WHERE id = ? AND tenant_id = ? AND responsavel = ?";
            $stmtVerificaPerm = $conn->prepare($sqlVerificaPerm);
            $stmtVerificaPerm->bind_param("iii", $clienteId, $tenant_id, $usuario_id);
            $stmtVerificaPerm->execute();
            $temPermissao = $stmtVerificaPerm->get_result()->num_rows > 0;
            $stmtVerificaPerm->close();
            
            if (!$temPermissao) {
                $falhas++;
                $resultados[] = "✗ Sem permissão para enviar para o cliente ID {$clienteId}";
                continue;
            }
        }
        
        // Buscar dados do cliente
        $sqlCliente = "SELECT * FROM clientes WHERE id = ? AND tenant_id = ?";
        $stmtCliente = $conn->prepare($sqlCliente);
        $stmtCliente->bind_param("ii", $clienteId, $tenant_id);
        $stmtCliente->execute();
        $cliente = $stmtCliente->get_result()->fetch_assoc();
        $stmtCliente->close();
        
        if (!$cliente) {
            $falhas++;
            $resultados[] = "✗ Cliente ID {$clienteId} não encontrado";
            continue;
        }
        
        if (empty($cliente['Email'])) {
            $falhas++;
            $resultados[] = "✗ Cliente " . htmlspecialchars($cliente['Nome_Cliente']) . " não possui e-mail cadastrado";
            continue;
        }
        
        // Gerar token único para rastreamento
        $token = bin2hex(random_bytes(16));
        
        // Inserir token para rastreamento
        $sqlInsert = "INSERT INTO envios_formulario (cliente_id, formulario_id, token, data_envio, tenant_id) 
                     VALUES (?, ?, ?, NOW(), ?)";
        $stmtInsert = $conn->prepare($sqlInsert);
        $stmtInsert->bind_param("iisi", $clienteId, $formulario_id, $token, $tenant_id);
        
        if ($stmtInsert->execute()) {
            // Criar o link do formulário
            $link = "https://" . $_SERVER['HTTP_HOST'] . "/formulario_responder.php?cliente_id=" . $clienteId . "&formulario_id=" . $formulario_id . "&token=" . $token;
            
            // Preparar mensagem de e-mail
            $assunto = "Preenchimento de Formulário: " . htmlspecialchars($formulario['nome']);
            $mensagem = "Olá " . htmlspecialchars($cliente['Nome_Cliente']) . ",<br><br>";
            
            if (!empty($mensagem_personalizada)) {
                // Substituir placeholders
                $mensagemPersonalizada = str_replace(
                    ['[NOME_CLIENTE]', '[NOME_FORMULARIO]', '{link_formulario}', '{link}'],
                    [htmlspecialchars($cliente['Nome_Cliente']), htmlspecialchars($formulario['nome']), $link, $link],
                    $mensagem_personalizada
                );
                $mensagem .= nl2br(htmlspecialchars($mensagemPersonalizada)) . "<br><br>";
            } else {
                $mensagem .= "Por favor, preencha o formulário no link abaixo:<br><br>";
            }
            
            $mensagem .= "<a href='{$link}' style='background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>Preencher Formulário</a><br><br>";
            $mensagem .= "Ou copie o link: <br>{$link}<br><br>";
            $mensagem .= "Atenciosamente,<br>" . $_SESSION['nome_usuario'];
            
            // Substituir variáveis adicionais
            $assunto = substituirVariaveisEmail($assunto, $clienteId, $conn, $tenant_id, $formulario, $link);
            $mensagem = substituirVariaveisEmail($mensagem, $clienteId, $conn, $tenant_id, $formulario, $link);
            
            // Aplicar assinatura HTML se necessário
            if ($incluirAssinatura && !empty($assinatura)) {
                $mensagem .= $assinatura;
            }
            
            // Enviar e-mail usando a função enviarEmail (PHPMailer) - CORRIGIDO
            $resultadoEnvio = enviarEmail(
                $cliente['Email'],
                $assunto,
                $mensagem,
                $_SESSION['nome_usuario'] ?? 'Usuário', // ✅ Nome do usuário logado
                $_SESSION['email_usuario'] ?? ''        // ✅ Email do usuário para reply-to
            );
            
            if ($resultadoEnvio['success']) {
                $enviados++;
                
                // Log da ação
                $usuarioId = $_SESSION['usuario_id'] ?? 0;
                $nomeUsuario = $_SESSION['nome_usuario'] ?? 'Sistema';
                $detalhesLog = "Formulário enviado por e-mail (envio em massa):\n";
                $detalhesLog .= "- Formulário: " . htmlspecialchars($formulario['nome']) . "\n";
                $detalhesLog .= "- Cliente: " . htmlspecialchars($cliente['Nome_Cliente']) . "\n";
                $detalhesLog .= "- E-mail: " . $cliente['Email'] . "\n";
                $detalhesLog .= "- Link: " . $link;
                
                $sqlLog = "INSERT INTO cliente_logs (cliente_id, usuario_id, nome_usuario, acao, detalhes, tenant_id)
                           VALUES (?, ?, ?, 'Formulário Enviado em Massa', ?, ?)";
                $stmtLog = $conn->prepare($sqlLog);
                $stmtLog->bind_param("iisss", $clienteId, $usuarioId, $nomeUsuario, $detalhesLog, $tenant_id);
                $stmtLog->execute();
                $stmtLog->close();
                
                $resultados[] = "✓ Enviado para: " . htmlspecialchars($cliente['Nome_Cliente']) . " (" . $cliente['Email'] . ")";
            } else {
                $falhas++;
                $resultados[] = "✗ Falha no envio para: " . htmlspecialchars($cliente['Nome_Cliente']) . " (" . $cliente['Email'] . "): " . $resultadoEnvio['message'];
            }
        } else {
            $falhas++;
            $resultados[] = "✗ Erro ao registrar envio para: " . htmlspecialchars($cliente['Nome_Cliente']);
        }
        $stmtInsert->close();
    }
    
    $_SESSION['resultado_envio'] = [
        'enviados' => $enviados,
        'falhas' => $falhas,
        'detalhes' => $resultados
    ];
    
    $_SESSION['mensagem'] = "Processo concluído! {$enviados} e-mail(s) enviado(s), {$falhas} falha(s).";
    header('Location: enviar_formulario_massa.php');
    exit;
}

// Buscar resultado da última execução
$resultado_envio = $_SESSION['resultado_envio'] ?? null;
unset($_SESSION['resultado_envio']);
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon_io/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon_io/favicon-32x32.png">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SON - Enviar Formulários em Massa</title>
    <meta name="csrf-token" content="<?php echo $_SESSION['csrf_token']; ?>">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            background-color: #f5f5f5;
        }
        
        .header-fixed {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            background-color: #f5f5f5;
            padding: 15px 20px;
            z-index: 1000;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header-fixed img {
            height: 50px;
            margin-right: 15px;
        }
        
        .header-fixed h2 {
            margin: 0;
            flex-grow: 1;
            text-align: center;
        }
        
        /* Menu Lateral Recolhível */
        .sidebar {
            position: fixed;
            left: 0;
            top: 80px;
            height: calc(100vh - 80px);
            width: 60px;
            background: white;
            box-shadow: 2px 0 5px rgba(0,0,0,0.1);
            z-index: 999;
            transition: width 0.3s ease;
            overflow-x: hidden;
        }
        
        .sidebar-menu {
            list-style: none;
            padding: 0;
            margin: 0;
        }
        
        .sidebar-menu li {
            border-bottom: 1px solid #eee;
        }
        
        .sidebar-menu a {
            display: flex;
            align-items: center;
            padding: 15px 20px;
            text-decoration: none;
            color: #333;
            white-space: nowrap;
            transition: background-color 0.3s;
        }
        
        .sidebar-menu i {
            width: 24px;
            height: 24px;
            margin-right: 15px;
            text-align: center;
            flex-shrink: 0;
        }
        
        .sidebar-menu .menu-text {
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        /* Classes para menu */
        .menu-btn-success {
            color: #6B8E23;
        }
        
        .menu-btn-primary {
            color: #0000FF;
        }
        
        .menu-btn-danger {
            color: #e74c3c;
        }
        
        /* Conteúdo Principal */
        .content-wrapper {
            margin-top: 0px;
            margin-left: 80px;
            padding: 60px;
            transition: margin-right 0.3s ease;
        }
        
        .container {
            max-width: 1400px;
            margin: 0 auto;
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.05);
        }
        
        h1 {
            color: #333;
            border-bottom: 1px solid #eee;
            padding-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 30px;
        }
        
        h3 {
            color: #555;
            margin-top: 0;
            font-size: 1.2rem;
        }
        
        /* Alertas */
        .alert {
            padding: 15px;
            border-radius: 6px;
            margin-bottom: 25px;
            display: flex;
            align-items: center;
            gap: 12px;
            animation: slideIn 0.3s ease;
        }
        
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .alert-success {
            background: #d4edda;
            border: 1px solid #c3e6cb;
            color: #155724;
        }
        
        .alert-error {
            background: #f8d7da;
            border: 1px solid #f5c6cb;
            color: #721c24;
        }
        
        /* Formulário */
        .section {
            margin-bottom: 30px;
            padding: 25px;
            background: #f9f9f9;
            border-radius: 8px;
            border: 1px solid #eee;
        }
        
        .section-title {
            font-size: 20px;
            color: #2c3e50;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        label {
            display: block;
            margin-bottom: 8px;
            font-weight: 600;
            color: #2c3e50;
        }
        
        select, textarea, input[type="text"] {
            width: 100%;
            padding: 12px 15px;
            border: 1px solid #ddd;
            border-radius: 4px;
            font-size: 16px;
            transition: border-color 0.3s;
            box-sizing: border-box;
        }
        
        select:focus, textarea:focus, input[type="text"]:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 0 2px rgba(52,152,219,0.2);
        }
        
        /* Checkbox de assinatura */
        .assinatura-checkbox-container {
            background: #f0f7ff;
            border: 1px solid #b8daff;
            border-radius: 6px;
            padding: 15px 20px;
            margin: 20px 0;
            display: flex;
            align-items: center;
            gap: 15px;
            flex-wrap: wrap;
        }
        
        .assinatura-checkbox-container input[type="checkbox"] {
            width: 18px;
            height: 18px;
            margin: 0;
        }
        
        .assinatura-checkbox-container label {
            margin: 0;
            font-weight: 600;
            color: #004085;
            cursor: pointer;
        }
        
        .assinatura-checkbox-container .info-icon {
            color: #0062cc;
            font-size: 0.9rem;
            margin-left: auto;
        }
        
        /* Botão toggle de filtros */
        .filtros-toggle {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            padding: 15px 25px;
            border-radius: 12px;
            cursor: pointer;
            font-size: 16px;
            font-weight: 600;
            width: 100%;
            text-align: left;
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 20px;
            transition: all 0.3s ease;
            box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
        }
        
        .filtros-toggle:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
        }
        
        .filtros-toggle i {
            font-size: 20px;
            transition: transform 0.3s ease;
        }
        
        .filtros-toggle.active i {
            transform: rotate(180deg);
        }
        
        .toggle-text {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .toggle-text i {
            font-size: 18px;
        }
        
        /* Filtros - CONTAINER ESCONDIDO INICIALMENTE */
        .filtros-container {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 8px;
            padding: 25px;
            margin-bottom: 25px;
            display: none;
            animation: slideDown 0.3s ease;
        }
        
        .filtros-container.show {
            display: block;
        }
        
        @keyframes slideDown {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        
        .filtros-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin-bottom: 20px;
        }
        
        .filtro-item {
            background: white;
            padding: 15px;
            border-radius: 8px;
            border: 1px solid #e9ecef;
            box-shadow: 0 2px 4px rgba(0,0,0,0.02);
            min-width: 0;
        }
        
        .filtro-item label {
            font-size: 0.9rem;
            color: #495057;
            margin-bottom: 8px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .filtro-item label i {
            color: #3498db;
            width: 18px;
        }
        
        .filtro-item select, 
        .filtro-item input[type="text"] {
            width: 100%;
            padding: 10px 12px;
            border: 1px solid #ced4da;
            border-radius: 6px;
            font-size: 14px;
            background-color: white;
            transition: all 0.2s;
            box-sizing: border-box;
        }
        
        .filtro-item select:hover,
        .filtro-item input[type="text"]:hover {
            border-color: #3498db;
        }
        
        .filtro-item input[type="checkbox"] {
            width: auto;
            margin-right: 8px;
        }
        
        .filtro-opcoes {
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin-top: 10px;
        }
        
        .filtro-opcoes label {
            font-weight: normal;
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 0;
            cursor: pointer;
        }
        
        .filtro-opcoes label i {
            color: #27ae60;
            width: 16px;
        }
        
        .filtros-acoes {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
            padding-top: 15px;
            border-top: 1px solid #dee2e6;
            margin-top: 10px;
            align-items: center;
        }
        
        .contador-filtro {
            background: #3498db;
            color: white;
            padding: 6px 15px;
            border-radius: 20px;
            font-size: 0.9rem;
            font-weight: 600;
            display: inline-block;
            margin-left: auto;
        }
        
        /* LISTA DE CLIENTES */
        .clientes-lista {
            max-height: 500px;
            overflow-y: auto;
            border: 1px solid #e9ecef;
            border-radius: 8px;
            padding: 15px;
            background: #f8f9fa;
            margin: 20px 0;
        }
        
        .cliente-item {
            padding: 12px 15px;
            border-bottom: 1px solid #e9ecef;
            display: flex;
            align-items: center;
            transition: all 0.2s;
            background: white;
            margin-bottom: 8px;
            border-radius: 6px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.05);
        }
        .cliente-item:last-child {
            border-bottom: none;
            margin-bottom: 0;
        }
        .cliente-item:hover {
            background: #f0f7ff;
            transform: translateX(2px);
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        .cliente-item.selecionado {
            background: #e3f2fd;
            border-left: 4px solid #3498db;
        }
        .cliente-item input[type="checkbox"] {
            margin-right: 15px;
            transform: scale(1.1);
            min-width: 18px;
            width: 18px;
            height: 18px;
        }
        
        /* Grid com colunas */
        .cliente-info {
            flex: 1;
            display: grid;
            grid-template-columns: 250px 230px 120px 150px 130px 180px;
            gap: 10px;
            align-items: center;
        }
        
        .cliente-nome {
            font-weight: 600;
            color: #2c3e50;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-nome i {
            color: #3498db;
            margin-right: 6px;
            width: 16px;
        }
        
        .cliente-email {
            color: #27ae60;
            font-size: 0.95rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-email i {
            color: #27ae60;
            margin-right: 5px;
            width: 16px;
        }
        
        .cliente-telefone {
            color: #e67e22;
            font-size: 0.95rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-telefone i {
            color: #e67e22;
            margin-right: 5px;
            width: 16px;
        }
        
        .cliente-local {
            color: #8e44ad;
            font-size: 0.95rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-local i {
            color: #8e44ad;
            margin-right: 5px;
            width: 16px;
        }
        
        .cliente-origem {
            color: #16a085;
            font-size: 0.95rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-origem i {
            color: #16a085;
            margin-right: 5px;
            width: 16px;
        }
        
        .cliente-responsavel {
            color: #7f8c8d;
            font-size: 0.9rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cliente-responsavel i {
            color: #7f8c8d;
            margin-right: 5px;
            width: 16px;
        }
        
        .sem-email {
            color: #e74c3c;
            font-size: 0.8rem;
            background: #fde9e9;
            padding: 2px 6px;
            border-radius: 4px;
            white-space: nowrap;
            display: inline-block;
            margin-left: 5px;
        }
        
        .lista-header {
            display: grid;
            grid-template-columns: 33px 250px 230px 120px 150px 130px 180px;
            gap: 10px;
            padding: 10px 15px;
            background: #e9ecef;
            border-radius: 6px;
            margin-bottom: 10px;
            font-weight: bold;
            color: #495057;
            font-size: 0.9rem;
        }
        
        .header-checkbox {
            width: 18px;
        }
        
        .acoes {
            margin: 20px 0;
            display: flex;
            gap: 12px;
            align-items: center;
            flex-wrap: wrap;
        }
        
        .btn {
            padding: 12px 25px;
            border: none;
            border-radius: 6px;
            font-weight: 600;
            font-size: 16px;
            cursor: pointer;
            transition: all 0.3s;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.05);
        }
        .btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(0,0,0,0.1);
        }
        .btn:active {
            transform: translateY(0);
        }
        .btn-primary { background: #3498db; color: white; }
        .btn-success { background: #2ecc71; color: white; }
        .btn-info { background: #2980b9; color: white; }
        .btn-warning { background: #f39c12; color: white; }
        .btn-danger { background: #e74c3c; color: white; }
        .btn-secondary { background: #718096; color: white; }
        
        .contador {
            background: #3498db;
            color: white;
            padding: 8px 16px;
            border-radius: 30px;
            font-size: 14px;
            font-weight: 600;
            margin-left: auto;
            box-shadow: 0 2px 5px rgba(52,152,219,0.3);
        }
        
        .resultado-envio {
            background: #f8f9fa;
            border: 1px solid #e9ecef;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 25px;
        }
        
        .resumo {
            font-size: 1rem;
            margin-bottom: 15px;
            padding: 15px;
            background: #e8f4f8;
            border-radius: 6px;
            border-left: 4px solid #3498db;
        }
        
        .detalhes-resultado {
            max-height: 300px;
            overflow-y: auto;
            font-family: 'Courier New', monospace;
            font-size: 12px;
            background: #fff;
            padding: 15px;
            border: 1px solid #ddd;
            border-radius: 6px;
            line-height: 1.6;
        }
        
        .mensagem-placeholders {
            background: #f0f8ff;
            padding: 12px;
            border-radius: 6px;
            margin-top: 8px;
            font-size: 13px;
            color: #2c3e50;
            border: 1px solid #d4e6f1;
        }
        
        .mensagem-placeholders code {
            background: #fff;
            padding: 3px 6px;
            border-radius: 4px;
            border: 1px solid #3498db;
            color: #3498db;
            font-weight: 600;
        }
        
        .btn-voltar {
            display: inline-block;
            margin-bottom: 20px;
            padding: 10px 20px;
            background-color: #7f8c8d;
            color: white;
            text-decoration: none;
            border-radius: 6px;
            transition: all 0.3s;
        }
        .btn-voltar:hover {
            background-color: #6c7a7a;
            transform: translateX(-3px);
        }
        
        .loading {
            display: none;
            text-align: center;
            padding: 30px;
        }
        
        .loading i {
            font-size: 40px;
            color: #3498db;
        }
        
        .stats-bar {
            background: #fff;
            border: 1px solid #e9ecef;
            border-radius: 6px;
            padding: 12px 15px;
            margin-bottom: 15px;
            display: flex;
            gap: 25px;
            flex-wrap: wrap;
            font-size: 0.9rem;
            color: #495057;
        }
        .stats-bar span {
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .stats-bar i {
            color: #3498db;
            width: 16px;
        }
        
        .permissao-info {
            background: #fff3cd;
            border: 1px solid #ffeeba;
            color: #856404;
            padding: 10px 15px;
            border-radius: 6px;
            margin-bottom: 20px;
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 0.9rem;
        }
        .permissao-info i {
            color: #856404;
            font-size: 1.2rem;
        }
        
        /* Botão Fixo para Administração */
        .admin-fixed-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            background: #8e44ad;
            color: white;
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            box-shadow: 0 4px 8px rgba(0,0,0,0.2);
            z-index: 999;
            cursor: pointer;
            transition: all 0.3s;
        }
        
        .admin-fixed-btn:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 12px rgba(0,0,0,0.3);
        }
        
        .admin-fixed-btn .tooltip {
            position: absolute;
            right: 70px;
            background: #333;
            color: white;
            padding: 5px 10px;
            border-radius: 4px;
            font-size: 14px;
            white-space: nowrap;
            opacity: 0;
            transition: opacity 0.3s;
            pointer-events: none;
        }
        
        .admin-fixed-btn:hover .tooltip {
            opacity: 1;
        }
        
        /* Responsividade */
        @media (max-width: 1400px) {
            .cliente-info {
                grid-template-columns: 200px 180px 100px 120px 110px 150px;
            }
            .lista-header {
                grid-template-columns: 33px 200px 180px 100px 120px 110px 150px;
            }
        }
        
        @media (max-width: 1200px) {
            .filtros-grid {
                grid-template-columns: repeat(2, 1fr);
            }
            
            .cliente-info {
                grid-template-columns: 1fr;
                gap: 5px;
            }
            .lista-header {
                display: none;
            }
        }
        
        @media (max-width: 768px) {
            .header-fixed {
                padding: 12px 15px;
            }
            
            .header-fixed h2 {
                font-size: 1.3rem;
            }
            
            .content-wrapper {
                margin-top: 80px;
                padding: 15px;
            }
            
            .sidebar {
                display: none;
            }
            
            .container {
                padding: 20px;
            }
            
            .filtros-grid {
                grid-template-columns: 1fr;
            }
            
            .acoes {
                flex-direction: column;
            }
            
            .btn {
                width: 100%;
                justify-content: center;
            }
            
            .assinatura-checkbox-container {
                flex-direction: column;
                align-items: flex-start;
            }
            
            .assinatura-checkbox-container .info-icon {
                margin-left: 0;
            }
        }
    </style>
</head>
<body>
    <!-- Cabeçalho Fixo -->
    <div class="header-fixed">
        <img src="tvitec.png" alt="Logo TVITEC" style="height:40px; margin-right: 15px;">
        
        <div style="flex-grow: 1; display: flex; align-items: center; justify-content: center; gap: 12px;">
            <h2 style="margin: 0;">Sistema de Organização de Negócios</h2>
        </div>
        
        <div class="user-info" style="display:flex; align-items:center; gap:10px;">
            <?php if (!empty($_SESSION['foto_perfil'])): ?>
                <img src="<?php echo htmlspecialchars($_SESSION['foto_perfil']); ?>" class="user-photo" alt="Foto do usuário" style="width:40px; height:40px; border-radius:50%;">
            <?php else: ?>
                <div class="user-initial" style="width:40px; height:40px; border-radius:50%; background:#007bff; display:flex; align-items:center; justify-content:center; font-weight:bold; font-size:1.2em; color:white;">
                    <?php echo strtoupper(substr($_SESSION['nome_usuario'] ?? 'U', 0, 1)); ?>
                </div>
            <?php endif; ?>
            <div style="text-align:left;">
                <div style="font-weight: bold; color: #333; font-size: 1.1em;">
                    <?php echo htmlspecialchars($_SESSION['nome_usuario'] ?? 'Usuário'); ?>
                </div>
                <div style="font-size: 0.9em; color: #555;">
                    <?php echo htmlspecialchars($_SESSION['email_usuario'] ?? ''); ?>
                </div>
            </div>
        </div>
    </div>
    
    <?php include 'menu_lateral.php'; ?>
    
    <!-- Conteúdo Principal -->
    <div class="content-wrapper">
        <div class="container">
            <h1><i class="fas fa-envelope-open-text"></i> Enviar Formulários em Massa</h1>
            
            <?php if (!$is_admin && $ver_todos_clientes !== 1): ?>
                <div class="permissao-info">
                    <i class="fas fa-info-circle"></i>
                    Você está visualizando apenas os clientes onde é responsável.
                </div>
            <?php endif; ?>
            
<?php if (isset($_SESSION['mensagem'])): ?>
    <?php 
    // Determinar a cor do alerta baseado no conteúdo da mensagem
    $mensagem = $_SESSION['mensagem'];
    $temFalha = strpos($mensagem, '0 falha') === false; // Se não encontrar "0 falha", tem falha
    $classeAlerta = $temFalha ? 'alert-error' : 'alert-success';
    $iconeAlerta = $temFalha ? 'fa-exclamation-circle' : 'fa-check-circle';
    $tituloAlerta = $temFalha ? 'Atenção!' : 'Sucesso!';
    ?>
    <div class="alert <?php echo $classeAlerta; ?>" id="mensagem-alert">
        <i class="fas <?php echo $iconeAlerta; ?>"></i>
        <div style="flex: 1;">
            <strong><?php echo $tituloAlerta; ?></strong>
            <div><?php echo htmlspecialchars($mensagem); ?></div>
        </div>
        <button type="button" style="background: none; border: none; color: inherit; cursor: pointer; font-size: 20px;" onclick="document.getElementById('mensagem-alert').style.display='none'">
            <i class="fas fa-times"></i>
        </button>
    </div>
    
    <script>
        setTimeout(function() {
            var alertDiv = document.getElementById('mensagem-alert');
            if (alertDiv) {
                alertDiv.style.display = 'none';
            }
        }, 8000);
    </script>
    
    <?php 
    unset($_SESSION['mensagem']);
    ?>
<?php endif; ?>
            
            <?php if ($resultado_envio): ?>
                <div class="resultado-envio">
                    <h3><i class="fas fa-chart-bar"></i> Resultado do Envio</h3>
                    <div class="resumo" style="border-left-color: <?php echo $resultado_envio['falhas'] > 0 ? '#e74c3c' : '#27ae60'; ?>">
                        <i class="fas fa-users"></i> <strong>Total processado:</strong> <?php echo $resultado_envio['enviados'] + $resultado_envio['falhas']; ?> cliente(s) | 
                        <i class="fas fa-check-circle" style="color: #27ae60;"></i> <strong>Enviados:</strong> <?php echo $resultado_envio['enviados']; ?> | 
                        <i class="fas fa-times-circle" style="color: #e74c3c;"></i> <strong>Falhas:</strong> <?php echo $resultado_envio['falhas']; ?>
                    </div>
                    <div class="detalhes-resultado">
                        <?php foreach ($resultado_envio['detalhes'] as $detalhe): ?>
                            <div style="<?php echo strpos($detalhe, '✓') !== false ? 'color: #27ae60;' : 'color: #e74c3c;'; ?>">
                                <?php echo htmlspecialchars($detalhe); ?>
                            </div>
                        <?php endforeach; ?>
                    </div>
                </div>
            <?php endif; ?>
            
            <form method="POST" id="formEnvioMassa">
                <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
                <input type="hidden" name="enviar_formulario_massa" value="1">
                
                <div class="section">
                    <h3 class="section-title"><i class="fas fa-file-alt"></i> Selecione o Formulário</h3>
                    <div class="form-group">
                        <select name="formulario_id" id="formulario_id" required>
                            <option value="">-- Selecione um formulário --</option>
                            <?php foreach ($formularios as $formulario): ?>
                                <option value="<?php echo $formulario['id']; ?>">
                                    <?php echo htmlspecialchars($formulario['nome']); ?> 
                                    (<?php echo date('d/m/Y', strtotime($formulario['criado_em'])); ?>)
                                </option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                </div>
                
                <!-- Checkbox de assinatura - APENAS CHECKBOX, SEM PREVIEW -->
                <?php if (!empty($assinatura)): ?>
                <div class="assinatura-checkbox-container">
                    <input type="checkbox" id="incluir_assinatura" name="incluir_assinatura" value="1" checked>
                    <label for="incluir_assinatura">
                        <i class="fas fa-signature"></i> Incluir minha assinatura no e-mail
                    </label>
                    <span class="info-icon">
                        <i class="fas fa-info-circle"></i> A assinatura (com logo) será incluída automaticamente no final da mensagem
                    </span>
                </div>
                <?php endif; ?>
                
               
                
                <!-- Filtros (inicialmente escondidos) -->
                <div class="filtros-container" id="filtrosContainer">
                    <h3 class="section-title" style="margin-bottom: 20px;"><i class="fas fa-filter"></i> Filtros</h3>
                    
                    <div class="filtros-grid">
                        <div class="filtro-item">
                            <label><i class="fas fa-user"></i> Nome do Cliente</label>
                            <input type="text" id="filtroNome" placeholder="Digite parte do nome..." autocomplete="off">
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-envelope"></i> E-mail</label>
                            <input type="text" id="filtroEmail" placeholder="Digite parte do e-mail..." autocomplete="off">
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-map-marker-alt"></i> Estado (UF)</label>
                            <select id="filtroEstado">
                                <option value="">Todos os estados</option>
                                <?php foreach ($estados as $estado): ?>
                                    <option value="<?php echo htmlspecialchars($estado); ?>"><?php echo htmlspecialchars($estado); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-city"></i> Cidade</label>
                            <select id="filtroCidade">
                                <option value="">Todas as cidades</option>
                                <?php foreach ($cidades as $cidade): ?>
                                    <option value="<?php echo htmlspecialchars($cidade); ?>"><?php echo htmlspecialchars($cidade); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-source"></i> Origem</label>
                            <select id="filtroOrigem">
                                <option value="">Todas as origens</option>
                                <?php foreach ($origens as $origem): ?>
                                    <option value="<?php echo htmlspecialchars($origem['id']); ?>">
                                        <?php echo htmlspecialchars($origem['nome']); ?>
                                    </option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-user-tie"></i> Responsável</label>
                            <select id="filtroResponsavel">
                                <option value="">Todos os responsáveis</option>
                                <?php 
                                $responsaveis = [];
                                foreach ($clientes as $cliente) {
                                    if (!empty($cliente['responsavel_nome']) && $cliente['responsavel_nome'] !== 'Não atribuído') {
                                        $responsaveis[$cliente['responsavel_nome']] = true;
                                    }
                                }
                                ksort($responsaveis);
                                foreach (array_keys($responsaveis) as $responsavel): 
                                ?>
                                    <option value="<?php echo htmlspecialchars($responsavel); ?>"><?php echo htmlspecialchars($responsavel); ?></option>
                                <?php endforeach; ?>
                            </select>
                        </div>
                        
                        <div class="filtro-item">
                            <label><i class="fas fa-check-circle"></i> Opções</label>
                            <div class="filtro-opcoes">
                                <label>
                                    <input type="checkbox" id="filtroApenasComEmail" checked> 
                                    <i class="fas fa-envelope" style="color: #3498db;"></i> Apenas clientes com e-mail
                                </label>
                                <label>
                                    <input type="checkbox" id="filtroApenasMeus"> 
                                    <i class="fas fa-user" style="color: #27ae60;"></i> Apenas meus clientes
                                </label>
                            </div>
                        </div>
                    </div>
                    
                    <div class="stats-bar">
                        <span><i class="fas fa-users"></i> Total: <?php echo count($clientes); ?></span>
                        <span><i class="fas fa-envelope"></i> Com e-mail: <?php echo count(array_filter($clientes, function($c) { return !empty($c['Email']); })); ?></span>
                    </div>
                    
                    <div class="filtros-acoes">
                        <button type="button" class="btn btn-secondary" onclick="limparFiltros()">
                            <i class="fas fa-eraser"></i> Limpar Filtros
                        </button>
                        <button type="button" class="btn btn-primary" onclick="aplicarFiltros()">
                            <i class="fas fa-search"></i> Aplicar Filtros
                        </button>
                        <span class="contador-filtro" id="contadorFiltro">0 visíveis</span>
                    </div>
                </div>
                
                <div class="acoes">
                    <button type="button" class="btn btn-info" onclick="selecionarTodos()">
                        <i class="fas fa-check-square"></i> Selecionar Todos
                    </button>
                    <button type="button" class="btn btn-primary" onclick="selecionarFiltrados()">
                        <i class="fas fa-filter"></i> Selecionar Filtrados
                    </button>
                    <button type="button" class="btn btn-secondary" onclick="limparSelecao()">
                        <i class="fas fa-square"></i> Limpar Seleção
                    </button>
                    <button type="button" class="btn btn-warning" onclick="selecionarComEmail()">
                        <i class="fas fa-envelope"></i> Selecionar com e-mail
                    </button>
                    <span class="contador" id="contadorSelecionados">0 selecionados</span>
                </div>
                
                <div class="loading" id="loading">
                    <i class="fas fa-spinner fa-spin"></i> Processando...
                </div>
                
                <!-- Cabeçalho da lista -->
                <div class="lista-header">
                    <div class="header-checkbox"></div>
                    <div class="header-nome"><i class="fas fa-user"></i> Nome</div>
                    <div class="header-email"><i class="fas fa-envelope"></i> E-mail</div>
                    <div class="header-telefone"><i class="fas fa-phone"></i> Telefone</div>
                    <div class="header-local"><i class="fas fa-map-marker-alt"></i> Local</div>
                    <div class="header-origem"><i class="fas fa-source"></i> Origem</div>
                    <div class="header-responsavel"><i class="fas fa-user-tie"></i> Responsável</div>
                </div>
                
                <div class="clientes-lista" id="clientesLista">
                    <?php foreach ($clientes as $cliente): ?>
                        <div class="cliente-item" 
                             data-nome="<?php echo strtolower(htmlspecialchars($cliente['Nome_Cliente'] ?? '')); ?>"
                             data-email="<?php echo strtolower(htmlspecialchars($cliente['Email'] ?? '')); ?>"
                             data-telefone="<?php echo htmlspecialchars($cliente['Telefone'] ?? ''); ?>"
                             data-estado="<?php echo strtolower(htmlspecialchars($cliente['Estado'] ?? '')); ?>"
                             data-cidade="<?php echo strtolower(htmlspecialchars($cliente['Cidade'] ?? '')); ?>"
                             data-origem-id="<?php echo htmlspecialchars($cliente['origem_id'] ?? ''); ?>"
                             data-origem-nome="<?php echo strtolower(htmlspecialchars($cliente['origem_nome'] ?? '')); ?>"
                             data-responsavel="<?php echo strtolower(htmlspecialchars($cliente['responsavel_nome'] ?? '')); ?>"
                             data-tem-email="<?php echo !empty($cliente['Email']) ? '1' : '0'; ?>"
                             data-responsavel-id="<?php echo htmlspecialchars($cliente['responsavel'] ?? ''); ?>">
                            
                            <input type="checkbox" name="clientes[]" value="<?php echo $cliente['id']; ?>" 
                                   class="cliente-checkbox"
                                   <?php echo !empty($cliente['Email']) ? '' : 'disabled'; ?>>
                            
                            <div class="cliente-info">
                                <span class="cliente-nome" title="<?php echo htmlspecialchars($cliente['Nome_Cliente'] ?? ''); ?>">
                                    <i class="fas fa-user"></i> 
                                    <?php echo htmlspecialchars(mb_substr($cliente['Nome_Cliente'] ?? '', 0, 30)); ?>
                                    <?php if (empty($cliente['Email'])): ?>
                                        <span class="sem-email"><i class="fas fa-exclamation-triangle"></i> sem e-mail</span>
                                    <?php endif; ?>
                                </span>
                                
                                <span class="cliente-email" title="<?php echo htmlspecialchars($cliente['Email'] ?? ''); ?>">
                                    <?php if (!empty($cliente['Email'])): ?>
                                        <i class="fas fa-envelope"></i> 
                                        <?php echo htmlspecialchars(mb_substr($cliente['Email'], 0, 30)); ?>
                                    <?php endif; ?>
                                </span>
                                
                                <span class="cliente-telefone" title="<?php echo htmlspecialchars($cliente['Telefone'] ?? ''); ?>">
                                    <?php if (!empty($cliente['Telefone'])): ?>
                                        <i class="fas fa-phone"></i> 
                                        <?php echo htmlspecialchars(mb_substr($cliente['Telefone'], 0, 15)); ?>
                                    <?php endif; ?>
                                </span>
                                
                                <span class="cliente-local" title="<?php echo htmlspecialchars(($cliente['Cidade'] ?? '') . '/' . ($cliente['Estado'] ?? '')); ?>">
                                    <?php if (!empty($cliente['Cidade']) || !empty($cliente['Estado'])): ?>
                                        <i class="fas fa-map-marker-alt"></i> 
                                        <?php echo htmlspecialchars(mb_substr(($cliente['Cidade'] ?? '') . '/' . ($cliente['Estado'] ?? ''), 0, 20)); ?>
                                    <?php endif; ?>
                                </span>
                                
                                <span class="cliente-origem" title="<?php echo htmlspecialchars($cliente['origem_nome'] ?? ''); ?>">
                                    <?php if (!empty($cliente['origem_nome'])): ?>
                                        <i class="fas fa-source"></i> 
                                        <?php echo htmlspecialchars(mb_substr($cliente['origem_nome'], 0, 15)); ?>
                                    <?php endif; ?>
                                </span>
                                
                                <span class="cliente-responsavel" title="<?php echo htmlspecialchars($cliente['responsavel_nome'] ?? 'Não atribuído'); ?>">
                                    <i class="fas fa-user-tie"></i> 
                                    <?php echo htmlspecialchars(mb_substr($cliente['responsavel_nome'] ?? 'Não atribuído', 0, 20)); ?>
                                </span>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
                
     
                
                <div class="form-actions" style="display: flex; gap: 15px; justify-content: flex-end; margin-top: 30px; padding-top: 25px; border-top: 1px solid #eee;">
                    <button type="button" class="btn btn-secondary" onclick="window.location.href='index.php'">
                        <i class="fas fa-times"></i> Cancelar
                    </button>
                    <button type="submit" class="btn btn-success" onclick="return confirmarEnvio()">
                        <i class="fas fa-paper-plane"></i> Enviar Formulários
                    </button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Botão Fixo para Administração -->
    <?php if (in_array($_SESSION['permissao'], ['super_admin'])): ?>
        <div class="admin-fixed-btn" onclick="window.location.href='admin.php'">
            <i class="fas fa-cog"></i>
            <span class="tooltip">Administração</span>
        </div>
    <?php endif; ?>
    
    <script>
        let usuarioLogadoId = '<?php echo $usuario_id; ?>';
        
        // Função para abrir/fechar filtros
        function toggleFiltros() {
            const container = document.getElementById('filtrosContainer');
            const toggleBtn = document.getElementById('filtrosToggle');
            const toggleIcon = document.getElementById('filtrosToggleIcon');
            const toggleText = document.getElementById('filtrosToggleText');
            
            container.classList.toggle('show');
            toggleBtn.classList.toggle('active');
            
            if (container.classList.contains('show')) {
                toggleIcon.style.transform = 'rotate(180deg)';
                toggleText.textContent = 'Ocultar Filtros Avançados';
                
                // Salvar preferência no localStorage
                localStorage.setItem('filtros_visiveis', 'true');
            } else {
                toggleIcon.style.transform = 'rotate(0deg)';
                toggleText.textContent = 'Mostrar Filtros Avançados';
                
                // Salvar preferência no localStorage
                localStorage.setItem('filtros_visiveis', 'false');
            }
        }
        
        // Verificar preferência salva ao carregar a página
        document.addEventListener('DOMContentLoaded', function() {
            // Verificar se os filtros devem estar visíveis
            const filtrosVisiveis = localStorage.getItem('filtros_visiveis');
            
            if (filtrosVisiveis === 'true') {
                // Abrir os filtros
                const container = document.getElementById('filtrosContainer');
                const toggleBtn = document.getElementById('filtrosToggle');
                const toggleIcon = document.getElementById('filtrosToggleIcon');
                const toggleText = document.getElementById('filtrosToggleText');
                
                container.classList.add('show');
                toggleBtn.classList.add('active');
                toggleIcon.style.transform = 'rotate(180deg)';
                toggleText.textContent = 'Ocultar Filtros Avançados';
            }
            
            // Aplicar filtros iniciais
            aplicarFiltros();
            atualizarContador();
        });
        
        function aplicarFiltros() {
            const filtroNome = document.getElementById('filtroNome').value.toLowerCase();
            const filtroEmail = document.getElementById('filtroEmail').value.toLowerCase();
            const filtroEstado = document.getElementById('filtroEstado').value.toLowerCase();
            const filtroCidade = document.getElementById('filtroCidade').value.toLowerCase();
            const filtroOrigemId = document.getElementById('filtroOrigem').value;
            const filtroResponsavel = document.getElementById('filtroResponsavel').value.toLowerCase();
            const apenasComEmail = document.getElementById('filtroApenasComEmail').checked;
            const apenasMeus = document.getElementById('filtroApenasMeus').checked;
            
            const clientes = document.querySelectorAll('.cliente-item');
            let countVisiveis = 0;
            
            clientes.forEach(cliente => {
                const nome = cliente.dataset.nome || '';
                const email = cliente.dataset.email || '';
                const estado = cliente.dataset.estado || '';
                const cidade = cliente.dataset.cidade || '';
                const origemId = cliente.dataset.origemId || '';
                const responsavel = cliente.dataset.responsavel || '';
                const temEmail = cliente.dataset.temEmail === '1';
                const responsavelId = cliente.dataset.responsavelId || '';
                
                const origemMatch = !filtroOrigemId || origemId === filtroOrigemId;
                const nomeMatch = nome.includes(filtroNome);
                const emailMatch = email.includes(filtroEmail);
                const estadoMatch = !filtroEstado || estado.includes(filtroEstado);
                const cidadeMatch = !filtroCidade || cidade.includes(filtroCidade);
                const responsavelMatch = !filtroResponsavel || responsavel.includes(filtroResponsavel);
                const emailFilterMatch = !apenasComEmail || temEmail;
                const meusClientesMatch = !apenasMeus || responsavelId === usuarioLogadoId;
                
                if (nomeMatch && emailMatch && estadoMatch && cidadeMatch && 
                    origemMatch && responsavelMatch && emailFilterMatch && meusClientesMatch) {
                    cliente.style.display = 'flex';
                    countVisiveis++;
                } else {
                    cliente.style.display = 'none';
                }
            });
            
            const contadorFiltro = document.getElementById('contadorFiltro');
            if (contadorFiltro) {
                contadorFiltro.textContent = countVisiveis + ' visível(is)';
            }
            
            atualizarContador();
        }
        
        function limparFiltros() {
            document.getElementById('filtroNome').value = '';
            document.getElementById('filtroEmail').value = '';
            document.getElementById('filtroEstado').value = '';
            document.getElementById('filtroCidade').value = '';
            document.getElementById('filtroOrigem').value = '';
            document.getElementById('filtroResponsavel').value = '';
            document.getElementById('filtroApenasComEmail').checked = true;
            document.getElementById('filtroApenasMeus').checked = false;
            
            aplicarFiltros();
        }
        
        function selecionarTodos() {
            document.querySelectorAll('.cliente-checkbox:not([disabled])').forEach(cb => cb.checked = true);
            atualizarContador();
            destacarSelecionados();
        }
        
        function selecionarFiltrados() {
            document.querySelectorAll('.cliente-checkbox:not([disabled])').forEach(cb => {
                if (cb.closest('.cliente-item').style.display !== 'none') {
                    cb.checked = true;
                }
            });
            atualizarContador();
            destacarSelecionados();
        }
        
        function limparSelecao() {
            document.querySelectorAll('.cliente-checkbox').forEach(cb => cb.checked = false);
            atualizarContador();
            destacarSelecionados();
        }
        
        function selecionarComEmail() {
            document.querySelectorAll('.cliente-checkbox:not([disabled])').forEach(cb => cb.checked = true);
            atualizarContador();
            destacarSelecionados();
        }
        
        function inverterSelecao() {
            document.querySelectorAll('.cliente-checkbox:not([disabled])').forEach(cb => cb.checked = !cb.checked);
            atualizarContador();
            destacarSelecionados();
        }
        
        function destacarSelecionados() {
            document.querySelectorAll('.cliente-item').forEach(item => {
                const checkbox = item.querySelector('.cliente-checkbox');
                if (checkbox && checkbox.checked) {
                    item.classList.add('selecionado');
                } else {
                    item.classList.remove('selecionado');
                }
            });
        }
        
        function atualizarContador() {
            const checkboxes = document.querySelectorAll('.cliente-checkbox:checked');
            document.getElementById('contadorSelecionados').textContent = 
                checkboxes.length + ' cliente(s) selecionado(s)';
        }
        
function confirmarEnvio() {
    const checkboxes = document.querySelectorAll('.cliente-checkbox:checked');
    if (checkboxes.length === 0) {
        alert('Selecione pelo menos um cliente para enviar o formulário.');
        return false;
    }
    
    const formularioId = document.getElementById('formulario_id').value;
    if (!formularioId) {
        alert('Selecione um formulário para enviar.');
        return false;
    }
    
    // Se passou pelas validações, permite o envio
    document.getElementById('loading').style.display = 'block';
    return true;
}
        
        // Event listeners
        document.getElementById('filtroNome').addEventListener('keyup', aplicarFiltros);
        document.getElementById('filtroEmail').addEventListener('keyup', aplicarFiltros);
        document.getElementById('filtroEstado').addEventListener('change', aplicarFiltros);
        document.getElementById('filtroCidade').addEventListener('change', aplicarFiltros);
        document.getElementById('filtroOrigem').addEventListener('change', aplicarFiltros);
        document.getElementById('filtroResponsavel').addEventListener('change', aplicarFiltros);
        document.getElementById('filtroApenasComEmail').addEventListener('change', aplicarFiltros);
        document.getElementById('filtroApenasMeus').addEventListener('change', aplicarFiltros);
        
        document.querySelectorAll('.cliente-checkbox').forEach(cb => {
            cb.addEventListener('change', function() {
                atualizarContador();
                destacarSelecionados();
            });
        });
    </script>
</body>
</html>