ibrahimlasfar commited on
Commit
25c8cd4
·
1 Parent(s): 2566a91

Update chat.html with new CSS styles and fix design

Browse files
Files changed (1) hide show
  1. templates/chat.html +227 -39
templates/chat.html CHANGED
@@ -1,13 +1,14 @@
1
  <!DOCTYPE html>
2
- <html lang="en">
3
  <head>
4
  <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <meta name="description" content="Chat with MGZon Chatbot, an AI-powered tool for coding, analysis, and e-commerce queries. Supports text, image, and audio inputs." />
7
  <meta name="keywords" content="MGZon Chatbot, AI chatbot, code generation, DeepSeek, Gradio, FastAPI, e-commerce, programming, Mark Al-Asfar" />
8
  <meta name="author" content="Mark Al-Asfar" />
9
  <meta name="robots" content="index, follow" />
10
  <title>MGZon Chatbot – AI Assistant</title>
 
11
  <link rel="icon" type="image/x-icon" href="/static/favicon.ico" />
12
  <link rel="apple-touch-icon" href="/static/images/mg.svg" />
13
  <!-- Open Graph -->
@@ -31,46 +32,151 @@
31
  "description": "An AI-powered chatbot for coding, analysis, and e-commerce queries."
32
  }
33
  </script>
34
- <link rel="stylesheet" href="/static/css/style.css">
35
-
36
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css">
37
- <link rel="stylesheet" href="https://unpkg.com/aos@2.3.1/dist/aos.css">
 
 
 
 
 
 
 
 
 
 
 
38
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  </head>
40
- <body>
41
- <div id="mainHeader" style="display: flex; align-items: center; justify-content: center; padding: 20px;">
42
- <img src="/static/images/mg.svg" alt="MGZon Logo" style="width: 100px; margin-bottom: 10px;">
43
- <h1>MGZon Chatbot</h1>
44
- </div>
45
- <div id="chatHeader" style="display: none;" aria-hidden="true">
46
- <div class="chat-title">MGZon Chatbot</div>
47
- <div class="chat-controls">
48
- <button id="homeBtn" aria-label="Home">🏠</button>
49
- <button id="clearBtn" aria-label="Clear Chat">🗑️</button>
 
 
 
 
50
  {% if not user %}
51
- <button id="loginBtn" class="bg-gradient-to-r from-blue-500 to-cyan-600 text-white px-4 py-2 rounded" aria-label="Login">Login</button>
52
  {% endif %}
53
  </div>
54
- </div>
55
- <div id="initialContent" style="text-align: center; padding: 20px;">
56
- <p>A versatile chatbot powered by DeepSeek, GPT-OSS, CLIP, Whisper, and TTS. Type your query, upload images/files, or record audio!</p>
57
- <div class="prompt-item" data-prompt="What's the capital of France?">Capital of France</div>
58
- <div class="prompt-item" data-prompt="Generate a Python script for a simple web server">Python Web Server</div>
59
- </div>
60
- <div class="chat-section">
61
- <div id="chatArea">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  <div id="chatBox" class="flex-col" aria-live="polite"></div>
63
- <div id="messageLimitWarning" class="text-red-500 text-center hidden">You have reached the message limit. Please <a href="/login" class="text-blue-300 underline">login</a> to continue.</div>
64
  </div>
 
65
  <form id="footerForm" class="flex p-3 bg-transparent" autocomplete="off" style="position: relative; margin-top: auto; width: 100%;">
66
- <div id="inputContainer">
67
- <input type="text" id="userInput" placeholder="Ask anything..." required style="word-break:break-word;" />
68
- <div id="rightIconGroup">
69
- <button type="button" id="fileBtn" aria-label="Upload File">📎</button>
 
 
 
 
 
70
  <input type="file" id="fileInput" accept="image/*,.mp3,.wav" style="display: none;" />
71
- <button type="button" id="audioBtn" aria-label="Record Audio">🎤</button>
 
 
 
 
 
 
72
  <input type="file" id="audioInput" accept="audio/*" style="display: none;" />
73
- <button type="submit" id="sendBtn" disabled aria-label="Send">
74
  <svg id="sendIcon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
75
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7-7 7M3 12h11" />
76
  </svg>
@@ -82,14 +188,96 @@
82
  </button>
83
  </div>
84
  </div>
 
 
85
  </form>
86
- <div id="filePreview" class="upload-preview" style="display: none;"></div>
87
- <div id="audioPreview" class="audio-preview" style="display: none;"></div>
88
- </div>
89
- <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/4.0.0/marked.min.js"></script>
90
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
91
- <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
92
- <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  <script src="/static/js/chat.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  </body>
95
  </html>
 
1
  <!DOCTYPE html>
2
+ <html lang="en" class="dark-theme">
3
  <head>
4
  <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
6
  <meta name="description" content="Chat with MGZon Chatbot, an AI-powered tool for coding, analysis, and e-commerce queries. Supports text, image, and audio inputs." />
7
  <meta name="keywords" content="MGZon Chatbot, AI chatbot, code generation, DeepSeek, Gradio, FastAPI, e-commerce, programming, Mark Al-Asfar" />
8
  <meta name="author" content="Mark Al-Asfar" />
9
  <meta name="robots" content="index, follow" />
10
  <title>MGZon Chatbot – AI Assistant</title>
11
+ <link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml" />
12
  <link rel="icon" type="image/x-icon" href="/static/favicon.ico" />
13
  <link rel="apple-touch-icon" href="/static/images/mg.svg" />
14
  <!-- Open Graph -->
 
32
  "description": "An AI-powered chatbot for coding, analysis, and e-commerce queries."
33
  }
34
  </script>
35
+ <!-- Fonts & Styles -->
36
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
37
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet" />
38
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
39
+ <script src="https://cdn.tailwindcss.com"></script>
40
+ <!-- Markdown & Syntax Highlight -->
41
+ <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
42
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css" />
43
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
44
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
45
+ <!-- Animations -->
46
+ <script src="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.js"></script>
47
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aos@2.3.4/dist/aos.css" />
48
+ <!-- Carousel -->
49
+ <script src="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/js/splide.min.js"></script>
50
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/splide@4.1.4/dist/css/splide.min.css" />
51
+ <!-- Smooth Scroll -->
52
+ <script src="https://cdn.jsdelivr.net/npm/locomotive-scroll@4.1.4/dist/locomotive-scroll.min.js"></script>
53
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/locomotive-scroll@4.1.4/dist/locomotive-scroll.min.css" />
54
+ <!-- Project-Specific Styles -->
55
+ <link rel="stylesheet" href="/static/css/animation/style.css" />
56
+ <link rel="stylesheet" href="/static/css/button.css" />
57
+ <link rel="stylesheet" href="/static/css/chat/bubble.css" />
58
+ <link rel="stylesheet" href="/static/css/chat/markdown.css" />
59
+ <link rel="stylesheet" href="/static/css/chat/style.css" />
60
+ <link rel="stylesheet" href="/static/css/footer.css" />
61
+ <link rel="stylesheet" href="/static/css/header.css" />
62
+ <link rel="stylesheet" href="/static/css/icon.css" />
63
+ <link rel="stylesheet" href="/static/css/input.css" />
64
+ <link rel="stylesheet" href="/static/css/logo.css" />
65
+ <link rel="stylesheet" href="/static/css/prompts.css" />
66
+ <link rel="stylesheet" href="/static/css/screen/1200.css" />
67
+ <link rel="stylesheet" href="/static/css/screen/2000.css" />
68
+ <link rel="stylesheet" href="/static/css/screen/320.css" />
69
+ <link rel="stylesheet" href="/static/css/screen/360.css" />
70
+ <link rel="stylesheet" href="/static/css/screen/3840.css" />
71
+ <link rel="stylesheet" href="/static/css/screen/480.css" />
72
+ <link rel="stylesheet" href="/static/css/screen/720.css" />
73
+ <link rel="stylesheet" href="/static/css/screen/7680.css" />
74
+ <link rel="stylesheet" href="/static/css/screen/common.css" />
75
+ <link rel="stylesheet" href="/static/css/style.css" />
76
+ <link rel="stylesheet" href="/static/css/webkit.css" />
77
  </head>
78
+ <body class="min-h-screen flex flex-col bg-gradient-to-br from-gray-900 via-teal-900 to-emerald-900">
79
+ <!-- Main Header -->
80
+ <header class="main-header p-4 flex justify-between items-center">
81
+ <div class="logo flex items-center">
82
+ <img src="/static/images/mg.svg" alt="MGZon Logo" class="w-16 h-16 mr-2 animate-pulse" />
83
+ <h1 class="text-2xl font-bold text-white">MGZon Chatbot</h1>
84
+ </div>
85
+ <div class="flex items-center gap-4">
86
+ <a href="/" class="icon-btn" aria-label="Home" title="Back to Home">
87
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
88
+ <path d="M3 11.5L12 4l9 7.5" />
89
+ <path d="M5 21V11.5h14V21" />
90
+ </svg>
91
+ </a>
92
  {% if not user %}
93
+ <a href="/login" class="bg-gradient-to-r from-blue-500 to-cyan-600 text-white px-4 py-2 rounded font-semibold hover:scale-105 transition-transform">Login</a>
94
  {% endif %}
95
  </div>
96
+ </header>
97
+
98
+ <!-- Chat Header -->
99
+ <header class="chat-header p-3" id="chatHeader" aria-hidden="true">
100
+ <div class="chat-title text-xl font-semibold text-white">MGZon AI Assistant</div>
101
+ <div class="chat-controls flex gap-2">
102
+ <button id="clearBtn" class="icon-btn" aria-label="Clear All Messages" title="Clear All Messages">
103
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
104
+ <path d="M3 6h18" />
105
+ <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />
106
+ <path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" />
107
+ <path d="M10 11v6" />
108
+ <path d="M14 11v6" />
109
+ </svg>
110
+ </button>
111
+ </div>
112
+ </header>
113
+
114
+ <!-- Main Content -->
115
+ <main class="flex-1 flex flex-col max-w-screen-xl w-full mx-auto">
116
+ <div id="initialContent" class="flex flex-col items-center justify-center text-center h-full">
117
+ <div class="title mb-4 gradient-text text-3xl font-bold">
118
+ How can I help you today?
119
+ </div>
120
+ <p class="system text-gray-300 mb-4">
121
+ A versatile chatbot powered by DeepSeek, GPT-OSS, CLIP, Whisper, and TTS.<br>
122
+ Type your query, upload images/files, or record audio!
123
+ </p>
124
+ <!-- Prompts -->
125
+ <div class="prompts w-full max-w-md mx-auto grid gap-2">
126
+ <div class="prompt-item" data-prompt="What's the capital of France?" style="word-break: break-word;">
127
+ <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
128
+ <path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M18.66 18.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M18.66 5.34l1.41-1.41" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
129
+ <circle cx="12" cy="12" r="4" stroke-width="2" />
130
+ </svg>
131
+ <span>What's the capital of France?</span>
132
+ </div>
133
+ <div class="prompt-item" data-prompt="Generate a Python script for a simple web server" style="word-break: break-word;">
134
+ <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
135
+ <path d="M4 7h16M4 12h16M4 17h16" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
136
+ </svg>
137
+ <span>Generate a Python script for a simple web server</span>
138
+ </div>
139
+ <div class="prompt-item" data-prompt="Analyze this image for me" style="word-break: break-word;">
140
+ <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
141
+ <path d="M3 12h18M12 3v18" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
142
+ </svg>
143
+ <span>Analyze this image for me</span>
144
+ </div>
145
+ <div class="prompt-item" data-prompt="Convert this text to audio" style="word-break: break-word;">
146
+ <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
147
+ <path d="M12 3v18M7 12h10" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
148
+ </svg>
149
+ <span>Convert this text to audio</span>
150
+ </div>
151
+ </div>
152
+ <div id="messageLimitWarning" class="text-red-500 text-center hidden mt-4">
153
+ You have reached the message limit. Please <a href="/login" class="text-blue-300 underline">login</a> to continue.
154
+ </div>
155
+ </div>
156
+ <div id="chatArea" class="flex-1 hidden" aria-live="polite">
157
  <div id="chatBox" class="flex-col" aria-live="polite"></div>
 
158
  </div>
159
+ <!-- Footer Form -->
160
  <form id="footerForm" class="flex p-3 bg-transparent" autocomplete="off" style="position: relative; margin-top: auto; width: 100%;">
161
+ <div id="inputContainer" class="w-full">
162
+ <input type="text" id="userInput" placeholder="Ask anything..." required style="word-break: break-word;" />
163
+ <div id="rightIconGroup" class="flex gap-2">
164
+ <button type="button" id="fileBtn" class="icon-btn" aria-label="Upload File" title="Upload File">
165
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
166
+ <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
167
+ <path d="M14 2v6h6" />
168
+ </svg>
169
+ </button>
170
  <input type="file" id="fileInput" accept="image/*,.mp3,.wav" style="display: none;" />
171
+ <button type="button" id="audioBtn" class="icon-btn" aria-label="Record Audio" title="Record Audio">
172
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg">
173
+ <path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" />
174
+ <path d="M19 10v2a7 7 0 0 1-14 0v-2" />
175
+ <path d="M12 19v4" />
176
+ </svg>
177
+ </button>
178
  <input type="file" id="audioInput" accept="audio/*" style="display: none;" />
179
+ <button type="submit" id="sendBtn" class="icon-btn" disabled aria-label="Send" title="Send">
180
  <svg id="sendIcon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
181
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7-7 7M3 12h11" />
182
  </svg>
 
188
  </button>
189
  </div>
190
  </div>
191
+ <div id="filePreview" class="upload-preview" style="display: none;"></div>
192
+ <div id="audioPreview" class="audio-preview" style="display: none;"></div>
193
  </form>
194
+ </main>
195
+
196
+ <!-- Footer -->
197
+ <footer class="bg-gradient-to-r from-teal-900 to-emerald-900 py-12 w-full">
198
+ <div class="container max-w-6xl mx-auto text-center">
199
+ <img src="/static/images/mg.svg" alt="MGZon Logo" class="w-24 h-24 mx-auto mb-6 animate-pulse">
200
+ <p class="mb-4">
201
+ Developed by <a href="https://mark-elasfar.web.app/" target="_blank" class="text-emerald-300 hover:underline">Mark Al-Asfar</a>
202
+ | Powered by <a href="https://hager-zon.vercel.app/" target="_blank" class="text-emerald-300 hover:underline">MGZon AI</a>
203
+ </p>
204
+ <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6">
205
+ <div class="glass p-4 cursor-pointer" onclick="showCardDetails('email')">
206
+ <i class="bx bx-mail-send text-3xl text-emerald-300 mb-2"></i>
207
+ <h4 class="font-semibold mb-1">Email Us</h4>
208
+ <p><a href="mailto:support@mgzon.com" class="text-emerald-300 hover:underline">support@mgzon.com</a></p>
209
+ <div id="email-details" class="hidden mt-4 p-4 bg-gray-700/80 rounded-lg">
210
+ <p>Reach out to our support team for any inquiries or assistance.</p>
211
+ <button onclick="closeCardDetails('email')" class="bg-emerald-500 text-white px-4 py-2 rounded-lg mt-2">Close</button>
212
+ </div>
213
+ </div>
214
+ <div class="glass p-4 cursor-pointer" onclick="showCardDetails('phone')">
215
+ <i class="bx bx-phone text-3xl text-emerald-300 mb-2"></i>
216
+ <h4 class="font-semibold mb-1">Phone Support</h4>
217
+ <p>+1-800-123-4567</p>
218
+ <div id="phone-details" class="hidden mt-4 p-4 bg-gray-700/80 rounded-lg">
219
+ <p>Contact our support team via phone for immediate assistance.</p>
220
+ <button onclick="closeCardDetails('phone')" class="bg-emerald-500 text-white px-4 py-2 rounded-lg mt-2">Close</button>
221
+ </div>
222
+ </div>
223
+ <div class="glass p-4 cursor-pointer" onclick="showCardDetails('community')">
224
+ <i class="bx bx-group text-3xl text-emerald-300 mb-2"></i>
225
+ <h4 class="font-semibold mb-1">Community</h4>
226
+ <p><a href="https://hager-zon.vercel.app/community" class="text-emerald-300 hover:underline">Join us</a></p>
227
+ <div id="community-details" class="hidden mt-4 p-4 bg-gray-700/80 rounded-lg">
228
+ <p>Join our vibrant community to share ideas and collaborate.</p>
229
+ <button onclick="closeCardDetails('community')" class="bg-emerald-500 text-white px-4 py-2 rounded-lg mt-2">Close</button>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ <div class="flex justify-center gap-6 mt-6">
234
+ <a href="https://github.com/Mark-Lasfar/MGZon" class="text-2xl text-white hover:text-emerald-300 transition"><i class="bx bxl-github"></i></a>
235
+ <a href="https://x.com/MGZon" class="text-2xl text-white hover:text-emerald-300 transition"><i class="bx bxl-twitter"></i></a>
236
+ <a href="https://www.facebook.com/people/Mark-Al-Asfar/pfbid02GMisUQ8AqWkNZjoKtWFHH1tbdHuVscN1cjcFnZWy9HkRaAsmanBfT6mhySAyqpg4l/" class="text-2xl text-white hover:text-emerald-300 transition"><i class="bx bxl-facebook"></i></a>
237
+ </div>
238
+ <p class="mt-6">© 2025 Mark Al-Asfar & MGZon AI. All rights reserved.</p>
239
+ </div>
240
+ </footer>
241
+
242
+ <!-- Scripts -->
243
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
244
  <script src="/static/js/chat.js"></script>
245
+ <script>
246
+ AOS.init();
247
+ document.addEventListener('DOMContentLoaded', () => {
248
+ const prompts = document.querySelectorAll('.prompt-item');
249
+ prompts.forEach(prompt => {
250
+ prompt.addEventListener('click', () => {
251
+ document.getElementById('userInput').value = prompt.getAttribute('data-prompt');
252
+ document.getElementById('footerForm').dispatchEvent(new Event('submit'));
253
+ });
254
+ });
255
+ document.getElementById('homeBtn').addEventListener('click', () => {
256
+ window.location.href = '/';
257
+ });
258
+ document.getElementById('clearBtn').addEventListener('click', () => {
259
+ document.getElementById('chatBox').innerHTML = '';
260
+ document.getElementById('initialContent').classList.remove('hidden');
261
+ document.getElementById('chatArea').classList.add('hidden');
262
+ });
263
+ document.getElementById('fileBtn').addEventListener('click', () => {
264
+ document.getElementById('fileInput').click();
265
+ });
266
+ document.getElementById('audioBtn').addEventListener('click', () => {
267
+ document.getElementById('audioInput').click();
268
+ });
269
+ {% if not user %}
270
+ document.getElementById('loginBtn').addEventListener('click', () => {
271
+ window.location.href = '/login';
272
+ });
273
+ {% endif %}
274
+ function showCardDetails(cardId) {
275
+ document.getElementById(`${cardId}-details`).classList.remove('hidden');
276
+ }
277
+ function closeCardDetails(cardId) {
278
+ document.getElementById(`${cardId}-details`).classList.add('hidden');
279
+ }
280
+ });
281
+ </script>
282
  </body>
283
  </html>