<?php
// process_form.php con mejoras en el manejo de correos electrónicos

// Archivo de utilidades para la conexión a base de datos
require_once('utils_database.php');

// Si estás incluyendo el generador de PDF
require_once('pdf_generator.php');

// Incluir PHPMailer si no está ya incluido
if (!class_exists('PHPMailer\PHPMailer\PHPMailer')) {
    require_once 'vendor/autoload.php';
}

// Importar las clases de PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Cabeceras para respuesta HTML
header('Content-Type: text/html; charset=UTF-8');

// Verificar si se envió el formulario
if (!isset($_POST['form_submitted']) || $_POST['form_submitted'] !== '1') {
    echo "Acceso no válido";
    exit;
}


try {
    // Activar conexión a MySQL usando la función del archivo utils_database.php
    $conn = ActivarMySQL();
    
    if (!$conn) {
        throw new Exception("Error al conectar con la base de datos");
    }
    
    // Determinar si es una edición o una nueva creación
    $es_edicion = isset($_POST['edit_token']) && !empty($_POST['edit_token']);
    $codigo_original = $_POST['codigo_original'] ?? '';
    
    // Verificar si tiene token de edición
    if ($es_edicion) {
        // Si es una edición, primero verificar que el token sea válido
        $edit_token = $_POST['edit_token'];
        $check_token_sql = "SELECT id, codigo FROM ttrabajo WHERE edit_token = ? AND activo = 1 LIMIT 1";
        $stmt = $conn->prepare($check_token_sql);
        
        if (!$stmt) {
            throw new Exception("Error al preparar la consulta de verificación: " . $conn->error);
        }
        
        $stmt->bind_param("s", $edit_token);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows === 0) {
            throw new Exception("Token de edición no válido o expirado");
        }
        
        $trabajo = $result->fetch_assoc();
        $id_insertado = $trabajo['id'];
        $codigo_original = $trabajo['codigo'];
        $stmt->close();
        
        error_log("Editando resumen existente con ID: $id_insertado, Código original: $codigo_original");
    } else {
        // Recopilar todos los datos del formulario para un nuevo registro
        $submission_id = $_POST['submission_id'] ?? '';
        $codigo_idioma = $_POST['idioma'] ?? '';
        $area_tematica = $_POST['area_tematica'] ?? '';
        $fecha = $_POST['fecha'] ?? date('Y-m-d');
        $titulo = $_POST['titulo'] ?? '';
        $cod_tipo_competicion_propuesto = $_POST['cod_tipo_competicion_propuesto'] ?? '';
        $cod_tipo_presentacion_propuesto = $_POST['cod_tipo_presentacion_propuesto'] ?? '';
        $cod_tipo_presentacion_aprobado = ''; // Se asignará durante la evaluación

        // Concatenar idioma y área temática
        $area_tematica_completa = trim($codigo_idioma . $area_tematica);
        
        // Procesar archivo si se ha enviado
        $archivo = '';
        if (isset($_FILES['archivo']) && $_FILES['archivo']['error'] === UPLOAD_ERR_OK) {
            $target_dir = "uploads/";
            // Crear directorio si no existe
            if (!file_exists($target_dir)) {
                mkdir($target_dir, 0777, true);
            }
            
            // Generar nombre único para el archivo
            $file_extension = pathinfo($_FILES['archivo']['name'], PATHINFO_EXTENSION);
            $filename = 'trabajo_' . time() . '_' . uniqid() . '.' . $file_extension;
            $target_file = $target_dir . $filename;
            
            // Mover archivo al directorio destino
            if (move_uploaded_file($_FILES['archivo']['tmp_name'], $target_file)) {
                $archivo = $filename;
            }
        }
        
        // Resto de campos del formulario
        $introduccion = $_POST['introduccion'] ?? '';
        $materiales = $_POST['materiales'] ?? '';
        $resultados = $_POST['resultados'] ?? '';
        $conclusiones = $_POST['conclusiones'] ?? '';
        $pais = $_POST['pais'] ?? '';
        $ciudad = $_POST['ciudad'] ?? '';
        $nro_autores = $_POST['nro_autores'] ?? 3;
        $email = $_POST['email'] ?? '';
        $apellido_corresponsal = $_POST['apellido_corresponsal'] ?? '';
        $nombre_corresponsal = $_POST['nombre_corresponsal'] ?? '';
        $estado = 'pendiente';
        
        // Información de beca internacional
        $beca_internacional = $_POST['beca_internacional'] ?? 'No deseo participar';
        
        // Información del patrocinador (opcional)
        $nombre_patrocinador = $_POST['nombre_patrocinador'] ?? '';
        $apellido_patrocinador = $_POST['apellido_patrocinador'] ?? '';
        $estado_membresia_patrocinador = $_POST['estado_membresia_patrocinador'] ?? '';
        $email_patrocinador = $_POST['email_patrocinador'] ?? '';
        
        // Campos de autores (hasta 10 autores)
        $autores = [];
        for ($i = 1; $i <= 10; $i++) {
            if (isset($_POST["titulo_autor$i"]) && isset($_POST["autor$i"]) && isset($_POST["apellido_autor$i"])) {
                $titulo_autor = $_POST["titulo_autor$i"];
                $nombre = $_POST["autor$i"];
                $apellido = $_POST["apellido_autor$i"];
                $institucion = $_POST["inst_autor$i"] ?? '';
                $email_autor = $_POST["email_autor$i"] ?? '';
                
                $autores[] = [
                    "titulo" => $titulo_autor,
                    "nombre" => $nombre,
                    "apellido" => $apellido,
                    "institucion" => $institucion,
                    "email" => $email_autor
                ];
            }
        }
        
        // Convertir array de autores a formato JSON para almacenamiento
        $autores_json = json_encode($autores);
        
        // Enfoque simplificado: primero insertar solo datos básicos
        try {
            // Primero, crear una consulta INSERT muy simple
            $simple_sql = "INSERT INTO ttrabajo (codigo, titulo, fecha, activo, aprobado, control) 
                          VALUES ('PRUEBA-" . $conn->real_escape_string($codigo_idioma) . "', 
                                 '" . $conn->real_escape_string($titulo) . "', 
                                 NOW(), 1, 0, 0)";
            
            // Ejecutar la consulta simple
            if (!$conn->query($simple_sql)) {
                throw new Exception("Error en la inserción básica: " . $conn->error);
            }
            
            // Si llegamos aquí, la inserción básica funcionó
            $id_insertado = $conn->insert_id;
            
            // Generar código único combinando elementos
            $codigo_unico = $codigo_idioma.$area_tematica. 
                            $cod_tipo_presentacion_propuesto. 
                            $cod_tipo_competicion_propuesto . '-' . 
                            str_pad($id_insertado, 4, '0', STR_PAD_LEFT);
                            
            // Concatenar idioma y área temática para el campo area_tematica
            $area_tematica_completa = trim($codigo_idioma . $area_tematica);
            
            // Actualizar el resto de los campos en una consulta separada
            $update_full_sql = "UPDATE ttrabajo SET 
                                submission_id = '" . $conn->real_escape_string($submission_id) . "',
                                fecha = '" . $conn->real_escape_string($fecha) . "',
                                cod_tipo_competicion_propuesto = '" . $conn->real_escape_string($cod_tipo_competicion_propuesto) . "',
                                cod_tipo_presentacion_propuesto = '" . $conn->real_escape_string($cod_tipo_presentacion_propuesto) . "',
                                cod_tipo_presentacion_aprobado = '" . $conn->real_escape_string($cod_tipo_presentacion_aprobado) . "',
                                archivo = '" . $conn->real_escape_string($archivo) . "',
                                introduccion = '" . $conn->real_escape_string($introduccion) . "',
                                materiales = '" . $conn->real_escape_string($materiales) . "',
                                resultados = '" . $conn->real_escape_string($resultados) . "',
                                conclusiones = '" . $conn->real_escape_string($conclusiones) . "',
                                pais = '" . $conn->real_escape_string($pais) . "',
                                ciudad = '" . $conn->real_escape_string($ciudad) . "',
                                nro_autores = '" . $conn->real_escape_string($nro_autores) . "',
                                email = '" . $conn->real_escape_string($email) . "',
                                apellido_corresponsal = '" . $conn->real_escape_string($apellido_corresponsal) . "',
                                nombre_corresponsal = '" . $conn->real_escape_string($nombre_corresponsal) . "',
                                area_tematica = '" . $conn->real_escape_string($area_tematica_completa) . "',
                                estado = '" . $conn->real_escape_string($estado) . "',
                                beca_internacional = '" . $conn->real_escape_string($beca_internacional) . "',
                                nombre_patrocinador = '" . $conn->real_escape_string($nombre_patrocinador) . "',
                                apellido_patrocinador = '" . $conn->real_escape_string($apellido_patrocinador) . "',
                                estado_membresia_patrocinador = '" . $conn->real_escape_string($estado_membresia_patrocinador) . "',
                                email_patrocinador = '" . $conn->real_escape_string($email_patrocinador) . "',
                                codigo = '" . $conn->real_escape_string($codigo_unico) . "',
                                autores = '" . $conn->real_escape_string($autores_json) . "'
                                WHERE id = " . $id_insertado;
            
            // Ejecutar la actualización completa
            if (!$conn->query($update_full_sql)) {
                throw new Exception("Error en la actualización completa: " . $conn->error);
            }
            
            // Ahora actualizar los campos de los autores en consultas separadas
            for ($i = 1; $i <= 10; $i++) {
                if ($i <= count($autores)) {
                    $titulo_autor = $autores[$i-1]['titulo'];
                    $nombre = $autores[$i-1]['nombre'];
                    $apellido = $autores[$i-1]['apellido'];
                    $institucion = $autores[$i-1]['institucion'];
                    $email_autor = $autores[$i-1]['email'];
                    
                    $update_autor_sql = "UPDATE ttrabajo SET 
                                       titulo_autor$i = '" . $conn->real_escape_string($titulo_autor) . "',
                                       autor$i = '" . $conn->real_escape_string($nombre) . "',
                                       apellido_autor$i = '" . $conn->real_escape_string($apellido) . "',
                                       inst_autor$i = '" . $conn->real_escape_string($institucion) . "',
                                       email_autor$i = '" . $conn->real_escape_string($email_autor) . "'
                                       WHERE id = " . $id_insertado;
                    
                    if (!$conn->query($update_autor_sql)) {
                        throw new Exception("Error al actualizar autor $i: " . $conn->error);
                    }
                }
            }
        } catch (Exception $e) {
            throw new Exception("Error en la inserción alternativa: " . $e->getMessage());
        }
        
        // Generar token de edición (cadena aleatoria segura)
        $edit_token = bin2hex(random_bytes(16)); // Genera un token de 32 caracteres hexadecimales
        
        // Guardar el token en la base de datos
        $token_sql = "UPDATE ttrabajo SET edit_token = '" . $conn->real_escape_string($edit_token) . "' 
                      WHERE id = " . $id_insertado;
        
        if (!$conn->query($token_sql)) {
            throw new Exception("Error al guardar el token de edición: " . $conn->error);
        }
    }
    
    // A partir de aquí, tanto si es creación como edición, tenemos:
    // $id_insertado - ID del trabajo
    // $codigo_original (si es edición) o $codigo_unico (si es creación nueva)
    
    // Usar el código correcto según si es edición o creación
    $codigo_final = $es_edicion ? $codigo_original : $codigo_unico;
    
    error_log("Código final utilizado: $codigo_final");
    
    // Crear URL de edición
    $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
    $host = $_SERVER['HTTP_HOST'];
    $edit_url = "$protocol://$host/trauma2026/Administrador/editar-resumen.php?token=$edit_token";
    
    // Generar número de referencia
    $refNumber = 'TR-' . date('y') . '-' . str_pad($id_insertado, 4, '0', STR_PAD_LEFT);
    
    // Obtener los datos actualizados del trabajo
    $sql_trabajo = "SELECT * FROM ttrabajo WHERE id = ? LIMIT 1";
    $stmt = $conn->prepare($sql_trabajo);
    $stmt->bind_param("i", $id_insertado);
    $stmt->execute();
    $trabajo_actual = $stmt->get_result()->fetch_assoc();
    $stmt->close();
    
    // Generar el PDF después de tener todas las variables definidas
    $pdfDirectory = 'pdfs/';
    // Crear directorio si no existe
    if (!file_exists($pdfDirectory)) {
        // Asegúrate de que los permisos sean correctos y el directorio tenga permisos de escritura
        mkdir($pdfDirectory, 0777, true);
    }
    
    // Asegurarse de que el directorio tiene permisos de escritura
    chmod($pdfDirectory, 0777);
    
    // Generar el PDF
    $pdfPath = '';
    try {
        // IMPORTANTE: Usar el código correcto ($codigo_final)
        error_log("Generando PDF con código: $codigo_final");
        
        $pdfPath = generarPDFResumen(
        $trabajo_actual['titulo'],              // Título del trabajo
        json_decode($trabajo_actual['autores'], true), // Array de autores
        $codigo_final,                          // Código final (original o nuevo)
        $refNumber,                             // Número de referencia
        $trabajo_actual['introduccion'],        // Texto de introducción
        $trabajo_actual['materiales'],          // Texto de materiales y métodos
        $trabajo_actual['resultados'],          // Texto de resultados
        $trabajo_actual['conclusiones'],        // Texto de conclusiones
        $trabajo_actual['area_tematica'],       // Código de área temática
        $trabajo_actual['pais'],                // País
        $trabajo_actual['ciudad'],              // Ciudad
        $trabajo_actual['email'],               // Email de contacto
        $trabajo_actual['cod_tipo_presentacion_propuesto'], // Tipo presentación
        $trabajo_actual['cod_tipo_competicion_propuesto'],  // Tipo competición
        $trabajo_actual['beca_internacional'],              // Beca
        $trabajo_actual['nombre_patrocinador'],             // Nombre patrocinador
        $trabajo_actual['apellido_patrocinador'],           // Apellido patrocinador
        $trabajo_actual['estado_membresia_patrocinador'],   // Estado membresía
        $trabajo_actual['email_patrocinador']               // Email patrocinador
        );
    } catch (Exception $e) {
        // Capturar errores de generación de PDF sin detener el proceso
        $pdfError = "Error al generar el PDF: " . $e->getMessage();
        error_log($pdfError);
        // Continuar sin PDF
    }
    
    // Enviar correo electrónico - actualizado para incluir el PDF si existe y usar el código correcto
    $enviado = enviarCorreoConfirmacion(
        $trabajo_actual['email'], 
        $trabajo_actual['nombre_corresponsal'], 
        $trabajo_actual['apellido_corresponsal'], 
        $codigo_final,  // Usar el código correcto (original o nuevo)
        $trabajo_actual['titulo'], 
        json_decode($trabajo_actual['autores'], true), 
        $refNumber, 
        $pdfPath ?? '', 
        $edit_url
    );
    
    // Registrar resultados para depuración
    error_log("Intentando enviar correo de confirmación para el trabajo ID: $id_insertado");
    error_log("Email del destinatario: " . $trabajo_actual['email']);
    error_log("PDF Path: " . ($pdfPath ?? 'No generado'));
    error_log("Resultado envío: " . ($enviado ? "Exitoso" : "Fallido"));
    
    // Generar respuesta HTML - actualizado para incluir el PDF si existe y usar el código correcto
    $respuestaHTML = generarRespuestaHtml(
        $trabajo_actual['nombre_corresponsal'], 
        $trabajo_actual['apellido_corresponsal'], 
        $refNumber, 
        $codigo_final,  // Usar el código correcto (original o nuevo)
        $pdfPath ?? '', 
        $edit_url
    );
    
    // Mostrar la respuesta HTML directamente
    echo $respuestaHTML;
    
    // Cerrar la conexión a la base de datos
    $conn->close();
    
} catch (Exception $e) {
    // Capturar y reportar errores
    $errorMessage = $e->getMessage();
    error_log("Error en process_form.php: " . $errorMessage);
    echo generarRespuestaError($errorMessage);
    
    // Si hay una conexión abierta, cerrarla
    if (isset($conn) && $conn) {
        $conn->close();
    }
}

/**
 * Función para enviar correo de confirmación con enlace de edición
 * Versión mejorada usando PHPMailer para mayor confiabilidad
 */
function enviarCorreoConfirmacion($email, $nombre, $apellido, $codigo, $titulo, $autores, $referencia, $pdfPath = '', $edit_url = '') {
    // Verificar si se proporcionó un email
    if (empty($email)) {
        error_log("Error: No se proporcionó dirección de correo electrónico para enviar la confirmación");
        return false;
    }
    
    // Registrar intento de envío para depuración
    error_log("Intentando enviar correo a: $email para el trabajo: $codigo");
    
    // Incluir PHPMailer si no está ya incluido
    if (!class_exists('PHPMailer\PHPMailer\PHPMailer')) {
        require_once 'vendor/autoload.php';
    }
    
  
    
    // Lista de autores para el correo
    $lista_autores = '';
    
    // Asegúrate de que $autores sea un array
    if (is_string($autores)) {
        $autores = json_decode($autores, true);
    }
    
    // Verifica que $autores sea un array antes de usar foreach
    if (is_array($autores)) {
        foreach ($autores as $index => $autor) {
            $lista_autores .= ($index + 1) . ". " . $autor['titulo'] . " " . $autor['nombre'] . " " . $autor['apellido'];
            if (!empty($autor['institucion'])) {
                $lista_autores .= " (" . $autor['institucion'] . ")";
            }
            $lista_autores .= "<br>";
        }
    }
    
    // Mensaje sobre el PDF
    $pdfMensaje = '';
    if (!empty($pdfPath)) {
        $pdfMensaje = '<p>Adjunto encontrará un archivo PDF con el resumen de su trabajo.</p>';
    }
    
    // Mensaje sobre el enlace de edición
    $editMensaje = '';
    if (!empty($edit_url)) {
        $editMensaje = '
        <div style="margin: 20px 0; padding: 15px; background-color: #fff8e6; border-left: 4px solid #ffb82e;">
            <p><strong>¿Necesita modificar su resumen?</strong></p>
            <p>Puede editar su resumen hasta el cierre de la convocatoria utilizando el siguiente enlace:</p>
            <p><a href="' . $edit_url . '" style="display: inline-block; padding: 10px 15px; background-color: #ffb82e; color: #333; text-decoration: none; border-radius: 4px; font-weight: bold;">Editar Resumen</a></p>
            <p style="font-size: 0.9em; color: #666;">Este enlace es único y personal. Por favor, no lo comparta con otras personas.</p>
        </div>';
    }
    
    // Cuerpo del mensaje en formato HTML
    $mensaje = "
    <html>
    <head>
        <title>Confirmación de Envío de Resumen</title>
        <style>
            body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
            .container { max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #ddd; border-radius: 5px; }
            .header { background-color: #0056b3; color: white; padding: 10px; text-align: center; border-radius: 5px 5px 0 0; }
            .content { padding: 20px; }
            .footer { background-color: #f4f4f4; padding: 10px; text-align: center; font-size: 12px; border-radius: 0 0 5px 5px; }
            .info { background-color: #e7f3fe; border-left: 3px solid #2196F3; padding: 10px; margin: 15px 0; }
        </style>
    </head>
    <body>
        <div class='container'>
            <div class='header'>
                <h2>Confirmación de Envío de Resumen</h2>
            </div>
            <div class='content'>
                <p>Estimado/a <strong>$nombre $apellido</strong>,</p>
                
                <p>Nos complace confirmar que hemos recibido correctamente su resumen de trabajo para evaluación.</p>
                
                <div class='info'>
                    <p><strong>Código:</strong> $codigo</p>
                    <p><strong>Título:</strong> $titulo</p>
                </div>
                
                <p><strong>Autores:</strong></p>
                <p>$lista_autores</p>
                
                $pdfMensaje
                
                $editMensaje
                
                <p>Su resumen será revisado por nuestro comité científico y nos pondremos en contacto con usted para informarle sobre el resultado de la evaluación.</p>
                
                <p>Por favor, guarde este correo como comprobante de su envío. Si tiene alguna pregunta o necesita asistencia, no dude en contactarnos respondiendo a este email.</p>
                
                <p>Gracias por su participación.</p>
                
                <p>Atentamente,<br>
                Comité Científico</p>
            </div>
            <div class='footer'>
                <p>Este es un mensaje automático, por favor no responda directamente a este correo.</p>
            </div>
        </div>
    </body>
    </html>
    ";
    
    // Crear instancia de PHPMailer
    $mail = new PHPMailer(true);
    
    try {
        // Configuración del servidor
        $mail->isSMTP();
        $mail->Host       = 'smtp.gmail.com';  // Usar el mismo servidor SMTP del primer archivo
        $mail->SMTPAuth   = true;
        $mail->Username   = 'panamericadetrauma@gmail.com';  // Mismo usuario que en el primer archivo
        $mail->Password   = 'P4ulin4.*#$';  // Misma contraseña que en el primer archivo
        $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $mail->Port       = 587;
        $mail->CharSet    = 'UTF-8';
        
        // Remitentes y destinatarios
        $mail->setFrom('panamericadetrauma@gmail.com', 'Comité Científico');
        $mail->addAddress($email, "$nombre $apellido");
        
        // Contenido
        $mail->isHTML(true);
        $mail->Subject = "Confirmación de Envío - Resumen Trabajo $codigo";
        $mail->Body    = $mensaje;
        
        // Adjuntar archivo si se proporciona y existe
        if (!empty($pdfPath) && file_exists($pdfPath)) {
            $mail->addAttachment($pdfPath, 'resumen_trabajo.pdf');
        }
        
        // Enviar el correo
        $mail->send();
        error_log("Correo enviado exitosamente a $email para el trabajo $codigo");
        return true;
    } catch (Exception $e) {
        error_log("ERROR al enviar correo a $email: " . $mail->ErrorInfo);
        return false;
    }
}

/**
 * Función para generar respuesta HTML de éxito con enlace de edición
 */
function generarRespuestaHtml($nombre, $apellido, $referencia, $codigo, $pdfPath = '', $edit_url = '') {
    $pdfButton = '';
    if (!empty($pdfPath) && file_exists($pdfPath)) {
        // Este es el botón de descarga del PDF
        $pdfButton = '
        <a href="' . htmlspecialchars($pdfPath) . '" class="btn pdf-button" download>
            <i class="fas fa-file-pdf"></i> Descargar Resumen en PDF
        </a>';
    }
    
    // Botón de edición
    $editButton = '';
    if (!empty($edit_url)) {
        $editButton = '
        <a href="' . htmlspecialchars($edit_url) . '" class="btn edit-button">
            <i class="fas fa-edit"></i> Editar Resumen
        </a>';
    }
    
    $html = '
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Envío Exitoso</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
        <style>
            body {
                font-family: "Segoe UI", Arial, sans-serif;
                line-height: 1.6;
                color: #333;
                background-color: #f9f9f9;
                margin: 0;
                padding: 20px;
            }
            .success-container {
                max-width: 600px;
                margin: 30px auto;
                background: white;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.1);
                overflow: hidden;
            }
            .success-header {
                background-color: #28a745;
                color: white;
                padding: 20px;
                text-align: center;
            }
            .success-content {
                padding: 30px;
            }
            .success-icon {
                font-size: 48px;
                text-align: center;
                margin-bottom: 20px;
                color: #28a745;
            }
            .reference-box {
                background-color: #f8f9fa;
                border: 1px solid #e9ecef;
                border-radius: 4px;
                padding: 15px;
                margin: 20px 0;
                text-align: center;
            }
            .reference-number {
                font-size: 24px;
                font-weight: bold;
                color: #0056b3;
                letter-spacing: 1px;
            }
            .btn {
                display: inline-block;
                color: white;
                padding: 12px 24px;
                text-decoration: none;
                border-radius: 4px;
                font-weight: bold;
                margin-top: 20px;
                transition: background-color 0.3s;
            }
            .btn:hover {
                opacity: 0.9;
            }
            .footer {
                text-align: center;
                margin-top: 30px;
                font-size: 14px;
                color: #6c757d;
            }
            .buttons-container {
                text-align: center;
                margin-top: 30px;
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 10px;
            }
            .pdf-button {
                background-color: #28a745;
                box-shadow: 0 2px 5px rgba(40, 167, 69, 0.3);
            }
            .edit-button {
                background-color: #ffc107;
                box-shadow: 0 2px 5px rgba(255, 193, 7, 0.3);
                color: #333;
            }
            .home-button {
                background-color: #0056b3;
                box-shadow: 0 2px 5px rgba(0, 86, 179, 0.3);
            }
            .highlight-box {
                background-color: #e8f4fc;
                border-left: 4px solid #2196F3;
                padding: 15px;
                margin: 20px 0;
                border-radius: 0 4px 4px 0;
            }
            .edit-highlight-box {
                background-color: #fff9e6;
                border-left: 4px solid #ffc107;
                padding: 15px;
                margin: 20px 0;
                border-radius: 0 4px 4px 0;
            }
        </style>
    </head>
    <body>
        <div class="success-container">
            <div class="success-header">
                <h2>¡Envío Completado con Éxito!</h2>
            </div>
            <div class="success-content">
                <div class="success-icon"><i class="fas fa-check-circle"></i></div>
                
                <p>Estimado/a <strong>' . htmlspecialchars($nombre) .' '. htmlspecialchars($apellido) .'</strong>,</p>
                
                <p>Su resumen ha sido recibido correctamente y será evaluado por nuestro comité científico.</p>
                
                <div class="reference-box">
                    <p>El código de su trabajo es:</p>
                    <p class="reference-number">' . htmlspecialchars($codigo) . '</strong></p>
                </div>
                
                <p>Hemos enviado un correo electrónico de confirmación con los detalles de su envío. 
                Por favor, conserve esta información para futuras referencias.</p>
                
                <!-- Cuadro destacado para la descarga del PDF -->
                ' . (!empty($pdfPath) && file_exists($pdfPath) ? '<div class="highlight-box">
                    <p><strong>¡Importante!</strong> Puede descargar una copia en PDF de su resumen completo para sus registros.</p>
                </div>' : '') . '
                
                <!-- Cuadro destacado para edición -->
                ' . (!empty($edit_url) ? '<div class="edit-highlight-box">
                    <p><strong>¿Necesita realizar cambios?</strong> Puede editar su resumen hasta el cierre de la convocatoria.</p>
                    <p>Este enlace de edición también ha sido enviado a su correo electrónico.</p>
                </div>' : '') . '
                
                <!-- Aquí está el contenedor de botones -->
                <div class="buttons-container">
                    ' . $pdfButton . '
                    ' . $editButton . '
                    <a href="formularios.php" class="btn home-button">
                        <i class="fas fa-home"></i> Volver al Inicio
                    </a>
                </div>
            </div>
            <div class="footer">
                <p>&copy; ' . date('Y') . ' - Todos los derechos reservados</p>
            </div>
        </div>
    </body>
    </html>
    ';
    
    return $html;
}

/**
 * Función para generar respuesta HTML de error
 */
function generarRespuestaError($mensaje) {
    $html = '
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Error en el Envío</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
        <style>
            body {
                font-family: "Segoe UI", Arial, sans-serif;
                line-height: 1.6;
                color: #333;
                background-color: #f9f9f9;
                margin: 0;
                padding: 20px;
            }
            .error-container {
                max-width: 600px;
                margin: 30px auto;
                background: white;
                border-radius: 8px;
                box-shadow: 0 2px 10px rgba(0,0,0,0.1);
                overflow: hidden;
            }
            .error-header {
                background-color: #dc3545;
                color: white;
                padding: 20px;
                text-align: center;
            }
            .error-content {
                padding: 30px;
            }
            .error-icon {
                font-size: 48px;
                text-align: center;
                margin-bottom: 20px;
                color: #dc3545;
            }
            .error-message {
                background-color: #f8d7da;
                border: 1px solid #f5c6cb;
                border-radius: 4px;
                padding: 15px;
                margin: 20px 0;
                color: #721c24;
            }
            .btn {
                display: inline-block;
                background-color: #0056b3;
                color: white;
                padding: 10px 20px;
                text-decoration: none;
                border-radius: 4px;
                font-weight: bold;
                margin-top: 20px;
            }
            .btn:hover {
                background-color: #004494;
            }
            .footer {
                text-align: center;
                margin-top: 30px;
                font-size: 14px;
                color: #6c757d;
            }
        </style>
    </head>
    <body>
        <div class="error-container">
            <div class="error-header">
                <h2>Error en el Envío</h2>
            </div>
            <div class="error-content">
                <div class="error-icon"><i class="fas fa-exclamation-triangle"></i></div>
                
                <p>Lo sentimos, ha ocurrido un error durante el procesamiento de su envío.</p>
                
                <div class="error-message">
                    <p><strong>Detalles del error:</strong></p>
                    <p>' . htmlspecialchars($mensaje) . '</p>
                </div>
                
                <p>Por favor, intente nuevamente. Si el problema persiste, 
                póngase en contacto con nuestro equipo de soporte técnico.</p>
                
                <div style="text-align: center;">
                    <a href="javascript:history.back()" class="btn">Volver al Formulario</a>
                </div>
            </div>
            <div class="footer">
                <p>&copy; ' . date('Y') . ' - Todos los derechos reservados</p>
            </div>
        </div>
    </body>
    </html>
    ';
    
    return $html;
}