diff --git a/add_sale.php b/add_sale.php
new file mode 100644
index 0000000..ca9f559
--- /dev/null
+++ b/add_sale.php
@@ -0,0 +1,99 @@
+ "Lean Beef Mince",
+ "image" => "assets/pasted-20251121-114725-33d5afd9.jpg",
+ "calories" => 150,
+ "protein" => 20,
+ "carbs" => 0,
+ "fat" => 7,
+ ],
+ [
+ "name" => "Chicken Breast",
+ "image" => "assets/vm-shot-2025-11-21T11-47-05-928Z.jpg",
+ "calories" => 165,
+ "protein" => 31,
+ "carbs" => 0,
+ "fat" => 3.6,
+ ],
+ [
+ "name" => "Salmon Fillet",
+ "image" => "https://images.pexels.com/photos/3296279/pexels-photo-3296279.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
+ "calories" => 208,
+ "protein" => 20,
+ "carbs" => 0,
+ "fat" => 13,
+ ],
+ [
+ "name" => "Broccoli",
+ "image" => "https://images.pexels.com/photos/4057737/pexels-photo-4057737.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
+ "calories" => 55,
+ "protein" => 3.7,
+ "carbs" => 11,
+ "fat" => 0.6,
+ ],
+];
+
+$success_message = "";
+if ($_SERVER["REQUEST_METHOD"] == "POST") {
+ // Basic validation
+ if (!empty($_POST['product_name']) && !empty($_POST['quantity']) && is_numeric($_POST['quantity'])) {
+ // In a real app, you would save this to a database.
+ // For now, we just show a success message.
+ $product_name = htmlspecialchars($_POST['product_name']);
+ $quantity = htmlspecialchars($_POST['quantity']);
+ $success_message = "Successfully added $quantity sale(s) for $product_name!";
+ }
+}
+?>
+
+
+
+
+
+ Add Sale - Sales Tracker
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api/pexels.php b/api/pexels.php
new file mode 100644
index 0000000..4fb4c8c
--- /dev/null
+++ b/api/pexels.php
@@ -0,0 +1,19 @@
+'Failed to fetch image']); exit; }
+$photo = $data['photos'][0];
+$src = $photo['src']['large2x'] ?? ($photo['src']['large'] ?? $photo['src']['original']);
+$target = __DIR__ . '/../assets/images/pexels/' . $photo['id'] . '.jpg';
+download_to($src, $target);
+// Return minimal info and local relative path
+echo json_encode([
+ 'id' => $photo['id'],
+ 'local' => 'assets/images/pexels/' . $photo['id'] . '.jpg',
+ 'photographer' => $photo['photographer'] ?? null,
+ 'photographer_url' => $photo['photographer_url'] ?? null,
+]);
diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..848f435
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,198 @@
+body {
+ background-color: #1a1a2e;
+ font-family: 'Poppins', sans-serif;
+ color: #e0e0e0;
+}
+
+.mobile-container {
+ max-width: 480px;
+ margin: auto;
+ background-color: transparent;
+ min-height: 100vh;
+ position: relative;
+ overflow: hidden;
+}
+
+.background-gradient {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 50vh;
+ background: linear-gradient(to bottom, #1f4287, #1a1a2e);
+ z-index: -1;
+}
+
+.app-header {
+ background: transparent;
+ color: white;
+ position: sticky;
+ top: 0;
+ z-index: 1030;
+}
+
+.product-card {
+ border-radius: 1rem;
+ overflow: hidden;
+ position: relative;
+ height: 200px;
+ background-size: cover;
+ background-position: center;
+ display: flex;
+ align-items: flex-end;
+ color: white;
+ box-shadow: 0 10px 20px rgba(0,0,0,0.2), 0 6px 6px rgba(0,0,0,0.2);
+ transition: transform 0.3s ease;
+}
+
+.product-card:hover {
+ transform: translateY(-5px);
+}
+
+.card-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0) 100%);
+}
+
+.card-content {
+ position: relative;
+ z-index: 1;
+ padding: 1rem;
+ width: 100%;
+}
+
+.card-title {
+ font-weight: 600;
+ margin-bottom: 0.25rem;
+}
+
+.card-text {
+ font-size: 0.9rem;
+ margin-bottom: 0.5rem;
+ font-weight: 600;
+}
+
+.nutrient-badge {
+ font-size: 0.75rem;
+ padding: 0.3em 0.6em;
+ background-color: rgba(255, 255, 255, 0.15);
+ backdrop-filter: blur(5px);
+ border-radius: 50px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+/* Add Sale Page & Form */
+.add-sale-form {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ padding: 20px;
+ background: rgba(255, 255, 255, 0.1);
+ border-radius: 15px;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ backdrop-filter: blur(10px);
+ -webkit-backdrop-filter: blur(10px);
+}
+
+.form-group {
+ display: flex;
+ flex-direction: column;
+}
+
+.form-group label {
+ margin-bottom: 8px;
+ font-weight: 600;
+ color: #f0f0f0;
+}
+
+.form-group input,
+.form-group select {
+ padding: 12px;
+ border-radius: 8px;
+ border: 1px solid rgba(255, 255, 255, 0.3);
+ background-color: rgba(0, 0, 0, 0.2);
+ color: #fff;
+ font-family: 'Poppins', sans-serif;
+ font-size: 1rem;
+}
+
+.form-group select {
+ appearance: none;
+ -webkit-appearance: none;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: right 15px center;
+ padding-right: 40px;
+}
+
+.form-group input:focus,
+.form-group select:focus {
+ outline: none;
+ border-color: #8E44AD;
+ box-shadow: 0 0 0 3px rgba(142, 68, 173, 0.5);
+}
+
+.btn.btn-primary {
+ padding: 15px;
+ border: none;
+ border-radius: 8px;
+ background: linear-gradient(45deg, #8E44AD, #C0392B);
+ color: white;
+ font-weight: 600;
+ font-size: 1.1rem;
+ cursor: pointer;
+ transition: transform 0.2s, box-shadow 0.2s;
+}
+
+.btn.btn-primary:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
+}
+
+.back-button {
+ position: absolute;
+ left: 15px;
+ top: 50%;
+ transform: translateY(-50%);
+ font-size: 1.8rem;
+ color: white;
+ text-decoration: none;
+}
+
+.alert.success {
+ padding: 15px;
+ background-color: rgba(46, 204, 113, 0.8);
+ color: white;
+ border-radius: 8px;
+ margin-bottom: 20px;
+ text-align: center;
+}
+
+/* Floating Action Button */
+.fab {
+ position: fixed;
+ bottom: 30px;
+ right: 30px;
+ width: 60px;
+ height: 60px;
+ background: linear-gradient(45deg, #8E44AD, #C0392B);
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ font-size: 28px;
+ text-decoration: none;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
+ transition: all 0.3s ease;
+ z-index: 1000;
+}
+
+.fab:hover {
+ transform: scale(1.1);
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
+}
diff --git a/assets/pasted-20251121-114725-33d5afd9.jpg b/assets/pasted-20251121-114725-33d5afd9.jpg
new file mode 100644
index 0000000..fdd45ce
Binary files /dev/null and b/assets/pasted-20251121-114725-33d5afd9.jpg differ
diff --git a/assets/vm-shot-2025-11-21T11-47-05-928Z.jpg b/assets/vm-shot-2025-11-21T11-47-05-928Z.jpg
new file mode 100644
index 0000000..fdd45ce
Binary files /dev/null and b/assets/vm-shot-2025-11-21T11-47-05-928Z.jpg differ
diff --git a/includes/pexels.php b/includes/pexels.php
new file mode 100644
index 0000000..0c04a85
--- /dev/null
+++ b/includes/pexels.php
@@ -0,0 +1,25 @@
+ 0 ? $k : 'Vc99rnmOhHhJAbgGQoKLZtsaIVfkeownoQNbTj78VemUjKh08ZYRbf18';
+}
+function pexels_get($url) {
+ $ch = curl_init();
+ curl_setopt_array($ch, [
+ CURLOPT_URL => $url,
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_HTTPHEADER => [ 'Authorization: '. pexels_key() ],
+ CURLOPT_TIMEOUT => 15,
+ ]);
+ $resp = curl_exec($ch);
+ $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ curl_close($ch);
+ if ($code >= 200 && $code < 300 && $resp) return json_decode($resp, true);
+ return null;
+}
+function download_to($srcUrl, $destPath) {
+ $data = file_get_contents($srcUrl);
+ if ($data === false) return false;
+ if (!is_dir(dirname($destPath))) mkdir(dirname($destPath), 0775, true);
+ return file_put_contents($destPath, $data) !== false;
+}
diff --git a/index.php b/index.php
index 7205f3d..6e61900 100644
--- a/index.php
+++ b/index.php
@@ -1,150 +1,90 @@
1, 'name' => 'Avocado', 'calories' => 160, 'protein' => 2, 'carbs' => 9, 'fat' => 15],
+ ['id' => 2, 'name' => 'Chicken Breast', 'calories' => 165, 'protein' => 31, 'carbs' => 0, 'fat' => 3.6],
+ ['id' => 3, 'name' => 'Salmon Fillet', 'calories' => 208, 'protein' => 20, 'carbs' => 0, 'fat' => 13],
+ ['id' => 4, 'name' => 'Brown Rice', 'calories' => 111, 'protein' => 2.6, 'carbs' => 23, 'fat' => 0.9],
+ ['id' => 5, 'name' => 'Broccoli', 'calories' => 55, 'protein' => 3.7, 'carbs' => 11, 'fat' => 0.6],
+ ['id' => 6, 'name' => 'Apple', 'calories' => 52, 'protein' => 0.3, 'carbs' => 14, 'fat' => 0.2],
+ ['id' => 7, 'name' => 'Banana', 'calories' => 89, 'protein' => 1.1, 'carbs' => 23, 'fat' => 0.3],
+ ['id' => 8, 'name' => 'Almonds', 'calories' => 579, 'protein' => 21, 'carbs' => 22, 'fat' => 49],
+];
-$phpVersion = PHP_VERSION;
-$now = date('Y-m-d H:i:s');
+$projectName = $_SERVER['PROJECT_NAME'] ?? 'Sales & Nutrition';
?>
-
-
- New Style
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ = htmlspecialchars($projectName) ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
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) ?>
-
-
-
+
+
+
+
+
+
+ Products
+
+
+
+
+
+
+
= htmlspecialchars($product['name']) ?>
+
= (int)$product['calories'] ?> kcal
+
+
+ Protein: = (float)$product['protein'] ?>g
+
+
+ Carbs: = (float)$product['carbs'] ?>g
+
+
+ Fat: = (float)$product['fat'] ?>g
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+