diff --git a/admin/setup.php b/admin/setup.php
new file mode 100644
index 0000000..1a944c1
--- /dev/null
+++ b/admin/setup.php
@@ -0,0 +1,123 @@
+
SetupAcceso Denegado
Necesitas la clave de setup. Accede con: setup.php?key=TU_CLAVE
');
+}
+
+if ($_SERVER['REQUEST_METHOD'] === 'POST' && csrfValidate()) {
+ $username = trim($_POST['username'] ?? 'admin');
+ $password = $_POST['password'] ?? '';
+ $passwordConfirm = $_POST['password_confirm'] ?? '';
+
+ if (strlen($password) < 8) {
+ $error = 'La contraseña debe tener al menos 8 caracteres.';
+ } elseif ($password !== $passwordConfirm) {
+ $error = 'Las contraseñas no coinciden.';
+ } else {
+ $db = getDB();
+ $hash = password_hash($password, PASSWORD_DEFAULT);
+
+ // Check if user exists
+ $stmt = $db->prepare('SELECT id FROM usuarios WHERE username = ?');
+ $stmt->execute([$username]);
+ $existing = $stmt->fetch();
+
+ if ($existing) {
+ $stmt = $db->prepare('UPDATE usuarios SET password_hash = ? WHERE username = ?');
+ $stmt->execute([$hash, $username]);
+ $message = "Contraseña actualizada para el usuario '{$username}'.";
+ } else {
+ $stmt = $db->prepare('INSERT INTO usuarios (username, password_hash, email) VALUES (?, ?, ?)');
+ $stmt->execute([$username, $hash, 'admin@gestorialp.com']);
+ $message = "Usuario '{$username}' creado exitosamente.";
+ }
+
+ // Clear setup session
+ unset($_SESSION['setup_key_valid']);
+ }
+}
+?>
+
+
+
+
+
+ Setup - Gestoría LP
+
+
+
+
+
+
Setup Inicial
+
Configura tu usuario administrador para Gestoría LP
+
+
+
+
+
+
+
= htmlspecialchars($error) ?>
+
+
+
+
+
+ Importante: Después de configurar tu usuario, elimina este archivo (setup.php) del servidor por seguridad.
+
+
+
+
+