@workflow-code/cli 0.2.4-20261011002.codex-cli-web → 0.2.4-20261011003.codex-cli-web

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,2379 @@
1
+ /* src/web/ui/style.css */
2
+ :root {
3
+ color-scheme: light dark;
4
+ --border: var(--vscode-panel-border, #444);
5
+ --muted: var(--vscode-descriptionForeground);
6
+ }
7
+ * {
8
+ box-sizing: border-box;
9
+ letter-spacing: 0;
10
+ }
11
+ body {
12
+ margin: 0;
13
+ padding: 0;
14
+ color: var(--vscode-editor-foreground);
15
+ background: var(--vscode-editor-background);
16
+ font: 13px var(--vscode-font-family);
17
+ }
18
+ button,
19
+ input,
20
+ textarea,
21
+ select {
22
+ font: inherit;
23
+ }
24
+ button {
25
+ cursor: pointer;
26
+ color: inherit;
27
+ }
28
+ button:disabled {
29
+ cursor: default;
30
+ opacity: .45;
31
+ }
32
+ button:focus-visible,
33
+ input:focus-visible,
34
+ select:focus-visible,
35
+ textarea:focus-visible,
36
+ a:focus-visible,
37
+ summary:focus-visible {
38
+ outline: 1px solid var(--vscode-focusBorder);
39
+ outline-offset: 2px;
40
+ }
41
+ [hidden] {
42
+ display: none !important;
43
+ }
44
+ #app {
45
+ height: 100vh;
46
+ display: grid;
47
+ grid-template-areas: "toolbar" "main";
48
+ grid-template-columns: minmax(0, 1fr);
49
+ grid-template-rows: auto minmax(0, 1fr);
50
+ overflow: hidden;
51
+ }
52
+ #app.menu-open {
53
+ grid-template-areas: "menu toolbar" "menu main";
54
+ grid-template-columns: 264px minmax(0, 1fr);
55
+ }
56
+ .toolbar {
57
+ grid-area: toolbar;
58
+ display: flex;
59
+ min-height: 52px;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ gap: 12px;
63
+ padding: 8px 16px;
64
+ }
65
+ .project-title {
66
+ display: flex;
67
+ min-width: 0;
68
+ align-items: center;
69
+ gap: 8px;
70
+ }
71
+ .project-heading {
72
+ min-width: 0;
73
+ }
74
+ #assistant-folder {
75
+ display: block;
76
+ color: var(--muted);
77
+ font-size: 11px;
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ margin-top: 3px;
82
+ }
83
+ .assistant-welcome {
84
+ padding: 20px 16px;
85
+ color: var(--muted);
86
+ }
87
+ body[data-surface=assistant] {
88
+ background: var(--vscode-sideBar-background, var(--vscode-editor-background));
89
+ }
90
+ .project-icon {
91
+ width: 24px;
92
+ height: 24px;
93
+ display: grid;
94
+ place-items: center;
95
+ flex-shrink: 0;
96
+ color: var(--muted);
97
+ }
98
+ h1 {
99
+ font-size: 14px;
100
+ font-weight: 500;
101
+ margin: 0;
102
+ min-width: 0;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ }
107
+ .project-name {
108
+ color: var(--muted);
109
+ font-size: 10px;
110
+ white-space: nowrap;
111
+ }
112
+ .toolbar-actions {
113
+ display: flex;
114
+ gap: 4px;
115
+ align-items: center;
116
+ min-width: 0;
117
+ flex-shrink: 0;
118
+ }
119
+ .icon-button {
120
+ display: inline-flex;
121
+ flex-shrink: 0;
122
+ width: 28px;
123
+ height: 28px;
124
+ padding: 0;
125
+ border: none;
126
+ border-radius: 4px;
127
+ align-items: center;
128
+ justify-content: center;
129
+ background: transparent;
130
+ }
131
+ .icon-button:hover:not(:disabled) {
132
+ background: var(--vscode-toolbar-hoverBackground);
133
+ }
134
+ .toolbar-actions [aria-expanded=true] {
135
+ background: var(--vscode-toolbar-activeBackground, var(--vscode-toolbar-hoverBackground));
136
+ }
137
+ .project-menu {
138
+ display: none;
139
+ grid-area: menu;
140
+ min-width: 0;
141
+ min-height: 0;
142
+ overflow: hidden;
143
+ background: var(--vscode-sideBar-background);
144
+ border-right: 1px solid var(--border);
145
+ }
146
+ .menu-open .project-menu {
147
+ display: flex;
148
+ flex-direction: column;
149
+ }
150
+ .menu-heading {
151
+ display: flex;
152
+ flex-shrink: 0;
153
+ align-items: center;
154
+ justify-content: space-between;
155
+ gap: 6px;
156
+ min-height: 52px;
157
+ padding: 8px 10px 8px 16px;
158
+ font-size: 12px;
159
+ color: var(--muted);
160
+ }
161
+ .menu-heading > span {
162
+ min-width: 0;
163
+ white-space: nowrap;
164
+ }
165
+ .menu-actions {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: 2px;
169
+ flex-shrink: 0;
170
+ }
171
+ .history-search {
172
+ display: flex;
173
+ align-items: center;
174
+ gap: 7px;
175
+ border-bottom: 1px solid var(--border);
176
+ margin: 12px 16px 8px;
177
+ padding: 0 0 8px;
178
+ color: var(--muted);
179
+ }
180
+ .history-search input {
181
+ flex: 1;
182
+ width: 100%;
183
+ border: none;
184
+ background: transparent;
185
+ min-height: 26px;
186
+ padding: 0;
187
+ font-size: 12px;
188
+ }
189
+ .history-search input::placeholder {
190
+ color: var(--muted);
191
+ }
192
+ #chats {
193
+ min-height: 0;
194
+ overflow: auto;
195
+ overflow-anchor: none;
196
+ }
197
+ #session-list {
198
+ padding: 0 8px;
199
+ }
200
+ .session {
201
+ display: flex;
202
+ align-items: center;
203
+ justify-content: space-between;
204
+ gap: 10px;
205
+ border: none;
206
+ background: transparent;
207
+ border-radius: 4px;
208
+ width: 100%;
209
+ min-width: 0;
210
+ height: 38px;
211
+ padding: 0 10px;
212
+ text-align: left;
213
+ }
214
+ .session > span {
215
+ min-width: 0;
216
+ white-space: nowrap;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ }
220
+ .session time {
221
+ flex-shrink: 0;
222
+ color: var(--muted);
223
+ font-size: 10px;
224
+ }
225
+ .session > span > .codicon {
226
+ font-size: 12px;
227
+ margin-right: 6px;
228
+ }
229
+ .session:hover {
230
+ background: var(--vscode-list-hoverBackground);
231
+ }
232
+ .session.active {
233
+ background: var(--vscode-list-inactiveSelectionBackground);
234
+ }
235
+ .session.context-active {
236
+ background: var(--vscode-list-hoverBackground);
237
+ }
238
+ .session-menu {
239
+ position: fixed;
240
+ inset: auto;
241
+ margin: 0;
242
+ width: min(220px, calc(100vw - 16px));
243
+ max-height: calc(100vh - 16px);
244
+ overflow: auto;
245
+ padding: 4px;
246
+ color: var(--vscode-menu-foreground, var(--vscode-editor-foreground));
247
+ background: var(--vscode-menu-background, var(--vscode-editorWidget-background, var(--vscode-editor-background)));
248
+ border: 1px solid var(--vscode-menu-border, var(--border));
249
+ border-radius: 6px;
250
+ box-shadow: 0 4px 16px var(--vscode-widget-shadow, #0003);
251
+ }
252
+ .session-action {
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 10px;
256
+ width: 100%;
257
+ min-height: 32px;
258
+ padding: 6px 10px;
259
+ border: none;
260
+ border-radius: 4px;
261
+ background: transparent;
262
+ text-align: left;
263
+ }
264
+ .session-action .codicon {
265
+ flex-shrink: 0;
266
+ }
267
+ .session-action > span:last-child {
268
+ overflow-wrap: anywhere;
269
+ }
270
+ .session-action[data-action=delete] {
271
+ color: var(--vscode-errorForeground);
272
+ }
273
+ .session-action:hover,
274
+ .session-action:focus {
275
+ color: var(--vscode-menu-selectionForeground, var(--vscode-list-activeSelectionForeground));
276
+ background: var(--vscode-menu-selectionBackground, var(--vscode-list-activeSelectionBackground));
277
+ outline: none;
278
+ }
279
+ .session-action:focus-visible {
280
+ outline: 1px solid var(--vscode-menu-selectionBorder, var(--vscode-focusBorder));
281
+ outline-offset: -1px;
282
+ }
283
+ .session-menu-separator {
284
+ height: 1px;
285
+ margin: 4px 6px;
286
+ background: var(--vscode-menu-separatorBackground, var(--border));
287
+ }
288
+ .all-history {
289
+ background: transparent;
290
+ border: none;
291
+ color: var(--muted);
292
+ font-size: 11px;
293
+ padding: 10px 18px;
294
+ text-align: left;
295
+ }
296
+ .all-history:hover {
297
+ color: var(--vscode-editor-foreground);
298
+ }
299
+ #load-more-history {
300
+ display: flex;
301
+ align-items: center;
302
+ gap: 6px;
303
+ }
304
+ .history-popover {
305
+ position: fixed;
306
+ inset: auto;
307
+ margin: 0;
308
+ width: min(520px, calc(100vw - 24px));
309
+ padding: 0;
310
+ color: inherit;
311
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
312
+ border: 1px solid var(--border);
313
+ border-radius: 8px;
314
+ box-shadow: 0 8px 24px #0003;
315
+ }
316
+ .history-popover:popover-open {
317
+ display: flex;
318
+ flex-direction: column;
319
+ }
320
+ .history-popover-toolbar {
321
+ display: flex;
322
+ align-items: center;
323
+ gap: 8px;
324
+ margin: 12px 12px 0;
325
+ padding-bottom: 8px;
326
+ border-bottom: 1px solid var(--border);
327
+ }
328
+ .history-popover .history-search {
329
+ flex: 1;
330
+ min-width: 0;
331
+ margin: 0;
332
+ padding: 0;
333
+ border: 0;
334
+ }
335
+ .history-popover input {
336
+ min-height: 28px;
337
+ }
338
+ #all-session-list {
339
+ overflow: auto;
340
+ min-height: 0;
341
+ padding: 6px 8px 10px;
342
+ }
343
+ .parameter-feedback {
344
+ display: flex;
345
+ flex-wrap: wrap;
346
+ align-items: center;
347
+ gap: 8px;
348
+ }
349
+ .parameter-status {
350
+ display: flex;
351
+ gap: 6px;
352
+ align-items: center;
353
+ padding-bottom: 8px;
354
+ color: var(--muted);
355
+ font-size: 11px;
356
+ }
357
+ .parameter-status .codicon,
358
+ .refreshing .codicon,
359
+ .pending .codicon {
360
+ animation: spin 1.2s linear infinite;
361
+ }
362
+ .parameter-error {
363
+ flex: 1;
364
+ min-width: 0;
365
+ font-size: 13px;
366
+ line-height: 1.6;
367
+ margin-bottom: 8px;
368
+ color: var(--vscode-errorForeground);
369
+ overflow-wrap: anywhere;
370
+ }
371
+ .no-history {
372
+ padding: 16px 18px;
373
+ color: var(--muted);
374
+ font-size: 12px;
375
+ }
376
+ summary::-webkit-details-marker {
377
+ display: none;
378
+ }
379
+ .param-field {
380
+ min-width: 0;
381
+ display: flex;
382
+ flex-direction: column;
383
+ gap: 7px;
384
+ }
385
+ .field-label {
386
+ display: flex;
387
+ align-items: center;
388
+ gap: 4px;
389
+ font-size: 12px;
390
+ min-width: 0;
391
+ color: var(--vscode-editor-foreground);
392
+ }
393
+ .field-label > span:first-child {
394
+ overflow-wrap: anywhere;
395
+ }
396
+ .field-label .codicon {
397
+ margin-left: auto;
398
+ color: var(--muted);
399
+ font-size: 12px;
400
+ }
401
+ .required {
402
+ color: var(--muted);
403
+ font-size: 10px;
404
+ }
405
+ input,
406
+ select {
407
+ min-width: 0;
408
+ min-height: 30px;
409
+ border: 1px solid var(--vscode-input-border, var(--border));
410
+ background: var(--vscode-input-background);
411
+ color: var(--vscode-input-foreground);
412
+ border-radius: 4px;
413
+ padding: 4px 8px;
414
+ }
415
+ .field-control {
416
+ width: 100%;
417
+ }
418
+ .field-control:disabled {
419
+ opacity: .55;
420
+ }
421
+ select option {
422
+ background: var(--vscode-dropdown-background);
423
+ color: var(--vscode-dropdown-foreground);
424
+ }
425
+ .boolean-field {
426
+ display: grid;
427
+ grid-template-columns: minmax(0, 1fr) 28px;
428
+ align-items: center;
429
+ gap: 7px;
430
+ }
431
+ .boolean-field .field-label {
432
+ grid-column: 1;
433
+ grid-row: 1;
434
+ }
435
+ input[role=switch] {
436
+ appearance: none;
437
+ position: relative;
438
+ width: 28px;
439
+ height: 16px;
440
+ min-height: 16px;
441
+ margin: 0;
442
+ padding: 0;
443
+ border-radius: 8px;
444
+ background: var(--vscode-input-background);
445
+ cursor: pointer;
446
+ }
447
+ input[role=switch]::before {
448
+ content: "";
449
+ position: absolute;
450
+ top: 2px;
451
+ left: 2px;
452
+ width: 10px;
453
+ height: 10px;
454
+ border-radius: 50%;
455
+ background: var(--muted);
456
+ transition: transform .15s;
457
+ }
458
+ input[role=switch]:checked {
459
+ background: var(--vscode-button-background);
460
+ border-color: var(--vscode-button-background);
461
+ }
462
+ input[role=switch]:checked::before {
463
+ transform: translateX(12px);
464
+ background: var(--vscode-button-foreground);
465
+ }
466
+ input[role=switch]:disabled {
467
+ cursor: default;
468
+ }
469
+ .option-description {
470
+ font-size: 12px;
471
+ line-height: 1.5;
472
+ color: var(--muted);
473
+ overflow-wrap: anywhere;
474
+ }
475
+ .field-choices {
476
+ display: flex;
477
+ flex-direction: column;
478
+ gap: 8px;
479
+ }
480
+ .field-choices label {
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 7px;
484
+ font-size: 12px;
485
+ overflow-wrap: anywhere;
486
+ }
487
+ .field-choices input {
488
+ width: 14px;
489
+ height: 14px;
490
+ min-height: 14px;
491
+ margin: 0;
492
+ accent-color: var(--vscode-button-background);
493
+ }
494
+ .param-field textarea {
495
+ min-height: 72px;
496
+ border: 1px solid var(--border);
497
+ background: var(--vscode-input-background);
498
+ border-radius: 4px;
499
+ padding: 8px;
500
+ }
501
+ main {
502
+ grid-area: main;
503
+ min-width: 0;
504
+ min-height: 0;
505
+ display: flex;
506
+ flex-direction: column;
507
+ }
508
+ .transcript-area {
509
+ flex: 1;
510
+ min-height: 0;
511
+ position: relative;
512
+ }
513
+ .transcript {
514
+ height: 100%;
515
+ overflow: auto;
516
+ overflow-anchor: none;
517
+ scrollbar-gutter: stable;
518
+ padding: 18px max(28px, calc((100% - 820px) / 2)) 10px;
519
+ }
520
+ .empty {
521
+ min-height: 100px;
522
+ height: 100%;
523
+ display: flex;
524
+ align-items: center;
525
+ justify-content: center;
526
+ color: var(--muted);
527
+ opacity: .3;
528
+ }
529
+ .empty > .codicon {
530
+ font-size: 40px;
531
+ }
532
+ .message {
533
+ min-width: 0;
534
+ margin-bottom: 30px;
535
+ }
536
+ .message-body {
537
+ min-width: 0;
538
+ position: relative;
539
+ }
540
+ .message-date {
541
+ margin-left: auto;
542
+ flex-shrink: 0;
543
+ text-align: right;
544
+ white-space: nowrap;
545
+ font-size: 11px;
546
+ line-height: 1.6;
547
+ color: var(--muted);
548
+ opacity: 0;
549
+ }
550
+ .message:hover .message-date,
551
+ .message:has(:focus-visible) .message-date {
552
+ opacity: 1;
553
+ }
554
+ .user .message-body {
555
+ width: fit-content;
556
+ max-width: 84%;
557
+ margin-left: auto;
558
+ padding-bottom: 32px;
559
+ }
560
+ .message-header {
561
+ display: flex;
562
+ align-items: flex-start;
563
+ gap: 8px;
564
+ min-height: 26px;
565
+ padding-bottom: 8px;
566
+ margin-bottom: 12px;
567
+ border-bottom: 1px solid var(--border);
568
+ }
569
+ .user .message-header {
570
+ display: none;
571
+ }
572
+ .message-metadata {
573
+ flex: 1;
574
+ min-width: 0;
575
+ font-size: 11px;
576
+ line-height: 1.6;
577
+ color: var(--muted);
578
+ overflow-wrap: anywhere;
579
+ }
580
+ .message-actions {
581
+ display: flex;
582
+ align-items: center;
583
+ justify-content: flex-start;
584
+ gap: 4px;
585
+ min-height: 32px;
586
+ padding-top: 4px;
587
+ }
588
+ .user .message-actions {
589
+ position: absolute;
590
+ right: 0;
591
+ bottom: 0;
592
+ width: max-content;
593
+ justify-content: flex-end;
594
+ gap: 6px;
595
+ opacity: 0;
596
+ }
597
+ .user:hover .message-actions,
598
+ .user:has(:focus-visible) .message-actions {
599
+ opacity: 1;
600
+ }
601
+ .message-actions .icon-button {
602
+ width: 28px;
603
+ height: 28px;
604
+ color: var(--muted);
605
+ }
606
+ .message-content {
607
+ line-height: 1.85;
608
+ font-size: 13px;
609
+ overflow-wrap: anywhere;
610
+ min-width: 0;
611
+ }
612
+ .user .message-content {
613
+ background: var(--vscode-textCodeBlock-background);
614
+ border-radius: 8px;
615
+ padding: 14px 18px;
616
+ white-space: pre-wrap;
617
+ }
618
+ .message-content > :first-child {
619
+ margin-top: 0;
620
+ }
621
+ .message-content > :last-child {
622
+ margin-bottom: 0;
623
+ }
624
+ .message-content p {
625
+ margin: 8px 0 12px;
626
+ }
627
+ .message-content h1,
628
+ .message-content h2,
629
+ .message-content h3,
630
+ .message-content h4 {
631
+ font-size: 15px;
632
+ line-height: 1.5;
633
+ white-space: normal;
634
+ margin: 18px 0 8px;
635
+ font-weight: 600;
636
+ }
637
+ .message-content li {
638
+ padding-left: 2px;
639
+ margin: 4px 0;
640
+ }
641
+ .message-content ul,
642
+ .message-content ol {
643
+ padding-left: 22px;
644
+ margin: 10px 0;
645
+ }
646
+ .message-content li:has(> input[type=checkbox]),
647
+ .message-content li:has(> p > input[type=checkbox]) {
648
+ list-style: none;
649
+ }
650
+ .message-content input[type=checkbox] {
651
+ width: 14px;
652
+ height: 14px;
653
+ min-height: 14px;
654
+ padding: 0;
655
+ margin: 0 6px 0 -20px;
656
+ vertical-align: -2px;
657
+ accent-color: var(--vscode-button-background);
658
+ }
659
+ .message-content code {
660
+ font-family: var(--vscode-editor-font-family, monospace);
661
+ font-size: 12px;
662
+ background: var(--vscode-textCodeBlock-background);
663
+ padding: 2px 5px;
664
+ border-radius: 3px;
665
+ }
666
+ .code-block {
667
+ margin: 14px 0;
668
+ border: 1px solid var(--border);
669
+ border-radius: 6px;
670
+ overflow: hidden;
671
+ background: var(--vscode-textCodeBlock-background);
672
+ }
673
+ .code-toolbar {
674
+ display: flex;
675
+ align-items: center;
676
+ justify-content: space-between;
677
+ padding: 3px 8px 3px 12px;
678
+ min-height: 32px;
679
+ border-bottom: 1px solid var(--border);
680
+ font-size: 10px;
681
+ color: var(--muted);
682
+ }
683
+ .code-toolbar .icon-button {
684
+ width: 24px;
685
+ height: 24px;
686
+ }
687
+ .message-content pre {
688
+ overflow: auto;
689
+ max-width: 100%;
690
+ padding: 12px 14px;
691
+ margin: 0;
692
+ line-height: 1.65;
693
+ }
694
+ .message-content pre code {
695
+ padding: 0;
696
+ background: none;
697
+ }
698
+ .message-content blockquote {
699
+ border-left: 2px solid var(--vscode-textBlockQuote-border);
700
+ margin: 12px 0;
701
+ padding: 4px 14px;
702
+ background: var(--vscode-textBlockQuote-background);
703
+ color: var(--muted);
704
+ }
705
+ .message-content a {
706
+ color: var(--vscode-textLink-foreground);
707
+ text-decoration: none;
708
+ }
709
+ .message-content a:hover {
710
+ text-decoration: underline;
711
+ }
712
+ .message-content hr {
713
+ border: none;
714
+ border-top: 1px solid var(--border);
715
+ margin: 18px 0;
716
+ }
717
+ .message-content table {
718
+ display: block;
719
+ max-width: 100%;
720
+ overflow: auto;
721
+ border-collapse: collapse;
722
+ font-size: 12px;
723
+ margin: 12px 0;
724
+ }
725
+ .message-content th,
726
+ .message-content td {
727
+ border: 1px solid var(--border);
728
+ padding: 7px 12px;
729
+ text-align: left;
730
+ }
731
+ .message-content th {
732
+ background: var(--vscode-textCodeBlock-background);
733
+ }
734
+ .pending {
735
+ display: inline-flex;
736
+ gap: 8px;
737
+ align-items: center;
738
+ color: var(--muted);
739
+ font-size: 12px;
740
+ padding: 8px 0;
741
+ }
742
+ .output-detail {
743
+ margin: 12px 0 0;
744
+ color: var(--muted);
745
+ border-left: 2px solid var(--border);
746
+ padding-left: 10px;
747
+ }
748
+ .output-detail summary {
749
+ display: flex;
750
+ align-items: center;
751
+ gap: 6px;
752
+ cursor: pointer;
753
+ font-size: 12px;
754
+ padding: 4px 0;
755
+ list-style: none;
756
+ }
757
+ .output-detail[open] summary .codicon {
758
+ transform: rotate(90deg);
759
+ }
760
+ .output-detail pre {
761
+ white-space: pre-wrap;
762
+ overflow-wrap: anywhere;
763
+ font: 11px/1.6 var(--vscode-editor-font-family, monospace);
764
+ margin: 8px 0;
765
+ }
766
+ .plan-card {
767
+ border: 1px solid var(--border);
768
+ border-radius: 6px;
769
+ padding: 10px 14px;
770
+ color: inherit;
771
+ cursor: pointer;
772
+ }
773
+ .plan-card summary {
774
+ display: grid;
775
+ grid-template-columns: auto 1fr;
776
+ }
777
+ .plan-card .plan-preview {
778
+ grid-column: 1 / -1;
779
+ }
780
+ .message-output > .message-content + .message-content {
781
+ margin-top: 12px;
782
+ }
783
+ .activity-group {
784
+ margin: 16px 0;
785
+ min-width: 0;
786
+ color: var(--muted);
787
+ }
788
+ .activity-group-summary {
789
+ display: flex;
790
+ align-items: center;
791
+ gap: 8px;
792
+ min-height: 30px;
793
+ cursor: pointer;
794
+ list-style: none;
795
+ font-size: 12px;
796
+ }
797
+ .activity-group-summary > .codicon {
798
+ flex-shrink: 0;
799
+ font-size: 14px;
800
+ }
801
+ .activity-group-title {
802
+ min-width: 0;
803
+ overflow: hidden;
804
+ text-overflow: ellipsis;
805
+ white-space: nowrap;
806
+ }
807
+ .activity-group-summary > .codicon:last-child {
808
+ font-size: 12px;
809
+ }
810
+ .activity-group:not([open]) > summary > .codicon:last-child {
811
+ transform: rotate(-90deg);
812
+ }
813
+ .activity-group.single-activity > summary {
814
+ display: none;
815
+ }
816
+ .activity-list {
817
+ max-height: min(280px, 35vh);
818
+ overflow: auto;
819
+ overscroll-behavior-y: auto;
820
+ scrollbar-width: thin;
821
+ padding: 2px 8px 2px 0;
822
+ }
823
+ .agent-activity-item {
824
+ min-width: 0;
825
+ }
826
+ .agent-activity-item > summary {
827
+ display: flex;
828
+ align-items: center;
829
+ gap: 8px;
830
+ min-height: 30px;
831
+ padding: 4px 0;
832
+ cursor: pointer;
833
+ font-size: 12px;
834
+ list-style: none;
835
+ }
836
+ .activity-icon,
837
+ .activity-state,
838
+ .activity-chevron {
839
+ display: inline-flex;
840
+ align-items: center;
841
+ flex-shrink: 0;
842
+ width: 16px;
843
+ }
844
+ .activity-icon .codicon,
845
+ .activity-state .codicon {
846
+ font-size: 14px;
847
+ }
848
+ .activity-title {
849
+ min-width: 0;
850
+ overflow: hidden;
851
+ text-overflow: ellipsis;
852
+ white-space: nowrap;
853
+ }
854
+ .activity-title:has(.activity-file) {
855
+ display: flex;
856
+ align-items: center;
857
+ gap: 4px;
858
+ }
859
+ .activity-title > span {
860
+ flex-shrink: 0;
861
+ }
862
+ .activity-chevron {
863
+ opacity: 0;
864
+ }
865
+ .activity-chevron .codicon {
866
+ font-size: 12px;
867
+ }
868
+ .agent-activity-item[open] .activity-chevron {
869
+ opacity: 1;
870
+ transform: rotate(90deg);
871
+ }
872
+ .agent-activity-item > summary:hover .activity-chevron,
873
+ .agent-activity-item > summary:focus-within .activity-chevron {
874
+ opacity: 1;
875
+ }
876
+ .activity-state {
877
+ margin-left: auto;
878
+ }
879
+ .activity-state:empty {
880
+ display: none;
881
+ }
882
+ .agent-activity-item[data-state=running] .activity-state .codicon {
883
+ animation: spin 1.2s linear infinite;
884
+ }
885
+ .agent-activity-item[data-state=failed] > summary,
886
+ .activity-error {
887
+ color: var(--vscode-errorForeground);
888
+ }
889
+ .activity-file {
890
+ min-width: 0;
891
+ padding: 0;
892
+ border: 0;
893
+ border-radius: 0;
894
+ background: transparent;
895
+ color: inherit;
896
+ overflow: hidden;
897
+ text-overflow: ellipsis;
898
+ white-space: nowrap;
899
+ text-decoration: underline;
900
+ text-decoration-style: dotted;
901
+ text-underline-offset: 3px;
902
+ }
903
+ .activity-file:hover {
904
+ color: var(--vscode-textLink-foreground);
905
+ }
906
+ .activity-body {
907
+ max-height: 240px;
908
+ overflow: auto;
909
+ padding: 4px 0 10px 24px;
910
+ font-size: 12px;
911
+ scrollbar-width: thin;
912
+ }
913
+ .activity-section {
914
+ padding: 4px 0 8px;
915
+ }
916
+ .activity-section + .activity-section {
917
+ border-top: 1px solid var(--border);
918
+ }
919
+ .activity-section > header {
920
+ display: flex;
921
+ align-items: center;
922
+ justify-content: space-between;
923
+ gap: 8px;
924
+ min-height: 28px;
925
+ }
926
+ .activity-section pre {
927
+ margin: 0;
928
+ white-space: pre-wrap;
929
+ overflow-wrap: anywhere;
930
+ font: 11px/1.6 var(--vscode-editor-font-family, monospace);
931
+ color: var(--vscode-editor-foreground);
932
+ }
933
+ .activity-error pre {
934
+ color: var(--vscode-errorForeground);
935
+ }
936
+ .message-output > .pending {
937
+ display: flex;
938
+ min-width: 0;
939
+ max-width: 100%;
940
+ }
941
+ .message-output > .pending > span:last-child {
942
+ min-width: 0;
943
+ overflow: hidden;
944
+ text-overflow: ellipsis;
945
+ white-space: nowrap;
946
+ }
947
+ .timer-record .timer-duration {
948
+ margin-left: auto;
949
+ min-width: 48px;
950
+ text-align: right;
951
+ font-variant-numeric: tabular-nums;
952
+ }
953
+ .timer-details {
954
+ white-space: pre-line;
955
+ font-size: 12px;
956
+ line-height: 1.6;
957
+ }
958
+ .timer-record[open] summary .codicon {
959
+ transform: none;
960
+ }
961
+ .plain-output {
962
+ white-space: pre-wrap;
963
+ }
964
+ .preview-image {
965
+ cursor: zoom-in;
966
+ }
967
+ .image-preview {
968
+ display: block;
969
+ max-width: 100%;
970
+ max-height: calc(100vh - 148px);
971
+ margin: auto;
972
+ object-fit: contain;
973
+ }
974
+ .plan-preview {
975
+ margin: 6px 0 0;
976
+ font-size: 12px;
977
+ line-height: 1.6;
978
+ color: var(--muted);
979
+ white-space: pre-line;
980
+ overflow-wrap: anywhere;
981
+ pointer-events: none;
982
+ }
983
+ .output-detail audio,
984
+ .output-detail video {
985
+ max-width: 100%;
986
+ width: 100%;
987
+ margin: 12px 0;
988
+ }
989
+ .message-content img {
990
+ max-width: 100%;
991
+ height: auto;
992
+ border-radius: 6px;
993
+ }
994
+ .attachments {
995
+ display: flex;
996
+ flex-wrap: wrap;
997
+ gap: 8px;
998
+ margin: 12px 0;
999
+ }
1000
+ .attachment {
1001
+ display: flex;
1002
+ align-items: center;
1003
+ gap: 8px;
1004
+ max-width: min(260px, 100%);
1005
+ padding: 4px 8px 4px 4px;
1006
+ border: 1px solid var(--border);
1007
+ border-radius: 6px;
1008
+ background: var(--vscode-editor-background);
1009
+ }
1010
+ .attachment > span {
1011
+ min-width: 0;
1012
+ overflow: hidden;
1013
+ text-overflow: ellipsis;
1014
+ white-space: nowrap;
1015
+ font-size: 12px;
1016
+ }
1017
+ .attachment-preview {
1018
+ display: grid;
1019
+ place-items: center;
1020
+ width: 40px;
1021
+ height: 40px;
1022
+ flex-shrink: 0;
1023
+ border: 0;
1024
+ border-radius: 4px;
1025
+ background: var(--vscode-toolbar-hoverBackground);
1026
+ padding: 0;
1027
+ overflow: hidden;
1028
+ }
1029
+ .attachment-preview img {
1030
+ width: 100%;
1031
+ height: 100%;
1032
+ object-fit: cover;
1033
+ }
1034
+ #draft-attachments {
1035
+ padding: 0 16px;
1036
+ }
1037
+ .input-queue {
1038
+ max-height: 20vh;
1039
+ overflow: auto;
1040
+ margin-bottom: 8px;
1041
+ border-top: 1px solid var(--border);
1042
+ }
1043
+ .queue-heading,
1044
+ .queued-input,
1045
+ .editing-queue {
1046
+ display: flex;
1047
+ align-items: center;
1048
+ gap: 4px;
1049
+ min-height: 32px;
1050
+ }
1051
+ .queue-heading {
1052
+ justify-content: space-between;
1053
+ font-size: 11px;
1054
+ color: var(--muted);
1055
+ }
1056
+ .queued-input > span {
1057
+ flex: 1;
1058
+ min-width: 0;
1059
+ white-space: nowrap;
1060
+ overflow: hidden;
1061
+ text-overflow: ellipsis;
1062
+ }
1063
+ .editing-queue {
1064
+ justify-content: space-between;
1065
+ color: var(--muted);
1066
+ font-size: 11px;
1067
+ }
1068
+ .resource-cards {
1069
+ display: flex;
1070
+ flex-wrap: wrap;
1071
+ gap: 8px;
1072
+ margin-top: 12px;
1073
+ }
1074
+ .resource-card {
1075
+ display: flex;
1076
+ align-items: center;
1077
+ gap: 8px;
1078
+ min-width: 0;
1079
+ max-width: 100%;
1080
+ min-height: 36px;
1081
+ padding: 6px 10px;
1082
+ border: 1px solid var(--border);
1083
+ border-radius: 6px;
1084
+ background: var(--vscode-editor-background);
1085
+ text-align: left;
1086
+ }
1087
+ .resource-card > span:not(.codicon) {
1088
+ min-width: 0;
1089
+ overflow: hidden;
1090
+ text-overflow: ellipsis;
1091
+ white-space: nowrap;
1092
+ }
1093
+ .input-prompt {
1094
+ margin: 16px 0;
1095
+ padding: 16px 0;
1096
+ border-top: 1px solid var(--border);
1097
+ border-bottom: 1px solid var(--border);
1098
+ }
1099
+ .input-prompt h2 {
1100
+ font-size: 14px;
1101
+ margin: 0 0 8px;
1102
+ }
1103
+ .input-prompt > header {
1104
+ display: flex;
1105
+ align-items: center;
1106
+ justify-content: space-between;
1107
+ gap: 8px;
1108
+ }
1109
+ .input-prompt pre {
1110
+ white-space: pre-wrap;
1111
+ overflow-wrap: anywhere;
1112
+ font: 12px/1.6 var(--vscode-editor-font-family);
1113
+ }
1114
+ .input-prompt details {
1115
+ margin: 8px 0;
1116
+ }
1117
+ .input-prompt summary {
1118
+ cursor: pointer;
1119
+ color: var(--muted);
1120
+ }
1121
+ .param-file-summary {
1122
+ color: var(--muted);
1123
+ font-size: 12px;
1124
+ overflow-wrap: anywhere;
1125
+ }
1126
+ .input-prompt p {
1127
+ line-height: 1.6;
1128
+ margin: 4px 0 12px;
1129
+ color: var(--muted);
1130
+ overflow-wrap: anywhere;
1131
+ }
1132
+ .input-prompt form,
1133
+ .prompt-field {
1134
+ display: grid;
1135
+ gap: 10px;
1136
+ }
1137
+ .prompt-field > label {
1138
+ font-weight: 500;
1139
+ }
1140
+ .prompt-choice {
1141
+ display: flex;
1142
+ align-items: flex-start;
1143
+ gap: 10px;
1144
+ min-height: 40px;
1145
+ padding: 10px 12px;
1146
+ border: 1px solid var(--border);
1147
+ border-radius: 4px;
1148
+ font-weight: 400 !important;
1149
+ cursor: pointer;
1150
+ }
1151
+ .prompt-choice:has(input:checked) {
1152
+ border-color: var(--vscode-focusBorder);
1153
+ background: var(--vscode-list-inactiveSelectionBackground);
1154
+ }
1155
+ .prompt-choice > span {
1156
+ display: grid;
1157
+ gap: 4px;
1158
+ }
1159
+ .prompt-choice small {
1160
+ color: var(--muted);
1161
+ font-weight: 400;
1162
+ }
1163
+ .input-prompt input:not([type=radio]):not([type=checkbox]),
1164
+ .input-prompt textarea {
1165
+ width: 100%;
1166
+ min-height: 40px;
1167
+ padding: 8px;
1168
+ color: inherit;
1169
+ background: var(--vscode-input-background);
1170
+ border: 1px solid var(--vscode-input-border, var(--border));
1171
+ border-radius: 4px;
1172
+ resize: vertical;
1173
+ }
1174
+ .prompt-navigation {
1175
+ display: flex;
1176
+ align-items: center;
1177
+ flex-wrap: wrap;
1178
+ gap: 8px;
1179
+ }
1180
+ .prompt-button {
1181
+ min-height: 36px;
1182
+ padding: 6px 12px;
1183
+ color: var(--vscode-button-secondaryForeground);
1184
+ background: var(--vscode-button-secondaryBackground);
1185
+ border: 1px solid var(--border);
1186
+ border-radius: 4px;
1187
+ }
1188
+ .plan-approve {
1189
+ width: 100%;
1190
+ text-align: left;
1191
+ }
1192
+ .resolved-inputs {
1193
+ margin: 16px 0;
1194
+ }
1195
+ .resolved-input {
1196
+ margin: 8px 0;
1197
+ padding: 12px;
1198
+ background: var(--vscode-textBlockQuote-background);
1199
+ border-radius: 6px;
1200
+ overflow-wrap: anywhere;
1201
+ }
1202
+ .resolved-input strong {
1203
+ font-size: 12px;
1204
+ font-weight: 500;
1205
+ }
1206
+ .resolved-input p {
1207
+ margin: 4px 0 12px;
1208
+ white-space: pre-wrap;
1209
+ }
1210
+ .conversation-dialog {
1211
+ width: min(640px, calc(100vw - 32px));
1212
+ max-height: calc(100vh - 40px);
1213
+ padding: 0;
1214
+ color: inherit;
1215
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
1216
+ border: 1px solid var(--border);
1217
+ border-radius: 8px;
1218
+ box-shadow: 0 8px 24px #0004;
1219
+ }
1220
+ .conversation-dialog::backdrop {
1221
+ background: #0005;
1222
+ }
1223
+ .conversation-dialog > header {
1224
+ display: flex;
1225
+ align-items: center;
1226
+ gap: 8px;
1227
+ padding: 10px 16px;
1228
+ border-bottom: 1px solid var(--border);
1229
+ }
1230
+ .conversation-dialog h2 {
1231
+ flex: 1;
1232
+ min-width: 0;
1233
+ margin: 0;
1234
+ font-size: 14px;
1235
+ }
1236
+ .dialog-body {
1237
+ max-height: calc(100vh - 108px);
1238
+ overflow: auto;
1239
+ padding: 16px;
1240
+ }
1241
+ .permissions-table {
1242
+ width: 100%;
1243
+ border-collapse: collapse;
1244
+ text-align: left;
1245
+ }
1246
+ .permissions-table td,
1247
+ .permissions-table th {
1248
+ padding: 10px 8px;
1249
+ border-bottom: 1px solid var(--border);
1250
+ overflow-wrap: anywhere;
1251
+ }
1252
+ .permissions-table th {
1253
+ font-weight: 500;
1254
+ white-space: nowrap;
1255
+ }
1256
+ .permissions-table td:first-child {
1257
+ width: 65%;
1258
+ }
1259
+ .permissions-table td:not(:first-child) {
1260
+ text-align: center;
1261
+ }
1262
+ .usage-plan {
1263
+ padding: 12px 0;
1264
+ border-top: 1px solid var(--border);
1265
+ }
1266
+ .usage-plan h3 {
1267
+ margin: 0 0 12px;
1268
+ font-size: 13px;
1269
+ }
1270
+ .usage-plan > div {
1271
+ display: grid;
1272
+ gap: 6px;
1273
+ margin: 12px 0;
1274
+ font-size: 12px;
1275
+ }
1276
+ .usage-plan progress {
1277
+ width: 100%;
1278
+ height: 6px;
1279
+ accent-color: var(--vscode-progressBar-background);
1280
+ }
1281
+ .content-search {
1282
+ position: absolute;
1283
+ top: 4px;
1284
+ right: 16px;
1285
+ z-index: 5;
1286
+ display: flex;
1287
+ align-items: center;
1288
+ gap: 4px;
1289
+ padding: 4px;
1290
+ width: min(360px, calc(100% - 32px));
1291
+ background: var(--vscode-editorWidget-background);
1292
+ border: 1px solid var(--border);
1293
+ border-radius: 4px;
1294
+ box-shadow: 0 4px 16px #0003;
1295
+ }
1296
+ .content-search input {
1297
+ min-width: 0;
1298
+ width: 100%;
1299
+ padding: 6px;
1300
+ color: inherit;
1301
+ background: var(--vscode-input-background);
1302
+ border: 0;
1303
+ }
1304
+ .content-search > span {
1305
+ font-size: 11px;
1306
+ color: var(--muted);
1307
+ flex-shrink: 0;
1308
+ }
1309
+ .message-content mark,
1310
+ .resolved-inputs mark {
1311
+ color: inherit;
1312
+ background: var(--vscode-editor-findMatchHighlightBackground, #eab30855);
1313
+ }
1314
+ .message-content .current-match,
1315
+ .resolved-inputs .current-match {
1316
+ outline: 1px solid var(--vscode-editor-findMatchBorder, #eab308);
1317
+ }
1318
+ .message-error,
1319
+ .error {
1320
+ color: var(--vscode-errorForeground);
1321
+ white-space: pre-wrap;
1322
+ overflow-wrap: anywhere;
1323
+ font-size: 12px;
1324
+ line-height: 1.6;
1325
+ }
1326
+ .latest-button {
1327
+ position: absolute;
1328
+ right: 24px;
1329
+ bottom: 12px;
1330
+ width: 30px;
1331
+ height: 30px;
1332
+ border: 1px solid var(--border);
1333
+ background: var(--vscode-editor-background);
1334
+ box-shadow: 0 2px 6px #0002;
1335
+ }
1336
+ .composer-area {
1337
+ flex-shrink: 0;
1338
+ min-width: 0;
1339
+ padding: 8px 28px 14px;
1340
+ }
1341
+ .composer-area > * {
1342
+ width: 100%;
1343
+ max-width: 820px;
1344
+ margin-inline: auto;
1345
+ }
1346
+ .parameter-login {
1347
+ display: flex;
1348
+ align-items: center;
1349
+ gap: 6px;
1350
+ margin-bottom: 8px;
1351
+ padding: 6px 0;
1352
+ border: none;
1353
+ background: transparent;
1354
+ color: var(--vscode-textLink-foreground);
1355
+ font-size: 12px;
1356
+ }
1357
+ .composer {
1358
+ border: 1px solid var(--vscode-input-border, var(--border));
1359
+ border-radius: 24px;
1360
+ background: var(--vscode-input-background);
1361
+ overflow: hidden;
1362
+ box-shadow: 0 2px 8px #00000004;
1363
+ }
1364
+ .composer:focus-within {
1365
+ border-color: var(--vscode-focusBorder);
1366
+ }
1367
+ textarea {
1368
+ display: block;
1369
+ width: 100%;
1370
+ border: none;
1371
+ background: transparent;
1372
+ color: var(--vscode-input-foreground);
1373
+ padding: 17px 18px 6px;
1374
+ resize: none;
1375
+ min-height: 72px;
1376
+ max-height: 240px;
1377
+ line-height: 1.7;
1378
+ }
1379
+ textarea:focus-visible {
1380
+ outline: none;
1381
+ }
1382
+ textarea::placeholder {
1383
+ color: var(--vscode-input-placeholderForeground);
1384
+ }
1385
+ .composer-toolbar {
1386
+ min-height: 48px;
1387
+ display: flex;
1388
+ align-items: center;
1389
+ justify-content: space-between;
1390
+ gap: 8px;
1391
+ padding: 0 14px 12px;
1392
+ }
1393
+ .run-options,
1394
+ .composer-actions {
1395
+ min-width: 0;
1396
+ display: flex;
1397
+ gap: 10px;
1398
+ align-items: center;
1399
+ }
1400
+ .run-options {
1401
+ flex: 1;
1402
+ }
1403
+ .composer-actions {
1404
+ margin-left: auto;
1405
+ }
1406
+ .run-options select {
1407
+ max-width: 220px;
1408
+ font-size: 11px;
1409
+ }
1410
+ .composer-main-fields {
1411
+ display: grid;
1412
+ grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
1413
+ gap: 14px;
1414
+ max-height: 24vh;
1415
+ overflow: auto;
1416
+ padding: 16px 18px 8px;
1417
+ }
1418
+ .parameter-actions {
1419
+ display: flex;
1420
+ align-items: center;
1421
+ min-width: 0;
1422
+ gap: 4px;
1423
+ overflow-x: auto;
1424
+ scrollbar-width: thin;
1425
+ }
1426
+ .param-action {
1427
+ display: inline-flex;
1428
+ flex-shrink: 0;
1429
+ align-items: center;
1430
+ gap: 6px;
1431
+ max-width: 240px;
1432
+ height: 32px;
1433
+ padding: 0 7px;
1434
+ border: none;
1435
+ border-radius: 4px;
1436
+ background: transparent;
1437
+ color: var(--muted);
1438
+ font-size: 12px;
1439
+ }
1440
+ .param-action:hover:not(:disabled),
1441
+ .param-action[aria-expanded=true] {
1442
+ color: var(--vscode-editor-foreground);
1443
+ background: var(--vscode-toolbar-hoverBackground);
1444
+ }
1445
+ .param-action-label {
1446
+ min-width: 0;
1447
+ overflow: hidden;
1448
+ text-overflow: ellipsis;
1449
+ white-space: nowrap;
1450
+ }
1451
+ .param-action .codicon {
1452
+ flex-shrink: 0;
1453
+ font-size: 13px;
1454
+ }
1455
+ .param-action small {
1456
+ font-size: 10px;
1457
+ }
1458
+ .parameter-popover {
1459
+ position: fixed;
1460
+ z-index: 100;
1461
+ color: var(--vscode-editor-foreground);
1462
+ font-size: 12px;
1463
+ }
1464
+ .parameter-popover[data-kind=auxiliary],
1465
+ .quick-panel {
1466
+ border: 1px solid var(--border);
1467
+ border-radius: 8px;
1468
+ background: var(--vscode-editorWidget-background, var(--vscode-editor-background));
1469
+ box-shadow: 0 8px 24px #0003;
1470
+ overflow: auto;
1471
+ }
1472
+ .parameter-popover-heading {
1473
+ display: flex;
1474
+ align-items: center;
1475
+ justify-content: space-between;
1476
+ gap: 8px;
1477
+ min-height: 40px;
1478
+ padding: 6px 12px;
1479
+ border-bottom: 1px solid var(--border);
1480
+ font-weight: 500;
1481
+ overflow-wrap: anywhere;
1482
+ }
1483
+ .parameter-popover-heading strong {
1484
+ font-weight: 500;
1485
+ }
1486
+ .parameter-popover[data-kind=auxiliary] {
1487
+ display: flex;
1488
+ flex-direction: column;
1489
+ overflow: hidden;
1490
+ }
1491
+ .parameter-popover-heading {
1492
+ flex-shrink: 0;
1493
+ }
1494
+ .parameter-popover-fields {
1495
+ display: grid;
1496
+ gap: 18px;
1497
+ min-height: 0;
1498
+ overflow: auto;
1499
+ padding: 16px;
1500
+ }
1501
+ .parameter-popover[data-kind=quick] {
1502
+ display: grid;
1503
+ grid-template-columns: minmax(0, 1fr);
1504
+ gap: 8px;
1505
+ align-items: end;
1506
+ }
1507
+ .parameter-popover[data-kind=quick]:has(.quick-detail):not([data-compact=true]) {
1508
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
1509
+ }
1510
+ .parameter-popover[data-compact=true] .quick-menu:has(+ .quick-detail) {
1511
+ display: none;
1512
+ }
1513
+ .parameter-popover[data-detail-side=left]:not([data-compact=true]) .quick-detail {
1514
+ grid-column: 1;
1515
+ grid-row: 1;
1516
+ }
1517
+ .parameter-popover[data-detail-side=left]:not([data-compact=true]) .quick-menu {
1518
+ grid-column: 2;
1519
+ grid-row: 1;
1520
+ }
1521
+ .quick-panel {
1522
+ min-width: 0;
1523
+ max-height: inherit;
1524
+ }
1525
+ .quick-param-row,
1526
+ .quick-reset,
1527
+ .quick-detail-heading,
1528
+ .quick-option-row {
1529
+ display: flex;
1530
+ align-items: center;
1531
+ gap: 8px;
1532
+ width: 100%;
1533
+ min-width: 0;
1534
+ min-height: 38px;
1535
+ padding: 9px 12px;
1536
+ border: none;
1537
+ background: transparent;
1538
+ text-align: left;
1539
+ font-size: 12px;
1540
+ }
1541
+ .quick-param-row:hover:not(:disabled),
1542
+ .quick-reset:hover:not(:disabled),
1543
+ .quick-detail-heading:hover,
1544
+ .quick-option-row:hover:not(:disabled) {
1545
+ background: var(--vscode-list-hoverBackground);
1546
+ }
1547
+ .quick-param-row[aria-expanded=true] {
1548
+ background: var(--vscode-list-inactiveSelectionBackground);
1549
+ }
1550
+ .quick-param-row > span:first-child {
1551
+ overflow-wrap: anywhere;
1552
+ }
1553
+ .quick-param-value {
1554
+ margin-left: auto;
1555
+ color: var(--muted);
1556
+ overflow: hidden;
1557
+ white-space: nowrap;
1558
+ text-overflow: ellipsis;
1559
+ max-width: 60%;
1560
+ }
1561
+ .quick-param-row .codicon,
1562
+ .quick-reset .codicon {
1563
+ flex-shrink: 0;
1564
+ color: var(--muted);
1565
+ font-size: 13px;
1566
+ }
1567
+ .quick-reset {
1568
+ border-top: 1px solid var(--border);
1569
+ color: var(--muted);
1570
+ justify-content: space-between;
1571
+ }
1572
+ .quick-detail-heading {
1573
+ border-bottom: 1px solid var(--border);
1574
+ font-weight: 500;
1575
+ }
1576
+ .quick-detail {
1577
+ display: flex;
1578
+ flex-direction: column;
1579
+ }
1580
+ .quick-options-list {
1581
+ overflow: auto;
1582
+ min-height: 0;
1583
+ }
1584
+ .quick-option-check {
1585
+ display: inline-flex;
1586
+ flex-shrink: 0;
1587
+ width: 16px;
1588
+ }
1589
+ .quick-option-copy {
1590
+ min-width: 0;
1591
+ display: flex;
1592
+ flex-direction: column;
1593
+ gap: 4px;
1594
+ overflow-wrap: anywhere;
1595
+ }
1596
+ .quick-option-copy small {
1597
+ font-size: 12px;
1598
+ color: var(--muted);
1599
+ line-height: 1.5;
1600
+ }
1601
+ .send-button {
1602
+ width: 32px;
1603
+ height: 32px;
1604
+ display: flex;
1605
+ align-items: center;
1606
+ justify-content: center;
1607
+ border: none;
1608
+ border-radius: 50%;
1609
+ background: var(--muted, #888);
1610
+ color: var(--vscode-editor-background, #fff);
1611
+ flex-shrink: 0;
1612
+ }
1613
+ .send-button:hover:not(:disabled) {
1614
+ background: color-mix(in srgb, var(--vscode-editor-foreground) 80%, var(--vscode-editor-background));
1615
+ }
1616
+ .send-button.stop {
1617
+ background: var(--muted, #888);
1618
+ }
1619
+ .error {
1620
+ margin: 0 0 10px;
1621
+ }
1622
+ @keyframes spin {
1623
+ to {
1624
+ transform: rotate(360deg);
1625
+ }
1626
+ }
1627
+ @media (prefers-reduced-motion: reduce) {
1628
+ *,
1629
+ *::before {
1630
+ animation: none !important;
1631
+ transition: none !important;
1632
+ }
1633
+ }
1634
+ @media (max-width: 900px) {
1635
+ #app.menu-open {
1636
+ grid-template-columns: 248px minmax(0, 1fr);
1637
+ }
1638
+ .transcript {
1639
+ padding: 18px 22px 8px;
1640
+ }
1641
+ .composer-area {
1642
+ padding: 8px 22px 12px;
1643
+ }
1644
+ }
1645
+ @media (max-width: 680px) {
1646
+ #app.menu-open {
1647
+ grid-template-areas: "menu" "main";
1648
+ grid-template-columns: minmax(0, 1fr);
1649
+ grid-template-rows: auto minmax(0, 1fr);
1650
+ }
1651
+ .menu-open .toolbar {
1652
+ display: none;
1653
+ }
1654
+ .toolbar {
1655
+ padding: 8px 12px;
1656
+ gap: 6px;
1657
+ }
1658
+ .project-title {
1659
+ flex: 1;
1660
+ }
1661
+ .project-name {
1662
+ display: none;
1663
+ }
1664
+ .toolbar-actions {
1665
+ gap: 1px;
1666
+ }
1667
+ .project-menu {
1668
+ max-height: min(220px, 36vh);
1669
+ padding-bottom: 6px;
1670
+ border-right: none;
1671
+ border-bottom: 1px solid var(--border);
1672
+ background: var(--vscode-editor-background);
1673
+ }
1674
+ .menu-heading {
1675
+ min-height: 40px;
1676
+ padding: 6px 12px;
1677
+ font-size: 13px;
1678
+ }
1679
+ .project-menu .session {
1680
+ height: 34px;
1681
+ }
1682
+ .project-menu .all-history {
1683
+ padding: 6px 18px;
1684
+ }
1685
+ #hide-menu .codicon {
1686
+ transform: rotate(90deg);
1687
+ }
1688
+ .transcript {
1689
+ padding: 16px 18px 6px;
1690
+ }
1691
+ .composer-area {
1692
+ padding: 8px 18px 10px;
1693
+ }
1694
+ }
1695
+ @media (max-width: 420px) {
1696
+ .toolbar {
1697
+ padding: 8px;
1698
+ }
1699
+ .project-title {
1700
+ gap: 2px;
1701
+ }
1702
+ h1 {
1703
+ font-size: 13px;
1704
+ }
1705
+ .message {
1706
+ margin-bottom: 22px;
1707
+ }
1708
+ .user .message-body {
1709
+ max-width: 92%;
1710
+ }
1711
+ .transcript {
1712
+ padding: 14px 12px 6px;
1713
+ }
1714
+ .composer-area {
1715
+ padding: 8px 12px 10px;
1716
+ }
1717
+ .user .message-content {
1718
+ padding: 10px 12px;
1719
+ }
1720
+ .run-options select {
1721
+ max-width: 120px;
1722
+ }
1723
+ .param-action {
1724
+ max-width: 190px;
1725
+ }
1726
+ }
1727
+
1728
+ /* src/web/ui/workflow-style.css */
1729
+ .workflow-app .workspace-scroll {
1730
+ flex: 1;
1731
+ overflow: auto;
1732
+ min-height: 0;
1733
+ padding: 12px 28px 28px;
1734
+ }
1735
+ .workflow-app .workflow-entrypoints,
1736
+ .workflow-app .workflow-run {
1737
+ width: 100%;
1738
+ max-width: 960px;
1739
+ margin: 0 auto;
1740
+ }
1741
+ .workflow-app #run-history {
1742
+ flex: 1;
1743
+ min-height: 0;
1744
+ overflow: auto;
1745
+ padding: 0 8px;
1746
+ }
1747
+ .workflow-app .workflow-history-row {
1748
+ height: 60px;
1749
+ flex-direction: column;
1750
+ align-items: stretch;
1751
+ justify-content: center;
1752
+ gap: 5px;
1753
+ }
1754
+ .workflow-app .run-list-meta {
1755
+ display: flex;
1756
+ justify-content: space-between;
1757
+ gap: 8px;
1758
+ color: var(--muted);
1759
+ font-size: 10px;
1760
+ }
1761
+ .run-status[data-status=success] {
1762
+ color: var(--vscode-testing-iconPassed);
1763
+ }
1764
+ .run-status[data-status=failed],
1765
+ .run-status[data-status=timed_out] {
1766
+ color: var(--vscode-errorForeground);
1767
+ }
1768
+ .workflow-group {
1769
+ border-bottom: 1px solid var(--border);
1770
+ padding-bottom: 8px;
1771
+ }
1772
+ .workflow-group > summary {
1773
+ list-style: none;
1774
+ cursor: pointer;
1775
+ padding: 16px 0 8px;
1776
+ font-size: 12px;
1777
+ color: var(--muted);
1778
+ }
1779
+ .workflow-group > summary::before {
1780
+ content: "+";
1781
+ display: inline-block;
1782
+ width: 16px;
1783
+ }
1784
+ .workflow-group[open] > summary::before {
1785
+ content: "-";
1786
+ }
1787
+ .workflow-entry {
1788
+ border-bottom: 1px solid var(--border);
1789
+ }
1790
+ .workflow-group .workflow-entry:last-child {
1791
+ border-bottom: none;
1792
+ }
1793
+ .workflow-entry > summary {
1794
+ display: flex;
1795
+ align-items: center;
1796
+ gap: 10px;
1797
+ padding: 16px 2px;
1798
+ cursor: pointer;
1799
+ font-size: 14px;
1800
+ font-weight: 500;
1801
+ list-style: none;
1802
+ }
1803
+ .workflow-entry > summary > span:not(.codicon) {
1804
+ overflow-wrap: anywhere;
1805
+ }
1806
+ .workflow-entry > summary small {
1807
+ flex-shrink: 0;
1808
+ font-size: 10px;
1809
+ color: var(--muted);
1810
+ font-weight: 400;
1811
+ margin-left: auto;
1812
+ }
1813
+ .workflow-entry[open] > summary > .codicon {
1814
+ transform: rotate(90deg);
1815
+ }
1816
+ .workflow-entry > p {
1817
+ margin: 0 0 16px 28px;
1818
+ color: var(--muted);
1819
+ line-height: 1.6;
1820
+ overflow-wrap: anywhere;
1821
+ }
1822
+ .workflow-form {
1823
+ padding: 0 0 20px 28px;
1824
+ }
1825
+ .workflow-form-top {
1826
+ display: flex;
1827
+ align-items: center;
1828
+ justify-content: space-between;
1829
+ margin-bottom: 16px;
1830
+ }
1831
+ .input-mode {
1832
+ display: inline-flex;
1833
+ border: 1px solid var(--border);
1834
+ border-radius: 4px;
1835
+ overflow: hidden;
1836
+ }
1837
+ .input-mode button {
1838
+ border: 0;
1839
+ background: transparent;
1840
+ padding: 5px 12px;
1841
+ font-size: 12px;
1842
+ color: var(--muted);
1843
+ }
1844
+ .input-mode button[aria-pressed=true] {
1845
+ color: var(--vscode-editor-foreground);
1846
+ background: var(--vscode-list-inactiveSelectionBackground);
1847
+ }
1848
+ .workflow-main-fields {
1849
+ display: grid;
1850
+ grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
1851
+ gap: 20px;
1852
+ }
1853
+ .workflow-form-bottom {
1854
+ display: flex;
1855
+ align-items: center;
1856
+ gap: 8px;
1857
+ margin-top: 20px;
1858
+ }
1859
+ .workflow-form-bottom .parameter-actions {
1860
+ flex: 1;
1861
+ flex-wrap: wrap;
1862
+ overflow: visible;
1863
+ }
1864
+ .workflow-form-bottom .parameter-status {
1865
+ padding: 0;
1866
+ }
1867
+ .workflow-run-button {
1868
+ display: inline-flex;
1869
+ align-items: center;
1870
+ justify-content: center;
1871
+ gap: 7px;
1872
+ min-height: 34px;
1873
+ padding: 6px 16px;
1874
+ border: 1px solid var(--border);
1875
+ border-radius: 4px;
1876
+ background: var(--vscode-button-secondaryBackground);
1877
+ color: inherit;
1878
+ margin-left: auto;
1879
+ }
1880
+ .workflow-run-button:hover:not(:disabled) {
1881
+ background: var(--vscode-toolbar-hoverBackground);
1882
+ }
1883
+ #raw-args {
1884
+ border: 1px solid var(--border);
1885
+ border-radius: 4px;
1886
+ background: var(--vscode-input-background);
1887
+ padding: 12px;
1888
+ min-height: 120px;
1889
+ font-family: var(--vscode-editor-font-family);
1890
+ resize: vertical;
1891
+ }
1892
+ .workflow-active {
1893
+ display: flex;
1894
+ align-items: center;
1895
+ justify-content: space-between;
1896
+ gap: 8px;
1897
+ border-bottom: 1px solid var(--border);
1898
+ padding: 5px 16px;
1899
+ background: var(--vscode-sideBar-background);
1900
+ }
1901
+ .workflow-active-link {
1902
+ border: 0;
1903
+ background: transparent;
1904
+ color: var(--muted);
1905
+ padding: 4px 0;
1906
+ text-align: left;
1907
+ overflow-wrap: anywhere;
1908
+ }
1909
+ .run-heading {
1910
+ display: flex;
1911
+ align-items: flex-start;
1912
+ gap: 12px;
1913
+ justify-content: space-between;
1914
+ padding: 12px 0 20px;
1915
+ }
1916
+ .run-heading > div:first-child {
1917
+ min-width: 0;
1918
+ }
1919
+ .run-heading h2 {
1920
+ font-size: 16px;
1921
+ margin: 0 0 8px;
1922
+ overflow-wrap: anywhere;
1923
+ }
1924
+ #run-meta {
1925
+ color: var(--muted);
1926
+ font-size: 11px;
1927
+ line-height: 1.6;
1928
+ }
1929
+ .run-heading-actions {
1930
+ display: flex;
1931
+ gap: 4px;
1932
+ flex-shrink: 0;
1933
+ }
1934
+ .workflow-tabs {
1935
+ display: flex;
1936
+ gap: 20px;
1937
+ border-bottom: 1px solid var(--border);
1938
+ margin-bottom: 20px;
1939
+ }
1940
+ .workflow-tabs button {
1941
+ border: 0;
1942
+ border-bottom: 2px solid transparent;
1943
+ background: transparent;
1944
+ padding: 8px 2px 10px;
1945
+ color: var(--muted);
1946
+ }
1947
+ .workflow-tabs button[aria-selected=true] {
1948
+ color: var(--vscode-editor-foreground);
1949
+ border-bottom-color: var(--vscode-editor-foreground);
1950
+ }
1951
+ .workflow-app main > .error {
1952
+ padding: 8px 16px 0;
1953
+ }
1954
+ .workflow-file {
1955
+ display: inline-flex;
1956
+ align-items: center;
1957
+ gap: 7px;
1958
+ border: 1px solid var(--border);
1959
+ border-radius: 4px;
1960
+ background: transparent;
1961
+ padding: 8px 10px;
1962
+ max-width: 100%;
1963
+ overflow-wrap: anywhere;
1964
+ text-align: left;
1965
+ }
1966
+ #logs-view {
1967
+ white-space: pre-wrap;
1968
+ overflow-wrap: anywhere;
1969
+ color: var(--muted);
1970
+ font: 12px/1.7 var(--vscode-editor-font-family);
1971
+ }
1972
+ .graph-toolbar {
1973
+ display: flex;
1974
+ align-items: center;
1975
+ gap: 6px;
1976
+ color: var(--muted);
1977
+ }
1978
+ #graph-scale {
1979
+ width: 44px;
1980
+ text-align: center;
1981
+ font-size: 11px;
1982
+ }
1983
+ #graph-viewport {
1984
+ height: min(580px, 58vh);
1985
+ min-height: 220px;
1986
+ overflow: auto;
1987
+ border-bottom: 1px solid var(--border);
1988
+ }
1989
+ #graph-surface {
1990
+ position: relative;
1991
+ transform-origin: top left;
1992
+ }
1993
+ #graph-size {
1994
+ margin-inline: auto;
1995
+ }
1996
+ #graph-surface svg {
1997
+ position: absolute;
1998
+ inset: 0;
1999
+ overflow: visible;
2000
+ }
2001
+ .graph-edge {
2002
+ fill: none;
2003
+ stroke: var(--muted);
2004
+ stroke-width: 1.2;
2005
+ opacity: .65;
2006
+ }
2007
+ #workflow-arrow path {
2008
+ fill: var(--muted);
2009
+ }
2010
+ #graph-surface svg text {
2011
+ fill: var(--muted);
2012
+ font-size: 11px;
2013
+ }
2014
+ .graph-node {
2015
+ position: absolute;
2016
+ display: grid;
2017
+ grid-template-columns: 18px minmax(0, 1fr);
2018
+ gap: 3px 6px;
2019
+ align-content: center;
2020
+ padding: 8px 12px;
2021
+ border: 1px solid var(--border);
2022
+ border-radius: 6px;
2023
+ background: var(--vscode-editor-background);
2024
+ text-align: left;
2025
+ }
2026
+ .graph-node > span:not(.codicon) {
2027
+ min-width: 0;
2028
+ overflow: hidden;
2029
+ text-overflow: ellipsis;
2030
+ white-space: nowrap;
2031
+ }
2032
+ .graph-node > small {
2033
+ grid-column: 2;
2034
+ color: var(--muted);
2035
+ font-size: 10px;
2036
+ }
2037
+ .graph-node[data-status=success] {
2038
+ border-left: 3px solid var(--vscode-testing-iconPassed);
2039
+ }
2040
+ .graph-node[data-status=running] {
2041
+ border-left: 3px solid var(--vscode-focusBorder);
2042
+ }
2043
+ .graph-node[data-status=failed] {
2044
+ border-left: 3px solid var(--vscode-errorForeground);
2045
+ }
2046
+ .graph-node[data-status=running] > .codicon {
2047
+ animation: spin 1s linear infinite;
2048
+ }
2049
+ .graph-branch,
2050
+ .graph-loop {
2051
+ background: var(--vscode-sideBar-background);
2052
+ border-style: dashed;
2053
+ }
2054
+ #graph-diagnostics {
2055
+ padding-top: 12px;
2056
+ color: var(--muted);
2057
+ font-size: 12px;
2058
+ line-height: 1.6;
2059
+ white-space: pre-wrap;
2060
+ overflow-wrap: anywhere;
2061
+ }
2062
+ #history-dialog .history-search {
2063
+ flex: 1;
2064
+ margin: 0;
2065
+ border: 0;
2066
+ padding: 0;
2067
+ }
2068
+ #history-dialog .dialog-body {
2069
+ padding: 8px;
2070
+ }
2071
+ .workflow-app .web-account {
2072
+ margin-top: auto;
2073
+ }
2074
+ @media (max-width: 900px) {
2075
+ .workflow-app .workspace-scroll {
2076
+ padding-inline: 20px;
2077
+ }
2078
+ }
2079
+ @media (max-width: 680px) {
2080
+ .workflow-app .project-menu {
2081
+ max-height: min(240px, 35vh);
2082
+ position: relative;
2083
+ }
2084
+ .workflow-app .workspace-scroll {
2085
+ padding: 8px 16px 20px;
2086
+ }
2087
+ .workflow-app .menu-heading {
2088
+ padding-right: 52px;
2089
+ }
2090
+ .workflow-app #run-history {
2091
+ padding-right: 44px;
2092
+ }
2093
+ .workflow-app .web-account {
2094
+ position: absolute;
2095
+ right: 10px;
2096
+ top: 6px;
2097
+ margin: 0;
2098
+ width: 28px;
2099
+ height: 28px;
2100
+ min-height: 28px;
2101
+ padding: 2px;
2102
+ border: 0;
2103
+ }
2104
+ .workflow-app .web-account-name {
2105
+ display: none;
2106
+ }
2107
+ .workflow-form {
2108
+ padding-left: 0;
2109
+ }
2110
+ .workflow-entry > p {
2111
+ margin-left: 0;
2112
+ }
2113
+ .workflow-main-fields {
2114
+ grid-template-columns: minmax(0, 1fr);
2115
+ }
2116
+ .run-heading {
2117
+ gap: 6px;
2118
+ }
2119
+ .run-heading-actions {
2120
+ gap: 0;
2121
+ }
2122
+ .run-heading h2 {
2123
+ font-size: 14px;
2124
+ }
2125
+ .workflow-entry > summary {
2126
+ font-size: 13px;
2127
+ }
2128
+ .workflow-form-bottom {
2129
+ flex-wrap: wrap;
2130
+ }
2131
+ .workflow-form-bottom .parameter-actions {
2132
+ flex-basis: 100%;
2133
+ }
2134
+ }
2135
+
2136
+ /* src/web/ui/account.css */
2137
+ .web-account {
2138
+ display: flex;
2139
+ align-items: center;
2140
+ gap: 10px;
2141
+ width: calc(100% - 16px);
2142
+ min-width: 0;
2143
+ flex-shrink: 0;
2144
+ margin: auto 8px 8px;
2145
+ padding: 10px;
2146
+ min-height: 44px;
2147
+ border: none;
2148
+ border-top: 1px solid var(--border);
2149
+ border-radius: 4px;
2150
+ background: transparent;
2151
+ text-align: left;
2152
+ }
2153
+ .web-account-name {
2154
+ min-width: 0;
2155
+ overflow: hidden;
2156
+ text-overflow: ellipsis;
2157
+ white-space: nowrap;
2158
+ }
2159
+ .web-account:hover {
2160
+ background: var(--vscode-toolbar-hoverBackground);
2161
+ }
2162
+ .web-avatar,
2163
+ .account-avatar {
2164
+ display: grid;
2165
+ place-items: center;
2166
+ width: 24px;
2167
+ height: 24px;
2168
+ flex-shrink: 0;
2169
+ position: relative;
2170
+ overflow: hidden;
2171
+ border-radius: 50%;
2172
+ background: var(--vscode-button-secondaryBackground);
2173
+ color: var(--vscode-button-secondaryForeground);
2174
+ }
2175
+ .web-avatar img,
2176
+ .account-avatar img {
2177
+ position: absolute;
2178
+ inset: 0;
2179
+ width: 100%;
2180
+ height: 100%;
2181
+ object-fit: cover;
2182
+ }
2183
+ .account-dialog {
2184
+ width: min(460px, calc(100vw - 32px));
2185
+ }
2186
+ .account-body {
2187
+ padding: 24px;
2188
+ font-size: 13px;
2189
+ line-height: 1.6;
2190
+ }
2191
+ .account-body #account-status {
2192
+ margin-bottom: 24px;
2193
+ color: var(--muted);
2194
+ }
2195
+ .account-body #account-status.connected {
2196
+ color: var(--vscode-testing-iconPassed, #16825d);
2197
+ }
2198
+ .account-body form {
2199
+ display: grid;
2200
+ gap: 8px;
2201
+ }
2202
+ .account-body form > label:not(:first-child) {
2203
+ margin-top: 12px;
2204
+ }
2205
+ .account-body input {
2206
+ width: 100%;
2207
+ height: 36px;
2208
+ padding: 6px 10px;
2209
+ }
2210
+ .account-password {
2211
+ position: relative;
2212
+ }
2213
+ .account-password input {
2214
+ padding-right: 40px;
2215
+ }
2216
+ .account-password .icon-button {
2217
+ position: absolute;
2218
+ right: 2px;
2219
+ top: 2px;
2220
+ width: 32px;
2221
+ height: 32px;
2222
+ }
2223
+ .account-actions {
2224
+ display: flex;
2225
+ flex-wrap: wrap;
2226
+ align-items: center;
2227
+ gap: 10px;
2228
+ margin-top: 16px;
2229
+ }
2230
+ .account-primary,
2231
+ .account-secondary {
2232
+ display: inline-flex;
2233
+ align-items: center;
2234
+ justify-content: center;
2235
+ gap: 8px;
2236
+ min-height: 34px;
2237
+ padding: 6px 12px;
2238
+ border: none;
2239
+ border-radius: 4px;
2240
+ }
2241
+ .account-primary {
2242
+ background: var(--vscode-button-background);
2243
+ color: var(--vscode-button-foreground);
2244
+ }
2245
+ .account-primary:hover:not(:disabled) {
2246
+ background: var(--vscode-button-hoverBackground, var(--vscode-button-background));
2247
+ }
2248
+ .account-secondary {
2249
+ background: var(--vscode-button-secondaryBackground);
2250
+ color: var(--vscode-button-secondaryForeground);
2251
+ }
2252
+ .account-secondary:hover:not(:disabled) {
2253
+ background: var(--vscode-button-secondaryHoverBackground, var(--vscode-toolbar-hoverBackground));
2254
+ }
2255
+ .account-identity {
2256
+ display: flex;
2257
+ align-items: center;
2258
+ gap: 16px;
2259
+ padding-bottom: 24px;
2260
+ border-bottom: 1px solid var(--border);
2261
+ }
2262
+ .account-identity > div {
2263
+ min-width: 0;
2264
+ }
2265
+ .account-avatar {
2266
+ width: 48px;
2267
+ height: 48px;
2268
+ }
2269
+ .account-avatar > .codicon {
2270
+ font-size: 28px;
2271
+ }
2272
+ .account-identity h3 {
2273
+ margin: 0;
2274
+ font-size: 15px;
2275
+ font-weight: 500;
2276
+ overflow-wrap: anywhere;
2277
+ }
2278
+ .account-muted {
2279
+ color: var(--muted);
2280
+ overflow-wrap: anywhere;
2281
+ }
2282
+ .account-body dl {
2283
+ display: grid;
2284
+ grid-template-columns: auto minmax(0, 1fr);
2285
+ gap: 12px 16px;
2286
+ margin: 24px 0;
2287
+ }
2288
+ .account-body dt {
2289
+ color: var(--muted);
2290
+ }
2291
+ .account-body dd {
2292
+ margin: 0;
2293
+ overflow-wrap: anywhere;
2294
+ }
2295
+ .account-body #account-error {
2296
+ margin-top: 18px;
2297
+ color: var(--vscode-errorForeground);
2298
+ overflow-wrap: anywhere;
2299
+ }
2300
+ @media (max-width: 680px) {
2301
+ .web-account {
2302
+ margin: 0 8px 4px;
2303
+ min-height: 36px;
2304
+ padding: 6px 10px;
2305
+ }
2306
+ }
2307
+ @media (max-width: 420px) {
2308
+ .account-body {
2309
+ padding: 18px;
2310
+ }
2311
+ }
2312
+
2313
+ /* src/web/ui/connection.css */
2314
+ .connection-banner {
2315
+ display: flex;
2316
+ align-items: center;
2317
+ gap: 10px;
2318
+ flex-shrink: 0;
2319
+ min-width: 0;
2320
+ padding: 12px 20px;
2321
+ border-bottom: 1px solid var(--border);
2322
+ background: var(--vscode-sideBar-background);
2323
+ color: var(--muted);
2324
+ font-size: 12px;
2325
+ line-height: 1.6;
2326
+ }
2327
+ .connection-icon {
2328
+ display: grid;
2329
+ place-items: center;
2330
+ width: 20px;
2331
+ height: 20px;
2332
+ flex-shrink: 0;
2333
+ }
2334
+ .connection-banner[data-status=connecting] .connection-icon .codicon,
2335
+ .connection-banner[data-status=reconnecting] .connection-icon .codicon {
2336
+ animation: spin 1.2s linear infinite;
2337
+ }
2338
+ .connection-copy {
2339
+ display: flex;
2340
+ flex: 1;
2341
+ flex-wrap: wrap;
2342
+ align-items: baseline;
2343
+ gap: 2px 10px;
2344
+ min-width: 0;
2345
+ overflow-wrap: anywhere;
2346
+ }
2347
+ .connection-copy strong {
2348
+ font-weight: 500;
2349
+ color: var(--vscode-editor-foreground);
2350
+ }
2351
+ .connection-retry {
2352
+ display: inline-flex;
2353
+ align-items: center;
2354
+ gap: 6px;
2355
+ flex-shrink: 0;
2356
+ min-height: 30px;
2357
+ padding: 4px 8px;
2358
+ border: none;
2359
+ border-radius: 4px;
2360
+ background: transparent;
2361
+ color: var(--vscode-editor-foreground);
2362
+ font-size: 12px;
2363
+ }
2364
+ .connection-retry:hover:not(:disabled) {
2365
+ background: var(--vscode-toolbar-hoverBackground);
2366
+ }
2367
+ @media (max-width: 680px) {
2368
+ .connection-banner {
2369
+ padding: 10px 12px;
2370
+ align-items: flex-start;
2371
+ }
2372
+ .connection-copy {
2373
+ flex-direction: column;
2374
+ align-items: flex-start;
2375
+ }
2376
+ .connection-retry {
2377
+ margin-top: -3px;
2378
+ }
2379
+ }