webscout 8.3.2__py3-none-any.whl → 8.3.4__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 (117) hide show
  1. webscout/AIutel.py +367 -41
  2. webscout/Bard.py +2 -22
  3. webscout/Bing_search.py +1 -2
  4. webscout/Provider/AISEARCH/__init__.py +1 -0
  5. webscout/Provider/AISEARCH/scira_search.py +24 -11
  6. webscout/Provider/AISEARCH/stellar_search.py +132 -0
  7. webscout/Provider/Deepinfra.py +75 -57
  8. webscout/Provider/ExaChat.py +93 -63
  9. webscout/Provider/Flowith.py +1 -1
  10. webscout/Provider/FreeGemini.py +2 -2
  11. webscout/Provider/Gemini.py +3 -10
  12. webscout/Provider/GeminiProxy.py +31 -5
  13. webscout/Provider/HeckAI.py +85 -80
  14. webscout/Provider/Jadve.py +56 -50
  15. webscout/Provider/LambdaChat.py +39 -31
  16. webscout/Provider/MiniMax.py +207 -0
  17. webscout/Provider/Nemotron.py +41 -13
  18. webscout/Provider/Netwrck.py +39 -59
  19. webscout/Provider/OLLAMA.py +8 -9
  20. webscout/Provider/OPENAI/BLACKBOXAI.py +0 -1
  21. webscout/Provider/OPENAI/MiniMax.py +298 -0
  22. webscout/Provider/OPENAI/README.md +31 -30
  23. webscout/Provider/OPENAI/TogetherAI.py +4 -17
  24. webscout/Provider/OPENAI/__init__.py +4 -2
  25. webscout/Provider/OPENAI/autoproxy.py +753 -18
  26. webscout/Provider/OPENAI/base.py +7 -76
  27. webscout/Provider/OPENAI/copilot.py +73 -26
  28. webscout/Provider/OPENAI/deepinfra.py +96 -132
  29. webscout/Provider/OPENAI/exachat.py +9 -5
  30. webscout/Provider/OPENAI/flowith.py +179 -166
  31. webscout/Provider/OPENAI/friendli.py +233 -0
  32. webscout/Provider/OPENAI/monochat.py +329 -0
  33. webscout/Provider/OPENAI/netwrck.py +4 -7
  34. webscout/Provider/OPENAI/pydantic_imports.py +1 -172
  35. webscout/Provider/OPENAI/qodo.py +630 -0
  36. webscout/Provider/OPENAI/scirachat.py +82 -49
  37. webscout/Provider/OPENAI/textpollinations.py +13 -12
  38. webscout/Provider/OPENAI/toolbaz.py +1 -0
  39. webscout/Provider/OPENAI/typegpt.py +4 -4
  40. webscout/Provider/OPENAI/utils.py +19 -42
  41. webscout/Provider/OPENAI/x0gpt.py +14 -2
  42. webscout/Provider/OpenGPT.py +54 -32
  43. webscout/Provider/PI.py +58 -84
  44. webscout/Provider/Qodo.py +454 -0
  45. webscout/Provider/StandardInput.py +32 -13
  46. webscout/Provider/TTI/README.md +9 -9
  47. webscout/Provider/TTI/__init__.py +2 -1
  48. webscout/Provider/TTI/aiarta.py +92 -78
  49. webscout/Provider/TTI/infip.py +212 -0
  50. webscout/Provider/TTI/monochat.py +220 -0
  51. webscout/Provider/TeachAnything.py +11 -3
  52. webscout/Provider/TextPollinationsAI.py +91 -82
  53. webscout/Provider/TogetherAI.py +32 -48
  54. webscout/Provider/Venice.py +37 -46
  55. webscout/Provider/VercelAI.py +27 -24
  56. webscout/Provider/WiseCat.py +35 -35
  57. webscout/Provider/WrDoChat.py +22 -26
  58. webscout/Provider/WritingMate.py +26 -22
  59. webscout/Provider/__init__.py +6 -6
  60. webscout/Provider/copilot.py +58 -61
  61. webscout/Provider/freeaichat.py +64 -55
  62. webscout/Provider/granite.py +48 -57
  63. webscout/Provider/koala.py +51 -39
  64. webscout/Provider/learnfastai.py +49 -64
  65. webscout/Provider/llmchat.py +79 -93
  66. webscout/Provider/llmchatco.py +63 -78
  67. webscout/Provider/monochat.py +275 -0
  68. webscout/Provider/multichat.py +51 -40
  69. webscout/Provider/oivscode.py +1 -1
  70. webscout/Provider/scira_chat.py +257 -104
  71. webscout/Provider/scnet.py +13 -13
  72. webscout/Provider/searchchat.py +13 -13
  73. webscout/Provider/sonus.py +12 -11
  74. webscout/Provider/toolbaz.py +25 -8
  75. webscout/Provider/turboseek.py +41 -42
  76. webscout/Provider/typefully.py +27 -12
  77. webscout/Provider/typegpt.py +43 -48
  78. webscout/Provider/uncovr.py +55 -90
  79. webscout/Provider/x0gpt.py +325 -299
  80. webscout/Provider/yep.py +79 -96
  81. webscout/__init__.py +7 -2
  82. webscout/auth/__init__.py +12 -1
  83. webscout/auth/providers.py +27 -5
  84. webscout/auth/routes.py +146 -105
  85. webscout/auth/server.py +367 -312
  86. webscout/client.py +121 -116
  87. webscout/litagent/Readme.md +68 -55
  88. webscout/litagent/agent.py +99 -9
  89. webscout/version.py +1 -1
  90. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/METADATA +102 -91
  91. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/RECORD +95 -107
  92. webscout/Provider/AI21.py +0 -177
  93. webscout/Provider/HuggingFaceChat.py +0 -469
  94. webscout/Provider/OPENAI/freeaichat.py +0 -363
  95. webscout/Provider/TTI/fastflux.py +0 -233
  96. webscout/Provider/Writecream.py +0 -246
  97. webscout/auth/static/favicon.svg +0 -11
  98. webscout/auth/swagger_ui.py +0 -203
  99. webscout/auth/templates/components/authentication.html +0 -237
  100. webscout/auth/templates/components/base.html +0 -103
  101. webscout/auth/templates/components/endpoints.html +0 -750
  102. webscout/auth/templates/components/examples.html +0 -491
  103. webscout/auth/templates/components/footer.html +0 -75
  104. webscout/auth/templates/components/header.html +0 -27
  105. webscout/auth/templates/components/models.html +0 -286
  106. webscout/auth/templates/components/navigation.html +0 -70
  107. webscout/auth/templates/static/api.js +0 -455
  108. webscout/auth/templates/static/icons.js +0 -168
  109. webscout/auth/templates/static/main.js +0 -784
  110. webscout/auth/templates/static/particles.js +0 -201
  111. webscout/auth/templates/static/styles.css +0 -3353
  112. webscout/auth/templates/static/ui.js +0 -374
  113. webscout/auth/templates/swagger_ui.html +0 -170
  114. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/WHEEL +0 -0
  115. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/entry_points.txt +0 -0
  116. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/licenses/LICENSE.md +0 -0
  117. {webscout-8.3.2.dist-info → webscout-8.3.4.dist-info}/top_level.txt +0 -0
@@ -1,3353 +0,0 @@
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
- }