ernestmindres commited on
Commit
e1e5b1e
·
verified ·
1 Parent(s): 3333760

Update templates/tarifs.html

Browse files
Files changed (1) hide show
  1. templates/tarifs.html +427 -400
templates/tarifs.html CHANGED
@@ -1,401 +1,428 @@
1
- <!DOCTYPE html>
2
- <html lang="fr" class="dark">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Tarifs - Nexus Pro</title>
7
- <link rel="stylesheet"
8
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0" />
9
- <script src="https://cdn.tailwindcss.com"></script>
10
- <style>
11
- /* Assure une meilleure compatibilité responsive pour la grille */
12
- .pricing-grid {
13
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
14
- }
15
-
16
- /* Variables de Thème - Couleurs Noir Foncé (Mode Sombre par défaut) */
17
- :root, html.dark {
18
- --bg-page: #181818; /* Noir très foncé, pas de bleu marine */
19
- --bg-card: #282828;
20
- --text-main: #EAEAEA;
21
- --text-secondary: #B0B0B0;
22
- --border-color: #404040;
23
- --shadow-color: rgba(0, 0, 0, 0.5);
24
- }
25
-
26
- /* Mode Clair */
27
- html.light {
28
- --bg-page: #F5F5F5;
29
- --bg-card: #FFFFFF;
30
- --text-main: #202020;
31
- --text-secondary: #5C5C5C;
32
- --border-color: #E0E0E0;
33
- --shadow-color: rgba(0, 0, 0, 0.1);
34
- }
35
-
36
- /* Application des variables */
37
- body {
38
- background-color: var(--bg-page);
39
- color: var(--text-main);
40
- transition: background-color 0.3s, color 0.3s;
41
- }
42
-
43
- .bg-gray-900 { background-color: var(--bg-page) !important; }
44
- .text-white { color: var(--text-main) !important; }
45
- .bg-gray-800, .bg-gray-800\/50 {
46
- background-color: var(--bg-card) !important;
47
- box-shadow: 0 4px 6px -1px var(--shadow-color), 0 2px 4px -2px var(--shadow-color);
48
- }
49
- .text-gray-400 { color: var(--text-secondary) !important; }
50
- .border-gray-700, .border-gray-800 { border-color: var(--border-color) !important; }
51
- .text-gray-300 { color: var(--text-secondary) !important; } /* Utilisation de la même couleur pour uniformité */
52
- .bg-gray-700 { background-color: #404040 !important; }
53
- .theme-switch {
54
- background: none;
55
- border: none;
56
- cursor: pointer;
57
- color: var(--text-main);
58
- font-size: 24px;
59
- transition: color 0.2s;
60
- padding: 0.5rem; /* Espace autour du bouton */
61
- }
62
- </style>
63
- </head>
64
- <body class="min-h-screen">
65
-
66
- <div class="container mx-auto p-4 sm:p-6 lg:p-8 max-w-7xl">
67
-
68
- <header class="sticky top-0 z-50 flex flex-col sm:flex-row justify-between items-center py-4 border-b border-blue-500/50 mb-8 bg-gray-900" style="background-color: var(--bg-page); transition: background-color 0.3s;">
69
- <a href="/" class="text-4xl font-extrabold text-blue-500 tracking-wider mb-4 sm:mb-0">
70
- NEXUS
71
- </a>
72
- <nav class="flex items-center space-x-4">
73
- <a href="/documentation" class="px-4 py-2 text-white hover:text-blue-300 transition duration-200 font-medium">
74
- Documentation
75
- </a>
76
- <a href="/a-propos" class="px-4 py-2 text-white hover:text-blue-300 transition duration-200 font-medium">
77
- À Propos
78
- </a>
79
-
80
- <button id="theme-toggle" class="theme-switch" aria-label="Basculer le thème">
81
- <span class="material-symbols-rounded">light_mode</span>
82
- </button>
83
-
84
- {% if is_logged_in %}
85
- <a href="/dashboard" class="px-4 py-2 bg-blue-600 border border-blue-600 hover:bg-blue-700 font-medium transition duration-200">
86
- Dashboard
87
- </a>
88
- {% else %}
89
- <a href="/connexion" class="px-4 py-2 bg-blue-600 border border-blue-600 hover:bg-blue-700 font-medium transition duration-200">
90
- Connexion
91
- </a>
92
- {% endif %}
93
- </nav>
94
- </header>
95
-
96
- <main class="space-y-12">
97
-
98
- <section class="text-center p-8 bg-gray-800/50 shadow-lg">
99
- <h1 class="text-5xl font-extrabold text-white mb-4 leading-tight">
100
- Plans de Tarification
101
- </h1>
102
- <p class="text-xl text-gray-300 max-w-3xl mx-auto">
103
- Sécurité robuste et évolutive. Choisissez le plan adapté à votre nombre d'utilisateurs.
104
- </p>
105
-
106
- <div class="mt-8 flex justify-center">
107
- <div class="inline-flex bg-gray-700 p-1">
108
- <button id="monthly-btn" class="px-6 py-2 text-sm font-semibold bg-blue-600 text-white shadow-md transition duration-200">
109
- Mensuel
110
- </button>
111
- <button id="annual-btn" class="px-6 py-2 text-sm font-semibold text-gray-300 hover:text-white transition duration-200">
112
- Annuel (Économisez ~17%)
113
- </button>
114
- </div>
115
- </div>
116
-
117
- </section>
118
-
119
- <div class="grid pricing-grid gap-8">
120
-
121
- <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-teal-300 flex flex-col">
122
- <h2 class="text-2xl font-bold text-teal-400 mb-2">Développeur</h2>
123
- <p class="text-gray-400 mb-6 text-sm">Tests et prototypes.</p>
124
-
125
- <div class="text-4xl font-extrabold text-white mb-8">
126
- 0<span class="text-xl text-gray-400 price-unit"> €/mois</span>
127
- </div>
128
-
129
- <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
130
- Jusqu'à 500 Comptes Utilisateurs
131
- </div>
132
-
133
- <ul class="space-y-3 flex-grow text-sm">
134
- <li class="flex items-start text-gray-300">
135
- <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
136
- Authentification Sécurisée (API & URL)
137
- </li>
138
- <li class="flex items-start text-gray-300">
139
- <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
140
- Logs d'activité de base
141
- </li>
142
- <li class="flex items-start text-gray-300">
143
- <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
144
- Support par email communautaire
145
- </li>
146
- </ul>
147
-
148
- <a href="/inscription" class="mt-8 block text-center px-6 py-3 bg-teal-600 text-white text-lg font-bold shadow-md hover:bg-teal-700 transition duration-300">
149
- Commencer Gratuitement
150
- </a>
151
- </div>
152
-
153
- <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-yellow-500 flex flex-col">
154
- <h2 class="text-2xl font-bold text-yellow-400 mb-2">Standard</h2>
155
- <p class="text-gray-400 mb-6 text-sm">Premier pas vers la production.</p>
156
-
157
- <div class="text-4xl font-extrabold text-white mb-8">
158
- <span class="monthly-price">5</span><span class="annual-price hidden">50</span><span class="text-xl text-gray-400 price-unit"> €/mois</span>
159
- </div>
160
-
161
- <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
162
- Jusqu'à 1 000 Comptes Utilisateurs
163
- </div>
164
-
165
- <ul class="space-y-3 flex-grow text-sm">
166
- <li class="flex items-start text-gray-300">
167
- <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
168
- Authentification Sécurisée
169
- </li>
170
- <li class="flex items-start text-gray-300">
171
- <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
172
- Logs d'activité avancés
173
- </li>
174
- <li class="flex items-start text-gray-300">
175
- <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
176
- Support par email standard (24-48h)
177
- </li>
178
- <li class="flex items-start text-gray-300">
179
- <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
180
- Option de dépassement ($/100 comptes)
181
- </li>
182
- </ul>
183
-
184
- <a href="/profile/upgrade" class="mt-8 block text-center px-6 py-3 bg-yellow-600 text-white text-lg font-bold shadow-md hover:bg-yellow-700 transition duration-300">
185
- Choisir Standard
186
- </a>
187
- </div>
188
-
189
- <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-blue-500 flex flex-col relative">
190
- <span class="absolute top-0 right-0 -mt-3 -mr-3 bg-indigo-500 text-white font-bold py-1 px-3 shadow-lg text-xs">POPULAIRE</span>
191
- <h2 class="text-2xl font-bold text-blue-400 mb-2">Professionnel</h2>
192
- <p class="text-gray-400 mb-6 text-sm">Croissance et haute disponibilité.</p>
193
-
194
- <div class="text-4xl font-extrabold text-white mb-8">
195
- <span class="monthly-price">10</span><span class="annual-price hidden">100</span><span class="text-xl text-gray-400 price-unit"> €/mois</span>
196
- </div>
197
-
198
- <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
199
- Jusqu'à 2 000 Comptes Utilisateurs
200
- </div>
201
-
202
- <ul class="space-y-3 flex-grow text-sm">
203
- <li class="flex items-start text-gray-300">
204
- <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
205
- Monitoring et Alertes en Temps Réel
206
- </li>
207
- <li class="flex items-start text-gray-300">
208
- <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
209
- Logs API Détaillés (Accès à `/api-logs`)
210
- </li>
211
- <li class="flex items-start text-gray-300">
212
- <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
213
- Support Prioritaire (24h)
214
- </li>
215
- <li class="flex items-start text-gray-300">
216
- <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
217
- Option de dépassement ($/100 comptes)
218
- </li>
219
- </ul>
220
-
221
- <a href="/profile/upgrade" class="mt-8 block text-center px-6 py-3 bg-blue-600 text-white text-lg font-bold shadow-md hover:bg-blue-700 transition duration-300">
222
- Passer au Plan Pro
223
- </a>
224
- </div>
225
-
226
- <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-red-500 flex flex-col">
227
- <h2 class="text-2xl font-bold text-red-400 mb-2">Entreprise</h2>
228
- <p class="text-gray-400 mb-6 text-sm">Solutions haut de gamme et grandes équipes.</p>
229
-
230
- <div class="text-4xl font-extrabold text-white mb-8">
231
- <span class="monthly-price">Sur Devis</span>
232
- </div>
233
-
234
- <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
235
- Comptes Utilisateurs Illimités
236
- </div>
237
-
238
- <ul class="space-y-3 flex-grow text-sm">
239
- <li class="flex items-start text-gray-300">
240
- <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
241
- Garantie de Niveau de Service (SLA)
242
- </li>
243
- <li class="flex items-start text-gray-300">
244
- <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
245
- Authentification Unique (SSO)
246
- </li>
247
- <li class="flex items-start text-gray-300">
248
- <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
249
- Gestion des Accès Privilégiés
250
- </li>
251
- <li class="flex items-start text-gray-300">
252
- <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
253
- Support Dédicacé 24/7
254
- </li>
255
- </ul>
256
-
257
- <a href="/contact" class="mt-8 block text-center px-6 py-3 bg-red-600 text-white text-lg font-bold shadow-md hover:bg-red-700 transition duration-300">
258
- Contacter les Ventes
259
- </a>
260
- </div>
261
- </div>
262
-
263
- </main>
264
-
265
- <footer class="mt-12 pt-6 border-t border-gray-700 text-center text-gray-500 text-sm">
266
- &copy; 2025 Nexus. Tarifs et Plans de Service.
267
- </footer>
268
- </div>
269
-
270
- <script>
271
- const monthlyBtn = document.getElementById('monthly-btn');
272
- const annualBtn = document.getElementById('annual-btn');
273
- const monthlyPrices = document.querySelectorAll('.monthly-price');
274
- const annualPrices = document.querySelectorAll('.annual-price');
275
- const priceUnits = document.querySelectorAll('.price-unit');
276
-
277
- // Logique de bascule du mode sombre/clair
278
- const themeToggle = document.getElementById('theme-toggle');
279
- const htmlElement = document.documentElement;
280
- const iconElement = themeToggle.querySelector('.material-symbols-rounded');
281
-
282
- // Charger le thème depuis le localStorage
283
- const savedTheme = localStorage.getItem('theme');
284
- if (savedTheme === 'light') {
285
- htmlElement.classList.remove('dark');
286
- htmlElement.classList.add('light');
287
- iconElement.textContent = 'dark_mode';
288
- } else {
289
- // Dark mode par défaut si rien n'est sauvegardé ou 'dark'
290
- htmlElement.classList.add('dark');
291
- htmlElement.classList.remove('light');
292
- iconElement.textContent = 'light_mode';
293
- }
294
-
295
- themeToggle.addEventListener('click', () => {
296
- if (htmlElement.classList.contains('light')) {
297
- htmlElement.classList.remove('light');
298
- htmlElement.classList.add('dark');
299
- localStorage.setItem('theme', 'dark');
300
- iconElement.textContent = 'light_mode';
301
- } else {
302
- htmlElement.classList.add('light');
303
- htmlElement.classList.remove('dark');
304
- localStorage.setItem('theme', 'light');
305
- iconElement.textContent = 'dark_mode';
306
- }
307
- });
308
-
309
-
310
- // Fonction pour mettre à jour l'affichage des tarifs
311
- function updatePricing(isAnnual) {
312
- monthlyBtn.classList.remove('bg-blue-600', 'text-white');
313
- monthlyBtn.classList.add('text-gray-300', 'hover:text-white');
314
- annualBtn.classList.remove('bg-blue-600', 'text-white');
315
- annualBtn.classList.add('text-gray-300', 'hover:text-white');
316
-
317
- if (isAnnual) {
318
- annualBtn.classList.add('bg-blue-600', 'text-white');
319
- annualBtn.classList.remove('text-gray-300', 'hover:text-white');
320
- monthlyPrices.forEach(el => el.classList.add('hidden'));
321
- annualPrices.forEach(el => el.classList.remove('hidden'));
322
- priceUnits.forEach(el => el.textContent = ' €/an');
323
- // Gérer le cas du plan Développeur
324
- document.querySelector('.pricing-grid > div:first-child .price-unit').textContent = ' €/an';
325
-
326
- } else {
327
- monthlyBtn.classList.add('bg-blue-600', 'text-white');
328
- monthlyBtn.classList.remove('text-gray-300', 'hover:text-white');
329
- monthlyPrices.forEach(el => el.classList.remove('hidden'));
330
- annualPrices.forEach(el => el.classList.add('hidden'));
331
- priceUnits.forEach(el => el.textContent = ' €/mois');
332
- // Gérer le cas du plan Développeur
333
- document.querySelector('.pricing-grid > div:first-child .price-unit').textContent = ' €/mois';
334
- }
335
- // Gérer le prix "Sur Devis" du plan Entreprise
336
- document.querySelector('.pricing-grid > div:last-child .price-unit').textContent = '';
337
- }
338
-
339
- // Événements Tarification
340
- monthlyBtn.addEventListener('click', () => updatePricing(false));
341
- annualBtn.addEventListener('click', () => updatePricing(true));
342
-
343
- // Initialisation Tarification au chargement
344
- updatePricing(false);
345
- </script>
346
-
347
- <footer class="mt-16 border-t border-gray-700 bg-gray-900" style="background-color: var(--bg-card); border-color: var(--border-color);">
348
- <div class="container mx-auto p-4 sm:p-6 lg:p-8 max-w-7xl">
349
- <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 text-sm">
350
-
351
- <div class="col-span-2 lg:col-span-1">
352
- <a href="/" class="text-3xl font-extrabold text-blue-500 tracking-wider">NEXUS</a>
353
- <p class="mt-3 text-gray-400">
354
- L'infrastructure API qui propulse votre avenir technologique.
355
- </p>
356
- <div class="mt-4 flex space-x-4">
357
- <a href="#" class="text-gray-400 hover:text-blue-500 transition duration-200">
358
- <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.014 4.85.07c3.275.146 4.47 1.583 4.61 4.85.056 1.266.07 1.646.07 4.85s-.014 3.584-.07 4.85c-.14 3.267-1.335 4.704-4.61 4.85-1.266.056-1.646.07-4.85.07s-3.584-.014-4.85-.07c-3.275-.146-4.47-1.583-4.61-4.85-.056-1.266-.07-1.646-.07-4.85s.014-3.584.07-4.85c.14-3.267 1.335-4.704 4.61-4.85 1.266-.056 1.646-.07 4.85-.07zM12 0c-3.784 0-4.285.016-5.773.083-4.722.211-6.755 2.24-6.965 6.965C.016 7.715 0 8.216 0 12s.016 4.285.083 5.773c.21 4.721 2.239 6.755 6.965 6.965 1.488.067 1.99.083 5.773.083s4.285-.016 5.773-.083c4.721-.21 6.755-2.239 6.965-6.965.067-1.488.083-1.99.083-5.773s-.016-4.285-.083-5.773c-.21-4.722-2.239-6.755-6.965-6.965C16.285.016 15.784 0 12 0zm0 14.5c-1.381 0-2.5-1.119-2.5-2.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5-1.119 2.5-2.5 2.5z"/></svg>
359
- </a>
360
- </div>
361
- </div>
362
-
363
- <div>
364
- <h3 class="text-lg font-semibold text-white mb-4">Plateforme</h3>
365
- <ul class="space-y-3 text-gray-400">
366
- <li><a href="/tarifs" class="hover:text-blue-500 transition duration-200">Tarifs</a></li>
367
- <li><a href="/documentation" class="hover:text-blue-500 transition duration-200">Documentation</a></li>
368
- <li><a href="/connexion" class="hover:text-blue-500 transition duration-200">Connexion</a></li>
369
- <li><a href="/support" class="hover:text-blue-500 transition duration-200">Support</a></li>
370
- </ul>
371
- </div>
372
-
373
- <div>
374
- <h3 class="text-lg font-semibold text-white mb-4">Légal</h3>
375
- <ul class="space-y-3 text-gray-400">
376
- <li><a href="/politique-confidentialite" class="hover:text-blue-500 transition duration-200">Politique de Confidentialité</a></li>
377
- <li><a href="/mentions-legales" class="hover:text-blue-500 transition duration-200">Mentions Légales</a></li>
378
- <li><a href="/conditions-utilisation" class="hover:text-blue-500 transition duration-200">Conditions d'Utilisation</a></li>
379
- <li><a href="/a-propos" class="hover:text-blue-500 transition duration-200">À Propos</a></li>
380
- </ul>
381
- </div>
382
-
383
- <div class="col-span-2 md:col-span-1">
384
- <h3 class="text-lg font-semibold text-white mb-4">Ressources</h3>
385
- <ul class="space-y-3 text-gray-400">
386
- <li><a href="mailto:support@nexus.com" class="hover:text-blue-500 transition duration-200">Contact Email</a></li>
387
- <li><a href="/dashboard" class="hover:text-blue-500 transition duration-200">Espace Client</a></li>
388
- <li><a href="/api-logs" class="hover:text-blue-500 transition duration-200">Statut API</a></li>
389
- </ul>
390
- </div>
391
-
392
- </div>
393
-
394
- <div class="mt-10 pt-6 border-t border-gray-800 text-center text-gray-500 text-sm" style="border-color: var(--border-color);">
395
- &copy; 2024 Nexus. Tous droits réservés. Construit pour l'ère des microservices.
396
- </div>
397
- </div>
398
- </footer>
399
-
400
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="fr" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" type="image/png" href="https://i.imgur.com/7Gn3toV.png">
7
+ <title>Tarifs - Nexus Pro</title>
8
+ <link rel="stylesheet"
9
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0" />
10
+ <script src="https://cdn.tailwindcss.com"></script>
11
+ <style>
12
+ /* Assure une meilleure compatibilité responsive pour la grille */
13
+ .pricing-grid {
14
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
15
+ }
16
+
17
+ /* Variables de Thème - Couleurs Noir Foncé (Mode Sombre par défaut) */
18
+ :root, html.dark {
19
+ --bg-page: #181818; /* Noir très foncé, pas de bleu marine */
20
+ --bg-card: #282828;
21
+ --text-main: #EAEAEA;
22
+ --text-secondary: #B0B0B0;
23
+ --border-color: #404040;
24
+ --shadow-color: rgba(0, 0, 0, 0.5);
25
+ }
26
+
27
+ /* Mode Clair */
28
+ html.light {
29
+ --bg-page: #F5F5F5;
30
+ --bg-card: #FFFFFF;
31
+ --text-main: #202020;
32
+ --text-secondary: #5C5C5C;
33
+ --border-color: #E0E0E0;
34
+ --shadow-color: rgba(0, 0, 0, 0.1);
35
+ }
36
+
37
+ /* Application des variables */
38
+ body {
39
+ background-color: var(--bg-page);
40
+ color: var(--text-main);
41
+ transition: background-color 0.3s, color 0.3s;
42
+ }
43
+
44
+ .bg-gray-900 { background-color: var(--bg-page) !important; }
45
+ .text-white { color: var(--text-main) !important; }
46
+ .bg-gray-800, .bg-gray-800\/50 {
47
+ background-color: var(--bg-card) !important;
48
+ box-shadow: 0 4px 6px -1px var(--shadow-color), 0 2px 4px -2px var(--shadow-color);
49
+ }
50
+ .text-gray-400 { color: var(--text-secondary) !important; }
51
+ .border-gray-700, .border-gray-800 { border-color: var(--border-color) !important; }
52
+ .text-gray-300 { color: var(--text-secondary) !important; } /* Utilisation de la même couleur pour uniformité */
53
+ .bg-gray-700 { background-color: #404040 !important; }
54
+ .theme-switch {
55
+ background: none;
56
+ border: none;
57
+ cursor: pointer;
58
+ color: var(--text-main);
59
+ font-size: 24px;
60
+ transition: color 0.2s;
61
+ padding: 0.5rem; /* Espace autour du bouton */
62
+ }
63
+ </style>
64
+ </head>
65
+ <body class="min-h-screen">
66
+
67
+ <div class="container mx-auto p-4 sm:p-6 lg:p-8 max-w-7xl">
68
+
69
+ <header class="sticky top-0 z-50 flex flex-col sm:flex-row justify-between items-center py-4 border-b border-blue-500/50 mb-8 bg-gray-900" style="background-color: var(--bg-page); transition: background-color 0.3s;">
70
+ <a href="/" class="text-4xl font-extrabold text-blue-500 tracking-wider mb-4 sm:mb-0">
71
+ NEXUS
72
+ </a>
73
+ <nav class="flex items-center space-x-4">
74
+ <a href="/documentation" class="px-4 py-2 text-white hover:text-blue-300 transition duration-200 font-medium">
75
+ Documentation
76
+ </a>
77
+ <a href="/a-propos" class="px-4 py-2 text-white hover:text-blue-300 transition duration-200 font-medium">
78
+ À Propos
79
+ </a>
80
+
81
+ <button id="theme-toggle" class="theme-switch" aria-label="Basculer le thème">
82
+ <span class="material-symbols-rounded">light_mode</span>
83
+ </button>
84
+
85
+ {% if is_logged_in %}
86
+ <a href="/dashboard" class="px-4 py-2 bg-blue-600 border border-blue-600 hover:bg-blue-700 font-medium transition duration-200">
87
+ Dashboard
88
+ </a>
89
+ {% else %}
90
+ <a href="/connexion" class="px-4 py-2 bg-blue-600 border border-blue-600 hover:bg-blue-700 font-medium transition duration-200">
91
+ Connexion
92
+ </a>
93
+ {% endif %}
94
+ </nav>
95
+ </header>
96
+
97
+ <main class="space-y-12">
98
+
99
+ <section class="text-center p-8 bg-gray-800/50 shadow-lg">
100
+ <h1 class="text-5xl font-extrabold text-white mb-4 leading-tight">
101
+ Plans de Tarification
102
+ </h1>
103
+ <p class="text-xl text-gray-300 max-w-3xl mx-auto">
104
+ Sécurité robuste et évolutive. Choisissez le plan adapté à votre nombre d'utilisateurs.
105
+ </p>
106
+
107
+ <div class="mt-8 flex justify-center">
108
+ <div class="inline-flex bg-gray-700 p-1 rounded-full shadow-inner">
109
+ <button id="monthly-btn" class="px-6 py-2 text-sm font-semibold bg-blue-600 text-white shadow-md transition duration-200 rounded-full">
110
+ Mensuel
111
+ </button>
112
+ <button id="annual-btn" class="px-6 py-2 text-sm font-semibold text-gray-300 hover:text-white transition duration-200 rounded-full relative">
113
+ Annuel
114
+ <span class="ml-2 px-2 py-0.5 bg-yellow-500 text-black text-xs font-bold rounded-full">
115
+ ÉCONOMISEZ ~17%
116
+ </span>
117
+ </button>
118
+ </div>
119
+ </div>
120
+
121
+ </section>
122
+
123
+ <div class="grid pricing-grid gap-8">
124
+
125
+ <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-teal-300 flex flex-col">
126
+ <h2 class="text-2xl font-bold text-teal-400 mb-2">Développeur</h2>
127
+ <p class="text-gray-400 mb-6 text-sm">Tests et prototypes.</p>
128
+
129
+ <div class="text-4xl font-extrabold text-white mb-8">
130
+ 0<span class="text-xl text-gray-400 price-unit"> €/mois</span>
131
+ </div>
132
+
133
+ <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
134
+ Jusqu'à 500 Comptes Utilisateurs
135
+ </div>
136
+
137
+ <ul class="space-y-3 flex-grow text-sm">
138
+ <li class="flex items-start text-gray-300">
139
+ <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
140
+ Authentification Sécurisée (API & URL)
141
+ </li>
142
+ <li class="flex items-start text-gray-300">
143
+ <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
144
+ Logs d'activité de base
145
+ </li>
146
+ <li class="flex items-start text-gray-300">
147
+ <svg class="w-5 h-5 text-teal-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
148
+ Support par email communautaire
149
+ </li>
150
+ </ul>
151
+
152
+ <a href="/inscription" class="mt-8 block text-center px-6 py-3 bg-teal-600 text-white text-lg font-bold shadow-md hover:bg-teal-700 transition duration-300 plan-button" data-plan="developer">
153
+ Commencer Gratuitement
154
+ </a>
155
+ </div>
156
+
157
+ <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-yellow-500 flex flex-col">
158
+ <h2 class="text-2xl font-bold text-yellow-400 mb-2">Standard</h2>
159
+ <p class="text-gray-400 mb-6 text-sm">Premier pas vers la production.</p>
160
+
161
+ <div class="text-4xl font-extrabold text-white mb-8">
162
+ <span class="monthly-price" data-price="5">5</span>
163
+ <span class="annual-price hidden" data-price="50">50</span>
164
+ <span class="text-xl text-gray-400 price-unit"> €/mois</span>
165
+ </div>
166
+
167
+ <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
168
+ Jusqu'à 1 000 Comptes Utilisateurs
169
+ </div>
170
+
171
+ <ul class="space-y-3 flex-grow text-sm">
172
+ <li class="flex items-start text-gray-300">
173
+ <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
174
+ Authentification Sécurisée
175
+ </li>
176
+ <li class="flex items-start text-gray-300">
177
+ <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
178
+ Logs d'activité avancés
179
+ </li>
180
+ <li class="flex items-start text-gray-300">
181
+ <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
182
+ Support par email standard (24-48h)
183
+ </li>
184
+ <li class="flex items-start text-gray-300">
185
+ <svg class="w-5 h-5 text-yellow-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
186
+ Option de dépassement ($/100 comptes)
187
+ </li>
188
+ </ul>
189
+
190
+ <a href="/checkout?plan=standard_monthly" class="mt-8 block text-center px-6 py-3 bg-yellow-600 text-white text-lg font-bold shadow-md hover:bg-yellow-700 transition duration-300 plan-button" data-plan="standard">
191
+ Choisir Standard
192
+ </a>
193
+ </div>
194
+
195
+ <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-blue-500 flex flex-col relative">
196
+ <span class="absolute top-0 right-0 -mt-3 -mr-3 bg-indigo-500 text-white font-bold py-1 px-3 shadow-lg text-xs">POPULAIRE</span>
197
+ <h2 class="text-2xl font-bold text-blue-400 mb-2">Professionnel</h2>
198
+ <p class="text-gray-400 mb-6 text-sm">Croissance et haute disponibilité.</p>
199
+
200
+ <div class="text-4xl font-extrabold text-white mb-8">
201
+ <span class="monthly-price" data-price="10">10</span>
202
+ <span class="annual-price hidden" data-price="100">100</span>
203
+ <span class="text-xl text-gray-400 price-unit"> €/mois</span>
204
+ </div>
205
+
206
+ <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
207
+ Jusqu'à 2 000 Comptes Utilisateurs
208
+ </div>
209
+
210
+ <ul class="space-y-3 flex-grow text-sm">
211
+ <li class="flex items-start text-gray-300">
212
+ <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
213
+ Monitoring et Alertes en Temps Réel
214
+ </li>
215
+ <li class="flex items-start text-gray-300">
216
+ <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
217
+ Logs API Détaillés (Accès à `/api-logs`)
218
+ </li>
219
+ <li class="flex items-start text-gray-300">
220
+ <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
221
+ Support Prioritaire (24h)
222
+ </li>
223
+ <li class="flex items-start text-gray-300">
224
+ <svg class="w-5 h-5 text-blue-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
225
+ Option de dépassement ($/100 comptes)
226
+ </li>
227
+ </ul>
228
+
229
+ <a href="/checkout?plan=professional_monthly" class="mt-8 block text-center px-6 py-3 bg-blue-600 text-white text-lg font-bold shadow-md hover:bg-blue-700 transition duration-300 plan-button" data-plan="professional">
230
+ Passer au Plan Pro
231
+ </a>
232
+ </div>
233
+
234
+ <div class="bg-gray-800 p-6 shadow-2xl border-t-4 border-red-500 flex flex-col">
235
+ <h2 class="text-2xl font-bold text-red-400 mb-2">Entreprise</h2>
236
+ <p class="text-gray-400 mb-6 text-sm">Solutions haut de gamme et grandes équipes.</p>
237
+
238
+ <div class="text-4xl font-extrabold text-white mb-8">
239
+ <span class="monthly-price" data-price="Sur Devis">Sur Devis</span>
240
+ <span class="annual-price hidden" data-price="Sur Devis">Sur Devis</span>
241
+ <span class="text-xl text-gray-400 price-unit"></span>
242
+ </div>
243
+
244
+ <div class="text-lg font-semibold text-white mb-4 border-b border-gray-700 pb-2">
245
+ Comptes Utilisateurs Illimités
246
+ </div>
247
+
248
+ <ul class="space-y-3 flex-grow text-sm">
249
+ <li class="flex items-start text-gray-300">
250
+ <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
251
+ Garantie de Niveau de Service (SLA)
252
+ </li>
253
+ <li class="flex items-start text-gray-300">
254
+ <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
255
+ Authentification Unique (SSO)
256
+ </li>
257
+ <li class="flex items-start text-gray-300">
258
+ <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
259
+ Gestion des Accès Privilégiés
260
+ </li>
261
+ <li class="flex items-start text-gray-300">
262
+ <svg class="w-5 h-5 text-red-500 mr-2 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
263
+ Support Dédicacé 24/7
264
+ </li>
265
+ </ul>
266
+
267
+ <a href="/contact" class="mt-8 block text-center px-6 py-3 bg-red-600 text-white text-lg font-bold shadow-md hover:bg-red-700 transition duration-300 plan-button" data-plan="enterprise">
268
+ Contacter les Ventes
269
+ </a>
270
+ </div>
271
+ </div>
272
+
273
+ </main>
274
+
275
+ <footer class="mt-12 pt-6 border-t border-gray-700 text-center text-gray-500 text-sm">
276
+ &copy; 2025 Nexus. Tarifs et Plans de Service.
277
+ </footer>
278
+ </div>
279
+
280
+ <script>
281
+ const monthlyBtn = document.getElementById('monthly-btn');
282
+ const annualBtn = document.getElementById('annual-btn');
283
+ const monthlyPrices = document.querySelectorAll('.monthly-price');
284
+ const annualPrices = document.querySelectorAll('.annual-price');
285
+ const priceUnits = document.querySelectorAll('.price-unit');
286
+ const planButtons = document.querySelectorAll('.plan-button'); // Nouveaux boutons
287
+
288
+ // ... (Logique de bascule du mode sombre/clair - inchangée) ...
289
+ const themeToggle = document.getElementById('theme-toggle');
290
+ const htmlElement = document.documentElement;
291
+ const iconElement = themeToggle.querySelector('.material-symbols-rounded');
292
+
293
+ // Charger le thème depuis le localStorage
294
+ const savedTheme = localStorage.getItem('theme');
295
+ if (savedTheme === 'light') {
296
+ htmlElement.classList.remove('dark');
297
+ htmlElement.classList.add('light');
298
+ iconElement.textContent = 'dark_mode';
299
+ } else {
300
+ // Dark mode par défaut si rien n'est sauvegardé ou 'dark'
301
+ htmlElement.classList.add('dark');
302
+ htmlElement.classList.remove('light');
303
+ iconElement.textContent = 'light_mode';
304
+ }
305
+
306
+ themeToggle.addEventListener('click', () => {
307
+ if (htmlElement.classList.contains('light')) {
308
+ htmlElement.classList.remove('light');
309
+ htmlElement.classList.add('dark');
310
+ localStorage.setItem('theme', 'dark');
311
+ iconElement.textContent = 'light_mode';
312
+ } else {
313
+ htmlElement.classList.add('light');
314
+ htmlElement.classList.remove('dark');
315
+ localStorage.setItem('theme', 'light');
316
+ iconElement.textContent = 'dark_mode';
317
+ }
318
+ });
319
+ // ... (Fin de la logique de bascule du mode sombre/clair) ...
320
+
321
+
322
+ // Fonction pour mettre à jour l'affichage des tarifs et les liens
323
+ function updatePricing(isAnnual) {
324
+
325
+ const period = isAnnual ? '_annual' : '_monthly';
326
+ const unit = isAnnual ? ' €/an' : ' €/mois';
327
+
328
+ // Mise à jour visuelle des boutons Mensuel/Annuel
329
+ monthlyBtn.classList.remove('bg-blue-600', 'text-white');
330
+ monthlyBtn.classList.add('text-gray-300', 'hover:text-white');
331
+ annualBtn.classList.remove('bg-blue-600', 'text-white');
332
+ annualBtn.classList.add('text-gray-300', 'hover:text-white');
333
+
334
+ if (isAnnual) {
335
+ annualBtn.classList.add('bg-blue-600', 'text-white');
336
+ annualBtn.classList.remove('text-gray-300', 'hover:text-white');
337
+ } else {
338
+ monthlyBtn.classList.add('bg-blue-600', 'text-white');
339
+ monthlyBtn.classList.remove('text-gray-300', 'hover:text-white');
340
+ }
341
+
342
+ // Mise à jour des prix et des unités
343
+ monthlyPrices.forEach(el => el.classList.toggle('hidden', isAnnual));
344
+ annualPrices.forEach(el => el.classList.toggle('hidden', !isAnnual));
345
+ priceUnits.forEach(el => el.textContent = unit);
346
+
347
+ // Le plan développeur est toujours gratuit, mais l'unité change
348
+ document.querySelector('.pricing-grid > div:first-child .price-unit').textContent = unit;
349
+
350
+ // Le plan entreprise est "Sur Devis" sans unité
351
+ document.querySelector('.pricing-grid > div:last-child .price-unit').textContent = '';
352
+
353
+ // Mise à jour des liens des boutons
354
+ planButtons.forEach(button => {
355
+ const planType = button.getAttribute('data-plan');
356
+ if (planType === 'developer') {
357
+ button.setAttribute('href', '/inscription'); // Gratuit, lien inchangé
358
+ } else if (planType === 'enterprise') {
359
+ button.setAttribute('href', '/contact'); // Sur Devis, lien inchangé
360
+ } else {
361
+ button.setAttribute('href', `/checkout?plan=${planType}${period}`);
362
+ }
363
+ });
364
+ }
365
+
366
+ // Événements Tarification
367
+ monthlyBtn.addEventListener('click', () => updatePricing(false));
368
+ annualBtn.addEventListener('click', () => updatePricing(true));
369
+
370
+ // Initialisation Tarification au chargement
371
+ updatePricing(false);
372
+ </script>
373
+
374
+ <footer class="mt-16 border-t border-gray-700 bg-gray-900" style="background-color: var(--bg-card); border-color: var(--border-color);">
375
+ <div class="container mx-auto p-4 sm:p-6 lg:p-8 max-w-7xl">
376
+ <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 text-sm">
377
+
378
+ <div class="col-span-2 lg:col-span-1">
379
+ <a href="/" class="text-3xl font-extrabold text-blue-500 tracking-wider">NEXUS</a>
380
+ <p class="mt-3 text-gray-400">
381
+ L'infrastructure API qui propulse votre avenir technologique.
382
+ </p>
383
+ <div class="mt-4 flex space-x-4">
384
+ <a href="#" class="text-gray-400 hover:text-blue-500 transition duration-200">
385
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.014 4.85.07c3.275.146 4.47 1.583 4.61 4.85.056 1.266.07 1.646.07 4.85s-.014 3.584-.07 4.85c-.14 3.267-1.335 4.704-4.61 4.85-1.266.056-1.646.07-4.85.07s-3.584-.014-4.85-.07c-3.275-.146-4.47-1.583-4.61-4.85-.056-1.266-.07-1.646-.07-4.85s.014-3.584.07-4.85c.14-3.267 1.335-4.704 4.61-4.85 1.266-.056 1.646-.07 4.85-.07zM12 0c-3.784 0-4.285.016-5.773.083-4.722.211-6.755 2.24-6.965 6.965C.016 7.715 0 8.216 0 12s.016 4.285.083 5.773c.21 4.721 2.239 6.755 6.965 6.965 1.488.067 1.99.083 5.773.083s4.285-.016 5.773-.083c4.721-.21 6.755-2.239 6.965-6.965.067-1.488.083-1.99.083-5.773s-.016-4.285-.083-5.773c-.21-4.722-2.239-6.755-6.965-6.965C16.285.016 15.784 0 12 0zm0 14.5c-1.381 0-2.5-1.119-2.5-2.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5-1.119 2.5-2.5 2.5z"/></svg>
386
+ </a>
387
+ </div>
388
+ </div>
389
+
390
+ <div>
391
+ <h3 class="text-lg font-semibold text-white mb-4">Plateforme</h3>
392
+ <ul class="space-y-3 text-gray-400">
393
+ <li><a href="/tarifs" class="hover:text-blue-500 transition duration-200">Tarifs</a></li>
394
+ <li><a href="/documentation" class="hover:text-blue-500 transition duration-200">Documentation</a></li>
395
+ <li><a href="/connexion" class="hover:text-blue-500 transition duration-200">Connexion</a></li>
396
+ <li><a href="/support" class="hover:text-blue-500 transition duration-200">Support</a></li>
397
+ </ul>
398
+ </div>
399
+
400
+ <div>
401
+ <h3 class="text-lg font-semibold text-white mb-4">Légal</h3>
402
+ <ul class="space-y-3 text-gray-400">
403
+ <li><a href="/politique-confidentialite" class="hover:text-blue-500 transition duration-200">Politique de Confidentialité</a></li>
404
+ <li><a href="/mentions-legales" class="hover:text-blue-500 transition duration-200">Mentions Légales</a></li>
405
+ <li><a href="/conditions-utilisation" class="hover:text-blue-500 transition duration-200">Conditions d'Utilisation</a></li>
406
+ <li><a href="/a-propos" class="hover:text-blue-500 transition duration-200">À Propos</a></li>
407
+ </ul>
408
+ </div>
409
+
410
+ <div class="col-span-2 md:col-span-1">
411
+ <h3 class="text-lg font-semibold text-white mb-4">Ressources</h3>
412
+ <ul class="space-y-3 text-gray-400">
413
+ <li><a href="mailto:support@nexus.com" class="hover:text-blue-500 transition duration-200">Contact Email</a></li>
414
+ <li><a href="/dashboard" class="hover:text-blue-500 transition duration-200">Espace Client</a></li>
415
+ <li><a href="/api-logs" class="hover:text-blue-500 transition duration-200">Statut API</a></li>
416
+ </ul>
417
+ </div>
418
+
419
+ </div>
420
+
421
+ <div class="mt-10 pt-6 border-t border-gray-800 text-center text-gray-500 text-sm" style="border-color: var(--border-color);">
422
+ &copy; 2025 Nexus. Tous droits réservés. Construit pour l'ère des microservices.
423
+ </div>
424
+ </div>
425
+ </footer>
426
+
427
+ </body>
428
  </html>