buddy-builder 1.4.1

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,1149 @@
1
+ /* ═══ Tool entries (collapsible) ═══════════════════════════════ */
2
+
3
+ .tool-wrap {
4
+ animation: fadeIn 0.15s ease;
5
+ }
6
+
7
+ .tool-entry {
8
+ background: var(--bg-2);
9
+ border: 1px solid var(--border);
10
+ border-radius: var(--radius);
11
+ overflow: hidden;
12
+ font-size: 13px;
13
+ transition: border-color 0.2s, box-shadow 0.2s;
14
+ }
15
+
16
+ .tool-entry:hover {
17
+ border-color: var(--border-strong);
18
+ }
19
+
20
+ .tool-entry[open] {
21
+ border-color: var(--border-strong);
22
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
23
+ }
24
+
25
+ .tool-done {
26
+ border-left: 3px solid var(--success);
27
+ }
28
+
29
+ .tool-blocked {
30
+ background: var(--tool-blocked-bg);
31
+ border-left: 3px solid var(--error);
32
+ border-color: var(--tool-blocked-border);
33
+ }
34
+
35
+ .tool-summary {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: 10px;
39
+ padding: 8px 14px;
40
+ cursor: pointer;
41
+ list-style: none;
42
+ user-select: none;
43
+ font-family: var(--font-mono);
44
+ font-size: 13px;
45
+ }
46
+
47
+ .tool-summary::-webkit-details-marker { display: none; }
48
+
49
+ .tool-summary::before {
50
+ content: "\25B8";
51
+ font-size: 10px;
52
+ color: var(--text-muted);
53
+ transition: transform 0.15s;
54
+ }
55
+
56
+ .tool-entry[open] .tool-summary::before {
57
+ transform: rotate(90deg);
58
+ }
59
+
60
+ .tool-name {
61
+ font-weight: 700;
62
+ color: var(--accent);
63
+ }
64
+
65
+ .tool-detail {
66
+ color: var(--text-muted);
67
+ flex: 1;
68
+ overflow: hidden;
69
+ text-overflow: ellipsis;
70
+ white-space: nowrap;
71
+ }
72
+
73
+ .tool-input {
74
+ padding: 10px 14px;
75
+ border-top: 1px solid var(--border-subtle);
76
+ background: var(--bg-0);
77
+ overflow-x: auto;
78
+ margin: 0;
79
+ font-family: var(--font-mono);
80
+ font-size: 12px;
81
+ line-height: 1.5;
82
+ color: var(--text-secondary);
83
+ }
84
+
85
+ .tool-input code {
86
+ font-family: inherit;
87
+ font-size: inherit;
88
+ }
89
+
90
+ .tool-result {
91
+ padding: 10px 14px;
92
+ border-top: 1px solid var(--border-subtle);
93
+ background: var(--bg-0);
94
+ overflow-x: auto;
95
+ max-height: 300px;
96
+ overflow-y: auto;
97
+ margin: 0;
98
+ font-family: var(--font-mono);
99
+ font-size: 12px;
100
+ line-height: 1.5;
101
+ color: var(--text-muted);
102
+ }
103
+
104
+ .tool-result code {
105
+ font-family: inherit;
106
+ font-size: inherit;
107
+ }
108
+
109
+ /* Tool icon */
110
+
111
+ .tool-icon {
112
+ display: inline-block;
113
+ width: 16px;
114
+ height: 16px;
115
+ flex-shrink: 0;
116
+ position: relative;
117
+ }
118
+
119
+ .tool-icon.spinning::after {
120
+ content: "";
121
+ position: absolute;
122
+ inset: 1px;
123
+ border: 2px solid var(--border);
124
+ border-top-color: var(--accent);
125
+ border-radius: 50%;
126
+ animation: spin 0.7s linear infinite;
127
+ }
128
+
129
+ .tool-icon.done::after {
130
+ content: "\2713";
131
+ position: absolute;
132
+ inset: 0;
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: center;
136
+ font-size: 13px;
137
+ color: var(--success);
138
+ }
139
+
140
+ .tool-icon.blocked::after {
141
+ content: "\2717";
142
+ position: absolute;
143
+ inset: 0;
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ font-size: 13px;
148
+ color: var(--error);
149
+ }
150
+
151
+ .tool-icon.permission {
152
+ background: var(--warning);
153
+ border-radius: 50%;
154
+ }
155
+
156
+ .tool-icon.permission::after {
157
+ content: "?";
158
+ position: absolute;
159
+ inset: 0;
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ font-size: 11px;
164
+ font-weight: 700;
165
+ color: #000;
166
+ }
167
+
168
+ /* Tool grouping */
169
+
170
+ .tool-grouped { margin-top: -6px; }
171
+ .tool-grouped .tool-entry { border-top-left-radius: 0; border-top-right-radius: 0; border-top: 1px dashed var(--border-subtle); }
172
+ .tool-group-first .tool-entry { border-top-left-radius: var(--radius); border-top-right-radius: var(--radius); border-top-style: solid; }
173
+ .tool-group-last .tool-entry { border-bottom-left-radius: var(--radius); border-bottom-right-radius: var(--radius); }
174
+ .tool-solo .tool-entry { border-radius: var(--radius); }
175
+
176
+ /* ─── Tool view tabs (Chrome DevTools style) ─── */
177
+
178
+ .tool-view-tabs {
179
+ display: flex;
180
+ gap: 0;
181
+ border-bottom: 1px solid var(--border-subtle);
182
+ background: var(--bg-2);
183
+ padding: 0 10px;
184
+ }
185
+
186
+ .tool-view-tab {
187
+ padding: 5px 12px;
188
+ border: none;
189
+ background: transparent;
190
+ color: var(--text-muted);
191
+ font-size: 12px;
192
+ font-family: var(--font-mono);
193
+ font-weight: 500;
194
+ cursor: pointer;
195
+ border-bottom: 2px solid transparent;
196
+ transition: color 0.15s, border-color 0.15s;
197
+ margin-bottom: -1px;
198
+ }
199
+
200
+ .tool-view-tab:hover {
201
+ color: var(--text-secondary);
202
+ }
203
+
204
+ .tool-view-tab.active {
205
+ color: var(--accent);
206
+ border-bottom-color: var(--accent);
207
+ }
208
+
209
+ .tool-view-summary {
210
+ display: flex;
211
+ align-items: center;
212
+ gap: 8px;
213
+ padding: 6px 14px;
214
+ cursor: pointer;
215
+ font-size: 13px;
216
+ font-family: var(--font-mono);
217
+ color: var(--text-muted);
218
+ transition: color 0.15s, background 0.15s;
219
+ border-radius: var(--radius);
220
+ background: var(--bg-2);
221
+ border: 1px solid var(--border);
222
+ }
223
+
224
+ .tool-view-summary:hover {
225
+ color: var(--text-secondary);
226
+ border-color: var(--border-strong);
227
+ }
228
+
229
+ .tool-view-summary-icon {
230
+ font-size: 10px;
231
+ color: var(--text-muted);
232
+ flex-shrink: 0;
233
+ }
234
+
235
+ .tool-view-summary-text {
236
+ overflow: hidden;
237
+ text-overflow: ellipsis;
238
+ white-space: nowrap;
239
+ }
240
+
241
+ .tool-view-collapse {
242
+ display: flex;
243
+ align-items: center;
244
+ gap: 6px;
245
+ padding: 4px 14px;
246
+ cursor: pointer;
247
+ color: var(--text-muted);
248
+ font-size: 11px;
249
+ border-bottom: 1px solid var(--border-subtle);
250
+ }
251
+
252
+ .tool-view-collapse:hover {
253
+ color: var(--text-secondary);
254
+ background: var(--hover-bg);
255
+ }
256
+
257
+ .tool-view-collapse-label {
258
+ text-transform: uppercase;
259
+ letter-spacing: 0.04em;
260
+ font-weight: 600;
261
+ }
262
+
263
+ /* ─── Bash command view ─── */
264
+
265
+ .bash-view {
266
+ animation: fadeIn 0.15s ease;
267
+ padding: 10px 14px;
268
+ }
269
+
270
+ .bash-desc {
271
+ display: flex;
272
+ align-items: center;
273
+ gap: 6px;
274
+ margin-bottom: 6px;
275
+ font-size: 12px;
276
+ color: var(--text-secondary);
277
+ font-weight: 500;
278
+ }
279
+ .bash-ok { color: var(--success); font-weight: 700; }
280
+ .bash-err { color: var(--error); font-weight: 700; }
281
+
282
+ /* ── Terminal block ── */
283
+ .bash-terminal {
284
+ background: #0d1117;
285
+ border: 1px solid var(--border-subtle);
286
+ border-radius: var(--radius-sm);
287
+ overflow: hidden;
288
+ }
289
+ .bash-terminal-err {
290
+ border-color: rgba(224, 30, 90, 0.25);
291
+ }
292
+
293
+ .bash-command {
294
+ margin: 0;
295
+ padding: 8px 12px;
296
+ font-family: var(--font-mono);
297
+ font-size: 12px;
298
+ line-height: 1.5;
299
+ color: var(--text);
300
+ overflow-x: auto;
301
+ white-space: pre-wrap;
302
+ word-break: break-all;
303
+ background: transparent;
304
+ }
305
+ .bash-prompt {
306
+ color: var(--success);
307
+ user-select: none;
308
+ }
309
+
310
+ /* ── Output ── */
311
+ .bash-output-wrap {
312
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
313
+ }
314
+
315
+ .bash-output-toggle {
316
+ display: flex;
317
+ align-items: center;
318
+ gap: 6px;
319
+ padding: 5px 12px;
320
+ cursor: pointer;
321
+ font-size: 11px;
322
+ color: var(--text-muted);
323
+ list-style: none;
324
+ user-select: none;
325
+ font-family: var(--font-mono);
326
+ }
327
+ .bash-output-toggle::-webkit-details-marker { display: none; }
328
+ .bash-output-toggle:hover { color: var(--text-secondary); }
329
+
330
+ .bash-output-chevron {
331
+ font-size: 9px;
332
+ width: 10px;
333
+ text-align: center;
334
+ }
335
+
336
+ .bash-output-preview {
337
+ opacity: 0.5;
338
+ overflow: hidden;
339
+ text-overflow: ellipsis;
340
+ white-space: nowrap;
341
+ }
342
+
343
+ .bash-output {
344
+ margin: 0;
345
+ padding: 0 12px 10px;
346
+ font-family: var(--font-mono);
347
+ font-size: 11.5px;
348
+ line-height: 1.45;
349
+ color: var(--text-muted);
350
+ overflow-x: auto;
351
+ white-space: pre-wrap;
352
+ word-break: break-all;
353
+ max-height: 300px;
354
+ overflow-y: auto;
355
+ background: transparent;
356
+ }
357
+
358
+ .bash-stderr-wrap {
359
+ border-top: 1px solid rgba(224, 30, 90, 0.15);
360
+ }
361
+ .bash-stderr {
362
+ margin: 0;
363
+ padding: 6px 12px;
364
+ font-family: var(--font-mono);
365
+ font-size: 11.5px;
366
+ line-height: 1.45;
367
+ color: var(--error);
368
+ white-space: pre-wrap;
369
+ word-break: break-all;
370
+ max-height: 200px;
371
+ overflow-y: auto;
372
+ background: rgba(224, 30, 90, 0.04);
373
+ }
374
+
375
+ .bash-exit-badge {
376
+ padding: 4px 12px;
377
+ font-family: var(--font-mono);
378
+ font-size: 11px;
379
+ color: var(--error);
380
+ border-top: 1px solid rgba(224, 30, 90, 0.15);
381
+ background: rgba(224, 30, 90, 0.06);
382
+ }
383
+
384
+ /* ─── File-ops views (Read / Write / Edit) ─── */
385
+
386
+ .file-op-view {
387
+ animation: fadeIn 0.15s ease;
388
+ padding: 10px 14px;
389
+ }
390
+
391
+ .file-op-path {
392
+ font-family: var(--font-mono);
393
+ font-size: 12px;
394
+ color: var(--accent);
395
+ margin-bottom: 6px;
396
+ display: flex;
397
+ align-items: center;
398
+ gap: 6px;
399
+ }
400
+
401
+ .file-op-badge-new {
402
+ color: var(--success);
403
+ font-weight: 700;
404
+ font-size: 14px;
405
+ }
406
+
407
+ .file-op-toggle {
408
+ display: flex;
409
+ align-items: center;
410
+ gap: 6px;
411
+ padding: 5px 0;
412
+ cursor: pointer;
413
+ font-size: 11px;
414
+ color: var(--text-muted);
415
+ list-style: none;
416
+ user-select: none;
417
+ font-family: var(--font-mono);
418
+ }
419
+ .file-op-toggle::-webkit-details-marker { display: none; }
420
+ .file-op-toggle:hover { color: var(--text-secondary); }
421
+
422
+ .file-op-chevron {
423
+ font-size: 9px;
424
+ width: 10px;
425
+ text-align: center;
426
+ }
427
+
428
+ .file-op-preview {
429
+ opacity: 0.5;
430
+ overflow: hidden;
431
+ text-overflow: ellipsis;
432
+ white-space: nowrap;
433
+ }
434
+
435
+ .file-op-content {
436
+ margin: 0;
437
+ padding: 8px 12px;
438
+ font-family: var(--font-mono);
439
+ font-size: 11.5px;
440
+ line-height: 1.45;
441
+ color: var(--text-muted);
442
+ overflow-x: auto;
443
+ white-space: pre-wrap;
444
+ word-break: break-all;
445
+ max-height: 300px;
446
+ overflow-y: auto;
447
+ background: #0d1117;
448
+ border: 1px solid var(--border-subtle);
449
+ border-radius: var(--radius-sm);
450
+ }
451
+
452
+ .file-op-content-new {
453
+ border-left: 3px solid var(--success);
454
+ }
455
+
456
+ .file-op-diff {
457
+ display: flex;
458
+ flex-direction: column;
459
+ gap: 0;
460
+ border: 1px solid var(--border-subtle);
461
+ border-radius: var(--radius-sm);
462
+ overflow: hidden;
463
+ }
464
+
465
+ .file-op-diff-old {
466
+ margin: 0;
467
+ padding: 8px 12px;
468
+ font-family: var(--font-mono);
469
+ font-size: 11.5px;
470
+ line-height: 1.45;
471
+ white-space: pre-wrap;
472
+ word-break: break-all;
473
+ max-height: 200px;
474
+ overflow-y: auto;
475
+ background: rgba(224, 30, 90, 0.06);
476
+ color: var(--error);
477
+ border-bottom: 1px solid var(--border-subtle);
478
+ }
479
+
480
+ .file-op-diff-new {
481
+ margin: 0;
482
+ padding: 8px 12px;
483
+ font-family: var(--font-mono);
484
+ font-size: 11.5px;
485
+ line-height: 1.45;
486
+ white-space: pre-wrap;
487
+ word-break: break-all;
488
+ max-height: 200px;
489
+ overflow-y: auto;
490
+ background: rgba(43, 172, 118, 0.06);
491
+ color: var(--success);
492
+ }
493
+
494
+ /* ─── Search views (Glob / Grep) ─── */
495
+
496
+ .search-view {
497
+ animation: fadeIn 0.15s ease;
498
+ padding: 10px 14px;
499
+ }
500
+
501
+ .search-header {
502
+ display: flex;
503
+ align-items: center;
504
+ gap: 8px;
505
+ margin-bottom: 6px;
506
+ }
507
+
508
+ .search-icon {
509
+ font-size: 14px;
510
+ }
511
+
512
+ .search-pattern {
513
+ font-family: var(--font-mono);
514
+ font-size: 12px;
515
+ color: var(--warning);
516
+ font-weight: 600;
517
+ }
518
+
519
+ .search-scope {
520
+ font-size: 11px;
521
+ color: var(--text-muted);
522
+ font-family: var(--font-mono);
523
+ }
524
+
525
+ .search-filter {
526
+ font-size: 10px;
527
+ padding: 1px 6px;
528
+ border-radius: 3px;
529
+ background: var(--bg-3);
530
+ color: var(--text-muted);
531
+ font-family: var(--font-mono);
532
+ }
533
+
534
+ .search-toggle {
535
+ display: flex;
536
+ align-items: center;
537
+ gap: 6px;
538
+ padding: 5px 0;
539
+ cursor: pointer;
540
+ font-size: 11px;
541
+ color: var(--text-muted);
542
+ list-style: none;
543
+ user-select: none;
544
+ font-family: var(--font-mono);
545
+ }
546
+ .search-toggle::-webkit-details-marker { display: none; }
547
+ .search-toggle:hover { color: var(--text-secondary); }
548
+
549
+ .search-chevron {
550
+ font-size: 9px;
551
+ width: 10px;
552
+ text-align: center;
553
+ }
554
+
555
+ .search-results {
556
+ max-height: 300px;
557
+ overflow-y: auto;
558
+ }
559
+
560
+ .search-result-file {
561
+ font-family: var(--font-mono);
562
+ font-size: 11.5px;
563
+ color: var(--text-secondary);
564
+ padding: 2px 0;
565
+ overflow: hidden;
566
+ text-overflow: ellipsis;
567
+ white-space: nowrap;
568
+ }
569
+
570
+ .search-content {
571
+ margin: 0;
572
+ padding: 8px 12px;
573
+ font-family: var(--font-mono);
574
+ font-size: 11.5px;
575
+ line-height: 1.45;
576
+ color: var(--text-muted);
577
+ overflow-x: auto;
578
+ white-space: pre-wrap;
579
+ word-break: break-all;
580
+ max-height: 300px;
581
+ overflow-y: auto;
582
+ background: #0d1117;
583
+ border: 1px solid var(--border-subtle);
584
+ border-radius: var(--radius-sm);
585
+ }
586
+
587
+ /* ─── Web views (WebFetch / WebSearch) ─── */
588
+
589
+ .web-view {
590
+ animation: fadeIn 0.15s ease;
591
+ padding: 10px 14px;
592
+ }
593
+
594
+ .web-header {
595
+ display: flex;
596
+ align-items: center;
597
+ gap: 8px;
598
+ margin-bottom: 6px;
599
+ }
600
+
601
+ .web-icon { font-size: 14px; }
602
+
603
+ .web-url {
604
+ font-family: var(--font-mono);
605
+ font-size: 12px;
606
+ color: var(--accent);
607
+ overflow: hidden;
608
+ text-overflow: ellipsis;
609
+ white-space: nowrap;
610
+ }
611
+
612
+ .web-query {
613
+ font-size: 13px;
614
+ font-weight: 600;
615
+ color: var(--text);
616
+ }
617
+
618
+ .web-prompt {
619
+ font-size: 12px;
620
+ color: var(--text-muted);
621
+ margin-bottom: 8px;
622
+ }
623
+
624
+ .web-domains {
625
+ display: flex;
626
+ flex-wrap: wrap;
627
+ gap: 4px;
628
+ margin-bottom: 8px;
629
+ }
630
+
631
+ .web-domain-badge {
632
+ font-size: 10px;
633
+ font-family: var(--font-mono);
634
+ padding: 1px 6px;
635
+ border-radius: 3px;
636
+ background: var(--bg-3);
637
+ color: var(--text-muted);
638
+ }
639
+ .web-domain-allow { color: var(--success); }
640
+ .web-domain-block { color: var(--error); }
641
+
642
+ .web-toggle {
643
+ display: flex;
644
+ align-items: center;
645
+ gap: 6px;
646
+ padding: 5px 0;
647
+ cursor: pointer;
648
+ font-size: 11px;
649
+ color: var(--text-muted);
650
+ list-style: none;
651
+ user-select: none;
652
+ }
653
+ .web-toggle::-webkit-details-marker { display: none; }
654
+ .web-toggle:hover { color: var(--text-secondary); }
655
+
656
+ .web-chevron {
657
+ font-size: 9px;
658
+ width: 10px;
659
+ text-align: center;
660
+ }
661
+
662
+ .web-result {
663
+ font-size: 12px;
664
+ line-height: 1.5;
665
+ color: var(--text-secondary);
666
+ max-height: 300px;
667
+ overflow-y: auto;
668
+ white-space: pre-wrap;
669
+ word-break: break-word;
670
+ }
671
+
672
+ /* ─── Notebook view ─── */
673
+
674
+ .notebook-badge {
675
+ font-size: 10px;
676
+ font-weight: 600;
677
+ text-transform: uppercase;
678
+ padding: 1px 5px;
679
+ border-radius: 3px;
680
+ background: var(--bg-4);
681
+ color: var(--text-muted);
682
+ }
683
+
684
+ .notebook-cell {
685
+ color: var(--text-muted);
686
+ font-size: 11px;
687
+ }
688
+
689
+ .notebook-type {
690
+ color: var(--text-muted);
691
+ font-size: 11px;
692
+ }
693
+
694
+ /* ─── TodoWrite / Task views ─── */
695
+
696
+ .todo-view, .task-view {
697
+ animation: fadeIn 0.15s ease;
698
+ padding: 10px 14px;
699
+ }
700
+
701
+ .todo-header {
702
+ display: flex;
703
+ align-items: center;
704
+ gap: 10px;
705
+ margin-bottom: 8px;
706
+ }
707
+
708
+ .todo-progress-bar {
709
+ flex: 1;
710
+ height: 4px;
711
+ background: var(--bg-4);
712
+ border-radius: 2px;
713
+ overflow: hidden;
714
+ }
715
+
716
+ .todo-progress-fill {
717
+ height: 100%;
718
+ background: var(--success);
719
+ border-radius: 2px;
720
+ transition: width 0.3s ease;
721
+ }
722
+
723
+ .todo-progress-label {
724
+ font-size: 11px;
725
+ color: var(--text-muted);
726
+ font-weight: 600;
727
+ white-space: nowrap;
728
+ font-variant-numeric: tabular-nums;
729
+ }
730
+
731
+ .todo-active {
732
+ display: flex;
733
+ align-items: center;
734
+ gap: 8px;
735
+ padding: 6px 10px;
736
+ margin-bottom: 6px;
737
+ background: var(--accent-bg);
738
+ border-radius: var(--radius-sm);
739
+ font-size: 12px;
740
+ color: var(--accent);
741
+ }
742
+
743
+ .todo-active-text {
744
+ overflow: hidden;
745
+ text-overflow: ellipsis;
746
+ white-space: nowrap;
747
+ }
748
+
749
+ .todo-items {
750
+ display: flex;
751
+ flex-direction: column;
752
+ gap: 2px;
753
+ }
754
+
755
+ .todo-item {
756
+ display: flex;
757
+ align-items: flex-start;
758
+ gap: 8px;
759
+ padding: 3px 0;
760
+ font-size: 13px;
761
+ color: var(--text-secondary);
762
+ }
763
+
764
+ .todo-check {
765
+ width: 16px;
766
+ flex-shrink: 0;
767
+ text-align: center;
768
+ font-size: 12px;
769
+ line-height: 1.4;
770
+ }
771
+
772
+ .todo-completed .todo-check { color: var(--success); }
773
+ .todo-in_progress .todo-check { color: var(--accent); }
774
+ .todo-pending .todo-check { color: var(--text-muted); }
775
+
776
+ .todo-completed .todo-content {
777
+ color: var(--text-muted);
778
+ text-decoration: line-through;
779
+ text-decoration-color: var(--border-strong);
780
+ }
781
+
782
+ .todo-in_progress .todo-content {
783
+ color: var(--text);
784
+ font-weight: 500;
785
+ }
786
+
787
+ /* Task create/update views */
788
+ .task-row {
789
+ display: flex;
790
+ align-items: center;
791
+ gap: 8px;
792
+ font-size: 13px;
793
+ }
794
+
795
+ .task-info {
796
+ display: flex;
797
+ flex-direction: column;
798
+ gap: 2px;
799
+ min-width: 0;
800
+ }
801
+
802
+ .task-subject {
803
+ color: var(--text);
804
+ font-weight: 500;
805
+ }
806
+
807
+ .task-desc {
808
+ font-size: 12px;
809
+ color: var(--text-muted);
810
+ overflow: hidden;
811
+ text-overflow: ellipsis;
812
+ white-space: nowrap;
813
+ }
814
+
815
+ .task-status-badge {
816
+ font-size: 11px;
817
+ font-weight: 600;
818
+ padding: 1px 6px;
819
+ border-radius: 3px;
820
+ margin-left: auto;
821
+ flex-shrink: 0;
822
+ }
823
+
824
+ .task-completed .task-status-badge { color: var(--success); background: rgba(43, 172, 118, 0.12); }
825
+ .task-in_progress .task-status-badge { color: var(--accent); background: var(--accent-bg); }
826
+ .task-deleted .task-status-badge { color: var(--error); background: rgba(224, 30, 90, 0.08); }
827
+
828
+ /* ─── AskUserQuestion ─── */
829
+
830
+ .ask-entry {
831
+ animation: fadeIn 0.15s ease;
832
+ border-radius: var(--radius);
833
+ overflow: hidden;
834
+ }
835
+
836
+ .ask-question {
837
+ padding: 12px 0;
838
+ }
839
+
840
+ .ask-header {
841
+ display: flex;
842
+ align-items: center;
843
+ gap: 10px;
844
+ margin-bottom: 10px;
845
+ }
846
+
847
+ .ask-badge {
848
+ font-size: 11px;
849
+ font-weight: 600;
850
+ text-transform: uppercase;
851
+ letter-spacing: 0.04em;
852
+ color: var(--accent);
853
+ background: var(--accent-bg);
854
+ padding: 2px 8px;
855
+ border-radius: 3px;
856
+ }
857
+
858
+ .ask-text {
859
+ font-size: 14px;
860
+ color: var(--text);
861
+ font-weight: 500;
862
+ }
863
+
864
+ .ask-options {
865
+ display: flex;
866
+ flex-direction: column;
867
+ gap: 6px;
868
+ }
869
+
870
+ .ask-option {
871
+ display: flex;
872
+ flex-direction: column;
873
+ gap: 2px;
874
+ width: 100%;
875
+ padding: 10px 14px;
876
+ border: 1px solid var(--border);
877
+ border-radius: var(--radius);
878
+ background: var(--bg-2);
879
+ cursor: pointer;
880
+ text-align: left;
881
+ font-family: inherit;
882
+ transition: border-color 0.15s, background 0.15s;
883
+ }
884
+
885
+ .ask-option:hover {
886
+ border-color: var(--accent);
887
+ background: var(--accent-bg);
888
+ }
889
+
890
+ .ask-option:disabled {
891
+ cursor: default;
892
+ opacity: 0.6;
893
+ }
894
+
895
+ .ask-option:disabled:hover {
896
+ border-color: var(--border);
897
+ background: var(--bg-2);
898
+ }
899
+
900
+ /* Multi-select variant */
901
+
902
+ .ask-option-multi {
903
+ flex-direction: row;
904
+ align-items: center;
905
+ gap: 10px;
906
+ }
907
+
908
+ .ask-option-multi.selected {
909
+ border-color: var(--accent);
910
+ background: var(--accent-bg);
911
+ }
912
+
913
+ .ask-check {
914
+ width: 20px;
915
+ height: 20px;
916
+ border-radius: 4px;
917
+ border: 2px solid var(--border-strong);
918
+ display: flex;
919
+ align-items: center;
920
+ justify-content: center;
921
+ font-size: 13px;
922
+ color: #fff;
923
+ flex-shrink: 0;
924
+ transition: border-color 0.15s, background 0.15s;
925
+ }
926
+
927
+ .ask-option-multi.selected .ask-check {
928
+ background: var(--accent);
929
+ border-color: var(--accent);
930
+ }
931
+
932
+ .ask-option-body {
933
+ display: flex;
934
+ flex-direction: column;
935
+ gap: 2px;
936
+ min-width: 0;
937
+ }
938
+
939
+ .ask-option-label {
940
+ font-size: 14px;
941
+ font-weight: 600;
942
+ color: #fff;
943
+ }
944
+
945
+ .ask-option-desc {
946
+ font-size: 12px;
947
+ color: var(--text-muted);
948
+ line-height: 1.4;
949
+ }
950
+
951
+ /* Multi-select footer */
952
+
953
+ .ask-multi-footer {
954
+ display: flex;
955
+ align-items: center;
956
+ justify-content: space-between;
957
+ margin-top: 10px;
958
+ }
959
+
960
+ .ask-multi-hint {
961
+ font-size: 12px;
962
+ color: var(--text-muted);
963
+ }
964
+
965
+ .ask-submit {
966
+ padding: 6px 18px;
967
+ border-radius: var(--radius);
968
+ border: none;
969
+ background: var(--accent);
970
+ color: #fff;
971
+ font-weight: 600;
972
+ font-family: inherit;
973
+ font-size: 13px;
974
+ cursor: pointer;
975
+ transition: opacity 0.15s;
976
+ }
977
+
978
+ .ask-submit:hover { opacity: 0.85; }
979
+ .ask-submit:disabled { opacity: 0.3; cursor: not-allowed; }
980
+
981
+ .ask-answer {
982
+ margin-top: 8px;
983
+ padding: 8px 12px;
984
+ background: var(--bg-2);
985
+ border-radius: var(--radius);
986
+ border: 1px solid var(--border-subtle);
987
+ font-size: 13px;
988
+ }
989
+
990
+ .ask-answer-label {
991
+ color: var(--text-muted);
992
+ margin-right: 8px;
993
+ font-weight: 500;
994
+ }
995
+
996
+ .ask-answer-value {
997
+ color: var(--text);
998
+ }
999
+
1000
+ /* ═══ Tool permission prompt ═══════════════════════════════════ */
1001
+
1002
+ .permission-prompt {
1003
+ animation: fadeIn 0.15s ease;
1004
+ padding: 12px 16px;
1005
+ border-radius: var(--radius);
1006
+ border: 1px solid var(--warning);
1007
+ background: color-mix(in srgb, var(--warning) 8%, var(--bg-2));
1008
+ }
1009
+
1010
+ .permission-header {
1011
+ display: flex;
1012
+ align-items: center;
1013
+ gap: 8px;
1014
+ font-size: 13px;
1015
+ color: var(--text);
1016
+ }
1017
+
1018
+ .permission-icon {
1019
+ display: flex;
1020
+ align-items: center;
1021
+ color: var(--warning);
1022
+ flex-shrink: 0;
1023
+ }
1024
+
1025
+ .permission-label strong {
1026
+ color: var(--text);
1027
+ }
1028
+
1029
+ .permission-input {
1030
+ margin: 8px 0 0;
1031
+ padding: 8px 10px;
1032
+ background: var(--bg-1);
1033
+ border-radius: 4px;
1034
+ font-size: 11px;
1035
+ font-family: var(--font-mono, monospace);
1036
+ color: var(--text-muted);
1037
+ white-space: pre-wrap;
1038
+ word-break: break-all;
1039
+ max-height: 120px;
1040
+ overflow-y: auto;
1041
+ line-height: 1.5;
1042
+ }
1043
+
1044
+ .permission-actions {
1045
+ display: flex;
1046
+ gap: 8px;
1047
+ margin-top: 10px;
1048
+ }
1049
+
1050
+ .permission-btn {
1051
+ padding: 5px 16px;
1052
+ border: 1px solid var(--border);
1053
+ border-radius: var(--radius);
1054
+ font-size: 12px;
1055
+ font-weight: 600;
1056
+ font-family: inherit;
1057
+ cursor: pointer;
1058
+ transition: background 0.15s, border-color 0.15s;
1059
+ }
1060
+
1061
+ .permission-allow {
1062
+ background: var(--accent);
1063
+ color: #fff;
1064
+ border-color: var(--accent);
1065
+ }
1066
+
1067
+ .permission-allow:hover {
1068
+ filter: brightness(1.1);
1069
+ }
1070
+
1071
+ .permission-allow-all {
1072
+ background: transparent;
1073
+ color: var(--accent);
1074
+ border-color: var(--accent);
1075
+ }
1076
+
1077
+ .permission-allow-all:hover {
1078
+ background: color-mix(in srgb, var(--accent) 12%, transparent);
1079
+ }
1080
+
1081
+ .permission-deny {
1082
+ background: var(--bg-3);
1083
+ color: var(--text-muted);
1084
+ }
1085
+
1086
+ .permission-deny:hover {
1087
+ border-color: var(--text-muted);
1088
+ color: var(--text);
1089
+ }
1090
+
1091
+ .permission-denied {
1092
+ margin-top: 8px;
1093
+ font-size: 12px;
1094
+ color: var(--text-muted);
1095
+ font-style: italic;
1096
+ }
1097
+
1098
+ .permission-done .permission-header {
1099
+ color: var(--text-muted);
1100
+ }
1101
+
1102
+ .permission-blocked .permission-header {
1103
+ opacity: 0.7;
1104
+ }
1105
+
1106
+ /* ═══ Agent / sub-agent view ════════════════════════════════════ */
1107
+
1108
+ .agent-view {
1109
+ border-top: 1px solid var(--border-subtle);
1110
+ max-height: 500px;
1111
+ overflow-y: auto;
1112
+ padding: 4px 0;
1113
+ }
1114
+
1115
+ .agent-view .msg-row {
1116
+ padding: 2px 14px;
1117
+ max-width: none;
1118
+ }
1119
+
1120
+ .agent-view .msg-row-first {
1121
+ padding-top: 6px;
1122
+ margin-top: 2px;
1123
+ }
1124
+
1125
+ .agent-view .msg-avatar {
1126
+ width: 24px;
1127
+ height: 24px;
1128
+ font-size: 12px;
1129
+ border-radius: 6px;
1130
+ }
1131
+
1132
+ .agent-view .msg-avatar svg {
1133
+ width: 12px;
1134
+ height: 12px;
1135
+ }
1136
+
1137
+ .agent-view .msg-timestamp-hover {
1138
+ min-width: 24px;
1139
+ }
1140
+
1141
+ .agent-view-empty {
1142
+ display: flex;
1143
+ align-items: center;
1144
+ gap: 10px;
1145
+ padding: 12px 14px;
1146
+ color: var(--text-muted);
1147
+ font-size: 13px;
1148
+ border-top: 1px solid var(--border-subtle);
1149
+ }