webscout 8.3.1__py3-none-any.whl → 8.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (77) hide show
  1. webscout/AIutel.py +46 -53
  2. webscout/Bing_search.py +418 -0
  3. webscout/Extra/gguf.py +706 -177
  4. webscout/Provider/AISEARCH/genspark_search.py +7 -7
  5. webscout/Provider/GeminiProxy.py +140 -0
  6. webscout/Provider/MCPCore.py +78 -75
  7. webscout/Provider/OPENAI/BLACKBOXAI.py +1 -4
  8. webscout/Provider/OPENAI/GeminiProxy.py +328 -0
  9. webscout/Provider/OPENAI/README.md +2 -0
  10. webscout/Provider/OPENAI/README_AUTOPROXY.md +238 -0
  11. webscout/Provider/OPENAI/__init__.py +15 -1
  12. webscout/Provider/OPENAI/autoproxy.py +332 -39
  13. webscout/Provider/OPENAI/base.py +15 -5
  14. webscout/Provider/OPENAI/e2b.py +0 -1
  15. webscout/Provider/OPENAI/mcpcore.py +109 -70
  16. webscout/Provider/OPENAI/scirachat.py +59 -51
  17. webscout/Provider/OPENAI/toolbaz.py +2 -9
  18. webscout/Provider/OPENAI/xenai.py +514 -0
  19. webscout/Provider/OPENAI/yep.py +8 -2
  20. webscout/Provider/TTI/__init__.py +1 -0
  21. webscout/Provider/TTI/bing.py +231 -0
  22. webscout/Provider/TTS/speechma.py +45 -39
  23. webscout/Provider/TogetherAI.py +366 -0
  24. webscout/Provider/XenAI.py +324 -0
  25. webscout/Provider/__init__.py +8 -3
  26. webscout/Provider/deepseek_assistant.py +378 -0
  27. webscout/auth/__init__.py +44 -0
  28. webscout/auth/api_key_manager.py +189 -0
  29. webscout/auth/auth_system.py +100 -0
  30. webscout/auth/config.py +76 -0
  31. webscout/auth/database.py +400 -0
  32. webscout/auth/exceptions.py +67 -0
  33. webscout/auth/middleware.py +248 -0
  34. webscout/auth/models.py +130 -0
  35. webscout/auth/providers.py +257 -0
  36. webscout/auth/rate_limiter.py +254 -0
  37. webscout/auth/request_models.py +127 -0
  38. webscout/auth/request_processing.py +226 -0
  39. webscout/auth/routes.py +526 -0
  40. webscout/auth/schemas.py +103 -0
  41. webscout/auth/server.py +312 -0
  42. webscout/auth/static/favicon.svg +11 -0
  43. webscout/auth/swagger_ui.py +203 -0
  44. webscout/auth/templates/components/authentication.html +237 -0
  45. webscout/auth/templates/components/base.html +103 -0
  46. webscout/auth/templates/components/endpoints.html +750 -0
  47. webscout/auth/templates/components/examples.html +491 -0
  48. webscout/auth/templates/components/footer.html +75 -0
  49. webscout/auth/templates/components/header.html +27 -0
  50. webscout/auth/templates/components/models.html +286 -0
  51. webscout/auth/templates/components/navigation.html +70 -0
  52. webscout/auth/templates/static/api.js +455 -0
  53. webscout/auth/templates/static/icons.js +168 -0
  54. webscout/auth/templates/static/main.js +784 -0
  55. webscout/auth/templates/static/particles.js +201 -0
  56. webscout/auth/templates/static/styles.css +3353 -0
  57. webscout/auth/templates/static/ui.js +374 -0
  58. webscout/auth/templates/swagger_ui.html +170 -0
  59. webscout/client.py +49 -3
  60. webscout/scout/core/scout.py +104 -26
  61. webscout/scout/element.py +139 -18
  62. webscout/swiftcli/core/cli.py +14 -3
  63. webscout/swiftcli/decorators/output.py +59 -9
  64. webscout/update_checker.py +31 -49
  65. webscout/version.py +1 -1
  66. webscout/webscout_search.py +4 -12
  67. webscout/webscout_search_async.py +3 -10
  68. webscout/yep_search.py +2 -11
  69. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/METADATA +41 -11
  70. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/RECORD +74 -36
  71. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/entry_points.txt +1 -1
  72. webscout/Provider/HF_space/__init__.py +0 -0
  73. webscout/Provider/HF_space/qwen_qwen2.py +0 -206
  74. webscout/Provider/OPENAI/api.py +0 -1320
  75. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/WHEEL +0 -0
  76. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/licenses/LICENSE.md +0 -0
  77. {webscout-8.3.1.dist-info → webscout-8.3.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,3353 @@
1
+ /* ===== CSS VARIABLES ===== */
2
+ :root {
3
+ /* Professional Color Palette */
4
+ --primary-color: #2563eb;
5
+ --primary-dark: #1d4ed8;
6
+ --primary-light: #3b82f6;
7
+ --primary-ultra-light: #dbeafe;
8
+ --secondary-color: #059669;
9
+ --secondary-dark: #047857;
10
+ --secondary-light: #10b981;
11
+ --accent-color: #dc2626;
12
+ --accent-dark: #b91c1c;
13
+ --accent-light: #ef4444;
14
+
15
+ /* Premium Background Colors */
16
+ --background-color: #0a0f1c;
17
+ --background-secondary: #0f172a;
18
+ --background-tertiary: #1a202c;
19
+ --surface-color: #1e293b;
20
+ --surface-light: #334155;
21
+ --surface-lighter: #475569;
22
+ --surface-glass: rgba(30, 41, 59, 0.85);
23
+ --surface-glass-light: rgba(51, 65, 85, 0.7);
24
+ --surface-glass-ultra: rgba(255, 255, 255, 0.05);
25
+ --surface-premium: linear-gradient(135deg, rgba(30, 41, 59, 0.9) 0%, rgba(51, 65, 85, 0.8) 100%);
26
+
27
+ /* Modern Text Colors */
28
+ --text-primary: #f8fafc;
29
+ --text-secondary: #cbd5e1;
30
+ --text-muted: #64748b;
31
+ --text-inverse: #0f172a;
32
+ --text-accent: #a78bfa;
33
+ --text-success: #34d399;
34
+ --text-warning: #fbbf24;
35
+ --text-error: #f87171;
36
+
37
+ /* Enhanced Border Colors */
38
+ --border-color: #334155;
39
+ --border-light: #475569;
40
+ --border-glass: rgba(255, 255, 255, 0.1);
41
+ --border-glow: rgba(99, 102, 241, 0.3);
42
+
43
+ /* Status Colors */
44
+ --success-color: #10b981;
45
+ --warning-color: #f59e0b;
46
+ --error-color: #ef4444;
47
+ --info-color: #3b82f6;
48
+
49
+ /* Simple Professional Gradients */
50
+ --gradient-primary: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
51
+ --gradient-secondary: linear-gradient(135deg, #059669 0%, #047857 100%);
52
+ --gradient-surface: linear-gradient(135deg, #1e293b 0%, #334155 100%);
53
+ --gradient-glass: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.02) 100%);
54
+
55
+ /* Simple Professional Shadows */
56
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.1);
57
+ --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
58
+ --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
59
+ --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
60
+ --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
61
+
62
+ /* Backdrop Filters */
63
+ --backdrop-blur: blur(16px);
64
+ --backdrop-blur-sm: blur(8px);
65
+ --backdrop-blur-lg: blur(24px);
66
+
67
+ /* Spacing */
68
+ --spacing-xs: 0.25rem;
69
+ --spacing-sm: 0.5rem;
70
+ --spacing-md: 1rem;
71
+ --spacing-lg: 1.5rem;
72
+ --spacing-xl: 2rem;
73
+ --spacing-2xl: 3rem;
74
+
75
+ /* Border Radius */
76
+ --radius-sm: 0.25rem;
77
+ --radius: 0.5rem;
78
+ --radius-md: 0.75rem;
79
+ --radius-lg: 1rem;
80
+ --radius-xl: 1.5rem;
81
+ --radius-full: 9999px;
82
+
83
+ /* Typography */
84
+ --font-family-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
85
+ --font-family-mono: 'JetBrains Mono', 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
86
+
87
+ /* Font Sizes */
88
+ --text-xs: 0.75rem;
89
+ --text-sm: 0.875rem;
90
+ --text-base: 1rem;
91
+ --text-lg: 1.125rem;
92
+ --text-xl: 1.25rem;
93
+ --text-2xl: 1.5rem;
94
+ --text-3xl: 1.875rem;
95
+ --text-4xl: 2.25rem;
96
+ --text-5xl: 3rem;
97
+
98
+ /* Font Weights */
99
+ --font-light: 300;
100
+ --font-normal: 400;
101
+ --font-medium: 500;
102
+ --font-semibold: 600;
103
+ --font-bold: 700;
104
+ --font-extrabold: 800;
105
+
106
+ /* Line Heights */
107
+ --leading-tight: 1.25;
108
+ --leading-normal: 1.5;
109
+ --leading-relaxed: 1.625;
110
+ --leading-loose: 2;
111
+
112
+ /* Enhanced Transitions & Animations */
113
+ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
114
+ --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
115
+ --transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
116
+ --transition-bounce: 600ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
117
+ --transition-elastic: 800ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
118
+
119
+ /* Modern Easing Functions */
120
+ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
121
+ --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
122
+ --ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86);
123
+
124
+ /* Z-Index */
125
+ --z-dropdown: 1000;
126
+ --z-sticky: 1020;
127
+ --z-fixed: 1030;
128
+ --z-modal-backdrop: 1040;
129
+ --z-modal: 1050;
130
+ --z-popover: 1060;
131
+ --z-tooltip: 1070;
132
+ --z-toast: 1080;
133
+ }
134
+
135
+ /* ===== RESET & BASE STYLES ===== */
136
+ *,
137
+ *::before,
138
+ *::after {
139
+ box-sizing: border-box;
140
+ margin: 0;
141
+ padding: 0;
142
+ }
143
+
144
+ html {
145
+ scroll-behavior: smooth;
146
+ font-size: 16px;
147
+ }
148
+
149
+ body {
150
+ font-family: var(--font-family-sans);
151
+ font-size: var(--text-base);
152
+ font-weight: var(--font-normal);
153
+ line-height: var(--leading-normal);
154
+ color: var(--text-primary);
155
+ background: var(--background-color);
156
+ background-image:
157
+ radial-gradient(circle at 20% 80%, rgba(99, 102, 241, 0.1) 0%, transparent 50%),
158
+ radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.1) 0%, transparent 50%),
159
+ radial-gradient(circle at 40% 40%, rgba(16, 185, 129, 0.05) 0%, transparent 50%);
160
+ min-height: 100vh;
161
+ overflow-x: hidden;
162
+ -webkit-font-smoothing: antialiased;
163
+ -moz-osx-font-smoothing: grayscale;
164
+ position: relative;
165
+ }
166
+
167
+ /* ===== MODERN LOADING SCREEN ===== */
168
+ .loading-screen {
169
+ position: fixed;
170
+ top: 0;
171
+ left: 0;
172
+ right: 0;
173
+ bottom: 0;
174
+ background: var(--background-color);
175
+ background-image:
176
+ radial-gradient(circle at 20% 80%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
177
+ radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.15) 0%, transparent 50%);
178
+ display: flex;
179
+ align-items: center;
180
+ justify-content: center;
181
+ z-index: var(--z-modal);
182
+ transition: opacity var(--transition-slow), visibility var(--transition-slow);
183
+ backdrop-filter: var(--backdrop-blur);
184
+ }
185
+
186
+ .loading-screen.hidden {
187
+ opacity: 0;
188
+ visibility: hidden;
189
+ }
190
+
191
+ .loading-content {
192
+ text-align: center;
193
+ max-width: 400px;
194
+ padding: var(--spacing-xl);
195
+
196
+ }
197
+
198
+ .loading-spinner {
199
+ width: 80px;
200
+ height: 80px;
201
+ border: 4px solid transparent;
202
+ border-top: 4px solid var(--primary-color);
203
+ border-right: 4px solid var(--secondary-color);
204
+ border-radius: var(--radius-full);
205
+ animation: spin 1s linear infinite;
206
+ margin: 0 auto var(--spacing-lg);
207
+ position: relative;
208
+ box-shadow: var(--shadow-glow);
209
+ }
210
+
211
+ .loading-spinner::before {
212
+ content: '';
213
+ position: absolute;
214
+ top: 50%;
215
+ left: 50%;
216
+ width: 60%;
217
+ height: 60%;
218
+ border: 2px solid transparent;
219
+ border-bottom: 2px solid var(--accent-color);
220
+ border-radius: var(--radius-full);
221
+ transform: translate(-50%, -50%);
222
+ animation: modernSpin 1s linear infinite reverse;
223
+ }
224
+
225
+ @keyframes modernSpin {
226
+ 0% {
227
+ transform: rotate(0deg) scale(1);
228
+ filter: hue-rotate(0deg);
229
+ }
230
+ 50% {
231
+ transform: rotate(180deg) scale(1.1);
232
+ filter: hue-rotate(180deg);
233
+ }
234
+ 100% {
235
+ transform: rotate(360deg) scale(1);
236
+ filter: hue-rotate(360deg);
237
+ }
238
+ }
239
+
240
+ .loading-content h2 {
241
+ font-size: var(--text-2xl);
242
+ font-weight: var(--font-bold);
243
+ color: var(--text-primary);
244
+ margin-bottom: var(--spacing-sm);
245
+ }
246
+
247
+ .loading-content p {
248
+ color: var(--text-secondary);
249
+ font-size: var(--text-base);
250
+ }
251
+
252
+ @keyframes spin {
253
+ 0% { transform: rotate(0deg); }
254
+ 100% { transform: rotate(360deg); }
255
+ }
256
+
257
+ /* ===== APP LAYOUT ===== */
258
+ .app {
259
+ min-height: 100vh;
260
+ display: flex;
261
+ flex-direction: column;
262
+ }
263
+
264
+ .main-content {
265
+ flex: 1;
266
+ padding-top: var(--spacing-xl);
267
+ padding-bottom: var(--spacing-2xl);
268
+ }
269
+
270
+ .container {
271
+ max-width: 1400px;
272
+ margin: 0 auto;
273
+ padding: 0 var(--spacing-lg);
274
+ }
275
+
276
+ @media (max-width: 768px) {
277
+ .container {
278
+ padding: 0 var(--spacing-md);
279
+ }
280
+ }
281
+
282
+ /* ===== UTILITY CLASSES ===== */
283
+ .sr-only {
284
+ position: absolute;
285
+ width: 1px;
286
+ height: 1px;
287
+ padding: 0;
288
+ margin: -1px;
289
+ overflow: hidden;
290
+ clip: rect(0, 0, 0, 0);
291
+ white-space: nowrap;
292
+ border: 0;
293
+ }
294
+
295
+ .text-center { text-align: center; }
296
+ .text-left { text-align: left; }
297
+ .text-right { text-align: right; }
298
+
299
+ .font-mono { font-family: var(--font-family-mono); }
300
+ .font-sans { font-family: var(--font-family-sans); }
301
+
302
+ .truncate {
303
+ overflow: hidden;
304
+ text-overflow: ellipsis;
305
+ white-space: nowrap;
306
+ }
307
+
308
+ .transition {
309
+ transition: all var(--transition-normal);
310
+ }
311
+
312
+ /* ===== MODERN ANIMATIONS ===== */
313
+ @keyframes fadeIn {
314
+ from {
315
+ opacity: 0;
316
+ transform: translateY(20px) scale(0.95);
317
+ }
318
+ to {
319
+ opacity: 1;
320
+ transform: translateY(0) scale(1);
321
+ }
322
+ }
323
+
324
+ @keyframes slideDown {
325
+ from {
326
+ opacity: 0;
327
+ max-height: 0;
328
+ transform: translateY(-20px);
329
+ }
330
+ to {
331
+ opacity: 1;
332
+ max-height: 1000px;
333
+ transform: translateY(0);
334
+ }
335
+ }
336
+
337
+ @keyframes slideUp {
338
+ from {
339
+ opacity: 1;
340
+ max-height: 1000px;
341
+ transform: translateY(0);
342
+ }
343
+ to {
344
+ opacity: 0;
345
+ max-height: 0;
346
+ transform: translateY(-20px);
347
+ }
348
+ }
349
+
350
+ @keyframes pulse {
351
+ 0%, 100% {
352
+ opacity: 1;
353
+ transform: scale(1);
354
+ }
355
+ 50% {
356
+ opacity: 0.8;
357
+ transform: scale(1.05);
358
+ }
359
+ }
360
+
361
+ @keyframes bounce {
362
+ 0%, 20%, 53%, 80%, 100% {
363
+ animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
364
+ transform: translate3d(0, 0, 0);
365
+ }
366
+ 40%, 43% {
367
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
368
+ transform: translate3d(0, -30px, 0);
369
+ }
370
+ 70% {
371
+ animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
372
+ transform: translate3d(0, -15px, 0);
373
+ }
374
+ 90% {
375
+ transform: translate3d(0, -4px, 0);
376
+ }
377
+ }
378
+
379
+ @keyframes morphing {
380
+ 0%, 100% {
381
+ border-radius: var(--radius-lg);
382
+ transform: rotate(0deg);
383
+ }
384
+ 25% {
385
+ border-radius: var(--radius-xl);
386
+ transform: rotate(1deg);
387
+ }
388
+ 50% {
389
+ border-radius: var(--radius-lg);
390
+ transform: rotate(0deg);
391
+ }
392
+ 75% {
393
+ border-radius: var(--radius-xl);
394
+ transform: rotate(-1deg);
395
+ }
396
+ }
397
+
398
+ @keyframes gradientShift {
399
+ 0% {
400
+ background-position: 0% 50%;
401
+ }
402
+ 50% {
403
+ background-position: 100% 50%;
404
+ }
405
+ 100% {
406
+ background-position: 0% 50%;
407
+ }
408
+ }
409
+
410
+ @keyframes slideInFromLeft {
411
+ from {
412
+ opacity: 0;
413
+ transform: translateX(-50px);
414
+ }
415
+ to {
416
+ opacity: 1;
417
+ transform: translateX(0);
418
+ }
419
+ }
420
+
421
+ @keyframes slideInFromRight {
422
+ from {
423
+ opacity: 0;
424
+ transform: translateX(50px);
425
+ }
426
+ to {
427
+ opacity: 1;
428
+ transform: translateX(0);
429
+ }
430
+ }
431
+
432
+ @keyframes slideOutRight {
433
+ from {
434
+ opacity: 1;
435
+ transform: translateX(0);
436
+ }
437
+ to {
438
+ opacity: 0;
439
+ transform: translateX(50px);
440
+ }
441
+ }
442
+
443
+ @keyframes scaleIn {
444
+ from {
445
+ opacity: 0;
446
+ transform: scale(0.8);
447
+ }
448
+ to {
449
+ opacity: 1;
450
+ transform: scale(1);
451
+ }
452
+ }
453
+
454
+ .animate-fadeIn {
455
+ animation: fadeIn var(--transition-normal) var(--ease-out-expo);
456
+ }
457
+
458
+ .animate-slideDown {
459
+ animation: slideDown var(--transition-normal) var(--ease-out-expo);
460
+ }
461
+
462
+ .animate-pulse {
463
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
464
+ }
465
+
466
+ .animate-bounce {
467
+ animation: bounce 1s infinite;
468
+ }
469
+
470
+ .animate-morphing {
471
+ animation: morphing 6s ease-in-out infinite;
472
+ }
473
+
474
+ .animate-gradient {
475
+ background-size: 200% 200%;
476
+ animation: gradientShift 3s ease infinite;
477
+ }
478
+
479
+ .animate-slideInLeft {
480
+ animation: slideInFromLeft var(--transition-normal) var(--ease-out-expo);
481
+ }
482
+
483
+ .animate-slideInRight {
484
+ animation: slideInFromRight var(--transition-normal) var(--ease-out-expo);
485
+ }
486
+
487
+ .animate-slideOutRight {
488
+ animation: slideOutRight var(--transition-normal) var(--ease-out-expo);
489
+ }
490
+
491
+ .animate-scaleIn {
492
+ animation: scaleIn var(--transition-normal) var(--ease-out-back);
493
+ }
494
+
495
+ /* Modern Utility Classes */
496
+ .glass-effect {
497
+ background: var(--surface-glass);
498
+ backdrop-filter: var(--backdrop-blur);
499
+ border: 1px solid var(--border-glass);
500
+ }
501
+
502
+ .glow-effect {
503
+ box-shadow: var(--shadow-glow);
504
+ }
505
+
506
+ .hover-lift {
507
+ transition: transform var(--transition-bounce);
508
+ }
509
+
510
+ .hover-lift:hover {
511
+ transform: translateY(-4px) scale(1.02);
512
+ }
513
+
514
+ .gradient-text {
515
+ background: var(--gradient-primary);
516
+ -webkit-background-clip: text;
517
+ -webkit-text-fill-color: transparent;
518
+ background-clip: text;
519
+ }
520
+
521
+ .text-glow {
522
+ text-shadow: 0 0 20px rgba(99, 102, 241, 0.5);
523
+ }
524
+
525
+ /* ===== MODERN SCROLL INDICATOR ===== */
526
+ .scroll-indicator {
527
+ position: fixed;
528
+ top: 0;
529
+ left: 0;
530
+ width: 100%;
531
+ height: 4px;
532
+ background: var(--surface-color);
533
+ z-index: var(--z-fixed);
534
+ }
535
+
536
+ .scroll-progress {
537
+ height: 100%;
538
+ background: var(--gradient-primary);
539
+ width: 0%;
540
+ transition: width 0.1s ease;
541
+ box-shadow: 0 0 10px rgba(99, 102, 241, 0.5);
542
+ }
543
+
544
+ /* ===== MODERN SCROLLBAR ===== */
545
+ ::-webkit-scrollbar {
546
+ width: 8px;
547
+ height: 8px;
548
+ }
549
+
550
+ ::-webkit-scrollbar-track {
551
+ background: var(--surface-color);
552
+ border-radius: var(--radius-sm);
553
+ }
554
+
555
+ ::-webkit-scrollbar-thumb {
556
+ background: var(--gradient-primary);
557
+ border-radius: var(--radius-sm);
558
+ transition: all var(--transition-normal);
559
+ }
560
+
561
+ ::-webkit-scrollbar-thumb:hover {
562
+ background: var(--gradient-secondary);
563
+ box-shadow: var(--shadow-glow);
564
+ }
565
+
566
+ /* Firefox scrollbar */
567
+ * {
568
+ scrollbar-width: thin;
569
+ scrollbar-color: var(--primary-color) var(--surface-color);
570
+ }
571
+
572
+ /* ===== MODERN ICON SYSTEM ===== */
573
+ .icon {
574
+ display: inline-flex;
575
+ align-items: center;
576
+ justify-content: center;
577
+ transition: all var(--transition-normal);
578
+ }
579
+
580
+ .icon svg {
581
+ width: 100%;
582
+ height: 100%;
583
+ stroke-width: 2;
584
+ }
585
+
586
+ .icon.emoji-replacement {
587
+ filter: drop-shadow(0 0 4px rgba(99, 102, 241, 0.3));
588
+ }
589
+
590
+ .nav-tab-icon .icon,
591
+ .stat-icon .icon {
592
+ width: 20px;
593
+ height: 20px;
594
+ }
595
+
596
+ .header-icon .icon {
597
+ width: 32px;
598
+ height: 32px;
599
+ filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.3));
600
+ }
601
+
602
+ .footer-icon .icon {
603
+ width: 24px;
604
+ height: 24px;
605
+ }
606
+
607
+ /* Icon hover effects */
608
+ .icon:hover {
609
+ transform: scale(1.1);
610
+ filter: drop-shadow(0 0 8px rgba(99, 102, 241, 0.5));
611
+ }
612
+
613
+ /* Status indicator with modern styling */
614
+ .status-indicator {
615
+ display: inline-flex;
616
+ align-items: center;
617
+ justify-content: center;
618
+ width: 12px;
619
+ height: 12px;
620
+ border-radius: 50%;
621
+ background: var(--success-color);
622
+ box-shadow: 0 0 10px var(--success-color);
623
+ animation: pulse 2s infinite;
624
+ position: relative;
625
+ }
626
+
627
+ .status-indicator::after {
628
+ content: '';
629
+ position: absolute;
630
+ width: 100%;
631
+ height: 100%;
632
+ border-radius: 50%;
633
+ background: var(--success-color);
634
+ animation: ping 2s infinite;
635
+ }
636
+
637
+ @keyframes ping {
638
+ 0% {
639
+ transform: scale(1);
640
+ opacity: 1;
641
+ }
642
+ 75%, 100% {
643
+ transform: scale(2);
644
+ opacity: 0;
645
+ }
646
+ }
647
+
648
+ /* ===== HEADER STYLES ===== */
649
+ .header {
650
+ background: var(--gradient-cosmic);
651
+ padding: var(--spacing-2xl) 0;
652
+ position: relative;
653
+ overflow: hidden;
654
+ border-bottom: 1px solid var(--border-glass);
655
+ backdrop-filter: var(--backdrop-blur);
656
+ box-shadow: var(--shadow-glass);
657
+ }
658
+
659
+ .header::before {
660
+ content: '';
661
+ position: absolute;
662
+ top: 0;
663
+ left: 0;
664
+ right: 0;
665
+ bottom: 0;
666
+ background:
667
+ radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 0%, transparent 50%),
668
+ radial-gradient(circle at 75% 75%, rgba(255,255,255,0.08) 0%, transparent 50%),
669
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="40" r="0.8" fill="rgba(255,255,255,0.08)"/><circle cx="40" cy="80" r="0.6" fill="rgba(255,255,255,0.06)"/><circle cx="60" cy="10" r="0.4" fill="rgba(255,255,255,0.04)"/></svg>');
670
+ animation: float 30s infinite linear;
671
+ opacity: 0.8;
672
+ }
673
+
674
+ .header::after {
675
+ content: '';
676
+ position: absolute;
677
+ top: 0;
678
+ left: 0;
679
+ right: 0;
680
+ bottom: 0;
681
+ background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.02) 50%, transparent 70%);
682
+ animation: shimmer 3s infinite;
683
+ }
684
+
685
+ @keyframes float {
686
+ 0% { transform: translateY(0px) rotate(0deg); }
687
+ 33% { transform: translateY(-30px) rotate(120deg); }
688
+ 66% { transform: translateY(-60px) rotate(240deg); }
689
+ 100% { transform: translateY(-100px) rotate(360deg); }
690
+ }
691
+
692
+ @keyframes shimmer {
693
+ 0% { transform: translateX(-100%); }
694
+ 100% { transform: translateX(100%); }
695
+ }
696
+
697
+ @keyframes glow {
698
+ 0%, 100% { box-shadow: 0 0 20px rgba(99, 102, 241, 0.3); }
699
+ 50% { box-shadow: 0 0 40px rgba(99, 102, 241, 0.6); }
700
+ }
701
+
702
+ .header-content {
703
+ position: relative;
704
+ z-index: 3;
705
+ text-align: center;
706
+ }
707
+
708
+ .header-title {
709
+ font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
710
+ font-weight: var(--font-extrabold);
711
+ margin-bottom: var(--spacing-sm);
712
+ background: linear-gradient(135deg, #ffffff 0%, #f8fafc 25%, #e2e8f0 50%, #cbd5e1 75%, #ffffff 100%);
713
+ -webkit-background-clip: text;
714
+ -webkit-text-fill-color: transparent;
715
+ background-clip: text;
716
+ line-height: var(--leading-tight);
717
+ text-shadow: 0 0 30px rgba(255, 255, 255, 0.3);
718
+ animation: titleGlow 4s ease-in-out infinite alternate;
719
+ }
720
+
721
+ @keyframes titleGlow {
722
+ 0% { filter: brightness(1) drop-shadow(0 0 10px rgba(255,255,255,0.3)); }
723
+ 100% { filter: brightness(1.1) drop-shadow(0 0 20px rgba(255,255,255,0.5)); }
724
+ }
725
+
726
+ .header-description {
727
+ font-size: var(--text-lg);
728
+ color: rgba(255, 255, 255, 0.9);
729
+ margin-bottom: var(--spacing-xl);
730
+ max-width: 600px;
731
+ margin-left: auto;
732
+ margin-right: auto;
733
+ line-height: var(--leading-relaxed);
734
+ }
735
+
736
+ .header-status {
737
+ display: inline-flex;
738
+ align-items: center;
739
+ gap: var(--spacing-sm);
740
+ background: var(--surface-glass);
741
+ backdrop-filter: var(--backdrop-blur);
742
+ border: 1px solid var(--border-glass);
743
+ border-radius: var(--radius-full);
744
+ padding: var(--spacing-sm) var(--spacing-lg);
745
+ margin-bottom: var(--spacing-xl);
746
+ font-size: var(--text-sm);
747
+ font-weight: var(--font-medium);
748
+ box-shadow: var(--shadow-glass);
749
+ transition: all var(--transition-normal);
750
+ position: relative;
751
+ overflow: hidden;
752
+ }
753
+
754
+ .header-status::before {
755
+ content: '';
756
+ position: absolute;
757
+ top: 0;
758
+ left: -100%;
759
+ width: 100%;
760
+ height: 100%;
761
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
762
+ transition: left 0.6s;
763
+ }
764
+
765
+ .header-status:hover::before {
766
+ left: 100%;
767
+ }
768
+
769
+ .header-status:hover {
770
+ transform: translateY(-2px);
771
+ box-shadow: var(--shadow-glow);
772
+ border-color: rgba(255, 255, 255, 0.3);
773
+ }
774
+
775
+ .status-indicator {
776
+ font-size: var(--text-lg);
777
+ animation: pulse 2s infinite;
778
+ }
779
+
780
+ /* ===== STATS GRID ===== */
781
+ .stats-grid {
782
+ display: grid;
783
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
784
+ gap: var(--spacing-lg);
785
+ margin-top: var(--spacing-xl);
786
+ max-width: 800px;
787
+ margin-left: auto;
788
+ margin-right: auto;
789
+ }
790
+
791
+ .stat-card {
792
+ background: var(--surface-glass);
793
+ backdrop-filter: var(--backdrop-blur);
794
+ border: 1px solid var(--border-glass);
795
+ border-radius: var(--radius-lg);
796
+ padding: var(--spacing-xl);
797
+ text-align: center;
798
+ transition: all var(--transition-bounce);
799
+ position: relative;
800
+ overflow: hidden;
801
+ box-shadow: var(--shadow-glass);
802
+ }
803
+
804
+ .stat-card::before {
805
+ content: '';
806
+ position: absolute;
807
+ top: 0;
808
+ left: -100%;
809
+ width: 100%;
810
+ height: 100%;
811
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
812
+ transition: left 0.6s var(--ease-out-expo);
813
+ }
814
+
815
+ .stat-card::after {
816
+ content: '';
817
+ position: absolute;
818
+ top: 0;
819
+ left: 0;
820
+ right: 0;
821
+ bottom: 0;
822
+ background: var(--gradient-glass);
823
+ opacity: 0;
824
+ transition: opacity var(--transition-normal);
825
+ }
826
+
827
+ .stat-card:hover {
828
+ transform: translateY(-6px) scale(1.02);
829
+ box-shadow: var(--shadow-glow-lg);
830
+ border-color: rgba(255, 255, 255, 0.4);
831
+ }
832
+
833
+ .stat-card:hover::before {
834
+ left: 100%;
835
+ }
836
+
837
+ .stat-card:hover::after {
838
+ opacity: 1;
839
+ }
840
+
841
+ .stat-value {
842
+ font-size: var(--text-3xl);
843
+ font-weight: var(--font-bold);
844
+ color: #ffffff;
845
+ display: block;
846
+ margin-bottom: var(--spacing-xs);
847
+ }
848
+
849
+ .stat-label {
850
+ font-size: var(--text-sm);
851
+ color: rgba(255, 255, 255, 0.8);
852
+ font-weight: var(--font-medium);
853
+ text-transform: uppercase;
854
+ letter-spacing: 0.05em;
855
+ }
856
+
857
+ .stat-icon {
858
+ font-size: var(--text-2xl);
859
+ margin-bottom: var(--spacing-sm);
860
+ opacity: 0.8;
861
+ }
862
+
863
+ @media (max-width: 768px) {
864
+ .stats-grid {
865
+ grid-template-columns: repeat(2, 1fr);
866
+ gap: var(--spacing-md);
867
+ }
868
+
869
+ .stat-card {
870
+ padding: var(--spacing-lg);
871
+ }
872
+
873
+ .stat-value {
874
+ font-size: var(--text-2xl);
875
+ }
876
+ }
877
+
878
+ /* ===== NAVIGATION STYLES ===== */
879
+ .nav-tabs {
880
+ display: flex;
881
+ background: var(--surface-glass);
882
+ backdrop-filter: var(--backdrop-blur);
883
+ border-radius: var(--radius-lg) var(--radius-lg) 0 0;
884
+ overflow: hidden;
885
+ margin-bottom: 0;
886
+ border: 1px solid var(--border-glass);
887
+ border-bottom: none;
888
+ box-shadow: var(--shadow-glass);
889
+ position: relative;
890
+ }
891
+
892
+ .nav-tabs::before {
893
+ content: '';
894
+ position: absolute;
895
+ top: 0;
896
+ left: 0;
897
+ right: 0;
898
+ height: 2px;
899
+ background: var(--gradient-primary);
900
+ opacity: 0.6;
901
+ }
902
+
903
+ .nav-tab {
904
+ background: none;
905
+ border: none;
906
+ padding: var(--spacing-lg) var(--spacing-xl);
907
+ color: var(--text-secondary);
908
+ cursor: pointer;
909
+ font-size: var(--text-base);
910
+ font-weight: var(--font-semibold);
911
+ font-family: var(--font-family-sans);
912
+ transition: all var(--transition-bounce);
913
+ position: relative;
914
+ flex: 1;
915
+ text-align: center;
916
+ display: flex;
917
+ align-items: center;
918
+ justify-content: center;
919
+ gap: var(--spacing-sm);
920
+ min-height: 60px;
921
+ overflow: hidden;
922
+ }
923
+
924
+ .nav-tab::before {
925
+ content: '';
926
+ position: absolute;
927
+ bottom: 0;
928
+ left: 0;
929
+ right: 0;
930
+ height: 3px;
931
+ background: var(--gradient-primary);
932
+ transform: scaleX(0);
933
+ transition: transform var(--transition-elastic);
934
+ border-radius: 2px 2px 0 0;
935
+ }
936
+
937
+ .nav-tab::after {
938
+ content: '';
939
+ position: absolute;
940
+ top: 0;
941
+ left: 0;
942
+ right: 0;
943
+ bottom: 0;
944
+ background: var(--gradient-glass);
945
+ opacity: 0;
946
+ transition: opacity var(--transition-normal);
947
+ }
948
+
949
+ .nav-tab:hover {
950
+ background: var(--surface-glass-light);
951
+ color: var(--text-primary);
952
+ transform: translateY(-2px);
953
+ box-shadow: var(--shadow-md);
954
+ }
955
+
956
+ .nav-tab:hover::after {
957
+ opacity: 0.5;
958
+ }
959
+
960
+ .nav-tab.active {
961
+ background: var(--gradient-primary);
962
+ color: white;
963
+ box-shadow: var(--shadow-glow);
964
+ transform: translateY(-1px);
965
+ }
966
+
967
+ .nav-tab.active::before {
968
+ transform: scaleX(1);
969
+ }
970
+
971
+ .nav-tab.active::after {
972
+ opacity: 0.3;
973
+ }
974
+
975
+ .nav-tab-icon {
976
+ font-size: var(--text-lg);
977
+ }
978
+
979
+ @media (max-width: 768px) {
980
+ .nav-tabs {
981
+ flex-wrap: wrap;
982
+ }
983
+
984
+ .nav-tab {
985
+ flex: 1 1 50%;
986
+ padding: var(--spacing-md) var(--spacing-lg);
987
+ font-size: var(--text-sm);
988
+ }
989
+
990
+ .nav-tab-text {
991
+ display: none;
992
+ }
993
+ }
994
+
995
+ /* ===== MODERN TAB CONTENT STYLES ===== */
996
+ .tab-container {
997
+ background: var(--surface-glass);
998
+ backdrop-filter: var(--backdrop-blur);
999
+ border: 1px solid var(--border-glass);
1000
+ border-top: none;
1001
+ border-radius: 0 0 var(--radius-xl) var(--radius-xl);
1002
+ min-height: 600px;
1003
+ position: relative;
1004
+ overflow: hidden;
1005
+ }
1006
+
1007
+ .tab-container::before {
1008
+ content: '';
1009
+ position: absolute;
1010
+ top: 0;
1011
+ left: 0;
1012
+ right: 0;
1013
+ bottom: 0;
1014
+ background: var(--gradient-glass);
1015
+ opacity: 0.1;
1016
+ pointer-events: none;
1017
+ }
1018
+
1019
+ .tab-content {
1020
+ display: none;
1021
+ padding: var(--spacing-2xl);
1022
+ animation: fadeIn var(--transition-normal) var(--ease-out-expo);
1023
+ position: relative;
1024
+ z-index: 2;
1025
+ }
1026
+
1027
+ .tab-content.active {
1028
+ display: block;
1029
+ }
1030
+
1031
+ /* ===== PREMIUM SECTION STYLES ===== */
1032
+ .endpoint-section {
1033
+ margin-bottom: var(--spacing-2xl);
1034
+ padding: var(--spacing-2xl);
1035
+ background: var(--surface-premium);
1036
+ backdrop-filter: var(--backdrop-blur-lg);
1037
+ border-radius: var(--radius-xl);
1038
+ border: 1px solid transparent;
1039
+ border-image: var(--gradient-border) 1;
1040
+ position: relative;
1041
+ overflow: hidden;
1042
+ box-shadow: var(--shadow-premium);
1043
+ animation: fadeIn 0.8s var(--ease-out-expo);
1044
+ }
1045
+
1046
+ .endpoint-section::before {
1047
+ content: '';
1048
+ position: absolute;
1049
+ top: 0;
1050
+ left: 0;
1051
+ right: 0;
1052
+ height: 4px;
1053
+ background: var(--gradient-premium);
1054
+ opacity: 1;
1055
+ z-index: 2;
1056
+ }
1057
+
1058
+ .endpoint-section::after {
1059
+ content: '';
1060
+ position: absolute;
1061
+ top: 0;
1062
+ left: 0;
1063
+ right: 0;
1064
+ bottom: 0;
1065
+ background: var(--gradient-glass);
1066
+ opacity: 0.1;
1067
+ pointer-events: none;
1068
+ border-radius: var(--radius-xl);
1069
+ }
1070
+
1071
+ .section-title {
1072
+ font-size: var(--text-2xl);
1073
+ font-weight: var(--font-bold);
1074
+ color: var(--text-primary);
1075
+ margin-bottom: var(--spacing-lg);
1076
+ padding-bottom: var(--spacing-sm);
1077
+ border-bottom: 2px solid var(--primary-color);
1078
+ }
1079
+
1080
+ .section-title::after {
1081
+ content: '';
1082
+ position: absolute;
1083
+ bottom: 0;
1084
+ left: 0;
1085
+ width: 60%;
1086
+ height: 2px;
1087
+ background: var(--gradient-secondary);
1088
+ border-radius: var(--radius-sm);
1089
+ animation: gradientShift 3s ease infinite;
1090
+ }
1091
+
1092
+ .section-description {
1093
+ color: var(--text-secondary);
1094
+ font-size: var(--text-base);
1095
+ line-height: var(--leading-relaxed);
1096
+ margin-bottom: var(--spacing-lg);
1097
+ max-width: 800px;
1098
+ }
1099
+
1100
+ /* ===== SIMPLE SECTION ELEMENTS ===== */
1101
+ .endpoint-section {
1102
+ margin-bottom: var(--spacing-2xl);
1103
+ }
1104
+
1105
+ /* ===== SIMPLE ENDPOINT CARD STYLES ===== */
1106
+ .endpoint-card {
1107
+ background: var(--surface-color);
1108
+ border: 1px solid var(--border-color);
1109
+ border-radius: var(--radius-lg);
1110
+ margin-bottom: var(--spacing-lg);
1111
+ overflow: hidden;
1112
+ transition: box-shadow var(--transition-normal);
1113
+ box-shadow: var(--shadow);
1114
+ }
1115
+
1116
+ .endpoint-card:hover {
1117
+ box-shadow: var(--shadow-md);
1118
+ }
1119
+
1120
+ .endpoint-header {
1121
+ padding: var(--spacing-xl) var(--spacing-2xl);
1122
+ cursor: pointer;
1123
+ display: flex;
1124
+ align-items: center;
1125
+ justify-content: space-between;
1126
+ background: var(--surface-glass);
1127
+ backdrop-filter: var(--backdrop-blur);
1128
+ border: 1px solid var(--border-glass);
1129
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
1130
+ transition: all var(--transition-bounce);
1131
+ position: relative;
1132
+ overflow: hidden;
1133
+ }
1134
+
1135
+ .endpoint-header::before {
1136
+ content: '';
1137
+ position: absolute;
1138
+ top: 0;
1139
+ left: -100%;
1140
+ width: 100%;
1141
+ height: 100%;
1142
+ background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.1), transparent);
1143
+ transition: left 0.6s var(--ease-out-expo);
1144
+ }
1145
+
1146
+ .endpoint-header::after {
1147
+ content: '';
1148
+ position: absolute;
1149
+ bottom: 0;
1150
+ left: 0;
1151
+ right: 0;
1152
+ height: 3px;
1153
+ background: var(--gradient-primary);
1154
+ transform: scaleX(0);
1155
+ transition: transform var(--transition-elastic);
1156
+ }
1157
+
1158
+ .endpoint-header:hover {
1159
+ background: var(--surface-glass-light);
1160
+ transform: translateY(-2px);
1161
+ box-shadow: var(--shadow-lg);
1162
+ }
1163
+
1164
+ .endpoint-header:hover::before {
1165
+ left: 100%;
1166
+ }
1167
+
1168
+ .endpoint-header:hover::after {
1169
+ transform: scaleX(1);
1170
+ }
1171
+
1172
+ .endpoint-header.expanded {
1173
+ background: var(--gradient-primary);
1174
+ color: white;
1175
+ box-shadow: var(--shadow-glow-lg);
1176
+ border-color: var(--primary-color);
1177
+ }
1178
+
1179
+ .endpoint-header.expanded::after {
1180
+ transform: scaleX(1);
1181
+ background: rgba(255, 255, 255, 0.3);
1182
+ }
1183
+
1184
+ .endpoint-header.expanded .method-badge {
1185
+ background: rgba(255, 255, 255, 0.2);
1186
+ color: white;
1187
+ border-color: rgba(255, 255, 255, 0.3);
1188
+ }
1189
+
1190
+ .endpoint-header.expanded .endpoint-path {
1191
+ color: rgba(255, 255, 255, 0.9);
1192
+ font-weight: var(--font-bold);
1193
+ }
1194
+
1195
+ .endpoint-header.expanded .endpoint-summary {
1196
+ color: rgba(255, 255, 255, 0.8);
1197
+ }
1198
+
1199
+ .endpoint-method {
1200
+ display: flex;
1201
+ align-items: center;
1202
+ gap: var(--spacing-lg);
1203
+ font-weight: var(--font-semibold);
1204
+ flex: 1;
1205
+ }
1206
+
1207
+ .method-badge {
1208
+ padding: var(--spacing-sm) var(--spacing-md);
1209
+ border-radius: var(--radius);
1210
+ font-size: var(--text-xs);
1211
+ font-weight: var(--font-bold);
1212
+ text-transform: uppercase;
1213
+ letter-spacing: 0.1em;
1214
+ min-width: 60px;
1215
+ text-align: center;
1216
+ color: white;
1217
+ }
1218
+
1219
+ .method-get {
1220
+ background: var(--secondary-color);
1221
+ }
1222
+
1223
+ .method-post {
1224
+ background: var(--primary-color);
1225
+ }
1226
+
1227
+ .method-put {
1228
+ background: #8b5cf6;
1229
+ }
1230
+
1231
+ .method-delete {
1232
+ background: var(--accent-color);
1233
+ }
1234
+
1235
+ .endpoint-path {
1236
+ font-family: var(--font-family-mono);
1237
+ font-size: var(--text-lg);
1238
+ color: var(--text-primary);
1239
+ font-weight: var(--font-medium);
1240
+ flex: 2;
1241
+ }
1242
+
1243
+ .endpoint-summary {
1244
+ color: var(--text-secondary);
1245
+ font-size: var(--text-sm);
1246
+ margin-left: var(--spacing-md);
1247
+ flex: 1;
1248
+ text-align: right;
1249
+ }
1250
+
1251
+ .expand-icon {
1252
+ transition: transform var(--transition-bounce);
1253
+ color: var(--text-secondary);
1254
+ margin-left: var(--spacing-md);
1255
+ display: flex;
1256
+ align-items: center;
1257
+ justify-content: center;
1258
+ width: 32px;
1259
+ height: 32px;
1260
+ border-radius: var(--radius-full);
1261
+ background: var(--surface-glass);
1262
+ backdrop-filter: var(--backdrop-blur-sm);
1263
+ border: 1px solid var(--border-glass);
1264
+ }
1265
+
1266
+ .expand-icon svg {
1267
+ width: 20px;
1268
+ height: 20px;
1269
+ transition: transform var(--transition-bounce);
1270
+ }
1271
+
1272
+ .endpoint-header.expanded .expand-icon {
1273
+ background: var(--gradient-primary);
1274
+ color: white;
1275
+ box-shadow: var(--shadow-glow);
1276
+ }
1277
+
1278
+ .endpoint-header.expanded .expand-icon svg {
1279
+ transform: rotate(180deg);
1280
+ }
1281
+
1282
+ .expand-icon:hover {
1283
+ background: var(--surface-glass-light);
1284
+ transform: scale(1.1);
1285
+ }
1286
+
1287
+ /* ===== MODERN ENDPOINT BODY STYLES ===== */
1288
+ .endpoint-body {
1289
+ display: none;
1290
+ padding: var(--spacing-2xl);
1291
+ background: var(--surface-glass);
1292
+ backdrop-filter: var(--backdrop-blur);
1293
+ border: 1px solid var(--border-glass);
1294
+ border-top: none;
1295
+ border-radius: 0 0 var(--radius-xl) var(--radius-xl);
1296
+ position: relative;
1297
+ overflow: hidden;
1298
+ }
1299
+
1300
+ .endpoint-body::before {
1301
+ content: '';
1302
+ position: absolute;
1303
+ top: 0;
1304
+ left: 0;
1305
+ right: 0;
1306
+ bottom: 0;
1307
+ background: var(--gradient-glass);
1308
+ opacity: 0.05;
1309
+ pointer-events: none;
1310
+ }
1311
+
1312
+ .endpoint-body.expanded {
1313
+ display: block;
1314
+ animation: slideDown var(--transition-normal) var(--ease-out-expo);
1315
+ }
1316
+
1317
+ .endpoint-description {
1318
+ color: var(--text-secondary);
1319
+ margin-bottom: var(--spacing-xl);
1320
+ font-size: var(--text-base);
1321
+ line-height: var(--leading-relaxed);
1322
+ padding: var(--spacing-lg);
1323
+ background: var(--surface-light);
1324
+ border-radius: var(--radius);
1325
+ border-left: 4px solid var(--primary-color);
1326
+ }
1327
+
1328
+ @media (max-width: 768px) {
1329
+ .endpoint-header {
1330
+ flex-direction: column;
1331
+ align-items: flex-start;
1332
+ gap: var(--spacing-md);
1333
+ }
1334
+
1335
+ .endpoint-method {
1336
+ width: 100%;
1337
+ justify-content: space-between;
1338
+ }
1339
+
1340
+ .endpoint-summary {
1341
+ text-align: left;
1342
+ margin-left: 0;
1343
+ }
1344
+
1345
+ .expand-icon {
1346
+ margin-left: 0;
1347
+ }
1348
+ }
1349
+
1350
+ /* ===== PARAMETER STYLES ===== */
1351
+ .parameter-section, .response-section {
1352
+ margin-bottom: var(--spacing-xl);
1353
+ }
1354
+
1355
+ .parameter-section h4, .response-section h4 {
1356
+ color: var(--text-primary);
1357
+ font-weight: var(--font-semibold);
1358
+ margin-bottom: var(--spacing-lg);
1359
+ font-size: var(--text-lg);
1360
+ display: flex;
1361
+ align-items: center;
1362
+ gap: var(--spacing-sm);
1363
+ }
1364
+
1365
+ .parameter-list {
1366
+ display: flex;
1367
+ flex-direction: column;
1368
+ gap: var(--spacing-md);
1369
+ }
1370
+
1371
+ .parameter-item {
1372
+ background: var(--surface-light);
1373
+ border: 1px solid var(--border-color);
1374
+ border-radius: var(--radius);
1375
+ padding: var(--spacing-lg);
1376
+ transition: all var(--transition-normal);
1377
+ position: relative;
1378
+ }
1379
+
1380
+ .parameter-item:hover {
1381
+ border-color: var(--primary-color);
1382
+ background: rgba(99, 102, 241, 0.05);
1383
+ transform: translateX(4px);
1384
+ }
1385
+
1386
+ .parameter-header {
1387
+ display: flex;
1388
+ align-items: center;
1389
+ gap: var(--spacing-md);
1390
+ margin-bottom: var(--spacing-sm);
1391
+ flex-wrap: wrap;
1392
+ }
1393
+
1394
+ .parameter-name {
1395
+ font-weight: var(--font-semibold);
1396
+ color: var(--text-primary);
1397
+ font-family: var(--font-family-mono);
1398
+ font-size: var(--text-base);
1399
+ background: var(--background-color);
1400
+ padding: var(--spacing-xs) var(--spacing-sm);
1401
+ border-radius: var(--radius-sm);
1402
+ border: 1px solid var(--border-color);
1403
+ }
1404
+
1405
+ .parameter-type {
1406
+ color: var(--secondary-color);
1407
+ font-size: var(--text-sm);
1408
+ font-weight: var(--font-medium);
1409
+ background: rgba(16, 185, 129, 0.1);
1410
+ padding: var(--spacing-xs) var(--spacing-sm);
1411
+ border-radius: var(--radius-sm);
1412
+ border: 1px solid var(--secondary-color);
1413
+ }
1414
+
1415
+ .parameter-required {
1416
+ background: var(--error-color);
1417
+ color: white;
1418
+ padding: var(--spacing-xs) var(--spacing-sm);
1419
+ border-radius: var(--radius-sm);
1420
+ font-size: var(--text-xs);
1421
+ font-weight: var(--font-bold);
1422
+ text-transform: uppercase;
1423
+ letter-spacing: 0.05em;
1424
+ }
1425
+
1426
+ .parameter-optional {
1427
+ background: var(--warning-color);
1428
+ color: white;
1429
+ padding: var(--spacing-xs) var(--spacing-sm);
1430
+ border-radius: var(--radius-sm);
1431
+ font-size: var(--text-xs);
1432
+ font-weight: var(--font-bold);
1433
+ text-transform: uppercase;
1434
+ letter-spacing: 0.05em;
1435
+ }
1436
+
1437
+ .parameter-description {
1438
+ color: var(--text-secondary);
1439
+ font-size: var(--text-sm);
1440
+ line-height: var(--leading-relaxed);
1441
+ margin-top: var(--spacing-sm);
1442
+ }
1443
+
1444
+ /* ===== SIMPLE TRY IT SECTION STYLES ===== */
1445
+ .try-it-section {
1446
+ background: var(--surface-light);
1447
+ border: 1px solid var(--border-color);
1448
+ border-radius: var(--radius-lg);
1449
+ padding: var(--spacing-xl);
1450
+ margin-top: var(--spacing-lg);
1451
+ box-shadow: var(--shadow);
1452
+ }
1453
+
1454
+ .try-it-title {
1455
+ color: var(--text-primary);
1456
+ font-weight: var(--font-bold);
1457
+ margin-bottom: var(--spacing-lg);
1458
+ font-size: var(--text-lg);
1459
+ }
1460
+
1461
+ /* ===== FORM STYLES ===== */
1462
+ .form-group {
1463
+ margin-bottom: var(--spacing-lg);
1464
+ }
1465
+
1466
+ .form-row {
1467
+ display: grid;
1468
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1469
+ gap: var(--spacing-lg);
1470
+ margin-bottom: var(--spacing-lg);
1471
+ }
1472
+
1473
+ .form-label {
1474
+ display: block;
1475
+ color: var(--text-primary);
1476
+ font-weight: var(--font-medium);
1477
+ margin-bottom: var(--spacing-sm);
1478
+ font-size: var(--text-sm);
1479
+ }
1480
+
1481
+ .form-input, .form-textarea, .form-select {
1482
+ width: 100%;
1483
+ background: var(--surface-glass-ultra);
1484
+ backdrop-filter: var(--backdrop-blur-sm);
1485
+ border: 2px solid var(--border-glass);
1486
+ border-radius: var(--radius-lg);
1487
+ padding: var(--spacing-md) var(--spacing-lg);
1488
+ color: var(--text-primary);
1489
+ font-family: var(--font-family-mono);
1490
+ font-size: var(--text-sm);
1491
+ transition: all var(--transition-bounce);
1492
+ line-height: var(--leading-normal);
1493
+ box-shadow: var(--shadow-inner);
1494
+ position: relative;
1495
+ }
1496
+
1497
+ .form-textarea {
1498
+ min-height: 120px;
1499
+ resize: vertical;
1500
+ font-family: var(--font-family-mono);
1501
+ }
1502
+
1503
+ .form-input:focus, .form-textarea:focus, .form-select:focus {
1504
+ outline: none;
1505
+ border-color: var(--primary-glow);
1506
+ box-shadow: var(--shadow-glow);
1507
+ background: var(--surface-glass-light);
1508
+ transform: translateY(-3px) scale(1.01);
1509
+ }
1510
+
1511
+ .form-input:hover, .form-textarea:hover, .form-select:hover {
1512
+ border-color: var(--border-light);
1513
+ transform: translateY(-2px);
1514
+ box-shadow: var(--shadow-md);
1515
+ }
1516
+
1517
+ .form-checkbox {
1518
+ width: auto;
1519
+ margin-right: var(--spacing-sm);
1520
+ accent-color: var(--primary-color);
1521
+ }
1522
+
1523
+ /* ===== SIMPLE FORM STYLES ===== */
1524
+ .form-input, .form-textarea, .form-select {
1525
+ width: 100%;
1526
+ background: var(--surface-color);
1527
+ border: 1px solid var(--border-color);
1528
+ border-radius: var(--radius);
1529
+ padding: var(--spacing-md);
1530
+ color: var(--text-primary);
1531
+ font-family: var(--font-family-sans);
1532
+ font-size: var(--text-sm);
1533
+ transition: border-color var(--transition-normal);
1534
+ }
1535
+
1536
+ .form-input:focus, .form-textarea:focus, .form-select:focus {
1537
+ outline: none;
1538
+ border-color: var(--primary-color);
1539
+ }
1540
+
1541
+ .form-input:hover, .form-textarea:hover, .form-select:hover {
1542
+ border-color: var(--border-light);
1543
+ }
1544
+
1545
+ .form-grid {
1546
+ display: grid;
1547
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1548
+ gap: var(--spacing-lg);
1549
+ margin-bottom: var(--spacing-lg);
1550
+ }
1551
+
1552
+ .checkbox-group {
1553
+ margin: var(--spacing-xl) 0;
1554
+ }
1555
+
1556
+ .modern-checkbox {
1557
+ display: flex;
1558
+ align-items: center;
1559
+ gap: var(--spacing-md);
1560
+ cursor: pointer;
1561
+ padding: var(--spacing-md);
1562
+ border-radius: var(--radius-lg);
1563
+ transition: all var(--transition-normal);
1564
+ background: var(--surface-glass);
1565
+ border: 1px solid var(--border-glass);
1566
+ backdrop-filter: var(--backdrop-blur-sm);
1567
+ }
1568
+
1569
+ .modern-checkbox:hover {
1570
+ background: var(--surface-glass-light);
1571
+ transform: translateY(-2px);
1572
+ box-shadow: var(--shadow-md);
1573
+ }
1574
+
1575
+ .modern-checkbox input[type="checkbox"] {
1576
+ display: none;
1577
+ }
1578
+
1579
+ .checkmark {
1580
+ width: 24px;
1581
+ height: 24px;
1582
+ border: 2px solid var(--border-color);
1583
+ border-radius: var(--radius-sm);
1584
+ position: relative;
1585
+ transition: all var(--transition-bounce);
1586
+ background: var(--surface-color);
1587
+ }
1588
+
1589
+ .checkmark::after {
1590
+ content: '';
1591
+ position: absolute;
1592
+ top: 50%;
1593
+ left: 50%;
1594
+ width: 6px;
1595
+ height: 10px;
1596
+ border: solid white;
1597
+ border-width: 0 2px 2px 0;
1598
+ transform: translate(-50%, -60%) rotate(45deg);
1599
+ opacity: 0;
1600
+ transition: all var(--transition-normal);
1601
+ }
1602
+
1603
+ .modern-checkbox input[type="checkbox"]:checked + .checkmark {
1604
+ background: var(--gradient-primary);
1605
+ border-color: var(--primary-color);
1606
+ box-shadow: var(--shadow-glow);
1607
+ }
1608
+
1609
+ .modern-checkbox input[type="checkbox"]:checked + .checkmark::after {
1610
+ opacity: 1;
1611
+ }
1612
+
1613
+ .checkbox-label {
1614
+ display: flex;
1615
+ align-items: center;
1616
+ gap: var(--spacing-sm);
1617
+ font-weight: var(--font-medium);
1618
+ color: var(--text-primary);
1619
+ }
1620
+
1621
+ .btn {
1622
+ background: var(--primary-color);
1623
+ border: none;
1624
+ border-radius: var(--radius);
1625
+ padding: var(--spacing-md) var(--spacing-lg);
1626
+ font-weight: var(--font-semibold);
1627
+ font-size: var(--text-sm);
1628
+ color: white;
1629
+ cursor: pointer;
1630
+ transition: background-color var(--transition-normal);
1631
+ display: inline-flex;
1632
+ align-items: center;
1633
+ justify-content: center;
1634
+ gap: var(--spacing-sm);
1635
+ }
1636
+
1637
+ .btn:hover {
1638
+ background: var(--primary-dark);
1639
+ }
1640
+
1641
+ .btn:active {
1642
+ background: var(--primary-dark);
1643
+ }
1644
+
1645
+ .btn-primary {
1646
+ background: var(--primary-color);
1647
+ }
1648
+
1649
+ .btn-secondary {
1650
+ background: var(--secondary-color);
1651
+ }
1652
+
1653
+ .modern-response {
1654
+ margin-top: var(--spacing-xl);
1655
+ border-radius: var(--radius-xl);
1656
+ overflow: hidden;
1657
+ backdrop-filter: var(--backdrop-blur);
1658
+ border: 1px solid var(--border-glass);
1659
+ }
1660
+
1661
+ .form-label {
1662
+ display: flex;
1663
+ align-items: center;
1664
+ gap: var(--spacing-sm);
1665
+ color: var(--text-primary);
1666
+ font-weight: var(--font-semibold);
1667
+ margin-bottom: var(--spacing-md);
1668
+ font-size: var(--text-sm);
1669
+ }
1670
+
1671
+ .form-label .icon {
1672
+ width: 16px;
1673
+ height: 16px;
1674
+ opacity: 0.7;
1675
+ }
1676
+
1677
+ /* ===== ENHANCED SELECT STYLING ===== */
1678
+ .modern-select {
1679
+ background: var(--surface-glass);
1680
+ backdrop-filter: var(--backdrop-blur-sm);
1681
+ border: 2px solid var(--border-glass);
1682
+ border-radius: var(--radius-xl);
1683
+ padding: var(--spacing-lg);
1684
+ color: var(--text-primary);
1685
+ font-family: var(--font-family-sans);
1686
+ font-size: var(--text-sm);
1687
+ transition: all var(--transition-bounce);
1688
+ cursor: pointer;
1689
+ appearance: none;
1690
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
1691
+ background-position: right 12px center;
1692
+ background-repeat: no-repeat;
1693
+ background-size: 16px;
1694
+ padding-right: 48px;
1695
+ position: relative;
1696
+ }
1697
+
1698
+ .modern-select:focus {
1699
+ border-color: var(--primary-color);
1700
+ box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1), var(--shadow-glow);
1701
+ transform: translateY(-2px);
1702
+ outline: none;
1703
+ }
1704
+
1705
+ .modern-select:hover {
1706
+ border-color: var(--border-light);
1707
+ transform: translateY(-1px);
1708
+ }
1709
+
1710
+ .modern-select option {
1711
+ background: var(--surface-color);
1712
+ color: var(--text-primary);
1713
+ padding: var(--spacing-md);
1714
+ }
1715
+
1716
+ /* ===== FORM HINTS ===== */
1717
+ .form-hint {
1718
+ display: block;
1719
+ color: var(--text-muted);
1720
+ font-size: var(--text-xs);
1721
+ margin-top: var(--spacing-xs);
1722
+ font-style: italic;
1723
+ opacity: 0.8;
1724
+ }
1725
+
1726
+ /* ===== ADVANCED PARAMETERS SECTION ===== */
1727
+ .advanced-section {
1728
+ margin: var(--spacing-xl) 0;
1729
+ border-top: 1px solid var(--border-glass);
1730
+ padding-top: var(--spacing-xl);
1731
+ }
1732
+
1733
+ .advanced-toggle {
1734
+ background: var(--surface-glass);
1735
+ backdrop-filter: var(--backdrop-blur-sm);
1736
+ border: 1px solid var(--border-glass);
1737
+ border-radius: var(--radius-lg);
1738
+ padding: var(--spacing-md) var(--spacing-lg);
1739
+ color: var(--text-primary);
1740
+ font-weight: var(--font-semibold);
1741
+ cursor: pointer;
1742
+ transition: all var(--transition-bounce);
1743
+ display: flex;
1744
+ align-items: center;
1745
+ gap: var(--spacing-sm);
1746
+ width: 100%;
1747
+ justify-content: center;
1748
+ font-size: var(--text-sm);
1749
+ }
1750
+
1751
+ .advanced-toggle:hover {
1752
+ background: var(--surface-glass-light);
1753
+ transform: translateY(-2px);
1754
+ box-shadow: var(--shadow-md);
1755
+ }
1756
+
1757
+ .advanced-toggle .icon {
1758
+ width: 20px;
1759
+ height: 20px;
1760
+ transition: transform var(--transition-bounce);
1761
+ }
1762
+
1763
+ .advanced-toggle.expanded .icon {
1764
+ transform: rotate(180deg);
1765
+ }
1766
+
1767
+ .advanced-params {
1768
+ display: none;
1769
+ margin-top: var(--spacing-lg);
1770
+ padding: var(--spacing-lg);
1771
+ background: var(--surface-glass-light);
1772
+ border-radius: var(--radius-lg);
1773
+ border: 1px solid var(--border-glass);
1774
+ backdrop-filter: var(--backdrop-blur);
1775
+ }
1776
+
1777
+ .advanced-params.show {
1778
+ display: block;
1779
+ animation: slideDown var(--transition-normal) var(--ease-out-expo);
1780
+ }
1781
+
1782
+ /* ===== CHECKBOX GRID ===== */
1783
+ .checkbox-grid {
1784
+ display: grid;
1785
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1786
+ gap: var(--spacing-md);
1787
+ margin: var(--spacing-xl) 0;
1788
+ }
1789
+
1790
+ /* ===== ENHANCED COLOR SCHEME ===== */
1791
+ :root {
1792
+ /* Enhanced Primary Colors */
1793
+ --primary-color: #6366f1;
1794
+ --primary-dark: #4f46e5;
1795
+ --primary-light: #818cf8;
1796
+ --primary-glow: rgba(99, 102, 241, 0.4);
1797
+
1798
+ /* Enhanced Secondary Colors */
1799
+ --secondary-color: #06b6d4;
1800
+ --secondary-dark: #0891b2;
1801
+ --secondary-light: #22d3ee;
1802
+ --secondary-glow: rgba(6, 182, 212, 0.4);
1803
+
1804
+ /* Enhanced Accent Colors */
1805
+ --accent-color: #f59e0b;
1806
+ --accent-dark: #d97706;
1807
+ --accent-light: #fbbf24;
1808
+ --accent-glow: rgba(245, 158, 11, 0.4);
1809
+
1810
+ /* Success Colors */
1811
+ --success-color: #10b981;
1812
+ --success-dark: #059669;
1813
+ --success-light: #34d399;
1814
+ --success-glow: rgba(16, 185, 129, 0.4);
1815
+
1816
+ /* Enhanced Gradients */
1817
+ --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1818
+ --gradient-secondary: linear-gradient(135deg, #06b6d4 0%, #3b82f6 100%);
1819
+ --gradient-accent: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
1820
+ --gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);
1821
+ --gradient-cosmic: linear-gradient(135deg, #667eea 0%, #764ba2 25%, #f093fb 50%, #f5576c 75%, #4facfe 100%);
1822
+
1823
+ /* Enhanced Glass Effects */
1824
+ --glass-bg: rgba(255, 255, 255, 0.1);
1825
+ --glass-border: rgba(255, 255, 255, 0.2);
1826
+ --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
1827
+ }
1828
+
1829
+ /* ===== BUTTON STYLES ===== */
1830
+ .btn {
1831
+ background: var(--gradient-primary);
1832
+ color: white;
1833
+ border: none;
1834
+ border-radius: var(--radius-lg);
1835
+ padding: var(--spacing-md) var(--spacing-xl);
1836
+ font-weight: var(--font-semibold);
1837
+ font-size: var(--text-sm);
1838
+ cursor: pointer;
1839
+ transition: all var(--transition-bounce);
1840
+ display: inline-flex;
1841
+ align-items: center;
1842
+ justify-content: center;
1843
+ gap: var(--spacing-sm);
1844
+ text-decoration: none;
1845
+ font-family: var(--font-family-sans);
1846
+ min-height: 44px;
1847
+ position: relative;
1848
+ overflow: hidden;
1849
+ box-shadow: var(--shadow-md);
1850
+ backdrop-filter: var(--backdrop-blur-sm);
1851
+ }
1852
+
1853
+ .btn::before {
1854
+ content: '';
1855
+ position: absolute;
1856
+ top: 0;
1857
+ left: -100%;
1858
+ width: 100%;
1859
+ height: 100%;
1860
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
1861
+ transition: left 0.6s var(--ease-out-expo);
1862
+ }
1863
+
1864
+ .btn::after {
1865
+ content: '';
1866
+ position: absolute;
1867
+ top: 0;
1868
+ left: 0;
1869
+ right: 0;
1870
+ bottom: 0;
1871
+ background: radial-gradient(circle at center, rgba(255,255,255,0.1) 0%, transparent 70%);
1872
+ opacity: 0;
1873
+ transition: opacity var(--transition-normal);
1874
+ }
1875
+
1876
+ .btn:hover {
1877
+ transform: translateY(-3px) scale(1.02);
1878
+ box-shadow: var(--shadow-glow-lg);
1879
+ }
1880
+
1881
+ .btn:hover::before {
1882
+ left: 100%;
1883
+ }
1884
+
1885
+ .btn:hover::after {
1886
+ opacity: 1;
1887
+ }
1888
+
1889
+ .btn:active {
1890
+ transform: translateY(-1px) scale(0.98);
1891
+ transition: all 0.1s;
1892
+ }
1893
+
1894
+ .btn:disabled {
1895
+ opacity: 0.6;
1896
+ cursor: not-allowed;
1897
+ transform: none;
1898
+ box-shadow: var(--shadow-sm);
1899
+ }
1900
+
1901
+ .btn-secondary {
1902
+ background: var(--gradient-secondary);
1903
+ }
1904
+
1905
+ .btn-accent {
1906
+ background: var(--gradient-accent);
1907
+ }
1908
+
1909
+ .btn-outline {
1910
+ background: transparent;
1911
+ border: 2px solid var(--primary-color);
1912
+ color: var(--primary-color);
1913
+ }
1914
+
1915
+ .btn-outline:hover {
1916
+ background: var(--primary-color);
1917
+ color: white;
1918
+ }
1919
+
1920
+ /* ===== PREMIUM AUTHENTICATION STYLES ===== */
1921
+ .auth-info-card {
1922
+ background: var(--surface-premium);
1923
+ backdrop-filter: var(--backdrop-blur-lg);
1924
+ border: 1px solid transparent;
1925
+ border-image: var(--gradient-border) 1;
1926
+ border-radius: var(--radius-xl);
1927
+ margin-bottom: var(--spacing-xl);
1928
+ overflow: hidden;
1929
+ box-shadow: var(--shadow-premium);
1930
+ position: relative;
1931
+ }
1932
+
1933
+ .auth-info-card::before {
1934
+ content: '';
1935
+ position: absolute;
1936
+ top: 0;
1937
+ left: 0;
1938
+ right: 0;
1939
+ height: 4px;
1940
+ background: var(--gradient-premium);
1941
+ z-index: 2;
1942
+ }
1943
+
1944
+ .auth-info-header {
1945
+ background: var(--gradient-premium);
1946
+ padding: var(--spacing-xl) var(--spacing-2xl);
1947
+ color: white;
1948
+ position: relative;
1949
+ overflow: hidden;
1950
+ }
1951
+
1952
+ .auth-info-header::before {
1953
+ content: '';
1954
+ position: absolute;
1955
+ top: 0;
1956
+ left: 0;
1957
+ right: 0;
1958
+ bottom: 0;
1959
+ background: var(--gradient-glass);
1960
+ opacity: 0.2;
1961
+ pointer-events: none;
1962
+ }
1963
+
1964
+ .auth-title {
1965
+ font-size: var(--text-xl);
1966
+ font-weight: var(--font-bold);
1967
+ margin: 0;
1968
+ display: flex;
1969
+ align-items: center;
1970
+ gap: var(--spacing-md);
1971
+ position: relative;
1972
+ z-index: 2;
1973
+ }
1974
+
1975
+ .auth-icon {
1976
+ width: 24px;
1977
+ height: 24px;
1978
+ filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.3));
1979
+ }
1980
+
1981
+ .auth-info-content {
1982
+ padding: var(--spacing-xl);
1983
+ }
1984
+
1985
+ .auth-info-content p {
1986
+ color: var(--text-secondary);
1987
+ line-height: var(--leading-relaxed);
1988
+ margin-bottom: var(--spacing-lg);
1989
+ }
1990
+
1991
+ .code-block {
1992
+ background: var(--background-color);
1993
+ border: 1px solid var(--border-color);
1994
+ border-radius: var(--radius);
1995
+ margin: var(--spacing-lg) 0;
1996
+ overflow: hidden;
1997
+ }
1998
+
1999
+ .code-header {
2000
+ background: var(--surface-light);
2001
+ padding: var(--spacing-md) var(--spacing-lg);
2002
+ display: flex;
2003
+ justify-content: space-between;
2004
+ align-items: center;
2005
+ border-bottom: 1px solid var(--border-color);
2006
+ }
2007
+
2008
+ .code-title {
2009
+ color: var(--text-primary);
2010
+ font-weight: var(--font-medium);
2011
+ font-size: var(--text-sm);
2012
+ }
2013
+
2014
+ .copy-btn {
2015
+ background: var(--primary-color);
2016
+ color: white;
2017
+ border: none;
2018
+ border-radius: var(--radius-sm);
2019
+ padding: var(--spacing-xs) var(--spacing-sm);
2020
+ font-size: var(--text-xs);
2021
+ cursor: pointer;
2022
+ transition: all var(--transition-fast);
2023
+ }
2024
+
2025
+ .copy-btn:hover {
2026
+ background: var(--primary-dark);
2027
+ transform: scale(1.05);
2028
+ }
2029
+
2030
+ .code-block pre {
2031
+ margin: 0;
2032
+ padding: var(--spacing-lg);
2033
+ color: var(--secondary-color);
2034
+ font-family: var(--font-family-mono);
2035
+ font-size: var(--text-sm);
2036
+ line-height: var(--leading-relaxed);
2037
+ overflow-x: auto;
2038
+ }
2039
+
2040
+ .steps-container {
2041
+ margin-top: var(--spacing-xl);
2042
+ }
2043
+
2044
+ .steps-container h4 {
2045
+ color: var(--text-primary);
2046
+ font-weight: var(--font-semibold);
2047
+ margin-bottom: var(--spacing-md);
2048
+ font-size: var(--text-lg);
2049
+ }
2050
+
2051
+ .steps-list {
2052
+ color: var(--text-secondary);
2053
+ margin-left: var(--spacing-xl);
2054
+ line-height: var(--leading-loose);
2055
+ }
2056
+
2057
+ .steps-list li {
2058
+ margin-bottom: var(--spacing-sm);
2059
+ position: relative;
2060
+ }
2061
+
2062
+ .steps-list li::marker {
2063
+ color: var(--primary-color);
2064
+ font-weight: var(--font-bold);
2065
+ }
2066
+
2067
+ /* ===== SECURITY TIPS STYLES ===== */
2068
+ .security-tips {
2069
+ margin: var(--spacing-2xl) 0;
2070
+ padding: var(--spacing-xl);
2071
+ background: var(--surface-color);
2072
+ border-radius: var(--radius-lg);
2073
+ border: 1px solid var(--border-color);
2074
+ }
2075
+
2076
+ .security-tips h3 {
2077
+ color: var(--text-primary);
2078
+ font-size: var(--text-xl);
2079
+ font-weight: var(--font-bold);
2080
+ margin-bottom: var(--spacing-lg);
2081
+ text-align: center;
2082
+ }
2083
+
2084
+ .tips-grid {
2085
+ display: grid;
2086
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
2087
+ gap: var(--spacing-lg);
2088
+ }
2089
+
2090
+ .tip-card {
2091
+ background: var(--background-color);
2092
+ border: 1px solid var(--border-color);
2093
+ border-radius: var(--radius);
2094
+ padding: var(--spacing-lg);
2095
+ text-align: center;
2096
+ transition: all var(--transition-normal);
2097
+ }
2098
+
2099
+ .tip-card:hover {
2100
+ transform: translateY(-4px);
2101
+ box-shadow: var(--shadow-lg);
2102
+ border-color: var(--primary-color);
2103
+ }
2104
+
2105
+ .tip-icon {
2106
+ font-size: var(--text-3xl);
2107
+ margin-bottom: var(--spacing-md);
2108
+ }
2109
+
2110
+ .tip-card h4 {
2111
+ color: var(--text-primary);
2112
+ font-weight: var(--font-semibold);
2113
+ margin-bottom: var(--spacing-sm);
2114
+ font-size: var(--text-base);
2115
+ }
2116
+
2117
+ .tip-card p {
2118
+ color: var(--text-secondary);
2119
+ font-size: var(--text-sm);
2120
+ line-height: var(--leading-relaxed);
2121
+ }
2122
+
2123
+ /* ===== RATE LIMIT STYLES ===== */
2124
+ .rate-limit-info {
2125
+ margin: var(--spacing-2xl) 0;
2126
+ padding: var(--spacing-xl);
2127
+ background: var(--surface-color);
2128
+ border-radius: var(--radius-lg);
2129
+ border: 1px solid var(--border-color);
2130
+ }
2131
+
2132
+ .rate-limit-info h3 {
2133
+ color: var(--text-primary);
2134
+ font-size: var(--text-xl);
2135
+ font-weight: var(--font-bold);
2136
+ margin-bottom: var(--spacing-lg);
2137
+ }
2138
+
2139
+ .rate-limit-content p {
2140
+ color: var(--text-secondary);
2141
+ line-height: var(--leading-relaxed);
2142
+ margin-bottom: var(--spacing-lg);
2143
+ }
2144
+
2145
+ .rate-limit-table {
2146
+ background: var(--background-color);
2147
+ border: 1px solid var(--border-color);
2148
+ border-radius: var(--radius);
2149
+ overflow: hidden;
2150
+ margin: var(--spacing-lg) 0;
2151
+ }
2152
+
2153
+ .table-header {
2154
+ display: grid;
2155
+ grid-template-columns: 1fr 1fr 2fr;
2156
+ background: var(--surface-light);
2157
+ font-weight: var(--font-semibold);
2158
+ color: var(--text-primary);
2159
+ }
2160
+
2161
+ .table-row {
2162
+ display: grid;
2163
+ grid-template-columns: 1fr 1fr 2fr;
2164
+ border-top: 1px solid var(--border-color);
2165
+ }
2166
+
2167
+ .table-cell {
2168
+ padding: var(--spacing-md) var(--spacing-lg);
2169
+ color: var(--text-secondary);
2170
+ font-size: var(--text-sm);
2171
+ }
2172
+
2173
+ .table-header .table-cell {
2174
+ color: var(--text-primary);
2175
+ font-weight: var(--font-semibold);
2176
+ }
2177
+
2178
+ .rate-limit-headers {
2179
+ margin-top: var(--spacing-xl);
2180
+ }
2181
+
2182
+ .rate-limit-headers h4 {
2183
+ color: var(--text-primary);
2184
+ font-weight: var(--font-semibold);
2185
+ margin-bottom: var(--spacing-md);
2186
+ }
2187
+
2188
+ .rate-limit-headers p {
2189
+ color: var(--text-secondary);
2190
+ margin-bottom: var(--spacing-md);
2191
+ }
2192
+
2193
+ .rate-limit-headers ul {
2194
+ color: var(--text-secondary);
2195
+ margin-left: var(--spacing-lg);
2196
+ line-height: var(--leading-loose);
2197
+ }
2198
+
2199
+ .rate-limit-headers code {
2200
+ background: var(--surface-light);
2201
+ color: var(--secondary-color);
2202
+ padding: var(--spacing-xs) var(--spacing-sm);
2203
+ border-radius: var(--radius-sm);
2204
+ font-family: var(--font-family-mono);
2205
+ font-size: var(--text-sm);
2206
+ }
2207
+
2208
+ /* ===== MODELS STYLES ===== */
2209
+ .models-controls {
2210
+ display: flex;
2211
+ gap: var(--spacing-lg);
2212
+ margin-bottom: var(--spacing-xl);
2213
+ align-items: center;
2214
+ flex-wrap: wrap;
2215
+ }
2216
+
2217
+ .search-container {
2218
+ flex: 1;
2219
+ min-width: 250px;
2220
+ }
2221
+
2222
+ .search-input {
2223
+ width: 100%;
2224
+ background: var(--surface-color);
2225
+ border: 2px solid var(--border-color);
2226
+ border-radius: var(--radius-lg);
2227
+ padding: var(--spacing-md) var(--spacing-lg);
2228
+ color: var(--text-primary);
2229
+ font-size: var(--text-base);
2230
+ transition: all var(--transition-normal);
2231
+ }
2232
+
2233
+ .search-input:focus {
2234
+ outline: none;
2235
+ border-color: var(--primary-color);
2236
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
2237
+ }
2238
+
2239
+ .filter-container {
2240
+ min-width: 150px;
2241
+ }
2242
+
2243
+ .filter-select {
2244
+ width: 100%;
2245
+ background: var(--surface-color);
2246
+ border: 2px solid var(--border-color);
2247
+ border-radius: var(--radius);
2248
+ padding: var(--spacing-md);
2249
+ color: var(--text-primary);
2250
+ font-size: var(--text-sm);
2251
+ cursor: pointer;
2252
+ }
2253
+
2254
+ .view-toggle {
2255
+ display: flex;
2256
+ background: var(--surface-color);
2257
+ border: 1px solid var(--border-color);
2258
+ border-radius: var(--radius);
2259
+ overflow: hidden;
2260
+ }
2261
+
2262
+ .view-btn {
2263
+ background: none;
2264
+ border: none;
2265
+ padding: var(--spacing-md);
2266
+ color: var(--text-secondary);
2267
+ cursor: pointer;
2268
+ transition: all var(--transition-fast);
2269
+ font-size: var(--text-lg);
2270
+ }
2271
+
2272
+ .view-btn:hover {
2273
+ background: var(--surface-light);
2274
+ color: var(--text-primary);
2275
+ }
2276
+
2277
+ .view-btn.active {
2278
+ background: var(--primary-color);
2279
+ color: white;
2280
+ }
2281
+
2282
+ .models-stats {
2283
+ display: grid;
2284
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
2285
+ gap: var(--spacing-lg);
2286
+ margin-bottom: var(--spacing-xl);
2287
+ padding: var(--spacing-lg);
2288
+ background: var(--surface-color);
2289
+ border-radius: var(--radius-lg);
2290
+ border: 1px solid var(--border-color);
2291
+ }
2292
+
2293
+ .stat-item {
2294
+ text-align: center;
2295
+ padding: var(--spacing-md);
2296
+ }
2297
+
2298
+ .stat-number {
2299
+ display: block;
2300
+ font-size: var(--text-2xl);
2301
+ font-weight: var(--font-bold);
2302
+ color: var(--primary-color);
2303
+ margin-bottom: var(--spacing-xs);
2304
+ }
2305
+
2306
+ .stat-text {
2307
+ font-size: var(--text-sm);
2308
+ color: var(--text-secondary);
2309
+ text-transform: uppercase;
2310
+ letter-spacing: 0.05em;
2311
+ font-weight: var(--font-medium);
2312
+ }
2313
+
2314
+ .loading-container, .error-container {
2315
+ text-align: center;
2316
+ padding: var(--spacing-2xl);
2317
+ color: var(--text-secondary);
2318
+ }
2319
+
2320
+ .error-container {
2321
+ background: var(--surface-color);
2322
+ border: 1px solid var(--error-color);
2323
+ border-radius: var(--radius-lg);
2324
+ color: var(--error-color);
2325
+ }
2326
+
2327
+ .error-icon {
2328
+ font-size: var(--text-4xl);
2329
+ margin-bottom: var(--spacing-md);
2330
+ }
2331
+
2332
+ .error-container h3 {
2333
+ color: var(--text-primary);
2334
+ margin-bottom: var(--spacing-sm);
2335
+ }
2336
+
2337
+ .models-grid {
2338
+ display: grid;
2339
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
2340
+ gap: var(--spacing-lg);
2341
+ margin-bottom: var(--spacing-xl);
2342
+ }
2343
+
2344
+ .models-list {
2345
+ display: flex;
2346
+ flex-direction: column;
2347
+ gap: var(--spacing-md);
2348
+ }
2349
+
2350
+ .model-card {
2351
+ background: var(--surface-color);
2352
+ border: 1px solid var(--border-color);
2353
+ border-radius: var(--radius-lg);
2354
+ padding: var(--spacing-xl);
2355
+ transition: all var(--transition-normal);
2356
+ position: relative;
2357
+ overflow: hidden;
2358
+ }
2359
+
2360
+ .model-card::before {
2361
+ content: '';
2362
+ position: absolute;
2363
+ top: 0;
2364
+ left: 0;
2365
+ right: 0;
2366
+ height: 4px;
2367
+ background: var(--gradient-primary);
2368
+ transform: scaleX(0);
2369
+ transition: transform var(--transition-normal);
2370
+ }
2371
+
2372
+ .model-card:hover {
2373
+ transform: translateY(-4px);
2374
+ box-shadow: var(--shadow-lg);
2375
+ border-color: var(--primary-color);
2376
+ }
2377
+
2378
+ .model-card:hover::before {
2379
+ transform: scaleX(1);
2380
+ }
2381
+
2382
+ .model-header {
2383
+ display: flex;
2384
+ justify-content: space-between;
2385
+ align-items: flex-start;
2386
+ margin-bottom: var(--spacing-md);
2387
+ }
2388
+
2389
+ .model-name {
2390
+ font-size: var(--text-lg);
2391
+ font-weight: var(--font-bold);
2392
+ color: var(--text-primary);
2393
+ font-family: var(--font-family-mono);
2394
+ margin-bottom: var(--spacing-xs);
2395
+ }
2396
+
2397
+ .model-provider {
2398
+ font-size: var(--text-sm);
2399
+ color: var(--text-muted);
2400
+ font-weight: var(--font-medium);
2401
+ }
2402
+
2403
+ .model-type {
2404
+ background: var(--gradient-secondary);
2405
+ color: white;
2406
+ padding: var(--spacing-xs) var(--spacing-sm);
2407
+ border-radius: var(--radius-full);
2408
+ font-size: var(--text-xs);
2409
+ font-weight: var(--font-bold);
2410
+ text-transform: uppercase;
2411
+ letter-spacing: 0.05em;
2412
+ }
2413
+
2414
+ .model-description {
2415
+ color: var(--text-secondary);
2416
+ font-size: var(--text-sm);
2417
+ line-height: var(--leading-relaxed);
2418
+ margin-bottom: var(--spacing-md);
2419
+ }
2420
+
2421
+ .model-meta {
2422
+ display: flex;
2423
+ justify-content: space-between;
2424
+ align-items: center;
2425
+ font-size: var(--text-xs);
2426
+ color: var(--text-muted);
2427
+ margin-top: var(--spacing-md);
2428
+ padding-top: var(--spacing-md);
2429
+ border-top: 1px solid var(--border-color);
2430
+ }
2431
+
2432
+ .model-created {
2433
+ font-family: var(--font-family-mono);
2434
+ }
2435
+
2436
+ .no-results {
2437
+ text-align: center;
2438
+ padding: var(--spacing-2xl);
2439
+ color: var(--text-secondary);
2440
+ }
2441
+
2442
+ .no-results-icon {
2443
+ font-size: var(--text-4xl);
2444
+ margin-bottom: var(--spacing-md);
2445
+ }
2446
+
2447
+ .no-results h3 {
2448
+ color: var(--text-primary);
2449
+ margin-bottom: var(--spacing-sm);
2450
+ }
2451
+
2452
+ /* ===== EXAMPLES STYLES ===== */
2453
+ .examples-nav {
2454
+ display: flex;
2455
+ gap: var(--spacing-sm);
2456
+ margin-bottom: var(--spacing-xl);
2457
+ background: var(--surface-color);
2458
+ padding: var(--spacing-sm);
2459
+ border-radius: var(--radius-lg);
2460
+ border: 1px solid var(--border-color);
2461
+ overflow-x: auto;
2462
+ }
2463
+
2464
+ .example-tab {
2465
+ background: none;
2466
+ border: none;
2467
+ padding: var(--spacing-md) var(--spacing-lg);
2468
+ color: var(--text-secondary);
2469
+ cursor: pointer;
2470
+ font-size: var(--text-sm);
2471
+ font-weight: var(--font-medium);
2472
+ border-radius: var(--radius);
2473
+ transition: all var(--transition-normal);
2474
+ display: flex;
2475
+ align-items: center;
2476
+ gap: var(--spacing-sm);
2477
+ white-space: nowrap;
2478
+ min-width: fit-content;
2479
+ }
2480
+
2481
+ .example-tab:hover {
2482
+ background: var(--surface-light);
2483
+ color: var(--text-primary);
2484
+ }
2485
+
2486
+ .example-tab.active {
2487
+ background: var(--gradient-primary);
2488
+ color: white;
2489
+ }
2490
+
2491
+ .tab-icon {
2492
+ font-size: var(--text-base);
2493
+ }
2494
+
2495
+ .example-content {
2496
+ position: relative;
2497
+ }
2498
+
2499
+ .language-examples {
2500
+ display: none;
2501
+ }
2502
+
2503
+ .language-examples.active {
2504
+ display: block;
2505
+ animation: fadeIn var(--transition-normal) ease-in;
2506
+ }
2507
+
2508
+ .example-card {
2509
+ background: var(--surface-color);
2510
+ border: 1px solid var(--border-color);
2511
+ border-radius: var(--radius-lg);
2512
+ margin-bottom: var(--spacing-xl);
2513
+ overflow: hidden;
2514
+ box-shadow: var(--shadow);
2515
+ }
2516
+
2517
+ .example-header {
2518
+ background: var(--surface-light);
2519
+ padding: var(--spacing-lg) var(--spacing-xl);
2520
+ display: flex;
2521
+ justify-content: space-between;
2522
+ align-items: center;
2523
+ border-bottom: 1px solid var(--border-color);
2524
+ }
2525
+
2526
+ .example-header h3 {
2527
+ color: var(--text-primary);
2528
+ font-size: var(--text-lg);
2529
+ font-weight: var(--font-semibold);
2530
+ margin: 0;
2531
+ }
2532
+
2533
+ .copy-code-btn {
2534
+ background: var(--secondary-color);
2535
+ color: white;
2536
+ border: none;
2537
+ border-radius: var(--radius);
2538
+ padding: var(--spacing-sm) var(--spacing-md);
2539
+ font-size: var(--text-xs);
2540
+ font-weight: var(--font-medium);
2541
+ cursor: pointer;
2542
+ transition: all var(--transition-fast);
2543
+ }
2544
+
2545
+ .copy-code-btn:hover {
2546
+ background: var(--secondary-dark);
2547
+ transform: scale(1.05);
2548
+ }
2549
+
2550
+ .code-block {
2551
+ background: var(--background-color);
2552
+ overflow-x: auto;
2553
+ }
2554
+
2555
+ .code-block pre {
2556
+ margin: 0;
2557
+ padding: var(--spacing-xl);
2558
+ color: var(--text-secondary);
2559
+ font-family: var(--font-family-mono);
2560
+ font-size: var(--text-sm);
2561
+ line-height: var(--leading-relaxed);
2562
+ }
2563
+
2564
+ .code-block code {
2565
+ font-family: var(--font-family-mono);
2566
+ }
2567
+
2568
+ /* Syntax highlighting */
2569
+ .language-python .hljs-keyword { color: #ff7b72; }
2570
+ .language-python .hljs-string { color: #a5d6ff; }
2571
+ .language-python .hljs-comment { color: #8b949e; }
2572
+ .language-python .hljs-function { color: #d2a8ff; }
2573
+
2574
+ .language-javascript .hljs-keyword { color: #ff7b72; }
2575
+ .language-javascript .hljs-string { color: #a5d6ff; }
2576
+ .language-javascript .hljs-comment { color: #8b949e; }
2577
+ .language-javascript .hljs-function { color: #d2a8ff; }
2578
+
2579
+ .integration-guides {
2580
+ margin-top: var(--spacing-2xl);
2581
+ padding: var(--spacing-xl);
2582
+ background: var(--surface-color);
2583
+ border-radius: var(--radius-lg);
2584
+ border: 1px solid var(--border-color);
2585
+ }
2586
+
2587
+ .guides-grid {
2588
+ display: grid;
2589
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
2590
+ gap: var(--spacing-lg);
2591
+ margin-top: var(--spacing-lg);
2592
+ }
2593
+
2594
+ .guide-card {
2595
+ background: var(--background-color);
2596
+ border: 1px solid var(--border-color);
2597
+ border-radius: var(--radius);
2598
+ padding: var(--spacing-xl);
2599
+ transition: all var(--transition-normal);
2600
+ }
2601
+
2602
+ .guide-card:hover {
2603
+ transform: translateY(-4px);
2604
+ box-shadow: var(--shadow-lg);
2605
+ border-color: var(--primary-color);
2606
+ }
2607
+
2608
+ .guide-icon {
2609
+ font-size: var(--text-3xl);
2610
+ margin-bottom: var(--spacing-md);
2611
+ }
2612
+
2613
+ .guide-card h3 {
2614
+ color: var(--text-primary);
2615
+ font-weight: var(--font-semibold);
2616
+ margin-bottom: var(--spacing-sm);
2617
+ font-size: var(--text-lg);
2618
+ }
2619
+
2620
+ .guide-card p {
2621
+ color: var(--text-secondary);
2622
+ font-size: var(--text-sm);
2623
+ line-height: var(--leading-relaxed);
2624
+ margin-bottom: var(--spacing-md);
2625
+ }
2626
+
2627
+ .guide-card ul {
2628
+ color: var(--text-secondary);
2629
+ font-size: var(--text-sm);
2630
+ margin-left: var(--spacing-lg);
2631
+ }
2632
+
2633
+ .guide-card li {
2634
+ margin-bottom: var(--spacing-xs);
2635
+ }
2636
+
2637
+ /* ===== SIMPLE FOOTER STYLES ===== */
2638
+ .footer {
2639
+ background: var(--surface-color);
2640
+ border-top: 1px solid var(--border-color);
2641
+ margin-top: var(--spacing-2xl);
2642
+ padding: var(--spacing-xl) 0;
2643
+ }
2644
+
2645
+ .footer-content {
2646
+ display: grid;
2647
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
2648
+ gap: var(--spacing-xl);
2649
+ margin-bottom: var(--spacing-lg);
2650
+ }
2651
+
2652
+ .footer-section {
2653
+ color: var(--text-secondary);
2654
+ }
2655
+
2656
+ .footer-title {
2657
+ color: var(--text-primary);
2658
+ font-size: var(--text-lg);
2659
+ font-weight: var(--font-bold);
2660
+ margin-bottom: var(--spacing-md);
2661
+ }
2662
+
2663
+ .footer-description {
2664
+ line-height: var(--leading-relaxed);
2665
+ font-size: var(--text-sm);
2666
+ }
2667
+
2668
+
2669
+
2670
+ .footer-subtitle {
2671
+ color: var(--text-primary);
2672
+ font-size: var(--text-base);
2673
+ font-weight: var(--font-semibold);
2674
+ margin-bottom: var(--spacing-md);
2675
+ }
2676
+
2677
+ .footer-links {
2678
+ list-style: none;
2679
+ }
2680
+
2681
+ .footer-links li {
2682
+ margin-bottom: var(--spacing-sm);
2683
+ }
2684
+
2685
+ .footer-links a {
2686
+ color: var(--text-secondary);
2687
+ text-decoration: none;
2688
+ font-size: var(--text-sm);
2689
+ transition: color var(--transition-fast);
2690
+ display: flex;
2691
+ align-items: center;
2692
+ gap: var(--spacing-sm);
2693
+ }
2694
+
2695
+ .footer-links a:hover {
2696
+ color: var(--primary-color);
2697
+ }
2698
+
2699
+ .footer-bottom {
2700
+ border-top: 1px solid var(--border-color);
2701
+ padding-top: var(--spacing-lg);
2702
+ margin-bottom: var(--spacing-lg);
2703
+ }
2704
+
2705
+ .footer-bottom-content {
2706
+ display: flex;
2707
+ justify-content: space-between;
2708
+ align-items: center;
2709
+ flex-wrap: wrap;
2710
+ gap: var(--spacing-lg);
2711
+ }
2712
+
2713
+ .footer-copyright p {
2714
+ color: var(--text-muted);
2715
+ font-size: var(--text-sm);
2716
+ margin-bottom: var(--spacing-xs);
2717
+ }
2718
+
2719
+ .footer-version {
2720
+ font-family: var(--font-family-mono);
2721
+ font-size: var(--text-xs);
2722
+ }
2723
+
2724
+
2725
+
2726
+ .footer-social {
2727
+ display: flex;
2728
+ gap: var(--spacing-md);
2729
+ }
2730
+
2731
+ .social-link {
2732
+ display: flex;
2733
+ align-items: center;
2734
+ justify-content: center;
2735
+ width: 40px;
2736
+ height: 40px;
2737
+ background: var(--surface-light);
2738
+ border: 1px solid var(--border-color);
2739
+ border-radius: var(--radius-full);
2740
+ color: var(--text-secondary);
2741
+ text-decoration: none;
2742
+ transition: all var(--transition-normal);
2743
+ font-size: var(--text-lg);
2744
+ }
2745
+
2746
+ .social-link:hover {
2747
+ background: var(--primary-color);
2748
+ border-color: var(--primary-color);
2749
+ color: white;
2750
+ transform: translateY(-2px);
2751
+ }
2752
+
2753
+ .footer-legal {
2754
+ border-top: 1px solid var(--border-color);
2755
+ padding-top: var(--spacing-lg);
2756
+ display: flex;
2757
+ justify-content: space-between;
2758
+ align-items: center;
2759
+ flex-wrap: wrap;
2760
+ gap: var(--spacing-lg);
2761
+ }
2762
+
2763
+ .legal-links {
2764
+ display: flex;
2765
+ gap: var(--spacing-lg);
2766
+ flex-wrap: wrap;
2767
+ }
2768
+
2769
+ .legal-links a {
2770
+ color: var(--text-muted);
2771
+ text-decoration: none;
2772
+ font-size: var(--text-xs);
2773
+ transition: color var(--transition-fast);
2774
+ }
2775
+
2776
+ .legal-links a:hover {
2777
+ color: var(--primary-color);
2778
+ }
2779
+
2780
+
2781
+
2782
+ /* ===== MODERN RESPONSE DISPLAY STYLES ===== */
2783
+ .response-display {
2784
+ background: var(--surface-glass);
2785
+ backdrop-filter: var(--backdrop-blur);
2786
+ border: 1px solid var(--border-glass);
2787
+ border-radius: var(--radius-xl);
2788
+ margin-top: var(--spacing-xl);
2789
+ overflow: hidden;
2790
+ box-shadow: var(--shadow-glass);
2791
+ position: relative;
2792
+ }
2793
+
2794
+ .response-display::before {
2795
+ content: '';
2796
+ position: absolute;
2797
+ top: 0;
2798
+ left: 0;
2799
+ right: 0;
2800
+ height: 3px;
2801
+ background: var(--gradient-primary);
2802
+ border-radius: var(--radius-xl) var(--radius-xl) 0 0;
2803
+ }
2804
+
2805
+ .response-display.show {
2806
+ display: block;
2807
+ animation: slideDown var(--transition-normal) var(--ease-out-expo);
2808
+ }
2809
+
2810
+ .modern-response {
2811
+ background: var(--surface-glass);
2812
+ backdrop-filter: var(--backdrop-blur);
2813
+ border: 1px solid var(--border-glass);
2814
+ border-radius: var(--radius-xl);
2815
+ overflow: hidden;
2816
+ box-shadow: var(--shadow-glass);
2817
+ position: relative;
2818
+ }
2819
+
2820
+ .modern-response-header {
2821
+ display: flex;
2822
+ align-items: center;
2823
+ justify-content: space-between;
2824
+ padding: var(--spacing-lg) var(--spacing-xl);
2825
+ background: var(--surface-glass-light);
2826
+ border-bottom: 1px solid var(--border-glass);
2827
+ backdrop-filter: var(--backdrop-blur);
2828
+ }
2829
+
2830
+ .modern-response-header.error {
2831
+ background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(220, 38, 38, 0.1) 100%);
2832
+ border-bottom-color: rgba(239, 68, 68, 0.2);
2833
+ }
2834
+
2835
+ .response-status {
2836
+ display: flex;
2837
+ align-items: center;
2838
+ gap: var(--spacing-md);
2839
+ }
2840
+
2841
+ .modern-response-body {
2842
+ padding: var(--spacing-xl);
2843
+ background: var(--surface-color);
2844
+ font-family: var(--font-family-mono);
2845
+ font-size: var(--text-sm);
2846
+ line-height: var(--leading-relaxed);
2847
+ max-height: 500px;
2848
+ overflow-y: auto;
2849
+ position: relative;
2850
+ }
2851
+
2852
+ .modern-response-body.error {
2853
+ background: linear-gradient(135deg, rgba(239, 68, 68, 0.05) 0%, rgba(220, 38, 38, 0.05) 100%);
2854
+ }
2855
+
2856
+ .error-content {
2857
+ display: flex;
2858
+ align-items: flex-start;
2859
+ gap: var(--spacing-lg);
2860
+ color: var(--error-color);
2861
+ }
2862
+
2863
+ .error-icon {
2864
+ width: 24px;
2865
+ height: 24px;
2866
+ flex-shrink: 0;
2867
+ margin-top: var(--spacing-xs);
2868
+ }
2869
+
2870
+ .copy-btn {
2871
+ background: var(--surface-glass);
2872
+ border: 1px solid var(--border-glass);
2873
+ border-radius: var(--radius-lg);
2874
+ padding: var(--spacing-sm) var(--spacing-md);
2875
+ color: var(--text-primary);
2876
+ cursor: pointer;
2877
+ transition: all var(--transition-bounce);
2878
+ display: flex;
2879
+ align-items: center;
2880
+ gap: var(--spacing-sm);
2881
+ font-size: var(--text-sm);
2882
+ backdrop-filter: var(--backdrop-blur-sm);
2883
+ }
2884
+
2885
+ .copy-btn:hover {
2886
+ background: var(--surface-glass-light);
2887
+ transform: translateY(-2px);
2888
+ box-shadow: var(--shadow-md);
2889
+ }
2890
+
2891
+ .copy-btn svg {
2892
+ width: 16px;
2893
+ height: 16px;
2894
+ }
2895
+
2896
+ .modern-loading {
2897
+ display: flex;
2898
+ align-items: center;
2899
+ justify-content: center;
2900
+ gap: var(--spacing-md);
2901
+ padding: var(--spacing-2xl);
2902
+ color: var(--text-primary);
2903
+ font-weight: var(--font-medium);
2904
+ }
2905
+
2906
+ .loading-spinner {
2907
+ width: 24px;
2908
+ height: 24px;
2909
+ border: 3px solid var(--border-glass);
2910
+ border-top: 3px solid var(--primary-color);
2911
+ border-radius: 50%;
2912
+ animation: spin 1s linear infinite;
2913
+ }
2914
+
2915
+ .response-header {
2916
+ background: var(--surface-light);
2917
+ padding: var(--spacing-md) var(--spacing-lg);
2918
+ border-bottom: 1px solid var(--border-color);
2919
+ display: flex;
2920
+ justify-content: space-between;
2921
+ align-items: center;
2922
+ }
2923
+
2924
+ .response-status {
2925
+ display: flex;
2926
+ align-items: center;
2927
+ gap: var(--spacing-sm);
2928
+ }
2929
+
2930
+ .status-code {
2931
+ padding: var(--spacing-xs) var(--spacing-sm);
2932
+ border-radius: var(--radius-full);
2933
+ font-weight: var(--font-bold);
2934
+ font-size: var(--text-xs);
2935
+ text-transform: uppercase;
2936
+ letter-spacing: 0.05em;
2937
+ }
2938
+
2939
+ .status-200 {
2940
+ background: var(--success-color);
2941
+ color: white;
2942
+ }
2943
+
2944
+ .status-400, .status-401, .status-403, .status-404 {
2945
+ background: var(--error-color);
2946
+ color: white;
2947
+ }
2948
+
2949
+ .status-500 {
2950
+ background: var(--warning-color);
2951
+ color: white;
2952
+ }
2953
+
2954
+ .response-time {
2955
+ font-size: var(--text-xs);
2956
+ color: var(--text-muted);
2957
+ font-family: var(--font-family-mono);
2958
+ }
2959
+
2960
+ .response-body {
2961
+ padding: var(--spacing-lg);
2962
+ max-height: 400px;
2963
+ overflow-y: auto;
2964
+ }
2965
+
2966
+ .response-body pre {
2967
+ margin: 0;
2968
+ color: var(--text-secondary);
2969
+ font-family: var(--font-family-mono);
2970
+ font-size: var(--text-sm);
2971
+ line-height: var(--leading-relaxed);
2972
+ white-space: pre-wrap;
2973
+ word-wrap: break-word;
2974
+ }
2975
+
2976
+ .response-body .json-key {
2977
+ color: var(--primary-color);
2978
+ }
2979
+
2980
+ .response-body .json-string {
2981
+ color: var(--secondary-color);
2982
+ }
2983
+
2984
+ .response-body .json-number {
2985
+ color: var(--warning-color);
2986
+ }
2987
+
2988
+ .response-body .json-boolean {
2989
+ color: var(--info-color);
2990
+ }
2991
+
2992
+ .response-body .json-null {
2993
+ color: var(--text-muted);
2994
+ }
2995
+
2996
+ /* ===== STREAMING RESPONSE STYLES ===== */
2997
+ .streaming {
2998
+ max-height: 500px;
2999
+ overflow-y: auto;
3000
+ }
3001
+
3002
+ .stream-content {
3003
+ padding: 15px;
3004
+ background: rgba(255, 255, 255, 0.05);
3005
+ border-radius: 8px;
3006
+ margin-bottom: 10px;
3007
+ min-height: 100px;
3008
+ }
3009
+
3010
+ .stream-message {
3011
+ margin-bottom: 15px;
3012
+ }
3013
+
3014
+ .stream-text {
3015
+ background: rgba(0, 0, 0, 0.3);
3016
+ padding: 10px;
3017
+ border-radius: 6px;
3018
+ margin-top: 8px;
3019
+ white-space: pre-wrap;
3020
+ font-family: 'Fira Code', monospace;
3021
+ line-height: 1.5;
3022
+ color: #e2e8f0;
3023
+ }
3024
+
3025
+ .stream-raw {
3026
+ padding: 15px;
3027
+ background: rgba(0, 0, 0, 0.4);
3028
+ border-radius: 8px;
3029
+ font-family: 'Fira Code', monospace;
3030
+ font-size: 12px;
3031
+ max-height: 400px;
3032
+ overflow-y: auto;
3033
+ }
3034
+
3035
+ .stream-chunk {
3036
+ margin-bottom: 8px;
3037
+ padding: 5px;
3038
+ background: rgba(255, 255, 255, 0.05);
3039
+ border-radius: 4px;
3040
+ border-left: 3px solid var(--accent-color);
3041
+ }
3042
+
3043
+ .stream-controls {
3044
+ display: flex;
3045
+ justify-content: center;
3046
+ margin-top: 10px;
3047
+ }
3048
+
3049
+ .stream-toggle {
3050
+ background: var(--accent-color);
3051
+ color: white;
3052
+ border: none;
3053
+ padding: 8px 16px;
3054
+ border-radius: 6px;
3055
+ cursor: pointer;
3056
+ font-size: 12px;
3057
+ transition: all 0.3s ease;
3058
+ }
3059
+
3060
+ .stream-toggle:hover {
3061
+ background: var(--accent-hover);
3062
+ transform: translateY(-1px);
3063
+ }
3064
+
3065
+ .stream-done {
3066
+ color: #10b981;
3067
+ font-weight: 600;
3068
+ text-align: center;
3069
+ padding: 10px;
3070
+ background: rgba(16, 185, 129, 0.1);
3071
+ border-radius: 6px;
3072
+ margin-top: 10px;
3073
+ }
3074
+
3075
+ .stream-error {
3076
+ color: #ef4444;
3077
+ font-weight: 600;
3078
+ text-align: center;
3079
+ padding: 10px;
3080
+ background: rgba(239, 68, 68, 0.1);
3081
+ border-radius: 6px;
3082
+ margin-top: 10px;
3083
+ }
3084
+
3085
+ /* ===== TOAST NOTIFICATIONS ===== */
3086
+ .toast-container {
3087
+ position: fixed;
3088
+ top: var(--spacing-lg);
3089
+ right: var(--spacing-lg);
3090
+ z-index: var(--z-toast);
3091
+ display: flex;
3092
+ flex-direction: column;
3093
+ gap: var(--spacing-sm);
3094
+ max-width: 400px;
3095
+ }
3096
+
3097
+ .toast {
3098
+ background: var(--surface-color);
3099
+ border: 1px solid var(--border-color);
3100
+ border-radius: var(--radius);
3101
+ padding: var(--spacing-lg);
3102
+ box-shadow: var(--shadow-lg);
3103
+ display: flex;
3104
+ align-items: center;
3105
+ gap: var(--spacing-md);
3106
+ animation: slideInRight 0.3s ease-out;
3107
+ position: relative;
3108
+ overflow: hidden;
3109
+ }
3110
+
3111
+ .toast::before {
3112
+ content: '';
3113
+ position: absolute;
3114
+ top: 0;
3115
+ left: 0;
3116
+ bottom: 0;
3117
+ width: 4px;
3118
+ background: var(--primary-color);
3119
+ }
3120
+
3121
+ .toast.success::before { background: var(--success-color); }
3122
+ .toast.error::before { background: var(--error-color); }
3123
+ .toast.warning::before { background: var(--warning-color); }
3124
+ .toast.info::before { background: var(--info-color); }
3125
+
3126
+ .toast-icon {
3127
+ font-size: var(--text-lg);
3128
+ flex-shrink: 0;
3129
+ }
3130
+
3131
+ .toast-content {
3132
+ flex: 1;
3133
+ }
3134
+
3135
+ .toast-title {
3136
+ color: var(--text-primary);
3137
+ font-weight: var(--font-semibold);
3138
+ font-size: var(--text-sm);
3139
+ margin-bottom: var(--spacing-xs);
3140
+ }
3141
+
3142
+ .toast-message {
3143
+ color: var(--text-secondary);
3144
+ font-size: var(--text-sm);
3145
+ line-height: var(--leading-normal);
3146
+ }
3147
+
3148
+ .toast-close {
3149
+ background: none;
3150
+ border: none;
3151
+ color: var(--text-muted);
3152
+ cursor: pointer;
3153
+ font-size: var(--text-lg);
3154
+ padding: var(--spacing-xs);
3155
+ border-radius: var(--radius-sm);
3156
+ transition: all var(--transition-fast);
3157
+ }
3158
+
3159
+ .toast-close:hover {
3160
+ background: var(--surface-light);
3161
+ color: var(--text-primary);
3162
+ }
3163
+
3164
+ @keyframes slideInRight {
3165
+ from {
3166
+ transform: translateX(100%);
3167
+ opacity: 0;
3168
+ }
3169
+ to {
3170
+ transform: translateX(0);
3171
+ opacity: 1;
3172
+ }
3173
+ }
3174
+
3175
+ /* ===== MODERN RESPONSIVE DESIGN ===== */
3176
+ @media (max-width: 1024px) {
3177
+ .container {
3178
+ padding: 0 var(--spacing-md);
3179
+ }
3180
+
3181
+ .stats-grid {
3182
+ grid-template-columns: repeat(2, 1fr);
3183
+ gap: var(--spacing-md);
3184
+ }
3185
+
3186
+ .models-controls {
3187
+ flex-direction: column;
3188
+ align-items: stretch;
3189
+ gap: var(--spacing-md);
3190
+ }
3191
+
3192
+ .search-container {
3193
+ min-width: auto;
3194
+ }
3195
+
3196
+ .header-title {
3197
+ font-size: var(--text-3xl);
3198
+ }
3199
+
3200
+ .nav-tabs {
3201
+ border-radius: var(--radius-md);
3202
+ }
3203
+
3204
+ .endpoint-card {
3205
+ margin-bottom: var(--spacing-md);
3206
+ }
3207
+ }
3208
+
3209
+ @media (max-width: 768px) {
3210
+ .header-title {
3211
+ font-size: var(--text-3xl);
3212
+ }
3213
+
3214
+ .header-description {
3215
+ font-size: var(--text-base);
3216
+ padding: var(--spacing-md);
3217
+ }
3218
+
3219
+ .stats-grid {
3220
+ grid-template-columns: 1fr;
3221
+ gap: var(--spacing-md);
3222
+ }
3223
+
3224
+ .stat-card {
3225
+ padding: var(--spacing-lg);
3226
+ }
3227
+
3228
+ .nav-tabs {
3229
+ flex-wrap: wrap;
3230
+ border-radius: var(--radius-lg);
3231
+ }
3232
+
3233
+ .nav-tab {
3234
+ flex: 1 1 50%;
3235
+ min-width: 120px;
3236
+ padding: var(--spacing-md);
3237
+ }
3238
+
3239
+ .endpoint-section {
3240
+ padding: var(--spacing-lg);
3241
+ margin-bottom: var(--spacing-lg);
3242
+ }
3243
+
3244
+ .endpoint-header {
3245
+ flex-direction: column;
3246
+ align-items: flex-start;
3247
+ gap: var(--spacing-md);
3248
+ padding: var(--spacing-lg);
3249
+ }
3250
+
3251
+ .form-grid {
3252
+ grid-template-columns: 1fr;
3253
+ gap: var(--spacing-md);
3254
+ }
3255
+
3256
+ .try-it-section {
3257
+ padding: var(--spacing-lg);
3258
+ }
3259
+
3260
+ .modern-btn {
3261
+ width: 100%;
3262
+ justify-content: center;
3263
+ padding: var(--spacing-lg);
3264
+ }
3265
+
3266
+ .footer-content {
3267
+ grid-template-columns: 1fr;
3268
+ gap: var(--spacing-xl);
3269
+ }
3270
+
3271
+ .footer-bottom-content {
3272
+ flex-direction: column;
3273
+ text-align: center;
3274
+ }
3275
+
3276
+ .footer-legal {
3277
+ flex-direction: column;
3278
+ text-align: center;
3279
+ }
3280
+
3281
+ .examples-nav {
3282
+ flex-wrap: wrap;
3283
+ }
3284
+
3285
+ .guides-grid {
3286
+ grid-template-columns: 1fr;
3287
+ }
3288
+
3289
+ .toast-container {
3290
+ left: var(--spacing-md);
3291
+ right: var(--spacing-md);
3292
+ max-width: none;
3293
+ }
3294
+
3295
+ .section-title {
3296
+ font-size: var(--text-2xl);
3297
+ }
3298
+
3299
+ .section-description {
3300
+ font-size: var(--text-base);
3301
+ padding: var(--spacing-md);
3302
+ }
3303
+
3304
+ .expand-icon {
3305
+ width: 28px;
3306
+ height: 28px;
3307
+ }
3308
+
3309
+ .expand-icon svg {
3310
+ width: 16px;
3311
+ height: 16px;
3312
+ }
3313
+ }
3314
+
3315
+ @media (max-width: 480px) {
3316
+ .container {
3317
+ padding: 0 var(--spacing-sm);
3318
+ }
3319
+
3320
+ .header {
3321
+ padding: var(--spacing-xl) 0;
3322
+ }
3323
+
3324
+ .header-title {
3325
+ font-size: var(--text-2xl);
3326
+ }
3327
+
3328
+ .nav-tab {
3329
+ padding: var(--spacing-sm) var(--spacing-md);
3330
+ font-size: var(--text-sm);
3331
+ }
3332
+
3333
+ .nav-tab-text {
3334
+ display: none;
3335
+ }
3336
+
3337
+ .endpoint-card {
3338
+ margin-bottom: var(--spacing-md);
3339
+ }
3340
+
3341
+ .endpoint-body {
3342
+ padding: var(--spacing-md);
3343
+ }
3344
+
3345
+ .try-it-section {
3346
+ padding: var(--spacing-md);
3347
+ }
3348
+
3349
+ .btn {
3350
+ width: 100%;
3351
+ justify-content: center;
3352
+ }
3353
+ }