@agent-link/server 0.1.162 → 0.1.164

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,1277 @@
1
+ /* ══════════════════════════════════════════
2
+ Team Mode
3
+ ══════════════════════════════════════════ */
4
+
5
+ /* ── Team mode toggle ── */
6
+ .team-mode-toggle {
7
+ display: flex;
8
+ gap: 2px;
9
+ background: var(--bg-tertiary);
10
+ border-radius: 6px;
11
+ padding: 2px;
12
+ margin-left: 8px;
13
+ }
14
+
15
+ .team-mode-btn {
16
+ padding: 4px 14px;
17
+ border: none;
18
+ border-radius: 4px;
19
+ background: none;
20
+ color: var(--text-secondary);
21
+ font-size: 0.75rem;
22
+ font-weight: 500;
23
+ cursor: pointer;
24
+ transition: all 0.15s;
25
+ }
26
+
27
+ .team-mode-btn.active {
28
+ background: var(--bg-secondary);
29
+ color: var(--text-primary);
30
+ box-shadow: 0 1px 2px rgba(0,0,0,0.15);
31
+ }
32
+
33
+ .team-mode-btn:hover:not(.active) {
34
+ color: var(--text-primary);
35
+ }
36
+
37
+ .team-mode-select {
38
+ display: none;
39
+ padding: 4px 8px;
40
+ border: 1px solid var(--border);
41
+ border-radius: 6px;
42
+ background: var(--bg-tertiary);
43
+ color: var(--text-primary);
44
+ font-size: 0.75rem;
45
+ font-weight: 500;
46
+ cursor: pointer;
47
+ }
48
+
49
+ /* ── Team create panel ── */
50
+ .team-create-panel {
51
+ flex: 1;
52
+ display: flex;
53
+ align-items: flex-start;
54
+ justify-content: center;
55
+ padding: 2rem;
56
+ overflow-y: auto;
57
+ }
58
+
59
+ .team-create-inner {
60
+ max-width: 560px;
61
+ width: 100%;
62
+ }
63
+
64
+ .team-create-header {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 10px;
68
+ margin-bottom: 8px;
69
+ color: var(--text-primary);
70
+ }
71
+
72
+ .team-create-header h2 {
73
+ font-size: 1.25rem;
74
+ font-weight: 600;
75
+ }
76
+
77
+ .team-create-desc {
78
+ font-size: 0.85rem;
79
+ color: var(--text-secondary);
80
+ margin-bottom: 16px;
81
+ line-height: 1.4;
82
+ }
83
+
84
+ /* ── Template selector ── */
85
+ .team-tpl-section {
86
+ margin-bottom: 14px;
87
+ }
88
+ .team-tpl-label {
89
+ display: block;
90
+ font-size: 0.8rem;
91
+ font-weight: 600;
92
+ color: var(--text-secondary);
93
+ margin-bottom: 6px;
94
+ text-transform: uppercase;
95
+ letter-spacing: 0.03em;
96
+ }
97
+ .team-tpl-select {
98
+ width: 100%;
99
+ padding: 8px 10px;
100
+ border: 1px solid var(--border);
101
+ border-radius: 6px;
102
+ background: var(--bg-secondary);
103
+ color: var(--text-primary);
104
+ font-size: 0.9rem;
105
+ font-family: inherit;
106
+ cursor: pointer;
107
+ appearance: auto;
108
+ }
109
+ .team-tpl-select:focus {
110
+ outline: none;
111
+ border-color: var(--accent);
112
+ }
113
+ .team-tpl-desc {
114
+ display: block;
115
+ font-size: 0.78rem;
116
+ color: var(--text-secondary);
117
+ margin-top: 4px;
118
+ }
119
+
120
+ /* ── Collapsible lead prompt ── */
121
+ .team-lead-prompt-section {
122
+ margin-bottom: 14px;
123
+ border: 1px solid var(--border);
124
+ border-radius: 8px;
125
+ overflow: hidden;
126
+ }
127
+ .team-lead-prompt-header {
128
+ display: flex;
129
+ align-items: center;
130
+ gap: 6px;
131
+ padding: 8px 10px;
132
+ cursor: pointer;
133
+ user-select: none;
134
+ background: var(--bg-secondary);
135
+ }
136
+ .team-lead-prompt-header:hover {
137
+ background: var(--bg-hover);
138
+ }
139
+ .team-lead-prompt-arrow {
140
+ transition: transform 0.15s;
141
+ flex-shrink: 0;
142
+ color: var(--text-secondary);
143
+ }
144
+ .team-lead-prompt-arrow.expanded {
145
+ transform: rotate(90deg);
146
+ }
147
+ .team-lead-prompt-title {
148
+ font-size: 0.8rem;
149
+ font-weight: 600;
150
+ color: var(--text-secondary);
151
+ text-transform: uppercase;
152
+ letter-spacing: 0.03em;
153
+ flex-shrink: 0;
154
+ }
155
+ .team-lead-prompt-preview {
156
+ font-size: 0.78rem;
157
+ color: var(--text-tertiary, #666);
158
+ overflow: hidden;
159
+ text-overflow: ellipsis;
160
+ white-space: nowrap;
161
+ margin-left: 8px;
162
+ }
163
+ .team-lead-prompt-body {
164
+ padding: 8px 10px;
165
+ border-top: 1px solid var(--border);
166
+ }
167
+ .team-lead-prompt-textarea {
168
+ width: 100%;
169
+ padding: 10px;
170
+ border: 1px solid var(--border);
171
+ border-radius: 6px;
172
+ background: var(--bg-primary);
173
+ color: var(--text-primary);
174
+ font-size: 0.82rem;
175
+ font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
176
+ resize: vertical;
177
+ min-height: 160px;
178
+ line-height: 1.5;
179
+ }
180
+ .team-lead-prompt-textarea:focus {
181
+ outline: none;
182
+ border-color: var(--accent);
183
+ }
184
+ .team-lead-prompt-actions {
185
+ display: flex;
186
+ justify-content: flex-end;
187
+ margin-top: 6px;
188
+ }
189
+ .team-lead-prompt-reset {
190
+ padding: 4px 12px;
191
+ border: 1px solid var(--border);
192
+ border-radius: 4px;
193
+ background: transparent;
194
+ color: var(--text-secondary);
195
+ font-size: 0.78rem;
196
+ cursor: pointer;
197
+ transition: all 0.15s;
198
+ }
199
+ .team-lead-prompt-reset:hover {
200
+ color: var(--text-primary);
201
+ border-color: var(--text-secondary);
202
+ }
203
+
204
+ .team-create-textarea {
205
+ width: 100%;
206
+ padding: 12px;
207
+ border: 1px solid var(--border);
208
+ border-radius: 8px;
209
+ background: var(--bg-secondary);
210
+ color: var(--text-primary);
211
+ font-size: 0.9rem;
212
+ font-family: inherit;
213
+ resize: vertical;
214
+ min-height: 100px;
215
+ line-height: 1.4;
216
+ }
217
+
218
+ .team-create-textarea:focus {
219
+ outline: none;
220
+ border-color: var(--accent);
221
+ }
222
+
223
+ .team-create-actions {
224
+ display: flex;
225
+ gap: 8px;
226
+ margin-top: 12px;
227
+ }
228
+
229
+ .team-create-launch {
230
+ display: flex;
231
+ align-items: center;
232
+ gap: 6px;
233
+ padding: 8px 18px;
234
+ border: none;
235
+ border-radius: 6px;
236
+ background: var(--accent);
237
+ color: #fff;
238
+ font-size: 0.85rem;
239
+ font-weight: 500;
240
+ cursor: pointer;
241
+ transition: background 0.15s;
242
+ }
243
+
244
+ .team-create-launch:hover:not(:disabled) {
245
+ background: var(--accent-hover);
246
+ }
247
+
248
+ .team-create-launch:disabled {
249
+ opacity: 0.4;
250
+ cursor: not-allowed;
251
+ }
252
+
253
+ .team-create-cancel {
254
+ padding: 8px 18px;
255
+ border: 1px solid var(--border);
256
+ border-radius: 6px;
257
+ background: none;
258
+ color: var(--text-secondary);
259
+ font-size: 0.85rem;
260
+ cursor: pointer;
261
+ transition: all 0.15s;
262
+ }
263
+
264
+ .team-create-cancel:hover {
265
+ color: var(--text-primary);
266
+ border-color: var(--text-secondary);
267
+ }
268
+
269
+ /* ── Example instructions ── */
270
+ .team-examples-section {
271
+ margin-top: 20px;
272
+ }
273
+
274
+ .team-examples-header {
275
+ font-size: 0.78rem;
276
+ font-weight: 600;
277
+ color: var(--text-secondary);
278
+ text-transform: uppercase;
279
+ letter-spacing: 0.04em;
280
+ margin-bottom: 8px;
281
+ }
282
+
283
+ .team-examples-list {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: 8px;
287
+ }
288
+
289
+ .team-example-card {
290
+ display: flex;
291
+ align-items: flex-start;
292
+ gap: 12px;
293
+ padding: 14px 16px;
294
+ border: 1px solid var(--border);
295
+ border-radius: 10px;
296
+ transition: all 0.15s;
297
+ background: linear-gradient(135deg, rgba(255,255,255,0.02) 0%, transparent 100%);
298
+ }
299
+
300
+ .team-example-card:hover {
301
+ border-color: rgba(59,130,246,0.3);
302
+ background: linear-gradient(135deg, rgba(59,130,246,0.06) 0%, rgba(59,130,246,0.02) 100%);
303
+ }
304
+
305
+ .team-example-icon {
306
+ flex-shrink: 0;
307
+ width: 36px;
308
+ height: 36px;
309
+ display: flex;
310
+ align-items: center;
311
+ justify-content: center;
312
+ border-radius: 8px;
313
+ background: rgba(59,130,246,0.1);
314
+ color: var(--accent);
315
+ margin-top: 1px;
316
+ }
317
+
318
+ .team-example-card:nth-child(2) .team-example-icon {
319
+ background: rgba(16,185,129,0.1);
320
+ color: #10B981;
321
+ }
322
+
323
+ .team-example-card:nth-child(3) .team-example-icon {
324
+ background: rgba(139,92,246,0.1);
325
+ color: #8B5CF6;
326
+ }
327
+
328
+ .team-example-body {
329
+ flex: 1;
330
+ min-width: 0;
331
+ }
332
+
333
+ .team-example-title {
334
+ font-size: 0.8rem;
335
+ font-weight: 600;
336
+ color: var(--text-primary);
337
+ margin-bottom: 4px;
338
+ }
339
+
340
+ .team-example-text {
341
+ font-size: 0.74rem;
342
+ color: var(--text-secondary);
343
+ line-height: 1.5;
344
+ }
345
+
346
+ .team-example-try {
347
+ flex-shrink: 0;
348
+ align-self: center;
349
+ padding: 6px 16px;
350
+ font-size: 0.74rem;
351
+ font-weight: 500;
352
+ color: var(--accent);
353
+ background: transparent;
354
+ border: 1px solid var(--accent);
355
+ border-radius: 6px;
356
+ cursor: pointer;
357
+ transition: all 0.15s;
358
+ white-space: nowrap;
359
+ }
360
+
361
+ .team-example-try:hover {
362
+ background: var(--accent);
363
+ color: #fff;
364
+ }
365
+
366
+ /* ── Historical teams in create panel ── */
367
+ .team-history-section {
368
+ margin-top: 20px;
369
+ border-top: 1px solid var(--border);
370
+ padding-top: 16px;
371
+ }
372
+
373
+ .team-history-section-header {
374
+ font-size: 0.8rem;
375
+ font-weight: 600;
376
+ text-transform: uppercase;
377
+ letter-spacing: 0.03em;
378
+ color: var(--text-secondary);
379
+ margin-bottom: 8px;
380
+ }
381
+
382
+ .team-history-section .team-history-list {
383
+ max-height: 200px;
384
+ overflow-y: auto;
385
+ border: 1px solid var(--border);
386
+ border-radius: 6px;
387
+ background: var(--bg-secondary);
388
+ }
389
+
390
+ /* ── Team dashboard ── */
391
+ .team-dashboard {
392
+ flex: 1;
393
+ display: flex;
394
+ flex-direction: column;
395
+ min-height: 0;
396
+ overflow: hidden;
397
+ }
398
+
399
+ .team-dash-header {
400
+ display: flex;
401
+ flex-direction: column;
402
+ padding: 12px 20px;
403
+ border-bottom: 1px solid var(--border);
404
+ flex-shrink: 0;
405
+ gap: 8px;
406
+ }
407
+
408
+ .team-dash-header-top {
409
+ display: flex;
410
+ align-items: center;
411
+ justify-content: space-between;
412
+ }
413
+
414
+ .team-dash-header-left {
415
+ display: flex;
416
+ align-items: center;
417
+ gap: 10px;
418
+ }
419
+
420
+ .team-dash-instruction {
421
+ position: relative;
422
+ }
423
+
424
+ .team-dash-instruction-text {
425
+ font-size: 0.92rem;
426
+ line-height: 1.5;
427
+ color: var(--text);
428
+ white-space: pre-wrap;
429
+ word-break: break-word;
430
+ overflow: hidden;
431
+ display: -webkit-box;
432
+ -webkit-box-orient: vertical;
433
+ -webkit-line-clamp: 3;
434
+ }
435
+
436
+ .team-dash-instruction.expanded .team-dash-instruction-text {
437
+ -webkit-line-clamp: unset;
438
+ display: block;
439
+ }
440
+
441
+ .team-dash-instruction-toggle {
442
+ background: none;
443
+ border: none;
444
+ color: var(--accent);
445
+ cursor: pointer;
446
+ font-size: 0.78rem;
447
+ padding: 2px 0;
448
+ margin-top: 2px;
449
+ }
450
+
451
+ .team-dash-instruction-toggle:hover {
452
+ text-decoration: underline;
453
+ }
454
+
455
+ .team-status-badge {
456
+ display: inline-block;
457
+ padding: 2px 8px;
458
+ border-radius: 10px;
459
+ font-size: 0.7rem;
460
+ font-weight: 500;
461
+ text-transform: uppercase;
462
+ letter-spacing: 0.03em;
463
+ }
464
+
465
+ .team-status-planning {
466
+ background: rgba(234,179,8,0.15);
467
+ color: #eab308;
468
+ }
469
+
470
+ .team-status-running {
471
+ background: rgba(59,130,246,0.15);
472
+ color: #3b82f6;
473
+ }
474
+
475
+ .team-status-summarizing {
476
+ background: rgba(139,92,246,0.15);
477
+ color: #8b5cf6;
478
+ }
479
+
480
+ .team-status-completed {
481
+ background: rgba(16,185,129,0.15);
482
+ color: #10b981;
483
+ }
484
+
485
+ .team-status-failed {
486
+ background: rgba(239,68,68,0.15);
487
+ color: #ef4444;
488
+ }
489
+
490
+ .team-dash-header-right {
491
+ display: flex;
492
+ gap: 8px;
493
+ }
494
+
495
+ .team-dissolve-btn {
496
+ padding: 5px 12px;
497
+ border: 1px solid var(--error);
498
+ border-radius: 5px;
499
+ background: none;
500
+ color: var(--error);
501
+ font-size: 0.8rem;
502
+ cursor: pointer;
503
+ transition: all 0.15s;
504
+ }
505
+
506
+ .team-dissolve-btn:hover {
507
+ background: rgba(212,84,84,0.1);
508
+ }
509
+
510
+ .team-back-btn {
511
+ padding: 5px 12px;
512
+ border: 1px solid var(--border);
513
+ border-radius: 5px;
514
+ background: none;
515
+ color: var(--text-secondary);
516
+ font-size: 0.8rem;
517
+ cursor: pointer;
518
+ transition: all 0.15s;
519
+ }
520
+
521
+ .team-back-btn:hover {
522
+ color: var(--text-primary);
523
+ border-color: var(--text-secondary);
524
+ }
525
+
526
+ .team-new-btn {
527
+ padding: 5px 12px;
528
+ border: 1px solid var(--accent);
529
+ border-radius: 5px;
530
+ background: none;
531
+ color: var(--accent);
532
+ font-size: 0.8rem;
533
+ cursor: pointer;
534
+ transition: all 0.15s;
535
+ }
536
+
537
+ .team-new-btn:hover {
538
+ background: rgba(59,130,246,0.1);
539
+ }
540
+
541
+ /* ── Lead status bar ── */
542
+ .team-lead-bar {
543
+ display: flex;
544
+ align-items: center;
545
+ gap: 8px;
546
+ padding: 8px 16px;
547
+ background: var(--bg-secondary);
548
+ border-bottom: 1px solid var(--border);
549
+ font-size: 0.8rem;
550
+ flex-shrink: 0;
551
+ }
552
+ .team-lead-bar-clickable {
553
+ cursor: pointer;
554
+ transition: background 0.15s;
555
+ }
556
+ .team-lead-bar-clickable:hover {
557
+ background: var(--bg-hover);
558
+ }
559
+
560
+ .team-lead-dot {
561
+ width: 8px;
562
+ height: 8px;
563
+ border-radius: 50%;
564
+ background: var(--accent);
565
+ flex-shrink: 0;
566
+ animation: agent-pulse 1.5s ease-in-out infinite;
567
+ }
568
+
569
+ .team-lead-label {
570
+ font-weight: 600;
571
+ color: var(--accent);
572
+ text-transform: uppercase;
573
+ font-size: 0.7rem;
574
+ letter-spacing: 0.03em;
575
+ }
576
+
577
+ .team-lead-text {
578
+ color: var(--text-primary);
579
+ overflow: hidden;
580
+ text-overflow: ellipsis;
581
+ white-space: nowrap;
582
+ }
583
+
584
+ /* ── Dashboard body ── */
585
+ .team-dash-body {
586
+ flex: 1;
587
+ display: flex;
588
+ min-height: 0;
589
+ overflow: hidden;
590
+ }
591
+
592
+ .team-dash-main {
593
+ flex: 1;
594
+ overflow-y: auto;
595
+ padding: 16px 20px;
596
+ display: flex;
597
+ flex-direction: column;
598
+ gap: 20px;
599
+ }
600
+
601
+ /* ── Kanban board ── */
602
+ .team-kanban-section {
603
+ border: 1px solid var(--border);
604
+ border-radius: 8px;
605
+ background: var(--bg-secondary);
606
+ flex-shrink: 0;
607
+ }
608
+
609
+ .team-kanban-section-header {
610
+ display: flex;
611
+ align-items: center;
612
+ gap: 6px;
613
+ padding: 8px 12px;
614
+ cursor: pointer;
615
+ user-select: none;
616
+ font-size: 0.8rem;
617
+ font-weight: 600;
618
+ text-transform: uppercase;
619
+ letter-spacing: 0.03em;
620
+ color: var(--text-secondary);
621
+ transition: background 0.15s;
622
+ }
623
+ .team-kanban-section-header:hover {
624
+ background: var(--bg-tertiary);
625
+ }
626
+ .team-kanban-section-toggle {
627
+ font-size: 0.65rem;
628
+ color: var(--text-secondary);
629
+ }
630
+ .team-kanban-section-summary {
631
+ margin-left: auto;
632
+ font-size: 0.72rem;
633
+ font-weight: 400;
634
+ color: var(--text-secondary);
635
+ opacity: 0.8;
636
+ }
637
+
638
+ .team-kanban {
639
+ display: flex;
640
+ gap: 12px;
641
+ min-height: 0;
642
+ flex-shrink: 0;
643
+ padding: 0 8px 8px;
644
+ }
645
+
646
+ .team-kanban-col {
647
+ flex: 1;
648
+ min-width: 0;
649
+ display: flex;
650
+ flex-direction: column;
651
+ background: var(--bg-secondary);
652
+ border-radius: 8px;
653
+ border: 1px solid var(--border);
654
+ }
655
+
656
+ .team-kanban-col-header {
657
+ display: flex;
658
+ align-items: center;
659
+ gap: 6px;
660
+ padding: 10px 12px;
661
+ font-size: 0.8rem;
662
+ font-weight: 600;
663
+ text-transform: uppercase;
664
+ letter-spacing: 0.03em;
665
+ color: var(--text-secondary);
666
+ border-bottom: 1px solid var(--border);
667
+ }
668
+
669
+ .team-kanban-col-dot {
670
+ width: 8px;
671
+ height: 8px;
672
+ border-radius: 50%;
673
+ flex-shrink: 0;
674
+ }
675
+
676
+ .team-kanban-col-dot.pending { background: var(--text-secondary); }
677
+ .team-kanban-col-dot.active { background: var(--accent); }
678
+ .team-kanban-col-dot.done { background: var(--success); }
679
+ .team-kanban-col-dot.failed { background: var(--error); }
680
+
681
+ .team-kanban-col-count {
682
+ margin-left: auto;
683
+ background: var(--bg-tertiary);
684
+ padding: 1px 6px;
685
+ border-radius: 8px;
686
+ font-size: 0.7rem;
687
+ }
688
+
689
+ .team-kanban-col-body {
690
+ padding: 8px;
691
+ display: flex;
692
+ flex-direction: column;
693
+ gap: 6px;
694
+ overflow-y: auto;
695
+ max-height: 160px;
696
+ }
697
+
698
+ .team-kanban-empty {
699
+ padding: 12px;
700
+ text-align: center;
701
+ font-size: 0.8rem;
702
+ color: var(--text-secondary);
703
+ opacity: 0.6;
704
+ }
705
+
706
+ /* ── Task cards ── */
707
+ .team-task-card {
708
+ padding: 10px 12px;
709
+ border-radius: 6px;
710
+ background: var(--bg-primary);
711
+ border: 1px solid var(--border);
712
+ transition: border-color 0.15s;
713
+ }
714
+
715
+ .team-task-card.active {
716
+ border-left: 3px solid var(--accent);
717
+ }
718
+
719
+ .team-task-card.done {
720
+ opacity: 0.8;
721
+ }
722
+
723
+ .team-task-card.failed {
724
+ border-left: 3px solid var(--error);
725
+ }
726
+
727
+ .team-task-title {
728
+ font-size: 0.85rem;
729
+ font-weight: 500;
730
+ color: var(--text-primary);
731
+ line-height: 1.3;
732
+ }
733
+
734
+ .team-task-desc {
735
+ font-size: 0.78rem;
736
+ color: var(--text-secondary);
737
+ margin-top: 4px;
738
+ line-height: 1.3;
739
+ }
740
+
741
+ .team-task-desc-clamp {
742
+ display: -webkit-box;
743
+ -webkit-line-clamp: 2;
744
+ -webkit-box-orient: vertical;
745
+ overflow: hidden;
746
+ cursor: pointer;
747
+ }
748
+ .team-task-desc-clamp:hover {
749
+ color: var(--text-primary);
750
+ }
751
+ .team-task-desc-expanded {
752
+ -webkit-line-clamp: unset;
753
+ overflow: visible;
754
+ }
755
+
756
+ .team-task-assignee {
757
+ display: flex;
758
+ align-items: center;
759
+ gap: 4px;
760
+ margin-top: 6px;
761
+ font-size: 0.75rem;
762
+ color: var(--text-secondary);
763
+ }
764
+
765
+ /* ── Agent dot ── */
766
+ .team-agent-dot {
767
+ width: 8px;
768
+ height: 8px;
769
+ border-radius: 50%;
770
+ flex-shrink: 0;
771
+ display: inline-block;
772
+ }
773
+
774
+ .team-agent-dot.working {
775
+ animation: agent-pulse 1.5s ease-in-out infinite;
776
+ }
777
+
778
+ @keyframes agent-pulse {
779
+ 0%, 100% { opacity: 1; transform: scale(1); }
780
+ 50% { opacity: 0.5; transform: scale(1.3); }
781
+ }
782
+
783
+ /* ── Activity feed ── */
784
+ .team-feed {
785
+ border: 1px solid var(--border);
786
+ border-radius: 8px;
787
+ background: var(--bg-secondary);
788
+ }
789
+
790
+ .team-feed-header {
791
+ padding: 10px 12px;
792
+ font-size: 0.8rem;
793
+ font-weight: 600;
794
+ text-transform: uppercase;
795
+ letter-spacing: 0.03em;
796
+ color: var(--text-secondary);
797
+ border-bottom: 1px solid var(--border);
798
+ }
799
+
800
+ .team-feed-list {
801
+ max-height: 250px;
802
+ overflow-y: auto;
803
+ padding: 8px 12px;
804
+ display: flex;
805
+ flex-direction: column;
806
+ gap: 4px;
807
+ }
808
+
809
+ .team-feed-entry {
810
+ display: flex;
811
+ align-items: baseline;
812
+ gap: 6px;
813
+ font-size: 0.8rem;
814
+ line-height: 1.4;
815
+ padding: 2px 0;
816
+ }
817
+
818
+ .team-feed-time {
819
+ flex-shrink: 0;
820
+ font-size: 0.7rem;
821
+ color: var(--text-secondary);
822
+ opacity: 0.7;
823
+ font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
824
+ }
825
+
826
+ .team-feed-text {
827
+ color: var(--text-primary);
828
+ }
829
+
830
+ .team-feed-agent-name {
831
+ font-weight: 600;
832
+ }
833
+
834
+ .sidebar-section-collapsible {
835
+ display: flex;
836
+ flex-direction: column;
837
+ flex: 1;
838
+ min-height: 0;
839
+ overflow: hidden;
840
+ }
841
+
842
+ /* ── Teams sidebar section (history list in sidebar) ── */
843
+ .sidebar-teams {
844
+ padding: 0.5rem 0.75rem;
845
+ overflow: hidden;
846
+ display: flex;
847
+ flex-direction: column;
848
+ min-height: 0;
849
+ }
850
+
851
+ /* ── Loops sidebar section ── */
852
+ .sidebar-loops {
853
+ padding: 0.5rem 0.75rem;
854
+ overflow: hidden;
855
+ display: flex;
856
+ flex-direction: column;
857
+ min-height: 0;
858
+ }
859
+
860
+ .loop-history-list {
861
+ flex: 1 1 auto;
862
+ overflow-y: auto;
863
+ min-height: 0;
864
+ display: flex;
865
+ flex-direction: column;
866
+ gap: 2px;
867
+ }
868
+
869
+ .team-history-list {
870
+ flex: 1 1 auto;
871
+ overflow-y: auto;
872
+ min-height: 0;
873
+ display: flex;
874
+ flex-direction: column;
875
+ gap: 2px;
876
+ }
877
+
878
+ .team-history-item {
879
+ display: flex;
880
+ align-items: center;
881
+ padding: 8px 10px;
882
+ border-radius: 8px;
883
+ cursor: pointer;
884
+ transition: background 0.15s;
885
+ border-left: 3px solid transparent;
886
+ }
887
+
888
+ .team-history-item:hover {
889
+ background: var(--bg-tertiary);
890
+ }
891
+
892
+ .team-history-item.active {
893
+ background: var(--bg-tertiary);
894
+ border-left-color: var(--accent);
895
+ }
896
+
897
+ .team-history-info {
898
+ min-width: 0;
899
+ flex: 1;
900
+ }
901
+
902
+ .team-history-title {
903
+ font-size: 0.82rem;
904
+ color: var(--text-primary);
905
+ overflow: hidden;
906
+ text-overflow: ellipsis;
907
+ white-space: nowrap;
908
+ line-height: 1.3;
909
+ }
910
+
911
+ .team-history-meta {
912
+ display: flex;
913
+ align-items: center;
914
+ flex-wrap: wrap;
915
+ gap: 2px 6px;
916
+ margin-top: 2px;
917
+ font-size: 0.7rem;
918
+ color: var(--text-secondary);
919
+ }
920
+
921
+ .team-history-tasks {
922
+ color: var(--text-secondary);
923
+ white-space: nowrap;
924
+ }
925
+
926
+ .team-status-badge-sm {
927
+ font-size: 0.6rem;
928
+ padding: 1px 5px;
929
+ border-radius: 8px;
930
+ }
931
+
932
+ /* ── Completion stats bar ── */
933
+ .team-stats-bar {
934
+ display: flex;
935
+ gap: 16px;
936
+ padding: 10px 14px;
937
+ margin-bottom: 12px;
938
+ background: var(--bg-secondary);
939
+ border: 1px solid var(--border);
940
+ border-radius: 8px;
941
+ }
942
+
943
+ .team-stat {
944
+ display: flex;
945
+ flex-direction: column;
946
+ align-items: center;
947
+ gap: 2px;
948
+ }
949
+
950
+ .team-stat-label {
951
+ font-size: 0.65rem;
952
+ text-transform: uppercase;
953
+ letter-spacing: 0.04em;
954
+ color: var(--text-secondary);
955
+ }
956
+
957
+ .team-stat-value {
958
+ font-size: 0.9rem;
959
+ font-weight: 600;
960
+ color: var(--text-primary);
961
+ }
962
+
963
+ /* ── Team summary (completion) ── */
964
+ .team-summary {
965
+ border: 1px solid var(--border);
966
+ border-radius: 8px;
967
+ background: var(--bg-secondary);
968
+ }
969
+
970
+ .team-summary-header {
971
+ padding: 10px 12px;
972
+ font-size: 0.8rem;
973
+ font-weight: 600;
974
+ text-transform: uppercase;
975
+ letter-spacing: 0.03em;
976
+ color: var(--text-secondary);
977
+ border-bottom: 1px solid var(--border);
978
+ }
979
+
980
+ .team-summary-body {
981
+ padding: 12px;
982
+ }
983
+
984
+ /* ── Agent bar (horizontal) ── */
985
+ .team-agents-bar {
986
+ border: 1px solid var(--border);
987
+ border-radius: 8px;
988
+ background: var(--bg-secondary);
989
+ flex-shrink: 0;
990
+ }
991
+
992
+ .team-agents-bar-header {
993
+ padding: 10px 12px;
994
+ font-size: 0.8rem;
995
+ font-weight: 600;
996
+ text-transform: uppercase;
997
+ letter-spacing: 0.03em;
998
+ color: var(--text-secondary);
999
+ border-bottom: 1px solid var(--border);
1000
+ }
1001
+
1002
+ .team-agents-bar-list {
1003
+ display: flex;
1004
+ flex-wrap: wrap;
1005
+ gap: 8px;
1006
+ padding: 10px 12px;
1007
+ }
1008
+
1009
+ .team-agent-card {
1010
+ flex: 1;
1011
+ min-width: 180px;
1012
+ max-width: 300px;
1013
+ padding: 10px 12px;
1014
+ border-radius: 6px;
1015
+ background: var(--bg-primary);
1016
+ border: 1px solid var(--border);
1017
+ cursor: pointer;
1018
+ transition: border-color 0.15s;
1019
+ }
1020
+
1021
+ .team-agent-card:hover {
1022
+ border-color: var(--accent);
1023
+ }
1024
+
1025
+ .team-agent-card-top {
1026
+ display: flex;
1027
+ align-items: center;
1028
+ gap: 6px;
1029
+ }
1030
+
1031
+ .team-agent-card-name {
1032
+ font-size: 0.82rem;
1033
+ font-weight: 500;
1034
+ color: var(--text-primary);
1035
+ white-space: nowrap;
1036
+ overflow: hidden;
1037
+ text-overflow: ellipsis;
1038
+ }
1039
+
1040
+ .team-agent-card-status {
1041
+ margin-left: auto;
1042
+ font-size: 0.65rem;
1043
+ font-weight: 500;
1044
+ text-transform: uppercase;
1045
+ letter-spacing: 0.03em;
1046
+ padding: 1px 6px;
1047
+ border-radius: 8px;
1048
+ flex-shrink: 0;
1049
+ }
1050
+
1051
+ .team-agent-card-status-starting,
1052
+ .team-agent-card-status-working {
1053
+ background: rgba(59,130,246,0.15);
1054
+ color: #3b82f6;
1055
+ }
1056
+
1057
+ .team-agent-card-status-done {
1058
+ background: rgba(16,185,129,0.15);
1059
+ color: #10b981;
1060
+ }
1061
+
1062
+ .team-agent-card-status-error {
1063
+ background: rgba(239,68,68,0.15);
1064
+ color: #ef4444;
1065
+ }
1066
+
1067
+ .team-agent-card-activity {
1068
+ margin-top: 6px;
1069
+ font-size: 0.75rem;
1070
+ color: var(--text-secondary);
1071
+ overflow: hidden;
1072
+ text-overflow: ellipsis;
1073
+ white-space: nowrap;
1074
+ line-height: 1.3;
1075
+ }
1076
+
1077
+ .team-agents-empty {
1078
+ padding: 16px 12px;
1079
+ text-align: center;
1080
+ font-size: 0.8rem;
1081
+ color: var(--text-secondary);
1082
+ opacity: 0.6;
1083
+ }
1084
+
1085
+ /* ── Agent detail view ── */
1086
+ .team-agent-detail {
1087
+ flex: 1;
1088
+ display: flex;
1089
+ flex-direction: column;
1090
+ min-height: 0;
1091
+ overflow: hidden;
1092
+ }
1093
+
1094
+ .team-agent-detail-header {
1095
+ display: flex;
1096
+ align-items: center;
1097
+ gap: 8px;
1098
+ padding: 10px 16px;
1099
+ border-bottom: 1px solid var(--border);
1100
+ flex-shrink: 0;
1101
+ }
1102
+
1103
+ .team-agent-back-btn {
1104
+ display: flex;
1105
+ align-items: center;
1106
+ gap: 4px;
1107
+ padding: 4px 10px;
1108
+ border: 1px solid var(--border);
1109
+ border-radius: 4px;
1110
+ background: none;
1111
+ color: var(--text-secondary);
1112
+ font-size: 0.78rem;
1113
+ cursor: pointer;
1114
+ transition: all 0.15s;
1115
+ margin-right: 4px;
1116
+ }
1117
+
1118
+ .team-agent-back-btn:hover {
1119
+ color: var(--text-primary);
1120
+ border-color: var(--text-secondary);
1121
+ }
1122
+
1123
+ .team-agent-detail-name {
1124
+ font-size: 0.9rem;
1125
+ font-weight: 600;
1126
+ color: var(--text-primary);
1127
+ }
1128
+
1129
+ .team-agent-detail-status {
1130
+ font-size: 0.75rem;
1131
+ color: var(--text-secondary);
1132
+ text-transform: capitalize;
1133
+ }
1134
+
1135
+ .team-agent-messages {
1136
+ flex: 1;
1137
+ overflow-y: auto;
1138
+ padding: 1rem 1.5rem;
1139
+ min-height: 0;
1140
+ }
1141
+
1142
+ .team-agent-messages-inner {
1143
+ max-width: 768px;
1144
+ width: 100%;
1145
+ margin: 0 auto;
1146
+ display: flex;
1147
+ flex-direction: column;
1148
+ gap: 0.25rem;
1149
+ }
1150
+
1151
+ .team-agent-empty-msg {
1152
+ text-align: center;
1153
+ padding: 2rem;
1154
+ color: var(--text-secondary);
1155
+ font-size: 0.85rem;
1156
+ }
1157
+
1158
+ /* ── Agent prompt card ── */
1159
+ .team-agent-prompt {
1160
+ border: 1px solid var(--border);
1161
+ border-radius: 8px;
1162
+ background: var(--bg-secondary);
1163
+ margin-bottom: 0.5rem;
1164
+ }
1165
+
1166
+ .team-agent-prompt-label {
1167
+ padding: 8px 12px;
1168
+ font-size: 0.75rem;
1169
+ font-weight: 600;
1170
+ text-transform: uppercase;
1171
+ letter-spacing: 0.03em;
1172
+ color: var(--text-secondary);
1173
+ border-bottom: 1px solid var(--border);
1174
+ }
1175
+
1176
+ .team-agent-prompt-body {
1177
+ padding: 10px 14px;
1178
+ font-size: 0.85rem;
1179
+ line-height: 1.5;
1180
+ color: var(--text-primary);
1181
+ }
1182
+
1183
+ /* ── Agent detail name tag (above assistant bubbles) ── */
1184
+ .team-agent-detail-name-tag {
1185
+ font-size: 0.72rem;
1186
+ font-weight: 600;
1187
+ margin-bottom: 2px;
1188
+ padding-left: 2px;
1189
+ }
1190
+
1191
+ /* ── New team launcher (after completion) ── */
1192
+ .team-new-launcher {
1193
+ border: 1px solid var(--border);
1194
+ border-radius: 8px;
1195
+ background: var(--bg-secondary);
1196
+ padding: 12px;
1197
+ flex-shrink: 0;
1198
+ }
1199
+ .team-new-launcher-input {
1200
+ width: 100%;
1201
+ box-sizing: border-box;
1202
+ padding: 8px 10px;
1203
+ border: 1px solid var(--border);
1204
+ border-radius: 6px;
1205
+ background: var(--bg-primary);
1206
+ color: var(--text-primary);
1207
+ font-size: 0.85rem;
1208
+ font-family: inherit;
1209
+ resize: vertical;
1210
+ outline: none;
1211
+ }
1212
+ .team-new-launcher-input:focus {
1213
+ border-color: var(--accent);
1214
+ }
1215
+ .team-new-launcher-actions {
1216
+ display: flex;
1217
+ gap: 8px;
1218
+ margin-top: 8px;
1219
+ justify-content: flex-end;
1220
+ }
1221
+
1222
+ /* ── Team Agent tool call styling in main chat ── */
1223
+ .team-agent-tool-wrapper {
1224
+ border-left: 3px solid #8B5CF6;
1225
+ border-radius: 6px;
1226
+ margin-left: 4px;
1227
+ padding-left: 0;
1228
+ }
1229
+ .team-agent-tool-line {
1230
+ background: linear-gradient(90deg, rgba(139, 92, 246, 0.08), transparent);
1231
+ }
1232
+ .team-agent-tool-line:hover {
1233
+ background: linear-gradient(90deg, rgba(139, 92, 246, 0.14), transparent);
1234
+ }
1235
+ .team-agent-tool-icon {
1236
+ display: inline-flex;
1237
+ align-items: center;
1238
+ color: #8B5CF6;
1239
+ }
1240
+ .team-agent-tool-name {
1241
+ font-weight: 700;
1242
+ color: #8B5CF6;
1243
+ font-size: 0.82rem;
1244
+ }
1245
+ .team-agent-tool-desc {
1246
+ flex: 1;
1247
+ overflow: hidden;
1248
+ text-overflow: ellipsis;
1249
+ white-space: nowrap;
1250
+ font-size: 0.8rem;
1251
+ color: var(--text-secondary);
1252
+ }
1253
+ .team-agent-tool-expand {
1254
+ border-top: 1px solid rgba(139, 92, 246, 0.15);
1255
+ }
1256
+ .team-agent-tool-result {
1257
+ margin-top: 6px;
1258
+ padding: 8px 10px;
1259
+ background: rgba(139, 92, 246, 0.06);
1260
+ border-radius: 4px;
1261
+ border: 1px solid rgba(139, 92, 246, 0.12);
1262
+ }
1263
+ .team-agent-tool-result-label {
1264
+ font-size: 0.72rem;
1265
+ font-weight: 600;
1266
+ color: #8B5CF6;
1267
+ margin-bottom: 4px;
1268
+ text-transform: uppercase;
1269
+ letter-spacing: 0.5px;
1270
+ }
1271
+ .team-agent-tool-result-content {
1272
+ font-size: 0.82rem;
1273
+ line-height: 1.5;
1274
+ max-height: 300px;
1275
+ overflow-y: auto;
1276
+ }
1277
+