@vobs/devtools-ui 1.0.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.
@@ -0,0 +1,1582 @@
1
+ .vobs-devtools-widget {
2
+ position: fixed;
3
+ left: 56px;
4
+ bottom: 32px;
5
+ z-index: 1000;
6
+ }
7
+
8
+ .vobs-devtools-widget .vui-btn {
9
+ box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
10
+ }
11
+
12
+ .vobs-devtools-widget__dialog.vui-backdrop {
13
+ position: fixed;
14
+ inset: 0;
15
+ z-index: 1100;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .vobs-devtools-widget__dialog.vui-backdrop.is-maximized {
20
+ padding: 0;
21
+ }
22
+
23
+ .vobs-devtools-widget__dialog .vui-dialog {
24
+ max-width: min(1180px, calc(100vw - var(--spacer-32)));
25
+ height: min(760px, calc(100vh - var(--spacer-32)));
26
+ display: flex;
27
+ flex-direction: column;
28
+ }
29
+
30
+ .vobs-devtools-widget__dialog.is-maximized .vui-dialog {
31
+ width: 100vw;
32
+ max-width: none;
33
+ height: 100vh;
34
+ max-height: none;
35
+ border-radius: 0;
36
+ }
37
+
38
+ .vobs-devtools-widget__dialog .vui-dialog__body {
39
+ flex: 1 1 auto;
40
+ min-height: 0;
41
+ overflow: hidden;
42
+ max-height: none;
43
+ }
44
+
45
+ .vobs-devtools-widget__dialog .vui-dialog__head {
46
+ gap: var(--spacer-8);
47
+ justify-content: flex-start;
48
+ }
49
+
50
+ .vobs-devtools-widget__dialog .vui-dialog__title {
51
+ flex: 0 0 auto;
52
+ white-space: nowrap;
53
+ }
54
+
55
+ .vobs-devtools-widget__dialog .vui-dialog__close {
56
+ flex: 0 0 auto;
57
+ margin-left: auto;
58
+ }
59
+
60
+ .vobs-devtools-widget__dialog .vobs-devtools-shell {
61
+ height: 100%;
62
+ min-height: 0;
63
+ }
64
+
65
+ .vobs-devtools-panel__toolbar {
66
+ display: flex;
67
+ justify-content: flex-end;
68
+ margin-bottom: var(--spacer-16);
69
+ }
70
+
71
+ .vobs-devtools-collection-toolbar {
72
+ display: flex;
73
+ align-items: center;
74
+ justify-content: flex-end;
75
+ gap: var(--spacer-8);
76
+ margin-bottom: var(--spacer-12);
77
+ }
78
+
79
+ .vobs-devtools-collection-toolbar--header {
80
+ flex: 1 1 auto;
81
+ min-width: 0;
82
+ margin: 0;
83
+ }
84
+
85
+ .vobs-devtools-collection-toolbar__actions {
86
+ display: flex;
87
+ flex: 0 0 auto;
88
+ align-items: center;
89
+ gap: var(--spacer-8);
90
+ }
91
+
92
+ .vobs-devtools-search {
93
+ min-width: 180px;
94
+ margin-right: auto;
95
+ padding: var(--spacer-6) var(--spacer-10);
96
+ border: 1px solid var(--border-neutral-l2);
97
+ border-radius: var(--radius-6);
98
+ background: var(--bg-base-secondary);
99
+ color: var(--text-default);
100
+ font: inherit;
101
+ }
102
+
103
+ .vobs-devtools-search:focus {
104
+ outline: 2px solid var(--border-brand);
105
+ outline-offset: 1px;
106
+ }
107
+
108
+ .vobs-devtools-header-search {
109
+ width: min(260px, 30vw);
110
+ min-width: 120px;
111
+ margin-right: 0;
112
+ }
113
+
114
+ .vobs-devtools-mutation-control {
115
+ display: flex;
116
+ align-items: center;
117
+ flex-wrap: wrap;
118
+ gap: var(--spacer-8);
119
+ margin-top: var(--spacer-8);
120
+ }
121
+
122
+ .vobs-devtools-mutation-control .vobs-devtools-search {
123
+ min-width: 160px;
124
+ margin-right: 0;
125
+ }
126
+
127
+ .vobs-devtools-control {
128
+ padding: var(--spacer-6) var(--spacer-10);
129
+ border: 1px solid var(--border-neutral-l2);
130
+ border-radius: var(--radius-6);
131
+ background: var(--bg-base-secondary);
132
+ color: var(--text-secondary);
133
+ font: inherit;
134
+ cursor: pointer;
135
+ }
136
+
137
+ .vobs-devtools-control:hover {
138
+ border-color: var(--border-brand);
139
+ color: var(--text-brand);
140
+ }
141
+
142
+ .vobs-devtools-router-tabs {
143
+ min-width: 0;
144
+ }
145
+
146
+ .vobs-devtools-router-tabs-wrap {
147
+ position: relative;
148
+ }
149
+
150
+ .vobs-devtools-updates-tabs-wrap {
151
+ min-width: 0;
152
+ }
153
+
154
+ .vobs-devtools-updates-tabs-wrap > .vobs-devtools-router-tabs .vui-tabs {
155
+ padding-right: 0;
156
+ }
157
+
158
+ .vobs-devtools-router-tabs-wrap > .vobs-devtools-panel__toolbar {
159
+ position: absolute;
160
+ top: 0;
161
+ right: 0;
162
+ z-index: 1;
163
+ margin: 0;
164
+ }
165
+
166
+ .vobs-devtools-router-tabs-wrap > .vobs-devtools-router-tabs .vui-tabs {
167
+ padding-right: 190px;
168
+ }
169
+
170
+ .vobs-devtools-router-tabs .vui-tabs__panel {
171
+ display: grid;
172
+ gap: var(--spacer-16);
173
+ padding-top: var(--spacer-16);
174
+ }
175
+
176
+ .vobs-devtools-overview-route {
177
+ display: grid;
178
+ gap: var(--spacer-8);
179
+ }
180
+
181
+ .vobs-devtools-overview-route__path {
182
+ color: var(--text-brand);
183
+ font-family: var(--code-editor-font-family);
184
+ font-size: var(--heading-sm-font-size);
185
+ font-weight: var(--font-weight-strong);
186
+ }
187
+
188
+ .vobs-devtools-shell {
189
+ display: grid;
190
+ grid-template-columns: 50px minmax(0, 1fr) 250px;
191
+ height: 100%;
192
+ min-height: 0;
193
+ margin: calc(var(--spacer-16) * -1) calc(var(--spacer-24) * -1);
194
+ background: var(--bg-base-default);
195
+ color: var(--text-default);
196
+ }
197
+
198
+ .vobs-devtools-shell__rail {
199
+ display: flex;
200
+ flex-direction: column;
201
+ align-items: center;
202
+ gap: var(--spacer-8);
203
+ padding: var(--spacer-12) var(--spacer-8);
204
+ border-right: 1px solid var(--border-neutral-l1);
205
+ background: var(--bg-base-secondary);
206
+ }
207
+
208
+ .vobs-devtools-shell__mark {
209
+ display: grid;
210
+ width: 36px;
211
+ height: 36px;
212
+ place-items: center;
213
+ margin-bottom: var(--spacer-8);
214
+ border: 1px solid var(--border-neutral-l2);
215
+ border-radius: var(--radius-6);
216
+ color: var(--text-brand);
217
+ }
218
+
219
+ .vobs-devtools-shell__mark .vui-icon,
220
+ .vobs-devtools-shell__nav-item .vui-icon {
221
+ width: 16px;
222
+ height: 16px;
223
+ }
224
+
225
+ .vobs-devtools-shell__nav-item {
226
+ display: grid;
227
+ width: 36px;
228
+ min-height: 36px;
229
+ place-items: center;
230
+ gap: 3px;
231
+ padding: 5px 2px;
232
+ border: 1px solid transparent;
233
+ border-radius: var(--radius-6);
234
+ background: transparent;
235
+ color: var(--text-tertiary);
236
+ cursor: pointer;
237
+ font-size: 9px;
238
+ }
239
+
240
+ .vobs-devtools-shell__nav-item:hover,
241
+ .vobs-devtools-shell__nav-item.is-active {
242
+ border-color: var(--border-neutral-l2);
243
+ background: var(--bg-overlay-l2);
244
+ color: var(--text-brand);
245
+ }
246
+
247
+ .vobs-devtools-shell__main {
248
+ display: flex;
249
+ min-width: 0;
250
+ min-height: 0;
251
+ overflow: hidden;
252
+ }
253
+
254
+ .vobs-devtools-shell__activity-subtitle {
255
+ color: var(--text-tertiary);
256
+ font-size: var(--body-xs-font-size);
257
+ }
258
+
259
+ .vobs-devtools-shell__content {
260
+ display: grid;
261
+ grid-template-rows: auto minmax(0, 1fr);
262
+ flex: 1 1 auto;
263
+ gap: var(--spacer-16);
264
+ min-height: 0;
265
+ overflow: hidden;
266
+ padding: var(--spacer-10);
267
+ }
268
+
269
+ .vobs-devtools-shell__content > .vobs-devtools-list,
270
+ .vobs-devtools-shell__content > .vui-card,
271
+ .vobs-devtools-shell__content > .vobs-devtools-components-layout,
272
+ .vobs-devtools-shell__content > .vobs-devtools-advanced {
273
+ min-width: 0;
274
+ }
275
+
276
+ .vobs-devtools-shell__content > .vobs-devtools-components-layout,
277
+ .vobs-devtools-shell__content > .vobs-devtools-advanced,
278
+ .vobs-devtools-shell__content > .vobs-devtools-updates-layout,
279
+ .vobs-devtools-shell__content > .vobs-devtools-components-tabs-wrap,
280
+ .vobs-devtools-shell__content > .vobs-devtools-updates-tabs-wrap {
281
+ grid-row: 1 / -1;
282
+ }
283
+
284
+ .vobs-devtools-updates-layout {
285
+ display: grid;
286
+ grid-template-rows: minmax(0, 1fr) auto;
287
+ gap: var(--spacer-16);
288
+ height: 100%;
289
+ min-height: 0;
290
+ overflow: hidden;
291
+ }
292
+
293
+ .vobs-devtools-updates-card {
294
+ display: flex;
295
+ flex-direction: column;
296
+ min-height: 0;
297
+ overflow: hidden;
298
+ }
299
+
300
+ .vobs-devtools-updates-card > .vobs-devtools-list {
301
+ flex: 1 1 auto;
302
+ min-height: 0;
303
+ max-height: 100vh;
304
+ overflow: auto;
305
+ }
306
+
307
+ .vobs-devtools-shell__content > .vui-card {
308
+ min-height: 0;
309
+ height: 100%;
310
+ overflow: hidden;
311
+ display: flex;
312
+ flex-direction: column;
313
+ }
314
+
315
+ /* The widget places the global toolbar in the Dialog header, leaving the
316
+ content grid with a single Card. Let that Card occupy the full grid area. */
317
+ .vobs-devtools-shell__content > .vui-card:only-child {
318
+ grid-row: 1 / -1;
319
+ }
320
+
321
+ .vobs-devtools-shell__content > .vui-card > .vobs-devtools-network-inspector {
322
+ flex: 1 1 auto;
323
+ min-height: 0;
324
+ }
325
+
326
+ .vobs-devtools-shell__activity {
327
+ min-width: 0;
328
+ overflow: auto;
329
+ padding: var(--spacer-16);
330
+ border-left: 1px solid var(--border-neutral-l1);
331
+ background: var(--bg-base-secondary);
332
+ }
333
+
334
+ .vobs-devtools-shell__activity-header {
335
+ display: flex;
336
+ align-items: center;
337
+ justify-content: space-between;
338
+ gap: var(--spacer-8);
339
+ min-width: 0;
340
+ }
341
+
342
+ .vobs-devtools-shell__activity-title {
343
+ color: var(--text-default-hover);
344
+ font-size: var(--body-base-font-size);
345
+ font-weight: var(--font-weight-strong);
346
+ }
347
+
348
+ .vobs-devtools-timeline-filter {
349
+ flex: 0 1 auto;
350
+ width: auto;
351
+ min-width: 104px;
352
+ max-width: 132px;
353
+ }
354
+
355
+ .vobs-devtools-activity-list {
356
+ display: grid;
357
+ gap: var(--spacer-16);
358
+ margin-top: var(--spacer-20);
359
+ }
360
+
361
+ .vobs-devtools-activity-item {
362
+ display: flex;
363
+ gap: var(--spacer-8);
364
+ min-width: 0;
365
+ cursor: pointer;
366
+ border-radius: var(--radius-8);
367
+ padding: var(--spacer-4);
368
+ }
369
+
370
+ .vobs-devtools-activity-item:hover,
371
+ .vobs-devtools-activity-item.is-selected {
372
+ background: var(--bg-overlay-l2);
373
+ }
374
+
375
+ .vobs-devtools-activity-item__dot {
376
+ display: grid;
377
+ flex: 0 0 22px;
378
+ width: 22px;
379
+ height: 22px;
380
+ place-items: center;
381
+ border-radius: 50%;
382
+ background: var(--bg-brand-popup);
383
+ color: var(--text-brand);
384
+ }
385
+
386
+ .vobs-devtools-activity-item__dot .vui-icon {
387
+ width: 12px;
388
+ height: 12px;
389
+ }
390
+
391
+ .vobs-devtools-activity-item__body {
392
+ display: grid;
393
+ min-width: 0;
394
+ gap: 2px;
395
+ font-size: var(--body-xs-font-size);
396
+ }
397
+
398
+ .vobs-devtools-activity-item__body .vobs-devtools-activity-item__name {
399
+ overflow: hidden;
400
+ color: var(--text-default);
401
+ text-overflow: ellipsis;
402
+ white-space: nowrap;
403
+ }
404
+
405
+ .vobs-devtools-activity-item__body span {
406
+ color: var(--text-tertiary);
407
+ }
408
+
409
+ .vobs-devtools-section-grid {
410
+ display: grid;
411
+ grid-template-columns: repeat(2, minmax(0, 1fr));
412
+ gap: var(--spacer-16);
413
+ }
414
+
415
+ .vobs-devtools-muted {
416
+ color: var(--text-secondary);
417
+ }
418
+
419
+ .vobs-devtools-error {
420
+ color: var(--text-danger);
421
+ }
422
+
423
+ .vobs-devtools-link {
424
+ display: inline;
425
+ padding: 0;
426
+ border: 0;
427
+ background: transparent;
428
+ color: var(--text-brand);
429
+ font: inherit;
430
+ text-decoration: underline;
431
+ cursor: pointer;
432
+ }
433
+
434
+ .vobs-devtools-lifecycle-list {
435
+ display: grid;
436
+ gap: 2px;
437
+ min-height: 0;
438
+ overflow: auto;
439
+ }
440
+
441
+ .vobs-devtools-components-layout {
442
+ display: grid;
443
+ grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
444
+ gap: var(--spacer-16);
445
+ height: 100%;
446
+ min-height: 0;
447
+ overflow: hidden;
448
+ }
449
+
450
+ .vobs-devtools-components-tabs-wrap {
451
+ display: flex;
452
+ flex-direction: column;
453
+ height: 100%;
454
+ min-height: 0;
455
+ overflow: hidden;
456
+ }
457
+
458
+ .vobs-devtools-components-tabs-wrap > .vobs-devtools-router-tabs {
459
+ display: flex;
460
+ flex-direction: column;
461
+ height: 100%;
462
+ min-height: 0;
463
+ }
464
+
465
+ .vobs-devtools-components-tabs-wrap > .vobs-devtools-router-tabs .vui-tabs__panel {
466
+ flex: 1 1 auto;
467
+ min-height: 0;
468
+ overflow: auto;
469
+ }
470
+
471
+ .vobs-devtools-components-tabs-wrap .vobs-devtools-component-tree-card,
472
+ .vobs-devtools-components-tabs-wrap .vobs-devtools-lifecycle-card {
473
+ display: flex;
474
+ flex-direction: column;
475
+ min-height: 0;
476
+ overflow: hidden;
477
+ }
478
+
479
+ .vobs-devtools-components-tabs-wrap .vobs-devtools-component-tree-card > .vobs-devtools-list,
480
+ .vobs-devtools-components-tabs-wrap .vobs-devtools-lifecycle-card > .vobs-devtools-lifecycle-list {
481
+ flex: 1 1 auto;
482
+ min-height: 0;
483
+ overflow: auto;
484
+ align-content: start;
485
+ }
486
+
487
+ .vobs-devtools-components-layout > .vui-card {
488
+ display: flex;
489
+ flex-direction: column;
490
+ min-height: 0;
491
+ overflow: hidden;
492
+ }
493
+
494
+ .vobs-devtools-component-tree-card > .vobs-devtools-list,
495
+ .vobs-devtools-lifecycle-card > .vobs-devtools-lifecycle-list {
496
+ min-height: 0;
497
+ overflow: auto;
498
+ }
499
+
500
+ .vobs-devtools-component-tree-card > .vobs-devtools-list,
501
+ .vobs-devtools-lifecycle-card > .vobs-devtools-lifecycle-list {
502
+ flex: 1 1 auto;
503
+ }
504
+
505
+ .vobs-devtools-advanced {
506
+ display: flex;
507
+ flex-direction: column;
508
+ height: 100%;
509
+ min-height: 0;
510
+ overflow: hidden;
511
+ }
512
+
513
+ .vobs-devtools-advanced > .vui-tabs-root {
514
+ display: flex;
515
+ flex-direction: column;
516
+ min-height: 0;
517
+ height: 100%;
518
+ }
519
+
520
+ .vobs-devtools-advanced .vui-tabs__panel {
521
+ flex: 1 1 auto;
522
+ min-height: 0;
523
+ overflow: auto;
524
+ }
525
+
526
+ .vobs-devtools-advanced .vui-tabs__panel > .vobs-devtools-list {
527
+ min-height: 0;
528
+ }
529
+
530
+ .vobs-devtools-lifecycle-row {
531
+ display: grid;
532
+ grid-template-columns: minmax(120px, .8fr) minmax(0, 1.5fr) auto;
533
+ gap: var(--spacer-8);
534
+ width: 100%;
535
+ padding: var(--spacer-6) var(--spacer-8);
536
+ border: 0;
537
+ background: transparent;
538
+ color: var(--text-secondary);
539
+ text-align: left;
540
+ font: inherit;
541
+ cursor: pointer;
542
+ }
543
+
544
+ .vobs-devtools-lifecycle-row:hover {
545
+ background: var(--bg-overlay-l2);
546
+ }
547
+
548
+ .vobs-devtools-network-list {
549
+ display: grid;
550
+ gap: 2px;
551
+ }
552
+
553
+ .vobs-devtools-network-inspector {
554
+ position: relative;
555
+ display: grid;
556
+ grid-template-rows: auto minmax(0, 1fr);
557
+ height: 100%;
558
+ min-height: 0;
559
+ gap: var(--spacer-12);
560
+ }
561
+
562
+ .vobs-devtools-network-toolbar {
563
+ display: flex;
564
+ flex-wrap: wrap;
565
+ align-items: center;
566
+ gap: var(--spacer-8);
567
+ padding-bottom: var(--spacer-4);
568
+ border-bottom: 1px solid var(--border-neutral-l1);
569
+ }
570
+
571
+ .vobs-devtools-network-toolbar__label {
572
+ color: var(--text-secondary);
573
+ font-size: var(--body-xs-font-size);
574
+ font-weight: 600;
575
+ }
576
+
577
+ .vobs-devtools-network-toolbar__search {
578
+ flex: 1 1 180px;
579
+ min-width: 140px;
580
+ }
581
+
582
+ .vobs-devtools-network-toolbar__select {
583
+ min-height: 32px;
584
+ padding: 0 var(--spacer-8);
585
+ border: 1px solid var(--border-neutral-l2);
586
+ border-radius: var(--radius-6);
587
+ background: var(--bg-base-default);
588
+ color: var(--text-primary);
589
+ font: inherit;
590
+ font-size: var(--body-xs-font-size);
591
+ }
592
+
593
+ .vobs-devtools-network-panes {
594
+ display: grid;
595
+ grid-template-columns: minmax(300px, .95fr) minmax(360px, 1.45fr);
596
+ gap: var(--spacer-16);
597
+ height: 100%;
598
+ min-height: 0;
599
+ min-width: 0;
600
+ }
601
+
602
+ .vobs-devtools-network-list-pane,
603
+ .vobs-devtools-network-detail-pane {
604
+ min-width: 0;
605
+ height: 100%;
606
+ box-sizing: border-box;
607
+ }
608
+
609
+ .vobs-devtools-network-list-pane {
610
+ max-height: none;
611
+ overflow: auto;
612
+ padding-right: var(--spacer-12);
613
+ }
614
+
615
+ .vobs-devtools-network-detail-pane {
616
+ min-height: 0;
617
+ overflow: auto;
618
+ border-left: 1px solid var(--border-neutral-l1);
619
+ padding-left: var(--spacer-8);
620
+ }
621
+
622
+ .vobs-devtools-network-request-list {
623
+ display: grid;
624
+ gap: 2px;
625
+ }
626
+
627
+ .vobs-devtools-network-request {
628
+ display: grid;
629
+ gap: var(--spacer-6);
630
+ width: 100%;
631
+ padding: var(--spacer-10);
632
+ border: 0;
633
+ border-bottom: 1px solid var(--border-neutral-l1);
634
+ background: transparent;
635
+ color: inherit;
636
+ text-align: left;
637
+ font: inherit;
638
+ cursor: pointer;
639
+ transition: background-color 120ms ease, box-shadow 120ms ease;
640
+ }
641
+
642
+ .vobs-devtools-network-request:hover,
643
+ .vobs-devtools-network-request.is-selected {
644
+ background: var(--bg-overlay-l2);
645
+ }
646
+
647
+ .vobs-devtools-network-request.is-selected {
648
+ box-shadow: inset 2px 0 0 var(--border-brand);
649
+ }
650
+
651
+ .vobs-devtools-network-request__path-line {
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: space-between;
655
+ gap: var(--spacer-8);
656
+ min-width: 0;
657
+ }
658
+
659
+ .vobs-devtools-network-request__url {
660
+ display: inline-block;
661
+ flex: 1 1 auto;
662
+ width: 100%;
663
+ overflow: hidden;
664
+ color: var(--text-secondary);
665
+ text-overflow: ellipsis;
666
+ white-space: nowrap;
667
+ font-family: var(--code-editor-font-family);
668
+ }
669
+
670
+ .vobs-devtools-network-request__meta {
671
+ display: flex;
672
+ justify-content: space-between;
673
+ color: var(--text-tertiary);
674
+ font-size: var(--body-xs-font-size);
675
+ }
676
+
677
+ .vobs-devtools-network-detail {
678
+ display: grid;
679
+ gap: var(--spacer-12);
680
+ padding-top: var(--spacer-12);
681
+ }
682
+
683
+ .vobs-devtools-network-detail__heading {
684
+ display: flex;
685
+ flex-wrap: wrap;
686
+ align-items: center;
687
+ gap: var(--spacer-8);
688
+ }
689
+
690
+ .vobs-devtools-network-detail__title {
691
+ min-width: 0;
692
+ flex: 1 1 280px;
693
+ overflow: hidden;
694
+ text-overflow: ellipsis;
695
+ white-space: nowrap;
696
+ color: var(--text-primary);
697
+ font-family: var(--code-editor-font-family);
698
+ font-size: var(--body-sm-font-size);
699
+ font-weight: 600;
700
+ }
701
+
702
+ .vobs-devtools-network-detail__duration {
703
+ color: var(--text-secondary);
704
+ font-family: var(--code-editor-font-family);
705
+ font-size: var(--body-xs-font-size);
706
+ }
707
+
708
+ .vobs-devtools-network-detail__tabs {
709
+ display: flex;
710
+ gap: var(--spacer-4);
711
+ overflow-x: auto;
712
+ border-bottom: 1px solid var(--border-neutral-l1);
713
+ }
714
+
715
+ .vobs-devtools-network-detail__tab {
716
+ padding: var(--spacer-8) var(--spacer-10);
717
+ border: 0;
718
+ border-bottom: 2px solid transparent;
719
+ background: transparent;
720
+ color: var(--text-tertiary);
721
+ font: inherit;
722
+ font-size: var(--body-xs-font-size);
723
+ cursor: pointer;
724
+ }
725
+
726
+ .vobs-devtools-network-detail__tab:hover,
727
+ .vobs-devtools-network-detail__tab.is-active {
728
+ color: var(--text-brand);
729
+ }
730
+
731
+ .vobs-devtools-network-detail__tab.is-active {
732
+ border-bottom-color: var(--border-brand);
733
+ }
734
+
735
+ .vobs-devtools-network-detail__content {
736
+ display: grid;
737
+ grid-template-columns: repeat(2, minmax(0, 1fr));
738
+ gap: var(--spacer-8) var(--spacer-16);
739
+ min-width: 0;
740
+ }
741
+
742
+ .vobs-devtools-network-detail__field {
743
+ display: grid;
744
+ grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
745
+ gap: var(--spacer-8);
746
+ align-items: baseline;
747
+ min-width: 0;
748
+ }
749
+
750
+ .vobs-devtools-network-detail__label {
751
+ color: var(--text-tertiary);
752
+ font-size: var(--body-xs-font-size);
753
+ }
754
+
755
+ .vobs-devtools-network-detail__value {
756
+ min-width: 0;
757
+ overflow-wrap: anywhere;
758
+ color: var(--text-secondary);
759
+ font-size: var(--body-xs-font-size);
760
+ }
761
+
762
+ .vobs-devtools-network-detail__content > .vobs-devtools-value-inspector,
763
+ .vobs-devtools-network-detail__content > .vobs-devtools-error {
764
+ grid-column: 1 / -1;
765
+ }
766
+
767
+ .vobs-devtools-request-tester {
768
+ position: absolute;
769
+ top: 0;
770
+ right: 0;
771
+ bottom: 0;
772
+ z-index: 4;
773
+ display: grid;
774
+ align-content: start;
775
+ gap: var(--spacer-12);
776
+ width: 350px;
777
+ max-width: 100%;
778
+ overflow: auto;
779
+ padding: var(--spacer-12);
780
+ border-left: 1px solid var(--border-neutral-l2);
781
+ background: var(--bg-base-secondary);
782
+ box-shadow: -8px 0 24px rgba(0, 0, 0, .18);
783
+ }
784
+
785
+ .vobs-devtools-request-tester__request-line {
786
+ display: grid;
787
+ grid-template-columns: minmax(0, 1fr) 76px 32px;
788
+ gap: var(--spacer-6);
789
+ align-items: center;
790
+ }
791
+
792
+ .vobs-devtools-request-tester__request-line .vobs-devtools-request-tester__select {
793
+ width: 76px;
794
+ padding-left: var(--spacer-4);
795
+ padding-right: var(--spacer-4);
796
+ }
797
+
798
+ .vobs-devtools-request-tester__request-line .vui-btn {
799
+ width: 32px;
800
+ height: 26px;
801
+ }
802
+
803
+ .vobs-devtools-request-tester__tabs {
804
+ display: flex;
805
+ gap: var(--spacer-4);
806
+ border-bottom: 1px solid var(--border-neutral-l1);
807
+ }
808
+
809
+ .vobs-devtools-request-tester__tab {
810
+ padding: var(--spacer-8) var(--spacer-10);
811
+ border: 0;
812
+ border-bottom: 2px solid transparent;
813
+ background: transparent;
814
+ color: var(--text-tertiary);
815
+ font: inherit;
816
+ font-size: var(--body-xs-font-size);
817
+ cursor: pointer;
818
+ }
819
+
820
+ .vobs-devtools-request-tester__tab:hover,
821
+ .vobs-devtools-request-tester__tab.is-active {
822
+ color: var(--text-brand);
823
+ }
824
+
825
+ .vobs-devtools-request-tester__tab.is-active {
826
+ border-bottom-color: var(--border-brand);
827
+ }
828
+
829
+ .vobs-devtools-request-tester__heading {
830
+ display: flex;
831
+ align-items: center;
832
+ justify-content: space-between;
833
+ gap: var(--spacer-8);
834
+ padding-bottom: var(--spacer-8);
835
+ border-bottom: 1px solid var(--border-neutral-l1);
836
+ }
837
+
838
+ .vobs-devtools-request-tester__heading-actions {
839
+ display: flex;
840
+ align-items: center;
841
+ gap: var(--spacer-4);
842
+ min-width: 0;
843
+ }
844
+
845
+ .vobs-devtools-widget__dialog.is-maximized .vobs-devtools-request-tester {
846
+ width: min(520px, 32vw);
847
+ }
848
+
849
+ .vobs-devtools-request-tester__heading-actions .vui-btn:not(.vui-btn--icon-only) {
850
+ max-width: 180px;
851
+ overflow: hidden;
852
+ text-overflow: ellipsis;
853
+ white-space: nowrap;
854
+ }
855
+
856
+ .vobs-devtools-request-tester__title {
857
+ color: var(--text-primary);
858
+ font-size: var(--body-sm-font-size);
859
+ font-weight: 600;
860
+ }
861
+
862
+ .vobs-devtools-request-tester__field {
863
+ display: grid;
864
+ gap: var(--spacer-6);
865
+ color: var(--text-secondary);
866
+ font-size: var(--body-xs-font-size);
867
+ }
868
+
869
+ .vobs-devtools-request-tester__input,
870
+ .vobs-devtools-request-tester__select,
871
+ .vobs-devtools-request-tester__textarea {
872
+ width: 100%;
873
+ min-width: 0;
874
+ box-sizing: border-box;
875
+ padding: var(--spacer-6) var(--spacer-8);
876
+ border: 1px solid var(--border-neutral-l2);
877
+ border-radius: var(--radius-4);
878
+ background: var(--bg-base-default);
879
+ color: var(--text-primary);
880
+ font: inherit;
881
+ font-size: var(--body-xs-font-size);
882
+ }
883
+
884
+ .vobs-devtools-request-tester__textarea {
885
+ resize: vertical;
886
+ font-family: var(--code-editor-font-family);
887
+ }
888
+
889
+ .vobs-devtools-request-tester__group {
890
+ display: grid;
891
+ gap: var(--spacer-6);
892
+ min-width: 0;
893
+ }
894
+
895
+ .vobs-devtools-request-tester__group-title {
896
+ display: flex;
897
+ align-items: center;
898
+ justify-content: space-between;
899
+ gap: var(--spacer-8);
900
+ color: var(--text-secondary);
901
+ font-size: var(--body-xs-font-size);
902
+ font-weight: 600;
903
+ }
904
+
905
+ .vobs-devtools-request-tester__add {
906
+ padding: 0;
907
+ border: 0;
908
+ background: transparent;
909
+ color: var(--text-brand);
910
+ font: inherit;
911
+ font-size: var(--body-xs-font-size);
912
+ cursor: pointer;
913
+ }
914
+
915
+ .vobs-devtools-request-tester__param {
916
+ display: grid;
917
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 24px;
918
+ gap: var(--spacer-4);
919
+ align-items: center;
920
+ }
921
+
922
+ .vobs-devtools-request-tester__remove {
923
+ display: grid;
924
+ place-items: center;
925
+ width: 24px;
926
+ height: 24px;
927
+ padding: 0;
928
+ border: 0;
929
+ background: transparent;
930
+ color: var(--text-tertiary);
931
+ cursor: pointer;
932
+ }
933
+
934
+ .vobs-devtools-request-tester__remove:hover {
935
+ color: var(--text-danger);
936
+ }
937
+
938
+ .vobs-devtools-request-tester__footer {
939
+ display: grid;
940
+ gap: var(--spacer-8);
941
+ padding-top: var(--spacer-8);
942
+ border-top: 1px solid var(--border-neutral-l1);
943
+ }
944
+
945
+ .vobs-devtools-request-tester__status {
946
+ overflow-wrap: anywhere;
947
+ color: var(--text-secondary);
948
+ font-size: var(--body-xs-font-size);
949
+ }
950
+
951
+ .vobs-devtools-request-tester__status.is-success { color: var(--status-success-default); }
952
+ .vobs-devtools-request-tester__status.is-error { color: var(--status-error-default); }
953
+
954
+ @media (max-width: 760px) {
955
+ .vobs-devtools-network-panes {
956
+ grid-template-columns: 1fr;
957
+ min-height: 0;
958
+ }
959
+
960
+ .vobs-devtools-network-list-pane {
961
+ max-height: 360px;
962
+ overflow-x: auto;
963
+ border-bottom: 1px solid var(--border-neutral-l1);
964
+ padding-right: 0;
965
+ padding-bottom: var(--spacer-12);
966
+ }
967
+
968
+ .vobs-devtools-network-detail-pane {
969
+ padding-left: 0;
970
+ }
971
+
972
+ .vobs-devtools-request-tester {
973
+ width: min(350px, calc(100% - var(--spacer-16)));
974
+ }
975
+
976
+ .vobs-devtools-network-detail__content {
977
+ grid-template-columns: 1fr;
978
+ }
979
+ }
980
+
981
+ .vobs-devtools-error-list {
982
+ display: grid;
983
+ gap: 2px;
984
+ }
985
+
986
+ .vobs-devtools-error-item > summary {
987
+ display: grid;
988
+ grid-template-columns: minmax(140px, .8fr) minmax(0, 1.4fr) auto auto;
989
+ gap: var(--spacer-8);
990
+ align-items: center;
991
+ }
992
+
993
+ .vobs-devtools-error-item[open] {
994
+ display: grid;
995
+ gap: var(--spacer-8);
996
+ }
997
+
998
+ .vobs-devtools-error-item__message {
999
+ min-width: 0;
1000
+ overflow: hidden;
1001
+ color: var(--text-secondary);
1002
+ text-overflow: ellipsis;
1003
+ white-space: nowrap;
1004
+ }
1005
+
1006
+ .vobs-devtools-error-item__details {
1007
+ display: grid;
1008
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1009
+ gap: var(--spacer-8) var(--spacer-16);
1010
+ padding-left: var(--spacer-20);
1011
+ min-width: 0;
1012
+ }
1013
+
1014
+ .vobs-devtools-error-item__field {
1015
+ display: grid;
1016
+ grid-template-columns: max-content minmax(0, 1fr);
1017
+ gap: var(--spacer-8);
1018
+ align-items: baseline;
1019
+ min-width: 0;
1020
+ }
1021
+
1022
+ .vobs-devtools-error-item__field--wide,
1023
+ .vobs-devtools-error-item__stack {
1024
+ grid-column: 1 / -1;
1025
+ }
1026
+
1027
+ .vobs-devtools-error-item__label {
1028
+ color: var(--text-tertiary);
1029
+ font-size: var(--body-xs-font-size);
1030
+ white-space: nowrap;
1031
+ }
1032
+
1033
+ .vobs-devtools-error-item__value {
1034
+ min-width: 0;
1035
+ overflow-wrap: anywhere;
1036
+ }
1037
+
1038
+ .vobs-devtools-error-item__stack {
1039
+ display: grid;
1040
+ gap: var(--spacer-6);
1041
+ min-width: 0;
1042
+ }
1043
+
1044
+ .vobs-devtools-error-item__stack-code {
1045
+ max-height: 240px;
1046
+ margin: 0;
1047
+ overflow: auto;
1048
+ padding: var(--spacer-8);
1049
+ border: 1px solid var(--border-neutral-l1);
1050
+ border-radius: var(--radius-6);
1051
+ background: var(--bg-base-secondary);
1052
+ color: var(--text-secondary);
1053
+ font-size: var(--body-xs-font-size);
1054
+ line-height: 1.5;
1055
+ overflow-wrap: anywhere;
1056
+ white-space: pre-wrap;
1057
+ }
1058
+
1059
+ .vobs-devtools-performance-layout {
1060
+ display: grid;
1061
+ grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
1062
+ gap: var(--spacer-16);
1063
+ min-width: 0;
1064
+ }
1065
+
1066
+ .vobs-devtools-performance-card,
1067
+ .vobs-devtools-performance-slow-card {
1068
+ min-width: 0;
1069
+ height: max-content;
1070
+ }
1071
+
1072
+ .vobs-devtools-performance-metrics {
1073
+ display: grid;
1074
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1075
+ gap: var(--spacer-8);
1076
+ align-content: start;
1077
+ }
1078
+
1079
+ .vobs-devtools-performance-slow-list {
1080
+ display: grid;
1081
+ min-width: 0;
1082
+ margin-top: var(--spacer-12);
1083
+ border-top: 1px solid var(--border-neutral-l1);
1084
+ }
1085
+
1086
+ .vobs-devtools-performance-item {
1087
+ display: grid;
1088
+ gap: 2px;
1089
+ padding: var(--spacer-8);
1090
+ border: 1px solid var(--border-neutral-l1);
1091
+ border-radius: var(--radius-6);
1092
+ }
1093
+
1094
+ .vobs-devtools-performance-slow-item {
1095
+ display: grid;
1096
+ grid-template-columns: auto minmax(0, 1fr) auto;
1097
+ align-items: center;
1098
+ gap: var(--spacer-8);
1099
+ min-width: 0;
1100
+ padding: var(--spacer-10) 0;
1101
+ border-bottom: 1px solid var(--border-neutral-l1);
1102
+ }
1103
+
1104
+ .vobs-devtools-performance-slow-item:last-child {
1105
+ border-bottom: 0;
1106
+ }
1107
+
1108
+ .vobs-devtools-performance-slow-item .vobs-devtools-list__name {
1109
+ min-width: 0;
1110
+ overflow-wrap: anywhere;
1111
+ overflow: hidden;
1112
+ text-overflow: ellipsis;
1113
+ white-space: nowrap;
1114
+ }
1115
+
1116
+ @media (max-width: 760px) {
1117
+ .vobs-devtools-widget__dialog .vui-dialog__head {
1118
+ flex-wrap: wrap;
1119
+ }
1120
+
1121
+ .vobs-devtools-widget__dialog .vui-dialog__title {
1122
+ order: 1;
1123
+ }
1124
+
1125
+ .vobs-devtools-widget__dialog .vobs-devtools-collection-toolbar--header {
1126
+ order: 3;
1127
+ flex-basis: 100%;
1128
+ }
1129
+
1130
+ .vobs-devtools-widget__dialog .vui-dialog__close {
1131
+ order: 2;
1132
+ }
1133
+
1134
+ .vobs-devtools-performance-layout {
1135
+ grid-template-columns: 1fr;
1136
+ }
1137
+ }
1138
+
1139
+ @media (max-width: 520px) {
1140
+ .vobs-devtools-header-search {
1141
+ width: auto;
1142
+ flex: 1 1 auto;
1143
+ }
1144
+
1145
+ .vobs-devtools-performance-metrics {
1146
+ grid-template-columns: 1fr;
1147
+ }
1148
+ }
1149
+
1150
+ .vobs-devtools-list__row.is-selected,
1151
+ .vobs-devtools-update-row.is-selected {
1152
+ box-shadow: inset 2px 0 0 var(--border-brand);
1153
+ background: var(--bg-overlay-l1);
1154
+ }
1155
+
1156
+ .vobs-devtools-code {
1157
+ font-family: var(--code-editor-font-family);
1158
+ }
1159
+
1160
+ .vobs-devtools-value-pair {
1161
+ display: grid;
1162
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1163
+ gap: var(--spacer-8);
1164
+ align-items: start;
1165
+ margin: var(--spacer-8) 0;
1166
+ }
1167
+
1168
+ .vobs-devtools-value-pair__title {
1169
+ display: flex;
1170
+ align-items: center;
1171
+ justify-content: space-between;
1172
+ grid-column: 1 / -1;
1173
+ color: var(--text-secondary);
1174
+ font-size: var(--body-xs-font-size);
1175
+ }
1176
+
1177
+ .vobs-devtools-distinct-toggle {
1178
+ padding: 1px var(--spacer-6);
1179
+ border: 1px solid var(--border-neutral-l2);
1180
+ border-radius: var(--radius-4);
1181
+ background: var(--bg-base-secondary);
1182
+ color: var(--text-secondary);
1183
+ font: inherit;
1184
+ font-size: var(--body-xs-font-size);
1185
+ cursor: pointer;
1186
+ }
1187
+
1188
+ .vobs-devtools-distinct-toggle:hover,
1189
+ .vobs-devtools-distinct-toggle.is-active {
1190
+ border-color: var(--status-success-default);
1191
+ color: var(--status-success-default);
1192
+ }
1193
+
1194
+ .vobs-devtools-distinct-toggle.is-active {
1195
+ background: var(--status-success-surface-l1);
1196
+ }
1197
+
1198
+ .vobs-devtools-value-pair--compact {
1199
+ margin-top: 0;
1200
+ }
1201
+
1202
+ .vobs-devtools-value-inspector {
1203
+ position: relative;
1204
+ min-width: 0;
1205
+ }
1206
+
1207
+ .vobs-devtools-value-inspector__controls {
1208
+ display: flex;
1209
+ position: absolute;
1210
+ top: var(--spacer-6);
1211
+ right: 0;
1212
+ z-index: 1;
1213
+ gap: var(--spacer-4);
1214
+ }
1215
+
1216
+ .vobs-devtools-value-inspector__controls .vui-btn--icon {
1217
+ width: 22px;
1218
+ height: 22px;
1219
+ min-width: 22px;
1220
+ padding: 0;
1221
+ }
1222
+
1223
+ .vobs-devtools-value-tree-root {
1224
+ overflow: auto;
1225
+ border: 1px solid var(--border-neutral-l2);
1226
+ border-radius: var(--radius-6);
1227
+ background: var(--bg-base-secondary);
1228
+ }
1229
+
1230
+ .vobs-devtools-value-tree__empty {
1231
+ display: block;
1232
+ padding: var(--spacer-8);
1233
+ color: var(--text-tertiary);
1234
+ font-size: var(--body-xs-font-size);
1235
+ font-style: italic;
1236
+ }
1237
+
1238
+ .vobs-devtools-value-tree,
1239
+ .vobs-devtools-value-tree__leaf {
1240
+ min-width: 0;
1241
+ overflow-wrap: anywhere;
1242
+ }
1243
+
1244
+ .vobs-devtools-value-tree__leaf {
1245
+ display: grid;
1246
+ grid-template-columns: minmax(84px, .5fr) minmax(0, 1fr);
1247
+ gap: var(--spacer-8);
1248
+ align-items: baseline;
1249
+ padding: var(--spacer-6) var(--spacer-8) var(--spacer-6) calc(var(--spacer-8) + 18px);
1250
+ border-top: 1px solid var(--border-neutral-l1);
1251
+ }
1252
+
1253
+ .vobs-devtools-value-field__label {
1254
+ color: var(--text-secondary);
1255
+ font-size: var(--body-xs-font-size);
1256
+ }
1257
+
1258
+ .vobs-devtools-value-tree {
1259
+ border-top: 1px solid var(--border-neutral-l1);
1260
+ }
1261
+
1262
+ .vobs-devtools-value-tree__summary {
1263
+ display: grid;
1264
+ grid-template-columns: 12px minmax(84px, .5fr) minmax(0, 1fr);
1265
+ gap: var(--spacer-8);
1266
+ align-items: center;
1267
+ width: 100%;
1268
+ min-width: 0;
1269
+ padding: var(--spacer-6) var(--spacer-8);
1270
+ border: 0;
1271
+ background: transparent;
1272
+ color: inherit;
1273
+ font: inherit;
1274
+ text-align: left;
1275
+ cursor: pointer;
1276
+ }
1277
+
1278
+ .vobs-devtools-value-tree__summary::before {
1279
+ content: '›';
1280
+ color: var(--icon-secondary);
1281
+ font-size: 16px;
1282
+ line-height: 1;
1283
+ transform: rotate(0deg);
1284
+ transition: transform 120ms ease;
1285
+ }
1286
+
1287
+ .vobs-devtools-value-tree[data-expanded="true"] > .vobs-devtools-value-tree__summary::before {
1288
+ transform: rotate(90deg);
1289
+ }
1290
+
1291
+ .vobs-devtools-value-tree__summary:hover {
1292
+ background: var(--bg-overlay-l2);
1293
+ }
1294
+
1295
+ .vobs-devtools-value-tree__summary .vobs-devtools-code {
1296
+ overflow: hidden;
1297
+ color: var(--text-secondary);
1298
+ text-overflow: ellipsis;
1299
+ white-space: nowrap;
1300
+ }
1301
+
1302
+ .vobs-devtools-value-tree__children {
1303
+ display: none;
1304
+ margin-left: var(--spacer-12);
1305
+ border-left: 1px solid var(--border-neutral-l2);
1306
+ }
1307
+
1308
+ .vobs-devtools-value-tree[data-expanded="true"] > .vobs-devtools-value-tree__children {
1309
+ display: grid;
1310
+ }
1311
+
1312
+ .vobs-devtools-value-tree__children .vobs-devtools-value-tree__leaf {
1313
+ padding-left: calc(var(--spacer-8) + 18px);
1314
+ }
1315
+
1316
+ .vobs-devtools-dom-update {
1317
+ display: grid;
1318
+ gap: var(--spacer-6);
1319
+ margin-top: var(--spacer-8);
1320
+ padding: var(--spacer-8);
1321
+ border-left: 2px solid var(--border-brand);
1322
+ background: var(--bg-base-secondary);
1323
+ }
1324
+
1325
+ .vobs-devtools-effect-execution {
1326
+ min-width: 0;
1327
+ padding-left: var(--spacer-20);
1328
+ }
1329
+
1330
+ .vobs-devtools-effect-execution .vobs-devtools-link {
1331
+ display: block;
1332
+ width: 100%;
1333
+ overflow-wrap: anywhere;
1334
+ text-align: left;
1335
+ white-space: normal;
1336
+ }
1337
+
1338
+ @media (max-width: 760px) {
1339
+ .vobs-devtools-value-pair {
1340
+ grid-template-columns: 1fr;
1341
+ }
1342
+ }
1343
+
1344
+ .vobs-devtools-error-row {
1345
+ align-items: flex-start;
1346
+ flex-wrap: wrap;
1347
+ }
1348
+
1349
+ .vobs-devtools-error-row > .vobs-devtools-code {
1350
+ flex: 1 1 100%;
1351
+ max-height: 72px;
1352
+ overflow: auto;
1353
+ white-space: pre-wrap;
1354
+ }
1355
+
1356
+ .vobs-devtools-router {
1357
+ display: grid;
1358
+ gap: var(--spacer-16);
1359
+ }
1360
+
1361
+ .vobs-devtools-route-tree {
1362
+ display: grid;
1363
+ gap: 2px;
1364
+ }
1365
+
1366
+ .vobs-devtools-route-node {
1367
+ display: flex;
1368
+ align-items: center;
1369
+ gap: var(--spacer-8);
1370
+ min-width: 0;
1371
+ min-height: 32px;
1372
+ padding: 0 var(--spacer-8);
1373
+ padding-left: calc(var(--spacer-8) + var(--route-depth) * var(--spacer-16));
1374
+ border-left: 1px solid var(--border-neutral-l2);
1375
+ border-bottom: 0;
1376
+ border-radius: 0;
1377
+ color: var(--text-secondary);
1378
+ font-size: var(--body-sm-font-size);
1379
+ }
1380
+
1381
+ button.vobs-devtools-route-node,
1382
+ button.vobs-devtools-list__row {
1383
+ width: 100%;
1384
+ border-top: 0;
1385
+ border-right: 0;
1386
+ border-left: 0;
1387
+ border-bottom: 0;
1388
+ appearance: none;
1389
+ background: transparent;
1390
+ text-align: left;
1391
+ cursor: pointer;
1392
+ }
1393
+
1394
+ button.vobs-devtools-route-node:hover,
1395
+ button.vobs-devtools-route-node.is-active,
1396
+ button.vobs-devtools-list__row:hover {
1397
+ background: var(--bg-overlay-l2);
1398
+ }
1399
+
1400
+ button.vobs-devtools-route-node.is-active {
1401
+ color: var(--text-brand);
1402
+ box-shadow: inset 2px 0 0 var(--border-brand);
1403
+ }
1404
+
1405
+ .vobs-devtools-list__row summary {
1406
+ display: flex;
1407
+ align-items: center;
1408
+ gap: var(--spacer-8);
1409
+ width: 100%;
1410
+ cursor: pointer;
1411
+ list-style-position: outside;
1412
+ }
1413
+
1414
+ .vobs-devtools-list__row[open] {
1415
+ display: grid;
1416
+ gap: var(--spacer-8);
1417
+ }
1418
+
1419
+ .vobs-devtools-list__row[open] > summary {
1420
+ margin-bottom: var(--spacer-4);
1421
+ }
1422
+
1423
+ .vobs-devtools-update-row {
1424
+ min-width: 0;
1425
+ padding: var(--spacer-10);
1426
+ border-bottom: 1px solid var(--border-neutral-l1);
1427
+ }
1428
+
1429
+ .vobs-devtools-update-row:last-child {
1430
+ border-bottom: 0;
1431
+ }
1432
+
1433
+ .vobs-devtools-update-row > summary {
1434
+ display: grid;
1435
+ grid-template-columns: minmax(96px, 1fr) minmax(120px, 1.5fr) auto auto;
1436
+ align-items: center;
1437
+ gap: var(--spacer-8);
1438
+ cursor: pointer;
1439
+ list-style-position: outside;
1440
+ }
1441
+
1442
+ .vobs-devtools-update-row:hover {
1443
+ background: var(--bg-overlay-l2);
1444
+ }
1445
+
1446
+ .vobs-devtools-update-row__source {
1447
+ min-width: 0;
1448
+ overflow: hidden;
1449
+ color: var(--text-tertiary);
1450
+ text-overflow: ellipsis;
1451
+ white-space: nowrap;
1452
+ font-size: var(--body-xs-font-size);
1453
+ }
1454
+
1455
+ .vobs-devtools-update-row[open] {
1456
+ display: grid;
1457
+ gap: var(--spacer-8);
1458
+ }
1459
+
1460
+ .vobs-devtools-update-row > .vobs-devtools-code,
1461
+ .vobs-devtools-update-row > .vobs-devtools-muted {
1462
+ padding-left: var(--spacer-20);
1463
+ overflow-wrap: anywhere;
1464
+ white-space: normal;
1465
+ }
1466
+
1467
+ .vobs-devtools-signal-row > .vobs-devtools-code,
1468
+ .vobs-devtools-signal-row > span:not(.vobs-devtools-code) {
1469
+ overflow-wrap: anywhere;
1470
+ white-space: normal;
1471
+ }
1472
+
1473
+ .vobs-devtools-route-node .vobs-devtools-list__name {
1474
+ min-width: 120px;
1475
+ }
1476
+
1477
+ .vobs-devtools-list {
1478
+ display: grid;
1479
+ gap: var(--spacer-8);
1480
+ }
1481
+
1482
+ .vobs-devtools-list__row {
1483
+ display: flex;
1484
+ align-items: center;
1485
+ gap: var(--spacer-8);
1486
+ min-width: 0;
1487
+ padding: var(--spacer-8);
1488
+ border-bottom: 1px solid var(--border-neutral-l1);
1489
+ color: var(--text-secondary);
1490
+ }
1491
+
1492
+ .vobs-devtools-list__row:last-child {
1493
+ border-bottom: 0;
1494
+ }
1495
+
1496
+ .vobs-devtools-list__name {
1497
+ min-width: 0;
1498
+ overflow: hidden;
1499
+ text-overflow: ellipsis;
1500
+ white-space: nowrap;
1501
+ color: var(--text-default);
1502
+ font-weight: var(--font-weight-strong);
1503
+ }
1504
+
1505
+ .vobs-devtools-list__row > .vui-tag {
1506
+ margin-left: auto;
1507
+ flex: 0 0 auto;
1508
+ }
1509
+
1510
+ @media (max-width: 900px) {
1511
+ .vobs-devtools-shell {
1512
+ grid-template-columns: 60px minmax(0, 1fr);
1513
+ }
1514
+
1515
+ .vobs-devtools-shell__activity {
1516
+ display: none;
1517
+ }
1518
+
1519
+ .vobs-devtools-section-grid {
1520
+ grid-template-columns: 1fr;
1521
+ }
1522
+ }
1523
+
1524
+ @media (max-width: 520px) {
1525
+ .vobs-devtools-shell {
1526
+ grid-template-columns: 1fr;
1527
+ margin: calc(var(--spacer-12) * -1);
1528
+ }
1529
+
1530
+ .vobs-devtools-shell__rail {
1531
+ flex-direction: row;
1532
+ justify-content: space-around;
1533
+ border-right: 0;
1534
+ border-bottom: 1px solid var(--border-neutral-l1);
1535
+ }
1536
+
1537
+ .vobs-devtools-shell__mark {
1538
+ display: none;
1539
+ }
1540
+
1541
+ .vobs-devtools-shell__nav-item {
1542
+ width: auto;
1543
+ min-width: 48px;
1544
+ }
1545
+
1546
+ .vobs-devtools-shell__content {
1547
+ max-height: calc(100vh - 280px);
1548
+ padding: var(--spacer-12);
1549
+ }
1550
+
1551
+ .vobs-devtools-widget {
1552
+ left: var(--spacer-12);
1553
+ bottom: var(--spacer-12);
1554
+ }
1555
+
1556
+ .vobs-devtools-widget__dialog.vui-backdrop {
1557
+ padding: var(--spacer-12);
1558
+ }
1559
+
1560
+ .vobs-devtools-widget__dialog .vui-dialog {
1561
+ max-width: 100%;
1562
+ }
1563
+
1564
+ .vobs-devtools-router-tabs-wrap > .vobs-devtools-panel__toolbar {
1565
+ position: static;
1566
+ justify-content: flex-start;
1567
+ margin-top: var(--spacer-12);
1568
+ }
1569
+
1570
+ .vobs-devtools-router-tabs-wrap > .vobs-devtools-router-tabs .vui-tabs {
1571
+ padding-right: 0;
1572
+ }
1573
+
1574
+ .vobs-devtools-update-row > summary {
1575
+ grid-template-columns: minmax(0, 1fr) auto;
1576
+ }
1577
+
1578
+ .vobs-devtools-update-row__source {
1579
+ grid-column: 1 / -1;
1580
+ grid-row: 2;
1581
+ }
1582
+ }