diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..6e8a540
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,130 @@
+/* PicklePRO Custom Styles */
+body {
+ font-family: 'Inter', sans-serif;
+ background-color: #f8f9fa; /* Light grey background */
+ color: #333;
+}
+
+.navbar-brand {
+ font-weight: 700;
+ font-size: 1.5rem;
+}
+
+.navbar-brand .text-primary {
+ color: #0d6efd !important; /* Bootstrap Primary */
+}
+
+.nav-link {
+ color: #6c757d; /* Muted text for nav links */
+ font-weight: 500;
+}
+
+.nav-link:hover, .nav-link.active {
+ color: #0d6efd;
+}
+
+.btn-primary {
+ background-color: #0d6efd;
+ border-color: #0d6efd;
+ font-weight: 500;
+ padding: 0.5rem 1.25rem;
+}
+
+.btn-primary:hover {
+ background-color: #0b5ed7;
+ border-color: #0a58ca;
+}
+
+.btn-outline-primary {
+ border-color: #0d6efd;
+ color: #0d6efd;
+}
+
+.btn-outline-primary:hover {
+ background-color: #0d6efd;
+ color: white;
+}
+
+.btn-link {
+ color: #333;
+ font-weight: 500;
+}
+
+.card {
+ border: none;
+ border-radius: 0.75rem;
+ box-shadow: 0 4px 12px rgba(0,0,0,0.05);
+ height: 100%;
+}
+
+.carousel-indicators-custom {
+ text-align: center;
+ margin-top: 1rem;
+}
+
+.carousel-indicators-custom button {
+ background-color: #d1d1d1;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ border: none;
+ margin: 0 4px;
+ transition: background-color 0.3s;
+}
+
+.carousel-indicators-custom button.active {
+ background-color: #0d6efd;
+}
+
+.tournament-item:not(:last-child) {
+ margin-bottom: 1rem;
+}
+
+.calendar-grid {
+ display: grid;
+ grid-template-columns: repeat(7, 1fr);
+ gap: 0.5rem;
+ text-align: center;
+}
+
+.day-name {
+ font-weight: 600;
+ font-size: 0.8rem;
+ color: #6c757d;
+}
+
+.day {
+ padding: 0.5rem 0;
+ border-radius: 50%;
+ font-size: 0.9rem;
+ position: relative;
+}
+
+.day.event {
+ background-color: #eaf2ff;
+ color: #0d6efd;
+ font-weight: 500;
+}
+
+.day.event::after {
+ content: '';
+ position: absolute;
+ bottom: 4px;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background-color: #0d6efd;
+}
+
+.day.empty {
+ visibility: hidden;
+}
+
+.event-dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ flex-shrink: 0;
+}
\ No newline at end of file
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..e69de29
diff --git a/assets/pasted-20251020-225815-87128f21.png b/assets/pasted-20251020-225815-87128f21.png
new file mode 100644
index 0000000..1a2fae5
Binary files /dev/null and b/assets/pasted-20251020-225815-87128f21.png differ
diff --git a/db/setup.php b/db/setup.php
new file mode 100644
index 0000000..60f538f
--- /dev/null
+++ b/db/setup.php
@@ -0,0 +1,59 @@
+setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+ // Create users table
+ $pdo->exec("
+ CREATE TABLE IF NOT EXISTS `users` (
+ `id` INT AUTO_INCREMENT PRIMARY KEY,
+ `username` VARCHAR(255) NOT NULL UNIQUE,
+ `password` VARCHAR(255) NOT NULL,
+ `role` VARCHAR(50) NOT NULL,
+ `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ ");
+
+ // Create clubs table
+ $pdo->exec("
+ CREATE TABLE IF NOT EXISTS `clubs` (
+ `id` INT AUTO_INCREMENT PRIMARY KEY,
+ `name` VARCHAR(255) NOT NULL,
+ `address` VARCHAR(255) NOT NULL,
+ `number` VARCHAR(50),
+ `neighborhood` VARCHAR(100),
+ `city` VARCHAR(100) NOT NULL,
+ `description` TEXT,
+ `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ ");
+
+ // Check if superadmin exists
+ $stmt = $pdo->prepare("SELECT id FROM users WHERE username = 'superadmin'");
+ $stmt->execute();
+ if ($stmt->fetch()) {
+ echo "Superadmin user already exists.
";
+ } else {
+ // Insert default superadmin user
+ $username = 'superadmin';
+ $password = 'superadmin'; // Default password, you should change this
+ $hashed_password = password_hash($password, PASSWORD_DEFAULT);
+ $role = 'superadmin';
+
+ $stmt = $pdo->prepare("INSERT INTO users (username, password, role) VALUES (:username, :password, :role)");
+ $stmt->bindParam(':username', $username);
+ $stmt->bindParam(':password', $hashed_password);
+ $stmt->bindParam(':role', $role);
+ $stmt->execute();
+ echo "Superadmin user created successfully with username 'superadmin' and password 'superadmin'.
";
+ }
+
+ echo "Database setup completed successfully!
";
+ echo "You can now delete this file (db/setup.php) for security reasons.";
+
+} catch (PDOException $e) {
+ die("Database setup failed: " . $e->getMessage());
+}
diff --git a/index.php b/index.php
index 7205f3d..75126c9 100644
--- a/index.php
+++ b/index.php
@@ -1,150 +1,161 @@
-
-
-
+
+
-
-
- New Style
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ PicklePRO - Seu Portal Completo de Pickleball
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
Analyzing your requirements and generating your website…
-
- Loading…
-
-
= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.
-
This page will update automatically as the plan is implemented.
-
Runtime: PHP = htmlspecialchars($phpVersion) ?> — UTC = htmlspecialchars($now) ?>
-
-
-
+
+
+
+
+
+
+
+
Seu Portal Completo de Pickleball
+
+
+
+
+
+
Clubes Parceiros
+
+
+
+
+
+
Santa Cecília Pickleball
+
Clube tradicional com excelente estrutura para prática de Pickleball
+
Av. Santa Cecília, 456 - São Paulo, SP
+
(11) 97654-3210
+
contato@santacecilia.com.br
+
Ver Agendamentos Disponíveis
+
+
+
Smash Club
+
O melhor lugar para jogar e fazer amigos.
+
Rua dos Atletas, 123 - Rio de Janeiro, RJ
+
(21) 98765-4321
+
contato@smashclub.com.br
+
Ver Agendamentos Disponíveis
+
+
+
+
+
+
+
+
+
+
+
+
+
Próximos Torneios
+
+
+
1º COPA DINK DE PICKLEBALL
+
Dink Pickleball
+
15/10/2025
+
+
+
+
1ª COPA DE PICKLEBALL
+
Smash Pickleball
+
25/10/2025
+
+
+
+
+
+
+
Calendário
+
+
+
+
Dom
Seg
Ter
Qua
Qui
Sex
Sáb
+
1
2
3
4
+
5
6
7
8
9
10
11
+
12
13
14
15
16
17
18
+
19
20
21
22
23
24
25
+
26
27
28
29
30
31
+
+
+
+
Torneios do Mês
+
+
+ 1º COPA DINK DE PICKLEBALL • 14 de out. - 18 de out.
+
+
+
+ 1ª COPA DE PICKLEBALL • 24 de out. - 25 de out.
+
+
+
Ver Todos os Torneios
+
+
+
+
+
+
+
+
+
+
+