Ko-TTS-Arena Contributors Claude Opus 4.5 commited on
Commit
58b72ea
·
1 Parent(s): 34ec563

Improve UI design with modern sophisticated styling

Browse files

- Add Pretendard font for better Korean typography
- Update color palette with gradient primary colors
- Add glassmorphism effect to sidebar and main content
- Improve button styles with hover animations
- Add smooth transitions and shadows
- Update dark mode with better colors
- Improve player card and vote button styling
- Add subtle backdrop blur effects

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Files changed (2) hide show
  1. templates/arena.html +73 -59
  2. templates/base.html +143 -63
templates/arena.html CHANGED
@@ -108,16 +108,17 @@
108
  .input-group {
109
  display: flex;
110
  width: 100%;
111
- border-radius: 12px;
112
  border: 2px solid var(--border-color);
113
  overflow: hidden;
114
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
115
- transition: all 0.3s ease;
 
116
  }
117
-
118
  .input-group:focus-within {
119
  border-color: var(--primary-color);
120
- box-shadow: 0 4px 20px rgba(80, 70, 229, 0.15);
121
  }
122
 
123
  /* Override base styles to remove duplicate borders */
@@ -168,16 +169,18 @@
168
  }
169
 
170
  .synth-btn {
171
- padding: 0 28px;
172
- font-weight: 600;
173
  border-left: 1px solid var(--border-color);
174
- background: linear-gradient(135deg, var(--primary-color) 0%, #6366f1 100%);
175
  color: white;
176
- font-size: 1em;
 
 
177
  }
178
-
179
  .synth-btn:hover {
180
- background: linear-gradient(135deg, #4038c7 0%, #4f46e5 100%);
181
  }
182
 
183
  .random-btn:hover {
@@ -203,10 +206,11 @@
203
  justify-content: center;
204
  align-items: center;
205
  margin: 48px 0;
206
- padding: 40px;
207
- background: linear-gradient(135deg, #fafbff 0%, #f5f7ff 100%);
208
- border-radius: 16px;
209
- border: 1px solid #e8ecf4;
 
210
  }
211
 
212
  .loader-wrapper {
@@ -277,33 +281,34 @@
277
 
278
  .vote-btn {
279
  position: relative;
280
- color: #333;
281
- font-size: 1rem;
282
- font-weight: 500;
283
- padding: 14px 24px;
284
- border-radius: 10px;
285
  border: 2px solid var(--border-color);
286
  background: white;
287
- transition: all 0.3s ease;
288
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
289
  }
290
-
291
  .vote-btn:not(:disabled):hover {
292
  border-color: var(--primary-color);
293
- background: #fafaff;
294
- transform: translateY(-2px);
295
- box-shadow: 0 4px 12px rgba(80, 70, 229, 0.15);
296
  }
297
-
298
  .vote-btn.selected {
299
- background: linear-gradient(135deg, var(--primary-color) 0%, #6366f1 100%);
300
  color: white;
301
  border-color: transparent;
302
- box-shadow: 0 4px 12px rgba(80, 70, 229, 0.3);
 
303
  }
304
-
305
  .vote-btn:disabled {
306
- opacity: 0.6;
307
  cursor: not-allowed;
308
  }
309
 
@@ -334,41 +339,49 @@
334
  }
335
 
336
  .next-round-btn {
337
- padding: 14px 28px;
338
- background: linear-gradient(135deg, var(--primary-color) 0%, #6366f1 100%);
339
  color: white;
340
  border: none;
341
- border-radius: 12px;
342
- font-weight: 600;
343
  cursor: pointer;
344
  position: relative;
345
  width: 100%;
346
- font-size: 1rem;
347
- transition: all 0.3s ease;
348
- box-shadow: 0 4px 12px rgba(80, 70, 229, 0.25);
 
349
  }
350
-
351
  .next-round-btn:hover {
352
- background: linear-gradient(135deg, #4038c7 0%, #4f46e5 100%);
353
- box-shadow: 0 6px 16px rgba(80, 70, 229, 0.35);
354
- transform: translateY(-1px);
355
  }
356
-
 
 
 
 
357
  /* Vote results styling */
358
  .vote-results {
359
- background: linear-gradient(135deg, #f0f4ff 0%, #e8ecff 100%);
360
- border: 1px solid #d0d7f7;
361
- border-radius: 12px;
362
- padding: 20px 24px;
363
  margin: 24px 0;
364
- box-shadow: 0 2px 8px rgba(80, 70, 229, 0.08);
365
  }
366
-
367
  .results-heading {
368
- color: var(--primary-color);
369
- margin-bottom: 12px;
370
- font-size: 18px;
371
- font-weight: 600;
 
 
 
372
  }
373
 
374
  .results-content {
@@ -409,13 +422,14 @@
409
  /* Keyboard shortcut hint */
410
  .keyboard-hint {
411
  text-align: center;
412
- margin-top: 16px;
413
- padding: 12px 20px;
414
  font-size: 14px;
415
- color: #666;
416
- background: linear-gradient(135deg, #fafbff 0%, #f5f7ff 100%);
417
- border-radius: 10px;
418
- border: 1px dashed #d4d9f7;
 
419
  }
420
 
421
  .keyboard-hint kbd {
 
108
  .input-group {
109
  display: flex;
110
  width: 100%;
111
+ border-radius: var(--radius-lg);
112
  border: 2px solid var(--border-color);
113
  overflow: hidden;
114
+ box-shadow: var(--shadow);
115
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
116
+ background: white;
117
  }
118
+
119
  .input-group:focus-within {
120
  border-color: var(--primary-color);
121
+ box-shadow: 0 4px 20px rgba(99, 102, 241, 0.2);
122
  }
123
 
124
  /* Override base styles to remove duplicate borders */
 
169
  }
170
 
171
  .synth-btn {
172
+ padding: 0 32px;
173
+ font-weight: 700;
174
  border-left: 1px solid var(--border-color);
175
+ background: var(--gradient-primary);
176
  color: white;
177
+ font-size: 15px;
178
+ letter-spacing: 0.3px;
179
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
180
  }
181
+
182
  .synth-btn:hover {
183
+ background: var(--gradient-primary-hover);
184
  }
185
 
186
  .random-btn:hover {
 
206
  justify-content: center;
207
  align-items: center;
208
  margin: 48px 0;
209
+ padding: 48px;
210
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.03) 0%, rgba(139, 92, 246, 0.05) 100%);
211
+ border-radius: var(--radius-lg);
212
+ border: 1px solid rgba(99, 102, 241, 0.1);
213
+ backdrop-filter: blur(10px);
214
  }
215
 
216
  .loader-wrapper {
 
281
 
282
  .vote-btn {
283
  position: relative;
284
+ color: var(--text-color);
285
+ font-size: 15px;
286
+ font-weight: 600;
287
+ padding: 16px 24px;
288
+ border-radius: var(--radius);
289
  border: 2px solid var(--border-color);
290
  background: white;
291
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
292
+ box-shadow: var(--shadow-sm);
293
  }
294
+
295
  .vote-btn:not(:disabled):hover {
296
  border-color: var(--primary-color);
297
+ background: var(--primary-light);
298
+ transform: translateY(-3px);
299
+ box-shadow: 0 8px 20px rgba(99, 102, 241, 0.2);
300
  }
301
+
302
  .vote-btn.selected {
303
+ background: var(--gradient-primary);
304
  color: white;
305
  border-color: transparent;
306
+ box-shadow: 0 8px 20px rgba(99, 102, 241, 0.35);
307
+ transform: translateY(-2px);
308
  }
309
+
310
  .vote-btn:disabled {
311
+ opacity: 0.5;
312
  cursor: not-allowed;
313
  }
314
 
 
339
  }
340
 
341
  .next-round-btn {
342
+ padding: 18px 32px;
343
+ background: var(--gradient-primary);
344
  color: white;
345
  border: none;
346
+ border-radius: var(--radius);
347
+ font-weight: 700;
348
  cursor: pointer;
349
  position: relative;
350
  width: 100%;
351
+ font-size: 16px;
352
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
353
+ box-shadow: 0 8px 20px rgba(99, 102, 241, 0.3);
354
+ letter-spacing: 0.3px;
355
  }
356
+
357
  .next-round-btn:hover {
358
+ background: var(--gradient-primary-hover);
359
+ box-shadow: 0 12px 28px rgba(99, 102, 241, 0.4);
360
+ transform: translateY(-2px);
361
  }
362
+
363
+ .next-round-btn:active {
364
+ transform: translateY(0);
365
+ }
366
+
367
  /* Vote results styling */
368
  .vote-results {
369
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.08) 0%, rgba(139, 92, 246, 0.08) 100%);
370
+ border: 1px solid rgba(99, 102, 241, 0.15);
371
+ border-radius: var(--radius);
372
+ padding: 24px 28px;
373
  margin: 24px 0;
374
+ box-shadow: var(--shadow-sm);
375
  }
376
+
377
  .results-heading {
378
+ background: var(--gradient-primary);
379
+ -webkit-background-clip: text;
380
+ -webkit-text-fill-color: transparent;
381
+ background-clip: text;
382
+ margin-bottom: 14px;
383
+ font-size: 20px;
384
+ font-weight: 700;
385
  }
386
 
387
  .results-content {
 
422
  /* Keyboard shortcut hint */
423
  .keyboard-hint {
424
  text-align: center;
425
+ margin-top: 20px;
426
+ padding: 16px 24px;
427
  font-size: 14px;
428
+ color: var(--text-secondary);
429
+ background: linear-gradient(135deg, rgba(99, 102, 241, 0.03) 0%, rgba(139, 92, 246, 0.05) 100%);
430
+ border-radius: var(--radius);
431
+ border: 1px dashed rgba(99, 102, 241, 0.2);
432
+ line-height: 1.6;
433
  }
434
 
435
  .keyboard-hint kbd {
templates/base.html CHANGED
@@ -8,31 +8,42 @@
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
 
11
  {% block extra_head %}{% endblock %}
12
  <style>
13
  :root {
14
- --primary-color: #5046e5;
15
- --secondary-color: #f0f0f0;
16
- --text-color: #333;
17
- --light-gray: #f5f5f5;
18
- --border-color: #e0e0e0;
19
- --shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
20
- --radius: 8px;
 
 
 
 
 
 
 
21
  --success-color: #10b981;
22
  --info-color: #3b82f6;
23
  --warning-color: #f59e0b;
24
  --error-color: #ef4444;
 
 
25
  }
26
 
27
  * {
28
  margin: 0;
29
  padding: 0;
30
  box-sizing: border-box;
31
- font-family: 'Inter', sans-serif;
32
  }
33
 
34
  body {
35
  color: var(--text-color);
 
36
  display: flex;
37
  min-height: 100vh;
38
  height: 100vh;
@@ -44,27 +55,35 @@
44
  }
45
 
46
  .sidebar {
47
- width: 240px;
48
- background-color: var(--light-gray);
49
- padding: 24px 16px;
50
- border-right: 1px solid var(--border-color);
 
 
51
  display: flex;
52
  flex-direction: column;
53
  height: 100vh;
54
  z-index: 1000;
55
- transition: transform 0.3s ease-in-out;
56
  flex-shrink: 0;
 
57
  }
58
 
59
  .logo-container {
60
- margin-bottom: 32px;
 
61
  }
62
 
63
  .logo {
64
- font-size: 22px;
65
- font-weight: 700;
66
- color: var(--primary-color);
67
- margin-bottom: 8px;
 
 
 
 
68
  }
69
 
70
  .supported-by {
@@ -98,42 +117,60 @@
98
  .nav-item {
99
  display: flex;
100
  align-items: center;
101
- padding: 12px 16px;
102
- margin-bottom: 8px;
103
  border-radius: var(--radius);
104
  cursor: pointer;
105
- transition: background-color 0.2s;
106
- color: var(--text-color);
107
  text-decoration: none;
 
 
108
  }
109
 
110
  .nav-item.active {
111
- background-color: rgba(80, 70, 229, 0.1);
112
- color: var(--primary-color);
113
- font-weight: 500;
 
114
  }
115
 
116
  .nav-item:hover:not(.active) {
117
- background-color: rgba(0, 0, 0, 0.05);
 
 
118
  }
119
 
120
  .nav-item svg {
121
- margin-right: 12px;
 
 
 
 
 
122
  }
123
 
124
  .main-content {
125
  flex: 1;
126
- padding: 32px;
127
  width: 100%;
128
  margin: 0 auto;
129
  overflow-y: auto;
130
  height: 100vh;
 
131
  }
132
 
133
  .main-content-inner {
134
- max-width: 1200px;
135
  width: 100%;
136
  margin: 0 auto;
 
 
 
 
 
 
 
137
  }
138
 
139
  .tabs {
@@ -185,19 +222,26 @@
185
  }
186
 
187
  .btn {
188
- background-color: var(--primary-color);
189
  color: white;
190
  border: none;
191
  border-radius: var(--radius);
192
- padding: 12px 24px;
193
  margin-left: 12px;
194
  cursor: pointer;
195
- font-weight: 500;
196
- transition: background-color 0.2s;
 
197
  }
198
 
199
  .btn:hover {
200
- background-color: #4038c7;
 
 
 
 
 
 
201
  }
202
 
203
  .icon-btn {
@@ -232,14 +276,23 @@
232
  .player {
233
  flex: 1;
234
  border: 1px solid var(--border-color);
235
- border-radius: var(--radius);
236
- padding: 16px;
 
237
  box-shadow: var(--shadow);
 
 
 
 
 
 
238
  }
239
 
240
  .player-label {
241
- font-weight: 600;
242
- margin-bottom: 12px;
 
 
243
  }
244
 
245
  .audio-player {
@@ -249,25 +302,29 @@
249
 
250
  .vote-btn {
251
  width: 100%;
252
- padding: 12px;
253
  background-color: white;
254
- border: 1px solid var(--border-color);
255
  border-radius: var(--radius);
256
- font-weight: 500;
257
  cursor: pointer;
258
- transition: all 0.2s;
259
  position: relative;
 
260
  }
261
 
262
  .vote-btn:hover {
263
- background-color: var(--light-gray);
264
- border-color: #ccc;
 
 
265
  }
266
 
267
  .vote-btn.selected {
268
- background-color: var(--primary-color);
269
  color: white;
270
- border-color: var(--primary-color);
 
271
  }
272
 
273
  .shortcut-key {
@@ -441,13 +498,16 @@
441
  .toast {
442
  display: flex;
443
  align-items: center;
444
- padding: 12px 16px;
445
- border-radius: 8px;
446
- background-color: white;
447
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
448
- animation: slideIn 0.3s ease-out forwards;
 
 
449
  position: relative;
450
  overflow: hidden;
 
451
  }
452
 
453
  .toast.slide-out {
@@ -680,26 +740,46 @@
680
  /* Dark mode styles */
681
  @media (prefers-color-scheme: dark) {
682
  :root {
683
- --primary-color: #6c63ff;
684
- --secondary-color: #2d2b38;
685
- --text-color: #e0e0e0;
686
- --light-gray: #1e1e24;
687
- --border-color: #3a3a45;
688
- --shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
689
- --success-color: #10b981;
 
 
 
 
 
 
 
 
690
  --info-color: #60a5fa;
691
- --warning-color: #f59e0b;
692
- --error-color: #ef4444;
693
  }
694
 
695
  body {
696
- background-color: #121218;
697
  color: var(--text-color);
698
  }
699
 
700
  .sidebar {
701
- background-color: var(--light-gray);
702
- border-right-color: var(--border-color);
 
 
 
 
 
 
 
 
 
 
 
 
703
  }
704
 
705
  .nav-item.active {
 
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
11
+ <link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css" />
12
  {% block extra_head %}{% endblock %}
13
  <style>
14
  :root {
15
+ --primary-color: #6366f1;
16
+ --primary-hover: #4f46e5;
17
+ --primary-light: #eef2ff;
18
+ --secondary-color: #f8fafc;
19
+ --text-color: #1e293b;
20
+ --text-secondary: #64748b;
21
+ --light-gray: #f8fafc;
22
+ --border-color: #e2e8f0;
23
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
24
+ --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
25
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
26
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
27
+ --radius: 12px;
28
+ --radius-lg: 16px;
29
  --success-color: #10b981;
30
  --info-color: #3b82f6;
31
  --warning-color: #f59e0b;
32
  --error-color: #ef4444;
33
+ --gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
34
+ --gradient-primary-hover: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
35
  }
36
 
37
  * {
38
  margin: 0;
39
  padding: 0;
40
  box-sizing: border-box;
41
+ font-family: 'Pretendard Variable', 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
42
  }
43
 
44
  body {
45
  color: var(--text-color);
46
+ background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
47
  display: flex;
48
  min-height: 100vh;
49
  height: 100vh;
 
55
  }
56
 
57
  .sidebar {
58
+ width: 260px;
59
+ background: rgba(255, 255, 255, 0.8);
60
+ backdrop-filter: blur(20px);
61
+ -webkit-backdrop-filter: blur(20px);
62
+ padding: 28px 20px;
63
+ border-right: 1px solid rgba(255, 255, 255, 0.5);
64
  display: flex;
65
  flex-direction: column;
66
  height: 100vh;
67
  z-index: 1000;
68
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
69
  flex-shrink: 0;
70
+ box-shadow: 4px 0 24px rgba(0, 0, 0, 0.03);
71
  }
72
 
73
  .logo-container {
74
+ margin-bottom: 36px;
75
+ padding: 0 4px;
76
  }
77
 
78
  .logo {
79
+ font-size: 24px;
80
+ font-weight: 800;
81
+ background: var(--gradient-primary);
82
+ -webkit-background-clip: text;
83
+ -webkit-text-fill-color: transparent;
84
+ background-clip: text;
85
+ margin-bottom: 10px;
86
+ letter-spacing: -0.5px;
87
  }
88
 
89
  .supported-by {
 
117
  .nav-item {
118
  display: flex;
119
  align-items: center;
120
+ padding: 14px 16px;
121
+ margin-bottom: 6px;
122
  border-radius: var(--radius);
123
  cursor: pointer;
124
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
125
+ color: var(--text-secondary);
126
  text-decoration: none;
127
+ font-weight: 500;
128
+ font-size: 15px;
129
  }
130
 
131
  .nav-item.active {
132
+ background: var(--gradient-primary);
133
+ color: white;
134
+ font-weight: 600;
135
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
136
  }
137
 
138
  .nav-item:hover:not(.active) {
139
+ background-color: var(--primary-light);
140
+ color: var(--primary-color);
141
+ transform: translateX(4px);
142
  }
143
 
144
  .nav-item svg {
145
+ margin-right: 14px;
146
+ flex-shrink: 0;
147
+ }
148
+
149
+ .nav-item.active svg {
150
+ color: white;
151
  }
152
 
153
  .main-content {
154
  flex: 1;
155
+ padding: 40px;
156
  width: 100%;
157
  margin: 0 auto;
158
  overflow-y: auto;
159
  height: 100vh;
160
+ background: transparent;
161
  }
162
 
163
  .main-content-inner {
164
+ max-width: 1100px;
165
  width: 100%;
166
  margin: 0 auto;
167
+ background: rgba(255, 255, 255, 0.7);
168
+ backdrop-filter: blur(20px);
169
+ -webkit-backdrop-filter: blur(20px);
170
+ border-radius: var(--radius-lg);
171
+ padding: 32px;
172
+ box-shadow: var(--shadow-lg);
173
+ border: 1px solid rgba(255, 255, 255, 0.8);
174
  }
175
 
176
  .tabs {
 
222
  }
223
 
224
  .btn {
225
+ background: var(--gradient-primary);
226
  color: white;
227
  border: none;
228
  border-radius: var(--radius);
229
+ padding: 14px 28px;
230
  margin-left: 12px;
231
  cursor: pointer;
232
+ font-weight: 600;
233
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
234
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.25);
235
  }
236
 
237
  .btn:hover {
238
+ background: var(--gradient-primary-hover);
239
+ transform: translateY(-1px);
240
+ box-shadow: 0 6px 16px rgba(99, 102, 241, 0.35);
241
+ }
242
+
243
+ .btn:active {
244
+ transform: translateY(0);
245
  }
246
 
247
  .icon-btn {
 
276
  .player {
277
  flex: 1;
278
  border: 1px solid var(--border-color);
279
+ border-radius: var(--radius-lg);
280
+ padding: 24px;
281
+ background: white;
282
  box-shadow: var(--shadow);
283
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
284
+ }
285
+
286
+ .player:hover {
287
+ box-shadow: var(--shadow-lg);
288
+ border-color: rgba(99, 102, 241, 0.2);
289
  }
290
 
291
  .player-label {
292
+ font-weight: 700;
293
+ margin-bottom: 16px;
294
+ font-size: 16px;
295
+ color: var(--text-color);
296
  }
297
 
298
  .audio-player {
 
302
 
303
  .vote-btn {
304
  width: 100%;
305
+ padding: 16px;
306
  background-color: white;
307
+ border: 2px solid var(--border-color);
308
  border-radius: var(--radius);
309
+ font-weight: 600;
310
  cursor: pointer;
311
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
312
  position: relative;
313
+ font-size: 15px;
314
  }
315
 
316
  .vote-btn:hover {
317
+ background-color: var(--primary-light);
318
+ border-color: var(--primary-color);
319
+ transform: translateY(-2px);
320
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
321
  }
322
 
323
  .vote-btn.selected {
324
+ background: var(--gradient-primary);
325
  color: white;
326
+ border-color: transparent;
327
+ box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35);
328
  }
329
 
330
  .shortcut-key {
 
498
  .toast {
499
  display: flex;
500
  align-items: center;
501
+ padding: 16px 20px;
502
+ border-radius: var(--radius);
503
+ background: rgba(255, 255, 255, 0.95);
504
+ backdrop-filter: blur(10px);
505
+ -webkit-backdrop-filter: blur(10px);
506
+ box-shadow: var(--shadow-xl);
507
+ animation: slideIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
508
  position: relative;
509
  overflow: hidden;
510
+ border: 1px solid rgba(255, 255, 255, 0.8);
511
  }
512
 
513
  .toast.slide-out {
 
740
  /* Dark mode styles */
741
  @media (prefers-color-scheme: dark) {
742
  :root {
743
+ --primary-color: #818cf8;
744
+ --primary-hover: #6366f1;
745
+ --primary-light: rgba(129, 140, 248, 0.15);
746
+ --secondary-color: #1e1b2e;
747
+ --text-color: #f1f5f9;
748
+ --text-secondary: #94a3b8;
749
+ --light-gray: #1e1b2e;
750
+ --border-color: #334155;
751
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
752
+ --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
753
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.4);
754
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5);
755
+ --gradient-primary: linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);
756
+ --gradient-primary-hover: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
757
+ --success-color: #34d399;
758
  --info-color: #60a5fa;
759
+ --warning-color: #fbbf24;
760
+ --error-color: #f87171;
761
  }
762
 
763
  body {
764
+ background: linear-gradient(135deg, #0f0d1a 0%, #1a1625 100%);
765
  color: var(--text-color);
766
  }
767
 
768
  .sidebar {
769
+ background: rgba(30, 27, 46, 0.8);
770
+ backdrop-filter: blur(20px);
771
+ -webkit-backdrop-filter: blur(20px);
772
+ border-right-color: rgba(255, 255, 255, 0.05);
773
+ }
774
+
775
+ .main-content-inner {
776
+ background: rgba(30, 27, 46, 0.6);
777
+ border-color: rgba(255, 255, 255, 0.05);
778
+ }
779
+
780
+ .player {
781
+ background: rgba(30, 27, 46, 0.8);
782
+ border-color: var(--border-color);
783
  }
784
 
785
  .nav-item.active {