<?php
/**
 * ASISMA CRM - Formulario de creación de Leads
 * El RUT es el primer dato: valida, busca la empresa en el CRM y autocompleta.
 * Franquiciado: solo elige el producto (si tiene uno, queda automático);
 * marca/vertical/región se derivan en el servidor.
 */
$esAdmin = SessionHelper::isAdmin();

// Mapas para mostrar nombres en la card de producto único
$mapaMarcas = array();
foreach ($marcas as $mm) { $mapaMarcas[$mm['id']] = $mm['nombre']; }
$mapaVerticales = array();
foreach ($verticales as $vv) { $mapaVerticales[$vv['id']] = $vv['nombre']; }

$productoUnico = (!$esAdmin && count($productos) === 1) ? $productos[0] : null;
$regionFranquicia   = (!$esAdmin && count($regiones) === 1) ? $regiones[0] : null;
$verticalFranquicia = (!$esAdmin && count($verticales) === 1) ? $verticales[0] : null;
?>
<!-- Header -->
<div class="mb-8">
    <a href="<?php echo APP_URL; ?>/leads" class="inline-flex items-center gap-1.5 text-xs text-slate-500 hover:text-slate-300 font-semibold mb-3">
        <i data-lucide="arrow-left" class="w-3.5 h-3.5"></i>
        <span>Volver al Listado</span>
    </a>
    <h1 class="text-3xl font-extrabold text-white tracking-tight">Ingresar Nuevo Lead</h1>
    <p class="text-slate-400 text-sm mt-1">Parte por el RUT: si la empresa ya está en el CRM, sus datos se autocompletan.</p>
</div>

<?php
// Fila Guardar/Cancelar: se repite ARRIBA y ABAJO de la card del formulario
ob_start(); ?>
<div class="flex items-center justify-end gap-4">
    <a href="<?php echo APP_URL; ?>/leads"
       class="px-5 py-3 bg-slate-950 hover:bg-red-500/10 border border-red-500/40 hover:border-red-500/70 text-red-400 text-center font-medium rounded-xl text-sm transition-colors">
        Cancelar
    </a>
    <button type="submit" form="createLeadForm"
            class="btn-guardar-lead px-6 py-3 bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-500 hover:to-indigo-500 text-white font-semibold rounded-xl text-sm transition-all duration-300 shadow-lg shadow-blue-500/10 hover:shadow-blue-500/20 flex items-center justify-center gap-2">
        <span>Guardar Lead</span>
        <i data-lucide="check" class="w-4 h-4"></i>
    </button>
</div>
<?php $filaBotones = ob_get_clean(); ?>

<!-- Acciones arriba de la card -->
<div class="mb-6"><?php echo $filaBotones; ?></div>

<!-- Form Card -->
<div class="bg-slate-900 border border-slate-800/80 rounded-2xl p-8 shadow-2xl relative overflow-hidden">
    <!-- Back light effect -->
    <div class="absolute inset-0 bg-[radial-gradient(circle_at_top_right,rgba(37,99,235,0.03),transparent_40%)]"></div>

    <form id="createLeadForm" class="space-y-8 relative z-10">

        <!-- SECTION 1: RUT DEL LEAD (llave de búsqueda) -->
        <div>
            <h3 class="text-sm font-bold text-blue-400 uppercase tracking-wider border-b border-slate-800 pb-2 mb-6">
                1. RUT del Lead
                <span class="ml-2 text-[10px] text-emerald-400 normal-case font-medium">— siempre lo primero: busca la empresa en el CRM</span>
            </h3>
            <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                <!-- RUT -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">RUT <span class="text-red-400">*</span></label>
                    <input type="text" name="rut" id="rut" required autofocus autocomplete="off"
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
                           placeholder="12345678-9">
                </div>
                <!-- Razón Social -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Razón Social</label>
                    <input type="text" name="razon_social" id="razon_social"
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 read-only:opacity-60 read-only:cursor-not-allowed"
                           placeholder="Nombre de la empresa SpA / SRL">
                </div>
                <!-- Nombre de la Empresa (fantasía) -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Nombre de la Empresa</label>
                    <input type="text" name="nombre_empresa" id="nombre_empresa"
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 read-only:opacity-60 read-only:cursor-not-allowed"
                           placeholder="Nombre de fantasía / comercial">
                </div>
                <!-- Estado de la búsqueda -->
                <div class="md:col-span-3 hidden" id="rutEstado"></div>
                <!-- Networking: quién le está vendiendo -->
                <div class="md:col-span-3 hidden" id="panelVendiendo"></div>
            </div>
        </div>

        <!-- SECTION 2: CONTACTO -->
        <div>
            <h3 class="text-sm font-bold text-blue-400 uppercase tracking-wider border-b border-slate-800 pb-2 mb-6">
                2. Datos de Contacto
                <span class="ml-2 text-[10px] text-emerald-400 normal-case font-medium">— nombre y teléfono obligatorios, correo opcional</span>
            </h3>
            <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                <!-- Nombre Contacto -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Nombre Completo <span class="text-red-400">*</span></label>
                    <input type="text" name="contacto_nombre" id="contacto_nombre" required
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
                           placeholder="Juan Pérez">
                </div>
                <!-- Teléfono WhatsApp -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Teléfono / WhatsApp <span class="text-red-400">*</span></label>
                    <input type="text" name="contacto_telefono" id="contacto_telefono" required
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
                           placeholder="+56912345678">
                </div>
                <!-- Correo (opcional) -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Email <span class="text-slate-600 text-[10px] normal-case">(opcional)</span></label>
                    <input type="email" name="contacto_email" id="contacto_email"
                           class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
                           placeholder="juan.perez@empresa.cl">
                </div>
                <!-- Nota inicial -->
                <div class="md:col-span-3">
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Nota inicial <span class="text-slate-600 text-[10px] normal-case">(opcional)</span></label>
                    <textarea name="notas" rows="2"
                              class="block w-full px-3 py-2 bg-slate-950 border border-slate-800 rounded-xl text-slate-200 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"
                              placeholder="Contexto de cómo llegó este lead, qué preguntó, etc."></textarea>
                </div>
            </div>
        </div>

        <?php if ($esAdmin): ?>
        <!-- SECTION 3 (ADMIN): SEGMENTACIÓN COMPLETA -->
        <div>
            <h3 class="text-sm font-bold text-slate-500 uppercase tracking-wider border-b border-slate-800 pb-2 mb-6">3. Segmentación e Intereses</h3>
            <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
                <!-- Región -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Región del Cliente</label>
                    <select name="region_id" id="region_id"
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
                        <option value="">-- Seleccionar Región --</option>
                        <?php foreach ($regiones as $reg): ?>
                            <option value="<?php echo $reg['id']; ?>"><?php echo htmlspecialchars($reg['nombre']); ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <!-- Vertical de Interés -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Vertical de Interés</label>
                    <select name="vertical_id" id="vertical_id"
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
                        <option value="">-- Seleccionar Vertical --</option>
                        <?php foreach ($verticales as $vert): ?>
                            <option value="<?php echo $vert['id']; ?>"><?php echo htmlspecialchars($vert['nombre']); ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <!-- Marca de Interés (Cascada) -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Marca de Interés</label>
                    <select name="marca_id" id="marca_id" disabled
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed">
                        <option value="">-- Primero elija una Vertical --</option>
                        <?php foreach ($marcas as $m): ?>
                            <option value="<?php echo $m['id']; ?>" data-vertical="<?php echo $m['vertical_id']; ?>" class="hidden">
                                <?php echo htmlspecialchars($m['nombre']); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <!-- Producto de Interés (Cascada) -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Producto de Interés</label>
                    <select name="producto_id" id="producto_id" disabled
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed">
                        <option value="">-- Primero elija una Marca --</option>
                        <?php foreach ($productos as $p): ?>
                            <option value="<?php echo $p['id']; ?>" data-marca="<?php echo $p['marca_id']; ?>" class="hidden">
                                <?php echo htmlspecialchars($p['nombre']); ?> (Sugerido: <?php echo number_format($p['precio_sugerido']); ?>)
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>

                <!-- Origen del Lead -->
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Origen / Canal del Lead</label>
                    <select name="origen" id="origen"
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
                        <?php foreach (arr_origenes_lead() as $key => $label): ?>
                            <option value="<?php echo $key; ?>" <?php echo $key === 'manual' ? 'selected' : ''; ?>><?php echo $label; ?></option>
                        <?php endforeach; ?>
                    </select>
                </div>
            </div>
        </div>
        <?php else: ?>
        <!-- SECTION 3 (FRANQUICIADO): SOLO EL PRODUCTO -->
        <div>
            <h3 class="text-sm font-bold text-slate-500 uppercase tracking-wider border-b border-slate-800 pb-2 mb-6">
                3. Producto de Interés
                <span class="text-[10px] text-slate-600 normal-case font-medium">— el lead queda asignado a tu franquicia<?php echo $regionFranquicia ? ', región ' . htmlspecialchars($regionFranquicia['nombre']) : ''; ?></span>
            </h3>
            <input type="hidden" name="origen" value="manual">
            <?php if ($productoUnico): ?>
            <!-- Un solo producto autorizado: queda automático -->
            <input type="hidden" name="producto_id" value="<?php echo $productoUnico['id']; ?>">
            <div class="px-4 py-3 bg-blue-500/10 border border-blue-500/20 rounded-xl text-sm text-blue-300 flex items-center gap-3">
                <i data-lucide="package-check" class="w-5 h-5 shrink-0"></i>
                <div>
                    <div class="font-semibold text-blue-200"><?php echo htmlspecialchars($productoUnico['nombre']); ?></div>
                    <div class="text-xs text-blue-300/80 mt-0.5">
                        Tu único producto autorizado — el lead queda asociado automáticamente
                        (<?php echo htmlspecialchars(isset($mapaMarcas[$productoUnico['marca_id']]) ? $mapaMarcas[$productoUnico['marca_id']] : 'marca'); ?>
                        / <?php echo htmlspecialchars($verticalFranquicia ? $verticalFranquicia['nombre'] : 'vertical'); ?>).
                    </div>
                </div>
            </div>
            <?php elseif (count($productos) > 0): ?>
            <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
                <div>
                    <label class="block text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2">Producto <span class="text-red-400">*</span></label>
                    <select name="producto_id" id="producto_id" required
                            class="block w-full px-3 py-2.5 bg-slate-950 border border-slate-800 rounded-xl text-slate-300 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500">
                        <option value="">-- Seleccionar Producto --</option>
                        <?php foreach ($productos as $p): ?>
                            <option value="<?php echo $p['id']; ?>">
                                <?php echo htmlspecialchars($p['nombre']); ?>
                                (<?php echo htmlspecialchars(isset($mapaMarcas[$p['marca_id']]) ? $mapaMarcas[$p['marca_id']] : ''); ?>)
                            </option>
                        <?php endforeach; ?>
                    </select>
                    <p class="text-[11px] text-slate-500 mt-1.5">La marca y la vertical se asocian solas según el producto.</p>
                </div>
            </div>
            <?php else: ?>
            <div class="px-4 py-3 bg-red-500/10 border border-red-500/20 rounded-xl text-sm text-red-300 flex items-center gap-2">
                <i data-lucide="alert-triangle" class="w-4 h-4 shrink-0"></i>
                Tu franquicia no tiene productos autorizados para vender. Contacta a la matriz antes de ingresar leads.
            </div>
            <?php endif; ?>
        </div>
        <?php endif; ?>

    </form>
</div>

<!-- Acciones abajo de la card -->
<div class="mt-6"><?php echo $filaBotones; ?></div>

<!-- jQuery: RUT-primero, cascadas y envío AJAX -->
<script>
    // Valida el dígito verificador del RUT (módulo 11)
    function validarRut(rut) {
        rut = (rut || '').toUpperCase().replace(/[^0-9K]/g, '');
        if (rut.length < 2) return false;
        var numero = rut.slice(0, -1);
        var dv = rut.slice(-1);
        if (!/^\d+$/.test(numero)) return false;
        var suma = 0, factor = 2;
        for (var i = numero.length - 1; i >= 0; i--) {
            suma += parseInt(numero.charAt(i), 10) * factor;
            factor = factor === 7 ? 2 : factor + 1;
        }
        var resto = 11 - (suma % 11);
        var esperado = resto === 11 ? '0' : (resto === 10 ? 'K' : String(resto));
        return dv === esperado;
    }

    // Formato canónico: sin puntos y con guion
    function formatearRut(rut) {
        rut = (rut || '').toUpperCase().replace(/[^0-9K]/g, '');
        if (rut.length < 2) return rut;
        return rut.slice(0, -1) + '-' + rut.slice(-1);
    }

    $(document).ready(function() {

        var empresaExiste = false;
        var leadDuplicado = false;
        var esFranquiciadoSinProductos = <?php echo (!$esAdmin && count($productos) === 0) ? 'true' : 'false'; ?>;

        function mostrarEstadoRut(tipo, texto) {
            // Texto casi blanco sobre fondo tenue del color: contraste legible
            // (antes era tono sobre tono y el mensaje no se leia bien)
            var clases = {
                ok:    'bg-emerald-500/15 border-emerald-500/40 text-emerald-50 font-semibold',
                nuevo: 'bg-amber-500/15 border-amber-500/40 text-amber-50 font-semibold',
                error: 'bg-red-600/25 border-red-500/60 text-red-50 font-semibold'
            };
            var iconos = { ok: 'building-2', nuevo: 'plus-circle', error: 'alert-triangle' };
            $('#rutEstado')
                .attr('class', 'md:col-span-3 px-4 py-3 border rounded-xl text-sm flex items-center gap-2 ' + clases[tipo])
                .html('<i data-lucide="' + iconos[tipo] + '" class="w-4 h-4 shrink-0"></i><span></span>')
                .find('span').text(texto);
            lucide.createIcons();
        }

        function limpiarEstadoRut() {
            $('#rutEstado').attr('class', 'md:col-span-3 hidden').empty();
            $('#panelVendiendo').attr('class', 'md:col-span-3 hidden').empty();
        }

        // Panel de networking: tarjetas de quién le vende a esta empresa
        function escaparHtml(texto) { return $('<i>').text(texto == null ? '' : texto).html(); }

        function mostrarVendiendo(lista, nombreEmpresa) {
            var $panel = $('#panelVendiendo');
            if (!lista || !lista.length) { $panel.attr('class', 'md:col-span-3 hidden').empty(); return; }

            function campo(etiqueta, valorHtml) {
                return '<div>' +
                       '<div class="text-[10px] font-semibold uppercase tracking-wider text-slate-500 mb-0.5">' + etiqueta + '</div>' +
                       '<div class="text-sm text-slate-100 font-medium">' + (valorHtml || '<span class="text-slate-600">—</span>') + '</div>' +
                       '</div>';
            }

            var html = '<div class="flex items-center gap-2 text-sm font-bold text-slate-200 mb-3 mt-1">' +
                       '<i data-lucide="handshake" class="w-4 h-4 text-indigo-400"></i>' +
                       'Networking: quién le vende a esta empresa' +
                       '</div>' +
                       '<div class="grid grid-cols-1 lg:grid-cols-2 gap-3">';

            lista.forEach(function(v) {
                var pillEstado = v.ganado
                    ? '<span class="inline-flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-bold bg-emerald-500/15 text-emerald-300 border border-emerald-500/30"><i data-lucide="check-circle-2" class="w-3 h-3"></i>' + escaparHtml(v.estado) + '</span>'
                    : '<span class="inline-flex items-center gap-1 rounded-full px-2.5 py-1 text-[11px] font-bold bg-amber-500/15 text-amber-300 border border-amber-500/30"><i data-lucide="clock" class="w-3 h-3"></i>' + escaparHtml(v.estado) + '</span>';

                var vendedorHtml = '';
                if (v.contacto && v.contacto.nombre) {
                    vendedorHtml = escaparHtml(v.contacto.nombre);
                    var extras = [];
                    if (v.contacto.telefono) extras.push(escaparHtml(v.contacto.telefono));
                    if (v.contacto.correo)   extras.push(escaparHtml(v.contacto.correo));
                    if (extras.length) vendedorHtml += '<div class="text-xs text-slate-400 font-normal mt-0.5">' + extras.join(' · ') + '</div>';
                }

                html += '<div class="bg-slate-900 border border-slate-700 rounded-xl overflow-hidden shadow-lg">' +
                        '<div class="px-4 py-2.5 bg-slate-950 border-b border-slate-800 flex items-center justify-between gap-3">' +
                        '<div class="flex items-center gap-2 min-w-0">' +
                        '<i data-lucide="store" class="w-4 h-4 text-indigo-400 shrink-0"></i>' +
                        '<span class="font-bold text-white text-sm truncate">' + escaparHtml(v.franquicia) + '</span>' +
                        '</div>' + pillEstado + '</div>' +
                        '<div class="px-4 py-3 grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2.5">' +
                        campo('Vendedor / Contacto', vendedorHtml) +
                        campo('Producto Ofrecido', escaparHtml(v.producto)) +
                        campo('Empresa Cliente', escaparHtml(nombreEmpresa)) +
                        campo('Contacto del Cliente', escaparHtml(v.contacto_cliente)) +
                        '</div></div>';
            });

            html += '</div>';
            $panel.attr('class', 'md:col-span-3').html(html);
            lucide.createIcons();
        }

        // Buscar el RUT en el CRM al salir del campo
        $('#rut').on('blur', function() {
            var rut = $(this).val().trim();
            empresaExiste = false;
            leadDuplicado = false;
            $('#razon_social').prop('readonly', false);
            $('#nombre_empresa').prop('readonly', false);
            if (!rut) { limpiarEstadoRut(); return; }

            if (!validarRut(rut)) {
                $('#panelVendiendo').attr('class', 'md:col-span-3 hidden').empty();
                mostrarEstadoRut('error', 'El RUT ingresado no es válido (dígito verificador incorrecto).');
                return;
            }
            $(this).val(formatearRut(rut));

            $.getJSON('<?php echo APP_URL; ?>/leads/buscar-rut', { rut: rut }, function(r) {
                if (!r.success || r.valido === false) {
                    $('#panelVendiendo').attr('class', 'md:col-span-3 hidden').empty();
                    mostrarEstadoRut('error', r.message || 'No se pudo validar el RUT.');
                    return;
                }
                if (r.existe) {
                    empresaExiste = true;
                    $('#razon_social').val(r.empresa.razon_social).prop('readonly', true);
                    $('#nombre_empresa').val(r.empresa.nombre_fantasia || '').prop('readonly', true);
                    mostrarVendiendo(r.vendiendo, r.empresa.nombre_fantasia || r.empresa.razon_social);
                    if (r.duplicado) {
                        // Ya hay un lead abierto de esta empresa en la misma región y vertical
                        leadDuplicado = true;
                        mostrarEstadoRut('error', 'Esta empresa ya tiene un lead activo en tu región y vertical de interés. No puedes ingresarla de nuevo.');
                        return;
                    }
                    if (r.contacto) {
                        // Solo la matriz recibe el contacto (los leads son privados por franquicia)
                        mostrarEstadoRut('ok', 'Esta empresa ya existe en el CRM: ' + r.empresa.razon_social + '. Se enlazará el lead y se autocompletaron sus datos.');
                        if (!$('#contacto_nombre').val() && r.contacto.nombre)     $('#contacto_nombre').val(r.contacto.nombre);
                        if (!$('#contacto_telefono').val() && r.contacto.telefono) $('#contacto_telefono').val(r.contacto.telefono);
                        if (!$('#contacto_email').val() && r.contacto.correo)      $('#contacto_email').val(r.contacto.correo);
                    } else {
                        mostrarEstadoRut('ok', 'Esta empresa ya existe en el CRM: ' + r.empresa.razon_social + '. Se enlazará el lead — ingresa los datos de contacto.');
                    }
                    <?php if ($esAdmin): ?>
                    if (r.empresa.region_id) $('#region_id').val(String(r.empresa.region_id));
                    <?php endif; ?>
                } else {
                    $('#panelVendiendo').attr('class', 'md:col-span-3 hidden').empty();
                    mostrarEstadoRut('nuevo', 'RUT nuevo en el CRM: ingresa la razón social y el nombre — se creará la empresa junto al lead.');
                    $('#razon_social').prop('readonly', false).focus();
                }
            });
        });

        <?php if ($esAdmin): ?>
        // 1. Cascading Selector: Vertical -> Marca
        $('#vertical_id').on('change', function() {
            const verticalId = $(this).val();
            const $marcaSelect = $('#marca_id');
            const $productoSelect = $('#producto_id');

            // Resetear Marca y Producto
            $marcaSelect.val('').attr('disabled', true);
            $productoSelect.val('').attr('disabled', true);
            $marcaSelect.find('option').addClass('hidden');
            $productoSelect.find('option').addClass('hidden');

            if (verticalId) {
                // Habilitar Marca y mostrar correspondientes
                $marcaSelect.removeAttr('disabled');
                $marcaSelect.find('option[value=""]').text('-- Seleccionar Marca --');
                $marcaSelect.find(`option[data-vertical="${verticalId}"]`).removeClass('hidden');
            } else {
                $marcaSelect.find('option[value=""]').text('-- Primero elija una Vertical --');
            }
        });

        // 2. Cascading Selector: Marca -> Producto
        $('#marca_id').on('change', function() {
            const marcaId = $(this).val();
            const $productoSelect = $('#producto_id');

            // Resetear Producto
            $productoSelect.val('').attr('disabled', true);
            $productoSelect.find('option').addClass('hidden');

            if (marcaId) {
                // Habilitar Producto y mostrar correspondientes
                $productoSelect.removeAttr('disabled');
                $productoSelect.find('option[value=""]').text('-- Seleccionar Producto --');
                $productoSelect.find(`option[data-marca="${marcaId}"]`).removeClass('hidden');
            } else {
                $productoSelect.find('option[value=""]').text('-- Primero elija una Marca --');
            }
        });
        <?php endif; ?>

        function alertar(titulo, texto) {
            Swal.fire({
                icon: 'error',
                title: titulo,
                text: texto,
                background: '#1e293b',
                color: '#f8fafc',
                confirmButtonColor: '#3b82f6'
            });
        }

        // 3. Form AJAX Submission
        $('#createLeadForm').on('submit', function(e) {
            e.preventDefault();

            if (esFranquiciadoSinProductos) {
                alertar('Sin productos autorizados', 'Tu franquicia no tiene productos autorizados para vender. Contacta a la matriz.');
                return;
            }

            if (leadDuplicado) {
                alertar('Lead duplicado', 'Esta empresa ya tiene un lead activo en tu región y vertical de interés. No puedes ingresarla de nuevo.');
                return;
            }

            var rut = $('#rut').val().trim();
            if (!rut || !validarRut(rut)) {
                alertar('RUT inválido', 'El RUT del lead es obligatorio y debe ser válido (con dígito verificador correcto).');
                $('#rut').focus();
                return;
            }
            if (!empresaExiste && !$('#razon_social').val().trim()) {
                alertar('Falta la razón social', 'La empresa no existe en el CRM: ingresa la razón social para crearla junto al lead.');
                $('#razon_social').focus();
                return;
            }
            <?php if (!$esAdmin && !$productoUnico && count($productos) > 0): ?>
            if (!$('#producto_id').val()) {
                alertar('Falta el producto', 'Debes seleccionar el producto de interés del lead.');
                $('#producto_id').focus();
                return;
            }
            <?php endif; ?>

            // Deshabilitar botón
            $('.btn-guardar-lead').attr('disabled', true).addClass('opacity-80');

            const formData = $(this).serialize();

            $.ajax({
                url: '<?php echo APP_URL; ?>/leads/crear',
                type: 'POST',
                data: formData,
                dataType: 'json',
                success: function(response) {
                    if (response.success) {
                        Swal.fire({
                            icon: 'success',
                            title: '¡Guardado!',
                            text: response.message,
                            background: '#1e293b',
                            color: '#f8fafc',
                            confirmButtonColor: '#3b82f6',
                            timer: 2000,
                            showConfirmButton: false
                        }).then(() => {
                            window.location.href = response.redirect;
                        });
                    } else {
                        alertar('Error de validación', response.message);
                        $('.btn-guardar-lead').attr('disabled', false).removeClass('opacity-80');
                    }
                },
                error: function() {
                    Swal.fire({
                        icon: 'error',
                        title: 'Error de servidor',
                        text: 'No se pudo procesar el lead en este momento.',
                        background: '#1e293b',
                        color: '#f8fafc',
                        confirmButtonColor: '#ef4444'
                    });
                    $('.btn-guardar-lead').attr('disabled', false).removeClass('opacity-80');
                }
            });
        });

    });
</script>
