apidocly 1.0.3

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.
@@ -0,0 +1,2670 @@
1
+ /* ========================================
2
+ APIDOCLY - Premium Dark Theme
3
+ Inspired by APIDocly Website Design
4
+ ======================================== */
5
+
6
+ /* Google Fonts */
7
+ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=Sora:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
8
+
9
+ /* CSS Variables - Premium Dark Theme */
10
+ :root {
11
+ --background: #06060a;
12
+ --background-secondary: #0d0d14;
13
+ --foreground: #fafafa;
14
+ --card: #0a0a0f;
15
+ --card-hover: #0f0f16;
16
+ --card-foreground: #fafafa;
17
+
18
+ /* Primary colors - Cyan */
19
+ --primary: #06b6d4;
20
+ --primary-light: #22d3ee;
21
+ --primary-dark: #0891b2;
22
+ --primary-foreground: #000;
23
+ --primary-glow: rgba(6, 182, 212, 0.4);
24
+
25
+ /* Secondary colors */
26
+ --secondary: #18181f;
27
+ --secondary-hover: #222230;
28
+ --muted: #12121a;
29
+ --muted-foreground: #a1a1aa;
30
+
31
+ /* Borders */
32
+ --border: rgba(255, 255, 255, 0.06);
33
+ --border-light: rgba(255, 255, 255, 0.1);
34
+ --border-cyan: rgba(6, 182, 212, 0.3);
35
+
36
+ /* Status colors */
37
+ --destructive: #ef4444;
38
+ --success: #22c55e;
39
+ --warning: #f59e0b;
40
+ --info: #3b82f6;
41
+ --purple: #8b5cf6;
42
+ --pink: #ec4899;
43
+ --amber: #fbbf24;
44
+
45
+ /* Method colors */
46
+ --method-get: #22c55e;
47
+ --method-post: #06b6d4;
48
+ --method-put: #f59e0b;
49
+ --method-patch: #f59e0b;
50
+ --method-delete: #ef4444;
51
+ --method-options: #8b5cf6;
52
+ --method-head: #6b7280;
53
+
54
+ --radius: 12px;
55
+ --radius-lg: 16px;
56
+ --radius-xl: 20px;
57
+
58
+ --font-display: 'Sora', sans-serif;
59
+ --font-body: 'Space Grotesk', sans-serif;
60
+ --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, "SF Mono", Consolas, monospace;
61
+ }
62
+
63
+ /* Reset & Base */
64
+ *, *::before, *::after {
65
+ box-sizing: border-box;
66
+ margin: 0;
67
+ padding: 0;
68
+ }
69
+
70
+ html {
71
+ font-size: 14px;
72
+ scroll-behavior: smooth;
73
+ }
74
+
75
+ body {
76
+ font-family: var(--font-body);
77
+ background-color: var(--background);
78
+ color: var(--foreground);
79
+ line-height: 1.6;
80
+ min-height: 100vh;
81
+ -webkit-font-smoothing: antialiased;
82
+ -moz-osx-font-smoothing: grayscale;
83
+ }
84
+
85
+ ::selection {
86
+ background: rgba(6, 182, 212, 0.3);
87
+ color: white;
88
+ }
89
+
90
+ a {
91
+ color: var(--primary);
92
+ text-decoration: none;
93
+ transition: color 0.2s;
94
+ }
95
+
96
+ a:hover {
97
+ color: var(--primary-light);
98
+ }
99
+
100
+ /* Scrollbar */
101
+ ::-webkit-scrollbar {
102
+ width: 8px;
103
+ height: 8px;
104
+ }
105
+
106
+ ::-webkit-scrollbar-track {
107
+ background: transparent;
108
+ }
109
+
110
+ ::-webkit-scrollbar-thumb {
111
+ background: rgba(255, 255, 255, 0.1);
112
+ border-radius: 4px;
113
+ }
114
+
115
+ ::-webkit-scrollbar-thumb:hover {
116
+ background: rgba(255, 255, 255, 0.2);
117
+ }
118
+
119
+ /* Hidden utility */
120
+ .hidden {
121
+ display: none !important;
122
+ }
123
+
124
+ /* ========================================
125
+ BACKGROUND EFFECTS
126
+ ======================================== */
127
+
128
+ .app {
129
+ min-height: 100vh;
130
+ display: flex;
131
+ flex-direction: column;
132
+ position: relative;
133
+ }
134
+
135
+ .app::before {
136
+ content: '';
137
+ position: fixed;
138
+ inset: 0;
139
+ background:
140
+ linear-gradient(rgba(6, 182, 212, 0.03) 1px, transparent 1px),
141
+ linear-gradient(90deg, rgba(6, 182, 212, 0.03) 1px, transparent 1px);
142
+ background-size: 60px 60px;
143
+ pointer-events: none;
144
+ z-index: 0;
145
+ opacity: 0.5;
146
+ }
147
+
148
+ .app::after {
149
+ content: '';
150
+ position: fixed;
151
+ top: 0;
152
+ left: 20%;
153
+ width: 600px;
154
+ height: 600px;
155
+ background: radial-gradient(circle, rgba(6, 182, 212, 0.08) 0%, transparent 70%);
156
+ pointer-events: none;
157
+ z-index: 0;
158
+ transform: translateY(-50%);
159
+ }
160
+
161
+ /* Noise overlay */
162
+ .noise-overlay {
163
+ position: fixed;
164
+ inset: 0;
165
+ z-index: 9999;
166
+ pointer-events: none;
167
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
168
+ opacity: 0.015;
169
+ }
170
+
171
+ /* ========================================
172
+ LOGIN SCREEN
173
+ ======================================== */
174
+
175
+ #login-container:empty {
176
+ display: none;
177
+ }
178
+
179
+ #login-container:not(:empty) {
180
+ min-height: 100vh;
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: center;
184
+ }
185
+
186
+ .login-page {
187
+ width: 100%;
188
+ min-height: 100vh;
189
+ display: flex;
190
+ flex-direction: column;
191
+ align-items: center;
192
+ justify-content: center;
193
+ padding: 2rem;
194
+ position: relative;
195
+ overflow: hidden;
196
+ }
197
+
198
+ .login-bg-pattern {
199
+ position: absolute;
200
+ inset: 0;
201
+ background:
202
+ radial-gradient(ellipse at 20% 20%, rgba(6, 182, 212, 0.1) 0%, transparent 50%),
203
+ radial-gradient(ellipse at 80% 80%, rgba(139, 92, 246, 0.08) 0%, transparent 50%),
204
+ radial-gradient(ellipse at 50% 50%, rgba(34, 197, 94, 0.04) 0%, transparent 70%);
205
+ pointer-events: none;
206
+ }
207
+
208
+ .login-card {
209
+ position: relative;
210
+ width: 100%;
211
+ max-width: 420px;
212
+ background: linear-gradient(145deg, var(--card) 0%, rgba(10, 10, 15, 0.9) 100%);
213
+ border: 1px solid var(--border);
214
+ border-radius: var(--radius-xl);
215
+ padding: 3rem 2.5rem;
216
+ text-align: center;
217
+ box-shadow:
218
+ 0 0 0 1px rgba(255, 255, 255, 0.03) inset,
219
+ 0 25px 60px -20px rgba(0, 0, 0, 0.6),
220
+ 0 0 100px -50px rgba(6, 182, 212, 0.25);
221
+ backdrop-filter: blur(20px);
222
+ }
223
+
224
+ .login-icon {
225
+ width: 72px;
226
+ height: 72px;
227
+ margin: 0 auto 1.5rem;
228
+ display: flex;
229
+ align-items: center;
230
+ justify-content: center;
231
+ background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
232
+ border-radius: 18px;
233
+ color: black;
234
+ font-size: 1.75rem;
235
+ font-weight: bold;
236
+ box-shadow:
237
+ 0 10px 30px -10px rgba(6, 182, 212, 0.5),
238
+ 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
239
+ }
240
+
241
+ .login-title {
242
+ font-family: var(--font-display);
243
+ font-size: 1.75rem;
244
+ font-weight: 700;
245
+ color: var(--foreground);
246
+ margin-bottom: 0.5rem;
247
+ letter-spacing: -0.02em;
248
+ }
249
+
250
+ .login-subtitle {
251
+ font-size: 0.9375rem;
252
+ color: var(--muted-foreground);
253
+ margin-bottom: 2rem;
254
+ line-height: 1.6;
255
+ }
256
+
257
+ .login-form {
258
+ display: flex;
259
+ flex-direction: column;
260
+ gap: 1rem;
261
+ }
262
+
263
+ .login-input-wrapper {
264
+ position: relative;
265
+ display: flex;
266
+ align-items: center;
267
+ }
268
+
269
+ .login-input-icon {
270
+ position: absolute;
271
+ left: 1rem;
272
+ color: var(--muted-foreground);
273
+ pointer-events: none;
274
+ }
275
+
276
+ .login-input {
277
+ width: 100%;
278
+ height: 52px;
279
+ padding: 0 1rem 0 3rem;
280
+ background: var(--secondary);
281
+ border: 1px solid var(--border);
282
+ border-radius: var(--radius);
283
+ color: var(--foreground);
284
+ font-size: 1rem;
285
+ font-family: var(--font-body);
286
+ outline: none;
287
+ transition: all 0.3s;
288
+ }
289
+
290
+ .login-input:focus {
291
+ border-color: var(--primary);
292
+ box-shadow:
293
+ 0 0 0 3px rgba(6, 182, 212, 0.15),
294
+ 0 0 20px -5px rgba(6, 182, 212, 0.3);
295
+ }
296
+
297
+ .login-input::placeholder {
298
+ color: var(--muted-foreground);
299
+ }
300
+
301
+ .login-btn {
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ gap: 0.5rem;
306
+ width: 100%;
307
+ height: 52px;
308
+ background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
309
+ color: black;
310
+ border: none;
311
+ border-radius: var(--radius);
312
+ font-size: 1rem;
313
+ font-weight: 600;
314
+ font-family: var(--font-body);
315
+ cursor: pointer;
316
+ transition: all 0.3s;
317
+ box-shadow: 0 6px 20px -6px rgba(6, 182, 212, 0.5);
318
+ }
319
+
320
+ .login-btn:hover {
321
+ transform: translateY(-2px);
322
+ box-shadow: 0 10px 30px -6px rgba(6, 182, 212, 0.6);
323
+ }
324
+
325
+ .login-btn:active {
326
+ transform: translateY(0);
327
+ }
328
+
329
+ .login-error {
330
+ display: flex;
331
+ align-items: center;
332
+ justify-content: center;
333
+ gap: 0.5rem;
334
+ padding: 0.875rem 1rem;
335
+ background: rgba(239, 68, 68, 0.1);
336
+ border: 1px solid rgba(239, 68, 68, 0.2);
337
+ border-radius: var(--radius);
338
+ color: var(--destructive);
339
+ font-size: 0.875rem;
340
+ }
341
+
342
+ .login-footer {
343
+ position: relative;
344
+ margin-top: 2.5rem;
345
+ font-size: 0.75rem;
346
+ color: var(--muted-foreground);
347
+ text-transform: uppercase;
348
+ letter-spacing: 0.15em;
349
+ }
350
+
351
+ /* ========================================
352
+ APP HEADER
353
+ ======================================== */
354
+
355
+ .app-header {
356
+ display: flex;
357
+ align-items: center;
358
+ justify-content: space-between;
359
+ padding: 1rem 2rem;
360
+ background: rgba(6, 6, 10, 0.8);
361
+ backdrop-filter: blur(20px);
362
+ border-bottom: 1px solid var(--border);
363
+ position: sticky;
364
+ top: 0;
365
+ z-index: 100;
366
+ }
367
+
368
+ .header-left {
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 1rem;
372
+ }
373
+
374
+ .logo-link {
375
+ display: flex;
376
+ align-items: center;
377
+ gap: 0.75rem;
378
+ text-decoration: none;
379
+ color: inherit;
380
+ transition: opacity 0.2s;
381
+ }
382
+
383
+ .logo-link:hover {
384
+ opacity: 0.85;
385
+ text-decoration: none;
386
+ }
387
+
388
+ .logo-icon {
389
+ width: 40px;
390
+ height: 40px;
391
+ display: flex;
392
+ align-items: center;
393
+ justify-content: center;
394
+ background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
395
+ border-radius: 12px;
396
+ font-family: var(--font-display);
397
+ font-weight: 700;
398
+ font-size: 1rem;
399
+ color: black;
400
+ box-shadow: 0 4px 15px -4px rgba(6, 182, 212, 0.4);
401
+ }
402
+
403
+ .logo {
404
+ font-family: var(--font-display);
405
+ font-size: 1.375rem;
406
+ font-weight: 600;
407
+ color: var(--foreground);
408
+ letter-spacing: -0.02em;
409
+ }
410
+
411
+ .logo .highlight {
412
+ background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
413
+ -webkit-background-clip: text;
414
+ -webkit-text-fill-color: transparent;
415
+ background-clip: text;
416
+ }
417
+
418
+ .version-badge {
419
+ font-size: 0.75rem;
420
+ font-family: var(--font-mono);
421
+ padding: 0.375rem 0.625rem;
422
+ background: rgba(6, 182, 212, 0.1);
423
+ color: var(--primary);
424
+ border: 1px solid rgba(6, 182, 212, 0.2);
425
+ border-radius: 20px;
426
+ }
427
+
428
+ .header-right {
429
+ display: flex;
430
+ align-items: center;
431
+ gap: 1rem;
432
+ }
433
+
434
+ /* Search */
435
+ .search-wrapper {
436
+ position: relative;
437
+ display: flex;
438
+ align-items: center;
439
+ }
440
+
441
+ .search-icon {
442
+ position: absolute;
443
+ left: 1rem;
444
+ color: var(--muted-foreground);
445
+ pointer-events: none;
446
+ }
447
+
448
+ .search-input {
449
+ width: 300px;
450
+ height: 42px;
451
+ padding: 0 2.5rem 0 2.75rem;
452
+ background: var(--secondary);
453
+ border: 1px solid var(--border);
454
+ border-radius: var(--radius);
455
+ color: var(--foreground);
456
+ font-size: 0.9375rem;
457
+ font-family: var(--font-body);
458
+ outline: none;
459
+ transition: all 0.3s;
460
+ }
461
+
462
+ .search-input:focus {
463
+ border-color: var(--border-cyan);
464
+ box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1);
465
+ width: 360px;
466
+ }
467
+
468
+ .search-input::placeholder {
469
+ color: var(--muted-foreground);
470
+ }
471
+
472
+ .search-clear {
473
+ position: absolute;
474
+ right: 0.75rem;
475
+ background: none;
476
+ border: none;
477
+ color: var(--muted-foreground);
478
+ font-size: 1.25rem;
479
+ cursor: pointer;
480
+ padding: 0.25rem;
481
+ line-height: 1;
482
+ transition: color 0.2s;
483
+ }
484
+
485
+ .search-clear:hover {
486
+ color: var(--foreground);
487
+ }
488
+
489
+ /* Version Selector */
490
+ .version-selector-wrapper {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 0.5rem;
494
+ }
495
+
496
+ .version-selector {
497
+ height: 36px;
498
+ padding: 0 2rem 0 0.75rem;
499
+ background: rgba(139, 92, 246, 0.1);
500
+ border: 1px solid rgba(139, 92, 246, 0.3);
501
+ border-radius: var(--radius);
502
+ color: var(--purple);
503
+ font-size: 0.8rem;
504
+ font-weight: 500;
505
+ font-family: var(--font-mono);
506
+ outline: none;
507
+ cursor: pointer;
508
+ appearance: none;
509
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b5cf6' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
510
+ background-repeat: no-repeat;
511
+ background-position: right 0.5rem center;
512
+ transition: all 0.2s;
513
+ }
514
+
515
+ .version-selector:hover {
516
+ background-color: rgba(139, 92, 246, 0.15);
517
+ border-color: rgba(139, 92, 246, 0.5);
518
+ }
519
+
520
+ .version-selector:focus {
521
+ border-color: var(--purple);
522
+ box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15);
523
+ }
524
+
525
+ .version-selector option {
526
+ background: var(--card);
527
+ color: var(--foreground);
528
+ padding: 0.5rem;
529
+ }
530
+
531
+ /* Environment Selector */
532
+ .env-selector-wrapper {
533
+ display: flex;
534
+ align-items: center;
535
+ }
536
+
537
+ .env-selector {
538
+ height: 42px;
539
+ padding: 0 2.5rem 0 1rem;
540
+ background: var(--secondary);
541
+ border: 1px solid var(--border);
542
+ border-radius: var(--radius);
543
+ color: var(--foreground);
544
+ font-size: 0.875rem;
545
+ font-family: var(--font-body);
546
+ outline: none;
547
+ cursor: pointer;
548
+ appearance: none;
549
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
550
+ background-repeat: no-repeat;
551
+ background-position: right 0.75rem center;
552
+ transition: all 0.2s;
553
+ min-width: 140px;
554
+ }
555
+
556
+ .env-selector:hover {
557
+ border-color: var(--border-light);
558
+ }
559
+
560
+ .env-selector:focus {
561
+ border-color: var(--border-cyan);
562
+ box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1);
563
+ }
564
+
565
+ .env-selector option {
566
+ background: var(--card);
567
+ color: var(--foreground);
568
+ padding: 0.5rem;
569
+ }
570
+
571
+ /* Header Buttons */
572
+ .settings-wrapper {
573
+ position: relative;
574
+ }
575
+
576
+ .settings-btn,
577
+ .logout-btn {
578
+ display: flex;
579
+ align-items: center;
580
+ justify-content: center;
581
+ width: 42px;
582
+ height: 42px;
583
+ background: var(--secondary);
584
+ border: 1px solid var(--border);
585
+ border-radius: var(--radius);
586
+ color: var(--muted-foreground);
587
+ cursor: pointer;
588
+ transition: all 0.2s;
589
+ }
590
+
591
+ .settings-btn:hover,
592
+ .logout-btn:hover {
593
+ background: var(--secondary-hover);
594
+ border-color: var(--border-light);
595
+ color: var(--foreground);
596
+ }
597
+
598
+ .logout-btn svg {
599
+ width: 18px;
600
+ height: 18px;
601
+ transition: stroke 0.2s;
602
+ }
603
+
604
+ .logout-btn:hover svg {
605
+ stroke: var(--foreground);
606
+ }
607
+
608
+ /* Settings Panel */
609
+ .settings-panel {
610
+ position: absolute;
611
+ top: calc(100% + 12px);
612
+ right: 0;
613
+ width: 300px;
614
+ background: var(--card);
615
+ border: 1px solid var(--border);
616
+ border-radius: var(--radius-lg);
617
+ box-shadow:
618
+ 0 20px 50px rgba(0, 0, 0, 0.5),
619
+ 0 0 0 1px rgba(255, 255, 255, 0.03) inset;
620
+ z-index: 200;
621
+ overflow: hidden;
622
+ backdrop-filter: blur(20px);
623
+ }
624
+
625
+ .settings-header {
626
+ display: flex;
627
+ align-items: center;
628
+ justify-content: space-between;
629
+ padding: 1rem 1.25rem;
630
+ background: var(--secondary);
631
+ border-bottom: 1px solid var(--border);
632
+ font-family: var(--font-display);
633
+ font-weight: 600;
634
+ font-size: 0.9375rem;
635
+ }
636
+
637
+ .settings-close {
638
+ background: none;
639
+ border: none;
640
+ color: var(--muted-foreground);
641
+ font-size: 1.5rem;
642
+ cursor: pointer;
643
+ padding: 0;
644
+ line-height: 1;
645
+ transition: color 0.2s;
646
+ }
647
+
648
+ .settings-close:hover {
649
+ color: var(--foreground);
650
+ }
651
+
652
+ .settings-content {
653
+ padding: 0.5rem 0;
654
+ max-height: 400px;
655
+ overflow-y: auto;
656
+ }
657
+
658
+ .settings-group {
659
+ padding: 0.75rem 0;
660
+ }
661
+
662
+ .settings-group:not(:last-child) {
663
+ border-bottom: 1px solid var(--border);
664
+ }
665
+
666
+ .settings-group-title {
667
+ padding: 0.25rem 1.25rem 0.75rem;
668
+ font-size: 0.6875rem;
669
+ font-weight: 600;
670
+ text-transform: uppercase;
671
+ letter-spacing: 0.1em;
672
+ color: var(--muted-foreground);
673
+ }
674
+
675
+ .settings-item {
676
+ display: flex;
677
+ align-items: center;
678
+ justify-content: space-between;
679
+ padding: 0.625rem 1.25rem;
680
+ cursor: pointer;
681
+ transition: background-color 0.15s;
682
+ }
683
+
684
+ .settings-item:hover {
685
+ background: var(--secondary);
686
+ }
687
+
688
+ .settings-label {
689
+ font-size: 0.875rem;
690
+ color: var(--foreground);
691
+ }
692
+
693
+ .settings-toggle {
694
+ appearance: none;
695
+ width: 40px;
696
+ height: 22px;
697
+ background: var(--secondary);
698
+ border: 1px solid var(--border);
699
+ border-radius: 11px;
700
+ position: relative;
701
+ cursor: pointer;
702
+ transition: all 0.3s;
703
+ }
704
+
705
+ .settings-toggle::before {
706
+ content: '';
707
+ position: absolute;
708
+ top: 2px;
709
+ left: 2px;
710
+ width: 16px;
711
+ height: 16px;
712
+ background: var(--foreground);
713
+ border-radius: 50%;
714
+ transition: transform 0.3s;
715
+ }
716
+
717
+ .settings-toggle:checked {
718
+ background: var(--primary);
719
+ border-color: var(--primary);
720
+ }
721
+
722
+ .settings-toggle:checked::before {
723
+ transform: translateX(18px);
724
+ }
725
+
726
+ /* ========================================
727
+ MAIN CONTENT
728
+ ======================================== */
729
+
730
+ .main-content {
731
+ flex: 1;
732
+ padding: 2rem;
733
+ max-width: 1280px;
734
+ margin: 0 auto;
735
+ width: 100%;
736
+ position: relative;
737
+ z-index: 1;
738
+ }
739
+
740
+ /* ========================================
741
+ STATS GRID - Glass Cards
742
+ ======================================== */
743
+
744
+ .stats-grid {
745
+ display: grid;
746
+ grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
747
+ gap: 1rem;
748
+ margin-bottom: 2rem;
749
+ }
750
+
751
+ .stat-card {
752
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.01) 100%);
753
+ border: 1px solid var(--border);
754
+ border-radius: var(--radius-lg);
755
+ padding: 1.5rem;
756
+ text-align: center;
757
+ position: relative;
758
+ overflow: hidden;
759
+ transition: all 0.3s;
760
+ }
761
+
762
+ .stat-card::before {
763
+ content: '';
764
+ position: absolute;
765
+ inset: 0;
766
+ background: radial-gradient(circle at 50% 0%, rgba(6, 182, 212, 0.08) 0%, transparent 60%);
767
+ opacity: 0;
768
+ transition: opacity 0.3s;
769
+ }
770
+
771
+ .stat-card:hover::before {
772
+ opacity: 1;
773
+ }
774
+
775
+ .stat-card:hover {
776
+ border-color: var(--border-cyan);
777
+ transform: translateY(-2px);
778
+ }
779
+
780
+ .stat-value {
781
+ font-family: var(--font-display);
782
+ font-size: 2.25rem;
783
+ font-weight: 700;
784
+ color: var(--foreground);
785
+ line-height: 1.2;
786
+ background: linear-gradient(135deg, #fff 0%, var(--primary-light) 100%);
787
+ -webkit-background-clip: text;
788
+ -webkit-text-fill-color: transparent;
789
+ background-clip: text;
790
+ }
791
+
792
+ .stat-label {
793
+ font-size: 0.875rem;
794
+ color: var(--muted-foreground);
795
+ margin-top: 0.375rem;
796
+ text-transform: uppercase;
797
+ letter-spacing: 0.05em;
798
+ font-weight: 500;
799
+ }
800
+
801
+ /* ========================================
802
+ CONTENT CONTAINER - Glass Card
803
+ ======================================== */
804
+
805
+ .content-container {
806
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.01) 100%);
807
+ border: 1px solid var(--border);
808
+ border-radius: var(--radius-xl);
809
+ overflow: hidden;
810
+ backdrop-filter: blur(10px);
811
+ }
812
+
813
+ /* Section Header */
814
+ .section-header {
815
+ display: flex;
816
+ align-items: center;
817
+ justify-content: flex-start;
818
+ gap: 1.5rem;
819
+ padding: 1.25rem 1.5rem;
820
+ background: rgba(255, 255, 255, 0.02);
821
+ border-bottom: 1px solid var(--border);
822
+ }
823
+
824
+ .section-header .export-btn,
825
+ .section-header .group-export-btn,
826
+ .section-header .export-dropdown-wrapper {
827
+ margin-left: auto;
828
+ }
829
+
830
+ .section-header h2 {
831
+ font-family: var(--font-display);
832
+ font-size: 1.125rem;
833
+ font-weight: 600;
834
+ color: var(--foreground);
835
+ letter-spacing: -0.01em;
836
+ }
837
+
838
+ /* Back Button */
839
+ .back-btn {
840
+ display: flex;
841
+ align-items: center;
842
+ gap: 0.5rem;
843
+ background: none;
844
+ border: none;
845
+ color: var(--muted-foreground);
846
+ font-size: 0.9375rem;
847
+ font-family: var(--font-body);
848
+ cursor: pointer;
849
+ padding: 0.375rem 0.75rem;
850
+ margin-left: -0.75rem;
851
+ border-radius: var(--radius);
852
+ transition: all 0.2s;
853
+ }
854
+
855
+ .back-btn:hover {
856
+ background: var(--secondary);
857
+ color: var(--foreground);
858
+ }
859
+
860
+ /* Current Group Display */
861
+ .current-group {
862
+ display: flex;
863
+ align-items: center;
864
+ gap: 0.875rem;
865
+ }
866
+
867
+ .current-group .group-color-bar {
868
+ width: 4px;
869
+ height: 28px;
870
+ border-radius: 2px;
871
+ }
872
+
873
+ .current-group .group-name {
874
+ font-family: var(--font-display);
875
+ font-weight: 600;
876
+ color: var(--foreground);
877
+ font-size: 1.0625rem;
878
+ }
879
+
880
+ .current-group .group-count {
881
+ font-size: 0.875rem;
882
+ color: var(--muted-foreground);
883
+ }
884
+
885
+ /* Clear Search Button */
886
+ .clear-search-btn {
887
+ background: var(--secondary);
888
+ border: 1px solid var(--border);
889
+ color: var(--muted-foreground);
890
+ padding: 0.5rem 1rem;
891
+ border-radius: var(--radius);
892
+ font-size: 0.875rem;
893
+ font-family: var(--font-body);
894
+ cursor: pointer;
895
+ transition: all 0.2s;
896
+ }
897
+
898
+ .clear-search-btn:hover {
899
+ background: var(--secondary-hover);
900
+ color: var(--foreground);
901
+ border-color: var(--border-light);
902
+ }
903
+
904
+ /* ========================================
905
+ GROUPS LIST TABLE - Premium Style
906
+ ======================================== */
907
+
908
+ .groups-list {
909
+ padding: 0;
910
+ }
911
+
912
+ .groups-table {
913
+ width: 100%;
914
+ border-collapse: collapse;
915
+ }
916
+
917
+ .groups-table thead {
918
+ position: relative;
919
+ }
920
+
921
+ .groups-table thead::before {
922
+ content: '';
923
+ position: absolute;
924
+ top: 0;
925
+ left: 0;
926
+ right: 0;
927
+ height: 3px;
928
+ background: linear-gradient(90deg,
929
+ var(--primary) 0%,
930
+ var(--purple) 33%,
931
+ var(--pink) 66%,
932
+ var(--amber) 100%);
933
+ opacity: 0.6;
934
+ }
935
+
936
+ .groups-table th {
937
+ text-align: left;
938
+ padding: 0.875rem 1rem;
939
+ padding-top: 1.125rem;
940
+ font-size: 0.6875rem;
941
+ font-weight: 600;
942
+ color: var(--muted-foreground);
943
+ text-transform: uppercase;
944
+ letter-spacing: 0.1em;
945
+ border-bottom: 1px solid var(--border);
946
+ }
947
+
948
+ .groups-table th:nth-child(2) {
949
+ width: 120px;
950
+ text-align: center;
951
+ }
952
+
953
+ .groups-table th:last-child {
954
+ width: 50px;
955
+ }
956
+
957
+ .group-row {
958
+ cursor: pointer;
959
+ position: relative;
960
+ transition: all 0.2s ease;
961
+ }
962
+
963
+ .group-row td {
964
+ padding: 1rem;
965
+ border-bottom: 1px solid var(--border);
966
+ position: relative;
967
+ }
968
+
969
+ .group-row td:first-child {
970
+ border-left: 3px solid var(--group-color, var(--primary));
971
+ background: linear-gradient(90deg,
972
+ color-mix(in srgb, var(--group-color, var(--primary)) 8%, transparent) 0%,
973
+ transparent 60%
974
+ );
975
+ }
976
+
977
+ .group-row:hover td:first-child {
978
+ background: linear-gradient(90deg,
979
+ color-mix(in srgb, var(--group-color, var(--primary)) 15%, transparent) 0%,
980
+ transparent 60%
981
+ );
982
+ }
983
+
984
+ .group-row:hover td {
985
+ background-color: rgba(255, 255, 255, 0.02);
986
+ }
987
+
988
+ .group-row:last-child td {
989
+ border-bottom: none;
990
+ }
991
+
992
+ .group-name-cell {
993
+ display: flex;
994
+ align-items: center;
995
+ gap: 0.75rem;
996
+ }
997
+
998
+ .group-name {
999
+ font-family: var(--font-display);
1000
+ font-weight: 500;
1001
+ font-size: 1.0625rem;
1002
+ color: var(--foreground);
1003
+ }
1004
+
1005
+ .group-count-cell {
1006
+ color: var(--muted-foreground);
1007
+ font-family: var(--font-mono);
1008
+ font-size: 1.25rem;
1009
+ font-weight: 600;
1010
+ text-align: center;
1011
+ width: 120px;
1012
+ }
1013
+
1014
+ .group-arrow-cell {
1015
+ color: var(--muted-foreground);
1016
+ text-align: center;
1017
+ }
1018
+
1019
+ .group-arrow-cell svg {
1020
+ opacity: 0.3;
1021
+ transition: all 0.2s;
1022
+ }
1023
+
1024
+ .group-row:hover .group-arrow-cell svg {
1025
+ opacity: 1;
1026
+ transform: translateX(3px);
1027
+ color: var(--primary);
1028
+ }
1029
+
1030
+ /* Export Buttons */
1031
+ .export-btn,
1032
+ .group-export-btn {
1033
+ display: inline-flex;
1034
+ align-items: center;
1035
+ gap: 0.5rem;
1036
+ padding: 0.5rem 0.875rem;
1037
+ background: rgba(6, 182, 212, 0.1);
1038
+ border: 1px solid var(--border-cyan);
1039
+ border-radius: var(--radius);
1040
+ color: var(--primary);
1041
+ font-size: 0.75rem;
1042
+ font-weight: 500;
1043
+ font-family: var(--font-body);
1044
+ cursor: pointer;
1045
+ transition: all 0.2s;
1046
+ }
1047
+
1048
+ .export-btn:hover,
1049
+ .group-export-btn:hover {
1050
+ background: rgba(6, 182, 212, 0.2);
1051
+ box-shadow: 0 0 20px -5px rgba(6, 182, 212, 0.4);
1052
+ }
1053
+
1054
+ .export-btn svg,
1055
+ .group-export-btn svg {
1056
+ flex-shrink: 0;
1057
+ width: 14px;
1058
+ height: 14px;
1059
+ }
1060
+
1061
+ /* Group row export button */
1062
+ .group-export-cell {
1063
+ width: 50px;
1064
+ text-align: center;
1065
+ padding: 0.75rem !important;
1066
+ }
1067
+
1068
+ .export-group-btn {
1069
+ display: inline-flex;
1070
+ align-items: center;
1071
+ justify-content: center;
1072
+ width: 32px;
1073
+ height: 32px;
1074
+ background: transparent;
1075
+ border: 1px solid var(--border);
1076
+ border-radius: var(--radius);
1077
+ color: var(--muted-foreground);
1078
+ cursor: pointer;
1079
+ transition: all 0.2s;
1080
+ opacity: 0;
1081
+ }
1082
+
1083
+ .group-row:hover .export-group-btn {
1084
+ opacity: 1;
1085
+ }
1086
+
1087
+ .export-group-btn:hover {
1088
+ background: rgba(6, 182, 212, 0.1);
1089
+ border-color: var(--border-cyan);
1090
+ color: var(--primary);
1091
+ }
1092
+
1093
+ /* ========================================
1094
+ ENDPOINTS LIST
1095
+ ======================================== */
1096
+
1097
+ .endpoints-list {
1098
+ padding: 0.75rem;
1099
+ padding-top: 0;
1100
+ }
1101
+
1102
+ .endpoints-stripe {
1103
+ height: 3px;
1104
+ margin: 0 -0.75rem 0.75rem -0.75rem;
1105
+ background: linear-gradient(90deg,
1106
+ var(--primary) 0%,
1107
+ var(--purple) 33%,
1108
+ var(--pink) 66%,
1109
+ var(--amber) 100%);
1110
+ opacity: 0.6;
1111
+ }
1112
+
1113
+ .endpoint-item {
1114
+ margin: 0.375rem 0;
1115
+ background: rgba(255, 255, 255, 0.01);
1116
+ border: 1px solid var(--border);
1117
+ border-radius: var(--radius);
1118
+ overflow: hidden;
1119
+ transition: all 0.3s;
1120
+ }
1121
+
1122
+ .endpoint-item:hover {
1123
+ border-color: var(--border-light);
1124
+ background: rgba(255, 255, 255, 0.02);
1125
+ }
1126
+
1127
+ .endpoint-item.expanded {
1128
+ border-color: var(--border-cyan);
1129
+ box-shadow: 0 0 30px -10px rgba(6, 182, 212, 0.2);
1130
+ }
1131
+
1132
+ .endpoint-header {
1133
+ display: flex;
1134
+ align-items: center;
1135
+ padding: 1rem 1.25rem;
1136
+ cursor: pointer;
1137
+ gap: 1rem;
1138
+ }
1139
+
1140
+ .endpoint-method {
1141
+ font-size: 0.6875rem;
1142
+ font-weight: 700;
1143
+ font-family: var(--font-mono);
1144
+ padding: 0.375rem 0.625rem;
1145
+ border-radius: 6px;
1146
+ min-width: 65px;
1147
+ text-align: center;
1148
+ flex-shrink: 0;
1149
+ text-transform: uppercase;
1150
+ letter-spacing: 0.02em;
1151
+ }
1152
+
1153
+ .endpoint-method.get {
1154
+ background: rgba(34, 197, 94, 0.15);
1155
+ color: var(--method-get);
1156
+ box-shadow: 0 0 15px -5px rgba(34, 197, 94, 0.3);
1157
+ }
1158
+ .endpoint-method.post {
1159
+ background: rgba(6, 182, 212, 0.15);
1160
+ color: var(--method-post);
1161
+ box-shadow: 0 0 15px -5px rgba(6, 182, 212, 0.3);
1162
+ }
1163
+ .endpoint-method.put {
1164
+ background: rgba(245, 158, 11, 0.15);
1165
+ color: var(--method-put);
1166
+ box-shadow: 0 0 15px -5px rgba(245, 158, 11, 0.3);
1167
+ }
1168
+ .endpoint-method.patch {
1169
+ background: rgba(245, 158, 11, 0.15);
1170
+ color: var(--method-patch);
1171
+ box-shadow: 0 0 15px -5px rgba(245, 158, 11, 0.3);
1172
+ }
1173
+ .endpoint-method.delete {
1174
+ background: rgba(239, 68, 68, 0.15);
1175
+ color: var(--method-delete);
1176
+ box-shadow: 0 0 15px -5px rgba(239, 68, 68, 0.3);
1177
+ }
1178
+ .endpoint-method.options {
1179
+ background: rgba(139, 92, 246, 0.15);
1180
+ color: var(--method-options);
1181
+ box-shadow: 0 0 15px -5px rgba(139, 92, 246, 0.3);
1182
+ }
1183
+ .endpoint-method.head {
1184
+ background: rgba(107, 114, 128, 0.15);
1185
+ color: var(--method-head);
1186
+ }
1187
+
1188
+ .endpoint-path {
1189
+ font-family: var(--font-mono);
1190
+ font-size: 0.9375rem;
1191
+ color: var(--foreground);
1192
+ flex-shrink: 0;
1193
+ }
1194
+
1195
+ .endpoint-title {
1196
+ flex: 1;
1197
+ font-size: 0.9375rem;
1198
+ color: var(--muted-foreground);
1199
+ white-space: nowrap;
1200
+ overflow: hidden;
1201
+ text-overflow: ellipsis;
1202
+ }
1203
+
1204
+ .endpoint-toggle {
1205
+ color: var(--muted-foreground);
1206
+ flex-shrink: 0;
1207
+ transition: all 0.3s;
1208
+ }
1209
+
1210
+ .endpoint-item.expanded .endpoint-toggle {
1211
+ transform: rotate(90deg);
1212
+ color: var(--primary);
1213
+ }
1214
+
1215
+ /* ========================================
1216
+ ENDPOINT DETAILS
1217
+ ======================================== */
1218
+
1219
+ .endpoint-details {
1220
+ padding: 1.75rem;
1221
+ border-top: 1px solid var(--border);
1222
+ background: var(--background-secondary);
1223
+ }
1224
+
1225
+ .endpoint-badges {
1226
+ display: flex;
1227
+ flex-wrap: wrap;
1228
+ gap: 0.5rem;
1229
+ margin-bottom: 1.25rem;
1230
+ }
1231
+
1232
+ .badge {
1233
+ font-size: 0.6875rem;
1234
+ font-weight: 600;
1235
+ padding: 0.375rem 0.75rem;
1236
+ border-radius: 20px;
1237
+ text-transform: uppercase;
1238
+ letter-spacing: 0.02em;
1239
+ }
1240
+
1241
+ .badge-deprecated {
1242
+ background-color: rgba(239, 68, 68, 0.15);
1243
+ color: var(--destructive);
1244
+ border: 1px solid rgba(239, 68, 68, 0.2);
1245
+ }
1246
+
1247
+ .badge-permission {
1248
+ background-color: rgba(139, 92, 246, 0.15);
1249
+ color: var(--purple);
1250
+ border: 1px solid rgba(139, 92, 246, 0.2);
1251
+ }
1252
+
1253
+ .badge-version {
1254
+ background-color: var(--secondary);
1255
+ color: var(--muted-foreground);
1256
+ border: 1px solid var(--border);
1257
+ }
1258
+
1259
+ .endpoint-description {
1260
+ color: var(--muted-foreground);
1261
+ margin-bottom: 1.75rem;
1262
+ line-height: 1.8;
1263
+ }
1264
+
1265
+ .endpoint-description p {
1266
+ margin-bottom: 0.875rem;
1267
+ }
1268
+
1269
+ .endpoint-description code {
1270
+ background: var(--secondary);
1271
+ padding: 0.2rem 0.5rem;
1272
+ border-radius: 6px;
1273
+ font-family: var(--font-mono);
1274
+ font-size: 0.85em;
1275
+ color: var(--primary-light);
1276
+ }
1277
+
1278
+ .endpoint-description pre {
1279
+ background: var(--secondary);
1280
+ padding: 1.25rem;
1281
+ border-radius: var(--radius);
1282
+ overflow-x: auto;
1283
+ margin: 1rem 0;
1284
+ border: 1px solid var(--border);
1285
+ }
1286
+
1287
+ .endpoint-description pre code {
1288
+ background: transparent;
1289
+ padding: 0;
1290
+ color: var(--foreground);
1291
+ }
1292
+
1293
+ .endpoint-description h2 {
1294
+ font-family: var(--font-display);
1295
+ font-size: 1.25rem;
1296
+ font-weight: 600;
1297
+ color: var(--foreground);
1298
+ margin-top: 1.75rem;
1299
+ margin-bottom: 0.875rem;
1300
+ }
1301
+
1302
+ .endpoint-description h3 {
1303
+ font-family: var(--font-display);
1304
+ font-size: 1.125rem;
1305
+ font-weight: 600;
1306
+ color: var(--foreground);
1307
+ margin-top: 1.5rem;
1308
+ margin-bottom: 0.625rem;
1309
+ }
1310
+
1311
+ .endpoint-description ul, .endpoint-description ol {
1312
+ margin: 0.75rem 0 1.25rem 1.75rem;
1313
+ }
1314
+
1315
+ .endpoint-description li {
1316
+ margin-bottom: 0.375rem;
1317
+ }
1318
+
1319
+ /* Params Tables */
1320
+ .params-section {
1321
+ margin-bottom: 1.75rem;
1322
+ }
1323
+
1324
+ .params-section-title {
1325
+ font-family: var(--font-display);
1326
+ font-size: 0.9375rem;
1327
+ font-weight: 600;
1328
+ color: var(--foreground);
1329
+ margin-bottom: 1rem;
1330
+ display: flex;
1331
+ align-items: center;
1332
+ gap: 0.5rem;
1333
+ }
1334
+
1335
+ .params-section-title.success { color: var(--success); }
1336
+ .params-section-title.error { color: var(--destructive); }
1337
+
1338
+ .params-group-title {
1339
+ font-size: 0.8125rem;
1340
+ font-weight: 500;
1341
+ margin-bottom: 0.75rem;
1342
+ color: var(--muted-foreground);
1343
+ padding-left: 0.75rem;
1344
+ border-left: 2px solid var(--primary);
1345
+ }
1346
+
1347
+ .params-table {
1348
+ width: 100%;
1349
+ border-collapse: collapse;
1350
+ margin-bottom: 1.25rem;
1351
+ }
1352
+
1353
+ .params-table th,
1354
+ .params-table td {
1355
+ text-align: left;
1356
+ padding: 0.875rem 1rem;
1357
+ border-bottom: 1px solid var(--border);
1358
+ font-size: 0.9375rem;
1359
+ }
1360
+
1361
+ .params-table th {
1362
+ color: var(--muted-foreground);
1363
+ font-weight: 500;
1364
+ font-size: 0.75rem;
1365
+ text-transform: uppercase;
1366
+ letter-spacing: 0.05em;
1367
+ background: rgba(255, 255, 255, 0.02);
1368
+ }
1369
+
1370
+ .params-table td {
1371
+ color: var(--foreground);
1372
+ }
1373
+
1374
+ .params-table tr:last-child td {
1375
+ border-bottom: none;
1376
+ }
1377
+
1378
+ .params-table tr:hover td {
1379
+ background: rgba(255, 255, 255, 0.02);
1380
+ }
1381
+
1382
+ .param-name {
1383
+ font-family: var(--font-mono);
1384
+ color: var(--primary-light);
1385
+ font-weight: 500;
1386
+ }
1387
+
1388
+ .param-type {
1389
+ color: var(--muted-foreground);
1390
+ font-size: 0.8125rem;
1391
+ font-family: var(--font-mono);
1392
+ }
1393
+
1394
+ .param-required {
1395
+ font-size: 0.6875rem;
1396
+ font-weight: 600;
1397
+ padding: 0.25rem 0.5rem;
1398
+ border-radius: 4px;
1399
+ background: rgba(239, 68, 68, 0.12);
1400
+ color: var(--destructive);
1401
+ text-transform: uppercase;
1402
+ }
1403
+
1404
+ .param-optional {
1405
+ font-size: 0.6875rem;
1406
+ font-weight: 500;
1407
+ padding: 0.25rem 0.5rem;
1408
+ border-radius: 4px;
1409
+ background: rgba(161, 161, 170, 0.1);
1410
+ color: var(--muted-foreground);
1411
+ }
1412
+
1413
+ .param-field-row {
1414
+ display: flex;
1415
+ align-items: center;
1416
+ gap: 0.5rem;
1417
+ }
1418
+
1419
+ .param-default {
1420
+ font-size: 0.75rem;
1421
+ color: var(--muted-foreground);
1422
+ font-family: var(--font-mono);
1423
+ margin-left: 0.25rem;
1424
+ }
1425
+
1426
+ /* ========================================
1427
+ CODE BLOCKS / EXAMPLES - Premium Style
1428
+ ======================================== */
1429
+
1430
+ .example-section {
1431
+ margin-bottom: 1.75rem;
1432
+ }
1433
+
1434
+ .example-title {
1435
+ font-family: var(--font-display);
1436
+ font-size: 0.9375rem;
1437
+ font-weight: 600;
1438
+ margin-bottom: 1rem;
1439
+ display: flex;
1440
+ align-items: center;
1441
+ gap: 0.625rem;
1442
+ }
1443
+
1444
+ .example-title.success { color: var(--success); }
1445
+ .example-title.error { color: var(--destructive); }
1446
+
1447
+ .example-block {
1448
+ background: var(--background);
1449
+ border: 1px solid var(--border);
1450
+ border-radius: var(--radius);
1451
+ overflow: hidden;
1452
+ margin-bottom: 0.75rem;
1453
+ position: relative;
1454
+ }
1455
+
1456
+ .example-block:last-child {
1457
+ margin-bottom: 0;
1458
+ }
1459
+
1460
+ .example-header {
1461
+ display: flex;
1462
+ align-items: center;
1463
+ justify-content: space-between;
1464
+ padding: 0.75rem 1rem;
1465
+ background: var(--secondary);
1466
+ font-size: 0.8125rem;
1467
+ color: var(--muted-foreground);
1468
+ cursor: pointer;
1469
+ user-select: none;
1470
+ transition: background-color 0.2s;
1471
+ gap: 1rem;
1472
+ }
1473
+
1474
+ .example-header:hover {
1475
+ background: var(--secondary-hover);
1476
+ }
1477
+
1478
+
1479
+ .example-header .example-toggle {
1480
+ transition: transform 0.2s;
1481
+ flex-shrink: 0;
1482
+ margin-left: 0.5rem;
1483
+ }
1484
+
1485
+ .example-block.collapsed .example-toggle {
1486
+ transform: rotate(-90deg);
1487
+ }
1488
+
1489
+ .example-block.collapsed .example-content {
1490
+ display: none;
1491
+ }
1492
+
1493
+ .copy-btn {
1494
+ padding: 0.375rem 0.75rem;
1495
+ background: transparent;
1496
+ border: 1px solid var(--border);
1497
+ border-radius: 6px;
1498
+ color: var(--muted-foreground);
1499
+ font-size: 0.75rem;
1500
+ font-family: var(--font-body);
1501
+ cursor: pointer;
1502
+ transition: all 0.2s;
1503
+ }
1504
+
1505
+ .copy-btn:hover {
1506
+ background: var(--muted);
1507
+ color: var(--foreground);
1508
+ border-color: var(--border-light);
1509
+ }
1510
+
1511
+ .example-content {
1512
+ padding: 1.25rem;
1513
+ overflow-x: auto;
1514
+ position: relative;
1515
+ }
1516
+
1517
+ .example-content pre {
1518
+ margin: 0;
1519
+ font-family: var(--font-mono);
1520
+ font-size: 0.8125rem;
1521
+ line-height: 1.7;
1522
+ white-space: pre-wrap;
1523
+ word-break: break-word;
1524
+ }
1525
+
1526
+ /* JSON Syntax Highlighting - Enhanced */
1527
+ .json-key { color: #7dd3fc; }
1528
+ .json-string { color: #86efac; }
1529
+ .json-number { color: #fcd34d; }
1530
+ .json-keyword { color: #f472b6; }
1531
+
1532
+ /* ========================================
1533
+ TRY IT OUT SECTION
1534
+ ======================================== */
1535
+
1536
+ .try-it-section {
1537
+ margin-top: 2rem;
1538
+ }
1539
+
1540
+ .sample-request {
1541
+ background: var(--background);
1542
+ border: 1px solid var(--border);
1543
+ border-radius: var(--radius);
1544
+ padding: 1.5rem;
1545
+ }
1546
+
1547
+ .sample-section {
1548
+ margin-bottom: 1.25rem;
1549
+ }
1550
+
1551
+ .sample-section-title {
1552
+ font-size: 0.75rem;
1553
+ font-weight: 600;
1554
+ text-transform: uppercase;
1555
+ letter-spacing: 0.08em;
1556
+ color: var(--muted-foreground);
1557
+ margin-bottom: 1rem;
1558
+ }
1559
+
1560
+ .sample-field {
1561
+ margin-bottom: 1rem;
1562
+ }
1563
+
1564
+ .sample-label {
1565
+ display: flex;
1566
+ align-items: center;
1567
+ gap: 0.625rem;
1568
+ font-size: 0.875rem;
1569
+ margin-bottom: 0.5rem;
1570
+ color: var(--foreground);
1571
+ }
1572
+
1573
+ .sample-label .required {
1574
+ color: var(--destructive);
1575
+ font-weight: 600;
1576
+ }
1577
+
1578
+ .sample-type {
1579
+ font-size: 0.625rem;
1580
+ padding: 0.2rem 0.5rem;
1581
+ background-color: var(--secondary);
1582
+ border-radius: 4px;
1583
+ color: var(--muted-foreground);
1584
+ font-family: var(--font-mono);
1585
+ }
1586
+
1587
+ .sample-input,
1588
+ .sample-body-raw {
1589
+ width: 100%;
1590
+ padding: 0.75rem 1rem;
1591
+ background-color: var(--secondary);
1592
+ border: 1px solid var(--border);
1593
+ border-radius: var(--radius);
1594
+ color: var(--foreground);
1595
+ font-size: 0.9375rem;
1596
+ font-family: var(--font-body);
1597
+ transition: all 0.2s;
1598
+ outline: none;
1599
+ }
1600
+
1601
+ .sample-input:focus,
1602
+ .sample-body-raw:focus {
1603
+ border-color: var(--border-cyan);
1604
+ box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.1);
1605
+ }
1606
+
1607
+ .sample-input::placeholder,
1608
+ .sample-body-raw::placeholder {
1609
+ color: var(--muted-foreground);
1610
+ }
1611
+
1612
+ .sample-body-raw {
1613
+ font-family: var(--font-mono);
1614
+ resize: vertical;
1615
+ min-height: 100px;
1616
+ font-size: 0.875rem;
1617
+ }
1618
+
1619
+ /* File Upload Input */
1620
+ .sample-file-wrapper {
1621
+ display: flex;
1622
+ align-items: center;
1623
+ gap: 0.75rem;
1624
+ }
1625
+
1626
+ .sample-file-input {
1627
+ position: absolute;
1628
+ width: 1px;
1629
+ height: 1px;
1630
+ opacity: 0;
1631
+ overflow: hidden;
1632
+ }
1633
+
1634
+ .sample-file-label {
1635
+ display: inline-flex;
1636
+ align-items: center;
1637
+ gap: 0.5rem;
1638
+ padding: 0.625rem 1rem;
1639
+ background: var(--secondary);
1640
+ border: 1px solid var(--border);
1641
+ border-radius: var(--radius);
1642
+ color: var(--muted-foreground);
1643
+ font-size: 0.875rem;
1644
+ cursor: pointer;
1645
+ transition: all 0.2s;
1646
+ }
1647
+
1648
+ .sample-file-label:hover {
1649
+ background: var(--secondary-hover);
1650
+ border-color: var(--border-cyan);
1651
+ color: var(--primary);
1652
+ }
1653
+
1654
+ .sample-file-label svg {
1655
+ flex-shrink: 0;
1656
+ }
1657
+
1658
+ .sample-file-name {
1659
+ font-size: 0.875rem;
1660
+ color: var(--primary-light);
1661
+ font-family: var(--font-mono);
1662
+ white-space: nowrap;
1663
+ overflow: hidden;
1664
+ text-overflow: ellipsis;
1665
+ max-width: 200px;
1666
+ }
1667
+
1668
+ /* Checkbox Input */
1669
+ .sample-checkbox {
1670
+ appearance: none;
1671
+ -webkit-appearance: none;
1672
+ width: 44px;
1673
+ height: 24px;
1674
+ background: var(--secondary);
1675
+ border: 1px solid var(--border);
1676
+ border-radius: 12px;
1677
+ position: relative;
1678
+ cursor: pointer;
1679
+ transition: all 0.3s;
1680
+ flex-shrink: 0;
1681
+ }
1682
+
1683
+ .sample-checkbox::before {
1684
+ content: '';
1685
+ position: absolute;
1686
+ top: 2px;
1687
+ left: 2px;
1688
+ width: 18px;
1689
+ height: 18px;
1690
+ background: var(--muted-foreground);
1691
+ border-radius: 50%;
1692
+ transition: all 0.3s;
1693
+ }
1694
+
1695
+ .sample-checkbox:hover {
1696
+ border-color: var(--border-light);
1697
+ }
1698
+
1699
+ .sample-checkbox:checked {
1700
+ background: var(--primary);
1701
+ border-color: var(--primary);
1702
+ }
1703
+
1704
+ .sample-checkbox:checked::before {
1705
+ transform: translateX(20px);
1706
+ background: #000;
1707
+ }
1708
+
1709
+ .sample-checkbox:focus {
1710
+ outline: none;
1711
+ box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.15);
1712
+ }
1713
+
1714
+ /* Checkbox field layout */
1715
+ .sample-field:has(.sample-checkbox) {
1716
+ display: flex;
1717
+ align-items: center;
1718
+ justify-content: space-between;
1719
+ }
1720
+
1721
+ .sample-field:has(.sample-checkbox) .sample-label {
1722
+ margin-bottom: 0;
1723
+ }
1724
+
1725
+ .sample-actions {
1726
+ display: flex;
1727
+ align-items: center;
1728
+ justify-content: space-between;
1729
+ gap: 1.25rem;
1730
+ padding-top: 1rem;
1731
+ }
1732
+
1733
+ .sample-url-display {
1734
+ display: flex;
1735
+ align-items: center;
1736
+ gap: 0.75rem;
1737
+ flex: 1;
1738
+ min-width: 0;
1739
+ overflow: hidden;
1740
+ }
1741
+
1742
+ .sample-method {
1743
+ font-size: 0.625rem;
1744
+ font-weight: 700;
1745
+ padding: 0.375rem 0.625rem;
1746
+ border-radius: 4px;
1747
+ text-transform: uppercase;
1748
+ font-family: var(--font-mono);
1749
+ flex-shrink: 0;
1750
+ }
1751
+
1752
+ .sample-method.get { background-color: var(--method-get); color: #000; }
1753
+ .sample-method.post { background-color: var(--method-post); color: #000; }
1754
+ .sample-method.put { background-color: var(--method-put); color: #000; }
1755
+ .sample-method.patch { background-color: var(--method-patch); color: #000; }
1756
+ .sample-method.delete { background-color: var(--method-delete); color: #fff; }
1757
+
1758
+ .sample-url-text {
1759
+ font-family: var(--font-mono);
1760
+ font-size: 0.8125rem;
1761
+ color: var(--muted-foreground);
1762
+ white-space: nowrap;
1763
+ overflow: hidden;
1764
+ text-overflow: ellipsis;
1765
+ }
1766
+
1767
+ .sample-btn {
1768
+ padding: 0.75rem 1.75rem;
1769
+ background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary) 100%);
1770
+ border: none;
1771
+ border-radius: var(--radius);
1772
+ color: #000;
1773
+ font-size: 0.9375rem;
1774
+ font-weight: 600;
1775
+ font-family: var(--font-body);
1776
+ cursor: pointer;
1777
+ transition: all 0.2s;
1778
+ flex-shrink: 0;
1779
+ box-shadow: 0 4px 15px -4px rgba(6, 182, 212, 0.4);
1780
+ }
1781
+
1782
+ .sample-btn:hover {
1783
+ transform: translateY(-1px);
1784
+ box-shadow: 0 6px 20px -4px rgba(6, 182, 212, 0.5);
1785
+ }
1786
+
1787
+ .sample-response-wrapper {
1788
+ margin-top: 1.25rem;
1789
+ }
1790
+
1791
+ .sample-response-header {
1792
+ display: flex;
1793
+ align-items: center;
1794
+ justify-content: space-between;
1795
+ margin-bottom: 0.75rem;
1796
+ font-size: 0.75rem;
1797
+ font-weight: 600;
1798
+ text-transform: uppercase;
1799
+ letter-spacing: 0.08em;
1800
+ color: var(--muted-foreground);
1801
+ }
1802
+
1803
+ .sample-status {
1804
+ font-family: var(--font-mono);
1805
+ font-size: 0.75rem;
1806
+ padding: 0.25rem 0.625rem;
1807
+ border-radius: 4px;
1808
+ }
1809
+
1810
+ .sample-status.success {
1811
+ background-color: rgba(34, 197, 94, 0.15);
1812
+ color: var(--success);
1813
+ }
1814
+
1815
+ .sample-status.error {
1816
+ background-color: rgba(239, 68, 68, 0.15);
1817
+ color: var(--destructive);
1818
+ }
1819
+
1820
+ .sample-response {
1821
+ background-color: var(--secondary);
1822
+ border: 1px solid var(--border);
1823
+ border-radius: var(--radius);
1824
+ padding: 1.25rem;
1825
+ font-family: var(--font-mono);
1826
+ font-size: 0.8125rem;
1827
+ white-space: pre-wrap;
1828
+ max-height: 400px;
1829
+ overflow-y: auto;
1830
+ margin: 0;
1831
+ line-height: 1.6;
1832
+ }
1833
+
1834
+ /* ========================================
1835
+ SEARCH RESULTS
1836
+ ======================================== */
1837
+
1838
+ .search-results {
1839
+ padding: 0.75rem;
1840
+ }
1841
+
1842
+ .search-group {
1843
+ margin-bottom: 1.25rem;
1844
+ }
1845
+
1846
+ .search-group-header {
1847
+ display: flex;
1848
+ align-items: center;
1849
+ padding: 1rem 1.25rem;
1850
+ gap: 0.875rem;
1851
+ }
1852
+
1853
+ .search-group-header .group-color-bar {
1854
+ width: 4px;
1855
+ height: 24px;
1856
+ border-radius: 2px;
1857
+ }
1858
+
1859
+ .search-group-header .group-name {
1860
+ font-family: var(--font-display);
1861
+ font-weight: 500;
1862
+ font-size: 0.9375rem;
1863
+ color: var(--muted-foreground);
1864
+ }
1865
+
1866
+ /* ========================================
1867
+ DEPRECATED BADGE
1868
+ ======================================== */
1869
+
1870
+ .deprecated-badge {
1871
+ font-size: 0.625rem;
1872
+ font-weight: 600;
1873
+ padding: 0.2rem 0.5rem;
1874
+ background: rgba(245, 158, 11, 0.12);
1875
+ color: var(--warning);
1876
+ border-radius: 4px;
1877
+ margin-left: 0.625rem;
1878
+ text-transform: uppercase;
1879
+ letter-spacing: 0.02em;
1880
+ }
1881
+
1882
+ /* ========================================
1883
+ ANIMATIONS
1884
+ ======================================== */
1885
+
1886
+ @keyframes fadeIn {
1887
+ from { opacity: 0; transform: translateY(10px); }
1888
+ to { opacity: 1; transform: translateY(0); }
1889
+ }
1890
+
1891
+ @keyframes glowPulse {
1892
+ 0%, 100% {
1893
+ box-shadow: 0 0 20px rgba(6, 182, 212, 0.2);
1894
+ }
1895
+ 50% {
1896
+ box-shadow: 0 0 30px rgba(6, 182, 212, 0.4);
1897
+ }
1898
+ }
1899
+
1900
+ .stat-card,
1901
+ .endpoint-item,
1902
+ .group-row {
1903
+ animation: fadeIn 0.3s ease-out;
1904
+ }
1905
+
1906
+ /* ========================================
1907
+ RESPONSIVE
1908
+ ======================================== */
1909
+
1910
+ @media (max-width: 915px) {
1911
+ .app-header {
1912
+ flex-wrap: wrap;
1913
+ gap: 0.75rem;
1914
+ }
1915
+
1916
+ .header-left {
1917
+ flex: 1;
1918
+ min-width: auto;
1919
+ }
1920
+
1921
+ .header-right {
1922
+ flex: 1;
1923
+ justify-content: flex-end;
1924
+ gap: 0.5rem;
1925
+ }
1926
+
1927
+ .search-input {
1928
+ width: 200px;
1929
+ }
1930
+
1931
+ .search-input:focus {
1932
+ width: 240px;
1933
+ }
1934
+
1935
+ .env-selector {
1936
+ min-width: 120px;
1937
+ padding-right: 2rem;
1938
+ }
1939
+
1940
+ .version-badge {
1941
+ display: none;
1942
+ }
1943
+
1944
+ .logo {
1945
+ font-size: 1.25rem;
1946
+ }
1947
+ }
1948
+
1949
+ @media (max-width: 768px) {
1950
+ .app-header {
1951
+ flex-direction: column;
1952
+ gap: 1rem;
1953
+ padding: 1rem;
1954
+ }
1955
+
1956
+ .header-left {
1957
+ width: 100%;
1958
+ justify-content: center;
1959
+ }
1960
+
1961
+ .header-right {
1962
+ width: 100%;
1963
+ flex-direction: row;
1964
+ flex-wrap: wrap;
1965
+ justify-content: center;
1966
+ gap: 0.75rem;
1967
+ }
1968
+
1969
+ .env-selector-wrapper {
1970
+ order: 1;
1971
+ }
1972
+
1973
+ .version-selector-wrapper {
1974
+ order: 2;
1975
+ }
1976
+
1977
+ .settings-wrapper {
1978
+ order: 3;
1979
+ }
1980
+
1981
+ .logout-btn {
1982
+ order: 4;
1983
+ }
1984
+
1985
+ .search-wrapper {
1986
+ width: 100%;
1987
+ order: 5;
1988
+ }
1989
+
1990
+ .search-input {
1991
+ width: 100%;
1992
+ }
1993
+
1994
+ .search-input:focus {
1995
+ width: 100%;
1996
+ }
1997
+
1998
+ .main-content {
1999
+ padding: 1rem;
2000
+ }
2001
+
2002
+ .stats-grid {
2003
+ grid-template-columns: repeat(2, 1fr);
2004
+ }
2005
+
2006
+ .endpoint-header {
2007
+ flex-wrap: wrap;
2008
+ }
2009
+
2010
+ .endpoint-path {
2011
+ order: 1;
2012
+ width: 100%;
2013
+ margin-top: 0.625rem;
2014
+ }
2015
+
2016
+ .endpoint-title {
2017
+ order: 2;
2018
+ width: 100%;
2019
+ margin-top: 0.375rem;
2020
+ }
2021
+
2022
+ .endpoint-toggle {
2023
+ order: 0;
2024
+ }
2025
+
2026
+ .params-table {
2027
+ display: block;
2028
+ overflow-x: auto;
2029
+ }
2030
+
2031
+ .sample-actions {
2032
+ flex-direction: column;
2033
+ align-items: stretch;
2034
+ }
2035
+
2036
+ .sample-url-display {
2037
+ justify-content: center;
2038
+ }
2039
+ }
2040
+
2041
+ @media (max-width: 480px) {
2042
+ .stats-grid {
2043
+ grid-template-columns: repeat(2, 1fr);
2044
+ gap: 0.75rem;
2045
+ }
2046
+
2047
+ .stat-card {
2048
+ padding: 1.25rem;
2049
+ }
2050
+
2051
+ .stat-value {
2052
+ font-size: 1.75rem;
2053
+ }
2054
+
2055
+ .section-header {
2056
+ flex-direction: row;
2057
+ align-items: center;
2058
+ justify-content: space-between;
2059
+ gap: 0.75rem;
2060
+ flex-wrap: nowrap;
2061
+ }
2062
+
2063
+ .section-header h2 {
2064
+ font-size: 1rem;
2065
+ }
2066
+
2067
+ .current-group {
2068
+ flex: 1;
2069
+ min-width: 0;
2070
+ }
2071
+
2072
+ .current-group .group-name {
2073
+ font-size: 0.9375rem;
2074
+ white-space: nowrap;
2075
+ overflow: hidden;
2076
+ text-overflow: ellipsis;
2077
+ }
2078
+ }
2079
+
2080
+ /* Compact Mode */
2081
+ .compact-mode .stat-card {
2082
+ padding: 1rem;
2083
+ }
2084
+
2085
+ .compact-mode .stat-value {
2086
+ font-size: 1.75rem;
2087
+ }
2088
+
2089
+ .compact-mode .endpoint-header {
2090
+ padding: 0.625rem 1rem;
2091
+ }
2092
+
2093
+ .compact-mode .endpoint-details {
2094
+ padding: 1.25rem;
2095
+ }
2096
+
2097
+ .compact-mode .params-table th,
2098
+ .compact-mode .params-table td {
2099
+ padding: 0.5rem 0.75rem;
2100
+ }
2101
+
2102
+ .compact-mode .example-content {
2103
+ padding: 1rem;
2104
+ }
2105
+
2106
+ /* Hide Try It Out */
2107
+ .hide-tryit .try-it-section {
2108
+ display: none;
2109
+ }
2110
+
2111
+ /* Hide Code Samples */
2112
+ .hide-codesamples .code-samples-section {
2113
+ display: none;
2114
+ }
2115
+
2116
+ /* ========================================
2117
+ VERSION COMPARISON
2118
+ ======================================== */
2119
+
2120
+ .version-compare-toggle {
2121
+ display: inline-flex;
2122
+ align-items: center;
2123
+ justify-content: center;
2124
+ width: 32px;
2125
+ height: 32px;
2126
+ padding: 0;
2127
+ background: transparent;
2128
+ border: 1px solid rgba(139, 92, 246, 0.3);
2129
+ border-radius: var(--radius);
2130
+ color: var(--purple);
2131
+ cursor: pointer;
2132
+ transition: all 0.2s;
2133
+ }
2134
+
2135
+ .version-compare-toggle:hover {
2136
+ background: rgba(139, 92, 246, 0.15);
2137
+ border-color: rgba(139, 92, 246, 0.5);
2138
+ }
2139
+
2140
+ .version-compare-panel {
2141
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.01) 100%);
2142
+ border: 1px solid var(--border);
2143
+ border-radius: var(--radius-lg);
2144
+ margin-bottom: 2rem;
2145
+ overflow: hidden;
2146
+ }
2147
+
2148
+ .version-compare-header {
2149
+ display: flex;
2150
+ align-items: center;
2151
+ justify-content: space-between;
2152
+ padding: 1rem 1.5rem;
2153
+ background: rgba(139, 92, 246, 0.1);
2154
+ border-bottom: 1px solid var(--border);
2155
+ }
2156
+
2157
+ .version-compare-header h3 {
2158
+ font-family: var(--font-display);
2159
+ font-size: 1rem;
2160
+ font-weight: 600;
2161
+ color: var(--purple);
2162
+ margin: 0;
2163
+ }
2164
+
2165
+ .version-compare-close {
2166
+ background: none;
2167
+ border: none;
2168
+ color: var(--muted-foreground);
2169
+ font-size: 1.5rem;
2170
+ cursor: pointer;
2171
+ padding: 0;
2172
+ line-height: 1;
2173
+ transition: color 0.2s;
2174
+ }
2175
+
2176
+ .version-compare-close:hover {
2177
+ color: var(--foreground);
2178
+ }
2179
+
2180
+ .version-compare-selectors {
2181
+ display: flex;
2182
+ align-items: center;
2183
+ gap: 1rem;
2184
+ padding: 1.25rem 1.5rem;
2185
+ flex-wrap: wrap;
2186
+ }
2187
+
2188
+ .version-select-group {
2189
+ display: flex;
2190
+ flex-direction: column;
2191
+ gap: 0.375rem;
2192
+ }
2193
+
2194
+ .version-select-group label {
2195
+ font-size: 0.75rem;
2196
+ font-weight: 500;
2197
+ color: var(--muted-foreground);
2198
+ text-transform: uppercase;
2199
+ letter-spacing: 0.05em;
2200
+ }
2201
+
2202
+ .version-select {
2203
+ height: 40px;
2204
+ padding: 0 2.5rem 0 1rem;
2205
+ background: var(--secondary);
2206
+ border: 1px solid var(--border);
2207
+ border-radius: var(--radius);
2208
+ color: var(--foreground);
2209
+ font-size: 0.875rem;
2210
+ font-family: var(--font-mono);
2211
+ outline: none;
2212
+ cursor: pointer;
2213
+ appearance: none;
2214
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
2215
+ background-repeat: no-repeat;
2216
+ background-position: right 0.75rem center;
2217
+ min-width: 120px;
2218
+ transition: all 0.2s;
2219
+ }
2220
+
2221
+ .version-select:hover {
2222
+ border-color: var(--border-light);
2223
+ }
2224
+
2225
+ .version-select:focus {
2226
+ border-color: rgba(139, 92, 246, 0.5);
2227
+ box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
2228
+ }
2229
+
2230
+ .version-arrow {
2231
+ font-size: 1.25rem;
2232
+ color: var(--muted-foreground);
2233
+ padding-top: 1.25rem;
2234
+ }
2235
+
2236
+ .version-compare-btn {
2237
+ padding: 0.625rem 1.25rem;
2238
+ background: linear-gradient(135deg, var(--purple) 0%, #7c3aed 100%);
2239
+ border: none;
2240
+ border-radius: var(--radius);
2241
+ color: #fff;
2242
+ font-size: 0.875rem;
2243
+ font-weight: 600;
2244
+ font-family: var(--font-body);
2245
+ cursor: pointer;
2246
+ transition: all 0.2s;
2247
+ margin-left: auto;
2248
+ margin-top: 1.25rem;
2249
+ box-shadow: 0 4px 15px -4px rgba(139, 92, 246, 0.4);
2250
+ }
2251
+
2252
+ .version-compare-btn:hover {
2253
+ transform: translateY(-1px);
2254
+ box-shadow: 0 6px 20px -4px rgba(139, 92, 246, 0.5);
2255
+ }
2256
+
2257
+ .version-compare-btn:disabled {
2258
+ opacity: 0.5;
2259
+ cursor: not-allowed;
2260
+ transform: none;
2261
+ }
2262
+
2263
+ .version-compare-results {
2264
+ border-top: 1px solid var(--border);
2265
+ padding: 1.5rem;
2266
+ }
2267
+
2268
+ .version-diff-summary {
2269
+ display: flex;
2270
+ gap: 1.5rem;
2271
+ margin-bottom: 1.5rem;
2272
+ flex-wrap: wrap;
2273
+ }
2274
+
2275
+ .diff-stat {
2276
+ display: flex;
2277
+ align-items: center;
2278
+ gap: 0.5rem;
2279
+ padding: 0.75rem 1rem;
2280
+ background: var(--secondary);
2281
+ border-radius: var(--radius);
2282
+ font-size: 0.875rem;
2283
+ }
2284
+
2285
+ .diff-stat.added {
2286
+ background: rgba(34, 197, 94, 0.1);
2287
+ color: var(--success);
2288
+ }
2289
+
2290
+ .diff-stat.removed {
2291
+ background: rgba(239, 68, 68, 0.1);
2292
+ color: var(--destructive);
2293
+ }
2294
+
2295
+ .diff-stat.modified {
2296
+ background: rgba(245, 158, 11, 0.1);
2297
+ color: var(--warning);
2298
+ }
2299
+
2300
+ .diff-stat-count {
2301
+ font-weight: 700;
2302
+ font-family: var(--font-mono);
2303
+ }
2304
+
2305
+ .version-diff-details {
2306
+ display: flex;
2307
+ flex-direction: column;
2308
+ gap: 1rem;
2309
+ }
2310
+
2311
+ .diff-section {
2312
+ background: var(--background);
2313
+ border: 1px solid var(--border);
2314
+ border-radius: var(--radius);
2315
+ overflow: hidden;
2316
+ }
2317
+
2318
+ .diff-section-header {
2319
+ display: flex;
2320
+ align-items: center;
2321
+ gap: 0.75rem;
2322
+ padding: 0.875rem 1rem;
2323
+ background: var(--secondary);
2324
+ font-size: 0.875rem;
2325
+ font-weight: 600;
2326
+ cursor: pointer;
2327
+ transition: background-color 0.2s;
2328
+ }
2329
+
2330
+ .diff-section-header:hover {
2331
+ background: var(--secondary-hover);
2332
+ }
2333
+
2334
+ .diff-section-header.added {
2335
+ color: var(--success);
2336
+ }
2337
+
2338
+ .diff-section-header.removed {
2339
+ color: var(--destructive);
2340
+ }
2341
+
2342
+ .diff-section-header.modified {
2343
+ color: var(--warning);
2344
+ }
2345
+
2346
+ .diff-section-icon {
2347
+ font-size: 1rem;
2348
+ }
2349
+
2350
+ .diff-section-content {
2351
+ padding: 1rem;
2352
+ }
2353
+
2354
+ .diff-endpoint {
2355
+ display: flex;
2356
+ align-items: center;
2357
+ gap: 0.75rem;
2358
+ padding: 0.75rem;
2359
+ border-radius: var(--radius);
2360
+ margin-bottom: 0.5rem;
2361
+ background: rgba(255, 255, 255, 0.02);
2362
+ }
2363
+
2364
+ .diff-endpoint:last-child {
2365
+ margin-bottom: 0;
2366
+ }
2367
+
2368
+ .diff-endpoint.added {
2369
+ background: rgba(34, 197, 94, 0.08);
2370
+ border-left: 3px solid var(--success);
2371
+ }
2372
+
2373
+ .diff-endpoint.removed {
2374
+ background: rgba(239, 68, 68, 0.08);
2375
+ border-left: 3px solid var(--destructive);
2376
+ }
2377
+
2378
+ .diff-endpoint.modified {
2379
+ background: rgba(245, 158, 11, 0.08);
2380
+ border-left: 3px solid var(--warning);
2381
+ }
2382
+
2383
+ .diff-endpoint-method {
2384
+ font-size: 0.625rem;
2385
+ font-weight: 700;
2386
+ font-family: var(--font-mono);
2387
+ padding: 0.25rem 0.5rem;
2388
+ border-radius: 4px;
2389
+ min-width: 50px;
2390
+ text-align: center;
2391
+ text-transform: uppercase;
2392
+ }
2393
+
2394
+ .diff-endpoint-method.get { background: rgba(34, 197, 94, 0.15); color: var(--method-get); }
2395
+ .diff-endpoint-method.post { background: rgba(6, 182, 212, 0.15); color: var(--method-post); }
2396
+ .diff-endpoint-method.put { background: rgba(245, 158, 11, 0.15); color: var(--method-put); }
2397
+ .diff-endpoint-method.patch { background: rgba(245, 158, 11, 0.15); color: var(--method-patch); }
2398
+ .diff-endpoint-method.delete { background: rgba(239, 68, 68, 0.15); color: var(--method-delete); }
2399
+
2400
+ .diff-endpoint-path {
2401
+ font-family: var(--font-mono);
2402
+ font-size: 0.875rem;
2403
+ color: var(--foreground);
2404
+ }
2405
+
2406
+ .diff-endpoint-title {
2407
+ color: var(--muted-foreground);
2408
+ font-size: 0.875rem;
2409
+ margin-left: auto;
2410
+ }
2411
+
2412
+ .diff-changes-list {
2413
+ margin-top: 0.5rem;
2414
+ padding-left: 1rem;
2415
+ font-size: 0.8125rem;
2416
+ color: var(--muted-foreground);
2417
+ }
2418
+
2419
+ .diff-change-item {
2420
+ padding: 0.25rem 0;
2421
+ }
2422
+
2423
+ .diff-change-item .field {
2424
+ color: var(--primary-light);
2425
+ font-family: var(--font-mono);
2426
+ }
2427
+
2428
+ .no-changes-message {
2429
+ text-align: center;
2430
+ padding: 2rem;
2431
+ color: var(--muted-foreground);
2432
+ font-size: 0.9375rem;
2433
+ }
2434
+
2435
+ @media (max-width: 768px) {
2436
+ .version-compare-selectors {
2437
+ flex-direction: column;
2438
+ align-items: stretch;
2439
+ }
2440
+
2441
+ .version-arrow {
2442
+ text-align: center;
2443
+ padding: 0;
2444
+ }
2445
+
2446
+ .version-compare-btn {
2447
+ margin-left: 0;
2448
+ margin-top: 1rem;
2449
+ width: 100%;
2450
+ }
2451
+
2452
+ .version-diff-summary {
2453
+ flex-direction: column;
2454
+ gap: 0.75rem;
2455
+ }
2456
+ }
2457
+
2458
+ /* ========================================
2459
+ CODE SAMPLES
2460
+ ======================================== */
2461
+
2462
+ .code-samples-section {
2463
+ margin-top: 2rem;
2464
+ margin-bottom: 1.5rem;
2465
+ }
2466
+
2467
+ .code-samples-container {
2468
+ background: var(--background);
2469
+ border: 1px solid var(--border);
2470
+ border-radius: var(--radius);
2471
+ overflow: hidden;
2472
+ }
2473
+
2474
+ .code-samples-tabs {
2475
+ display: flex;
2476
+ gap: 0;
2477
+ background: var(--secondary);
2478
+ border-bottom: 1px solid var(--border);
2479
+ overflow-x: auto;
2480
+ }
2481
+
2482
+ .code-sample-tab {
2483
+ padding: 0.75rem 1.25rem;
2484
+ background: transparent;
2485
+ border: none;
2486
+ border-bottom: 2px solid transparent;
2487
+ color: var(--muted-foreground);
2488
+ font-size: 0.8125rem;
2489
+ font-weight: 500;
2490
+ font-family: var(--font-body);
2491
+ cursor: pointer;
2492
+ transition: all 0.2s;
2493
+ white-space: nowrap;
2494
+ }
2495
+
2496
+ .code-sample-tab:hover {
2497
+ color: var(--foreground);
2498
+ background: rgba(255, 255, 255, 0.02);
2499
+ }
2500
+
2501
+ .code-sample-tab.active {
2502
+ color: var(--primary);
2503
+ border-bottom-color: var(--primary);
2504
+ background: rgba(6, 182, 212, 0.05);
2505
+ }
2506
+
2507
+ .code-sample-panel {
2508
+ position: relative;
2509
+ }
2510
+
2511
+ .code-sample-header {
2512
+ display: flex;
2513
+ align-items: center;
2514
+ justify-content: space-between;
2515
+ padding: 0.75rem 1rem;
2516
+ background: var(--secondary);
2517
+ border-bottom: 1px solid var(--border);
2518
+ font-size: 0.8125rem;
2519
+ color: var(--muted-foreground);
2520
+ }
2521
+
2522
+ .code-sample-code {
2523
+ margin: 0;
2524
+ padding: 1.25rem;
2525
+ font-family: var(--font-mono);
2526
+ font-size: 0.8125rem;
2527
+ line-height: 1.7;
2528
+ white-space: pre-wrap;
2529
+ word-break: break-word;
2530
+ color: #e4e4e7;
2531
+ overflow-x: auto;
2532
+ max-height: 400px;
2533
+ overflow-y: auto;
2534
+ background: #18181b;
2535
+ }
2536
+
2537
+ .code-sample-code code {
2538
+ font-family: inherit;
2539
+ font-size: inherit;
2540
+ }
2541
+
2542
+ /* Syntax Highlighting */
2543
+ .hl-keyword {
2544
+ color: #c084fc;
2545
+ font-weight: 500;
2546
+ }
2547
+
2548
+ .hl-string {
2549
+ color: #86efac;
2550
+ }
2551
+
2552
+ .hl-number {
2553
+ color: #fcd34d;
2554
+ }
2555
+
2556
+ .hl-builtin {
2557
+ color: #67e8f9;
2558
+ }
2559
+
2560
+ .hl-variable {
2561
+ color: #f472b6;
2562
+ }
2563
+
2564
+ .hl-constant {
2565
+ color: #fbbf24;
2566
+ }
2567
+
2568
+ .hl-comment {
2569
+ color: #71717a;
2570
+ font-style: italic;
2571
+ }
2572
+
2573
+ .hl-tag {
2574
+ color: #f87171;
2575
+ }
2576
+
2577
+ .hl-flag {
2578
+ color: #a5b4fc;
2579
+ }
2580
+
2581
+ .hl-method {
2582
+ color: #4ade80;
2583
+ font-weight: 600;
2584
+ }
2585
+
2586
+ @media (max-width: 768px) {
2587
+ .code-samples-tabs {
2588
+ flex-wrap: nowrap;
2589
+ -webkit-overflow-scrolling: touch;
2590
+ }
2591
+
2592
+ .code-sample-tab {
2593
+ padding: 0.625rem 1rem;
2594
+ font-size: 0.75rem;
2595
+ }
2596
+ }
2597
+
2598
+ /* ========================================
2599
+ EXPORT DROPDOWN
2600
+ ======================================== */
2601
+
2602
+ .export-dropdown-wrapper {
2603
+ position: relative;
2604
+ }
2605
+
2606
+ .export-dropdown-toggle {
2607
+ display: inline-flex;
2608
+ align-items: center;
2609
+ gap: 0.5rem;
2610
+ }
2611
+
2612
+ .export-dropdown-toggle .dropdown-arrow {
2613
+ margin-left: 0.25rem;
2614
+ transition: transform 0.2s;
2615
+ }
2616
+
2617
+ .export-dropdown-wrapper.open .dropdown-arrow {
2618
+ transform: rotate(180deg);
2619
+ }
2620
+
2621
+ .export-dropdown-menu {
2622
+ position: absolute;
2623
+ top: calc(100% + 8px);
2624
+ right: 0;
2625
+ min-width: 200px;
2626
+ background: var(--card);
2627
+ border: 1px solid var(--border);
2628
+ border-radius: var(--radius);
2629
+ box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
2630
+ z-index: 100;
2631
+ overflow: hidden;
2632
+ }
2633
+
2634
+ .export-dropdown-item {
2635
+ display: flex;
2636
+ align-items: center;
2637
+ gap: 0.75rem;
2638
+ width: 100%;
2639
+ padding: 0.75rem 1rem;
2640
+ background: none;
2641
+ border: none;
2642
+ color: var(--foreground);
2643
+ font-size: 0.875rem;
2644
+ font-family: var(--font-body);
2645
+ text-align: left;
2646
+ cursor: pointer;
2647
+ transition: background-color 0.15s;
2648
+ }
2649
+
2650
+ .export-dropdown-item:hover {
2651
+ background: var(--secondary);
2652
+ }
2653
+
2654
+ .export-dropdown-item:not(:last-child) {
2655
+ border-bottom: 1px solid var(--border);
2656
+ }
2657
+
2658
+ .export-icon {
2659
+ display: flex;
2660
+ align-items: center;
2661
+ justify-content: center;
2662
+ width: 24px;
2663
+ height: 24px;
2664
+ background: var(--secondary);
2665
+ border-radius: 4px;
2666
+ font-size: 0.625rem;
2667
+ font-weight: 700;
2668
+ font-family: var(--font-mono);
2669
+ color: var(--primary);
2670
+ }