@appoly/multiagent-chat 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/styles.css ADDED
@@ -0,0 +1,1626 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Manrope:wght@200;300;400;500;600;700;800&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
2
+
3
+ :root {
4
+ /* Colors - Base */
5
+ --bg-app: #0b0e11;
6
+ --bg-surface: #15191e;
7
+ --bg-surface-elevated: #1e2329;
8
+
9
+ /* Colors - Accents */
10
+ --accent-primary: #14f195; /* Mint/Teal */
11
+ --accent-secondary: #22d3ee; /* Cyan */
12
+ --accent-warning: #f59e0b; /* Amber */
13
+ --accent-danger: #ff453a; /* Red */
14
+
15
+ /* Colors - Agent Identity */
16
+ --color-claude: #3b82f6;
17
+ --color-codex: #22c55e;
18
+ --color-gemini: #f59e0b;
19
+ --color-gpt: #10b981;
20
+ --color-user: #94a3b8;
21
+
22
+ /* Text */
23
+ --text-main: #e3e6eb;
24
+ --text-muted: #94a3b8;
25
+ --text-dim: #64748b;
26
+
27
+ /* Borders & Shadows */
28
+ --border-subtle: rgba(255, 255, 255, 0.08);
29
+ --border-strong: rgba(255, 255, 255, 0.15);
30
+ --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2);
31
+ --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.3);
32
+ --shadow-lg: 0 12px 24px rgba(0, 0, 0, 0.4);
33
+
34
+ /* Spacing & Radius */
35
+ --space-unit: 4px;
36
+ --radius-sm: 4px;
37
+ --radius-md: 8px;
38
+ --radius-lg: 12px;
39
+
40
+ /* Transitions */
41
+ --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
42
+ --transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
43
+ }
44
+
45
+ * {
46
+ margin: 0;
47
+ padding: 0;
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ body {
52
+ font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
53
+ background: var(--bg-app);
54
+ color: var(--text-main);
55
+ height: 100vh;
56
+ overflow: hidden;
57
+ line-height: 1.5;
58
+ -webkit-font-smoothing: antialiased;
59
+ }
60
+
61
+ h1, h2, h3, h4, h5, h6 {
62
+ font-family: 'Space Grotesk', sans-serif;
63
+ font-weight: 600;
64
+ letter-spacing: -0.02em;
65
+ }
66
+
67
+ /* Screen Management */
68
+ .screen {
69
+ display: none;
70
+ width: 100%;
71
+ height: 100vh;
72
+ transition: opacity var(--transition-base);
73
+ }
74
+
75
+ .screen.active {
76
+ display: flex;
77
+ flex-direction: column;
78
+ }
79
+
80
+ /* Challenge Input Screen */
81
+ #challenge-screen {
82
+ justify-content: center;
83
+ align-items: center;
84
+ background-color: var(--bg-app);
85
+ background-image:
86
+ radial-gradient(at 0% 0%, rgba(20, 241, 149, 0.05) 0px, transparent 50%),
87
+ radial-gradient(at 100% 100%, rgba(34, 211, 238, 0.05) 0px, transparent 50%);
88
+ }
89
+
90
+ /* Challenge Layout - Sidebar + Main Card */
91
+ .challenge-layout {
92
+ display: flex;
93
+ gap: 24px;
94
+ width: 100%;
95
+ max-width: 1200px;
96
+ padding: 24px;
97
+ align-items: flex-start;
98
+ }
99
+
100
+ /* Workspace Sidebar */
101
+ .workspace-sidebar {
102
+ flex: 0 0 280px;
103
+ background: var(--bg-surface);
104
+ border-radius: var(--radius-lg);
105
+ border: 1px solid var(--border-subtle);
106
+ box-shadow: var(--shadow-md);
107
+ display: flex;
108
+ flex-direction: column;
109
+ max-height: 80vh;
110
+ overflow: hidden;
111
+ }
112
+
113
+ .workspace-sidebar-header {
114
+ padding: 16px 20px;
115
+ border-bottom: 1px solid var(--border-subtle);
116
+ background: var(--bg-surface-elevated);
117
+ }
118
+
119
+ .workspace-sidebar-header h3 {
120
+ font-size: 0.9em;
121
+ color: var(--accent-primary);
122
+ text-transform: uppercase;
123
+ letter-spacing: 0.1em;
124
+ margin: 0;
125
+ }
126
+
127
+ .workspace-list-container {
128
+ flex: 1;
129
+ overflow-y: auto;
130
+ min-height: 200px;
131
+ max-height: 400px;
132
+ }
133
+
134
+ .workspace-list {
135
+ list-style: none;
136
+ margin: 0;
137
+ padding: 8px 0;
138
+ }
139
+
140
+ .workspace-item {
141
+ padding: 12px 16px;
142
+ cursor: pointer;
143
+ border-left: 3px solid transparent;
144
+ transition: all var(--transition-fast);
145
+ display: flex;
146
+ flex-direction: column;
147
+ gap: 4px;
148
+ }
149
+
150
+ .workspace-item:hover {
151
+ background: var(--bg-surface-elevated);
152
+ border-left-color: var(--border-strong);
153
+ }
154
+
155
+ .workspace-item.selected {
156
+ background: var(--bg-surface-elevated);
157
+ border-left-color: var(--accent-primary);
158
+ }
159
+
160
+ .workspace-item.missing {
161
+ opacity: 0.5;
162
+ }
163
+
164
+ .workspace-item.missing:hover {
165
+ opacity: 0.8;
166
+ }
167
+
168
+ .workspace-item-header {
169
+ display: flex;
170
+ align-items: center;
171
+ gap: 8px;
172
+ }
173
+
174
+ .workspace-name {
175
+ font-family: 'Space Grotesk', sans-serif;
176
+ font-weight: 600;
177
+ font-size: 14px;
178
+ color: var(--text-main);
179
+ white-space: nowrap;
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ }
183
+
184
+ .workspace-item.selected .workspace-name {
185
+ color: var(--accent-primary);
186
+ }
187
+
188
+ .workspace-badge {
189
+ font-size: 10px;
190
+ padding: 2px 6px;
191
+ border-radius: 4px;
192
+ font-weight: 600;
193
+ text-transform: uppercase;
194
+ }
195
+
196
+ .workspace-badge.missing {
197
+ background: rgba(239, 68, 68, 0.2);
198
+ color: #ef4444;
199
+ }
200
+
201
+ .workspace-path {
202
+ font-family: 'IBM Plex Mono', monospace;
203
+ font-size: 11px;
204
+ color: var(--text-dim);
205
+ white-space: nowrap;
206
+ overflow: hidden;
207
+ text-overflow: ellipsis;
208
+ }
209
+
210
+ .workspace-time {
211
+ font-size: 11px;
212
+ color: var(--text-dim);
213
+ }
214
+
215
+ .workspace-missing-actions {
216
+ display: flex;
217
+ gap: 8px;
218
+ margin-top: 8px;
219
+ }
220
+
221
+ .workspace-missing-actions button {
222
+ padding: 4px 10px;
223
+ font-size: 10px;
224
+ background: var(--bg-app);
225
+ border: 1px solid var(--border-subtle);
226
+ border-radius: var(--radius-sm);
227
+ color: var(--text-muted);
228
+ cursor: pointer;
229
+ font-family: 'Space Grotesk', sans-serif;
230
+ font-weight: 600;
231
+ text-transform: uppercase;
232
+ transition: all var(--transition-fast);
233
+ }
234
+
235
+ .workspace-missing-actions button:hover {
236
+ border-color: var(--accent-primary);
237
+ color: var(--accent-primary);
238
+ }
239
+
240
+ .workspace-empty {
241
+ padding: 24px 16px;
242
+ text-align: center;
243
+ color: var(--text-dim);
244
+ font-size: 13px;
245
+ }
246
+
247
+ .workspace-actions {
248
+ padding: 12px 16px;
249
+ border-top: 1px solid var(--border-subtle);
250
+ display: flex;
251
+ flex-direction: column;
252
+ gap: 8px;
253
+ }
254
+
255
+ .workspace-action-button {
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 8px;
259
+ padding: 10px 14px;
260
+ background: var(--bg-app);
261
+ border: 1px solid var(--border-subtle);
262
+ border-radius: var(--radius-md);
263
+ color: var(--text-main);
264
+ font-size: 13px;
265
+ font-family: 'Space Grotesk', sans-serif;
266
+ font-weight: 500;
267
+ cursor: pointer;
268
+ transition: all var(--transition-fast);
269
+ width: 100%;
270
+ text-align: left;
271
+ }
272
+
273
+ .workspace-action-button:hover {
274
+ border-color: var(--accent-primary);
275
+ color: var(--accent-primary);
276
+ background: var(--bg-surface-elevated);
277
+ }
278
+
279
+ .action-icon {
280
+ font-size: 14px;
281
+ }
282
+
283
+ .workspace-footer {
284
+ padding: 12px 16px;
285
+ border-top: 1px solid var(--border-subtle);
286
+ background: var(--bg-surface-elevated);
287
+ }
288
+
289
+ .config-link-button {
290
+ background: none;
291
+ border: none;
292
+ color: var(--text-dim);
293
+ font-size: 12px;
294
+ cursor: pointer;
295
+ font-family: 'IBM Plex Mono', monospace;
296
+ transition: color var(--transition-fast);
297
+ padding: 0;
298
+ }
299
+
300
+ .config-link-button:hover {
301
+ color: var(--accent-primary);
302
+ }
303
+
304
+ /* Selected Workspace Info */
305
+ .selected-workspace-info {
306
+ display: flex;
307
+ align-items: center;
308
+ gap: 8px;
309
+ padding: 12px 16px;
310
+ background: var(--bg-surface-elevated);
311
+ border-radius: var(--radius-md);
312
+ margin-bottom: 20px;
313
+ border: 1px solid var(--border-subtle);
314
+ }
315
+
316
+ .selected-label {
317
+ color: var(--text-dim);
318
+ font-size: 12px;
319
+ font-weight: 500;
320
+ }
321
+
322
+ .selected-path {
323
+ font-family: 'IBM Plex Mono', monospace;
324
+ font-size: 12px;
325
+ color: var(--accent-primary);
326
+ white-space: nowrap;
327
+ overflow: hidden;
328
+ text-overflow: ellipsis;
329
+ flex: 1;
330
+ }
331
+
332
+ .cli-badge {
333
+ font-size: 10px;
334
+ padding: 2px 8px;
335
+ background: rgba(20, 241, 149, 0.15);
336
+ color: var(--accent-primary);
337
+ border-radius: 4px;
338
+ font-weight: 600;
339
+ font-family: 'Space Grotesk', sans-serif;
340
+ text-transform: uppercase;
341
+ }
342
+
343
+ /* Responsive - Stack on narrow screens */
344
+ @media (max-width: 768px) {
345
+ .challenge-layout {
346
+ flex-direction: column;
347
+ padding: 16px;
348
+ }
349
+
350
+ .workspace-sidebar {
351
+ flex: none;
352
+ width: 100%;
353
+ max-height: 300px;
354
+ }
355
+
356
+ .workspace-list-container {
357
+ max-height: 150px;
358
+ }
359
+
360
+ .container {
361
+ width: 100%;
362
+ }
363
+ }
364
+
365
+ .container {
366
+ background: var(--bg-surface);
367
+ border-radius: var(--radius-lg);
368
+ padding: 40px;
369
+ max-width: 800px;
370
+ width: 100%;
371
+ flex: 1;
372
+ box-shadow: var(--shadow-lg);
373
+ border: 1px solid var(--border-subtle);
374
+ }
375
+
376
+ h1 {
377
+ font-size: 2.5em;
378
+ margin-bottom: 10px;
379
+ text-align: center;
380
+ color: var(--accent-primary);
381
+ }
382
+
383
+ .subtitle {
384
+ text-align: center;
385
+ color: var(--text-muted);
386
+ margin-bottom: 30px;
387
+ font-size: 1.1em;
388
+ }
389
+
390
+ .challenge-input-container {
391
+ margin-bottom: 20px;
392
+ }
393
+
394
+ textarea {
395
+ width: 100%;
396
+ padding: 15px;
397
+ background: var(--bg-app);
398
+ border: 1px solid var(--border-subtle);
399
+ border-radius: var(--radius-md);
400
+ color: var(--text-main);
401
+ font-size: 14px;
402
+ font-family: 'IBM Plex Mono', monospace;
403
+ resize: vertical;
404
+ transition: all var(--transition-fast);
405
+ }
406
+
407
+ textarea:focus {
408
+ outline: none;
409
+ border-color: var(--accent-primary);
410
+ box-shadow: 0 0 0 2px rgba(20, 241, 149, 0.1);
411
+ }
412
+
413
+ .primary-button {
414
+ width: 100%;
415
+ padding: 15px;
416
+ background: var(--accent-primary);
417
+ color: var(--bg-app);
418
+ border: none;
419
+ border-radius: var(--radius-md);
420
+ font-size: 16px;
421
+ font-weight: 700;
422
+ font-family: 'Space Grotesk', sans-serif;
423
+ cursor: pointer;
424
+ transition: all var(--transition-fast);
425
+ text-transform: uppercase;
426
+ letter-spacing: 0.05em;
427
+ }
428
+
429
+ .primary-button:hover {
430
+ transform: translateY(-1px);
431
+ box-shadow: 0 4px 12px rgba(20, 241, 149, 0.3);
432
+ filter: brightness(1.1);
433
+ }
434
+
435
+ .primary-button:active {
436
+ transform: translateY(0);
437
+ }
438
+
439
+ .config-info {
440
+ margin-top: 30px;
441
+ padding: 20px;
442
+ background: var(--bg-surface-elevated);
443
+ border-radius: var(--radius-md);
444
+ border: 1px solid var(--border-subtle);
445
+ }
446
+
447
+ .config-info h3 {
448
+ margin-bottom: 10px;
449
+ color: var(--accent-primary);
450
+ font-size: 0.9em;
451
+ text-transform: uppercase;
452
+ letter-spacing: 0.1em;
453
+ }
454
+
455
+ #config-details {
456
+ color: var(--text-muted);
457
+ font-size: 13px;
458
+ line-height: 1.6;
459
+ }
460
+
461
+ /* Session Screen */
462
+ #session-screen {
463
+ display: flex;
464
+ flex-direction: column;
465
+ }
466
+
467
+ .header {
468
+ background: var(--bg-surface);
469
+ padding: 12px 24px;
470
+ border-bottom: 1px solid var(--border-subtle);
471
+ display: flex;
472
+ justify-content: space-between;
473
+ align-items: center;
474
+ box-shadow: var(--shadow-sm);
475
+ z-index: 100;
476
+ }
477
+
478
+ .header h2 {
479
+ font-size: 1.25em;
480
+ color: var(--accent-primary);
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 12px;
484
+ }
485
+
486
+ .divider {
487
+ color: var(--border-strong);
488
+ font-weight: 300;
489
+ }
490
+
491
+ .subtext {
492
+ color: var(--text-dim);
493
+ font-size: 0.8em;
494
+ text-transform: uppercase;
495
+ letter-spacing: 0.1em;
496
+ }
497
+
498
+ .icon {
499
+ font-style: normal;
500
+ filter: drop-shadow(0 0 8px rgba(20, 241, 149, 0.3));
501
+ }
502
+
503
+ .header-icon {
504
+ height: 1.2em;
505
+ width: auto;
506
+ vertical-align: middle;
507
+ margin-right: 0.3em;
508
+ filter: drop-shadow(0 0 8px rgba(20, 241, 149, 0.3));
509
+ }
510
+
511
+ .header-info {
512
+ display: flex;
513
+ align-items: center;
514
+ gap: 24px;
515
+ }
516
+
517
+ #workspace-path {
518
+ color: var(--text-dim);
519
+ font-size: 12px;
520
+ font-family: 'IBM Plex Mono', monospace;
521
+ background: var(--bg-app);
522
+ padding: 4px 10px;
523
+ border-radius: var(--radius-sm);
524
+ border: 1px solid var(--border-subtle);
525
+ }
526
+
527
+ .danger-button {
528
+ padding: 8px 16px;
529
+ background: transparent;
530
+ color: var(--accent-danger);
531
+ border: 1px solid var(--accent-danger);
532
+ border-radius: var(--radius-md);
533
+ font-size: 12px;
534
+ font-weight: 600;
535
+ font-family: 'Space Grotesk', sans-serif;
536
+ cursor: pointer;
537
+ transition: all var(--transition-fast);
538
+ text-transform: uppercase;
539
+ letter-spacing: 0.05em;
540
+ }
541
+
542
+ .danger-button:hover {
543
+ background: var(--accent-danger);
544
+ color: white;
545
+ box-shadow: 0 0 12px rgba(255, 69, 58, 0.3);
546
+ }
547
+
548
+ .secondary-button {
549
+ padding: 8px 16px;
550
+ background: var(--bg-surface-elevated);
551
+ color: var(--text-main);
552
+ border: 1px solid var(--border-subtle);
553
+ border-radius: var(--radius-md);
554
+ font-size: 12px;
555
+ font-weight: 600;
556
+ font-family: 'Space Grotesk', sans-serif;
557
+ cursor: pointer;
558
+ transition: all var(--transition-fast);
559
+ text-transform: uppercase;
560
+ letter-spacing: 0.05em;
561
+ }
562
+
563
+ .secondary-button:hover {
564
+ border-color: var(--accent-primary);
565
+ color: var(--accent-primary);
566
+ box-shadow: 0 0 8px rgba(20, 241, 149, 0.2);
567
+ }
568
+
569
+ .small-button {
570
+ padding: 6px 12px;
571
+ background: var(--bg-surface-elevated);
572
+ color: var(--text-main);
573
+ border: 1px solid var(--border-subtle);
574
+ border-radius: var(--radius-md);
575
+ font-size: 11px;
576
+ font-weight: 600;
577
+ font-family: 'Space Grotesk', sans-serif;
578
+ cursor: pointer;
579
+ transition: all var(--transition-fast);
580
+ text-transform: uppercase;
581
+ }
582
+
583
+ .small-button:hover {
584
+ border-color: var(--accent-primary);
585
+ color: var(--accent-primary);
586
+ }
587
+
588
+ .small-button.primary {
589
+ background: var(--accent-primary);
590
+ color: var(--bg-app);
591
+ border-color: var(--accent-primary);
592
+ }
593
+
594
+ .small-button.primary:hover {
595
+ filter: brightness(1.1);
596
+ box-shadow: 0 0 8px rgba(20, 241, 149, 0.3);
597
+ }
598
+
599
+ /* Main Content Layout */
600
+ .main-content {
601
+ display: flex;
602
+ flex: 1;
603
+ overflow: hidden;
604
+ background: var(--bg-app);
605
+ gap: 1px; /* Subtle gap to show background as border */
606
+ }
607
+
608
+ .left-panel {
609
+ flex: 0 0 55%;
610
+ display: flex;
611
+ flex-direction: column;
612
+ background: var(--bg-surface);
613
+ overflow: hidden;
614
+ }
615
+
616
+ .right-panel {
617
+ flex: 0 0 45%;
618
+ display: flex;
619
+ flex-direction: column;
620
+ background: var(--bg-surface);
621
+ border-left: 1px solid var(--border-subtle);
622
+ overflow: hidden;
623
+ }
624
+
625
+ .panel-header {
626
+ background: var(--bg-surface);
627
+ padding: 10px 20px;
628
+ border-bottom: 1px solid var(--border-subtle);
629
+ display: flex;
630
+ justify-content: space-between;
631
+ align-items: center;
632
+ min-height: 44px;
633
+ }
634
+
635
+ .panel-header h3 {
636
+ font-size: 0.85em;
637
+ color: var(--text-dim);
638
+ text-transform: uppercase;
639
+ letter-spacing: 0.1em;
640
+ font-family: 'Space Grotesk', sans-serif;
641
+ }
642
+
643
+ /* Agent Tabs */
644
+ .tabs {
645
+ display: flex;
646
+ background: var(--bg-app);
647
+ padding: 8px 12px 0 12px;
648
+ gap: 4px;
649
+ border-bottom: 1px solid var(--border-subtle);
650
+ overflow-x: auto;
651
+ }
652
+
653
+ .tab {
654
+ padding: 8px 16px;
655
+ cursor: pointer;
656
+ border: 1px solid transparent;
657
+ background: transparent;
658
+ color: var(--text-muted);
659
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
660
+ transition: all var(--transition-fast);
661
+ white-space: nowrap;
662
+ font-family: 'Space Grotesk', sans-serif;
663
+ font-weight: 600;
664
+ font-size: 13px;
665
+ }
666
+
667
+ .tab:hover {
668
+ color: var(--text-main);
669
+ background: var(--bg-surface-elevated);
670
+ }
671
+
672
+ .tab.active {
673
+ background: var(--bg-surface);
674
+ color: var(--accent-primary);
675
+ border: 1px solid var(--border-subtle);
676
+ border-bottom-color: var(--bg-surface);
677
+ margin-bottom: -1px;
678
+ }
679
+
680
+ /* Agent Outputs */
681
+ .agent-outputs {
682
+ flex: 1;
683
+ overflow: hidden;
684
+ position: relative;
685
+ background: var(--bg-surface);
686
+ }
687
+
688
+ .agent-output {
689
+ display: none;
690
+ height: 100%;
691
+ overflow-y: auto;
692
+ padding: 16px;
693
+ background: var(--bg-surface);
694
+ font-family: 'IBM Plex Mono', monospace;
695
+ font-size: 13px;
696
+ line-height: 1.6;
697
+ position: relative;
698
+ }
699
+
700
+ .agent-output.active {
701
+ display: block;
702
+ }
703
+
704
+ .agent-output pre {
705
+ white-space: pre-wrap;
706
+ word-wrap: break-word;
707
+ color: var(--text-main);
708
+ }
709
+
710
+ .terminal-container {
711
+ width: 100%;
712
+ height: calc(100% - 30px);
713
+ overflow: hidden;
714
+ position: relative;
715
+ border-radius: var(--radius-md);
716
+ border: 1px solid var(--border-subtle);
717
+ background: var(--bg-app);
718
+ box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
719
+ }
720
+
721
+ .agent-output.active .terminal-container {
722
+ border-color: var(--accent-primary);
723
+ box-shadow: 0 0 15px rgba(20, 241, 149, 0.1), inset 0 2px 8px rgba(0,0,0,0.4);
724
+ }
725
+
726
+ .agent-status {
727
+ display: inline-flex;
728
+ align-items: center;
729
+ gap: 8px;
730
+ padding: 4px 10px;
731
+ border-radius: 100px;
732
+ font-size: 11px;
733
+ font-weight: 700;
734
+ margin-bottom: 12px;
735
+ text-transform: uppercase;
736
+ letter-spacing: 0.05em;
737
+ font-family: 'Space Grotesk', sans-serif;
738
+ }
739
+
740
+ .agent-status::before {
741
+ content: '';
742
+ display: block;
743
+ width: 6px;
744
+ height: 6px;
745
+ border-radius: 50%;
746
+ }
747
+
748
+ .agent-status.running {
749
+ background: rgba(20, 241, 149, 0.1);
750
+ color: var(--accent-primary);
751
+ }
752
+
753
+ .agent-status.running::before {
754
+ background: var(--accent-primary);
755
+ box-shadow: 0 0 8px var(--accent-primary);
756
+ animation: pulse 2s infinite;
757
+ }
758
+
759
+ .agent-status.stopped {
760
+ background: var(--bg-surface-elevated);
761
+ color: var(--text-muted);
762
+ }
763
+
764
+ .agent-status.stopped::before {
765
+ background: var(--text-dim);
766
+ }
767
+
768
+ .agent-status.error {
769
+ background: rgba(255, 69, 58, 0.1);
770
+ color: var(--accent-danger);
771
+ }
772
+
773
+ .agent-status.error::before {
774
+ background: var(--accent-danger);
775
+ }
776
+
777
+ @keyframes pulse {
778
+ 0% { transform: scale(0.95); opacity: 0.8; }
779
+ 50% { transform: scale(1.1); opacity: 1; }
780
+ 100% { transform: scale(0.95); opacity: 0.8; }
781
+ }
782
+
783
+ /* Input Lock Toggle Button */
784
+ .input-lock-toggle {
785
+ position: absolute;
786
+ bottom: 12px;
787
+ right: 12px;
788
+ padding: 6px 14px;
789
+ background: var(--bg-surface-elevated);
790
+ border: 1px solid var(--border-subtle);
791
+ border-radius: 100px;
792
+ color: var(--text-muted);
793
+ font-size: 11px;
794
+ font-weight: 700;
795
+ font-family: 'Space Grotesk', sans-serif;
796
+ cursor: pointer;
797
+ z-index: 10;
798
+ transition: all var(--transition-fast);
799
+ text-transform: uppercase;
800
+ letter-spacing: 0.05em;
801
+ display: flex;
802
+ align-items: center;
803
+ gap: 6px;
804
+ }
805
+
806
+ .input-lock-toggle:hover {
807
+ border-color: var(--text-muted);
808
+ color: var(--text-main);
809
+ }
810
+
811
+ .input-lock-toggle.unlocked {
812
+ background: rgba(20, 241, 149, 0.1);
813
+ border-color: var(--accent-primary);
814
+ color: var(--accent-primary);
815
+ }
816
+
817
+ .input-lock-toggle.unlocked:hover {
818
+ background: rgba(20, 241, 149, 0.2);
819
+ }
820
+
821
+
822
+ /* Main Tabs (Top-Level Navigation) */
823
+ .main-tabs {
824
+ display: flex;
825
+ background: var(--bg-app);
826
+ padding: 0;
827
+ border-bottom: 1px solid var(--border-subtle);
828
+ flex-shrink: 0;
829
+ }
830
+
831
+ .main-tab {
832
+ flex: 1;
833
+ padding: 12px 16px;
834
+ background: transparent;
835
+ border: none;
836
+ border-bottom: 2px solid transparent;
837
+ color: var(--text-muted);
838
+ font-size: 13px;
839
+ font-weight: 600;
840
+ font-family: 'Space Grotesk', sans-serif;
841
+ cursor: pointer;
842
+ transition: all var(--transition-fast);
843
+ text-transform: uppercase;
844
+ letter-spacing: 0.05em;
845
+ position: relative;
846
+ }
847
+
848
+ .main-tab:hover {
849
+ color: var(--text-main);
850
+ background: var(--bg-surface-elevated);
851
+ }
852
+
853
+ .main-tab.active {
854
+ color: var(--accent-primary);
855
+ border-bottom-color: var(--accent-primary);
856
+ background: var(--bg-surface);
857
+ }
858
+
859
+ /* Tab Content Areas */
860
+ .tab-content {
861
+ display: none;
862
+ flex: 1;
863
+ flex-direction: column;
864
+ overflow: hidden;
865
+ }
866
+
867
+ .tab-content.active {
868
+ display: flex;
869
+ }
870
+
871
+ /* Chat Section */
872
+ .chat-section {
873
+ flex: 1;
874
+ display: flex;
875
+ flex-direction: column;
876
+ overflow: hidden;
877
+ border-bottom: 1px solid var(--border-subtle);
878
+ position: relative;
879
+ }
880
+
881
+ .chat-viewer {
882
+ flex: 1;
883
+ overflow-y: auto;
884
+ padding: 16px;
885
+ background: var(--bg-app);
886
+ display: flex;
887
+ flex-direction: column;
888
+ gap: 8px;
889
+ scroll-behavior: smooth;
890
+ }
891
+
892
+ .chat-new-messages {
893
+ position: absolute;
894
+ bottom: 16px;
895
+ left: 50%;
896
+ transform: translateX(-50%);
897
+ display: none;
898
+ z-index: 3;
899
+ }
900
+
901
+ .chat-new-messages.visible {
902
+ display: block;
903
+ }
904
+
905
+ .chat-new-messages .small-button {
906
+ background: var(--accent-primary);
907
+ color: #0b0d0f;
908
+ box-shadow: var(--shadow-sm);
909
+ }
910
+
911
+ /* Chat Messages */
912
+ .chat-message {
913
+ display: flex;
914
+ max-width: 90%;
915
+ animation: message-in var(--transition-base);
916
+ }
917
+
918
+ @keyframes message-in {
919
+ from { opacity: 0; transform: translateY(8px); }
920
+ to { opacity: 1; transform: translateY(0); }
921
+ }
922
+
923
+ .chat-message-left {
924
+ align-self: flex-start;
925
+ }
926
+
927
+ .chat-message-right {
928
+ align-self: flex-end;
929
+ }
930
+
931
+ .chat-bubble {
932
+ background: var(--bg-surface);
933
+ border-radius: var(--radius-lg);
934
+ padding: 10px 14px;
935
+ box-shadow: var(--shadow-sm);
936
+ border-left: 4px solid var(--agent-color, var(--accent-primary));
937
+ }
938
+
939
+ .chat-message-right .chat-bubble {
940
+ border-left: none;
941
+ border-right: 4px solid var(--agent-color, var(--color-user));
942
+ background: var(--bg-surface-elevated);
943
+ }
944
+
945
+ .chat-header {
946
+ display: flex;
947
+ justify-content: space-between;
948
+ align-items: center;
949
+ margin-bottom: 4px;
950
+ gap: 16px;
951
+ }
952
+
953
+ .chat-agent {
954
+ font-family: 'Space Grotesk', sans-serif;
955
+ font-weight: 700;
956
+ font-size: 12px;
957
+ text-transform: uppercase;
958
+ letter-spacing: 0.05em;
959
+ }
960
+
961
+ .chat-time {
962
+ color: var(--text-dim);
963
+ font-size: 10px;
964
+ font-family: 'IBM Plex Mono', monospace;
965
+ }
966
+
967
+ .chat-content {
968
+ font-size: 14px;
969
+ line-height: 1.5;
970
+ color: var(--text-main);
971
+ }
972
+
973
+ .chat-empty {
974
+ color: var(--text-dim);
975
+ text-align: center;
976
+ padding: 40px;
977
+ font-style: italic;
978
+ font-size: 13px;
979
+ }
980
+
981
+ /* Markdown content styling */
982
+ .markdown-content {
983
+ color: var(--text-main);
984
+ }
985
+
986
+ .markdown-content h1,
987
+ .markdown-content h2,
988
+ .markdown-content h3,
989
+ .markdown-content h4 {
990
+ color: var(--accent-primary);
991
+ margin-top: 1.2em;
992
+ margin-bottom: 0.6em;
993
+ }
994
+
995
+ .markdown-content h1 { font-size: 1.5em; border-bottom: 1px solid var(--border-subtle); padding-bottom: 0.3em; }
996
+ .markdown-content h2 { font-size: 1.3em; border-bottom: 1px solid var(--border-subtle); padding-bottom: 0.3em; }
997
+ .markdown-content h3 { font-size: 1.1em; }
998
+
999
+ .markdown-content p { margin: 0.6em 0; }
1000
+
1001
+ .markdown-content code {
1002
+ background: var(--bg-surface-elevated);
1003
+ padding: 2px 6px;
1004
+ border-radius: var(--radius-sm);
1005
+ font-family: 'IBM Plex Mono', monospace;
1006
+ font-size: 0.9em;
1007
+ color: var(--accent-secondary);
1008
+ border: 1px solid var(--border-subtle);
1009
+ }
1010
+
1011
+ .markdown-content pre {
1012
+ background: var(--bg-app);
1013
+ padding: 12px;
1014
+ border-radius: var(--radius-md);
1015
+ overflow-x: auto;
1016
+ margin: 1em 0;
1017
+ border: 1px solid var(--border-subtle);
1018
+ }
1019
+
1020
+ .markdown-content pre code {
1021
+ background: none;
1022
+ padding: 0;
1023
+ font-size: 12px;
1024
+ color: var(--text-main);
1025
+ border: none;
1026
+ }
1027
+
1028
+ .markdown-content ul,
1029
+ .markdown-content ol {
1030
+ margin: 0.6em 0;
1031
+ padding-left: 1.5em;
1032
+ }
1033
+
1034
+ .markdown-content blockquote {
1035
+ border-left: 3px solid var(--accent-primary);
1036
+ padding-left: 12px;
1037
+ margin: 1em 0;
1038
+ color: var(--text-muted);
1039
+ font-style: italic;
1040
+ background: rgba(20, 241, 149, 0.05);
1041
+ padding: 8px 12px;
1042
+ border-radius: 0 var(--radius-md) var(--radius-md) 0;
1043
+ }
1044
+
1045
+ .markdown-content a {
1046
+ color: var(--accent-secondary);
1047
+ text-decoration: none;
1048
+ }
1049
+
1050
+ .markdown-content a:hover { text-decoration: underline; }
1051
+
1052
+ /* Message Section */
1053
+ .message-section {
1054
+ flex: 0 0 auto;
1055
+ }
1056
+
1057
+ .message-input-container {
1058
+ padding: 12px 16px;
1059
+ background: var(--bg-surface);
1060
+ display: flex;
1061
+ gap: 12px;
1062
+ align-items: flex-end;
1063
+ }
1064
+
1065
+ .message-input-container textarea {
1066
+ flex: 1;
1067
+ min-height: 44px;
1068
+ max-height: 120px;
1069
+ background: var(--bg-app);
1070
+ border: 1px solid var(--border-subtle);
1071
+ }
1072
+
1073
+ .message-input-container .primary-button {
1074
+ width: auto;
1075
+ padding: 10px 20px;
1076
+ height: 44px;
1077
+ }
1078
+
1079
+ /* Plan Section */
1080
+ .plan-section {
1081
+ flex: 1;
1082
+ display: flex;
1083
+ flex-direction: column;
1084
+ overflow: hidden;
1085
+ background: var(--bg-surface);
1086
+ }
1087
+
1088
+ .plan-section .panel-header {
1089
+ background: var(--bg-surface);
1090
+ }
1091
+
1092
+ .plan-viewer {
1093
+ flex: 1;
1094
+ overflow-y: auto;
1095
+ padding: 16px;
1096
+ font-size: 13px;
1097
+ line-height: 1.6;
1098
+ background: var(--bg-app);
1099
+ }
1100
+
1101
+ .plan-viewer em {
1102
+ color: var(--text-dim);
1103
+ }
1104
+
1105
+ .plan-actions {
1106
+ padding: 16px;
1107
+ background: var(--bg-surface);
1108
+ border-top: 1px solid var(--border-subtle);
1109
+ }
1110
+
1111
+ .plan-actions .primary-button.large {
1112
+ width: 100%;
1113
+ padding: 16px 24px;
1114
+ font-size: 15px;
1115
+ }
1116
+
1117
+ /* Diff Section */
1118
+ .diff-section {
1119
+ flex: 1;
1120
+ display: flex;
1121
+ flex-direction: column;
1122
+ overflow: hidden;
1123
+ background: var(--bg-surface);
1124
+ }
1125
+
1126
+ .diff-layout {
1127
+ flex: 1;
1128
+ display: flex;
1129
+ overflow: hidden;
1130
+ }
1131
+
1132
+ .diff-file-list {
1133
+ flex: 0 0 200px;
1134
+ min-width: 150px;
1135
+ max-width: 400px;
1136
+ display: flex;
1137
+ flex-direction: column;
1138
+ background: var(--bg-surface-elevated);
1139
+ border-right: 1px solid var(--border-subtle);
1140
+ overflow: hidden;
1141
+ }
1142
+
1143
+ .file-list-header {
1144
+ padding: 10px 12px;
1145
+ font-family: 'Space Grotesk', sans-serif;
1146
+ font-size: 11px;
1147
+ font-weight: 600;
1148
+ text-transform: uppercase;
1149
+ letter-spacing: 0.05em;
1150
+ color: var(--text-dim);
1151
+ border-bottom: 1px solid var(--border-subtle);
1152
+ background: var(--bg-surface);
1153
+ }
1154
+
1155
+ .file-list-items {
1156
+ flex: 1;
1157
+ overflow-y: auto;
1158
+ list-style: none;
1159
+ margin: 0;
1160
+ padding: 4px 0;
1161
+ }
1162
+
1163
+ .file-list-item {
1164
+ padding: 8px 12px;
1165
+ font-family: 'IBM Plex Mono', monospace;
1166
+ font-size: 12px;
1167
+ color: var(--text-muted);
1168
+ cursor: pointer;
1169
+ transition: all var(--transition-fast);
1170
+ border-left: 2px solid transparent;
1171
+ display: flex;
1172
+ align-items: center;
1173
+ gap: 8px;
1174
+ }
1175
+
1176
+ .file-list-item:hover {
1177
+ background: var(--bg-app);
1178
+ color: var(--text-main);
1179
+ }
1180
+
1181
+ .file-list-item.active {
1182
+ background: var(--bg-app);
1183
+ color: var(--accent-primary);
1184
+ border-left-color: var(--accent-primary);
1185
+ }
1186
+
1187
+ .file-list-item.all-files {
1188
+ font-weight: 600;
1189
+ color: var(--text-main);
1190
+ }
1191
+
1192
+ .file-list-item .file-status {
1193
+ font-size: 10px;
1194
+ font-weight: 700;
1195
+ }
1196
+
1197
+ .file-list-item .file-status.added {
1198
+ color: #22c55e;
1199
+ }
1200
+
1201
+ .file-list-item .file-status.modified {
1202
+ color: var(--accent-secondary);
1203
+ }
1204
+
1205
+ .file-list-item .file-status.deleted {
1206
+ color: #ef4444;
1207
+ }
1208
+
1209
+ .diff-content-pane {
1210
+ flex: 1;
1211
+ overflow: hidden;
1212
+ display: flex;
1213
+ flex-direction: column;
1214
+ background: var(--bg-app);
1215
+ }
1216
+
1217
+ .diff-resize {
1218
+ flex-shrink: 0;
1219
+ }
1220
+
1221
+ /* Scrollbar Styling */
1222
+ ::-webkit-scrollbar {
1223
+ width: 8px;
1224
+ height: 8px;
1225
+ }
1226
+
1227
+ ::-webkit-scrollbar-track {
1228
+ background: var(--bg-app);
1229
+ }
1230
+
1231
+ ::-webkit-scrollbar-thumb {
1232
+ background: var(--border-strong);
1233
+ border-radius: 10px;
1234
+ }
1235
+
1236
+ ::-webkit-scrollbar-thumb:hover {
1237
+ background: var(--text-dim);
1238
+ }
1239
+
1240
+ /* Resize Handles */
1241
+ .resize-handle {
1242
+ flex-shrink: 0;
1243
+ background: transparent;
1244
+ position: relative;
1245
+ z-index: 10;
1246
+ transition: background var(--transition-fast);
1247
+ }
1248
+
1249
+ .resize-handle::after {
1250
+ content: '';
1251
+ position: absolute;
1252
+ background: var(--border-subtle);
1253
+ transition: background var(--transition-fast);
1254
+ }
1255
+
1256
+ .resize-handle:hover::after,
1257
+ .resize-handle.dragging::after {
1258
+ background: var(--accent-primary);
1259
+ }
1260
+
1261
+ .resize-handle-h {
1262
+ width: 8px;
1263
+ cursor: col-resize;
1264
+ margin: 0 -3px;
1265
+ }
1266
+
1267
+ .resize-handle-h::after {
1268
+ left: 3px;
1269
+ top: 0;
1270
+ bottom: 0;
1271
+ width: 2px;
1272
+ }
1273
+
1274
+ .resize-handle-v {
1275
+ height: 8px;
1276
+ cursor: row-resize;
1277
+ margin: -3px 0;
1278
+ }
1279
+
1280
+ .resize-handle-v::after {
1281
+ top: 3px;
1282
+ left: 0;
1283
+ right: 0;
1284
+ height: 2px;
1285
+ }
1286
+
1287
+ /* Prevent text selection during resize */
1288
+ body.resizing {
1289
+ user-select: none;
1290
+ -webkit-user-select: none;
1291
+ }
1292
+
1293
+ body.resizing-h {
1294
+ cursor: col-resize;
1295
+ }
1296
+
1297
+ body.resizing-v {
1298
+ cursor: row-resize;
1299
+ }
1300
+
1301
+ body.resizing iframe,
1302
+ body.resizing .terminal-container {
1303
+ pointer-events: none;
1304
+ }
1305
+
1306
+ /* Modal Styles */
1307
+ .modal {
1308
+ position: fixed;
1309
+ top: 0;
1310
+ left: 0;
1311
+ right: 0;
1312
+ bottom: 0;
1313
+ background: rgba(0, 0, 0, 0.8);
1314
+ backdrop-filter: blur(4px);
1315
+ display: flex;
1316
+ justify-content: center;
1317
+ align-items: center;
1318
+ z-index: 1000;
1319
+ animation: fade-in var(--transition-fast);
1320
+ }
1321
+
1322
+ @keyframes fade-in {
1323
+ from { opacity: 0; }
1324
+ to { opacity: 1; }
1325
+ }
1326
+
1327
+ .modal-content {
1328
+ background: var(--bg-surface);
1329
+ border-radius: var(--radius-lg);
1330
+ padding: 24px;
1331
+ min-width: 380px;
1332
+ max-width: 480px;
1333
+ box-shadow: var(--shadow-lg);
1334
+ border: 1px solid var(--border-subtle);
1335
+ animation: scale-in var(--transition-fast);
1336
+ }
1337
+
1338
+ @keyframes scale-in {
1339
+ from { opacity: 0; transform: scale(0.95); }
1340
+ to { opacity: 1; transform: scale(1); }
1341
+ }
1342
+
1343
+ .modal-content h3 {
1344
+ margin-bottom: 20px;
1345
+ color: var(--accent-primary);
1346
+ font-size: 1.1em;
1347
+ text-transform: uppercase;
1348
+ letter-spacing: 0.05em;
1349
+ }
1350
+
1351
+ .modal-description {
1352
+ color: var(--text-muted);
1353
+ font-size: 14px;
1354
+ line-height: 1.5;
1355
+ margin-bottom: 24px;
1356
+ }
1357
+
1358
+ .agent-selection {
1359
+ display: flex;
1360
+ flex-direction: column;
1361
+ gap: 8px;
1362
+ margin-bottom: 24px;
1363
+ }
1364
+
1365
+ .agent-selection label {
1366
+ display: flex;
1367
+ align-items: center;
1368
+ gap: 12px;
1369
+ padding: 10px 16px;
1370
+ background: var(--bg-app);
1371
+ border: 1px solid var(--border-subtle);
1372
+ border-radius: var(--radius-md);
1373
+ cursor: pointer;
1374
+ transition: all var(--transition-fast);
1375
+ }
1376
+
1377
+ .agent-selection label:hover {
1378
+ border-color: var(--accent-primary);
1379
+ background: var(--bg-surface-elevated);
1380
+ }
1381
+
1382
+ .agent-selection input[type="radio"] {
1383
+ width: 16px;
1384
+ height: 16px;
1385
+ accent-color: var(--accent-primary);
1386
+ }
1387
+
1388
+ .agent-selection input[type="radio"]:checked + .agent-name {
1389
+ color: var(--accent-primary);
1390
+ font-weight: 700;
1391
+ }
1392
+
1393
+ .agent-name {
1394
+ font-size: 14px;
1395
+ color: var(--text-main);
1396
+ font-family: 'Space Grotesk', sans-serif;
1397
+ }
1398
+
1399
+ .modal-actions {
1400
+ display: flex;
1401
+ justify-content: flex-end;
1402
+ gap: 12px;
1403
+ }
1404
+
1405
+ .modal-actions .small-button {
1406
+ padding: 10px 20px;
1407
+ font-size: 12px;
1408
+ }
1409
+
1410
+ /* Synthesis Tabs (Plan/Diff) */
1411
+ .synthesis-tabs {
1412
+ display: flex;
1413
+ gap: 4px;
1414
+ }
1415
+
1416
+ .synthesis-tab {
1417
+ padding: 6px 14px;
1418
+ background: transparent;
1419
+ border: 1px solid var(--border-subtle);
1420
+ border-radius: var(--radius-md);
1421
+ color: var(--text-muted);
1422
+ font-size: 12px;
1423
+ font-weight: 600;
1424
+ font-family: 'Space Grotesk', sans-serif;
1425
+ cursor: pointer;
1426
+ transition: all var(--transition-fast);
1427
+ text-transform: uppercase;
1428
+ letter-spacing: 0.05em;
1429
+ position: relative;
1430
+ }
1431
+
1432
+ .synthesis-tab:hover {
1433
+ color: var(--text-main);
1434
+ border-color: var(--text-muted);
1435
+ }
1436
+
1437
+ .synthesis-tab.active {
1438
+ background: var(--accent-primary);
1439
+ color: var(--bg-app);
1440
+ border-color: var(--accent-primary);
1441
+ }
1442
+
1443
+ .panel-header-actions {
1444
+ display: flex;
1445
+ gap: 8px;
1446
+ align-items: center;
1447
+ }
1448
+
1449
+ /* Diff Badge */
1450
+ .diff-badge {
1451
+ display: inline-block;
1452
+ background: var(--accent-danger);
1453
+ color: white;
1454
+ font-size: 10px;
1455
+ font-weight: 700;
1456
+ padding: 2px 6px;
1457
+ border-radius: 10px;
1458
+ margin-left: 6px;
1459
+ min-width: 18px;
1460
+ text-align: center;
1461
+ }
1462
+
1463
+ .synthesis-tab.active .diff-badge {
1464
+ background: var(--bg-app);
1465
+ color: var(--accent-primary);
1466
+ }
1467
+
1468
+ /* Synthesis Content Areas */
1469
+ .synthesis-content {
1470
+ display: none;
1471
+ flex: 1;
1472
+ overflow-y: auto;
1473
+ padding: 16px;
1474
+ font-size: 13px;
1475
+ line-height: 1.6;
1476
+ }
1477
+
1478
+ .synthesis-content.active {
1479
+ display: block;
1480
+ }
1481
+
1482
+ /* Diff Viewer */
1483
+ .diff-viewer {
1484
+ flex-direction: column;
1485
+ gap: 12px;
1486
+ }
1487
+
1488
+ .diff-viewer.active {
1489
+ display: flex;
1490
+ }
1491
+
1492
+ .diff-stats {
1493
+ display: flex;
1494
+ gap: 16px;
1495
+ padding: 8px 12px;
1496
+ background: var(--bg-app);
1497
+ border-radius: var(--radius-md);
1498
+ font-family: 'IBM Plex Mono', monospace;
1499
+ font-size: 12px;
1500
+ }
1501
+
1502
+ .diff-stat-files {
1503
+ color: var(--text-muted);
1504
+ }
1505
+
1506
+ .diff-stat-insertions {
1507
+ color: #22c55e;
1508
+ font-weight: 600;
1509
+ }
1510
+
1511
+ .diff-stat-deletions {
1512
+ color: #ef4444;
1513
+ font-weight: 600;
1514
+ }
1515
+
1516
+ .diff-stat-none {
1517
+ color: var(--text-dim);
1518
+ font-style: italic;
1519
+ }
1520
+
1521
+ .diff-content {
1522
+ flex: 1;
1523
+ overflow-y: auto;
1524
+ padding: 12px;
1525
+ }
1526
+
1527
+ .diff-output {
1528
+ margin: 0;
1529
+ padding: 12px;
1530
+ background: var(--bg-app);
1531
+ border-radius: var(--radius-md);
1532
+ font-family: 'IBM Plex Mono', monospace;
1533
+ font-size: 12px;
1534
+ line-height: 1.5;
1535
+ white-space: pre;
1536
+ overflow-x: auto;
1537
+ border: 1px solid var(--border-subtle);
1538
+ }
1539
+
1540
+ .diff-added {
1541
+ color: #22c55e;
1542
+ background: rgba(34, 197, 94, 0.1);
1543
+ display: block;
1544
+ }
1545
+
1546
+ .diff-removed {
1547
+ color: #ef4444;
1548
+ background: rgba(239, 68, 68, 0.1);
1549
+ display: block;
1550
+ }
1551
+
1552
+ .diff-file-header {
1553
+ color: var(--accent-secondary);
1554
+ font-weight: 600;
1555
+ display: block;
1556
+ }
1557
+
1558
+ .diff-hunk-header {
1559
+ color: var(--accent-primary);
1560
+ background: rgba(20, 241, 149, 0.1);
1561
+ display: block;
1562
+ }
1563
+
1564
+ .diff-file-separator {
1565
+ color: var(--text-dim);
1566
+ font-weight: 600;
1567
+ display: block;
1568
+ margin-top: 16px;
1569
+ padding-top: 8px;
1570
+ border-top: 1px solid var(--border-subtle);
1571
+ }
1572
+
1573
+ .diff-file-separator:first-child {
1574
+ margin-top: 0;
1575
+ padding-top: 0;
1576
+ border-top: none;
1577
+ }
1578
+
1579
+ .diff-empty,
1580
+ .diff-no-repo,
1581
+ .diff-error {
1582
+ color: var(--text-dim);
1583
+ display: block;
1584
+ padding: 24px;
1585
+ text-align: center;
1586
+ }
1587
+
1588
+ .diff-error {
1589
+ color: var(--accent-danger);
1590
+ }
1591
+
1592
+ /* Untracked Files */
1593
+ .diff-untracked {
1594
+ margin-top: 8px;
1595
+ }
1596
+
1597
+ .diff-untracked-header {
1598
+ font-family: 'Space Grotesk', sans-serif;
1599
+ font-size: 11px;
1600
+ font-weight: 600;
1601
+ text-transform: uppercase;
1602
+ letter-spacing: 0.05em;
1603
+ color: var(--accent-warning);
1604
+ margin-bottom: 8px;
1605
+ }
1606
+
1607
+ .diff-untracked-list {
1608
+ margin: 0;
1609
+ padding: 8px 12px;
1610
+ background: var(--bg-app);
1611
+ border-radius: var(--radius-md);
1612
+ border: 1px solid var(--border-subtle);
1613
+ list-style: none;
1614
+ }
1615
+
1616
+ .diff-untracked-list li {
1617
+ font-family: 'IBM Plex Mono', monospace;
1618
+ font-size: 12px;
1619
+ color: var(--accent-warning);
1620
+ padding: 2px 0;
1621
+ }
1622
+
1623
+ .diff-untracked-list li::before {
1624
+ content: '? ';
1625
+ color: var(--text-dim);
1626
+ }