<?php
// =============================================================================
// inicio.php - Página principal del sistema CV5
// Entry point: UNA sola session_start(), includes con __DIR__, flujo limpio.
// =============================================================================

// 0. Security bootstrap ANTES de session_start
require_once __DIR__ . '/security/auth.php';
configure_secure_session();

// 1. Iniciar sesión UNA SOLA VEZ
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

// 2. IRON GATEKEEPER v5.0.5: check config EXISTENCE before requiring anything
// Step A: ¿Existe config.php?
$__config_file = __DIR__ . '/config/config.php';
if (!file_exists($__config_file)) {
    // NEW_INSTALL: config.php no existe → redirigir al instalador
    header('Location: instalacion/instalador.php');
    exit();
}

// Step B: Cargar config + version (seguro: el archivo existe)
require_once $__config_file;
require_once __DIR__ . '/config/version.php';
// V4 compat: basededatos.php may have been overwritten by v5, so load it too
@require_once __DIR__ . '/instalacion/basededatos.php';

// Step C: ¿Config tiene credenciales? (soporta AMBOS formatos: V4 define() y V5 $db_*)
// V4 config.php solo tiene define('DB_HOST',...) sin variables $db_*
// V5 config.php tiene ambos (define + variables)
if (empty($db_host) && defined('DB_HOST'))     $db_host     = DB_HOST;
if (empty($db_user) && defined('DB_USER'))     $db_user     = DB_USER;
if (empty($db_password) && defined('DB_PASSWORD')) $db_password = DB_PASSWORD;
if (empty($db_name) && defined('DB_NAME'))     $db_name     = DB_NAME;

$__config_has_creds = (!empty($db_host) && !empty($db_user) && !empty($db_name));
if (!$__config_has_creds) {
    // Config existe pero está completamente vacío → instalación nueva
    header('Location: instalacion/instalador.php');
    exit();
}

// Step D: Intentar conexión a la BD (con retry usando constantes si variables fallan)
$__db_connected = false;
try {
    $__su = @new mysqli($db_host, $db_user, $db_password ?? '', $db_name);
    // Retry with constants if first attempt fails (post-migration edge case)
    if ($__su->connect_error && defined('DB_HOST') && defined('DB_NAME')) {
        @$__su->close();
        $__su = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD ?? '', DB_NAME);
        if (!$__su->connect_error) {
            $db_host = DB_HOST; $db_user = DB_USER; $db_password = DB_PASSWORD; $db_name = DB_NAME;
        }
    }
    if (!$__su->connect_error) {
        $__db_connected = true;
        $__su->set_charset("utf8mb4");

        // Check 0: ¿La BD tiene tablas? Si está vacía → instalación (con credenciales)
        $__tables = @$__su->query("SHOW TABLES");
        $__table_count = $__tables ? $__tables->num_rows : 0;
        if ($__table_count === 0) {
            $__su->close();
            header('Location: instalacion/instalador.php?setup=db_exists');
            exit();
        }

        $__needs_update = false;
        // Check 1: SYSTEM_VERSION
        $__r = @$__su->query("SELECT value FROM settings WHERE name='SYSTEM_VERSION'");
        if ($__r && $__row = $__r->fetch_assoc()) {
            if (version_compare($__row['value'], CV5_VERSION, '<')) {
                $__needs_update = true;
            }
        } else {
            $__needs_update = true;
        }
        // Check 2: Structural — expires_at column + user_authorized_emails table
        $__col = @$__su->query("SHOW COLUMNS FROM `users` LIKE 'expires_at'");
        $__tbl = @$__su->query("SHOW TABLES LIKE 'user_authorized_emails'");
        $__is_v4 = (!$__col || $__col->num_rows === 0 || !$__tbl || $__tbl->num_rows === 0);
        if ($__is_v4) $__needs_update = true;
        $__su->close();

        if ($__needs_update) {
            if ($__is_v4) {
                // CAMINO B: V4→V5 — Nuclear Session Drop + redirect
                if (session_status() === PHP_SESSION_ACTIVE) {
                    $_SESSION = [];
                    session_destroy();
                    if (ini_get('session.use_cookies')) {
                        setcookie(session_name(), '', time() - 3600, '/');
                    }
                }
                header("Location: actualizar.php?mode=v4_upgrade");
            } else {
                // CAMINO C: V5→V5 patch — no session drop needed
                header("Location: actualizar.php?mode=v5_patch");
            }
            exit();
        }
    }
} catch (\Exception $__e) {
    // Connection failed — handled below
}

// Step E: Config existe + tiene credenciales + conexión falló = ERROR DE BD (NUNCA instalador)
if (!$__db_connected) {
    echo '<!DOCTYPE html><html lang="es"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Error de Conexión</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" crossorigin="anonymous">
    </head><body style="background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);min-height:100vh;display:flex;align-items:center;justify-content:center;font-family:Segoe UI,system-ui,sans-serif">
    <div style="background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;max-width:460px;text-align:center;color:#fff">
    <div style="width:70px;height:70px;border-radius:50%;background:rgba(255,82,82,.12);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.8rem;color:#ff5252"><i class="fas fa-database"></i></div>
    <h2 style="font-size:1.3rem;font-weight:700;margin-bottom:.5rem">Error de Conexión a la Base de Datos</h2>
    <p style="color:rgba(255,255,255,.5);font-size:.85rem;margin-bottom:1rem">El sistema tiene configuración pero no puede conectarse a la base de datos. Verifica las credenciales en <code>config/config.php</code> y que el servidor MySQL esté activo.</p>
    <a href="inicio.php" style="display:inline-block;background:linear-gradient(135deg,#6c63ff,#5a52d5);color:#fff;text-decoration:none;padding:.6rem 1.5rem;border-radius:10px;font-weight:600;font-size:.85rem"><i class="fas fa-redo me-1"></i>Reintentar</a>
    </div></body></html>';
    exit();
}

// 3. Cargar dependencias completas (seguro: config existe, BD conectada, versión correcta)
require_once __DIR__ . '/funciones.php';

// 5. Conexión a base de datos (graceful error si la BD fue eliminada)
$conn = gd_try_db_connect();

// 6. Validar licencia (NO bloqueante - solo registrar en log si falla)
$license_results = gd_verify_system_license();
$license_active = (isset($license_results['status']) && $license_results['status'] === 'Active');
if (!$license_active) {
    error_log("CV5 LICENCIA: Licencia no activa en inicio.php - Status: " . ($license_results['status'] ?? 'Desconocido'));
}

// 7. Procesar logout ANTES de check_session
if (isset($_GET['logout'])) {
    session_unset();
    session_destroy();
    session_start();
    header("Location: inicio.php");
    exit();
}

// 8. Obtener configuraciones
$settings = get_all_settings($conn);
$page_title = $settings['PAGE_TITLE'] ?? 'Sistema de Consulta';
$require_login = ($settings['REQUIRE_LOGIN'] ?? '1') === '1';

// 9. Procesar login de usuario (POST desde el modal inline) — usa validar_credenciales_sistema()
$login_error = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login_user'])) {
    require_csrf();

    $username = trim($_POST['username']);
    $password = $_POST['password'];

    // Rate limiting: max 5 intentos en 15 minutos
    if (!rate_limit_check('login', 5, 900)) {
        $login_error = 'Demasiados intentos. Espera 15 minutos.';
    } else {
        $auth = validar_credenciales_sistema($conn, $username, $password, false);

        if ($auth !== null) {
            $_SESSION['user_id'] = $auth['user_id'];
            $_SESSION['username'] = $auth['username'];
            $_SESSION['user_role'] = $auth['user_role'];
            $_SESSION['last_activity'] = time();
            regenerate_session();
            header("Location: inicio.php");
            exit();
        } else {
            $login_error = "Credenciales incorrectas o usuario inactivo";
        }
    }
}

// 10. Verificar sesión (NO redirige a index.php, solo controla el overlay de login)
//     Si REQUIRE_LOGIN=1 y no autenticado -> mostramos overlay en esta misma página
//     Si REQUIRE_LOGIN=0 -> acceso libre
$user_logged_in = is_authenticated();
if ($user_logged_in) {
    update_session_activity();
    // Si la sesión expiró, limpiar y mostrar login
    if (is_session_expired()) {
        session_unset();
        session_destroy();
        session_start();
        $user_logged_in = false;
    }
}

header('Content-Type: text/html; charset=utf-8');

// 11. Recuperar mensajes de sesión (flash messages)
$resultado = isset($_SESSION['resultado']) ? $_SESSION['resultado'] : '';
$error_message = isset($_SESSION['error_message']) ? $_SESSION['error_message'] : '';
unset($_SESSION['resultado']);
unset($_SESSION['error_message']);

// 12. Brand name y footer
$brand_name = $settings['BRAND_NAME'] ?? 'Mi Negocio';
$footer_custom_enabled = ($settings['FOOTER_CUSTOM_ENABLED'] ?? '0') === '1';

// WhatsApp link
$whatsappNumero = $settings['enlace_global_numero_whatsapp'] ?? '';
$whatsappTexto = $settings['enlace_global_texto_whatsapp'] ?? '';
$whatsappLink = 'https://wa.me/' . $whatsappNumero . '?text=' . urlencode($whatsappTexto);

// Plataformas
$platforms_result = $conn->query("SELECT name FROM platforms WHERE status = 1 ORDER BY name ASC");
$platform_options = [];
if ($platforms_result && $platforms_result->num_rows > 0) {
    while ($pr = $platforms_result->fetch_assoc()) $platform_options[] = $pr['name'];
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?= htmlspecialchars($page_title) ?></title>
<?php $favicon_file = $settings['FAVICON'] ?? ''; if (!empty($favicon_file)): $fext = pathinfo($favicon_file, PATHINFO_EXTENSION); $ftype = ($fext==='svg'?'image/svg+xml':($fext==='png'?'image/png':'image/x-icon')); ?>
<link rel="icon" type="<?= $ftype ?>" href="/images/favicon/<?= htmlspecialchars($favicon_file) ?>">
<?php endif; ?>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" crossorigin="anonymous">
<?php $bg_image = $settings['BACKGROUND_IMAGE'] ?? 'fondo.jpg'; ?>
<link rel="stylesheet" href="styles/cv5.css">
<style>
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow-x:hidden}
body{background:#141414;background-image:url('/images/fondo/<?= htmlspecialchars($bg_image) ?>');background-size:cover;background-position:center;background-attachment:fixed;min-height:100vh;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:#fff;display:flex;flex-direction:column}
body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.55);z-index:0;pointer-events:none}
.top-bar{position:relative;z-index:10;background:rgba(0,0,0,0.65);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-bottom:1px solid rgba(255,255,255,0.08);padding:.35rem .8rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;min-height:38px}
.top-bar .brand{font-weight:700;font-size:.82rem;color:#fff;text-decoration:none;display:flex;align-items:center;gap:.3rem;white-space:nowrap;flex-shrink:0}
.top-bar .brand i{color:#6c63ff}
.top-links{display:flex;gap:.2rem;align-items:center;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.top-links::-webkit-scrollbar{display:none}
.top-links::after{content:"";position:sticky;right:0;width:20px;min-height:100%;background:linear-gradient(to right,transparent,rgba(0,0,0,0.65));pointer-events:none;flex-shrink:0}
.top-links a{color:rgba(255,255,255,0.5);text-decoration:none;font-size:.7rem;padding:.2rem .5rem;border-radius:6px;transition:all .15s;display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap;flex-shrink:0}
.top-links a:hover{color:#fff;background:rgba(255,255,255,0.06)}
.top-links a.admin-btn{color:#6c63ff;border:1px solid rgba(108,99,255,0.3)}
.top-links a.admin-btn:hover{background:rgba(108,99,255,0.1)}
.top-links a.logout-btn{color:#ff5252}
.main-area{position:relative;z-index:1;flex:1;display:flex;align-items:center;justify-content:center;padding:.8rem}
.card-main{background:rgba(0,0,0,0.55);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:16px;padding:1.3rem 1.8rem;width:100%;max-width:420px;text-align:center}
.card-main .logo-img{max-height:60px;margin-bottom:.6rem;opacity:.9}
.card-main h1{font-size:1rem;font-weight:700;margin-bottom:.15rem}
.card-main .sub{color:rgba(255,255,255,0.4);font-size:.75rem;margin-bottom:1rem}
.field-label{color:rgba(255,255,255,0.55);font-size:.7rem;font-weight:500;margin-bottom:.15rem;text-align:left;display:block}
.field-input{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:8px;color:#fff;padding:.45rem .7rem;width:100%;font-size:.82rem;transition:all .2s}
.field-input:focus{background:rgba(255,255,255,0.12);border-color:#6c63ff;outline:none;box-shadow:0 0 0 2px rgba(108,99,255,0.15);color:#fff}
.field-input::placeholder{color:rgba(255,255,255,0.2)}
.field-input option{background:#1a1740;color:#fff}
.btn-search{width:100%;background:linear-gradient(135deg,#6c63ff,#5a52d5);color:#fff;border:none;border-radius:8px;padding:.55rem;font-weight:600;font-size:.82rem;cursor:pointer;transition:all .25s;margin-top:.2rem}
.btn-search:hover{background:linear-gradient(135deg,#7b73ff,#6c63ff);transform:translateY(-1px);box-shadow:0 4px 15px rgba(108,99,255,0.35)}
.result-box{display:block;width:100%;background:rgba(0,200,83,0.08);border:1px solid rgba(0,200,83,0.2);border-radius:10px;padding:.6rem;margin-top:.3rem;font-size:.8rem;max-height:none;overflow-y:visible;overflow-x:hidden;white-space:pre-wrap;word-wrap:break-word !important;word-break:break-all;overflow-wrap:break-word;max-width:100%;box-sizing:border-box}
.error-box{background:rgba(255,82,82,0.08);border:1px solid rgba(255,82,82,0.2);border-radius:10px;padding:.5rem;margin-top:.6rem;font-size:.8rem;color:#ff8a80}
.login-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:.5rem}
.login-card{background:rgba(0,0,0,0.6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);border-radius:16px;padding:1.5rem;width:100%;max-width:340px}
.login-card h3{font-size:.95rem;font-weight:700;text-align:center;margin-bottom:.8rem}
.login-card .alert{font-size:.78rem;padding:.35rem .5rem;border-radius:8px}
.btn-login{width:100%;background:linear-gradient(135deg,#6c63ff,#5a52d5);color:#fff;border:none;border-radius:8px;padding:.5rem;font-weight:600;font-size:.82rem;cursor:pointer}
.forgot-link{display:block;text-align:center;margin-top:.5rem;color:rgba(255,255,255,0.35);font-size:.72rem;text-decoration:none;transition:color .2s}
.forgot-link:hover{color:#6c63ff}
.footer-bar{position:relative;z-index:1;background:rgba(0,0,0,0.65);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-top:1px solid rgba(255,255,255,0.08);padding:.5rem .8rem;text-align:center;font-size:.7rem;color:rgba(255,255,255,0.35);flex-shrink:0}
.footer-bar a{color:rgba(255,255,255,0.5);text-decoration:none;transition:color .15s}.footer-bar a:hover{color:#6c63ff}
@media(max-width:576px){.card-main{padding:1rem .8rem;max-width:95%;border-radius:12px}.card-main h1{font-size:.9rem}.card-main .sub{font-size:.7rem;margin-bottom:.7rem}.field-input{padding:.4rem .6rem;font-size:.8rem}.btn-search{padding:.45rem;font-size:.8rem}.login-card{padding:1.2rem;max-width:92%}.login-card h3{font-size:.88rem;margin-bottom:.6rem}.top-bar{padding:.3rem .5rem}.top-bar .brand{font-size:.75rem}.top-links a{font-size:.65rem;padding:.15rem .35rem}.result-box{max-height:60vh;overflow-y:auto;font-size:.75rem}.footer-bar{padding:.4rem .5rem;font-size:.65rem}}
/* Fix autofill yellow on dark bg */
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px rgba(255,255,255,0.07) inset!important;-webkit-text-fill-color:#fff!important;transition:background-color 5000s ease-in-out 0s}
</style>
</head>
<body>

<!-- Top Bar -->
<div class="top-bar">
<a class="brand" href="javascript:location.reload();"><i class="fas fa-bolt"></i> <?= htmlspecialchars($brand_name) ?></a>
<div class="top-links">
<?php if (is_installed() && is_admin()): ?>
<a href="admin/admin.php" class="admin-btn"><i class="fas fa-cogs"></i> Admin</a>
<?php elseif (is_installed() && !is_authenticated() && !is_login_required($conn)): ?>
<a href="index.php?action=admin_login" class="admin-btn"><i class="fas fa-user-shield"></i> Admin</a>
<?php endif; ?>
<?php if (!empty($settings['enlace_global_1'])): ?>
<a href="<?= htmlspecialchars($settings['enlace_global_1']) ?>" target="_blank"><i class="fas fa-bookmark"></i> <?= htmlspecialchars($settings['enlace_global_1_texto'] ?? 'Web') ?></a>
<?php endif; ?>
<?php if (!empty($settings['enlace_global_2'])): ?>
<a href="<?= htmlspecialchars($settings['enlace_global_2']) ?>" target="_blank"><i class="fab fa-telegram-plane"></i> <?= htmlspecialchars($settings['enlace_global_2_texto'] ?? 'Telegram') ?></a>
<?php endif; ?>
<?php if (!empty($whatsappNumero)): ?>
<a href="<?= htmlspecialchars($whatsappLink) ?>" target="_blank"><i class="fab fa-whatsapp" style="color:#25d366"></i> Soporte Técnico</a>
<?php endif; ?>
<?php if ($user_logged_in): ?>
<a href="inicio.php?logout=1" class="logout-btn"><i class="fas fa-sign-out-alt"></i> Salir</a>
<?php endif; ?>
</div>
</div>

<?php if ($require_login && !$user_logged_in): ?>
<!-- Login Overlay -->
<div class="login-overlay">
<div class="login-card">
<h3><i class="fas fa-lock" style="color:#6c63ff"></i> Iniciar Sesión</h3>
<?php if (!empty($login_error)): ?><div class="alert alert-danger"><?= htmlspecialchars($login_error) ?></div><?php endif; ?>
<form method="POST" action="inicio.php">
<?= csrf_field() ?>
<div style="margin-bottom:.7rem"><label class="field-label" for="username">Usuario</label><input type="text" id="username" name="username" class="field-input" required autofocus></div>
<div style="margin-bottom:1rem"><label class="field-label" for="password">Contraseña</label><input type="password" id="password" name="password" class="field-input" required></div>
<button type="submit" name="login_user" class="btn-login"><i class="fas fa-sign-in-alt me-1"></i> Ingresar</button>
</form>
<a href="recuperar.php" class="forgot-link"><i class="fas fa-key me-1"></i>¿Olvidaste tu contraseña?</a>
</div>
</div>
<?php endif; ?>

<!-- Main Area -->
<div class="main-area">
<div class="card-main">
<?php if (!empty($settings['LOGO'])): ?>
<img src="/images/logo/<?= htmlspecialchars($settings['LOGO']) ?>" alt="<?= htmlspecialchars($brand_name ?? 'CV5') ?> - Logo" class="logo-img">
<?php endif; ?>
<h1><?= htmlspecialchars($page_title) ?></h1>
<p class="sub">Ingresa tus datos para buscar tu código</p>

<form action="consultar.php" method="POST">
<?= csrf_field() ?>
<div style="margin-bottom:.7rem"><label class="field-label" for="email_consulta"><i class="fas fa-envelope me-1"></i>Correo a consultar</label>
<input type="email" name="email" id="email_consulta" class="field-input" placeholder="correo@ejemplo.com" required maxlength="50"></div>
<div style="margin-bottom:.7rem"><label class="field-label" for="plataforma_consulta"><i class="fas fa-tv me-1"></i>Plataforma</label>
<input type="text" name="plataforma" id="plataforma_consulta" class="field-input" list="plataformas-list" placeholder="Seleccione o escriba..." required autocomplete="off">
<datalist id="plataformas-list">
<?php foreach($platform_options as $pn): ?><option value="<?= htmlspecialchars($pn) ?>"><?php endforeach; ?>
</datalist></div>
<?php if ($user_logged_in && ($_SESSION['user_role'] ?? '') === 'usuario'): ?><input type="hidden" name="user_id" value="<?= htmlspecialchars($_SESSION['user_id']) ?>"><?php endif; ?>
<button type="submit" class="btn-search"><i class="fas fa-search me-1"></i> Buscar Código</button>
</form>

<?php if (!empty($resultado)): ?>
<div class="result-box"><?= $resultado ?></div>
<?php endif; ?>
<?php if (!empty($error_message)): ?>
<div class="alert alert-danger" style="border-radius:10px;padding:.5rem;margin-top:.6rem;font-size:.8rem;"><i class="fas fa-exclamation-triangle me-1"></i><?= htmlspecialchars($error_message) ?></div>
<?php endif; ?>
</div>
</div>

<!-- Footer -->
<div class="footer-bar">
<?php if ($footer_custom_enabled && !empty($settings['FOOTER_TEXTO'])): ?>
<?= htmlspecialchars($settings['FOOTER_TEXTO']) ?>
<?php if (!empty($settings['FOOTER_NUMERO_WHATSAPP'])): ?>
 &bull; <a href="https://wa.me/<?= htmlspecialchars($settings['FOOTER_NUMERO_WHATSAPP']) ?>?text=<?= urlencode($settings['FOOTER_TEXTO_WHATSAPP'] ?? '') ?>" target="_blank"><?= htmlspecialchars($settings['FOOTER_CONTACTO'] ?? 'Contacto') ?></a>
<?php endif; ?>
<?php else: ?>
¿Interesado en una página web y bot de códigos? <a href="https://gruposdigitales.com/aff.php?aff=<?= htmlspecialchars($settings['ID_VENDEDOR'] ?? '') ?>" target="_blank">Click aquí</a>
<?php endif; ?>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script>document.querySelector('form[action="consultar.php"]')?.addEventListener('submit',function(){var b=this.querySelector('button[type=submit]');if(b){b.disabled=true;b.innerHTML='<i class=\"fas fa-spinner fa-spin me-1\"></i>Buscando...'}});</script>
</body>
</html>
