fsalmansour commited on
Commit
24dc896
Β·
verified Β·
1 Parent(s): 2402d07

🧠 **Role Prompt:** You are a world-class AI-powered full-stack designer and engineer. Your task is to build a next-generation, all-in-one admin dashboard for a smart e-commerce store called β€œStore AI Hub,” with a professional dark mode theme, modern UX, and future-proof modular architecture. Design as if you’re building a global SaaS product to impress both Gulf-region and international clients. Quality and speed are priorities. --- 🎨 **Core Design Requirements:** - Beautiful dark mode (high contrast, visually appealing) - Single Page Application (SPA) structure with modular, dynamic sections - UI inspired by premium SaaS platforms (Figma, Linear, Notion, Bolt) - Fixed sidebar with modern, interactive icons & short labels - Floating Action Button (FAB) always visible for adding new content - Flexible components that handle empty states gracefully --- πŸ“‹ **Main Layout Structure (Sample HTML):** ```html <div class="flex h-screen bg-gray-900 text-gray-100"> <!-- Sidebar --> <aside class="w-64 bg-gray-800 p-4"> <nav> <ul> <li class="sidebar-tab" data-tab="products">πŸ“¦ Products</li> <li class="sidebar-tab" data-tab="shipping">🚚 Shipping</li> <li class="sidebar-tab" data-tab="ai">πŸ€– AI Center</li> <li class="sidebar-tab" data-tab="analytics">πŸ“ˆ Analytics</li> <li class="sidebar-tab" data-tab="social">πŸ“£ Social</li> <li class="sidebar-tab" data-tab="settings">βš™οΈ Settings</li> </ul> </nav> </aside> <!-- Main Content --> <main class="flex-1 p-6 overflow-y-auto"> <div id="module-container"></div> </main> <!-- Floating Action Button --> <button class="fab">+</button> </div> - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +726 -925
index.html CHANGED
@@ -33,43 +33,64 @@
33
  }
34
  }
35
  </script>
36
-
37
  <!-- Font Awesome -->
38
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
39
  <!-- Google Fonts -->
40
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
41
-
42
  <style>
43
- :root { --accent: #a855f7; }
44
- html,body{overflow-x:hidden;min-width:320px}
 
 
 
 
 
 
 
 
 
45
  body {
46
  font-family: 'Inter', sans-serif;
47
  background: #121212;
48
  color: #e5e7eb;
49
  -webkit-tap-highlight-color:transparent;
50
  }
51
- .blink { animation: blink 1s infinite; }
52
- @keyframes blink { 50% { opacity: 0; } }
 
 
 
 
 
 
 
53
  .glass {
54
  backdrop-filter: blur(25px) saturate(200%);
55
- border: 1px solid rgba(255, 255, 255, 0.18);
56
- background: rgba(30, 41, 59, 0.5);
57
  }
 
58
  .glass-light {
59
  background: rgba(248, 250, 252, 0.6);
60
  color: #0f172a;
61
  }
 
62
  .kpi-card {
63
  transition: transform 0.3s, box-shadow 0.3s;
64
  }
 
65
  .kpi-card:hover {
66
  transform: translateY(-4px);
67
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
68
  }
 
69
  .tooltip:hover .tooltip-text {
70
  visibility: visible;
71
  opacity: 1;
72
  }
 
73
  .tooltip-text {
74
  visibility: hidden;
75
  opacity: 0;
@@ -86,24 +107,106 @@
86
  white-space: nowrap;
87
  transition: opacity 0.3s;
88
  }
 
89
  @keyframes pulse {
90
  0%, 100% { opacity: 1; }
91
  50% { opacity: 0.5; }
92
  }
 
93
  .animate-pulse {
94
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
95
  }
 
96
  .fab-shadow {
97
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
98
  }
 
99
  .progress-ring {
100
  transform: rotate(-90deg);
101
  }
 
102
  .progress-ring-circle {
103
  stroke-dasharray: 283;
104
  stroke-dashoffset: 283;
105
  transition: stroke-dashoffset 0.5s;
106
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  </style>
108
  </head>
109
 
@@ -113,138 +216,182 @@
113
  <div class="container mx-auto px-4 h-16 flex items-center justify-between">
114
  <!-- Logo -->
115
  <div class="flex items-center space-x-3">
116
- <div class="w-9 h-9 rounded-full bg-gradient-to-br from-indigo-500 to-cyan-400 flex items-center justify-center">
117
- <i class="fas fa-brain text-white text-sm"></i>
118
  </div>
119
- <span class="font-extrabold text-lg hidden sm:inline">Store AI</span>
120
  </div>
121
-
122
  <!-- Command Palette -->
123
- <div class="hidden md:flex flex-1 max-w-xs mx-4">
124
- <button id="openCommand" class="w-full glass text-sm px-3 py-2 rounded-md flex items-center space-x-2 hover:bg-slate-700 transition">
125
- <i class="fas fa-search text-xs"></i>
126
  <span>Search commands...</span>
127
  <kbd class="ml-auto text-xs px-2 py-1 bg-slate-700 rounded">⌘K</kbd>
128
  </button>
129
  </div>
130
-
131
  <!-- Nav Icons -->
132
- <div class="flex items-center space-x-3">
133
  <button class="text-sm font-semibold hover:opacity-80 transition" title="Switch to Arabic">EN</button>
134
- <button id="themeToggle" class="p-1.5 rounded-full hover:bg-slate-700 transition tooltip">
135
  <i class="fas fa-sun text-yellow-300"></i>
136
  <span class="tooltip-text">Toggle Theme</span>
137
  </button>
138
- <button class="p-1.5 rounded-full hover:bg-slate-700 transition tooltip">
139
  <i class="fas fa-microphone text-red-400"></i>
140
  <span class="tooltip-text">Voice Command</span>
141
  </button>
142
  <div class="relative">
143
- <button class="p-1.5 rounded-full hover:bg-slate-700 relative">
144
  <i class="fas fa-bell text-xl"></i>
145
  <span class="absolute -top-1 -right-1 bg-red-500 text-white text-xs rounded-full h-5 w-5 flex items-center justify-center animate-pulse">3</span>
146
  </button>
147
  </div>
148
  <div class="relative">
149
  <button class="flex items-center space-x-2 hover:bg-slate-700 transition rounded-full p-1">
150
- <div class="w-8 h-8 rounded-full bg-gradient-to-br from-purple-500 to-pink-500 flex items-center justify-center">
151
- <span class="text-xs font-bold">AI</span>
 
152
  </div>
153
  </button>
154
  </div>
155
  </div>
156
  </div>
157
  </header>
158
-
159
  <!-- Sidebar (enhanced) -->
160
- <aside id="sidebar" class="glass fixed inset-y-0 left-0 z-40 w-16 p-2 space-y-3 overflow-y-auto lg:relative lg:translate-x-0 transform -translate-x-full lg:translate-x-0 transition-transform duration-300">
161
- <nav class="flex flex-col items-center space-y-4 pt-3">
162
- <a href="#home" class="group relative w-12 h-12 flex items-center justify-center rounded-xl hover:bg-slate-700/50">
 
 
 
 
 
 
 
163
  <i class="fas fa-home text-xl"></i>
 
164
  <span class="absolute left-full ml-3 px-2 py-1 text-xs glass rounded opacity-0 group-hover:opacity-100 whitespace-nowrap pointer-events-none transition">Home</span>
165
  </a>
166
- <a href="#products" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Smart Products">
167
- <i class="fas fa-box-open text-lg"></i>
168
- </a>
169
- <a href="#orders" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Orders & Invoices">
170
- <i class="fas fa-file-invoice-dollar text-lg"></i>
171
  </a>
172
- <a href="#integrations" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Store Integrations">
173
- <i class="fas fa-store text-lg"></i>
 
174
  </a>
175
- <a href="#social" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Social Media Tools">
176
- <i class="fas fa-share-alt text-lg"></i>
 
177
  </a>
178
- <a href="#ai" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="AI Assistant">
179
- <i class="fas fa-robot text-lg"></i>
 
180
  </a>
181
- <a href="#automations" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Automations">
182
- <i class="fas fa-cogs text-lg"></i>
 
183
  </a>
184
- <a href="#shipping" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Shipping & Invoices">
185
- <i class="fas fa-shipping-fast text-lg"></i>
 
186
  </a>
187
- <a href="#payments" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Payments">
188
- <i class="fas fa-credit-card text-lg"></i>
 
189
  </a>
190
- <a href="#social" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Social Publisher">
191
- <i class="fas fa-share-alt text-lg"></i>
 
192
  </a>
193
- <a href="#trends" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Trends">
194
- <i class="fas fa-fire text-lg"></i>
 
195
  </a>
196
- <a href="#settings" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Settings">
197
- <i class="fas fa-sliders-h text-lg"></i>
 
198
  </a>
199
- <a href="#feedback" class="tooltip group relative p-2 rounded-lg hover:bg-gray-800/50" title="Feedback">
200
- <i class="fas fa-comment-dots text-lg"></i>
 
201
  </a>
202
  </nav>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  </aside>
204
-
205
  <!-- Mobile Hamburger -->
206
  <button id="openSidebar" class="glass fixed top-20 left-4 z-30 p-3 rounded-full lg:hidden fab-shadow touch-manipulation">
207
  <i class="fas fa-bars"></i>
208
  </button>
209
-
210
  <!-- Main Content -->
211
- <main class="pt-20 lg:pl-20 px-4 pb-32 space-y-16">
212
  <!-- Hero Widget -->
213
  <section id="home" class="scroll-mt-20">
214
- <div class="relative glass rounded-xl p-6 mb-6 overflow-hidden">
215
  <!-- animated bg -->
216
  <div class="absolute inset-0 opacity-20">
217
  <div class="absolute -top-8 -left-8 w-40 h-40 bg-gradient-to-br from-indigo-500 to-cyan-400 rounded-full blur-2xl animate-pulse"></div>
218
  <div class="absolute -bottom-8 -right-8 w-48 h-48 bg-gradient-to-br from-purple-500 to-pink-500 rounded-full blur-2xl animate-pulse delay-1000"></div>
219
  </div>
220
  <div class="relative z-10">
221
- <h1 class="text-3xl font-bold mb-2">Welcome back, Alex! πŸ€–</h1>
222
- <p class="text-gray-400 mb-4">
223
- Your AI assistant is <span class="text-green-400 font-bold">Online</span> Β·
224
- <span class="text-xs glass px-2 py-1 rounded-full">Next task in 5 min</span>
225
- </p>
226
- <div class="mt-4 grid grid-cols-2 md:grid-cols-4 gap-3">
227
- <button class="glass px-3 py-2 rounded-lg text-xs hover:bg-slate-700 transition">Start Task</button>
228
- <button class="glass px-3 py-2 rounded-lg text-xs hover:bg-slate-700 transition">Upload CSV</button>
229
- <button class="glass px-3 py-2 rounded-lg text-xs hover:bg-slate-700 transition">View Reports</button>
230
- <button class="glass px-3 py-2 rounded-lg text-xs hover:bg-slate-700 transition">Ask AI</button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  </div>
232
  </div>
233
  </div>
234
-
235
- <!-- Upgrade Banner -->
236
- <div class="glass rounded-xl p-4 mb-6 flex items-center gap-4">
237
- <div class="text-purple-400 text-xl">
238
- <i class="fas fa-rocket"></i>
239
- </div>
240
- <div class="flex-1">
241
- <p class="font-bold">Upgrade to Pro</p>
242
- <p class="text-sm text-gray-400">Unlock AI bulk actions, advanced analytics & priority support.</p>
243
- </div>
244
- <button class="px-4 py-2 bg-purple-600 rounded hover:bg-purple-500 transition text-sm font-semibold">Upgrade</button>
245
- </div>
246
-
247
- <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
248
  <div class="kpi-card glass p-4 rounded-xl">
249
  <div class="flex items-center justify-between mb-2">
250
  <i class="fas fa-dollar-sign text-3xl text-emerald-400"></i>
@@ -255,12 +402,12 @@
255
  <p class="text-3xl font-extrabold">$1,247</p>
256
  <p class="text-xs text-slate-400">Revenue</p>
257
  </div>
258
-
259
  <div class="kpi-card glass p-4 rounded-xl">
260
  <div class="flex items-center justify-between mb-2">
261
  <div class="flex items-center">
262
- <div class="w-8 h-8 rounded-full bg-accent/10 flex items-center justify-center mr-2">
263
- <i class="fas fa-shopping-cart text-accent text-sm"></i>
264
  </div>
265
  <span class="text-sm">Orders</span>
266
  </div>
@@ -277,12 +424,12 @@
277
  <span class="text-xs text-slate-400 ml-2">vs yesterday</span>
278
  </div>
279
  </div>
280
-
281
  <div class="kpi-card glass p-4 rounded-xl">
282
  <div class="flex items-center justify-between mb-2">
283
  <div class="flex items-center">
284
- <div class="w-8 h-8 rounded-full bg-accent/10 flex items-center justify-center mr-2">
285
- <i class="fas fa-chart-line text-accent text-sm"></i>
286
  </div>
287
  <span class="text-sm">Conversion</span>
288
  </div>
@@ -299,12 +446,12 @@
299
  <span class="text-xs text-slate-400 ml-2">vs yesterday</span>
300
  </div>
301
  </div>
302
-
303
  <div class="kpi-card glass p-4 rounded-xl">
304
  <div class="flex items-center justify-between mb-2">
305
  <div class="flex items-center">
306
- <div class="w-8 h-8 rounded-full bg-accent/10 flex items-center justify-center mr-2">
307
- <i class="fas fa-heartbeat text-accent text-sm"></i>
308
  </div>
309
  <span class="text-sm">Health</span>
310
  </div>
@@ -322,52 +469,114 @@
322
  </div>
323
  </div>
324
  </div>
325
-
326
- <!-- Mini charts row -->
327
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-4">
328
- <div class="glass rounded-xl p-4">
329
- <div class="flex items-center justify-between mb-2">
330
- <span class="text-sm">Conversion Rate</span>
331
- <span class="text-xs px-2 py-1 bg-emerald-600/20 text-emerald-400 rounded-full">+2.4%</span>
332
- </div>
333
- <div class="h-24">
334
- <div class="w-full h-full flex items-center justify-center text-slate-400">
335
- <i class="fas fa-chart-line text-3xl"></i>
336
  </div>
337
  </div>
338
- </div>
339
- <div class="glass rounded-xl p-4">
340
- <div class="flex items-center justify-between mb-2">
341
- <span class="text-sm">Avg Order Value</span>
342
- <span class="text-xs px-2 py-1 bg-red-600/20 text-red-400 rounded-full">-1.2%</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  </div>
344
- <div class="h-24">
345
- <div class="w-full h-full flex items-center justify-center text-slate-400">
346
- <i class="fas fa-chart-bar text-3xl"></i>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
347
  </div>
348
  </div>
349
  </div>
350
- <div class="glass rounded-xl p-4">
351
- <div class="flex items-center justify-between mb-2">
352
- <span class="text-sm">New Customers</span>
353
- <span class="text-xs px-2 py-1 bg-emerald-600/20 text-emerald-400 rounded-full">+8.7%</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  </div>
355
- <div class="h-24">
356
- <div class="w-full h-full flex items-center justify-center text-slate-400">
357
- <i class="fas fa-chart-pie text-3xl"></i>
 
 
 
 
 
 
 
 
 
 
358
  </div>
359
  </div>
360
  </div>
361
  </div>
362
  </section>
363
-
364
  <!-- What-If Sim -->
365
  <section id="sim" class="scroll-mt-20">
366
  <div class="flex items-center justify-between mb-4">
367
  <h2 class="text-xl font-bold">What-If Simulator</h2>
368
- <button class="text-sm glass px-3 py-1 rounded hover:bg-slate-700">Save Scenario</button>
369
  </div>
370
-
371
  <div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
372
  <div class="glass rounded-xl p-5">
373
  <div class="space-y-4">
@@ -397,7 +606,7 @@
397
  </div>
398
  </div>
399
  </div>
400
-
401
  <div class="glass rounded-xl p-5">
402
  <h3 class="text-sm font-medium mb-3">Projected Results</h3>
403
  <div class="space-y-3">
@@ -419,7 +628,7 @@
419
  </div>
420
  </div>
421
  </div>
422
-
423
  <div class="glass rounded-xl p-5">
424
  <h3 class="text-sm font-medium mb-3">Saved Scenarios</h3>
425
  <div class="space-y-2">
@@ -448,456 +657,281 @@
448
  </div>
449
  </div>
450
  </section>
451
-
452
- <!-- Models Table -->
453
- <section id="models" class="scroll-mt-20">
454
  <div class="flex items-center justify-between mb-4">
455
- <h2 class="text-xl font-bold">AI Models</h2>
456
  <div class="flex items-center space-x-2">
457
- <button class="text-sm glass px-3 py-1 rounded hover:bg-slate-700 flex items-center space-x-1">
 
 
 
 
458
  <i class="fas fa-plus text-xs"></i>
459
- <span>Add Model</span>
460
  </button>
461
- <div class="relative">
462
- <select class="glass text-sm px-3 py-1 rounded appearance-none pr-7">
463
- <option value="all">All Models</option>
464
- <option value="active">Active</option>
465
- <option value="inactive">Inactive</option>
466
- </select>
467
- <i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-xs pointer-events-none"></i>
468
- </div>
469
  </div>
470
  </div>
471
-
472
  <div class="glass rounded-xl overflow-x-auto">
473
- <table class="w-full text-sm">
474
- <thead class="bg-slate-800">
475
  <tr>
476
- <th class="p-3 text-left">Model</th>
477
- <th class="p-3 text-left">Provider</th>
478
- <th class="p-3 text-left">Size</th>
 
479
  <th class="p-3 text-left">Status</th>
480
- <th class="p-3 text-left">Usage</th>
481
- <th class="p-3">Action</th>
482
  </tr>
483
  </thead>
484
  <tbody>
485
  <tr class="border-t border-slate-700 hover:bg-slate-800/50">
 
 
 
486
  <td class="p-3">
487
- <div class="flex items-center space-x-2">
488
- <i class="fas fa-robot text-accent"></i>
489
- <span>GPT-3.5</span>
490
- </div>
491
- </td>
492
- <td class="p-3">OpenAI</td>
493
- <td class="p-3">800 MB</td>
494
- <td class="p-3">
495
- <span class="px-2 py-1 rounded-full text-xs bg-emerald-600/20 text-emerald-400">Active</span>
496
- </td>
497
- <td class="p-3">
498
- <div class="w-20 h-1.5 bg-slate-700 rounded-full overflow-hidden">
499
- <div class="h-full bg-accent rounded-full" style="width: 75%"></div>
500
- </div>
501
  </td>
502
  <td class="p-3">
503
- <div class="flex items-center space-x-2">
504
- <button class="text-xs px-2 py-1 rounded hover:bg-slate-700 text-red-400">Deactivate</button>
505
- <button class="text-xs px-2 py-1 rounded hover:bg-slate-700 text-slate-400">Remove</button>
506
- </div>
507
  </td>
508
  </tr>
509
- </tbody>
510
- </table>
511
- </div>
512
- </section>
513
-
514
- <!-- Stores Table -->
515
- <section id="stores" class="scroll-mt-20">
516
- <div class="flex items-center justify-between mb-4">
517
- <h2 class="text-xl font-bold">Stores</h2>
518
- <div class="flex items-center space-x-2">
519
- <button class="text-sm glass px-3 py-1 rounded hover:bg-slate-700 flex items-center space-x-1">
520
- <i class="fas fa-plus text-xs"></i>
521
- <span>Add Store</span>
522
- </button>
523
- <div class="relative">
524
- <select class="glass text-sm px-3 py-1 rounded appearance-none pr-7">
525
- <option value="all">All Stores</option>
526
- <option value="healthy">Healthy</option>
527
- <option value="warning">Warning</option>
528
- <option value="critical">Critical</option>
529
- </select>
530
- <i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-xs pointer-events-none"></i>
531
- </div>
532
- </div>
533
- </div>
534
-
535
- <div class="glass rounded-xl overflow-x-auto">
536
- <table class="w-full text-sm">
537
- <thead class="bg-slate-800">
538
- <tr>
539
- <th class="p-3 text-left">Store</th>
540
- <th class="p-3 text-left">Platform</th>
541
- <th class="p-3 text-left">Health</th>
542
- <th class="p-3 text-left">Last Sync</th>
543
- <th class="p-3">Action</th>
544
- </tr>
545
- </thead>
546
- <tbody>
547
  <tr class="border-t border-slate-700 hover:bg-slate-800/50">
 
 
 
548
  <td class="p-3">
549
- <div class="flex items-center space-x-2">
550
- <i class="fas fa-tshirt text-accent"></i>
551
- <span>FashionHub</span>
552
- </div>
553
- </td>
554
- <td class="p-3">Shopify</td>
555
- <td class="p-3">
556
- <div class="flex items-center space-x-2">
557
- <div class="relative w-8 h-8">
558
- <svg class="w-8 h-8 progress-ring" viewBox="0 0 100 100">
559
- <circle class="text-slate-700" stroke-width="8" stroke="currentColor" fill="transparent" r="45" cx="50" cy="50" />
560
- <circle class="progress-ring-circle" stroke-width="8" stroke-linecap="round" stroke="#10b981" fill="transparent" r="45" cx="50" cy="50" stroke-dashoffset="283 - (283 * 94 / 100)" />
561
- </svg>
562
- <span class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-xs font-bold text-emerald-400">94%</span>
563
- </div>
564
- <span class="text-xs text-emerald-400">
565
- <i class="fas fa-caret-up"></i>
566
- <span>2%</span>
567
- </span>
568
- </div>
569
  </td>
570
- <td class="p-3 text-xs text-slate-400">1 hour ago</td>
571
  <td class="p-3">
572
- <div class="flex items-center space-x-2">
573
- <button class="text-xs px-2 py-1 rounded hover:bg-slate-700 text-accent">Sync</button>
574
- <button class="text-xs px-2 py-1 rounded hover:bg-slate-700">Inspect</button>
575
- </div>
576
  </td>
577
  </tr>
578
- </tbody>
579
- </table>
580
- </div>
581
- </section>
582
-
583
- <!-- Products Table -->
584
- <section id="products" class="scroll-mt-20">
585
- <div class="flex items-center justify-between mb-4">
586
- <h2 class="text-xl font-bold">Products</h2>
587
- <div class="flex items-center space-x-2">
588
- <button class="text-sm glass px-3 py-1 rounded hover:bg-slate-700 flex items-center space-x-1">
589
- <i class="fas fa-plus text-xs"></i>
590
- <span>Add Product</span>
591
- </button>
592
- <label class="glass px-3 py-1 rounded cursor-pointer text-sm">
593
- <i class="fas fa-file-upload mr-1"></i> Import CSV
594
- <input type="file" accept=".csv" class="hidden" />
595
- </label>
596
- </div>
597
- </div>
598
-
599
- <div class="glass rounded-xl overflow-x-auto">
600
- <table class="w-full text-sm">
601
- <thead class="bg-slate-800">
602
- <tr>
603
- <th class="p-3 text-left">#</th>
604
- <th class="p-3 text-left">Name</th>
605
- <th class="p-3 text-left">SKU</th>
606
- <th class="p-3 text-left">Price</th>
607
- <th class="p-3 text-left">Stock</th>
608
- <th class="p-3 text-left">Action</th>
609
- </tr>
610
- </thead>
611
- <tbody>
612
- <tr class="border-t border-slate-700">
613
- <td class="p-3">1</td>
614
- <td class="p-3">Premium T-Shirt</td>
615
- <td class="p-3">TSH-001</td>
616
- <td class="p-3">$29.99</td>
617
  <td class="p-3">
618
- <span class="px-2 py-1 rounded-full text-xs bg-emerald-600">42</span>
619
  </td>
620
  <td class="p-3">
621
- <button class="text-accent hover:underline">Edit</button>
622
  </td>
623
  </tr>
624
  </tbody>
625
  </table>
626
  </div>
627
  </section>
628
-
629
- <!-- AI Usage Section -->
630
- <section id="ai" class="scroll-mt-20">
631
- <div class="flex items-center justify-between mb-4">
632
- <h2 class="text-xl font-bold">AI Usage</h2>
633
- <div class="relative">
634
- <select class="glass text-sm px-3 py-1 rounded appearance-none pr-7">
635
- <option value="7d">Last 7 Days</option>
636
- <option value="30d">Last 30 Days</option>
637
- <option value="90d">Last 90 Days</option>
638
- </select>
639
- <i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-xs pointer-events-none"></i>
640
- </div>
641
- </div>
642
-
643
- <div class="grid md:grid-cols-2 gap-6">
644
- <div class="glass rounded-xl p-4">
645
- <div class="flex items-center justify-between mb-4">
646
- <h3 class="font-medium">API Usage</h3>
647
- <div class="flex items-center space-x-2">
648
- <div class="flex items-center">
649
- <div class="w-2 h-2 rounded-full bg-accent mr-1"></div>
650
- <span class="text-xs">This Month</span>
651
- </div>
652
- <div class="flex items-center">
653
- <div class="w-2 h-2 rounded-full bg-slate-500 mr-1"></div>
654
- <span class="text-xs">Last Month</span>
655
- </div>
656
- </div>
657
- </div>
658
- <div class="h-48">
659
- <div class="w-full h-full flex items-center justify-center text-slate-400">
660
- <i class="fas fa-chart-line text-4xl"></i>
661
- </div>
662
- </div>
663
- </div>
664
- </div>
665
-
666
- <div class="glass rounded-xl p-4 mt-6">
667
- <h3 class="font-medium mb-4">Cost Summary</h3>
668
- <div class="grid grid-cols-1 md:grid-cols-4 gap-4">
669
- <div class="bg-slate-800/50 rounded-lg p-3">
670
- <p class="text-sm text-slate-400 mb-1">This Month</p>
671
- <p class="text-xl font-bold">$1,245</p>
672
- </div>
673
- <div class="bg-slate-800/50 rounded-lg p-3">
674
- <p class="text-sm text-slate-400 mb-1">Last Month</p>
675
- <p class="text-xl font-bold">$1,080</p>
676
- </div>
677
- <div class="bg-slate-800/50 rounded-lg p-3">
678
- <p class="text-sm text-slate-400 mb-1">Change</p>
679
- <p class="text-xl font-bold text-emerald-400">+15.3%</p>
680
- </div>
681
- <div class="bg-slate-800/50 rounded-lg p-3">
682
- <p class="text-sm text-slate-400 mb-1">Forecast</p>
683
- <p class="text-xl font-bold">$1,450</p>
684
- </div>
685
- </div>
686
- </div>
687
- </section>
688
-
689
- <!-- Products Section -->
690
- <!-- Smart Product Manager -->
691
- <section id="products" class="scroll-mt-20">
692
- <div class="flex items-center justify-between mb-4">
693
- <h2 class="text-xl font-bold">Smart Product Manager</h2>
694
- <div class="flex items-center space-x-2">
695
- <button id="bulkImportBtn" class="text-sm glass px-3 py-1 rounded hover:bg-gray-800/60 flex items-center space-x-1">
696
- <i class="fas fa-file-import text-xs"></i>
697
- <span>Bulk Import</span>
698
- </button>
699
- <button id="addProductBtn" class="text-sm glass px-3 py-1 rounded hover:bg-gray-800/60 flex items-center space-x-1">
700
- <i class="fas fa-plus text-xs"></i>
701
- <span>Add Product</span>
702
- </button>
703
- </div>
704
- </div>
705
-
706
- <div class="glass rounded-xl overflow-x-auto">
707
- <table id="productsTable" class="w-full text-sm">
708
- <thead class="bg-gray-800">
709
- <tr>
710
- <th class="p-3 text-left">Name</th>
711
- <th class="p-3 text-left">SKU</th>
712
- <th class="p-3 text-left">Price</th>
713
- <th class="p-3 text-left">Stock</th>
714
- <th class="p-3 text-left">Status</th>
715
- </tr>
716
- </thead>
717
- <tbody></tbody>
718
- </table>
719
- </div>
720
- </section>
721
-
722
  <!-- Integrations -->
723
  <section id="ads" class="scroll-mt-20">
724
  <div class="flex items-center justify-between mb-4">
725
  <h2 class="text-xl font-bold">Integrations</h2>
726
- <button class="text-sm glass px-3 py-1 rounded hover:bg-slate-700 flex items-center space-x-1">
727
  <i class="fas fa-plus text-xs"></i>
728
  <span>Add Integration</span>
729
  </button>
730
  </div>
731
-
732
  <div class="flex flex-wrap gap-2 mb-4">
733
- <button class="px-3 py-1 rounded-md text-sm transition bg-accent text-white">All</button>
734
- <button class="px-3 py-1 rounded-md text-sm transition glass hover:bg-slate-700">Ads</button>
735
- <button class="px-3 py-1 rounded-md text-sm transition glass hover:bg-slate-700">Stores</button>
736
- <button class="px-3 py-1 rounded-md text-sm transition glass hover:bg-slate-700">Email</button>
737
- <button class="px-3 py-1 rounded-md text-sm transition glass hover:bg-slate-700">Automation</button>
738
  </div>
739
-
740
  <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
741
  <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
742
  <div class="flex items-start justify-between mb-3">
743
- <div class="w-10 h-10 rounded-lg bg-accent/10 flex items-center justify-center">
744
- <i class="fab fa-wordpress text-accent text-lg"></i>
745
  </div>
746
  <span class="text-xs px-2 py-1 rounded-full bg-slate-700/50 text-slate-400">Disconnected</span>
747
  </div>
748
  <p class="font-semibold mb-1">WooCommerce</p>
749
  <p class="text-xs text-slate-400 mb-3">Connect your WooCommerce store</p>
750
- <div class="w-full bg-slate-700 rounded-full h-1.5 mb-1">
751
- <div class="bg-accent h-1.5 rounded-full" style="width: 0%"></div>
752
  </div>
753
  <div class="flex justify-between text-xs text-slate-400">
754
  <span>Not connected</span>
755
  <span>E-commerce</span>
756
  </div>
757
  </div>
758
-
759
  <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
760
  <div class="flex items-start justify-between mb-3">
761
- <div class="w-10 h-10 rounded-lg bg-accent/10 flex items-center justify-center">
762
- <i class="fab fa-shopify text-accent text-lg"></i>
763
  </div>
764
  <span class="text-xs px-2 py-1 rounded-full bg-emerald-600/20 text-emerald-400">Connected</span>
765
  </div>
766
  <p class="font-semibold mb-1">Shopify</p>
767
  <p class="text-xs text-slate-400 mb-3">Connect your Shopify store</p>
768
- <div class="w-full bg-slate-700 rounded-full h-1.5 mb-1">
769
- <div class="bg-accent h-1.5 rounded-full" style="width: 100%"></div>
770
  </div>
771
  <div class="flex justify-between text-xs text-slate-400">
772
  <span>Connected</span>
773
  <span>E-commerce</span>
774
  </div>
775
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
776
  </div>
777
  </section>
778
- <!-- Shipping & Invoice -->
779
- <section id="shipping" class="scroll-mt-20">
780
- <h2 class="text-xl font-bold mb-4">Shipping & Invoices</h2>
781
- <div class="glass rounded-xl p-4 space-y-4">
782
- <div class="flex items-center justify-between">
783
- <span>Provider</span>
784
- <select class="glass px-2 py-1 rounded text-sm">
785
- <option>SMSA</option><option>Aramex</option><option>FedEx</option>
 
 
786
  </select>
 
787
  </div>
788
- <button class="w-full bg-accent rounded py-2 text-sm">Generate ZATCA Invoice</button>
789
- <button class="w-full glass rounded py-2 text-sm">Print Label(s)</button>
790
  </div>
791
- </section>
792
-
793
- <!-- Payments -->
794
- <section id="payments" class="scroll-mt-20">
795
- <h2 class="text-xl font-bold mb-4">Payment Gateways</h2>
796
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
797
- <div class="glass rounded-xl p-4 text-center">
798
- <i class="fab fa-stripe text-3xl mb-2"></i>
799
- <p class="text-sm">Stripe</p>
800
- <button class="mt-2 text-xs glass px-2 py-1 rounded">Connect</button>
801
- </div>
802
- <div class="glass rounded-xl p-4 text-center">
803
- <i class="fas fa-credit-card text-3xl mb-2"></i>
804
- <p class="text-sm">Mada</p>
805
- <button class="mt-2 text-xs glass px-2 py-1 rounded">Connect</button>
806
- </div>
807
- <div class="glass rounded-xl p-4 text-center">
808
- <i class="fas fa-mobile-alt text-3xl mb-2"></i>
809
- <p class="text-sm">STC Pay</p>
810
- <button class="mt-2 text-xs glass px-2 py-1 rounded">Connect</button>
811
- </div>
812
- <div class="glass rounded-xl p-4 text-center">
813
- <i class="fas fa-apple-alt text-3xl mb-2"></i>
814
- <p class="text-sm">Apple Pay</p>
815
- <button class="mt-2 text-xs glass px-2 py-1 rounded">Connect</button>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
816
  </div>
817
- </div>
818
- </section>
819
-
820
- <!-- Social Publisher -->
821
- <section id="social" class="scroll-mt-20">
822
- <h2 class="text-xl font-bold mb-4">Social Publisher</h2>
823
- <div class="glass rounded-xl p-4 space-y-3">
824
- <textarea class="w-full glass rounded p-2 text-sm" rows="3" placeholder="Caption with AI suggestions"></textarea>
825
- <div class="flex space-x-2">
826
- <button class="text-xs glass px-2 py-1 rounded">TikTok</button>
827
- <button class="text-xs glass px-2 py-1 rounded">Instagram</button>
828
- <button class="text-xs glass px-2 py-1 rounded">Snapchat</button>
829
- <button class="text-xs glass px-2 py-1 rounded">X</button>
830
- <button class="text-xs glass px-2 py-1 rounded">Facebook</button>
 
 
 
 
 
 
 
831
  </div>
832
- <button class="w-full bg-accent rounded py-2 text-sm">Schedule Post</button>
833
  </div>
834
  </section>
835
-
836
  <!-- Trends & Recommendations -->
837
  <section id="trends" class="scroll-mt-20">
838
  <h2 class="text-xl font-bold mb-4">Trends & Recommendations</h2>
839
  <div class="glass rounded-xl p-4">
840
- <ul class="space-y-2 text-sm">
841
- <li>πŸ”₯ Steam Wallet Cards selling 4Γ— last week</li>
842
- <li>πŸ’‘ AI: β€œBoost Netflix KSA ads 9 PM-11 PM”</li>
843
- <li>πŸ“ˆ TikTok hashtag #PSNSaudi trending</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844
  </ul>
845
  </div>
846
  </section>
847
-
848
- <!-- Store Integrations -->
849
- <section id="integrations" class="scroll-mt-20">
850
- <h2 class="text-xl font-bold mb-4">Store Integrations</h2>
851
- <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
852
- <div class="glass rounded-xl p-4">
853
- <h3 class="text-sm font-bold mb-1">Salla</h3>
854
- <button class="text-xs glass px-2 py-1 rounded">Connect</button>
855
- </div>
856
- <div class="glass rounded-xl p-4">
857
- <h3 class="text-sm font-bold mb-1">Zid</h3>
858
- <button class="text-xs glass px-2 py-1 rounded">Connect</button>
859
- </div>
860
- <div class="glass rounded-xl p-4">
861
- <h3 class="text-sm font-bold mb-1">WooCommerce</h3>
862
- <button class="text-xs glass px-2 py-1 rounded">Connect</button>
863
- </div>
864
- </div>
865
- </section>
866
-
867
- <!-- Notifications & Automation Engine -->
868
- <section id="automations" class="scroll-mt-20">
869
- <h2 class="text-xl font-bold mb-4">Notifications & Automation</h2>
870
- <div class="glass rounded-xl p-4 space-y-3">
871
- <div class="flex items-center justify-between">
872
- <span>Low Stock Alerts</span>
873
- <input type="checkbox" class="toggle" checked>
874
- </div>
875
- <div class="flex items-center justify-between">
876
- <span>Failed Payment Webhooks</span>
877
- <input type="checkbox" class="toggle" checked>
878
- </div>
879
- <div class="flex items-center justify-between">
880
- <span>Auto-Print Labels</span>
881
- <input type="checkbox" class="toggle">
882
- </div>
883
- <button class="w-full bg-accent rounded py-2 text-sm">Open n8n</button>
884
- </div>
885
- </section>
886
  </main>
887
-
888
- <!-- n8n Hidden Section -->
889
- <section id="n8n" class="scroll-mt-20 hidden">
890
- <div class="flex items-center justify-between mb-4">
891
- <h2 class="text-xl font-bold">n8n Automation</h2>
892
- <button id="refreshWorkflowsBtn" class="text-sm glass px-3 py-1 rounded hover:bg-slate-700">
893
- <i class="fas fa-sync-alt mr-1"></i>Refresh
894
- </button>
895
- </div>
896
- <div id="workflowsList" class="glass rounded-xl p-4">
897
- <p class="text-slate-400">Loading workflows…</p>
898
- </div>
899
- </section>
900
-
901
  <!-- Command Palette Modal -->
902
  <div id="commandModal" class="fixed inset-0 bg-black/50 z-50 hidden items-start justify-center pt-20">
903
  <div class="glass w-full max-w-lg rounded-xl overflow-hidden">
@@ -907,46 +941,81 @@
907
  </div>
908
  <div id="cmdResults" class="max-h-96 overflow-y-auto">
909
  <!-- dynamic results -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
910
  </div>
911
  </div>
912
  </div>
913
-
914
  <!-- Floating Action Button -->
915
- <button id="primaryFab" class="fixed bottom-6 right-6 glass p-4 rounded-full shadow-xl fab-shadow hover:scale-110 transition z-40">
916
- <i class="fas fa-plus text-lg"></i>
917
- </button>
918
- <i class="fas fa-cog"></i>
919
  </button>
920
- <button id="addProductFab" class="glass p-3 rounded-full shadow-lg fab-shadow transition hover:scale-110 neon" aria-label="Add Product">
921
  <i class="fas fa-box-open"></i>
922
  </button>
923
- <button id="chatToggleFab" class="glass p-4 rounded-full shadow-lg fab-shadow transition hover:scale-110" aria-label="Toggle Chat">
924
  <i class="fas fa-robot"></i>
925
  </button>
926
  </div>
927
-
928
  <!-- Live Chat Panel -->
929
  <div id="chatPanel" class="fixed inset-x-0 bottom-0 z-50 glass rounded-t-xl shadow-2xl transform translate-y-full transition-transform duration-300 md:max-w-md md:mx-auto">
930
  <header class="flex items-center justify-between p-4 border-b border-slate-700">
931
  <div class="flex items-center space-x-2">
932
  <i class="fas fa-robot text-accent"></i>
933
- <span class="font-bold">Live Chat</span>
934
  </div>
935
  <button id="closeChat" class="p-1 rounded-full hover:bg-slate-700">
936
  <i class="fas fa-times"></i>
937
  </button>
938
  </header>
939
- <div id="chatMessages" class="h-[60vh] md:h-[70vh] overflow-y-auto p-4 space-y-3"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
940
  <footer class="p-4 border-t border-slate-700 flex items-center space-x-2">
941
  <button id="emojiToggle" class="p-2 rounded-full hover:bg-slate-700">
942
  <i class="far fa-face-smile"></i>
943
  </button>
944
  <label class="p-2 rounded-full hover:bg-slate-700 cursor-pointer">
945
  <i class="fas fa-paperclip"></i>
946
- <input type="file" multiple accept="image/*,.pdf" class="hidden" @change="handleFileUpload($event)">
947
  </label>
948
- <button id="recordBtn" :class="recording ? 'text-red-400 blink' : ''" class="p-2 rounded-full hover:bg-slate-700" @click="toggleRecord">
949
- <i :class="recording ? 'fas fa-stop' : 'fas fa-microphone-lines'"></i>
950
  </button>
951
  <input id="chatInput" type="text" placeholder="Type a message…" class="flex-1 bg-transparent outline-none" />
952
  <button id="sendMessage" class="p-2 rounded-full hover:bg-slate-700">
@@ -954,7 +1023,7 @@
954
  </button>
955
  </footer>
956
  </div>
957
-
958
  <!-- Settings Modal -->
959
  <div id="settingsModal" class="fixed inset-0 bg-black/50 z-50 hidden items-center justify-center">
960
  <div class="glass w-full max-w-md rounded-xl p-6 space-y-4">
@@ -966,456 +1035,188 @@
966
  </div>
967
  <div>
968
  <label class="block text-sm mb-1">Accent Color</label>
969
- <input id="accentColorPicker" type="color" value="#38bdf8" class="w-full h-10 rounded cursor-pointer" />
970
  </div>
971
  <div>
972
  <label class="block text-sm mb-1">Theme</label>
973
- <button id="themeToggleBtn" class="glass px-3 py-1 rounded">Toggle Dark / Light</button>
974
  </div>
975
  <div>
976
  <label class="flex items-center space-x-2">
977
- <input id="pushToggle" type="checkbox" class="accent-accent">
978
  <span class="text-sm">Enable Push Notifications</span>
979
  </label>
980
  </div>
981
  <div class="text-right">
982
- <button id="saveSettings" class="px-4 py-2 bg-accent rounded hover:bg-opacity-80">Save</button>
983
  </div>
984
  </div>
985
  </div>
986
-
987
- <script src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js" defer></script>
988
  <script>
989
- // Service-Worker registration
990
- if ('serviceWorker' in navigator) {
991
- const swCode = `
992
- self.addEventListener('push', e => {
993
- const data = e.data?.json() ?? { title: 'Store AI', body: 'New message' };
994
- e.waitUntil(
995
- self.registration.showNotification(data.title, {
996
- body: data.body,
997
- icon: '/favicon.ico',
998
- badge: '/favicon.ico'
999
- })
1000
- );
1001
- });
1002
- `;
1003
- const blob = new Blob([swCode], { type: 'text/javascript' });
1004
- navigator.serviceWorker.register(URL.createObjectURL(blob))
1005
- .then(() => Notification.requestPermission());
1006
- }
1007
- // Push helper
1008
- function notify(title, body) {
1009
- if (Notification.permission === 'granted') {
1010
- navigator.serviceWorker.getRegistration().then(reg => {
1011
- reg?.showNotification(title, { body, icon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJ3LTQgaC00IiBmaWxsPSIjZmZmIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiI+PHBhdGggZD0iTTIyNCAxMzZjMCA4LjgtNy4yIDE2LTE2IDE2cy0xNi03LjItMTYtMTZWNTEyYzAgOC44IDcuMiAxNiAxNiAxNnMxNi03LjIgMTYtMTZWMTM2em0tOTYgMGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlY1MTJjMCA4LjggNy4yIDE2IDE2IDE2czE2LTcuMiAxNi0xNlYxMzZ6bTMyMCAwYzAgOC44LTcuMiAxNi0xNiAxNnMtMTYtNy4yLTE2LTE2VjUxMmMwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2VjEzNnoiLz48L3N2Zz4=' });
1012
- });
1013
- } else {
1014
- // fallback toast
1015
- const toast = document.createElement('div');
1016
- toast.className = 'fixed top-20 right-4 glass px-4 py-2 rounded shadow';
1017
- toast.textContent = `${title}: ${body}`;
1018
- document.body.appendChild(toast);
1019
- setTimeout(() => toast.remove(), 3000);
1020
- }
1021
- }
1022
-
1023
- // Persisted state keys
1024
- const STORAGE_KEYS = ['lang', 'theme', 'accent', 'plugins', 'products', 'chat'];
1025
- // Default state
1026
- const storeAi = () => ({
1027
- theme: 'dark',
1028
- accent: '#38bdf8',
1029
- lang: 'en',
1030
- products: [],
1031
- openCmdK: false,
1032
- chatOpen: false,
1033
- emojisEnabled: false,
1034
- messages: [],
1035
- attachments: [],
1036
- recording: false,
1037
- mediaRec: null,
1038
- chunks: [],
1039
- init() {
1040
- // Load persisted state
1041
- STORAGE_KEYS.forEach(k => {
1042
- const val = localStorage.getItem(k);
1043
- if (val) { this[k] = k === 'products' ? JSON.parse(val) : val; }
1044
- });
1045
- this.applyTheme();
1046
- this.applyAccent();
1047
- this.loadProductsTable();
1048
- this.loadChat();
1049
- // Sidebar toggle
1050
- document.getElementById('openSidebar').addEventListener('click', () => {
1051
- document.getElementById('sidebar').classList.remove('-translate-x-full');
1052
- });
1053
- document.getElementById('closeSidebar').addEventListener('click', () => {
1054
- document.getElementById('sidebar').classList.add('-translate-x-full');
1055
- });
1056
- // Command Palette
1057
- document.addEventListener('keydown', e => {
1058
- if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
1059
- e.preventDefault();
1060
- this.openCmdK = true;
1061
- this.$nextTick(() => this.$refs.cmdInput?.focus());
1062
- }
1063
- if (e.key === 'Escape') {
1064
- this.openCmdK = false;
1065
- this.chatOpen = false;
1066
- document.getElementById('settingsModal').classList.add('hidden');
1067
- }
1068
- });
1069
- // Floating buttons
1070
- document.getElementById('settingsFab').addEventListener('click', () => {
1071
- document.getElementById('settingsModal').classList.remove('hidden');
1072
- });
1073
- document.getElementById('closeSettings').addEventListener('click', () => {
1074
- document.getElementById('settingsModal').classList.add('hidden');
1075
- });
1076
- document.getElementById('addProductFab').addEventListener('click', () => this.openAddProductModal());
1077
- document.getElementById('chatToggleFab').addEventListener('click', () => this.toggleChat());
1078
- document.getElementById('closeChat').addEventListener('click', () => this.toggleChat());
1079
- document.getElementById('sendMessage').addEventListener('click', () => this.sendChatMessage());
1080
- document.getElementById('chatInput').addEventListener('keydown', e => {
1081
- if (e.key === 'Enter') this.sendChatMessage();
1082
- });
1083
- document.getElementById('emojiToggle').addEventListener('click', () => this.emojisEnabled = !this.emojisEnabled);
1084
- // Settings modal
1085
- document.getElementById('saveSettings').addEventListener('click', () => this.saveSettings());
1086
- document.getElementById('themeToggleBtn').addEventListener('click', () => {
1087
- this.theme = this.theme === 'dark' ? 'light' : 'dark';
1088
- this.applyTheme();
1089
- });
1090
- // Bulk import
1091
- document.getElementById('bulkImportBtn').addEventListener('click', () => {
1092
- const inp = document.createElement('input');
1093
- inp.type = 'file';
1094
- inp.accept = '.csv';
1095
- inp.onchange = e => {
1096
- const file = e.target.files[0];
1097
- const reader = new FileReader();
1098
- reader.onload = () => {
1099
- const lines = reader.result.split('\n').slice(1);
1100
- const prods = lines.map(l => {
1101
- const [name, sku, price, stock] = l.split(',');
1102
- return { name, sku, price: parseFloat(price), stock: parseInt(stock) };
1103
- }).filter(p => p.name);
1104
- this.products = [...this.products, ...prods];
1105
- this.saveProducts();
1106
- };
1107
- reader.readAsText(file);
1108
- };
1109
- inp.click();
1110
- });
1111
- // Observer for nav highlighting
1112
- const sections = document.querySelectorAll('section[id]');
1113
- const navLinks = document.querySelectorAll('nav a');
1114
- const observer = new IntersectionObserver(entries => {
1115
- entries.forEach(entry => {
1116
- if (entry.isIntersecting) {
1117
- navLinks.forEach(link => link.classList.toggle('bg-slate-700/50', link.getAttribute('href') === `#${entry.target.id}`));
1118
- }
1119
- });
1120
- }, { threshold: 0.4 });
1121
- sections.forEach(s => observer.observe(s));
1122
- },
1123
- applyTheme() {
1124
- document.documentElement.classList.toggle('dark', this.theme === 'dark');
1125
- localStorage.setItem('theme', this.theme);
1126
- },
1127
- applyAccent() {
1128
- document.documentElement.style.setProperty('--accent', this.accent);
1129
- localStorage.setItem('accent', this.accent);
1130
- },
1131
- saveSettings() {
1132
- this.accent = document.getElementById('accentColorPicker').value;
1133
- this.applyAccent();
1134
- // Push toggle
1135
- const pushOn = document.getElementById('pushToggle').checked;
1136
- if (pushOn && Notification.permission !== 'granted') {
1137
- Notification.requestPermission().then(p => {
1138
- if (p === 'granted') notify('Push enabled', 'You will receive system notifications.');
1139
- });
1140
- }
1141
- document.getElementById('settingsModal').classList.add('hidden');
1142
- },
1143
- openAddProductModal() {
1144
- const name = prompt('Product Name');
1145
- const sku = prompt('SKU');
1146
- const price = parseFloat(prompt('Price'));
1147
- const stock = parseInt(prompt('Stock'));
1148
- if (name && sku && !isNaN(price) && !isNaN(stock)) {
1149
- this.products.push({ name, sku, price, stock });
1150
- this.saveProducts();
1151
- }
1152
- },
1153
- saveProducts() {
1154
- localStorage.setItem('products', JSON.stringify(this.products));
1155
- this.products.forEach(p => {
1156
- if (p.stock < 10) notify('Low stock', `SKU ${p.sku} has ${p.stock} left`);
1157
- });
1158
- this.loadProductsTable();
1159
- },
1160
- loadProductsTable() {
1161
- const tbody = document.querySelector('#productsTable tbody');
1162
- tbody.innerHTML = '';
1163
- this.products.forEach(p => {
1164
- const tr = document.createElement('tr');
1165
- tr.className = 'border-t border-slate-700 hover:bg-slate-800/50';
1166
- tr.innerHTML = `
1167
- <td class="p-3">${p.name}</td>
1168
- <td class="p-3">${p.sku}</td>
1169
- <td class="p-3">${p.price.toFixed(2)}</td>
1170
- <td class="p-3">
1171
- <span class="px-2 py-1 rounded-full text-xs ${p.stock < 10 ? 'bg-red-600' : 'bg-emerald-600'}">${p.stock}</span>
1172
- </td>
1173
- <td class="p-3">
1174
- <span class="text-xs px-2 py-1 rounded-full bg-slate-700">Active</span>
1175
- </td>
1176
- `;
1177
- tbody.appendChild(tr);
1178
- });
1179
- },
1180
- toggleChat() {
1181
- this.chatOpen = !this.chatOpen;
1182
- const panel = document.getElementById('chatPanel');
1183
- panel.classList.toggle('translate-y-full', !this.chatOpen);
1184
- panel.classList.toggle('translate-y-0', this.chatOpen);
1185
- if (this.chatOpen) this.scrollToBottom();
1186
- },
1187
- sendChatMessage() {
1188
- const input = document.getElementById('chatInput');
1189
- const text = input.value.trim();
1190
- if (!text && this.attachments.length === 0) return;
1191
- const msg = {
1192
- role: 'user',
1193
- content: text,
1194
- attachments: [...this.attachments]
1195
- };
1196
- this.messages.push(msg);
1197
- this.messages.push({ role: 'assistant', content: '...', emojis: this.emojisEnabled ? ['πŸ€–'] : [] });
1198
- input.value = '';
1199
- this.attachments = [];
1200
- this.saveChat();
1201
- this.scrollToBottom();
1202
- // Simulate response
1203
- setTimeout(() => {
1204
- const last = this.messages[this.messages.length - 1];
1205
- last.content = 'Got your message! Anything else?';
1206
- this.saveChat();
1207
- if (!this.chatOpen) notify('Store AI', last.content);
1208
- }, 500);
1209
- },
1210
- scrollToBottom() {
1211
- this.$nextTick(() => {
1212
- const box = document.getElementById('chatMessages');
1213
- box.scrollTop = box.scrollHeight;
1214
- });
1215
- },
1216
- saveChat() {
1217
- localStorage.setItem('chat', JSON.stringify(this.messages));
1218
- },
1219
- loadChat() {
1220
- this.messages = JSON.parse(localStorage.getItem('chat') || '[]');
1221
- this.$nextTick(() => {
1222
- const box = document.getElementById('chatMessages');
1223
- box.innerHTML = '';
1224
- this.messages.forEach(m => {
1225
- const div = document.createElement('div');
1226
- div.className = `flex ${m.role === 'user' ? 'justify-end' : 'justify-start'}`;
1227
- let attachHTML = '';
1228
- (m.attachments || []).forEach(f => {
1229
- const url = URL.createObjectURL(f);
1230
- if (f.type.startsWith('image/')) {
1231
- attachHTML += `<img src="${url}" class="rounded mb-1 max-h-32 cursor-pointer" onclick="window.open('${url}')"/>`;
1232
- } else if (f.type === 'application/pdf') {
1233
- attachHTML += `<a href="${url}" download="${f.name}" class="text-sm underline flex items-center"><i class="fas fa-file mr-1"></i>${f.name}</a>`;
1234
- } else if (f.type.startsWith('audio/')) {
1235
- attachHTML += `<audio controls src="${url}" class="w-full"></audio>`;
1236
- }
1237
- });
1238
- div.innerHTML = `
1239
- <div class="max-w-[70%] px-3 py-2 rounded-xl ${
1240
- m.role === 'user' ? 'bg-accent text-white' : 'glass'
1241
- }">
1242
- <span>${m.content}</span>
1243
- ${m.emojis?.length ? `<div class="text-xs mt-1">${m.emojis.join('')}</div>` : ''}
1244
- <div class="mt-1">${attachHTML}</div>
1245
- </div>
1246
- `;
1247
- box.appendChild(div);
1248
- });
1249
- });
1250
- },
1251
- handleFileUpload(e) {
1252
- [...e.target.files].forEach(f => this.attachments.push(f));
1253
- },
1254
- toggleRecord() {
1255
- if (!this.recording) {
1256
- navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {
1257
- this.mediaRec = new MediaRecorder(stream);
1258
- this.mediaRec.ondataavailable = ev => this.chunks.push(ev.data);
1259
- this.mediaRec.onstop = () => {
1260
- const blob = new Blob(this.chunks, { type: 'audio/webm' });
1261
- this.attachments.push(blob);
1262
- this.chunks = [];
1263
- };
1264
- this.mediaRec.start();
1265
- this.recording = true;
1266
- });
1267
  } else {
1268
- this.mediaRec.stop();
1269
- this.recording = false;
1270
- }
1271
- },
1272
- // Command palette handler
1273
- runCommand(cmd) {
1274
- cmd = cmd.toLowerCase();
1275
- if (cmd.includes('add product') this.openAddProductModal();
1276
- if (cmd.includes('bulk import') document.getElementById('bulkImportBtn').click();
1277
- if (cmd.includes('open n8n') document.getElementById('n8n').classList.remove('hidden');
1278
- if (cmd.startsWith('find sku')) {
1279
- const sku = cmd.split('sku')[1]?.trim();
1280
- if (sku) {
1281
- const row = [...document.querySelectorAll('#productsTable tbody tr')].find(tr => tr.children[1].textContent === sku);
1282
- row?.scrollIntoView({ behavior: 'smooth' });
1283
- row?.classList.add('ring', 'ring-accent');
1284
- setTimeout(() => row?.classList.remove('ring', 'ring-accent'), 2000);
1285
- }
1286
  }
 
 
 
 
 
 
 
 
 
1287
  }
1288
  });
1289
- Alpine.data('neoVista', () => ({
1290
- products: [],
1291
- chatOpen: false,
1292
- messages: [],
1293
- init() {
1294
- // load persisted
1295
- this.products = JSON.parse(localStorage.getItem('neovista-products') || '[]');
1296
- this.loadProducts();
1297
- // command palette
1298
- document.addEventListener('keydown', e => {
1299
- if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
1300
- e.preventDefault();
1301
- document.getElementById('commandModal').classList.remove('hidden');
1302
- document.getElementById('cmdInput').focus();
1303
- }
1304
- });
1305
- document.getElementById('cmdInput').addEventListener('input', e => this.handleCmd(e.target.value));
1306
- document.getElementById('closeChat').addEventListener('click', () => this.toggleChat());
1307
- document.getElementById('sendMessage').addEventListener('click', () => this.sendChatMessage());
1308
- document.getElementById('chatInput').addEventListener('keydown', e => {
1309
- if (e.key === 'Enter') this.sendChatMessage();
1310
- });
1311
- document.getElementById('addProductBtn').addEventListener('click', () => this.addProduct());
1312
- document.getElementById('bulkImportBtn').addEventListener('click', () => this.bulkImport());
1313
- },
1314
- addProduct() {
1315
- const name = prompt('Product name');
1316
- const sku = prompt('SKU');
1317
- const price = parseFloat(prompt('Price'));
1318
- const stock = parseInt(prompt('Stock'));
1319
- if (name && sku && !isNaN(price) && !isNaN(stock)) {
1320
- this.products.push({ name, sku, price, stock });
1321
- this.saveProducts();
1322
- }
1323
- },
1324
- bulkImport() {
1325
- const inp = document.createElement('input');
1326
- inp.type = 'file';
1327
- inp.accept = '.csv';
1328
- inp.onchange = e => {
1329
- const file = e.target.files[0];
1330
- const reader = new FileReader();
1331
- reader.onload = () => {
1332
- const lines = reader.result.split('\n').slice(1);
1333
- const prods = lines.map(l => {
1334
- const [name, sku, price, stock] = l.split(',');
1335
- return { name, sku, price: parseFloat(price), stock: parseInt(stock) };
1336
- }).filter(p => p.name);
1337
- this.products = [...this.products, ...prods];
1338
- this.saveProducts();
1339
- };
1340
- reader.readAsText(file);
1341
- };
1342
- inp.click();
1343
- },
1344
- loadProducts() {
1345
- const tbody = document.querySelector('#productsTable tbody');
1346
- tbody.innerHTML = '';
1347
- this.products.forEach(p => {
1348
- const tr = document.createElement('tr');
1349
- tr.className = 'border-t border-gray-700 hover:bg-gray-800/50';
1350
- tr.innerHTML = `
1351
- <td class="p-3">${p.name}</td>
1352
- <td class="p-3">${p.sku}</td>
1353
- <td class="p-3">${p.price.toFixed(2)}</td>
1354
- <td class="p-3">
1355
- <span class="px-2 py-1 rounded-full text-xs ${p.stock < 10 ? 'bg-red-600' : 'bg-green-600'}">${p.stock}</span>
1356
- </td>
1357
- <td class="p-3"><span class="text-xs px-2 py-1 rounded-full bg-gray-700">Active</span></td>
1358
- `;
1359
- tbody.appendChild(tr);
1360
- });
1361
- },
1362
- saveProducts() {
1363
- localStorage.setItem('neovista-products', JSON.stringify(this.products));
1364
- this.loadProducts();
1365
- },
1366
- toggleChat() {
1367
- this.chatOpen = !this.chatOpen;
1368
- const panel = document.getElementById('chatPanel');
1369
- panel.classList.toggle('translate-y-full', !this.chatOpen);
1370
- panel.classList.toggle('translate-y-0', this.chatOpen);
1371
- if (this.chatOpen) this.scrollChat();
1372
- },
1373
- sendChatMessage() {
1374
- const input = document.getElementById('chatInput');
1375
- const text = input.value.trim();
1376
- if (!text) return;
1377
- this.messages.push({ role: 'user', content: text });
1378
- this.messages.push({ role: 'assistant', content: '...' });
1379
- input.value = '';
1380
- setTimeout(() => {
1381
- const last = this.messages[this.messages.length - 1];
1382
- last.content = 'Got your message! Anything else?';
1383
- this.scrollChat();
1384
- }, 500);
1385
- },
1386
- scrollChat() {
1387
  setTimeout(() => {
1388
- const box = document.getElementById('chatMessages');
1389
- box.scrollTop = box.scrollHeight;
1390
- }, 0);
1391
- },
1392
- handleCmd(query) {
1393
- const cmds = [
1394
- { name: 'Add Product', action: () => this.addProduct() },
1395
- { name: 'Find SKU', action: () => alert('Type find sku <sku>') },
1396
- { name: 'Send Bulk Email', action: () => alert('Feature locked') },
1397
- ];
1398
- const filtered = cmds.filter(c => c.name.toLowerCase().includes(query.toLowerCase()));
1399
- const res = document.getElementById('cmdResults');
1400
- res.innerHTML = '';
1401
- filtered.forEach(c => {
1402
- const btn = document.createElement('button');
1403
- btn.className = 'w-full text-left p-3 hover:bg-gray-800/60 flex items-center space-x-3';
1404
- btn.innerHTML = `
1405
- <i class="fas fa-bolt text-sm w-5 text-center text-gray-400"></i>
1406
- <div>
1407
- <p>${c.name}</p>
1408
- </div>
1409
- `;
1410
- btn.onclick = () => {
1411
- c.action();
1412
- document.getElementById('commandModal').classList.add('hidden');
1413
- };
1414
- res.appendChild(btn);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1415
  });
1416
  }
1417
- }));
1418
- Alpine.data('neoVista', neoVista);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1419
  </script>
1420
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=fsalmansour/s" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
1421
  </html>
 
33
  }
34
  }
35
  </script>
36
+
37
  <!-- Font Awesome -->
38
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
39
  <!-- Google Fonts -->
40
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
41
+
42
  <style>
43
+ :root {
44
+ --accent: #a855f7;
45
+ --glass-bg: rgba(30, 41, 59, 0.5);
46
+ --glass-border: rgba(255, 255, 255, 0.18);
47
+ }
48
+
49
+ html,body{
50
+ overflow-x:hidden;
51
+ min-width:320px;
52
+ }
53
+
54
  body {
55
  font-family: 'Inter', sans-serif;
56
  background: #121212;
57
  color: #e5e7eb;
58
  -webkit-tap-highlight-color:transparent;
59
  }
60
+
61
+ .blink {
62
+ animation: blink 1s infinite;
63
+ }
64
+
65
+ @keyframes blink {
66
+ 50% { opacity: 0; }
67
+ }
68
+
69
  .glass {
70
  backdrop-filter: blur(25px) saturate(200%);
71
+ border: 1px solid var(--glass-border);
72
+ background: var(--glass-bg);
73
  }
74
+
75
  .glass-light {
76
  background: rgba(248, 250, 252, 0.6);
77
  color: #0f172a;
78
  }
79
+
80
  .kpi-card {
81
  transition: transform 0.3s, box-shadow 0.3s;
82
  }
83
+
84
  .kpi-card:hover {
85
  transform: translateY(-4px);
86
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
87
  }
88
+
89
  .tooltip:hover .tooltip-text {
90
  visibility: visible;
91
  opacity: 1;
92
  }
93
+
94
  .tooltip-text {
95
  visibility: hidden;
96
  opacity: 0;
 
107
  white-space: nowrap;
108
  transition: opacity 0.3s;
109
  }
110
+
111
  @keyframes pulse {
112
  0%, 100% { opacity: 1; }
113
  50% { opacity: 0.5; }
114
  }
115
+
116
  .animate-pulse {
117
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
118
  }
119
+
120
  .fab-shadow {
121
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
122
  }
123
+
124
  .progress-ring {
125
  transform: rotate(-90deg);
126
  }
127
+
128
  .progress-ring-circle {
129
  stroke-dasharray: 283;
130
  stroke-dashoffset: 283;
131
  transition: stroke-dashoffset 0.5s;
132
  }
133
+
134
+ .active-nav {
135
+ background: rgba(168, 85, 247, 0.2);
136
+ border-left: 3px solid var(--accent);
137
+ }
138
+
139
+ .sidebar-expanded {
140
+ width: 240px;
141
+ }
142
+
143
+ .sidebar-collapsed {
144
+ width: 72px;
145
+ }
146
+
147
+ .sidebar-toggle {
148
+ transition: all 0.3s ease;
149
+ }
150
+
151
+ .sidebar-toggle:hover {
152
+ transform: scale(1.1);
153
+ }
154
+
155
+ .status-indicator {
156
+ position: absolute;
157
+ bottom: 0;
158
+ right: 0;
159
+ width: 12px;
160
+ height: 12px;
161
+ border-radius: 50%;
162
+ border: 2px solid #121212;
163
+ }
164
+
165
+ .hero-gradient {
166
+ background: linear-gradient(135deg, rgba(168, 85, 247, 0.15) 0%, rgba(59, 130, 246, 0.15) 100%);
167
+ }
168
+
169
+ .drag-over {
170
+ border: 2px dashed var(--accent);
171
+ background: rgba(168, 85, 247, 0.1);
172
+ }
173
+
174
+ .drag-over * {
175
+ pointer-events: none;
176
+ }
177
+
178
+ .neon-glow {
179
+ box-shadow: 0 0 15px rgba(168, 85, 247, 0.5);
180
+ }
181
+
182
+ .pulse-glow {
183
+ animation: pulse-glow 2s infinite;
184
+ }
185
+
186
+ @keyframes pulse-glow {
187
+ 0% { box-shadow: 0 0 5px rgba(168, 85, 247, 0.5); }
188
+ 50% { box-shadow: 0 0 20px rgba(168, 85, 247, 0.8); }
189
+ 100% { box-shadow: 0 0 5px rgba(168, 85, 247, 0.5); }
190
+ }
191
+
192
+ .floating {
193
+ animation: floating 3s ease-in-out infinite;
194
+ }
195
+
196
+ @keyframes floating {
197
+ 0% { transform: translateY(0px); }
198
+ 50% { transform: translateY(-10px); }
199
+ 100% { transform: translateY(0px); }
200
+ }
201
+
202
+ .chart-bar {
203
+ animation: chart-grow 1s ease-out forwards;
204
+ }
205
+
206
+ @keyframes chart-grow {
207
+ from { height: 0; }
208
+ to { height: var(--target-height); }
209
+ }
210
  </style>
211
  </head>
212
 
 
216
  <div class="container mx-auto px-4 h-16 flex items-center justify-between">
217
  <!-- Logo -->
218
  <div class="flex items-center space-x-3">
219
+ <div class="w-10 h-10 rounded-full bg-gradient-to-br from-indigo-500 to-cyan-400 flex items-center justify-center">
220
+ <i class="fas fa-brain text-white text-lg"></i>
221
  </div>
222
+ <span class="font-extrabold text-xl hidden sm:inline">NeoVista AI</span>
223
  </div>
224
+
225
  <!-- Command Palette -->
226
+ <div class="hidden md:flex flex-1 max-w-md mx-4">
227
+ <button id="openCommand" class="w-full glass text-sm px-4 py-2.5 rounded-lg flex items-center space-x-3 hover:bg-slate-700 transition">
228
+ <i class="fas fa-search text-sm"></i>
229
  <span>Search commands...</span>
230
  <kbd class="ml-auto text-xs px-2 py-1 bg-slate-700 rounded">⌘K</kbd>
231
  </button>
232
  </div>
233
+
234
  <!-- Nav Icons -->
235
+ <div class="flex items-center space-x-4">
236
  <button class="text-sm font-semibold hover:opacity-80 transition" title="Switch to Arabic">EN</button>
237
+ <button id="themeToggle" class="p-2 rounded-full hover:bg-slate-700 transition tooltip">
238
  <i class="fas fa-sun text-yellow-300"></i>
239
  <span class="tooltip-text">Toggle Theme</span>
240
  </button>
241
+ <button class="p-2 rounded-full hover:bg-slate-700 transition tooltip">
242
  <i class="fas fa-microphone text-red-400"></i>
243
  <span class="tooltip-text">Voice Command</span>
244
  </button>
245
  <div class="relative">
246
+ <button class="p-2 rounded-full hover:bg-slate-700 relative">
247
  <i class="fas fa-bell text-xl"></i>
248
  <span class="absolute -top-1 -right-1 bg-red-500 text-white text-xs rounded-full h-5 w-5 flex items-center justify-center animate-pulse">3</span>
249
  </button>
250
  </div>
251
  <div class="relative">
252
  <button class="flex items-center space-x-2 hover:bg-slate-700 transition rounded-full p-1">
253
+ <div class="w-10 h-10 rounded-full bg-gradient-to-br from-purple-500 to-pink-500 flex items-center justify-center relative">
254
+ <span class="text-sm font-bold">AI</span>
255
+ <div class="status-indicator bg-green-500"></div>
256
  </div>
257
  </button>
258
  </div>
259
  </div>
260
  </div>
261
  </header>
262
+
263
  <!-- Sidebar (enhanced) -->
264
+ <aside id="sidebar" class="glass fixed inset-y-0 left-0 z-40 sidebar-collapsed p-3 space-y-3 overflow-y-auto transition-all duration-300 lg:relative lg:translate-x-0 transform -translate-x-full lg:translate-x-0">
265
+ <div class="flex justify-between items-center mb-6 mt-2">
266
+ <h2 class="text-xl font-bold px-3 hidden sidebar-text">Navigation</h2>
267
+ <button id="toggleSidebar" class="p-2 rounded-full hover:bg-slate-700 sidebar-toggle">
268
+ <i class="fas fa-chevron-left text-sm"></i>
269
+ </button>
270
+ </div>
271
+
272
+ <nav class="flex flex-col space-y-2">
273
+ <a href="#home" class="group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50 active-nav">
274
  <i class="fas fa-home text-xl"></i>
275
+ <span class="ml-4 font-medium sidebar-text hidden">Home</span>
276
  <span class="absolute left-full ml-3 px-2 py-1 text-xs glass rounded opacity-0 group-hover:opacity-100 whitespace-nowrap pointer-events-none transition">Home</span>
277
  </a>
278
+ <a href="#products" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Smart Products">
279
+ <i class="fas fa-box-open text-xl"></i>
280
+ <span class="ml-4 font-medium sidebar-text hidden">Products</span>
 
 
281
  </a>
282
+ <a href="#orders" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Orders & Invoices">
283
+ <i class="fas fa-file-invoice-dollar text-xl"></i>
284
+ <span class="ml-4 font-medium sidebar-text hidden">Orders</span>
285
  </a>
286
+ <a href="#integrations" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Store Integrations">
287
+ <i class="fas fa-store text-xl"></i>
288
+ <span class="ml-4 font-medium sidebar-text hidden">Integrations</span>
289
  </a>
290
+ <a href="#social" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Social Media Tools">
291
+ <i class="fas fa-share-alt text-xl"></i>
292
+ <span class="ml-4 font-medium sidebar-text hidden">Social</span>
293
  </a>
294
+ <a href="#ai" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="AI Assistant">
295
+ <i class="fas fa-robot text-xl"></i>
296
+ <span class="ml-4 font-medium sidebar-text hidden">AI Assistant</span>
297
  </a>
298
+ <a href="#automations" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Automations">
299
+ <i class="fas fa-cogs text-xl"></i>
300
+ <span class="ml-4 font-medium sidebar-text hidden">Automations</span>
301
  </a>
302
+ <a href="#shipping" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Shipping & Invoices">
303
+ <i class="fas fa-shipping-fast text-xl"></i>
304
+ <span class="ml-4 font-medium sidebar-text hidden">Shipping</span>
305
  </a>
306
+ <a href="#payments" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Payments">
307
+ <i class="fas fa-credit-card text-xl"></i>
308
+ <span class="ml-4 font-medium sidebar-text hidden">Payments</span>
309
  </a>
310
+ <a href="#trends" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Trends">
311
+ <i class="fas fa-fire text-xl"></i>
312
+ <span class="ml-4 font-medium sidebar-text hidden">Trends</span>
313
  </a>
314
+ <a href="#settings" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Settings">
315
+ <i class="fas fa-sliders-h text-xl"></i>
316
+ <span class="ml-4 font-medium sidebar-text hidden">Settings</span>
317
  </a>
318
+ <a href="#feedback" class="tooltip group relative flex items-center p-3 rounded-xl hover:bg-slate-700/50" title="Feedback">
319
+ <i class="fas fa-comment-dots text-xl"></i>
320
+ <span class="ml-4 font-medium sidebar-text hidden">Feedback</span>
321
  </a>
322
  </nav>
323
+
324
+ <div class="mt-auto pt-4 border-t border-slate-700/50">
325
+ <div class="p-3 rounded-xl bg-slate-800/30">
326
+ <div class="flex items-center">
327
+ <div class="w-10 h-10 rounded-full bg-gradient-to-br from-purple-500 to-pink-500 flex items-center justify-center mr-3">
328
+ <span class="text-sm font-bold">AI</span>
329
+ </div>
330
+ <div class="sidebar-text hidden">
331
+ <p class="font-medium">AI Assistant</p>
332
+ <p class="text-xs text-slate-400">Online</p>
333
+ </div>
334
+ </div>
335
+ <button class="w-full mt-3 px-3 py-2 bg-slate-700/50 hover:bg-slate-700 rounded-lg text-sm transition sidebar-text hidden">
336
+ <i class="fas fa-comment mr-2"></i>Chat with AI
337
+ </button>
338
+ </div>
339
+ </div>
340
  </aside>
341
+
342
  <!-- Mobile Hamburger -->
343
  <button id="openSidebar" class="glass fixed top-20 left-4 z-30 p-3 rounded-full lg:hidden fab-shadow touch-manipulation">
344
  <i class="fas fa-bars"></i>
345
  </button>
346
+
347
  <!-- Main Content -->
348
+ <main class="pt-20 lg:pl-20 px-4 pb-32 space-y-8">
349
  <!-- Hero Widget -->
350
  <section id="home" class="scroll-mt-20">
351
+ <div class="relative glass rounded-xl p-6 mb-6 overflow-hidden hero-gradient">
352
  <!-- animated bg -->
353
  <div class="absolute inset-0 opacity-20">
354
  <div class="absolute -top-8 -left-8 w-40 h-40 bg-gradient-to-br from-indigo-500 to-cyan-400 rounded-full blur-2xl animate-pulse"></div>
355
  <div class="absolute -bottom-8 -right-8 w-48 h-48 bg-gradient-to-br from-purple-500 to-pink-500 rounded-full blur-2xl animate-pulse delay-1000"></div>
356
  </div>
357
  <div class="relative z-10">
358
+ <div class="flex flex-col md:flex-row md:items-center justify-between">
359
+ <div>
360
+ <h1 class="text-3xl font-bold mb-2">Welcome back, Alex! <span class="text-accent">πŸ€–</span></h1>
361
+ <p class="text-gray-400 mb-4">
362
+ Your AI assistant is <span class="text-green-400 font-bold">Online</span> Β·
363
+ <span class="text-xs glass px-2 py-1 rounded-full">Next task in 5 min</span>
364
+ </p>
365
+ </div>
366
+ <div class="flex space-x-3 mt-4 md:mt-0">
367
+ <button class="glass px-4 py-2.5 rounded-lg text-sm hover:bg-slate-700 transition flex items-center">
368
+ <i class="fas fa-plus mr-2"></i>Start Task
369
+ </button>
370
+ <button class="glass px-4 py-2.5 rounded-lg text-sm hover:bg-slate-700 transition flex items-center">
371
+ <i class="fas fa-bolt mr-2"></i>Quick Action
372
+ </button>
373
+ </div>
374
+ </div>
375
+
376
+ <div class="mt-6 grid grid-cols-2 md:grid-cols-4 gap-3">
377
+ <button class="glass px-3 py-2.5 rounded-lg text-xs hover:bg-slate-700 transition flex items-center justify-center">
378
+ <i class="fas fa-upload mr-1"></i> Upload CSV
379
+ </button>
380
+ <button class="glass px-3 py-2.5 rounded-lg text-xs hover:bg-slate-700 transition flex items-center justify-center">
381
+ <i class="fas fa-chart-line mr-1"></i> View Reports
382
+ </button>
383
+ <button class="glass px-3 py-2.5 rounded-lg text-xs hover:bg-slate-700 transition flex items-center justify-center">
384
+ <i class="fas fa-robot mr-1"></i> Ask AI
385
+ </button>
386
+ <button class="glass px-3 py-2.5 rounded-lg text-xs hover:bg-slate-700 transition flex items-center justify-center">
387
+ <i class="fas fa-sync-alt mr-1"></i> Refresh Data
388
+ </button>
389
  </div>
390
  </div>
391
  </div>
392
+
393
+ <!-- Quick Stats Row -->
394
+ <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6">
 
 
 
 
 
 
 
 
 
 
 
395
  <div class="kpi-card glass p-4 rounded-xl">
396
  <div class="flex items-center justify-between mb-2">
397
  <i class="fas fa-dollar-sign text-3xl text-emerald-400"></i>
 
402
  <p class="text-3xl font-extrabold">$1,247</p>
403
  <p class="text-xs text-slate-400">Revenue</p>
404
  </div>
405
+
406
  <div class="kpi-card glass p-4 rounded-xl">
407
  <div class="flex items-center justify-between mb-2">
408
  <div class="flex items-center">
409
+ <div class="w-10 h-10 rounded-full bg-accent/10 flex items-center justify-center mr-2">
410
+ <i class="fas fa-shopping-cart text-accent text-lg"></i>
411
  </div>
412
  <span class="text-sm">Orders</span>
413
  </div>
 
424
  <span class="text-xs text-slate-400 ml-2">vs yesterday</span>
425
  </div>
426
  </div>
427
+
428
  <div class="kpi-card glass p-4 rounded-xl">
429
  <div class="flex items-center justify-between mb-2">
430
  <div class="flex items-center">
431
+ <div class="w-10 h-10 rounded-full bg-accent/10 flex items-center justify-center mr-2">
432
+ <i class="fas fa-chart-line text-accent text-lg"></i>
433
  </div>
434
  <span class="text-sm">Conversion</span>
435
  </div>
 
446
  <span class="text-xs text-slate-400 ml-2">vs yesterday</span>
447
  </div>
448
  </div>
449
+
450
  <div class="kpi-card glass p-4 rounded-xl">
451
  <div class="flex items-center justify-between mb-2">
452
  <div class="flex items-center">
453
+ <div class="w-10 h-10 rounded-full bg-accent/10 flex items-center justify-center mr-2">
454
+ <i class="fas fa-heartbeat text-accent text-lg"></i>
455
  </div>
456
  <span class="text-sm">Health</span>
457
  </div>
 
469
  </div>
470
  </div>
471
  </div>
472
+
473
+ <!-- System Health & AI Status -->
474
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8">
475
+ <div class="glass rounded-xl p-5 lg:col-span-2">
476
+ <div class="flex items-center justify-between mb-4">
477
+ <h3 class="text-lg font-bold">System Health</h3>
478
+ <div class="flex items-center space-x-2">
479
+ <div class="flex items-center">
480
+ <div class="w-3 h-3 rounded-full bg-green-500 mr-1"></div>
481
+ <span class="text-xs">Operational</span>
482
+ </div>
483
  </div>
484
  </div>
485
+
486
+ <div class="h-48 flex items-end space-x-1 justify-center">
487
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 80%;">
488
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 80%;"></div>
489
+ </div>
490
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 95%;">
491
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 95%;"></div>
492
+ </div>
493
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 70%;">
494
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 70%;"></div>
495
+ </div>
496
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 90%;">
497
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 90%;"></div>
498
+ </div>
499
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 85%;">
500
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 85%;"></div>
501
+ </div>
502
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 92%;">
503
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 92%;"></div>
504
+ </div>
505
+ <div class="w-8 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 75%;">
506
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-green-500 to-emerald-400 rounded-t chart-bar" style="--target-height: 75%;"></div>
507
+ </div>
508
  </div>
509
+
510
+ <div class="grid grid-cols-4 gap-2 mt-4 text-center text-xs">
511
+ <div>
512
+ <p class="text-slate-400">API</p>
513
+ <p class="text-green-400 font-medium">98%</p>
514
+ </div>
515
+ <div>
516
+ <p class="text-slate-400">Database</p>
517
+ <p class="text-green-400 font-medium">99%</p>
518
+ </div>
519
+ <div>
520
+ <p class="text-slate-400">Storage</p>
521
+ <p class="text-green-400 font-medium">95%</p>
522
+ </div>
523
+ <div>
524
+ <p class="text-slate-400">Network</p>
525
+ <p class="text-green-400 font-medium">97%</p>
526
  </div>
527
  </div>
528
  </div>
529
+
530
+ <div class="glass rounded-xl p-5">
531
+ <div class="flex items-center justify-between mb-4">
532
+ <h3 class="text-lg font-bold">AI Assistant</h3>
533
+ <span class="text-xs px-2 py-1 bg-emerald-600/20 text-emerald-400 rounded-full">Online</span>
534
+ </div>
535
+
536
+ <div class="flex items-center justify-center mb-4">
537
+ <div class="relative w-32 h-32">
538
+ <svg class="w-32 h-32 progress-ring" viewBox="0 0 100 100">
539
+ <circle class="text-slate-700" stroke-width="10" stroke="currentColor" fill="transparent" r="45" cx="50" cy="50" />
540
+ <circle class="progress-ring-circle" stroke-width="10" stroke-linecap="round" stroke="url(#gradient)" fill="transparent" r="45" cx="50" cy="50" stroke-dashoffset="283 - (283 * 87 / 100)" />
541
+ <defs>
542
+ <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="0%">
543
+ <stop offset="0%" stop-color="#8b5cf6" />
544
+ <stop offset="100%" stop-color="#ec4899" />
545
+ </linearGradient>
546
+ </defs>
547
+ </svg>
548
+ <div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center">
549
+ <p class="text-2xl font-bold text-accent">87%</p>
550
+ <p class="text-xs text-slate-400">Efficiency</p>
551
+ </div>
552
+ </div>
553
  </div>
554
+
555
+ <div class="space-y-3">
556
+ <div class="flex items-center justify-between">
557
+ <span class="text-sm">Tasks Completed</span>
558
+ <span class="font-medium">42/50</span>
559
+ </div>
560
+ <div class="flex items-center justify-between">
561
+ <span class="text-sm">Response Time</span>
562
+ <span class="font-medium">120ms</span>
563
+ </div>
564
+ <div class="flex items-center justify-between">
565
+ <span class="text-sm">Accuracy</span>
566
+ <span class="font-medium">94%</span>
567
  </div>
568
  </div>
569
  </div>
570
  </div>
571
  </section>
572
+
573
  <!-- What-If Sim -->
574
  <section id="sim" class="scroll-mt-20">
575
  <div class="flex items-center justify-between mb-4">
576
  <h2 class="text-xl font-bold">What-If Simulator</h2>
577
+ <button class="text-sm glass px-3 py-1.5 rounded hover:bg-slate-700">Save Scenario</button>
578
  </div>
579
+
580
  <div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
581
  <div class="glass rounded-xl p-5">
582
  <div class="space-y-4">
 
606
  </div>
607
  </div>
608
  </div>
609
+
610
  <div class="glass rounded-xl p-5">
611
  <h3 class="text-sm font-medium mb-3">Projected Results</h3>
612
  <div class="space-y-3">
 
628
  </div>
629
  </div>
630
  </div>
631
+
632
  <div class="glass rounded-xl p-5">
633
  <h3 class="text-sm font-medium mb-3">Saved Scenarios</h3>
634
  <div class="space-y-2">
 
657
  </div>
658
  </div>
659
  </section>
660
+
661
+ <!-- Smart Product Manager -->
662
+ <section id="products" class="scroll-mt-20">
663
  <div class="flex items-center justify-between mb-4">
664
+ <h2 class="text-xl font-bold">Smart Product Manager</h2>
665
  <div class="flex items-center space-x-2">
666
+ <button id="bulkImportBtn" class="text-sm glass px-3 py-1.5 rounded hover:bg-gray-800/60 flex items-center space-x-1">
667
+ <i class="fas fa-file-import text-xs"></i>
668
+ <span>Bulk Import</span>
669
+ </button>
670
+ <button id="addProductBtn" class="text-sm glass px-3 py-1.5 rounded hover:bg-gray-800/60 flex items-center space-x-1">
671
  <i class="fas fa-plus text-xs"></i>
672
+ <span>Add Product</span>
673
  </button>
 
 
 
 
 
 
 
 
674
  </div>
675
  </div>
676
+
677
  <div class="glass rounded-xl overflow-x-auto">
678
+ <table id="productsTable" class="w-full text-sm">
679
+ <thead class="bg-gray-800">
680
  <tr>
681
+ <th class="p-3 text-left">Name</th>
682
+ <th class="p-3 text-left">SKU</th>
683
+ <th class="p-3 text-left">Price</th>
684
+ <th class="p-3 text-left">Stock</th>
685
  <th class="p-3 text-left">Status</th>
 
 
686
  </tr>
687
  </thead>
688
  <tbody>
689
  <tr class="border-t border-slate-700 hover:bg-slate-800/50">
690
+ <td class="p-3">Premium T-Shirt</td>
691
+ <td class="p-3">TSH-001</td>
692
+ <td class="p-3">$29.99</td>
693
  <td class="p-3">
694
+ <span class="px-2 py-1 rounded-full text-xs bg-emerald-600">42</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
695
  </td>
696
  <td class="p-3">
697
+ <span class="text-xs px-2 py-1 rounded-full bg-slate-700">Active</span>
 
 
 
698
  </td>
699
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
700
  <tr class="border-t border-slate-700 hover:bg-slate-800/50">
701
+ <td class="p-3">Wireless Headphones</td>
702
+ <td class="p-3">WH-002</td>
703
+ <td class="p-3">$89.99</td>
704
  <td class="p-3">
705
+ <span class="px-2 py-1 rounded-full text-xs bg-emerald-600">15</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
706
  </td>
 
707
  <td class="p-3">
708
+ <span class="text-xs px-2 py-1 rounded-full bg-slate-700">Active</span>
 
 
 
709
  </td>
710
  </tr>
711
+ <tr class="border-t border-slate-700 hover:bg-slate-800/50">
712
+ <td class="p-3">Smart Watch</td>
713
+ <td class="p-3">SW-003</td>
714
+ <td class="p-3">$199.99</td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
  <td class="p-3">
716
+ <span class="px-2 py-1 rounded-full text-xs bg-red-600">3</span>
717
  </td>
718
  <td class="p-3">
719
+ <span class="text-xs px-2 py-1 rounded-full bg-slate-700">Active</span>
720
  </td>
721
  </tr>
722
  </tbody>
723
  </table>
724
  </div>
725
  </section>
726
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
727
  <!-- Integrations -->
728
  <section id="ads" class="scroll-mt-20">
729
  <div class="flex items-center justify-between mb-4">
730
  <h2 class="text-xl font-bold">Integrations</h2>
731
+ <button class="text-sm glass px-3 py-1.5 rounded hover:bg-slate-700 flex items-center space-x-1">
732
  <i class="fas fa-plus text-xs"></i>
733
  <span>Add Integration</span>
734
  </button>
735
  </div>
736
+
737
  <div class="flex flex-wrap gap-2 mb-4">
738
+ <button class="px-3 py-1.5 rounded-md text-sm transition bg-accent text-white">All</button>
739
+ <button class="px-3 py-1.5 rounded-md text-sm transition glass hover:bg-slate-700">Ads</button>
740
+ <button class="px-3 py-1.5 rounded-md text-sm transition glass hover:bg-slate-700">Stores</button>
741
+ <button class="px-3 py-1.5 rounded-md text-sm transition glass hover:bg-slate-700">Email</button>
742
+ <button class="px-3 py-1.5 rounded-md text-sm transition glass hover:bg-slate-700">Automation</button>
743
  </div>
744
+
745
  <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
746
  <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
747
  <div class="flex items-start justify-between mb-3">
748
+ <div class="w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center">
749
+ <i class="fab fa-wordpress text-accent text-xl"></i>
750
  </div>
751
  <span class="text-xs px-2 py-1 rounded-full bg-slate-700/50 text-slate-400">Disconnected</span>
752
  </div>
753
  <p class="font-semibold mb-1">WooCommerce</p>
754
  <p class="text-xs text-slate-400 mb-3">Connect your WooCommerce store</p>
755
+ <div class="w-full bg-slate-700 rounded-full h-2 mb-1">
756
+ <div class="bg-accent h-2 rounded-full" style="width: 0%"></div>
757
  </div>
758
  <div class="flex justify-between text-xs text-slate-400">
759
  <span>Not connected</span>
760
  <span>E-commerce</span>
761
  </div>
762
  </div>
763
+
764
  <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
765
  <div class="flex items-start justify-between mb-3">
766
+ <div class="w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center">
767
+ <i class="fab fa-shopify text-accent text-xl"></i>
768
  </div>
769
  <span class="text-xs px-2 py-1 rounded-full bg-emerald-600/20 text-emerald-400">Connected</span>
770
  </div>
771
  <p class="font-semibold mb-1">Shopify</p>
772
  <p class="text-xs text-slate-400 mb-3">Connect your Shopify store</p>
773
+ <div class="w-full bg-slate-700 rounded-full h-2 mb-1">
774
+ <div class="bg-accent h-2 rounded-full" style="width: 100%"></div>
775
  </div>
776
  <div class="flex justify-between text-xs text-slate-400">
777
  <span>Connected</span>
778
  <span>E-commerce</span>
779
  </div>
780
  </div>
781
+
782
+ <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
783
+ <div class="flex items-start justify-between mb-3">
784
+ <div class="w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center">
785
+ <i class="fab fa-google text-accent text-xl"></i>
786
+ </div>
787
+ <span class="text-xs px-2 py-1 rounded-full bg-emerald-600/20 text-emerald-400">Connected</span>
788
+ </div>
789
+ <p class="font-semibold mb-1">Google Ads</p>
790
+ <p class="text-xs text-slate-400 mb-3">Connect your Google Ads account</p>
791
+ <div class="w-full bg-slate-700 rounded-full h-2 mb-1">
792
+ <div class="bg-accent h-2 rounded-full" style="width: 85%"></div>
793
+ </div>
794
+ <div class="flex justify-between text-xs text-slate-400">
795
+ <span>Connected</span>
796
+ <span>Advertising</span>
797
+ </div>
798
+ </div>
799
+
800
+ <div class="glass rounded-xl p-4 hover:bg-slate-700/50 transition cursor-pointer">
801
+ <div class="flex items-start justify-between mb-3">
802
+ <div class="w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center">
803
+ <i class="fab fa-facebook text-accent text-xl"></i>
804
+ </div>
805
+ <span class="text-xs px-2 py-1 rounded-full bg-slate-700/50 text-slate-400">Disconnected</span>
806
+ </div>
807
+ <p class="font-semibold mb-1">Facebook</p>
808
+ <p class="text-xs text-slate-400 mb-3">Connect your Facebook page</p>
809
+ <div class="w-full bg-slate-700 rounded-full h-2 mb-1">
810
+ <div class="bg-accent h-2 rounded-full" style="width: 0%"></div>
811
+ </div>
812
+ <div class="flex justify-between text-xs text-slate-400">
813
+ <span>Not connected</span>
814
+ <span>Social</span>
815
+ </div>
816
+ </div>
817
  </div>
818
  </section>
819
+
820
+ <!-- AI Usage Section -->
821
+ <section id="ai" class="scroll-mt-20">
822
+ <div class="flex items-center justify-between mb-4">
823
+ <h2 class="text-xl font-bold">AI Usage</h2>
824
+ <div class="relative">
825
+ <select class="glass text-sm px-3 py-1.5 rounded appearance-none pr-7">
826
+ <option value="7d">Last 7 Days</option>
827
+ <option value="30d">Last 30 Days</option>
828
+ <option value="90d">Last 90 Days</option>
829
  </select>
830
+ <i class="fas fa-chevron-down absolute right-2 top-1/2 transform -translate-y-1/2 text-xs pointer-events-none"></i>
831
  </div>
 
 
832
  </div>
833
+
834
+ <div class="grid md:grid-cols-2 gap-6">
835
+ <div class="glass rounded-xl p-4">
836
+ <div class="flex items-center justify-between mb-4">
837
+ <h3 class="font-medium">API Usage</h3>
838
+ <div class="flex items-center space-x-2">
839
+ <div class="flex items-center">
840
+ <div class="w-3 h-3 rounded-full bg-accent mr-1"></div>
841
+ <span class="text-xs">This Month</span>
842
+ </div>
843
+ <div class="flex items-center">
844
+ <div class="w-3 h-3 rounded-full bg-slate-500 mr-1"></div>
845
+ <span class="text-xs">Last Month</span>
846
+ </div>
847
+ </div>
848
+ </div>
849
+ <div class="h-48 flex items-end space-x-1 justify-center">
850
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 60%;">
851
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 60%;"></div>
852
+ </div>
853
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 75%;">
854
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 75%;"></div>
855
+ </div>
856
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 90%;">
857
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 90%;"></div>
858
+ </div>
859
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 85%;">
860
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 85%;"></div>
861
+ </div>
862
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 95%;">
863
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 95%;"></div>
864
+ </div>
865
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 80%;">
866
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 80%;"></div>
867
+ </div>
868
+ <div class="w-6 bg-slate-700 rounded-t relative overflow-hidden" style="--target-height: 70%;">
869
+ <div class="absolute bottom-0 w-full bg-gradient-to-t from-accent to-purple-500 rounded-t chart-bar" style="--target-height: 70%;"></div>
870
+ </div>
871
+ </div>
872
  </div>
873
+
874
+ <div class="glass rounded-xl p-4">
875
+ <h3 class="font-medium mb-4">Cost Summary</h3>
876
+ <div class="grid grid-cols-2 gap-4">
877
+ <div class="bg-slate-800/50 rounded-lg p-3">
878
+ <p class="text-sm text-slate-400 mb-1">This Month</p>
879
+ <p class="text-xl font-bold">$1,245</p>
880
+ </div>
881
+ <div class="bg-slate-800/50 rounded-lg p-3">
882
+ <p class="text-sm text-slate-400 mb-1">Last Month</p>
883
+ <p class="text-xl font-bold">$1,080</p>
884
+ </div>
885
+ <div class="bg-slate-800/50 rounded-lg p-3">
886
+ <p class="text-sm text-slate-400 mb-1">Change</p>
887
+ <p class="text-xl font-bold text-emerald-400">+15.3%</p>
888
+ </div>
889
+ <div class="bg-slate-800/50 rounded-lg p-3">
890
+ <p class="text-sm text-slate-400 mb-1">Forecast</p>
891
+ <p class="text-xl font-bold">$1,450</p>
892
+ </div>
893
+ </div>
894
  </div>
 
895
  </div>
896
  </section>
897
+
898
  <!-- Trends & Recommendations -->
899
  <section id="trends" class="scroll-mt-20">
900
  <h2 class="text-xl font-bold mb-4">Trends & Recommendations</h2>
901
  <div class="glass rounded-xl p-4">
902
+ <ul class="space-y-3">
903
+ <li class="flex items-start">
904
+ <div class="w-8 h-8 rounded-full bg-red-500/20 flex items-center justify-center mr-3 mt-1 flex-shrink-0">
905
+ <i class="fas fa-fire text-red-400"></i>
906
+ </div>
907
+ <div>
908
+ <p class="font-medium">Steam Wallet Cards selling 4Γ— last week</p>
909
+ <p class="text-xs text-slate-400">Trending in Gaming</p>
910
+ </div>
911
+ </li>
912
+ <li class="flex items-start">
913
+ <div class="w-8 h-8 rounded-full bg-blue-500/20 flex items-center justify-center mr-3 mt-1 flex-shrink-0">
914
+ <i class="fas fa-lightbulb text-blue-400"></i>
915
+ </div>
916
+ <div>
917
+ <p class="font-medium">AI: "Boost Netflix KSA ads 9 PM-11 PM"</p>
918
+ <p class="text-xs text-slate-400">AI Recommendation</p>
919
+ </div>
920
+ </li>
921
+ <li class="flex items-start">
922
+ <div class="w-8 h-8 rounded-full bg-green-500/20 flex items-center justify-center mr-3 mt-1 flex-shrink-0">
923
+ <i class="fas fa-chart-line text-green-400"></i>
924
+ </div>
925
+ <div>
926
+ <p class="font-medium">TikTok hashtag #PSNSaudi trending</p>
927
+ <p class="text-xs text-slate-400">Social Media</p>
928
+ </div>
929
+ </li>
930
  </ul>
931
  </div>
932
  </section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
933
  </main>
934
+
 
 
 
 
 
 
 
 
 
 
 
 
 
935
  <!-- Command Palette Modal -->
936
  <div id="commandModal" class="fixed inset-0 bg-black/50 z-50 hidden items-start justify-center pt-20">
937
  <div class="glass w-full max-w-lg rounded-xl overflow-hidden">
 
941
  </div>
942
  <div id="cmdResults" class="max-h-96 overflow-y-auto">
943
  <!-- dynamic results -->
944
+ <div class="p-3 hover:bg-slate-700/50 cursor-pointer flex items-center">
945
+ <i class="fas fa-plus text-sm w-5 text-center text-accent mr-3"></i>
946
+ <span>Add Product</span>
947
+ </div>
948
+ <div class="p-3 hover:bg-slate-700/50 cursor-pointer flex items-center">
949
+ <i class="fas fa-file-import text-sm w-5 text-center text-accent mr-3"></i>
950
+ <span>Bulk Import Products</span>
951
+ </div>
952
+ <div class="p-3 hover:bg-slate-700/50 cursor-pointer flex items-center">
953
+ <i class="fas fa-cog text-sm w-5 text-center text-accent mr-3"></i>
954
+ <span>System Settings</span>
955
+ </div>
956
+ <div class="p-3 hover:bg-slate-700/50 cursor-pointer flex items-center">
957
+ <i class="fas fa-robot text-sm w-5 text-center text-accent mr-3"></i>
958
+ <span>Ask AI Assistant</span>
959
+ </div>
960
+ <div class="p-3 hover:bg-slate-700/50 cursor-pointer flex items-center">
961
+ <i class="fas fa-chart-line text-sm w-5 text-center text-accent mr-3"></i>
962
+ <span>View Analytics</span>
963
+ </div>
964
  </div>
965
  </div>
966
  </div>
967
+
968
  <!-- Floating Action Button -->
969
+ <div class="fixed bottom-6 right-6 z-40 flex flex-col items-end space-y-3">
970
+ <button id="primaryFab" class="glass p-4 rounded-full shadow-xl fab-shadow hover:scale-110 transition pulse-glow">
971
+ <i class="fas fa-plus text-lg"></i>
 
972
  </button>
973
+ <button id="addProductFab" class="glass p-3 rounded-full shadow-lg fab-shadow transition hover:scale-110 neon hidden">
974
  <i class="fas fa-box-open"></i>
975
  </button>
976
+ <button id="chatToggleFab" class="glass p-3 rounded-full shadow-lg fab-shadow transition hover:scale-110 hidden">
977
  <i class="fas fa-robot"></i>
978
  </button>
979
  </div>
980
+
981
  <!-- Live Chat Panel -->
982
  <div id="chatPanel" class="fixed inset-x-0 bottom-0 z-50 glass rounded-t-xl shadow-2xl transform translate-y-full transition-transform duration-300 md:max-w-md md:mx-auto">
983
  <header class="flex items-center justify-between p-4 border-b border-slate-700">
984
  <div class="flex items-center space-x-2">
985
  <i class="fas fa-robot text-accent"></i>
986
+ <span class="font-bold">AI Assistant</span>
987
  </div>
988
  <button id="closeChat" class="p-1 rounded-full hover:bg-slate-700">
989
  <i class="fas fa-times"></i>
990
  </button>
991
  </header>
992
+ <div id="chatMessages" class="h-[60vh] md:h-[70vh] overflow-y-auto p-4 space-y-3">
993
+ <div class="flex justify-start">
994
+ <div class="max-w-[80%] px-4 py-3 rounded-xl glass">
995
+ <p>Hello Alex! How can I assist you today?</p>
996
+ </div>
997
+ </div>
998
+ <div class="flex justify-end">
999
+ <div class="max-w-[80%] px-4 py-3 rounded-xl bg-accent text-white">
1000
+ <p>Can you show me the sales report for last month?</p>
1001
+ </div>
1002
+ </div>
1003
+ <div class="flex justify-start">
1004
+ <div class="max-w-[80%] px-4 py-3 rounded-xl glass">
1005
+ <p>Sure! Here's the sales report for last month. Revenue was $1,247 with a 5.2% increase from the previous month.</p>
1006
+ </div>
1007
+ </div>
1008
+ </div>
1009
  <footer class="p-4 border-t border-slate-700 flex items-center space-x-2">
1010
  <button id="emojiToggle" class="p-2 rounded-full hover:bg-slate-700">
1011
  <i class="far fa-face-smile"></i>
1012
  </button>
1013
  <label class="p-2 rounded-full hover:bg-slate-700 cursor-pointer">
1014
  <i class="fas fa-paperclip"></i>
1015
+ <input type="file" multiple accept="image/*,.pdf" class="hidden">
1016
  </label>
1017
+ <button id="recordBtn" class="p-2 rounded-full hover:bg-slate-700">
1018
+ <i class="fas fa-microphone-lines"></i>
1019
  </button>
1020
  <input id="chatInput" type="text" placeholder="Type a message…" class="flex-1 bg-transparent outline-none" />
1021
  <button id="sendMessage" class="p-2 rounded-full hover:bg-slate-700">
 
1023
  </button>
1024
  </footer>
1025
  </div>
1026
+
1027
  <!-- Settings Modal -->
1028
  <div id="settingsModal" class="fixed inset-0 bg-black/50 z-50 hidden items-center justify-center">
1029
  <div class="glass w-full max-w-md rounded-xl p-6 space-y-4">
 
1035
  </div>
1036
  <div>
1037
  <label class="block text-sm mb-1">Accent Color</label>
1038
+ <input id="accentColorPicker" type="color" value="#a855f7" class="w-full h-10 rounded cursor-pointer" />
1039
  </div>
1040
  <div>
1041
  <label class="block text-sm mb-1">Theme</label>
1042
+ <button id="themeToggleBtn" class="glass px-3 py-2 rounded w-full text-left">Dark Mode</button>
1043
  </div>
1044
  <div>
1045
  <label class="flex items-center space-x-2">
1046
+ <input id="pushToggle" type="checkbox" class="accent-accent" checked>
1047
  <span class="text-sm">Enable Push Notifications</span>
1048
  </label>
1049
  </div>
1050
  <div class="text-right">
1051
+ <button id="saveSettings" class="px-4 py-2 bg-accent rounded hover:bg-opacity-80">Save Changes</button>
1052
  </div>
1053
  </div>
1054
  </div>
1055
+
 
1056
  <script>
1057
+ // DOM Elements
1058
+ const toggleSidebarBtn = document.getElementById('toggleSidebar');
1059
+ const sidebar = document.getElementById('sidebar');
1060
+ const openCommandBtn = document.getElementById('openCommand');
1061
+ const commandModal = document.getElementById('commandModal');
1062
+ const cmdInput = document.getElementById('cmdInput');
1063
+ const primaryFab = document.getElementById('primaryFab');
1064
+ const addProductFab = document.getElementById('addProductFab');
1065
+ const chatToggleFab = document.getElementById('chatToggleFab');
1066
+ const chatPanel = document.getElementById('chatPanel');
1067
+ const closeChatBtn = document.getElementById('closeChat');
1068
+ const themeToggleBtn = document.getElementById('themeToggleBtn');
1069
+ const themeToggle = document.getElementById('themeToggle');
1070
+ const settingsModal = document.getElementById('settingsModal');
1071
+ const closeSettingsBtn = document.getElementById('closeSettings');
1072
+ const saveSettingsBtn = document.getElementById('saveSettings');
1073
+ const accentColorPicker = document.getElementById('accentColorPicker');
1074
+
1075
+ // State
1076
+ let isSidebarExpanded = true;
1077
+ let isChatOpen = false;
1078
+ let isDarkMode = true;
1079
+
1080
+ // Toggle sidebar
1081
+ toggleSidebarBtn.addEventListener('click', () => {
1082
+ isSidebarExpanded = !isSidebarExpanded;
1083
+ sidebar.classList.toggle('sidebar-expanded', isSidebarExpanded);
1084
+ sidebar.classList.toggle('sidebar-collapsed', !isSidebarExpanded);
1085
+
1086
+ const sidebarTexts = document.querySelectorAll('.sidebar-text');
1087
+ sidebarTexts.forEach(text => {
1088
+ if (isSidebarExpanded) {
1089
+ text.classList.remove('hidden');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1090
  } else {
1091
+ text.classList.add('hidden');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1092
  }
1093
+ });
1094
+
1095
+ const icon = toggleSidebarBtn.querySelector('i');
1096
+ if (isSidebarExpanded) {
1097
+ icon.classList.remove('fa-chevron-right');
1098
+ icon.classList.add('fa-chevron-left');
1099
+ } else {
1100
+ icon.classList.remove('fa-chevron-left');
1101
+ icon.classList.add('fa-chevron-right');
1102
  }
1103
  });
1104
+
1105
+ // Command palette
1106
+ openCommandBtn.addEventListener('click', () => {
1107
+ commandModal.classList.remove('hidden');
1108
+ cmdInput.focus();
1109
+ });
1110
+
1111
+ cmdInput.addEventListener('keydown', (e) => {
1112
+ if (e.key === 'Escape') {
1113
+ commandModal.classList.add('hidden');
1114
+ }
1115
+ });
1116
+
1117
+ commandModal.addEventListener('click', (e) => {
1118
+ if (e.target === commandModal) {
1119
+ commandModal.classList.add('hidden');
1120
+ }
1121
+ });
1122
+
1123
+ // Floating action button
1124
+ primaryFab.addEventListener('click', () => {
1125
+ const isHidden = addProductFab.classList.contains('hidden');
1126
+
1127
+ if (isHidden) {
1128
+ addProductFab.classList.remove('hidden');
1129
+ chatToggleFab.classList.remove('hidden');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1130
  setTimeout(() => {
1131
+ addProductFab.classList.add('animate-fadeIn');
1132
+ chatToggleFab.classList.add('animate-fadeIn');
1133
+ }, 10);
1134
+ } else {
1135
+ addProductFab.classList.add('hidden');
1136
+ chatToggleFab.classList.add('hidden');
1137
+ addProductFab.classList.remove('animate-fadeIn');
1138
+ chatToggleFab.classList.remove('animate-fadeIn');
1139
+ }
1140
+ });
1141
+
1142
+ // Chat panel
1143
+ chatToggleFab.addEventListener('click', () => {
1144
+ isChatOpen = !isChatOpen;
1145
+ chatPanel.classList.toggle('translate-y-full', !isChatOpen);
1146
+ chatPanel.classList.toggle('translate-y-0', isChatOpen);
1147
+ });
1148
+
1149
+ closeChatBtn.addEventListener('click', () => {
1150
+ isChatOpen = false;
1151
+ chatPanel.classList.add('translate-y-full');
1152
+ chatPanel.classList.remove('translate-y-0');
1153
+ });
1154
+
1155
+ // Theme toggle
1156
+ themeToggleBtn.addEventListener('click', () => {
1157
+ isDarkMode = !isDarkMode;
1158
+ document.documentElement.classList.toggle('dark', isDarkMode);
1159
+ themeToggleBtn.textContent = isDarkMode ? 'Dark Mode' : 'Light Mode';
1160
+ themeToggle.innerHTML = isDarkMode ? '<i class="fas fa-sun text-yellow-300"></i>' : '<i class="fas fa-moon text-slate-300"></i>';
1161
+ });
1162
+
1163
+ themeToggle.addEventListener('click', () => {
1164
+ isDarkMode = !isDarkMode;
1165
+ document.documentElement.classList.toggle('dark', isDarkMode);
1166
+ themeToggle.innerHTML = isDarkMode ? '<i class="fas fa-sun text-yellow-300"></i>' : '<i class="fas fa-moon text-slate-300"></i>';
1167
+ themeToggleBtn.textContent = isDarkMode ? 'Dark Mode' : 'Light Mode';
1168
+ });
1169
+
1170
+ // Settings modal
1171
+ document.querySelectorAll('[id$="Fab"]').forEach(btn => {
1172
+ if (btn.id !== 'primaryFab') {
1173
+ btn.addEventListener('click', () => {
1174
+ settingsModal.classList.remove('hidden');
1175
  });
1176
  }
1177
+ });
1178
+
1179
+ closeSettingsBtn.addEventListener('click', () => {
1180
+ settingsModal.classList.add('hidden');
1181
+ });
1182
+
1183
+ saveSettingsBtn.addEventListener('click', () => {
1184
+ const newAccent = accentColorPicker.value;
1185
+ document.documentElement.style.setProperty('--accent', newAccent);
1186
+ settingsModal.classList.add('hidden');
1187
+ });
1188
+
1189
+ // Close modals when clicking outside
1190
+ document.addEventListener('click', (e) => {
1191
+ if (commandModal.classList.contains('hidden') &&
1192
+ settingsModal.classList.contains('hidden') &&
1193
+ !isChatOpen) return;
1194
+
1195
+ if (!commandModal.contains(e.target) &&
1196
+ e.target !== openCommandBtn &&
1197
+ !commandModal.classList.contains('hidden')) {
1198
+ commandModal.classList.add('hidden');
1199
+ }
1200
+
1201
+ if (!settingsModal.contains(e.target) &&
1202
+ e.target !== primaryFab &&
1203
+ e.target !== addProductFab &&
1204
+ e.target !== chatToggleFab &&
1205
+ !settingsModal.classList.contains('hidden')) {
1206
+ settingsModal.classList.add('hidden');
1207
+ }
1208
+ });
1209
+
1210
+ // Initialize
1211
+ document.addEventListener('DOMContentLoaded', () => {
1212
+ // Simulate loading data
1213
+ setTimeout(() => {
1214
+ const bars = document.querySelectorAll('.chart-bar');
1215
+ bars.forEach(bar => {
1216
+ bar.style.height = bar.style.getPropertyValue('--target-height');
1217
+ });
1218
+ }, 500);
1219
+ });
1220
  </script>
1221
  <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=fsalmansour/s" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
1222
  </html>