raffel 1.1.82 → 1.1.83

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.
Files changed (63) hide show
  1. package/dist/docs/ui/assets/raffel-docs.css +385 -196
  2. package/dist/docs/ui/assets/raffel-docs.js +269 -55
  3. package/dist/docs/ui/assets/sidebar-tree.js +3 -0
  4. package/dist/docs/ui/html-shell.d.ts.map +1 -1
  5. package/dist/docs/ui/html-shell.js +13 -0
  6. package/dist/docs/ui/html-shell.js.map +1 -1
  7. package/dist/docs/ui/runtime/index.js +269 -55
  8. package/dist/docs/ui/runtime/index.js.map +1 -1
  9. package/dist/docs/ui/runtime/sidebar-tree.js +3 -0
  10. package/dist/docs/ui/runtime/sidebar-tree.js.map +1 -1
  11. package/dist/docs/ui/style-sections/content.d.ts +1 -1
  12. package/dist/docs/ui/style-sections/content.d.ts.map +1 -1
  13. package/dist/docs/ui/style-sections/content.js +54 -54
  14. package/dist/docs/ui/style-sections/edit-link.d.ts +1 -1
  15. package/dist/docs/ui/style-sections/edit-link.js +2 -2
  16. package/dist/docs/ui/style-sections/layout-navigation.d.ts +1 -1
  17. package/dist/docs/ui/style-sections/layout-navigation.d.ts.map +1 -1
  18. package/dist/docs/ui/style-sections/layout-navigation.js +81 -20
  19. package/dist/docs/ui/style-sections/layout-navigation.js.map +1 -1
  20. package/dist/docs/ui/style-sections/schema-code.d.ts +1 -1
  21. package/dist/docs/ui/style-sections/schema-code.d.ts.map +1 -1
  22. package/dist/docs/ui/style-sections/schema-code.js +204 -77
  23. package/dist/docs/ui/style-sections/schema-code.js.map +1 -1
  24. package/dist/docs/ui/style-sections/shell.d.ts.map +1 -1
  25. package/dist/docs/ui/style-sections/shell.js +14 -13
  26. package/dist/docs/ui/style-sections/shell.js.map +1 -1
  27. package/dist/docs/ui/style-sections/try-it.d.ts +1 -1
  28. package/dist/docs/ui/style-sections/try-it.d.ts.map +1 -1
  29. package/dist/docs/ui/style-sections/try-it.js +30 -30
  30. package/dist/docs/ui/types.d.ts +8 -0
  31. package/dist/docs/ui/types.d.ts.map +1 -1
  32. package/dist/docs/usd-middleware.d.ts +8 -0
  33. package/dist/docs/usd-middleware.d.ts.map +1 -1
  34. package/dist/docs/usd-middleware.js.map +1 -1
  35. package/dist/server/types/lifecycle-docs-types.d.ts +4 -0
  36. package/dist/server/types/lifecycle-docs-types.d.ts.map +1 -1
  37. package/dist/ui/docs/ui/html-shell.d.ts.map +1 -1
  38. package/dist/ui/docs/ui/style-sections/content.d.ts +1 -1
  39. package/dist/ui/docs/ui/style-sections/content.d.ts.map +1 -1
  40. package/dist/ui/docs/ui/style-sections/edit-link.d.ts +1 -1
  41. package/dist/ui/docs/ui/style-sections/layout-navigation.d.ts +1 -1
  42. package/dist/ui/docs/ui/style-sections/layout-navigation.d.ts.map +1 -1
  43. package/dist/ui/docs/ui/style-sections/schema-code.d.ts +1 -1
  44. package/dist/ui/docs/ui/style-sections/schema-code.d.ts.map +1 -1
  45. package/dist/ui/docs/ui/style-sections/shell.d.ts.map +1 -1
  46. package/dist/ui/docs/ui/style-sections/try-it.d.ts +1 -1
  47. package/dist/ui/docs/ui/style-sections/try-it.d.ts.map +1 -1
  48. package/dist/ui/docs/ui/types.d.ts +8 -0
  49. package/dist/ui/docs/ui/types.d.ts.map +1 -1
  50. package/dist/ui/docs/usd-middleware.d.ts +8 -0
  51. package/dist/ui/docs/usd-middleware.d.ts.map +1 -1
  52. package/dist/ui/usd/builder/http.d.ts +17 -1
  53. package/dist/ui/usd/builder/http.d.ts.map +1 -1
  54. package/dist/ui/usd/spec/types.d.ts +5 -1
  55. package/dist/ui/usd/spec/types.d.ts.map +1 -1
  56. package/dist/usd/builder/http.d.ts +17 -1
  57. package/dist/usd/builder/http.d.ts.map +1 -1
  58. package/dist/usd/builder/http.js +10 -2
  59. package/dist/usd/builder/http.js.map +1 -1
  60. package/dist/usd/spec/types.d.ts +5 -1
  61. package/dist/usd/spec/types.d.ts.map +1 -1
  62. package/dist/usd/spec/types.js.map +1 -1
  63. package/package.json +1 -1
@@ -22,8 +22,9 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
22
22
  }
23
23
 
24
24
  .app-container {
25
+ --sidebar-width: 280px;
25
26
  display: grid;
26
- grid-template-columns: 280px 1fr;
27
+ grid-template-columns: var(--sidebar-width) minmax(0, 1fr);
27
28
  min-height: calc(100vh - 300px);
28
29
  }
29
30
 
@@ -53,13 +54,59 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
53
54
  .sidebar {
54
55
  background: var(--sidebar-bg);
55
56
  border-right: 1px solid var(--border-color);
56
- padding: 18px 0;
57
- overflow-y: auto;
57
+ display: flex;
58
+ flex-direction: column;
59
+ min-width: 0;
60
+ padding: 14px 0 0;
61
+ overflow: visible;
58
62
  position: sticky;
59
63
  top: 0;
60
64
  height: 100vh;
61
65
  }
62
66
 
67
+ .sidebar-resizer {
68
+ appearance: none;
69
+ position: absolute;
70
+ top: 0;
71
+ right: -5px;
72
+ z-index: 5;
73
+ width: 10px;
74
+ height: 100%;
75
+ padding: 0;
76
+ border: 0;
77
+ background: transparent;
78
+ cursor: col-resize;
79
+ touch-action: none;
80
+ }
81
+
82
+ .sidebar-resizer::before {
83
+ content: '';
84
+ position: absolute;
85
+ top: 0;
86
+ bottom: 0;
87
+ left: 4px;
88
+ width: 1px;
89
+ background: transparent;
90
+ transition: background-color 0.15s, box-shadow 0.15s;
91
+ }
92
+
93
+ .sidebar-resizer:hover::before,
94
+ .sidebar-resizer:focus-visible::before,
95
+ html.sidebar-is-resizing .sidebar-resizer::before {
96
+ background: var(--primary-color);
97
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--primary-color) 18%, transparent);
98
+ }
99
+
100
+ .sidebar-resizer:focus-visible {
101
+ outline: 0;
102
+ }
103
+
104
+ html.sidebar-is-resizing,
105
+ html.sidebar-is-resizing * {
106
+ cursor: col-resize !important;
107
+ user-select: none !important;
108
+ }
109
+
63
110
  .sidebar-hidden {
64
111
  display: none;
65
112
  }
@@ -78,7 +125,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
78
125
  }
79
126
 
80
127
  .sidebar-logo img { height: 32px; }
81
- .sidebar-logo h1 { font-size: 18px; font-weight: 600; }
128
+ .sidebar-logo h1 { font-size: 16px; font-weight: 600; }
82
129
 
83
130
  .sidebar-search {
84
131
  position: relative;
@@ -120,7 +167,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
120
167
  .protocol-tab {
121
168
  padding: 5px 10px;
122
169
  border-radius: 20px;
123
- font-size: 11px;
170
+ font-size: 10px;
124
171
  font-weight: 500;
125
172
  cursor: pointer;
126
173
  background: var(--code-bg);
@@ -147,7 +194,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
147
194
  height: 18px;
148
195
  padding: 0 5px;
149
196
  margin-left: 6px;
150
- font-size: 10px;
197
+ font-size: 9px;
151
198
  border-radius: 9px;
152
199
  background: rgba(0,0,0,0.15);
153
200
  }
@@ -158,7 +205,12 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
158
205
 
159
206
  /* ========== TAG GROUPS ========== */
160
207
  .sidebar-nav {
208
+ flex: 1;
209
+ min-height: 0;
210
+ overflow-x: hidden;
211
+ overflow-y: auto;
161
212
  padding: 0 10px;
213
+ scrollbar-gutter: stable;
162
214
  }
163
215
 
164
216
  .tag-group {
@@ -172,7 +224,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
172
224
  padding: 8px 10px;
173
225
  border-radius: 8px;
174
226
  cursor: pointer;
175
- font-size: 13px;
227
+ font-size: 12px;
176
228
  font-weight: 600;
177
229
  color: var(--text-secondary);
178
230
  transition: all 0.2s;
@@ -189,7 +241,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
189
241
 
190
242
  .tag-group-arrow {
191
243
  transition: transform 0.2s;
192
- font-size: 10px;
244
+ font-size: 9px;
193
245
  }
194
246
 
195
247
  .tag-group.collapsed .tag-group-arrow {
@@ -198,7 +250,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
198
250
 
199
251
  .tag-group-count {
200
252
  margin-left: auto;
201
- font-size: 11px;
253
+ font-size: 10px;
202
254
  color: var(--text-muted);
203
255
  font-weight: 400;
204
256
  }
@@ -252,7 +304,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
252
304
  color: var(--text-muted);
253
305
  cursor: pointer;
254
306
  font: inherit;
255
- font-size: 11px;
307
+ font-size: 10px;
256
308
  line-height: 1.35;
257
309
  padding: 4px 7px;
258
310
  text-align: left;
@@ -300,11 +352,11 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
300
352
  }
301
353
 
302
354
  .nav-item-intro .nav-item-icon {
303
- font-size: 16px;
355
+ font-size: 14px;
304
356
  }
305
357
 
306
358
  .nav-item-intro .nav-item-text {
307
- font-size: 13px;
359
+ font-size: 12px;
308
360
  }
309
361
 
310
362
  .nav-item-method {
@@ -344,8 +396,17 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
344
396
 
345
397
  .nav-item-path {
346
398
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
347
- font-size: 12px;
399
+ font-size: 10px;
348
400
  flex: 1;
401
+ min-width: 0;
402
+ overflow: hidden;
403
+ text-overflow: ellipsis;
404
+ white-space: nowrap;
405
+ }
406
+
407
+ .nav-item-text,
408
+ .docs-sidebar-home {
409
+ min-width: 0;
349
410
  overflow: hidden;
350
411
  text-overflow: ellipsis;
351
412
  white-space: nowrap;
@@ -504,7 +565,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
504
565
  padding-left: 21px;
505
566
  transition: color 0.15s, border-color 0.15s;
506
567
  font-family: 'SF Mono', 'Monaco', monospace;
507
- font-size: 12px;
568
+ font-size: 11px;
508
569
  }
509
570
 
510
571
  .toc-link:hover {
@@ -581,7 +642,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
581
642
  border-radius: 6px;
582
643
  background: var(--bg-color);
583
644
  color: var(--text-color);
584
- font-size: 15px;
645
+ font-size: 13px;
585
646
  font-family: inherit;
586
647
  outline: none;
587
648
  }
@@ -592,7 +653,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
592
653
 
593
654
  .search-modal-close {
594
655
  padding: 6px 10px;
595
- font-size: 12px;
656
+ font-size: 11px;
596
657
  font-family: 'SF Mono', 'Monaco', monospace;
597
658
  color: var(--text-muted);
598
659
  background: var(--surface-color);
@@ -616,7 +677,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
616
677
  padding: 24px 16px;
617
678
  color: var(--text-muted);
618
679
  text-align: center;
619
- font-size: 14px;
680
+ font-size: 12px;
620
681
  }
621
682
 
622
683
  .search-modal-group {
@@ -625,7 +686,7 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
625
686
 
626
687
  .search-modal-group-heading {
627
688
  padding: 8px 12px 4px;
628
- font-size: 11px;
689
+ font-size: 10px;
629
690
  font-weight: 600;
630
691
  letter-spacing: 0.06em;
631
692
  text-transform: uppercase;
@@ -656,12 +717,12 @@ export const layoutNavigationStyles = ` /* ========== LAYOUT ========== */
656
717
  }
657
718
 
658
719
  .search-modal-result-title {
659
- font-size: 14px;
720
+ font-size: 12px;
660
721
  font-weight: 600;
661
722
  }
662
723
 
663
724
  .search-modal-result-desc {
664
- font-size: 12px;
725
+ font-size: 11px;
665
726
  color: var(--text-muted);
666
727
  overflow: hidden;
667
728
  text-overflow: ellipsis;
@@ -1 +1 @@
1
- {"version":3,"file":"layout-navigation.js","sourceRoot":"","sources":["../../../../src/docs/ui/style-sections/layout-navigation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgqBrC,CAAA"}
1
+ {"version":3,"file":"layout-navigation.js","sourceRoot":"","sources":["../../../../src/docs/ui/style-sections/layout-navigation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6tBrC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const schemaCodeStyles = " /* ========== RESPONSE SAMPLES (Right Panel) ========== */\n .response-samples {\n margin-top: 16px;\n }\n\n .response-samples-header {\n font-size: 12px;\n font-weight: 600;\n color: var(--code-panel-text);\n margin-bottom: 12px;\n }\n\n .sample-tabs {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n }\n\n .sample-tab {\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n background: transparent;\n border: 1px solid rgba(255,255,255,0.2);\n color: var(--code-panel-text);\n transition: all 0.15s;\n }\n\n .sample-tab:hover {\n background: rgba(255,255,255,0.1);\n }\n\n .sample-tab.active {\n background: rgba(255,255,255,0.15);\n border-color: rgba(255,255,255,0.3);\n }\n\n .sample-tab.status-2xx { color: #10b981; border-color: #10b981; }\n .sample-tab.status-4xx { color: #f59e0b; border-color: #f59e0b; }\n .sample-tab.status-5xx { color: #ef4444; border-color: #ef4444; }\n\n .sample-content {\n display: none;\n }\n\n .sample-content.active {\n display: block;\n }\n\n .sample-content-type {\n font-size: 11px;\n color: #90a4ae;\n margin-bottom: 8px;\n }\n\n .sample-actions {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n }\n\n .sample-action {\n font-size: 11px;\n color: #90a4ae;\n cursor: pointer;\n background: none;\n border: none;\n padding: 0;\n transition: color 0.15s;\n }\n\n .sample-action:hover {\n color: white;\n }\n\n .sample-json {\n background: rgba(0,0,0,0.3);\n border-radius: 6px;\n padding: 10px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 11px;\n line-height: 1.4;\n color: #e2e8f0;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .sample-json .json-key { color: #f8b500; }\n .sample-json .json-string { color: #a5d6a7; }\n .sample-json .json-number { color: #82aaff; }\n .sample-json .json-boolean { color: #f78c6c; }\n .sample-json .json-null { color: #89ddff; }\n\n /* Right panel sections */\n .right-panel-content {\n display: flex;\n flex-direction: column;\n gap: 18px;\n }\n\n .right-section {\n margin-bottom: 0;\n }\n\n .right-section-header {\n font-size: 11px;\n font-weight: 600;\n color: #90a4ae;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 12px;\n padding-bottom: 6px;\n border-bottom: 1px solid rgba(255,255,255,0.1);\n }\n\n .sample-contents {\n margin-top: 0;\n }\n\n .tab-status {\n font-weight: 600;\n }\n\n .tab-status.status-2xx { color: #10b981; }\n .tab-status.status-4xx { color: #f59e0b; }\n .tab-status.status-5xx { color: #ef4444; }\n\n .no-example {\n color: #90a4ae;\n font-style: italic;\n font-size: 13px;\n padding: 12px;\n background: rgba(0,0,0,0.2);\n border-radius: 6px;\n }\n\n .response-desc-only {\n color: #90a4ae;\n font-size: 13px;\n padding: 12px;\n background: rgba(0,0,0,0.2);\n border-radius: 6px;\n }\n\n /* ========== CODE EXAMPLES ========== */\n .code-example {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 16px;\n }\n\n .code-example-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 10px;\n background: var(--code-panel-header);\n font-size: 11px;\n font-weight: 600;\n color: #90a4ae;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .code-example pre {\n margin: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n color: #e2e8f0;\n padding: 10px;\n }\n\n .code-example code {\n color: #e2e8f0;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 11px;\n line-height: 1.4;\n }\n\n /* Code language tabs */\n .code-tabs {\n display: flex;\n gap: 2px;\n padding: 6px 10px;\n background: var(--code-panel-header);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n }\n\n .code-tab {\n padding: 4px 9px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #90a4ae;\n font-size: 11px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .code-tab:hover {\n background: rgba(255,255,255,0.1);\n color: var(--code-panel-text);\n }\n\n .code-tab.active {\n background: rgba(255,255,255,0.15);\n color: var(--code-panel-text);\n }\n\n .code-contents {\n padding: 0;\n }\n\n .code-content {\n display: none;\n }\n\n .code-content.active {\n display: block;\n }\n\n pre {\n background: var(--code-bg);\n padding: 12px;\n border-radius: 8px;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 11px;\n line-height: 1.45;\n border: 1px solid var(--border-color);\n }\n\n /* ========== SCHEMA VISUALIZATION (Redoc-style) ========== */\n .schema-container {\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 16px;\n }\n\n .schema-row {\n display: flex;\n align-items: flex-start;\n padding: 8px 12px;\n border-bottom: 1px solid var(--border-color);\n transition: background 0.15s;\n }\n\n .schema-row:last-child { border-bottom: none; }\n .schema-row:hover { background: var(--hover-bg); }\n\n .schema-row.nested {\n padding-left: 32px;\n background: rgba(0,0,0,0.02);\n }\n\n .schema-row.nested-2 { padding-left: 48px; }\n .schema-row.nested-3 { padding-left: 64px; }\n .schema-row.nested-4 { padding-left: 80px; }\n\n .schema-property {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 200px;\n flex-shrink: 0;\n }\n\n .schema-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 12px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n .schema-required {\n color: #ef4444;\n font-weight: 700;\n font-size: 12px;\n }\n\n .schema-type {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 1px 6px;\n border-radius: 4px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 10px;\n font-weight: 500;\n }\n\n .type-string { background: #dbeafe; color: #1d4ed8; }\n .type-number, .type-integer { background: #fef3c7; color: #b45309; }\n .type-boolean { background: #fce7f3; color: #be185d; }\n .type-object { background: #e0e7ff; color: #4338ca; }\n .type-array { background: #d1fae5; color: #047857; }\n .type-null { background: #f3f4f6; color: #6b7280; }\n .type-ref { background: #fef3c7; color: #92400e; font-style: italic; }\n\n [data-theme=\"dark\"] .type-string { background: #1e3a5f; color: #93c5fd; }\n [data-theme=\"dark\"] .type-number, [data-theme=\"dark\"] .type-integer { background: #451a03; color: #fcd34d; }\n [data-theme=\"dark\"] .type-boolean { background: #4a0519; color: #f9a8d4; }\n [data-theme=\"dark\"] .type-object { background: #312e81; color: #c7d2fe; }\n [data-theme=\"dark\"] .type-array { background: #064e3b; color: #6ee7b7; }\n [data-theme=\"dark\"] .type-null { background: #374151; color: #9ca3af; }\n [data-theme=\"dark\"] .type-ref { background: #451a03; color: #fbbf24; }\n\n .schema-details {\n flex: 1;\n padding-left: 16px;\n }\n\n .schema-desc {\n color: var(--text-muted);\n font-size: 12px;\n margin-bottom: 4px;\n }\n\n /* Compact response-body tree. Nested wrappers use a fixed step so\n indentation grows predictably instead of compounding by depth. */\n .schema-tree-root {\n margin-top: 6px;\n }\n\n .schema-tree-nested {\n padding-left: 10px;\n }\n\n .schema-tree-row {\n padding: 4px 0;\n font-size: 12px;\n line-height: 1.35;\n }\n\n .schema-tree-root > .schema-tree-row {\n padding-left: 6px;\n border-left: 1px solid var(--border-color);\n }\n\n .schema-tree-property {\n display: flex;\n align-items: center;\n gap: 5px;\n color: var(--text-primary);\n font-weight: 500;\n }\n\n .schema-tree-required {\n color: #ef4444;\n }\n\n .schema-tree-description {\n margin-top: 2px;\n color: var(--text-muted);\n font-size: 11px;\n line-height: 1.4;\n }\n\n .schema-tree-label {\n color: var(--text-primary);\n font-weight: 500;\n }\n\n .schema-tree-meta {\n color: var(--text-secondary);\n }\n\n .schema-tree-unresolved {\n color: var(--text-muted);\n font-style: italic;\n }\n\n .schema-constraints {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n }\n\n .schema-constraint {\n font-size: 11px;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--code-bg);\n color: var(--text-muted);\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .schema-enum {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n }\n\n .schema-enum-value {\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: #fef3c7;\n color: #92400e;\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n [data-theme=\"dark\"] .schema-enum-value {\n background: #451a03;\n color: #fbbf24;\n }\n\n .schema-default {\n font-size: 12px;\n color: var(--text-muted);\n margin-top: 4px;\n }\n\n .schema-default code {\n background: var(--code-bg);\n padding: 1px 4px;\n border-radius: 3px;\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .schema-toggle {\n cursor: pointer;\n user-select: none;\n color: var(--primary-color);\n font-size: 12px;\n margin-left: 8px;\n }\n\n .schema-toggle:hover { text-decoration: underline; }\n\n .schema-nested-container {\n overflow: hidden;\n transition: max-height 0.3s ease;\n }\n\n .schema-nested-container.collapsed {\n max-height: 0 !important;\n }\n\n .schema-example {\n margin-top: 16px;\n background: var(--code-bg);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .schema-example-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: rgba(0,0,0,0.05);\n border-bottom: 1px solid var(--border-color);\n font-size: 12px;\n font-weight: 600;\n color: var(--text-muted);\n text-transform: uppercase;\n }\n\n .schema-example-body {\n padding: 12px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 12px;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n /* Response tabs */\n .response-tabs {\n display: flex;\n gap: 2px;\n margin-bottom: 12px;\n border-bottom: 2px solid var(--border-color);\n }\n\n .response-tab {\n padding: 8px 16px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border: none;\n background: none;\n color: var(--text-muted);\n border-bottom: 2px solid transparent;\n margin-bottom: -2px;\n transition: all 0.15s;\n }\n\n .response-tab:hover { color: var(--text-color); }\n\n .response-tab.active {\n color: var(--primary-color);\n border-bottom-color: var(--primary-color);\n }\n\n .response-tab.status-2xx { color: #10b981; }\n .response-tab.status-2xx.active { border-bottom-color: #10b981; }\n .response-tab.status-4xx { color: #f59e0b; }\n .response-tab.status-4xx.active { border-bottom-color: #f59e0b; }\n .response-tab.status-5xx { color: #ef4444; }\n .response-tab.status-5xx.active { border-bottom-color: #ef4444; }\n\n .response-content { display: none; }\n .response-content.active { display: block; }\n\n /* Parameters table */\n .params-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 16px;\n }\n\n .params-table th {\n text-align: left;\n padding: 8px 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--text-muted);\n background: var(--code-bg);\n border-bottom: 1px solid var(--border-color);\n }\n\n .params-table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--border-color);\n font-size: 13px;\n }\n\n .params-table tr:last-child td { border-bottom: none; }\n\n .param-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-weight: 600;\n }\n\n .param-in {\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 3px;\n background: var(--code-bg);\n color: var(--text-muted);\n text-transform: uppercase;\n margin-left: 8px;\n }\n\n /* ========== CHANNEL TYPES ========== */\n .channel-type-public { background: #10b981; color: white; }\n .channel-type-private { background: #f59e0b; color: white; }\n .channel-type-presence { background: #8b5cf6; color: white; }\n\n /* ========== INFO GRID ========== */\n .info-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n gap: 12px;\n margin-bottom: 24px;\n }\n\n .info-card {\n background: var(--code-bg);\n padding: 16px;\n border-radius: 10px;\n border: 1px solid var(--border-color);\n }\n\n .info-card-title {\n font-size: 11px;\n color: var(--text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .info-card-value {\n font-size: 16px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n /* ========== RESPONSIVE ========== */\n @media (max-width: 900px) {\n .app-container { grid-template-columns: 1fr; }\n .sidebar {\n display: none;\n position: fixed;\n left: 0;\n top: 0;\n width: 300px;\n z-index: 100;\n }\n .sidebar.mobile-open { display: block; }\n .hero { padding: 40px 24px; min-height: 100vh; }\n .hero-logo { height: 80px; margin-bottom: 24px; }\n .hero-title { font-size: 36px; }\n .hero-version { font-size: 12px; margin-left: 8px; }\n .hero-tagline { font-size: 17px; margin-bottom: 20px; }\n .hero-features { flex-direction: column; align-items: center; gap: 12px; }\n .hero-features li { font-size: 15px; }\n .hero-btn { padding: 12px 24px; font-size: 15px; }\n .github-corner svg { width: 60px; height: 60px; }\n .main { padding: 24px; }\n }\n\n /* ========== ANIMATIONS ========== */\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .endpoint-section {\n animation: fadeIn 0.3s ease-out;\n }\n\n /* ========== HTTP ENDPOINT (ReDoc-style) ========== */\n .http-param-group {\n margin-bottom: 14px;\n }\n\n .http-param-group-title {\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--text-muted);\n margin-bottom: 8px;\n }\n\n .http-params {\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .http-param {\n padding: 8px 12px;\n border-bottom: 1px solid var(--border-color);\n }\n\n .http-param:last-child { border-bottom: none; }\n\n .http-param-head {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n }\n\n .http-param-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 12px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n .http-param-required {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: #ef4444;\n }\n\n .http-param-deprecated {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: #f59e0b;\n }\n\n .http-param-desc {\n color: var(--text-muted);\n font-size: 12px;\n margin-top: 4px;\n line-height: 1.4;\n }\n\n /* Validation constraint chips (reuses .schema-constraint look) */\n .constraint-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 5px;\n }\n\n .constraint-chip {\n font-size: 10px;\n padding: 1px 6px;\n border-radius: 4px;\n background: var(--code-bg);\n color: var(--text-muted);\n border: 1px solid var(--border-color);\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .constraint-chip.constraint-enum {\n background: #fef3c7;\n color: #92400e;\n border-color: transparent;\n }\n\n [data-theme=\"dark\"] .constraint-chip.constraint-enum {\n background: #451a03;\n color: #fbbf24;\n }\n\n /* Response accordions */\n .response-accordion {\n border: 1px solid var(--border-color);\n border-radius: 8px;\n margin-bottom: 8px;\n overflow: hidden;\n }\n\n .response-accordion-header {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 9px 12px;\n background: var(--code-bg);\n border: none;\n cursor: pointer;\n text-align: left;\n font-size: 12px;\n color: var(--text-color);\n transition: background 0.15s;\n }\n\n .response-accordion-header:hover { background: var(--hover-bg); }\n\n .response-accordion-caret {\n flex-shrink: 0;\n font-size: 10px;\n color: var(--text-muted);\n transition: transform 0.2s ease;\n }\n\n .response-accordion.open .response-accordion-caret {\n transform: rotate(90deg);\n }\n\n .response-status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .response-status-dot.status-2xx { background: #10b981; }\n .response-status-dot.status-3xx { background: #3b82f6; }\n .response-status-dot.status-4xx { background: #f59e0b; }\n .response-status-dot.status-5xx { background: #ef4444; }\n\n .response-status-code {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-weight: 600;\n }\n\n .response-status-desc {\n color: var(--text-muted);\n }\n\n .response-accordion-body {\n padding: 10px 12px;\n border-top: 1px solid var(--border-color);\n display: none;\n }\n\n .response-accordion.open .response-accordion-body { display: block; }\n\n .response-subhead {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--text-muted);\n margin: 0 0 6px;\n }\n\n .response-block + .response-block { margin-top: 12px; }\n\n /* Multi-language code samples */\n .http-code-samples {\n margin-top: 8px;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n background: var(--code-bg);\n }\n\n .http-code-samples .code-tabs {\n flex-wrap: wrap;\n background: rgba(0,0,0,0.04);\n }\n\n [data-theme=\"dark\"] .http-code-samples .code-tabs {\n background: rgba(255,255,255,0.03);\n }\n\n .http-code-sample-pre {\n margin: 0;\n padding: 10px;\n background: transparent;\n border: none;\n border-radius: 0;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 11px;\n line-height: 1.4;\n color: var(--text-color);\n white-space: pre;\n }\n\n .http-code-copy,\n .sample-code-copy {\n margin-left: auto;\n padding: 3px 8px;\n background: transparent;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n color: var(--text-muted);\n font-size: 10px;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .http-code-copy:hover,\n .sample-code-copy:hover {\n color: #fff;\n border-color: #90a4ae;\n }\n\n /* Right panel (third column): keep request/response samples dark & legible\n regardless of the active theme, matching ReDoc's sample column. */\n .endpoint-right .endpoint-right-section + .endpoint-right-section {\n margin-top: 18px;\n }\n\n .endpoint-right .http-code-samples {\n background: rgba(0,0,0,0.25);\n border-color: rgba(255,255,255,0.1);\n }\n\n .endpoint-right .http-code-samples .code-tabs {\n background: rgba(0,0,0,0.2);\n border-color: rgba(255,255,255,0.1);\n }\n\n .endpoint-right .http-code-sample-pre {\n color: var(--code-panel-text);\n }\n\n .response-example-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 24px;\n margin: 2px 0 6px;\n }\n\n .response-example-toolbar .response-example-name {\n margin: 0;\n }\n\n .endpoint-right .sample-code {\n margin: 0;\n padding: 10px;\n overflow-x: auto;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n background: rgba(0,0,0,0.25);\n color: var(--code-panel-text);\n white-space: pre;\n word-break: normal;\n }\n\n .endpoint-right .sample-code code {\n color: inherit;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 11px;\n line-height: 1.4;\n white-space: inherit;\n }\n\n .endpoint-right .token.comment,\n .endpoint-right .token.prolog,\n .endpoint-right .token.doctype,\n .endpoint-right .token.cdata {\n color: #90a4ae;\n }\n\n .endpoint-right .token.punctuation { color: #cfd8dc; }\n\n .endpoint-right .token.property,\n .endpoint-right .token.tag,\n .endpoint-right .token.boolean,\n .endpoint-right .token.number,\n .endpoint-right .token.constant,\n .endpoint-right .token.symbol {\n color: #f8b500;\n }\n\n .endpoint-right .token.selector,\n .endpoint-right .token.attr-name,\n .endpoint-right .token.string,\n .endpoint-right .token.char,\n .endpoint-right .token.builtin {\n color: #a5d6a7;\n }\n\n .endpoint-right .token.operator,\n .endpoint-right .token.entity,\n .endpoint-right .token.url,\n .endpoint-right .token.variable {\n color: #89ddff;\n }\n\n .endpoint-right .token.atrule,\n .endpoint-right .token.attr-value,\n .endpoint-right .token.function,\n .endpoint-right .token.class-name {\n color: #82aaff;\n }\n\n .endpoint-right .token.keyword { color: #c792ea; }\n\n .endpoint-right .code-tab {\n color: #90a4ae;\n }\n\n .endpoint-right .code-tab.active {\n background: rgba(255,255,255,0.12);\n color: #fff;\n }\n\n .endpoint-right .response-subhead {\n color: #90a4ae;\n }\n\n /* ========== AUTHENTICATION ========== */\n .authentication-section {\n margin: 28px 36px 36px;\n padding: 24px;\n border: 1px solid var(--border-color);\n border-radius: 10px;\n background: var(--surface-color);\n }\n\n .authentication-header h2 {\n margin: 4px 0 6px;\n font-size: var(--font-size-h2);\n color: var(--text-primary);\n }\n\n .authentication-header p,\n .auth-scheme-description,\n .auth-scheme-meta {\n color: var(--text-muted);\n font-size: var(--font-size-small);\n }\n\n .auth-environment {\n display: grid;\n gap: 6px;\n margin: 18px 0;\n }\n\n .auth-environment-select,\n .auth-input,\n .auth-operation-body {\n width: 100%;\n padding: 8px 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n background: var(--bg-primary);\n color: var(--text-primary);\n font: inherit;\n font-size: var(--font-size-small);\n }\n\n .auth-operation-body {\n min-height: 112px;\n resize: vertical;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: var(--font-size-code);\n }\n\n .auth-schemes {\n display: grid;\n gap: 12px;\n }\n\n .auth-scheme {\n padding: 16px;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n background: var(--bg-primary);\n }\n\n .auth-scheme-title {\n display: flex;\n align-items: baseline;\n gap: 10px;\n margin-bottom: 10px;\n color: var(--text-primary);\n }\n\n .auth-scheme-title span,\n .auth-field-label,\n .auth-status {\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n }\n\n .auth-form,\n .auth-field {\n display: grid;\n gap: 6px;\n }\n\n .auth-form { gap: 10px; }\n\n .auth-oauth-flow {\n display: grid;\n gap: 10px;\n margin: 6px 0;\n padding: 14px;\n border: 1px solid var(--border-color);\n border-radius: 7px;\n }\n\n .auth-oauth-flow legend {\n padding: 0 6px;\n font-weight: 600;\n font-size: var(--font-size-small);\n }\n\n .auth-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n }\n\n .auth-save,\n .auth-request-token,\n .auth-oauth-token,\n .auth-oauth-authorize,\n .auth-oidc-authorize {\n padding: 7px 12px;\n border: 1px solid var(--primary-color);\n border-radius: 6px;\n background: transparent;\n color: var(--primary-color);\n cursor: pointer;\n font-size: var(--font-size-small);\n font-weight: 600;\n }\n\n .auth-status-error { color: #dc2626; }\n\n @media (max-width: 760px) {\n .authentication-section { margin: 20px 16px 28px; padding: 18px; }\n }\n\n .docs-overview-server-variables {\n width: 100%;\n margin-top: 8px;\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n }\n\n .docs-overview-server-variables ul {\n display: grid;\n gap: 5px;\n margin-top: 5px;\n list-style: none;\n }\n\n .docs-overview-server-variables li {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .endpoint-deprecated,\n .http-param-deprecated {\n padding: 2px 6px;\n border: 1px solid #d97706;\n border-radius: 4px;\n color: #b45309;\n font-size: var(--font-size-xs);\n font-weight: 600;\n }\n\n .response-media-sample + .response-media-sample,\n .request-example + .request-example {\n margin-top: 14px;\n padding-top: 14px;\n border-top: 1px solid rgba(255,255,255,0.12);\n }\n\n .response-example-name {\n margin: 6px 0;\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n font-weight: 600;\n }\n\n .sample-code-error { color: #fca5a5; }\n\n .response-link {\n display: grid;\n gap: 4px;\n margin-top: 8px;\n padding: 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n font-size: var(--font-size-small);\n }\n\n .response-link-parameters { white-space: pre-wrap; }\n\n .http-try {\n display: grid;\n gap: 10px;\n margin-top: 12px;\n }\n\n .http-try-run {\n justify-self: start;\n padding: 7px 12px;\n border: 1px solid #8bc34a;\n border-radius: 6px;\n background: transparent;\n color: #c5e1a5;\n cursor: pointer;\n font-size: var(--font-size-small);\n font-weight: 600;\n }\n\n .http-try-run:disabled { cursor: wait; opacity: 0.6; }\n\n .http-try-result {\n max-height: 280px;\n overflow: auto;\n padding: 12px;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: var(--code-panel-text);\n white-space: pre-wrap;\n }\n\n .async-contracts {\n margin: 28px 36px;\n padding: 22px;\n border: 1px solid var(--border-color);\n border-radius: 9px;\n background: var(--surface-color);\n }\n\n .endpoint-left > .async-contracts { margin: 16px 0 0; }\n\n .async-contracts h2 { font-size: var(--font-size-h3); }\n .async-contracts h3 { margin-top: 14px; font-size: var(--font-size-h5); }\n .async-contract-note { margin: 5px 0 12px; color: var(--text-muted); font-size: var(--font-size-small); }\n\n .async-contract {\n display: grid;\n gap: 7px;\n margin-top: 8px;\n padding: 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n }\n\n .async-contract-operation {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n font-size: var(--font-size-small);\n }\n\n @media (max-width: 760px) {\n .async-contracts { margin: 20px 16px; padding: 18px; }\n }\n\n";
1
+ export declare const schemaCodeStyles = " /* ========== RESPONSE SAMPLES (Right Panel) ========== */\n .response-samples {\n margin-top: 16px;\n }\n\n .response-samples-header {\n font-size: 11px;\n font-weight: 600;\n color: var(--code-panel-text);\n margin-bottom: 12px;\n }\n\n .sample-tabs {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n }\n\n .sample-tab {\n padding: 4px 10px;\n border-radius: 4px;\n font-size: 10px;\n font-weight: 500;\n cursor: pointer;\n background: transparent;\n border: 1px solid rgba(255,255,255,0.2);\n color: var(--code-panel-text);\n transition: all 0.15s;\n }\n\n .sample-tab:hover {\n background: rgba(255,255,255,0.1);\n }\n\n .sample-tab.active {\n background: rgba(255,255,255,0.15);\n border-color: rgba(255,255,255,0.3);\n }\n\n .sample-tab.status-2xx { color: #10b981; border-color: #10b981; }\n .sample-tab.status-4xx { color: #f59e0b; border-color: #f59e0b; }\n .sample-tab.status-5xx { color: #ef4444; border-color: #ef4444; }\n\n .sample-content {\n display: none;\n }\n\n .sample-content.active {\n display: block;\n }\n\n .sample-content-type {\n font-size: 10px;\n color: #90a4ae;\n margin-bottom: 8px;\n }\n\n .sample-actions {\n display: flex;\n gap: 12px;\n margin-bottom: 8px;\n }\n\n .sample-action {\n font-size: 10px;\n color: #90a4ae;\n cursor: pointer;\n background: none;\n border: none;\n padding: 0;\n transition: color 0.15s;\n }\n\n .sample-action:hover {\n color: white;\n }\n\n .sample-json {\n background: rgba(0,0,0,0.3);\n border-radius: 6px;\n padding: 10px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 10px;\n line-height: 1.4;\n color: #e2e8f0;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .sample-json .json-key { color: #f8b500; }\n .sample-json .json-string { color: #a5d6a7; }\n .sample-json .json-number { color: #82aaff; }\n .sample-json .json-boolean { color: #f78c6c; }\n .sample-json .json-null { color: #89ddff; }\n\n /* Right panel sections */\n .right-panel-content {\n display: flex;\n flex-direction: column;\n gap: 18px;\n }\n\n .right-section {\n margin-bottom: 0;\n }\n\n .right-section-header {\n font-size: 10px;\n font-weight: 600;\n color: #90a4ae;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 12px;\n padding-bottom: 6px;\n border-bottom: 1px solid rgba(255,255,255,0.1);\n }\n\n .sample-contents {\n margin-top: 0;\n }\n\n .tab-status {\n font-weight: 600;\n }\n\n .tab-status.status-2xx { color: #10b981; }\n .tab-status.status-4xx { color: #f59e0b; }\n .tab-status.status-5xx { color: #ef4444; }\n\n .no-example {\n color: #90a4ae;\n font-style: italic;\n font-size: 12px;\n padding: 12px;\n background: rgba(0,0,0,0.2);\n border-radius: 6px;\n }\n\n .response-desc-only {\n color: #90a4ae;\n font-size: 12px;\n padding: 12px;\n background: rgba(0,0,0,0.2);\n border-radius: 6px;\n }\n\n /* ========== CODE EXAMPLES ========== */\n .code-example {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n overflow: hidden;\n margin-bottom: 16px;\n }\n\n .code-example-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 10px;\n background: var(--code-panel-header);\n font-size: 10px;\n font-weight: 600;\n color: #90a4ae;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .code-example pre {\n margin: 0;\n background: transparent;\n border: none;\n border-radius: 0;\n color: #e2e8f0;\n padding: 10px;\n }\n\n .code-example code {\n color: #e2e8f0;\n white-space: pre-wrap;\n word-break: break-word;\n font-size: 10px;\n line-height: 1.4;\n }\n\n /* Code language tabs */\n .code-tabs {\n display: flex;\n gap: 2px;\n padding: 6px 10px;\n background: var(--code-panel-header);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n }\n\n .code-tab {\n padding: 4px 9px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #90a4ae;\n font-size: 10px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .code-tab:hover {\n background: rgba(255,255,255,0.1);\n color: var(--code-panel-text);\n }\n\n .code-tab.active {\n background: rgba(255,255,255,0.15);\n color: var(--code-panel-text);\n }\n\n .code-contents {\n padding: 0;\n }\n\n .code-content {\n display: none;\n }\n\n .code-content.active {\n display: block;\n }\n\n pre {\n background: var(--code-bg);\n padding: 12px;\n border-radius: 8px;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 10px;\n line-height: 1.45;\n border: 1px solid var(--border-color);\n }\n\n /* ========== SCHEMA VISUALIZATION (Redoc-style) ========== */\n .schema-container {\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 16px;\n }\n\n .schema-row {\n display: flex;\n align-items: flex-start;\n padding: 8px 12px;\n border-bottom: 1px solid var(--border-color);\n transition: background 0.15s;\n }\n\n .schema-row:last-child { border-bottom: none; }\n .schema-row:hover { background: var(--hover-bg); }\n\n .schema-row.nested {\n padding-left: 32px;\n background: rgba(0,0,0,0.02);\n }\n\n .schema-row.nested-2 { padding-left: 48px; }\n .schema-row.nested-3 { padding-left: 64px; }\n .schema-row.nested-4 { padding-left: 80px; }\n\n .schema-property {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 200px;\n flex-shrink: 0;\n }\n\n .schema-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 11px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n .schema-required {\n color: #ef4444;\n font-weight: 700;\n font-size: 11px;\n }\n\n .schema-type {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 1px 6px;\n border-radius: 4px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 9px;\n font-weight: 500;\n }\n\n .type-string { background: #dbeafe; color: #1d4ed8; }\n .type-number, .type-integer { background: #fef3c7; color: #b45309; }\n .type-boolean { background: #fce7f3; color: #be185d; }\n .type-object { background: #e0e7ff; color: #4338ca; }\n .type-array { background: #d1fae5; color: #047857; }\n .type-null { background: #f3f4f6; color: #6b7280; }\n .type-ref { background: #fef3c7; color: #92400e; font-style: italic; }\n\n [data-theme=\"dark\"] .type-string { background: #1e3a5f; color: #93c5fd; }\n [data-theme=\"dark\"] .type-number, [data-theme=\"dark\"] .type-integer { background: #451a03; color: #fcd34d; }\n [data-theme=\"dark\"] .type-boolean { background: #4a0519; color: #f9a8d4; }\n [data-theme=\"dark\"] .type-object { background: #312e81; color: #c7d2fe; }\n [data-theme=\"dark\"] .type-array { background: #064e3b; color: #6ee7b7; }\n [data-theme=\"dark\"] .type-null { background: #374151; color: #9ca3af; }\n [data-theme=\"dark\"] .type-ref { background: #451a03; color: #fbbf24; }\n\n .schema-details {\n flex: 1;\n padding-left: 16px;\n }\n\n .schema-desc {\n color: var(--text-muted);\n font-size: 11px;\n margin-bottom: 4px;\n }\n\n /* Compact ReDoc-style contract tree. Names and requiredness stay in a\n narrow left rail; type, examples, constraints and prose share the\n wider detail column. */\n .schema-tree-root {\n margin-top: 4px;\n border-left: 1px solid var(--border-color);\n border-left-color: color-mix(in srgb, var(--primary-color) 55%, var(--border-color));\n }\n\n .schema-tree-nested {\n margin-left: 14px;\n border-left: 1px solid var(--border-color);\n }\n\n .schema-tree-row {\n position: relative;\n display: grid;\n grid-template-columns: minmax(120px, 28%) minmax(0, 1fr);\n gap: 14px;\n padding: 7px 0 7px 10px;\n border-bottom: 1px solid var(--border-color);\n font-size: 11px;\n line-height: 1.4;\n }\n\n .schema-tree-row::before {\n position: absolute;\n top: 13px;\n left: 0;\n width: 9px;\n border-top: 1px solid var(--border-color);\n border-top-color: color-mix(in srgb, var(--primary-color) 55%, var(--border-color));\n content: '';\n }\n\n .schema-tree-key {\n position: relative;\n display: flex;\n min-width: 0;\n flex-direction: column;\n align-items: flex-start;\n gap: 1px;\n padding-left: 8px;\n }\n\n .schema-tree-name {\n overflow-wrap: anywhere;\n background: transparent;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 10px;\n color: var(--text-primary);\n font-weight: 500;\n }\n\n .schema-tree-required,\n .schema-tree-optional,\n .schema-tree-deprecated {\n font-size: 9px;\n font-weight: 600;\n letter-spacing: 0.35px;\n line-height: 1.35;\n text-transform: uppercase;\n }\n\n .schema-tree-required {\n color: #ef4444;\n }\n\n .schema-tree-optional { color: var(--text-muted); }\n .schema-tree-deprecated { color: #d97706; }\n\n .schema-tree-toggle {\n position: absolute;\n top: -1px;\n left: -8px;\n width: 16px;\n height: 16px;\n padding: 0;\n transform: rotate(0deg);\n border: 0;\n background: transparent;\n color: var(--primary-color);\n cursor: pointer;\n font-size: 14px;\n line-height: 14px;\n transition: transform 120ms ease;\n }\n\n .schema-tree-toggle.open { transform: rotate(90deg); }\n\n .schema-tree-details { min-width: 0; }\n\n .schema-tree-type {\n color: var(--text-muted);\n font-size: 10px;\n line-height: 1.35;\n }\n\n .schema-tree-description {\n margin-top: 3px;\n color: var(--text-color);\n font-size: 11px;\n line-height: 1.42;\n }\n\n .schema-tree-description.markdown-content p {\n margin: 0 0 3px;\n color: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n .schema-tree-description.markdown-content p:last-child { margin-bottom: 0; }\n\n .schema-tree-description.markdown-content ul,\n .schema-tree-description.markdown-content ol {\n margin: 4px 0 2px 16px;\n padding: 0;\n }\n\n .schema-tree-description.markdown-content li { margin: 1px 0; }\n\n .schema-tree-example {\n display: flex;\n min-width: 0;\n align-items: baseline;\n gap: 5px;\n margin-top: 2px;\n color: var(--text-muted);\n font-size: 10px;\n }\n\n .schema-tree-example code {\n overflow: hidden;\n padding: 0 3px;\n border: 1px solid var(--border-color);\n border-radius: 2px;\n background: var(--code-bg);\n color: var(--text-color);\n font-size: 9px;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .schema-tree-items-label {\n display: inline-block;\n margin-top: 3px;\n color: var(--text-muted);\n font-size: 9px;\n font-weight: 600;\n text-transform: uppercase;\n }\n\n .schema-tree-children.collapsed { display: none; }\n\n .schema-tree-meta {\n display: block;\n color: var(--text-secondary);\n }\n\n .schema-tree-unresolved {\n color: var(--text-muted);\n font-style: italic;\n }\n\n .schema-constraints {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n }\n\n .schema-constraint {\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 4px;\n background: var(--code-bg);\n color: var(--text-muted);\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .schema-enum {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 6px;\n }\n\n .schema-enum-value {\n font-size: 10px;\n padding: 2px 8px;\n border-radius: 4px;\n background: #fef3c7;\n color: #92400e;\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n [data-theme=\"dark\"] .schema-enum-value {\n background: #451a03;\n color: #fbbf24;\n }\n\n .schema-default {\n font-size: 11px;\n color: var(--text-muted);\n margin-top: 4px;\n }\n\n .schema-default code {\n background: var(--code-bg);\n padding: 1px 4px;\n border-radius: 3px;\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .schema-toggle {\n cursor: pointer;\n user-select: none;\n color: var(--primary-color);\n font-size: 11px;\n margin-left: 8px;\n }\n\n .schema-toggle:hover { text-decoration: underline; }\n\n .schema-nested-container {\n overflow: hidden;\n transition: max-height 0.3s ease;\n }\n\n .schema-nested-container.collapsed {\n max-height: 0 !important;\n }\n\n .schema-example {\n margin-top: 16px;\n background: var(--code-bg);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .schema-example-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n background: rgba(0,0,0,0.05);\n border-bottom: 1px solid var(--border-color);\n font-size: 11px;\n font-weight: 600;\n color: var(--text-muted);\n text-transform: uppercase;\n }\n\n .schema-example-body {\n padding: 12px;\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 11px;\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n /* Response tabs */\n .response-tabs {\n display: flex;\n gap: 2px;\n margin-bottom: 12px;\n border-bottom: 2px solid var(--border-color);\n }\n\n .response-tab {\n padding: 8px 16px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n border: none;\n background: none;\n color: var(--text-muted);\n border-bottom: 2px solid transparent;\n margin-bottom: -2px;\n transition: all 0.15s;\n }\n\n .response-tab:hover { color: var(--text-color); }\n\n .response-tab.active {\n color: var(--primary-color);\n border-bottom-color: var(--primary-color);\n }\n\n .response-tab.status-2xx { color: #10b981; }\n .response-tab.status-2xx.active { border-bottom-color: #10b981; }\n .response-tab.status-4xx { color: #f59e0b; }\n .response-tab.status-4xx.active { border-bottom-color: #f59e0b; }\n .response-tab.status-5xx { color: #ef4444; }\n .response-tab.status-5xx.active { border-bottom-color: #ef4444; }\n\n .response-content { display: none; }\n .response-content.active { display: block; }\n\n /* Parameters table */\n .params-table {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 16px;\n }\n\n .params-table th {\n text-align: left;\n padding: 8px 12px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: var(--text-muted);\n background: var(--code-bg);\n border-bottom: 1px solid var(--border-color);\n }\n\n .params-table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--border-color);\n font-size: 12px;\n }\n\n .params-table tr:last-child td { border-bottom: none; }\n\n .param-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-weight: 600;\n }\n\n .param-in {\n font-size: 9px;\n padding: 2px 6px;\n border-radius: 3px;\n background: var(--code-bg);\n color: var(--text-muted);\n text-transform: uppercase;\n margin-left: 8px;\n }\n\n /* ========== CHANNEL TYPES ========== */\n .channel-type-public { background: #10b981; color: white; }\n .channel-type-private { background: #f59e0b; color: white; }\n .channel-type-presence { background: #8b5cf6; color: white; }\n\n /* ========== INFO GRID ========== */\n .info-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));\n gap: 12px;\n margin-bottom: 24px;\n }\n\n .info-card {\n background: var(--code-bg);\n padding: 16px;\n border-radius: 10px;\n border: 1px solid var(--border-color);\n }\n\n .info-card-title {\n font-size: 10px;\n color: var(--text-muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 6px;\n }\n\n .info-card-value {\n font-size: 14px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n /* ========== RESPONSIVE ========== */\n @media (max-width: 900px) {\n .app-container { grid-template-columns: 1fr; }\n .sidebar {\n display: none;\n position: fixed;\n left: 0;\n top: 0;\n width: 300px;\n z-index: 100;\n }\n .sidebar-resizer { display: none; }\n .sidebar.mobile-open { display: flex; }\n .hero { padding: 40px 24px; min-height: 100vh; }\n .hero-logo { height: 80px; margin-bottom: 24px; }\n .hero-title { font-size: 32px; }\n .hero-version { font-size: 11px; margin-left: 8px; }\n .hero-tagline { font-size: 15px; margin-bottom: 20px; }\n .hero-features { flex-direction: column; align-items: center; gap: 12px; }\n .hero-features li { font-size: 13px; }\n .hero-btn { padding: 12px 24px; font-size: 13px; }\n .github-corner svg { width: 60px; height: 60px; }\n .main { padding: 24px; }\n }\n\n /* ========== ANIMATIONS ========== */\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .endpoint-section {\n animation: fadeIn 0.3s ease-out;\n }\n\n /* ========== HTTP ENDPOINT (ReDoc-style) ========== */\n .http-param-group {\n margin-bottom: 14px;\n }\n\n .http-param-group-title {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--text-muted);\n margin-bottom: 0;\n padding-bottom: 5px;\n border-bottom: 1px solid var(--border-color);\n }\n\n .http-params {\n overflow: visible;\n }\n\n .http-param {\n padding-top: 7px;\n padding-right: 0;\n padding-bottom: 7px;\n }\n\n .http-param:last-child { border-bottom: none; }\n\n .http-param-head {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n }\n\n .http-param-name {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-size: 11px;\n font-weight: 600;\n color: var(--text-color);\n }\n\n .http-param-required {\n font-size: 9px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: #ef4444;\n }\n\n .http-param-deprecated {\n font-size: 9px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.4px;\n color: #f59e0b;\n }\n\n .http-param-desc {\n color: var(--text-muted);\n font-size: 11px;\n margin-top: 4px;\n line-height: 1.4;\n }\n\n /* Validation constraint chips (reuses .schema-constraint look) */\n .constraint-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 5px;\n }\n\n .constraint-chip {\n font-size: 9px;\n padding: 1px 6px;\n border-radius: 4px;\n background: var(--code-bg);\n color: var(--text-muted);\n border: 1px solid var(--border-color);\n font-family: 'SF Mono', 'Monaco', monospace;\n }\n\n .constraint-chip.constraint-enum {\n background: #fef3c7;\n color: #92400e;\n border-color: transparent;\n }\n\n [data-theme=\"dark\"] .constraint-chip.constraint-enum {\n background: #451a03;\n color: #fbbf24;\n }\n\n /* Response accordions */\n .response-accordion {\n border: 0;\n border-radius: 3px;\n margin-bottom: 8px;\n overflow: hidden;\n }\n\n .response-accordion-header {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 8px 10px;\n background: var(--code-bg);\n border: none;\n cursor: pointer;\n text-align: left;\n font-size: 11px;\n color: var(--text-color);\n transition: background 0.15s;\n }\n\n .response-accordion-header:hover { background: var(--hover-bg); }\n\n .response-accordion-header.status-2xx { background: rgba(16,185,129,0.08); }\n .response-accordion-header.status-3xx { background: rgba(59,130,246,0.08); }\n .response-accordion-header.status-4xx { background: rgba(245,158,11,0.09); }\n .response-accordion-header.status-5xx { background: rgba(239,68,68,0.09); }\n\n .response-accordion-caret {\n flex-shrink: 0;\n font-size: 9px;\n color: var(--text-muted);\n transition: transform 0.2s ease;\n }\n\n .response-accordion.open .response-accordion-caret {\n transform: rotate(90deg);\n }\n\n .response-status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .response-status-dot.status-2xx { background: #10b981; }\n .response-status-dot.status-3xx { background: #3b82f6; }\n .response-status-dot.status-4xx { background: #f59e0b; }\n .response-status-dot.status-5xx { background: #ef4444; }\n\n .response-status-code {\n font-family: 'SF Mono', 'Monaco', monospace;\n font-weight: 600;\n }\n\n .response-status-desc {\n color: var(--text-muted);\n }\n\n .response-accordion-body {\n padding: 9px 8px 5px;\n border-top: 0;\n display: none;\n }\n\n .response-accordion.open .response-accordion-body { display: block; }\n\n .response-subhead {\n font-size: 9px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n color: var(--text-muted);\n margin: 0;\n padding-bottom: 5px;\n border-bottom: 1px solid var(--border-color);\n }\n\n .response-block + .response-block { margin-top: 10px; }\n\n @media (max-width: 640px) {\n .schema-tree-row {\n grid-template-columns: minmax(100px, 35%) minmax(0, 1fr);\n gap: 8px;\n }\n }\n\n /* Multi-language code samples */\n .http-code-samples {\n margin-top: 8px;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n background: var(--code-bg);\n }\n\n .http-code-samples .code-tabs {\n flex-wrap: wrap;\n background: rgba(0,0,0,0.04);\n }\n\n [data-theme=\"dark\"] .http-code-samples .code-tabs {\n background: rgba(255,255,255,0.03);\n }\n\n .http-code-sample-pre {\n margin: 0;\n padding: 10px;\n background: transparent;\n border: none;\n border-radius: 0;\n overflow-x: auto;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 10px;\n line-height: 1.4;\n color: var(--text-color);\n white-space: pre;\n }\n\n .http-code-copy,\n .sample-code-copy {\n margin-left: auto;\n padding: 3px 8px;\n background: transparent;\n border: 1px solid var(--border-color);\n border-radius: 4px;\n color: var(--text-muted);\n font-size: 9px;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .http-code-copy:hover,\n .sample-code-copy:hover {\n color: #fff;\n border-color: #90a4ae;\n }\n\n /* Right panel (third column): keep request/response samples dark & legible\n regardless of the active theme, matching ReDoc's sample column. */\n .endpoint-right .endpoint-right-section + .endpoint-right-section {\n margin-top: 18px;\n }\n\n .endpoint-right .http-code-samples {\n background: rgba(0,0,0,0.25);\n border-color: rgba(255,255,255,0.1);\n }\n\n .endpoint-right .http-code-samples .code-tabs {\n background: rgba(0,0,0,0.2);\n border-color: rgba(255,255,255,0.1);\n }\n\n .endpoint-right .http-code-sample-pre {\n color: var(--code-panel-text);\n }\n\n .response-example-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 24px;\n margin: 2px 0 6px;\n }\n\n .response-example-toolbar .response-example-name {\n margin: 0;\n }\n\n .endpoint-right .sample-code {\n margin: 0;\n padding: 10px;\n overflow-x: auto;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n background: rgba(0,0,0,0.25);\n color: var(--code-panel-text);\n white-space: pre;\n word-break: normal;\n }\n\n .endpoint-right .sample-code code {\n color: inherit;\n font-family: 'SF Mono', 'Fira Code', 'Monaco', monospace;\n font-size: 10px;\n line-height: 1.4;\n white-space: inherit;\n }\n\n .endpoint-right .token.comment,\n .endpoint-right .token.prolog,\n .endpoint-right .token.doctype,\n .endpoint-right .token.cdata {\n color: #90a4ae;\n }\n\n .endpoint-right .token.punctuation { color: #cfd8dc; }\n\n .endpoint-right .token.property,\n .endpoint-right .token.tag,\n .endpoint-right .token.boolean,\n .endpoint-right .token.number,\n .endpoint-right .token.constant,\n .endpoint-right .token.symbol {\n color: #f8b500;\n }\n\n .endpoint-right .token.selector,\n .endpoint-right .token.attr-name,\n .endpoint-right .token.string,\n .endpoint-right .token.char,\n .endpoint-right .token.builtin {\n color: #a5d6a7;\n }\n\n .endpoint-right .token.operator,\n .endpoint-right .token.entity,\n .endpoint-right .token.url,\n .endpoint-right .token.variable {\n color: #89ddff;\n }\n\n .endpoint-right .token.atrule,\n .endpoint-right .token.attr-value,\n .endpoint-right .token.function,\n .endpoint-right .token.class-name {\n color: #82aaff;\n }\n\n .endpoint-right .token.keyword { color: #c792ea; }\n\n .endpoint-right .code-tab {\n color: #90a4ae;\n }\n\n .endpoint-right .code-tab.active {\n background: rgba(255,255,255,0.12);\n color: #fff;\n }\n\n .endpoint-right .response-subhead {\n color: #90a4ae;\n }\n\n /* ========== AUTHENTICATION ========== */\n .authentication-section {\n margin: 28px 36px 36px;\n padding: 24px;\n border: 1px solid var(--border-color);\n border-radius: 10px;\n background: var(--surface-color);\n }\n\n .authentication-header h2 {\n margin: 4px 0 6px;\n font-size: var(--font-size-h2);\n color: var(--text-primary);\n }\n\n .authentication-header p,\n .auth-scheme-description,\n .auth-scheme-meta {\n color: var(--text-muted);\n font-size: var(--font-size-small);\n }\n\n .auth-environment {\n display: grid;\n gap: 6px;\n margin: 18px 0;\n }\n\n .auth-environment-select,\n .auth-input,\n .auth-operation-body {\n width: 100%;\n padding: 8px 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n background: var(--bg-primary);\n color: var(--text-primary);\n font: inherit;\n font-size: var(--font-size-small);\n }\n\n .auth-operation-body {\n min-height: 112px;\n resize: vertical;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: var(--font-size-code);\n }\n\n .auth-schemes {\n display: grid;\n gap: 12px;\n }\n\n .auth-scheme {\n padding: 16px;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n background: var(--bg-primary);\n }\n\n .auth-scheme-title {\n display: flex;\n align-items: baseline;\n gap: 10px;\n margin-bottom: 10px;\n color: var(--text-primary);\n }\n\n .auth-scheme-title span,\n .auth-field-label,\n .auth-status {\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n }\n\n .auth-form,\n .auth-field {\n display: grid;\n gap: 6px;\n }\n\n .auth-form { gap: 10px; }\n\n .auth-oauth-flow {\n display: grid;\n gap: 10px;\n margin: 6px 0;\n padding: 14px;\n border: 1px solid var(--border-color);\n border-radius: 7px;\n }\n\n .auth-oauth-flow legend {\n padding: 0 6px;\n font-weight: 600;\n font-size: var(--font-size-small);\n }\n\n .auth-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n }\n\n .auth-save,\n .auth-request-token,\n .auth-oauth-token,\n .auth-oauth-authorize,\n .auth-oidc-authorize {\n padding: 7px 12px;\n border: 1px solid var(--primary-color);\n border-radius: 6px;\n background: transparent;\n color: var(--primary-color);\n cursor: pointer;\n font-size: var(--font-size-small);\n font-weight: 600;\n }\n\n .auth-status-error { color: #dc2626; }\n\n @media (max-width: 760px) {\n .authentication-section { margin: 20px 16px 28px; padding: 18px; }\n }\n\n .docs-overview-server-variables {\n width: 100%;\n margin-top: 8px;\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n }\n\n .docs-overview-server-variables ul {\n display: grid;\n gap: 5px;\n margin-top: 5px;\n list-style: none;\n }\n\n .docs-overview-server-variables li {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .endpoint-deprecated,\n .http-param-deprecated {\n padding: 2px 6px;\n border: 1px solid #d97706;\n border-radius: 4px;\n color: #b45309;\n font-size: var(--font-size-xs);\n font-weight: 600;\n }\n\n .response-media-sample + .response-media-sample,\n .request-example + .request-example {\n margin-top: 14px;\n padding-top: 14px;\n border-top: 1px solid rgba(255,255,255,0.12);\n }\n\n .response-example-name {\n margin: 6px 0;\n color: var(--text-muted);\n font-size: var(--font-size-xs);\n font-weight: 600;\n }\n\n .sample-code-error { color: #fca5a5; }\n\n .response-link {\n display: grid;\n gap: 4px;\n margin-top: 8px;\n padding: 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n font-size: var(--font-size-small);\n }\n\n .response-link-parameters { white-space: pre-wrap; }\n\n .http-try {\n display: grid;\n gap: 10px;\n margin-top: 12px;\n }\n\n .http-try-run {\n justify-self: start;\n padding: 7px 12px;\n border: 1px solid #8bc34a;\n border-radius: 6px;\n background: transparent;\n color: #c5e1a5;\n cursor: pointer;\n font-size: var(--font-size-small);\n font-weight: 600;\n }\n\n .http-try-run:disabled { cursor: wait; opacity: 0.6; }\n\n .http-try-result {\n max-height: 280px;\n overflow: auto;\n padding: 12px;\n border: 1px solid rgba(255,255,255,0.1);\n border-radius: 6px;\n color: var(--code-panel-text);\n white-space: pre-wrap;\n }\n\n .async-contracts {\n margin: 28px 36px;\n padding: 22px;\n border: 1px solid var(--border-color);\n border-radius: 9px;\n background: var(--surface-color);\n }\n\n .endpoint-left > .async-contracts { margin: 16px 0 0; }\n\n .async-contracts h2 { font-size: var(--font-size-h3); }\n .async-contracts h3 { margin-top: 14px; font-size: var(--font-size-h5); }\n .async-contract-note { margin: 5px 0 12px; color: var(--text-muted); font-size: var(--font-size-small); }\n\n .async-contract {\n display: grid;\n gap: 7px;\n margin-top: 8px;\n padding: 10px;\n border: 1px solid var(--border-color);\n border-radius: 6px;\n }\n\n .async-contract-operation {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n font-size: var(--font-size-small);\n }\n\n @media (max-width: 760px) {\n .async-contracts { margin: 20px 16px; padding: 18px; }\n }\n\n";
2
2
  //# sourceMappingURL=schema-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-code.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/style-sections/schema-code.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,w25BAgrC5B,CAAA"}
1
+ {"version":3,"file":"schema-code.d.ts","sourceRoot":"","sources":["../../../../src/docs/ui/style-sections/schema-code.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,u1gCA+yC5B,CAAA"}