apiskill 0.1.0

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.
package/src/styles.css ADDED
@@ -0,0 +1,2101 @@
1
+ :root {
2
+ color-scheme: light;
3
+ font-family:
4
+ Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
5
+ background: #eef1f4;
6
+ color: #18202a;
7
+ font-synthesis: none;
8
+ text-rendering: optimizeLegibility;
9
+ -webkit-font-smoothing: antialiased;
10
+ }
11
+
12
+ * {
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ body {
17
+ margin: 0;
18
+ min-width: 320px;
19
+ min-height: 100vh;
20
+ }
21
+
22
+ button,
23
+ input,
24
+ select {
25
+ font: inherit;
26
+ }
27
+
28
+ button {
29
+ cursor: pointer;
30
+ }
31
+
32
+ .app-shell {
33
+ min-height: 100vh;
34
+ padding: 18px;
35
+ }
36
+
37
+ .topbar {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: space-between;
41
+ gap: 20px;
42
+ padding: 16px 20px;
43
+ border: 1px solid #d7dde4;
44
+ border-radius: 8px;
45
+ background: #ffffff;
46
+ }
47
+
48
+ .eyebrow {
49
+ margin: 0 0 4px;
50
+ color: #667282;
51
+ font-size: 12px;
52
+ font-weight: 700;
53
+ letter-spacing: 0;
54
+ text-transform: uppercase;
55
+ }
56
+
57
+ h1,
58
+ h2,
59
+ h3,
60
+ h4,
61
+ p {
62
+ margin-top: 0;
63
+ }
64
+
65
+ .topbar h1 {
66
+ margin: 0;
67
+ font-size: 24px;
68
+ line-height: 1.2;
69
+ }
70
+
71
+ .topbar-actions {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 14px;
75
+ }
76
+
77
+ .version-switcher {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ gap: 8px;
81
+ color: #647182;
82
+ font-size: 12px;
83
+ font-weight: 800;
84
+ }
85
+
86
+ .version-switcher select {
87
+ width: min(320px, 32vw);
88
+ min-height: 36px;
89
+ padding: 0 10px;
90
+ border: 1px solid #cfd7e1;
91
+ border-radius: 6px;
92
+ outline: 0;
93
+ color: #15202c;
94
+ background: #fff;
95
+ }
96
+
97
+ .version-manager {
98
+ min-width: min(420px, 38vw);
99
+ }
100
+
101
+ .version-manager-trigger {
102
+ display: grid;
103
+ grid-template-columns: auto minmax(0, 1fr);
104
+ align-items: center;
105
+ gap: 9px;
106
+ width: 100%;
107
+ min-height: 44px;
108
+ padding: 7px 10px;
109
+ border: 1px solid #cfd7e1;
110
+ border-radius: 7px;
111
+ color: #23303e;
112
+ background: #fff;
113
+ text-align: left;
114
+ }
115
+
116
+ .version-manager-trigger:disabled {
117
+ cursor: not-allowed;
118
+ opacity: 0.72;
119
+ }
120
+
121
+ .version-manager-trigger span {
122
+ display: grid;
123
+ gap: 2px;
124
+ min-width: 0;
125
+ }
126
+
127
+ .version-manager-trigger strong,
128
+ .version-manager-trigger small {
129
+ overflow: hidden;
130
+ text-overflow: ellipsis;
131
+ white-space: nowrap;
132
+ }
133
+
134
+ .version-manager-trigger strong {
135
+ font-size: 13px;
136
+ }
137
+
138
+ .version-manager-trigger small {
139
+ color: #657181;
140
+ font-size: 11px;
141
+ font-weight: 800;
142
+ }
143
+
144
+ .version-manager-dialog {
145
+ width: min(900px, 100%);
146
+ max-height: calc(100vh - 40px);
147
+ overflow: auto;
148
+ border-radius: 8px;
149
+ border: 1px solid #d7dde4;
150
+ background: #fff;
151
+ box-shadow: 0 18px 60px rgba(18, 25, 35, 0.22);
152
+ }
153
+
154
+ .version-manager-body {
155
+ display: grid;
156
+ gap: 12px;
157
+ padding: 16px 20px 20px;
158
+ background: #f7f9fb;
159
+ }
160
+
161
+ .version-message {
162
+ padding: 9px 11px;
163
+ border: 1px solid #cbe5df;
164
+ border-radius: 7px;
165
+ color: #176b4f;
166
+ background: #eef9f5;
167
+ font-size: 13px;
168
+ font-weight: 800;
169
+ }
170
+
171
+ .version-message.error {
172
+ border-color: #f1c1bd;
173
+ color: #9a2d27;
174
+ background: #fff4f3;
175
+ }
176
+
177
+ .version-item {
178
+ display: grid;
179
+ gap: 12px;
180
+ padding: 13px;
181
+ border: 1px solid #dfe5eb;
182
+ border-radius: 8px;
183
+ background: #fff;
184
+ }
185
+
186
+ .version-item.active {
187
+ border-color: #7ab6ad;
188
+ box-shadow: inset 3px 0 0 #1b6b65;
189
+ }
190
+
191
+ .version-item-main {
192
+ display: grid;
193
+ grid-template-columns: minmax(0, 1fr) auto;
194
+ gap: 12px;
195
+ align-items: start;
196
+ }
197
+
198
+ .version-item-title {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 8px;
202
+ min-width: 0;
203
+ }
204
+
205
+ .version-item-title strong {
206
+ overflow: hidden;
207
+ color: #202a36;
208
+ text-overflow: ellipsis;
209
+ white-space: nowrap;
210
+ }
211
+
212
+ .version-item-title span {
213
+ padding: 3px 7px;
214
+ border-radius: 999px;
215
+ color: #176b4f;
216
+ background: #e5f6ef;
217
+ font-size: 11px;
218
+ font-weight: 900;
219
+ }
220
+
221
+ .version-item-main p {
222
+ margin: 4px 0 0;
223
+ overflow-wrap: anywhere;
224
+ color: #657181;
225
+ font-family: "SFMono-Regular", Consolas, monospace;
226
+ font-size: 12px;
227
+ }
228
+
229
+ .version-item-stats {
230
+ display: flex;
231
+ flex-wrap: wrap;
232
+ justify-content: flex-end;
233
+ gap: 6px;
234
+ }
235
+
236
+ .version-item-stats span,
237
+ .version-env-summary span {
238
+ padding: 5px 7px;
239
+ border-radius: 6px;
240
+ color: #4d5b6c;
241
+ background: #eef2f6;
242
+ font-size: 12px;
243
+ font-weight: 800;
244
+ }
245
+
246
+ .version-env-summary {
247
+ display: grid;
248
+ grid-template-columns: auto minmax(0, 1fr);
249
+ align-items: center;
250
+ gap: 8px;
251
+ }
252
+
253
+ .version-env-summary code {
254
+ overflow: hidden;
255
+ padding: 7px 9px;
256
+ border: 1px solid #dfe5eb;
257
+ border-radius: 6px;
258
+ color: #2f3d4d;
259
+ background: #fbfcfd;
260
+ text-overflow: ellipsis;
261
+ white-space: nowrap;
262
+ }
263
+
264
+ .version-env-editor {
265
+ display: grid;
266
+ grid-template-columns: minmax(160px, 0.5fr) minmax(0, 1fr);
267
+ gap: 10px;
268
+ }
269
+
270
+ .version-env-editor label {
271
+ display: grid;
272
+ gap: 5px;
273
+ min-width: 0;
274
+ color: #647182;
275
+ font-size: 12px;
276
+ font-weight: 800;
277
+ }
278
+
279
+ .version-env-editor input {
280
+ width: 100%;
281
+ min-height: 36px;
282
+ padding: 0 10px;
283
+ border: 1px solid #cfd7e1;
284
+ border-radius: 6px;
285
+ outline: 0;
286
+ color: #15202c;
287
+ background: #fff;
288
+ }
289
+
290
+ .version-item-actions {
291
+ display: flex;
292
+ flex-wrap: wrap;
293
+ gap: 8px;
294
+ justify-content: flex-end;
295
+ }
296
+
297
+ .sync-meta {
298
+ display: flex;
299
+ flex-wrap: wrap;
300
+ justify-content: flex-end;
301
+ gap: 8px;
302
+ color: #5c6877;
303
+ font-size: 13px;
304
+ }
305
+
306
+ .sync-meta span {
307
+ padding: 5px 8px;
308
+ border: 1px solid #dce2e9;
309
+ border-radius: 6px;
310
+ background: #f7f9fb;
311
+ }
312
+
313
+ .primary-button,
314
+ .copy-inline-button {
315
+ display: inline-flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ gap: 8px;
319
+ min-height: 36px;
320
+ border: 0;
321
+ border-radius: 6px;
322
+ color: #fff;
323
+ background: #1b6b65;
324
+ font-weight: 700;
325
+ white-space: nowrap;
326
+ }
327
+
328
+ .primary-button {
329
+ padding: 0 14px;
330
+ }
331
+
332
+ .primary-button:disabled {
333
+ cursor: wait;
334
+ opacity: 0.72;
335
+ }
336
+
337
+ .copy-inline-button {
338
+ padding: 0 12px;
339
+ background: #202a36;
340
+ }
341
+
342
+ .secondary-button {
343
+ display: inline-flex;
344
+ align-items: center;
345
+ justify-content: center;
346
+ gap: 8px;
347
+ min-height: 36px;
348
+ padding: 0 14px;
349
+ border: 1px solid #ccd5df;
350
+ border-radius: 6px;
351
+ color: #22303d;
352
+ background: #fff;
353
+ font-weight: 700;
354
+ white-space: nowrap;
355
+ }
356
+
357
+ .secondary-button:disabled {
358
+ cursor: wait;
359
+ opacity: 0.72;
360
+ }
361
+
362
+ .danger-button {
363
+ display: inline-flex;
364
+ align-items: center;
365
+ justify-content: center;
366
+ gap: 8px;
367
+ min-height: 36px;
368
+ padding: 0 14px;
369
+ border: 1px solid #efcbc8;
370
+ border-radius: 6px;
371
+ color: #b63831;
372
+ background: #fff7f6;
373
+ font-weight: 700;
374
+ white-space: nowrap;
375
+ }
376
+
377
+ .icon-secondary-button {
378
+ display: inline-flex;
379
+ align-items: center;
380
+ justify-content: center;
381
+ width: 34px;
382
+ height: 34px;
383
+ padding: 0;
384
+ border: 1px solid #ccd5df;
385
+ border-radius: 6px;
386
+ color: #22303d;
387
+ background: #fff;
388
+ }
389
+
390
+ .source-panel {
391
+ display: grid;
392
+ gap: 10px;
393
+ margin-top: 12px;
394
+ padding: 12px;
395
+ border: 1px solid #d7dde4;
396
+ border-radius: 8px;
397
+ background: #ffffff;
398
+ }
399
+
400
+ .source-panel-header {
401
+ display: flex;
402
+ align-items: center;
403
+ justify-content: space-between;
404
+ gap: 10px;
405
+ }
406
+
407
+ .source-panel-actions {
408
+ display: inline-flex;
409
+ flex-wrap: wrap;
410
+ gap: 8px;
411
+ justify-content: flex-end;
412
+ }
413
+
414
+ .source-tabs {
415
+ display: inline-flex;
416
+ width: fit-content;
417
+ gap: 4px;
418
+ padding: 3px;
419
+ border: 1px solid #d4dce5;
420
+ border-radius: 7px;
421
+ background: #fff;
422
+ }
423
+
424
+ .source-tabs button {
425
+ display: inline-flex;
426
+ align-items: center;
427
+ justify-content: center;
428
+ gap: 6px;
429
+ min-height: 32px;
430
+ padding: 0 12px;
431
+ border: 0;
432
+ border-radius: 5px;
433
+ color: #566373;
434
+ background: transparent;
435
+ font-size: 13px;
436
+ font-weight: 800;
437
+ }
438
+
439
+ .source-tabs button.active {
440
+ color: #fff;
441
+ background: #1b6b65;
442
+ }
443
+
444
+ .source-form {
445
+ display: grid;
446
+ grid-template-columns: minmax(0, 1fr) auto auto;
447
+ gap: 10px;
448
+ }
449
+
450
+ .blank-document-dialog-body {
451
+ display: grid;
452
+ gap: 10px;
453
+ padding: 16px 20px 2px;
454
+ }
455
+
456
+ .source-input,
457
+ .source-file-picker {
458
+ display: flex;
459
+ align-items: center;
460
+ gap: 8px;
461
+ min-width: 0;
462
+ min-height: 38px;
463
+ padding: 0 12px;
464
+ border: 1px solid #cfd7e1;
465
+ border-radius: 7px;
466
+ background: #f9fafb;
467
+ }
468
+
469
+ .source-file-picker {
470
+ cursor: pointer;
471
+ }
472
+
473
+ .source-file-picker input {
474
+ display: none;
475
+ }
476
+
477
+ .source-file-picker span {
478
+ overflow: hidden;
479
+ min-width: 0;
480
+ color: #15202c;
481
+ text-overflow: ellipsis;
482
+ white-space: nowrap;
483
+ }
484
+
485
+ .source-input input {
486
+ width: 100%;
487
+ min-width: 0;
488
+ border: 0;
489
+ outline: 0;
490
+ background: transparent;
491
+ color: #15202c;
492
+ }
493
+
494
+ .source-input textarea {
495
+ width: 100%;
496
+ min-width: 0;
497
+ min-height: 118px;
498
+ resize: vertical;
499
+ border: 0;
500
+ outline: 0;
501
+ background: transparent;
502
+ color: #15202c;
503
+ font-family: "SFMono-Regular", Consolas, monospace;
504
+ font-size: 12px;
505
+ line-height: 1.5;
506
+ }
507
+
508
+ .source-input-multiline {
509
+ align-items: flex-start;
510
+ padding-top: 10px;
511
+ padding-bottom: 10px;
512
+ }
513
+
514
+ .source-input-multiline svg {
515
+ margin-top: 2px;
516
+ }
517
+
518
+ .source-auth {
519
+ grid-column: 1 / -1;
520
+ display: grid;
521
+ grid-template-columns: auto minmax(0, 1fr);
522
+ align-items: center;
523
+ gap: 10px;
524
+ }
525
+
526
+ .source-auth-fields {
527
+ display: grid;
528
+ grid-template-columns: repeat(2, minmax(0, 220px));
529
+ gap: 8px;
530
+ }
531
+
532
+ .source-auth-fields label {
533
+ display: flex;
534
+ align-items: center;
535
+ gap: 8px;
536
+ min-width: 0;
537
+ min-height: 36px;
538
+ padding: 0 10px;
539
+ border: 1px solid #cfd7e1;
540
+ border-radius: 7px;
541
+ background: #f9fafb;
542
+ }
543
+
544
+ .source-auth-fields input {
545
+ width: 100%;
546
+ min-width: 0;
547
+ border: 0;
548
+ outline: 0;
549
+ background: transparent;
550
+ color: #15202c;
551
+ }
552
+
553
+ .source-meta {
554
+ grid-column: 1 / -1;
555
+ overflow: hidden;
556
+ color: #657181;
557
+ font-size: 12px;
558
+ text-overflow: ellipsis;
559
+ white-space: nowrap;
560
+ }
561
+
562
+ .source-meta span {
563
+ color: #2f3d4d;
564
+ font-family: "SFMono-Regular", Consolas, monospace;
565
+ }
566
+
567
+ .source-meta small {
568
+ margin-left: 8px;
569
+ color: #728094;
570
+ font-weight: 800;
571
+ }
572
+
573
+ .workspace {
574
+ display: grid;
575
+ grid-template-columns: minmax(320px, 380px) minmax(0, 1fr);
576
+ gap: 16px;
577
+ min-height: 420px;
578
+ height: calc(100vh - 270px);
579
+ margin-top: 16px;
580
+ }
581
+
582
+ .sidebar,
583
+ .detail-pane {
584
+ min-height: 0;
585
+ border: 1px solid #d7dde4;
586
+ border-radius: 8px;
587
+ background: #ffffff;
588
+ }
589
+
590
+ .sidebar {
591
+ display: flex;
592
+ flex-direction: column;
593
+ padding: 14px;
594
+ }
595
+
596
+ .search-box {
597
+ display: flex;
598
+ align-items: center;
599
+ gap: 8px;
600
+ min-height: 42px;
601
+ padding: 0 12px;
602
+ border: 1px solid #cfd7e1;
603
+ border-radius: 7px;
604
+ background: #f9fafb;
605
+ }
606
+
607
+ .search-box input {
608
+ width: 100%;
609
+ min-width: 0;
610
+ border: 0;
611
+ outline: 0;
612
+ background: transparent;
613
+ color: #15202c;
614
+ }
615
+
616
+ .search-clear-button {
617
+ display: inline-flex;
618
+ align-items: center;
619
+ justify-content: center;
620
+ flex: 0 0 auto;
621
+ width: 24px;
622
+ height: 24px;
623
+ padding: 0;
624
+ border: 0;
625
+ border-radius: 5px;
626
+ color: #647182;
627
+ background: transparent;
628
+ }
629
+
630
+ .search-clear-button:hover {
631
+ color: #b63831;
632
+ background: #fff0ef;
633
+ }
634
+
635
+ .filters {
636
+ display: grid;
637
+ grid-template-columns: 1fr auto;
638
+ gap: 10px;
639
+ margin-top: 12px;
640
+ }
641
+
642
+ .filters label:first-child {
643
+ display: flex;
644
+ align-items: center;
645
+ gap: 8px;
646
+ min-width: 0;
647
+ padding: 0 10px;
648
+ border: 1px solid #d5dce5;
649
+ border-radius: 7px;
650
+ background: #fff;
651
+ }
652
+
653
+ .filters select {
654
+ width: 100%;
655
+ min-height: 38px;
656
+ border: 0;
657
+ outline: 0;
658
+ background: transparent;
659
+ }
660
+
661
+ .checkbox-line {
662
+ display: inline-flex;
663
+ align-items: center;
664
+ gap: 6px;
665
+ color: #566373;
666
+ font-size: 13px;
667
+ white-space: nowrap;
668
+ }
669
+
670
+ .method-tabs {
671
+ display: grid;
672
+ grid-template-columns: repeat(6, minmax(0, 1fr));
673
+ gap: 6px;
674
+ margin-top: 12px;
675
+ }
676
+
677
+ .method-tabs button {
678
+ min-height: 32px;
679
+ border: 1px solid #d5dce5;
680
+ border-radius: 6px;
681
+ color: #536171;
682
+ background: #fff;
683
+ font-size: 12px;
684
+ font-weight: 800;
685
+ }
686
+
687
+ .method-tabs button.active {
688
+ color: #fff;
689
+ border-color: #1b6b65;
690
+ background: #1b6b65;
691
+ }
692
+
693
+ .endpoint-count {
694
+ margin: 12px 2px 8px;
695
+ color: #6b7582;
696
+ font-size: 13px;
697
+ }
698
+
699
+ .endpoint-list {
700
+ overflow: auto;
701
+ display: flex;
702
+ flex-direction: column;
703
+ gap: 6px;
704
+ padding-right: 4px;
705
+ }
706
+
707
+ .endpoint-item {
708
+ display: grid;
709
+ grid-template-columns: 64px minmax(0, 1fr);
710
+ align-items: start;
711
+ gap: 10px;
712
+ width: 100%;
713
+ min-height: 66px;
714
+ padding: 10px;
715
+ border: 1px solid transparent;
716
+ border-radius: 7px;
717
+ text-align: left;
718
+ background: #fff;
719
+ }
720
+
721
+ .endpoint-item:hover {
722
+ background: #f6f8fa;
723
+ }
724
+
725
+ .endpoint-item.selected {
726
+ border-color: #1b6b65;
727
+ background: #edf7f5;
728
+ }
729
+
730
+ .endpoint-main {
731
+ min-width: 0;
732
+ }
733
+
734
+ .endpoint-main strong,
735
+ .endpoint-main small {
736
+ display: block;
737
+ overflow: hidden;
738
+ text-overflow: ellipsis;
739
+ white-space: nowrap;
740
+ }
741
+
742
+ .endpoint-main strong {
743
+ margin-bottom: 4px;
744
+ color: #1d2732;
745
+ font-size: 14px;
746
+ }
747
+
748
+ .endpoint-main small {
749
+ color: #647182;
750
+ font-family: "SFMono-Regular", Consolas, monospace;
751
+ font-size: 12px;
752
+ }
753
+
754
+ .method {
755
+ display: inline-flex;
756
+ align-items: center;
757
+ justify-content: center;
758
+ width: 58px;
759
+ height: 24px;
760
+ border-radius: 5px;
761
+ color: #fff;
762
+ font-size: 11px;
763
+ font-weight: 900;
764
+ }
765
+
766
+ .method-get {
767
+ background: #246bce;
768
+ }
769
+
770
+ .method-post {
771
+ background: #168456;
772
+ }
773
+
774
+ .method-put {
775
+ background: #9a6200;
776
+ }
777
+
778
+ .method-delete {
779
+ background: #c23131;
780
+ }
781
+
782
+ .method-patch {
783
+ background: #7953b8;
784
+ }
785
+
786
+ .method-options,
787
+ .method-head {
788
+ background: #52606f;
789
+ }
790
+
791
+ .detail-pane {
792
+ overflow: auto;
793
+ }
794
+
795
+ .opened-api-tabs {
796
+ position: sticky;
797
+ top: 0;
798
+ z-index: 5;
799
+ display: flex;
800
+ align-items: flex-end;
801
+ gap: 4px;
802
+ overflow-x: auto;
803
+ overflow-y: hidden;
804
+ min-height: 47px;
805
+ padding: 10px 12px 0;
806
+ border-bottom: 1px solid #dfe5eb;
807
+ background: #f7f9fb;
808
+ }
809
+
810
+ .opened-api-tab {
811
+ --tab-accent: #52606f;
812
+ --tab-soft: #eef2f6;
813
+ display: inline-grid;
814
+ grid-template-columns: auto minmax(100px, 210px) 20px;
815
+ align-items: center;
816
+ gap: 7px;
817
+ min-width: 180px;
818
+ max-width: 280px;
819
+ height: 36px;
820
+ padding: 7px 8px 8px;
821
+ border: 1px solid color-mix(in srgb, var(--tab-accent) 45%, #d5dce5);
822
+ border-bottom-color: #dfe5eb;
823
+ border-radius: 7px 7px 0 0;
824
+ text-align: left;
825
+ background: var(--tab-soft);
826
+ cursor: pointer;
827
+ }
828
+
829
+ .opened-api-tab-get {
830
+ --tab-accent: #246bce;
831
+ --tab-soft: #eef5ff;
832
+ }
833
+
834
+ .opened-api-tab-post {
835
+ --tab-accent: #168456;
836
+ --tab-soft: #edf8f2;
837
+ }
838
+
839
+ .opened-api-tab-put {
840
+ --tab-accent: #9a6200;
841
+ --tab-soft: #fff5e4;
842
+ }
843
+
844
+ .opened-api-tab-delete {
845
+ --tab-accent: #c23131;
846
+ --tab-soft: #fff0f0;
847
+ }
848
+
849
+ .opened-api-tab-patch {
850
+ --tab-accent: #7953b8;
851
+ --tab-soft: #f4efff;
852
+ }
853
+
854
+ .opened-api-tab-options,
855
+ .opened-api-tab-head {
856
+ --tab-accent: #52606f;
857
+ --tab-soft: #f0f3f6;
858
+ }
859
+
860
+ .opened-api-tab.active {
861
+ position: relative;
862
+ margin-bottom: -1px;
863
+ border-color: var(--tab-accent);
864
+ border-bottom-color: #fff;
865
+ background: #fff;
866
+ box-shadow: inset 0 3px 0 var(--tab-accent);
867
+ }
868
+
869
+ .opened-api-tab-text {
870
+ min-width: 0;
871
+ }
872
+
873
+ .opened-api-tab-text strong {
874
+ display: block;
875
+ overflow: hidden;
876
+ text-overflow: ellipsis;
877
+ white-space: nowrap;
878
+ }
879
+
880
+ .opened-api-tab-text strong {
881
+ color: #1d2732;
882
+ font-size: 12px;
883
+ font-weight: 800;
884
+ }
885
+
886
+ .opened-api-tab-method {
887
+ display: inline-flex;
888
+ align-items: center;
889
+ justify-content: center;
890
+ min-width: 34px;
891
+ height: 18px;
892
+ padding: 0 5px;
893
+ border-radius: 4px;
894
+ color: #fff;
895
+ font-size: 9px;
896
+ font-weight: 900;
897
+ line-height: 1;
898
+ }
899
+
900
+ .opened-api-tab-close {
901
+ display: inline-flex;
902
+ align-items: center;
903
+ justify-content: center;
904
+ width: 20px;
905
+ height: 20px;
906
+ padding: 0;
907
+ border: 0;
908
+ border-radius: 5px;
909
+ color: var(--tab-accent);
910
+ background: transparent;
911
+ cursor: pointer;
912
+ }
913
+
914
+ .opened-api-tab-close:hover {
915
+ color: #b63831;
916
+ background: #fff0ef;
917
+ }
918
+
919
+ .endpoint-detail {
920
+ padding: 22px;
921
+ }
922
+
923
+ .detail-header {
924
+ display: flex;
925
+ align-items: flex-start;
926
+ justify-content: space-between;
927
+ gap: 18px;
928
+ padding-bottom: 18px;
929
+ border-bottom: 1px solid #e1e6ec;
930
+ }
931
+
932
+ .detail-actions {
933
+ display: flex;
934
+ align-items: center;
935
+ gap: 8px;
936
+ margin-left: auto;
937
+ }
938
+
939
+ .endpoint-title-line {
940
+ display: flex;
941
+ align-items: center;
942
+ gap: 10px;
943
+ }
944
+
945
+ .endpoint-title-line h2 {
946
+ margin: 0;
947
+ color: #121923;
948
+ font-size: 22px;
949
+ line-height: 1.25;
950
+ }
951
+
952
+ .path-row {
953
+ display: flex;
954
+ align-items: center;
955
+ gap: 8px;
956
+ min-width: 0;
957
+ margin-top: 10px;
958
+ }
959
+
960
+ .path-line {
961
+ display: block;
962
+ min-width: 0;
963
+ color: #354253;
964
+ font-size: 13px;
965
+ white-space: normal;
966
+ word-break: break-all;
967
+ }
968
+
969
+ .path-copy-button {
970
+ display: inline-flex;
971
+ align-items: center;
972
+ justify-content: center;
973
+ flex: 0 0 auto;
974
+ gap: 4px;
975
+ min-height: 28px;
976
+ padding: 0 8px;
977
+ border: 1px solid #d4dce5;
978
+ border-radius: 6px;
979
+ color: #415166;
980
+ background: #fff;
981
+ font-size: 12px;
982
+ font-weight: 800;
983
+ }
984
+
985
+ .path-copy-button:hover {
986
+ border-color: #9fb0c1;
987
+ background: #f7f9fb;
988
+ }
989
+
990
+ .tag-row {
991
+ display: flex;
992
+ flex-wrap: wrap;
993
+ gap: 6px;
994
+ margin-top: 12px;
995
+ }
996
+
997
+ .tag-row span {
998
+ padding: 4px 8px;
999
+ border-radius: 5px;
1000
+ color: #475364;
1001
+ background: #edf1f5;
1002
+ font-size: 12px;
1003
+ font-weight: 700;
1004
+ }
1005
+
1006
+ .description {
1007
+ margin: 16px 0 0;
1008
+ color: #4f5c6a;
1009
+ line-height: 1.7;
1010
+ }
1011
+
1012
+ .copy-preview {
1013
+ margin-top: 18px;
1014
+ border: 1px solid #d9e0e7;
1015
+ border-radius: 8px;
1016
+ background: #f8fafb;
1017
+ }
1018
+
1019
+ .copy-preview-toolbar {
1020
+ display: flex;
1021
+ align-items: center;
1022
+ justify-content: space-between;
1023
+ gap: 12px;
1024
+ padding: 10px;
1025
+ border-bottom: 1px solid #dfe5eb;
1026
+ }
1027
+
1028
+ .copy-tabs {
1029
+ display: inline-flex;
1030
+ gap: 4px;
1031
+ padding: 3px;
1032
+ border: 1px solid #d4dce5;
1033
+ border-radius: 7px;
1034
+ background: #fff;
1035
+ }
1036
+
1037
+ .copy-tabs button {
1038
+ display: inline-flex;
1039
+ align-items: center;
1040
+ gap: 6px;
1041
+ min-height: 30px;
1042
+ padding: 0 10px;
1043
+ border: 0;
1044
+ border-radius: 5px;
1045
+ color: #566373;
1046
+ background: transparent;
1047
+ font-size: 13px;
1048
+ font-weight: 800;
1049
+ }
1050
+
1051
+ .copy-tabs button.active {
1052
+ color: #fff;
1053
+ background: #1b6b65;
1054
+ }
1055
+
1056
+ .copy-preview-content {
1057
+ overflow: auto;
1058
+ min-height: calc(3 * 1.6em + 28px);
1059
+ max-height: calc(16 * 1.6em + 28px);
1060
+ margin: 0;
1061
+ padding: 14px;
1062
+ color: #e5edf6;
1063
+ background: #111827;
1064
+ font-family: "SFMono-Regular", Consolas, monospace;
1065
+ font-size: 12px;
1066
+ line-height: 1.6;
1067
+ white-space: pre-wrap;
1068
+ overflow-wrap: anywhere;
1069
+ }
1070
+
1071
+ .request-tester {
1072
+ display: grid;
1073
+ gap: 14px;
1074
+ padding: 14px;
1075
+ background: #fff;
1076
+ }
1077
+
1078
+ .endpoint-links-config {
1079
+ display: grid;
1080
+ gap: 12px;
1081
+ padding: 14px;
1082
+ background: #fff;
1083
+ }
1084
+
1085
+ .links-grid {
1086
+ display: grid;
1087
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1088
+ gap: 12px;
1089
+ }
1090
+
1091
+ .links-actions,
1092
+ .link-editor-actions {
1093
+ display: flex;
1094
+ flex-wrap: wrap;
1095
+ gap: 8px;
1096
+ justify-content: flex-end;
1097
+ }
1098
+
1099
+ .link-editor-panel {
1100
+ min-width: 0;
1101
+ }
1102
+
1103
+ .link-button {
1104
+ text-decoration: none;
1105
+ }
1106
+
1107
+ .request-line {
1108
+ display: grid;
1109
+ grid-template-columns: auto minmax(0, 1fr) auto;
1110
+ align-items: end;
1111
+ gap: 10px;
1112
+ }
1113
+
1114
+ .request-actions {
1115
+ display: flex;
1116
+ flex-wrap: wrap;
1117
+ gap: 8px;
1118
+ justify-content: flex-end;
1119
+ }
1120
+
1121
+ .request-line label,
1122
+ .tester-form-grid label,
1123
+ .param-editor label {
1124
+ display: grid;
1125
+ gap: 5px;
1126
+ min-width: 0;
1127
+ color: #647182;
1128
+ font-size: 12px;
1129
+ font-weight: 800;
1130
+ }
1131
+
1132
+ .request-line input,
1133
+ .tester-form-grid input,
1134
+ .tester-form-grid select,
1135
+ .param-editor input {
1136
+ width: 100%;
1137
+ min-height: 36px;
1138
+ padding: 0 10px;
1139
+ border: 1px solid #cfd7e1;
1140
+ border-radius: 6px;
1141
+ outline: 0;
1142
+ color: #15202c;
1143
+ background: #fff;
1144
+ }
1145
+
1146
+ .request-preview {
1147
+ display: block;
1148
+ overflow: hidden;
1149
+ padding: 9px 10px;
1150
+ border: 1px solid #dfe5eb;
1151
+ border-radius: 6px;
1152
+ color: #334254;
1153
+ background: #f7f9fb;
1154
+ font-size: 12px;
1155
+ text-overflow: ellipsis;
1156
+ white-space: nowrap;
1157
+ }
1158
+
1159
+ .tester-grid {
1160
+ display: grid;
1161
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1162
+ gap: 12px;
1163
+ }
1164
+
1165
+ .tester-panel {
1166
+ min-width: 0;
1167
+ padding: 12px;
1168
+ border: 1px solid #dfe5eb;
1169
+ border-radius: 7px;
1170
+ background: #fbfcfd;
1171
+ }
1172
+
1173
+ .tester-panel-title {
1174
+ display: flex;
1175
+ align-items: center;
1176
+ gap: 6px;
1177
+ margin-bottom: 10px;
1178
+ color: #243242;
1179
+ font-size: 13px;
1180
+ font-weight: 900;
1181
+ }
1182
+
1183
+ .tester-form-grid {
1184
+ display: grid;
1185
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1186
+ gap: 10px;
1187
+ }
1188
+
1189
+ .param-editor + .param-editor {
1190
+ margin-top: 12px;
1191
+ }
1192
+
1193
+ .param-editor h4 {
1194
+ margin: 0 0 8px;
1195
+ color: #516070;
1196
+ font-size: 12px;
1197
+ }
1198
+
1199
+ .param-editor label + label {
1200
+ margin-top: 8px;
1201
+ }
1202
+
1203
+ .param-editor span {
1204
+ display: inline-flex;
1205
+ align-items: center;
1206
+ gap: 3px;
1207
+ }
1208
+
1209
+ .param-editor b {
1210
+ color: #c23131;
1211
+ }
1212
+
1213
+ .tester-panel textarea {
1214
+ width: 100%;
1215
+ min-height: 168px;
1216
+ resize: vertical;
1217
+ padding: 10px;
1218
+ border: 1px solid #cfd7e1;
1219
+ border-radius: 6px;
1220
+ outline: 0;
1221
+ color: #1f2b38;
1222
+ background: #fff;
1223
+ font-family: "SFMono-Regular", Consolas, monospace;
1224
+ font-size: 12px;
1225
+ line-height: 1.5;
1226
+ }
1227
+
1228
+ .tester-panel textarea:disabled {
1229
+ color: #8792a1;
1230
+ background: #f2f5f8;
1231
+ }
1232
+
1233
+ .response-panel {
1234
+ background: #fff;
1235
+ }
1236
+
1237
+ .response-meta-line {
1238
+ display: flex;
1239
+ flex-wrap: wrap;
1240
+ gap: 8px;
1241
+ margin-bottom: 10px;
1242
+ }
1243
+
1244
+ .response-meta-line span {
1245
+ padding: 5px 8px;
1246
+ border-radius: 5px;
1247
+ color: #536171;
1248
+ background: #eef2f6;
1249
+ font-size: 12px;
1250
+ font-weight: 800;
1251
+ }
1252
+
1253
+ .response-meta-line .status-ok {
1254
+ color: #176b4f;
1255
+ background: #e5f6ef;
1256
+ }
1257
+
1258
+ .response-meta-line .status-error {
1259
+ color: #a8322b;
1260
+ background: #fff0ef;
1261
+ }
1262
+
1263
+ .response-panel pre {
1264
+ overflow: auto;
1265
+ max-height: 360px;
1266
+ margin: 0;
1267
+ padding: 12px;
1268
+ border-radius: 6px;
1269
+ color: #202a36;
1270
+ background: #f7f9fb;
1271
+ font-family: "SFMono-Regular", Consolas, monospace;
1272
+ font-size: 12px;
1273
+ line-height: 1.55;
1274
+ }
1275
+
1276
+ .detail-section {
1277
+ padding: 20px 0;
1278
+ border-bottom: 1px solid #e8edf2;
1279
+ }
1280
+
1281
+ .section-title {
1282
+ display: flex;
1283
+ align-items: center;
1284
+ justify-content: space-between;
1285
+ margin-bottom: 10px;
1286
+ }
1287
+
1288
+ .section-title h3 {
1289
+ margin: 0;
1290
+ font-size: 16px;
1291
+ }
1292
+
1293
+ .section-title span {
1294
+ min-width: 28px;
1295
+ padding: 3px 8px;
1296
+ border-radius: 999px;
1297
+ color: #1b6b65;
1298
+ background: #e7f4f2;
1299
+ text-align: center;
1300
+ font-size: 12px;
1301
+ font-weight: 800;
1302
+ }
1303
+
1304
+ .media-block + .media-block,
1305
+ .response-block + .response-block {
1306
+ margin-top: 18px;
1307
+ }
1308
+
1309
+ .media-block h4 {
1310
+ margin: 0 0 8px;
1311
+ color: #516070;
1312
+ font-family: "SFMono-Regular", Consolas, monospace;
1313
+ font-size: 13px;
1314
+ }
1315
+
1316
+ .response-heading {
1317
+ display: flex;
1318
+ align-items: center;
1319
+ gap: 10px;
1320
+ margin-bottom: 10px;
1321
+ }
1322
+
1323
+ .response-heading strong {
1324
+ padding: 4px 8px;
1325
+ border-radius: 5px;
1326
+ color: #fff;
1327
+ background: #202a36;
1328
+ font-size: 12px;
1329
+ }
1330
+
1331
+ .response-heading span {
1332
+ color: #657181;
1333
+ font-size: 13px;
1334
+ }
1335
+
1336
+ .table-wrap {
1337
+ overflow: auto;
1338
+ border: 1px solid #dfe5eb;
1339
+ border-radius: 7px;
1340
+ }
1341
+
1342
+ table {
1343
+ width: 100%;
1344
+ min-width: 920px;
1345
+ border-collapse: collapse;
1346
+ font-size: 13px;
1347
+ }
1348
+
1349
+ th,
1350
+ td {
1351
+ padding: 10px 12px;
1352
+ border-bottom: 1px solid #edf1f4;
1353
+ text-align: left;
1354
+ vertical-align: top;
1355
+ }
1356
+
1357
+ th {
1358
+ position: sticky;
1359
+ top: 0;
1360
+ z-index: 1;
1361
+ color: #526171;
1362
+ background: #f7f9fb;
1363
+ font-size: 12px;
1364
+ font-weight: 800;
1365
+ }
1366
+
1367
+ tr:last-child td {
1368
+ border-bottom: 0;
1369
+ }
1370
+
1371
+ td code {
1372
+ color: #17202b;
1373
+ font-family: "SFMono-Regular", Consolas, monospace;
1374
+ font-size: 12px;
1375
+ }
1376
+
1377
+ .muted {
1378
+ margin: 0;
1379
+ color: #798596;
1380
+ }
1381
+
1382
+ .inline-error {
1383
+ display: flex;
1384
+ align-items: center;
1385
+ gap: 8px;
1386
+ margin-top: 12px;
1387
+ padding: 10px 12px;
1388
+ border: 1px solid #f1c1bd;
1389
+ border-radius: 7px;
1390
+ color: #9a2d27;
1391
+ background: #fff4f3;
1392
+ }
1393
+
1394
+ .modal-backdrop {
1395
+ position: fixed;
1396
+ inset: 0;
1397
+ z-index: 30;
1398
+ display: grid;
1399
+ place-items: center;
1400
+ padding: 20px;
1401
+ background: rgba(18, 25, 35, 0.48);
1402
+ }
1403
+
1404
+ .import-dialog {
1405
+ width: min(720px, 100%);
1406
+ max-height: calc(100vh - 40px);
1407
+ overflow: auto;
1408
+ border-radius: 8px;
1409
+ border: 1px solid #d7dde4;
1410
+ background: #fff;
1411
+ box-shadow: 0 18px 60px rgba(18, 25, 35, 0.22);
1412
+ }
1413
+
1414
+ .auth-dialog {
1415
+ width: min(560px, 100%);
1416
+ max-height: calc(100vh - 40px);
1417
+ overflow: auto;
1418
+ border-radius: 8px;
1419
+ border: 1px solid #d7dde4;
1420
+ background: #fff;
1421
+ box-shadow: 0 18px 60px rgba(18, 25, 35, 0.22);
1422
+ }
1423
+
1424
+ .api-config-dialog {
1425
+ width: 80vw;
1426
+ min-width: 1000px;
1427
+ max-width: 80vw;
1428
+ max-height: calc(100vh - 40px);
1429
+ overflow: auto;
1430
+ border-radius: 8px;
1431
+ border: 1px solid #d7dde4;
1432
+ background: #fff;
1433
+ box-shadow: 0 18px 60px rgba(18, 25, 35, 0.22);
1434
+ }
1435
+
1436
+ .import-dialog-header {
1437
+ display: flex;
1438
+ align-items: flex-start;
1439
+ justify-content: space-between;
1440
+ gap: 16px;
1441
+ padding: 18px 20px 14px;
1442
+ border-bottom: 1px solid #e5eaf0;
1443
+ }
1444
+
1445
+ .import-dialog-header h2 {
1446
+ margin: 0;
1447
+ font-size: 20px;
1448
+ }
1449
+
1450
+ .import-badge {
1451
+ display: inline-flex;
1452
+ align-items: center;
1453
+ min-height: 28px;
1454
+ padding: 0 10px;
1455
+ border-radius: 999px;
1456
+ font-size: 12px;
1457
+ font-weight: 800;
1458
+ white-space: nowrap;
1459
+ }
1460
+
1461
+ .import-badge.running {
1462
+ color: #8a5b00;
1463
+ background: #fff4d8;
1464
+ }
1465
+
1466
+ .import-badge.success {
1467
+ color: #176b4f;
1468
+ background: #e5f6ef;
1469
+ }
1470
+
1471
+ .import-badge.error {
1472
+ color: #a8322b;
1473
+ background: #fff0ef;
1474
+ }
1475
+
1476
+ .progress-track {
1477
+ height: 8px;
1478
+ margin: 16px 20px 0;
1479
+ overflow: hidden;
1480
+ border-radius: 999px;
1481
+ background: #e9eef3;
1482
+ }
1483
+
1484
+ .progress-bar {
1485
+ height: 100%;
1486
+ border-radius: inherit;
1487
+ background: #1b6b65;
1488
+ transition: width 240ms ease;
1489
+ }
1490
+
1491
+ .progress-bar.running {
1492
+ background: linear-gradient(90deg, #1b6b65, #4f8fcb);
1493
+ }
1494
+
1495
+ .progress-bar.success {
1496
+ background: #168456;
1497
+ }
1498
+
1499
+ .progress-bar.error {
1500
+ background: #c23131;
1501
+ }
1502
+
1503
+ .import-summary {
1504
+ display: grid;
1505
+ gap: 12px;
1506
+ padding: 18px 20px;
1507
+ }
1508
+
1509
+ .auth-dialog-body {
1510
+ display: grid;
1511
+ gap: 14px;
1512
+ padding: 18px 20px;
1513
+ }
1514
+
1515
+ .api-config-body {
1516
+ display: grid;
1517
+ gap: 14px;
1518
+ padding: 18px 20px;
1519
+ background: #f7f9fb;
1520
+ }
1521
+
1522
+ .api-config-tabs {
1523
+ display: inline-flex;
1524
+ width: fit-content;
1525
+ gap: 4px;
1526
+ padding: 3px;
1527
+ border: 1px solid #d4dce5;
1528
+ border-radius: 7px;
1529
+ background: #fff;
1530
+ }
1531
+
1532
+ .api-config-tabs button {
1533
+ display: inline-flex;
1534
+ align-items: center;
1535
+ justify-content: center;
1536
+ gap: 6px;
1537
+ min-height: 32px;
1538
+ padding: 0 12px;
1539
+ border: 0;
1540
+ border-radius: 5px;
1541
+ color: #566373;
1542
+ background: transparent;
1543
+ font-size: 13px;
1544
+ font-weight: 800;
1545
+ }
1546
+
1547
+ .api-config-tabs button.active {
1548
+ color: #fff;
1549
+ background: #1b6b65;
1550
+ }
1551
+
1552
+ .api-config-errors {
1553
+ display: flex;
1554
+ align-items: flex-start;
1555
+ gap: 10px;
1556
+ padding: 10px 12px;
1557
+ border: 1px solid #efcbc8;
1558
+ border-radius: 7px;
1559
+ color: #8f2f29;
1560
+ background: #fff7f6;
1561
+ }
1562
+
1563
+ .api-config-errors strong {
1564
+ display: block;
1565
+ margin-bottom: 4px;
1566
+ font-size: 13px;
1567
+ }
1568
+
1569
+ .api-config-errors p {
1570
+ margin: 0;
1571
+ font-size: 12px;
1572
+ line-height: 1.45;
1573
+ }
1574
+
1575
+ .api-cli-editor {
1576
+ width: 100%;
1577
+ min-height: calc(3 * 1.55em + 24px);
1578
+ max-height: calc(16 * 1.55em + 24px);
1579
+ overflow-y: auto;
1580
+ resize: vertical;
1581
+ padding: 12px;
1582
+ border: 1px solid #334155;
1583
+ border-radius: 7px;
1584
+ outline: 0;
1585
+ color: #e5edf6;
1586
+ background: #111827;
1587
+ font-family: "SFMono-Regular", Consolas, monospace;
1588
+ font-size: 12px;
1589
+ line-height: 1.55;
1590
+ }
1591
+
1592
+ .api-cli-editor::placeholder {
1593
+ color: #94a3b8;
1594
+ }
1595
+
1596
+ .api-cli-editor:focus {
1597
+ border-color: #5aa69d;
1598
+ box-shadow: 0 0 0 3px rgba(90, 166, 157, 0.22);
1599
+ }
1600
+
1601
+ .api-config-section {
1602
+ display: grid;
1603
+ gap: 12px;
1604
+ padding: 14px;
1605
+ border: 1px solid #dfe5eb;
1606
+ border-radius: 8px;
1607
+ background: #fff;
1608
+ }
1609
+
1610
+ .section-title-row {
1611
+ display: flex;
1612
+ align-items: flex-start;
1613
+ justify-content: space-between;
1614
+ gap: 12px;
1615
+ }
1616
+
1617
+ .section-title-row h3 {
1618
+ margin: 0;
1619
+ color: #243242;
1620
+ font-size: 15px;
1621
+ }
1622
+
1623
+ .section-title-row p {
1624
+ margin: 4px 0 0;
1625
+ color: #657181;
1626
+ font-size: 12px;
1627
+ }
1628
+
1629
+ .section-title-row code {
1630
+ max-width: 420px;
1631
+ overflow: hidden;
1632
+ padding: 5px 7px;
1633
+ border: 1px solid #dce2e9;
1634
+ border-radius: 6px;
1635
+ color: #415166;
1636
+ background: #f7f9fb;
1637
+ text-overflow: ellipsis;
1638
+ white-space: nowrap;
1639
+ }
1640
+
1641
+ .api-config-grid {
1642
+ display: grid;
1643
+ grid-template-columns: 140px repeat(2, minmax(0, 1fr));
1644
+ gap: 10px;
1645
+ }
1646
+
1647
+ .api-config-grid.compact {
1648
+ grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
1649
+ }
1650
+
1651
+ .api-config-grid label,
1652
+ .field-config-row label {
1653
+ display: grid;
1654
+ gap: 5px;
1655
+ min-width: 0;
1656
+ color: #647182;
1657
+ font-size: 12px;
1658
+ font-weight: 800;
1659
+ }
1660
+
1661
+ .api-config-grid input,
1662
+ .api-config-grid select,
1663
+ .api-config-grid textarea,
1664
+ .field-config-row input,
1665
+ .field-config-row select {
1666
+ width: 100%;
1667
+ min-height: 36px;
1668
+ padding: 0 10px;
1669
+ border: 1px solid #cfd7e1;
1670
+ border-radius: 6px;
1671
+ outline: 0;
1672
+ color: #15202c;
1673
+ background: #fff;
1674
+ }
1675
+
1676
+ .api-config-grid textarea {
1677
+ min-height: 82px;
1678
+ padding: 10px;
1679
+ resize: vertical;
1680
+ line-height: 1.45;
1681
+ }
1682
+
1683
+ .span-2 {
1684
+ grid-column: span 2;
1685
+ }
1686
+
1687
+ .span-all {
1688
+ grid-column: 1 / -1;
1689
+ }
1690
+
1691
+ .inline-check {
1692
+ display: inline-flex;
1693
+ align-items: center;
1694
+ gap: 6px;
1695
+ min-height: 32px;
1696
+ color: #415166;
1697
+ font-size: 13px;
1698
+ font-weight: 800;
1699
+ }
1700
+
1701
+ .field-config-table {
1702
+ display: grid;
1703
+ gap: 8px;
1704
+ overflow-x: auto;
1705
+ }
1706
+
1707
+ .field-config-item {
1708
+ display: grid;
1709
+ gap: 8px;
1710
+ }
1711
+
1712
+ .field-config-head,
1713
+ .field-config-row {
1714
+ display: grid;
1715
+ grid-template-columns: minmax(150px, 1.1fr) 120px 58px minmax(180px, 1.2fr) minmax(120px, 0.8fr) 38px;
1716
+ gap: 8px;
1717
+ align-items: center;
1718
+ min-width: 760px;
1719
+ }
1720
+
1721
+ .field-config-head.with-location,
1722
+ .field-config-row.with-location {
1723
+ grid-template-columns: 98px minmax(150px, 1.1fr) 120px 58px minmax(180px, 1.2fr) minmax(120px, 0.8fr) 38px;
1724
+ }
1725
+
1726
+ .field-config-head {
1727
+ color: #657181;
1728
+ font-size: 12px;
1729
+ font-weight: 900;
1730
+ }
1731
+
1732
+ .field-check {
1733
+ place-items: center;
1734
+ }
1735
+
1736
+ .field-check input,
1737
+ .inline-check input {
1738
+ width: 16px;
1739
+ min-height: 16px;
1740
+ }
1741
+
1742
+ .icon-danger-button {
1743
+ display: inline-flex;
1744
+ align-items: center;
1745
+ justify-content: center;
1746
+ width: 36px;
1747
+ height: 36px;
1748
+ border: 1px solid #efcbc8;
1749
+ border-radius: 6px;
1750
+ color: #b63831;
1751
+ background: #fff7f6;
1752
+ }
1753
+
1754
+ .field-add-row {
1755
+ display: inline-flex;
1756
+ align-items: center;
1757
+ justify-content: center;
1758
+ gap: 6px;
1759
+ min-height: 34px;
1760
+ border: 1px dashed #b8c4d0;
1761
+ border-radius: 6px;
1762
+ color: #415166;
1763
+ background: #fbfcfd;
1764
+ font-weight: 800;
1765
+ }
1766
+
1767
+ .child-field-config {
1768
+ display: grid;
1769
+ gap: 8px;
1770
+ margin-left: 18px;
1771
+ padding: 10px;
1772
+ border-left: 3px solid #b9d7d3;
1773
+ border-radius: 0 7px 7px 0;
1774
+ background: #f7fbfa;
1775
+ }
1776
+
1777
+ .child-field-title {
1778
+ color: #415166;
1779
+ font-size: 12px;
1780
+ font-weight: 900;
1781
+ }
1782
+
1783
+ .response-config {
1784
+ display: grid;
1785
+ gap: 10px;
1786
+ padding: 12px;
1787
+ border: 1px solid #e3e8ee;
1788
+ border-radius: 7px;
1789
+ background: #fbfcfd;
1790
+ }
1791
+
1792
+ .auth-message {
1793
+ display: flex;
1794
+ align-items: flex-start;
1795
+ gap: 8px;
1796
+ padding: 10px 12px;
1797
+ border: 1px solid #d9e0e7;
1798
+ border-radius: 7px;
1799
+ color: #2f3d4d;
1800
+ background: #f7f9fb;
1801
+ }
1802
+
1803
+ .auth-target {
1804
+ display: grid;
1805
+ gap: 4px;
1806
+ }
1807
+
1808
+ .auth-target span,
1809
+ .auth-fields label {
1810
+ color: #657181;
1811
+ font-size: 12px;
1812
+ font-weight: 800;
1813
+ }
1814
+
1815
+ .auth-target strong {
1816
+ overflow-wrap: anywhere;
1817
+ color: #1f2b38;
1818
+ font-family: "SFMono-Regular", Consolas, monospace;
1819
+ font-size: 13px;
1820
+ line-height: 1.5;
1821
+ }
1822
+
1823
+ .auth-fields {
1824
+ display: grid;
1825
+ gap: 10px;
1826
+ }
1827
+
1828
+ .auth-fields label {
1829
+ display: grid;
1830
+ gap: 6px;
1831
+ }
1832
+
1833
+ .auth-fields input {
1834
+ width: 100%;
1835
+ min-height: 38px;
1836
+ padding: 0 10px;
1837
+ border: 1px solid #cfd7e1;
1838
+ border-radius: 6px;
1839
+ outline: 0;
1840
+ color: #15202c;
1841
+ background: #fff;
1842
+ }
1843
+
1844
+ .import-summary div:not(.import-counts):not(.import-error) {
1845
+ display: grid;
1846
+ gap: 4px;
1847
+ }
1848
+
1849
+ .import-summary span {
1850
+ color: #657181;
1851
+ font-size: 12px;
1852
+ font-weight: 700;
1853
+ }
1854
+
1855
+ .import-summary strong {
1856
+ overflow-wrap: anywhere;
1857
+ color: #1f2b38;
1858
+ font-family: "SFMono-Regular", Consolas, monospace;
1859
+ font-size: 13px;
1860
+ line-height: 1.5;
1861
+ }
1862
+
1863
+ .import-counts {
1864
+ display: flex;
1865
+ flex-wrap: wrap;
1866
+ gap: 8px;
1867
+ }
1868
+
1869
+ .import-counts span {
1870
+ padding: 6px 9px;
1871
+ border-radius: 6px;
1872
+ color: #1b6b65;
1873
+ background: #e7f4f2;
1874
+ }
1875
+
1876
+ .import-error {
1877
+ display: flex;
1878
+ align-items: flex-start;
1879
+ gap: 8px;
1880
+ padding: 10px 12px;
1881
+ border: 1px solid #f1c1bd;
1882
+ border-radius: 7px;
1883
+ color: #9a2d27;
1884
+ background: #fff4f3;
1885
+ }
1886
+
1887
+ .import-dialog-actions {
1888
+ display: flex;
1889
+ justify-content: flex-end;
1890
+ padding: 0 20px 18px;
1891
+ }
1892
+
1893
+ .state-screen,
1894
+ .empty-state {
1895
+ display: grid;
1896
+ place-items: center;
1897
+ align-content: center;
1898
+ min-height: 100vh;
1899
+ padding: 24px;
1900
+ text-align: center;
1901
+ }
1902
+
1903
+ .empty-state {
1904
+ min-height: 60vh;
1905
+ }
1906
+
1907
+ .state-icon {
1908
+ width: 42px;
1909
+ height: 42px;
1910
+ margin-bottom: 14px;
1911
+ color: #1b6b65;
1912
+ }
1913
+
1914
+ .state-icon.error {
1915
+ color: #b8312d;
1916
+ }
1917
+
1918
+ .state-screen h1,
1919
+ .empty-state h2 {
1920
+ margin-bottom: 8px;
1921
+ }
1922
+
1923
+ .spin {
1924
+ animation: spin 1s linear infinite;
1925
+ }
1926
+
1927
+ @keyframes spin {
1928
+ to {
1929
+ transform: rotate(360deg);
1930
+ }
1931
+ }
1932
+
1933
+ @media (max-width: 980px) {
1934
+ .app-shell {
1935
+ padding: 12px;
1936
+ }
1937
+
1938
+ .topbar {
1939
+ align-items: flex-start;
1940
+ flex-direction: column;
1941
+ }
1942
+
1943
+ .topbar-actions {
1944
+ width: 100%;
1945
+ justify-content: space-between;
1946
+ }
1947
+
1948
+ .version-switcher {
1949
+ width: 100%;
1950
+ }
1951
+
1952
+ .version-switcher select {
1953
+ width: 100%;
1954
+ }
1955
+
1956
+ .version-manager {
1957
+ width: 100%;
1958
+ min-width: 0;
1959
+ }
1960
+
1961
+ .version-item-main,
1962
+ .version-env-editor,
1963
+ .version-env-summary {
1964
+ grid-template-columns: 1fr;
1965
+ }
1966
+
1967
+ .version-item-stats,
1968
+ .version-item-actions {
1969
+ justify-content: flex-start;
1970
+ }
1971
+
1972
+ .source-panel {
1973
+ grid-template-columns: 1fr;
1974
+ }
1975
+
1976
+ .source-panel-header {
1977
+ align-items: stretch;
1978
+ flex-direction: column;
1979
+ }
1980
+
1981
+ .source-panel-header > .secondary-button,
1982
+ .source-panel-actions,
1983
+ .source-tabs {
1984
+ width: 100%;
1985
+ }
1986
+
1987
+ .source-panel-actions {
1988
+ justify-content: stretch;
1989
+ }
1990
+
1991
+ .source-panel-actions .secondary-button {
1992
+ flex: 1 1 180px;
1993
+ }
1994
+
1995
+ .source-tabs {
1996
+ flex-wrap: wrap;
1997
+ }
1998
+
1999
+ .source-form {
2000
+ grid-template-columns: 1fr;
2001
+ }
2002
+
2003
+ .source-auth,
2004
+ .source-auth-fields {
2005
+ grid-template-columns: 1fr;
2006
+ }
2007
+
2008
+ .api-config-grid,
2009
+ .api-config-grid.compact {
2010
+ grid-template-columns: 1fr;
2011
+ }
2012
+
2013
+ .span-2,
2014
+ .span-all {
2015
+ grid-column: auto;
2016
+ }
2017
+
2018
+ .workspace {
2019
+ grid-template-columns: 1fr;
2020
+ height: auto;
2021
+ }
2022
+
2023
+ .sidebar {
2024
+ max-height: 46vh;
2025
+ }
2026
+
2027
+ .detail-pane {
2028
+ min-height: 60vh;
2029
+ }
2030
+
2031
+ .detail-header {
2032
+ flex-direction: column;
2033
+ }
2034
+
2035
+ .copy-preview-toolbar {
2036
+ align-items: stretch;
2037
+ flex-direction: column;
2038
+ }
2039
+
2040
+ .copy-tabs,
2041
+ .copy-inline-button {
2042
+ width: 100%;
2043
+ }
2044
+
2045
+ .copy-tabs button {
2046
+ flex: 1;
2047
+ justify-content: center;
2048
+ }
2049
+
2050
+ .request-line,
2051
+ .tester-grid,
2052
+ .links-grid,
2053
+ .tester-form-grid {
2054
+ grid-template-columns: 1fr;
2055
+ }
2056
+ }
2057
+
2058
+ @media (max-width: 640px) {
2059
+ .filters {
2060
+ grid-template-columns: 1fr;
2061
+ }
2062
+
2063
+ .method-tabs {
2064
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2065
+ }
2066
+
2067
+ .topbar-actions,
2068
+ .sync-meta {
2069
+ align-items: stretch;
2070
+ flex-direction: column;
2071
+ width: 100%;
2072
+ }
2073
+
2074
+ .primary-button,
2075
+ .secondary-button,
2076
+ .copy-inline-button {
2077
+ width: 100%;
2078
+ }
2079
+
2080
+ .source-tabs {
2081
+ width: 100%;
2082
+ }
2083
+
2084
+ .source-tabs button {
2085
+ flex: 1;
2086
+ }
2087
+
2088
+ .import-dialog-actions .secondary-button {
2089
+ width: 100%;
2090
+ }
2091
+
2092
+ .import-dialog-actions {
2093
+ flex-direction: column-reverse;
2094
+ gap: 8px;
2095
+ }
2096
+
2097
+ .endpoint-title-line {
2098
+ align-items: flex-start;
2099
+ flex-direction: column;
2100
+ }
2101
+ }