claude-mpm 3.4.10__py3-none-any.whl → 3.4.14__py3-none-any.whl

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.
Files changed (29) hide show
  1. claude_mpm/cli/commands/run.py +10 -10
  2. claude_mpm/dashboard/index.html +13 -0
  3. claude_mpm/dashboard/static/css/dashboard.css +2722 -0
  4. claude_mpm/dashboard/static/js/components/agent-inference.js +619 -0
  5. claude_mpm/dashboard/static/js/components/event-processor.js +641 -0
  6. claude_mpm/dashboard/static/js/components/event-viewer.js +914 -0
  7. claude_mpm/dashboard/static/js/components/export-manager.js +362 -0
  8. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +611 -0
  9. claude_mpm/dashboard/static/js/components/hud-library-loader.js +211 -0
  10. claude_mpm/dashboard/static/js/components/hud-manager.js +671 -0
  11. claude_mpm/dashboard/static/js/components/hud-visualizer.js +1718 -0
  12. claude_mpm/dashboard/static/js/components/module-viewer.js +2701 -0
  13. claude_mpm/dashboard/static/js/components/session-manager.js +520 -0
  14. claude_mpm/dashboard/static/js/components/socket-manager.js +343 -0
  15. claude_mpm/dashboard/static/js/components/ui-state-manager.js +427 -0
  16. claude_mpm/dashboard/static/js/components/working-directory.js +866 -0
  17. claude_mpm/dashboard/static/js/dashboard-original.js +4134 -0
  18. claude_mpm/dashboard/static/js/dashboard.js +1978 -0
  19. claude_mpm/dashboard/static/js/socket-client.js +537 -0
  20. claude_mpm/dashboard/templates/index.html +346 -0
  21. claude_mpm/dashboard/test_dashboard.html +372 -0
  22. claude_mpm/scripts/socketio_daemon.py +51 -6
  23. claude_mpm/services/socketio_server.py +41 -5
  24. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/METADATA +2 -1
  25. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/RECORD +29 -9
  26. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/WHEEL +0 -0
  27. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/entry_points.txt +0 -0
  28. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/licenses/LICENSE +0 -0
  29. {claude_mpm-3.4.10.dist-info → claude_mpm-3.4.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2722 @@
1
+ /* Claude MPM Dashboard Styles */
2
+
3
+ /* Reset and Base Styles */
4
+ * {
5
+ margin: 0;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ body {
11
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
12
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
13
+ min-height: 100vh;
14
+ color: #333;
15
+ }
16
+
17
+ .container {
18
+ max-width: 1800px;
19
+ margin: 0 auto;
20
+ padding: 15px;
21
+ padding-bottom: 20px; /* Increased space for footer with more breathing room */
22
+ }
23
+
24
+ /* Footer Styles */
25
+ .footer {
26
+ position: fixed;
27
+ bottom: 0;
28
+ left: 0;
29
+ right: 0;
30
+ background: rgba(30, 41, 59, 0.95);
31
+ backdrop-filter: blur(10px);
32
+ color: #e2e8f0;
33
+ padding: 12px 15px;
34
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
35
+ z-index: 1000;
36
+ }
37
+
38
+ .footer-content {
39
+ max-width: 1800px;
40
+ margin: 0 auto;
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ gap: 10px;
45
+ font-size: 13px;
46
+ }
47
+
48
+ .footer-item {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 8px;
52
+ }
53
+
54
+ .footer-label {
55
+ color: #94a3b8;
56
+ font-weight: 500;
57
+ }
58
+
59
+ .footer-value {
60
+ color: #e2e8f0;
61
+ font-family: 'Monaco', 'Consolas', monospace;
62
+ font-size: 12px;
63
+ }
64
+
65
+ .footer-divider {
66
+ color: #475569;
67
+ }
68
+
69
+ /* Header Styles */
70
+ .header {
71
+ background: rgba(255, 255, 255, 0.95);
72
+ border-radius: 12px;
73
+ padding: 15px 15px;
74
+ margin-bottom: 15px;
75
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
76
+ backdrop-filter: blur(10px);
77
+ }
78
+
79
+ .header-top {
80
+ display: flex;
81
+ justify-content: space-between;
82
+ align-items: center;
83
+ gap: 20px;
84
+ flex-wrap: wrap;
85
+ }
86
+
87
+ .header-left {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 10px;
91
+ flex: 1;
92
+ }
93
+
94
+ .header h1 {
95
+ color: #4a5568;
96
+ font-size: 20px;
97
+ margin: 0;
98
+ font-weight: 600;
99
+ }
100
+
101
+ .header-row {
102
+ display: flex;
103
+ align-items: center;
104
+ gap: 10px;
105
+ min-height: 36px;
106
+ }
107
+
108
+ .header-row:first-child {
109
+ justify-content: space-between;
110
+ }
111
+
112
+ .header-row + .header-row {
113
+ margin-top: 12px;
114
+ padding-top: 12px;
115
+ border-top: 1px solid #e2e8f0;
116
+ }
117
+
118
+ .header-title {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: 6px;
122
+ }
123
+
124
+ /* Control Styles */
125
+ .connection-controls {
126
+ display: flex;
127
+ gap: 8px;
128
+ align-items: center;
129
+ }
130
+
131
+ /* Main Controls Row */
132
+ .main-controls {
133
+ justify-content: space-between;
134
+ }
135
+
136
+ .connection-toggle {
137
+ display: flex;
138
+ align-items: center;
139
+ }
140
+
141
+ /* Connection Controls Row */
142
+ .connection-controls-row {
143
+ transition: all 0.3s ease;
144
+ overflow: hidden;
145
+ max-height: 0;
146
+ opacity: 0;
147
+ padding-top: 0;
148
+ padding-bottom: 0;
149
+ margin-top: 0;
150
+ border-top: 1px solid transparent;
151
+ }
152
+
153
+ .connection-controls-row.show {
154
+ max-height: 80px;
155
+ opacity: 1;
156
+ padding-top: 12px;
157
+ padding-bottom: 12px;
158
+ margin-top: 12px;
159
+ border-top: 1px solid #e2e8f0;
160
+ }
161
+
162
+ .filter-group {
163
+ display: flex;
164
+ gap: 8px;
165
+ align-items: center;
166
+ flex: 1;
167
+ max-width: 400px;
168
+ }
169
+
170
+ .action-buttons {
171
+ display: flex;
172
+ gap: 8px;
173
+ align-items: center;
174
+ }
175
+
176
+ .session-group {
177
+ display: flex;
178
+ align-items: center;
179
+ gap: 8px;
180
+ }
181
+
182
+ .working-dir-group {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 10px;
186
+ }
187
+
188
+ .working-dir-display {
189
+ display: flex;
190
+ align-items: center;
191
+ gap: 5px;
192
+ background: #f8f9fa;
193
+ padding: 5px 10px;
194
+ border-radius: 6px;
195
+ border: 1px solid #e2e8f0;
196
+ }
197
+
198
+ .working-dir-path {
199
+ font-family: monospace;
200
+ font-size: 12px;
201
+ color: #2d3748;
202
+ max-width: 300px;
203
+ overflow: hidden;
204
+ text-overflow: ellipsis;
205
+ white-space: nowrap;
206
+ cursor: pointer;
207
+ }
208
+
209
+ .working-dir-path:hover {
210
+ color: #3182ce;
211
+ text-decoration: underline;
212
+ }
213
+
214
+ /* Directory Viewer Overlay Styles */
215
+ .directory-viewer-overlay {
216
+ position: fixed;
217
+ background: white;
218
+ border-radius: 8px;
219
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
220
+ border: 1px solid #e2e8f0;
221
+ z-index: 1001;
222
+ overflow: hidden;
223
+ }
224
+
225
+ .directory-viewer-content {
226
+ display: flex;
227
+ flex-direction: column;
228
+ max-height: 400px;
229
+ }
230
+
231
+ .directory-viewer-header {
232
+ display: flex;
233
+ justify-content: space-between;
234
+ align-items: center;
235
+ padding: 12px 15px;
236
+ background: #f8f9fa;
237
+ border-bottom: 1px solid #e2e8f0;
238
+ }
239
+
240
+ .directory-viewer-title {
241
+ margin: 0;
242
+ font-size: 14px;
243
+ font-weight: 600;
244
+ color: #2d3748;
245
+ }
246
+
247
+ .directory-viewer-header .close-btn {
248
+ background: none;
249
+ border: none;
250
+ font-size: 16px;
251
+ cursor: pointer;
252
+ color: #718096;
253
+ padding: 4px;
254
+ border-radius: 4px;
255
+ transition: all 0.2s;
256
+ }
257
+
258
+ .directory-viewer-header .close-btn:hover {
259
+ background: #e2e8f0;
260
+ color: #2d3748;
261
+ }
262
+
263
+ .directory-viewer-body {
264
+ flex: 1;
265
+ overflow-y: auto;
266
+ padding: 8px;
267
+ max-height: 300px;
268
+ }
269
+
270
+ .directory-viewer-body .file-item {
271
+ display: flex;
272
+ align-items: center;
273
+ gap: 8px;
274
+ padding: 6px 8px;
275
+ border-radius: 4px;
276
+ cursor: pointer;
277
+ transition: background-color 0.2s;
278
+ font-size: 12px;
279
+ }
280
+
281
+ .directory-viewer-body .file-item:hover {
282
+ background: #f8f9fa;
283
+ }
284
+
285
+ .directory-viewer-body .file-item.directory-item:hover {
286
+ background: #e6fffa;
287
+ }
288
+
289
+ .directory-viewer-body .file-icon {
290
+ min-width: 16px;
291
+ font-size: 14px;
292
+ }
293
+
294
+ .directory-viewer-body .file-name {
295
+ flex: 1;
296
+ font-family: monospace;
297
+ color: #2d3748;
298
+ word-break: break-all;
299
+ }
300
+
301
+ .directory-viewer-body .file-type {
302
+ font-size: 10px;
303
+ color: #718096;
304
+ text-transform: uppercase;
305
+ }
306
+
307
+ .directory-viewer-body .no-files,
308
+ .directory-viewer-body .loading-indicator {
309
+ text-align: center;
310
+ color: #718096;
311
+ padding: 20px;
312
+ font-style: italic;
313
+ }
314
+
315
+ .directory-viewer-body .directory-error {
316
+ display: flex;
317
+ align-items: center;
318
+ gap: 8px;
319
+ padding: 15px;
320
+ color: #e53e3e;
321
+ background: #fed7d7;
322
+ border-radius: 4px;
323
+ margin: 8px;
324
+ }
325
+
326
+ .directory-viewer-footer {
327
+ padding: 8px 15px;
328
+ background: #f8f9fa;
329
+ border-top: 1px solid #e2e8f0;
330
+ font-size: 11px;
331
+ color: #718096;
332
+ text-align: center;
333
+ }
334
+
335
+ .btn-icon {
336
+ background: none;
337
+ border: none;
338
+ cursor: pointer;
339
+ font-size: 16px;
340
+ padding: 2px;
341
+ border-radius: 4px;
342
+ transition: background-color 0.2s;
343
+ }
344
+
345
+ .btn-icon:hover {
346
+ background: rgba(0, 0, 0, 0.1);
347
+ }
348
+
349
+ .session-select {
350
+ width: 300px;
351
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
352
+ font-size: 11px;
353
+ }
354
+
355
+ label {
356
+ font-size: 12px;
357
+ font-weight: 600;
358
+ color: #4a5568;
359
+ white-space: nowrap;
360
+ }
361
+
362
+ .info-group {
363
+ display: flex;
364
+ gap: 6px;
365
+ margin-left: auto;
366
+ font-size: 12px;
367
+ color: #718096;
368
+ background: #f7fafc;
369
+ padding: 6px 6px;
370
+ border-radius: 6px;
371
+ }
372
+
373
+ .info-group span {
374
+ white-space: nowrap;
375
+ }
376
+
377
+ .info-separator {
378
+ color: #cbd5e0;
379
+ }
380
+
381
+ /* Status Badge Styles */
382
+ .status-badge {
383
+ padding: 4px 12px;
384
+ border-radius: 12px;
385
+ font-size: 12px;
386
+ font-weight: 600;
387
+ display: inline-flex;
388
+ align-items: center;
389
+ gap: 4px;
390
+ white-space: nowrap;
391
+ }
392
+
393
+ .status-connected {
394
+ background: #d4f8e8;
395
+ color: #22543d;
396
+ }
397
+
398
+ .status-disconnected {
399
+ background: #fed7d7;
400
+ color: #742a2a;
401
+ }
402
+
403
+ .status-connecting {
404
+ background: #feebc8;
405
+ color: #7b341e;
406
+ }
407
+
408
+ /* Status classes for tools and operations */
409
+ .status-success {
410
+ background: #c6f6d5;
411
+ color: #22543d;
412
+ padding: 2px 6px;
413
+ border-radius: 4px;
414
+ font-size: 11px;
415
+ font-weight: 500;
416
+ }
417
+
418
+ .status-pending {
419
+ background: #fed7d7;
420
+ color: #742a2a;
421
+ padding: 2px 6px;
422
+ border-radius: 4px;
423
+ font-size: 11px;
424
+ font-weight: 500;
425
+ }
426
+
427
+ /* Agent confidence levels */
428
+ .agent-confidence {
429
+ padding: 2px 6px;
430
+ border-radius: 4px;
431
+ font-size: 10px;
432
+ font-weight: 600;
433
+ text-transform: uppercase;
434
+ }
435
+
436
+ .agent-confidence.definitive {
437
+ background: #c6f6d5;
438
+ color: #22543d;
439
+ }
440
+
441
+ .agent-confidence.high {
442
+ background: #bee3f8;
443
+ color: #1a365d;
444
+ }
445
+
446
+ .agent-confidence.medium {
447
+ background: #feebc8;
448
+ color: #7b341e;
449
+ }
450
+
451
+ .agent-confidence.low,
452
+ .agent-confidence.default,
453
+ .agent-confidence.unknown {
454
+ background: #e2e8f0;
455
+ color: #4a5568;
456
+ }
457
+
458
+ /* Agent type styling */
459
+ .agent-type {
460
+ font-size: 12px;
461
+ padding: 2px 6px;
462
+ border-radius: 4px;
463
+ background: #edf2f7;
464
+ color: #4a5568;
465
+ font-weight: 500;
466
+ }
467
+
468
+ /* Tool status styling */
469
+ .tool-status {
470
+ font-size: 11px;
471
+ font-weight: 500;
472
+ }
473
+
474
+ /* Metrics Widget */
475
+ .metrics-widget {
476
+ display: flex;
477
+ gap: 10px;
478
+ align-items: center;
479
+ background: #f7fafc;
480
+ padding: 8px 8px;
481
+ border-radius: 8px;
482
+ }
483
+
484
+ .metric-mini {
485
+ text-align: center;
486
+ }
487
+
488
+ .metric-mini-value {
489
+ font-size: 16px;
490
+ font-weight: bold;
491
+ color: #4299e1;
492
+ line-height: 1.2;
493
+ }
494
+
495
+ .metric-mini-label {
496
+ font-size: 10px;
497
+ color: #718096;
498
+ text-transform: uppercase;
499
+ letter-spacing: 0.5px;
500
+ margin-top: 2px;
501
+ }
502
+
503
+ .connection-info {
504
+ display: flex;
505
+ gap: 8px;
506
+ font-size: 12px;
507
+ color: #718096;
508
+ }
509
+
510
+ .connection-info span {
511
+ white-space: nowrap;
512
+ }
513
+
514
+ /* Form Controls */
515
+ input, select, button {
516
+ padding: 6px 10px;
517
+ border: 1px solid #e2e8f0;
518
+ border-radius: 6px;
519
+ font-size: 12px;
520
+ transition: all 0.2s;
521
+ }
522
+
523
+ #port-input {
524
+ width: 50px;
525
+ text-align: center;
526
+ }
527
+
528
+ #search-input {
529
+ flex: 1;
530
+ min-width: 150px;
531
+ }
532
+
533
+ input:focus, select:focus {
534
+ outline: none;
535
+ border-color: #4299e1;
536
+ box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1);
537
+ }
538
+
539
+ /* Button Styles */
540
+ button {
541
+ background: #4299e1;
542
+ color: white;
543
+ border: none;
544
+ cursor: pointer;
545
+ font-weight: 500;
546
+ padding: 6px 14px;
547
+ font-size: 12px;
548
+ white-space: nowrap;
549
+ }
550
+
551
+ button:hover {
552
+ background: #3182ce;
553
+ transform: translateY(-1px);
554
+ }
555
+
556
+ button:active {
557
+ transform: translateY(0);
558
+ }
559
+
560
+ .btn-secondary {
561
+ background: #718096;
562
+ }
563
+
564
+ .btn-secondary:hover {
565
+ background: #4a5568;
566
+ }
567
+
568
+ .btn-success {
569
+ background: #48bb78;
570
+ }
571
+
572
+ .btn-success:hover {
573
+ background: #38a169;
574
+ }
575
+
576
+ /* Events Container */
577
+ .events-wrapper {
578
+ background: rgba(255, 255, 255, 0.95);
579
+ border-radius: 12px;
580
+ padding: 10px;
581
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
582
+ height: calc(100vh - 230px); /* Adjusted for increased padding and footer clearance */
583
+ min-height: 400px;
584
+ display: flex;
585
+ flex-direction: column;
586
+ }
587
+
588
+ /* Tab Navigation */
589
+ .tab-nav {
590
+ display: flex;
591
+ gap: 5px;
592
+ margin-bottom: 0;
593
+ border-bottom: 2px solid #e2e8f0;
594
+ }
595
+
596
+ .tab-filters {
597
+ padding: 10px 8px;
598
+ background: #f8f9fa;
599
+ border-bottom: 1px solid #e2e8f0;
600
+ display: flex;
601
+ gap: 5px;
602
+ align-items: center;
603
+ position: sticky;
604
+ top: 0;
605
+ z-index: 100;
606
+ }
607
+
608
+ .tab-filters input {
609
+ flex: 1;
610
+ min-width: 200px;
611
+ }
612
+
613
+ .tab-filters select {
614
+ min-width: 120px;
615
+ }
616
+
617
+ .tab-filters label {
618
+ font-size: 12px;
619
+ font-weight: 600;
620
+ color: #4a5568;
621
+ white-space: nowrap;
622
+ }
623
+
624
+ .tab-button {
625
+ padding: 10px 10px;
626
+ background: none;
627
+ border: none;
628
+ border-bottom: 3px solid transparent;
629
+ cursor: pointer;
630
+ font-size: 14px;
631
+ font-weight: 500;
632
+ color: #64748b;
633
+ transition: all 0.2s;
634
+ }
635
+
636
+ .tab-button:hover {
637
+ color: #475569;
638
+ background: rgba(0, 0, 0, 0.02);
639
+ }
640
+
641
+ .tab-button.active {
642
+ color: #3b82f6;
643
+ border-bottom-color: #3b82f6;
644
+ }
645
+
646
+ .tab-content {
647
+ flex: 1;
648
+ display: none;
649
+ overflow: hidden;
650
+ height: 100%;
651
+ min-height: 0;
652
+ }
653
+
654
+ .tab-content.active {
655
+ display: flex;
656
+ flex-direction: column;
657
+ }
658
+
659
+ /* Split Container Layout */
660
+ .split-container {
661
+ display: flex;
662
+ gap: 8px;
663
+ flex: 1;
664
+ overflow: hidden;
665
+ height: 100%;
666
+ min-height: 0;
667
+ }
668
+
669
+ .module-viewer {
670
+ width: 40%;
671
+ display: flex;
672
+ flex-direction: column;
673
+ border: 1px solid #e2e8f0;
674
+ border-radius: 6px;
675
+ background: #f8f9fa;
676
+ overflow: hidden;
677
+ height: 100%;
678
+ min-height: 0;
679
+ max-height: 100%;
680
+ }
681
+
682
+ .events-container {
683
+ flex: 1;
684
+ display: flex;
685
+ flex-direction: column;
686
+ border: 1px solid #e2e8f0;
687
+ border-radius: 6px;
688
+ background: #f8f9fa;
689
+ overflow: hidden;
690
+ height: 100%;
691
+ min-height: 0;
692
+ max-height: 100%;
693
+ }
694
+
695
+ /* Module Viewer */
696
+ .module-header {
697
+ display: flex;
698
+ justify-content: space-between;
699
+ align-items: center;
700
+ padding: 10px 8px;
701
+ border-bottom: 1px solid #e2e8f0;
702
+ background: white;
703
+ }
704
+
705
+ .module-header h4 {
706
+ margin: 0;
707
+ font-size: 14px;
708
+ color: #4a5568;
709
+ font-weight: 600;
710
+ }
711
+
712
+ /* Updated layout for module viewer - single scrollable pane */
713
+ .module-panes {
714
+ display: flex;
715
+ flex-direction: column;
716
+ flex: 1;
717
+ overflow: hidden;
718
+ height: 100%;
719
+ min-height: 0;
720
+ max-height: 100%;
721
+ }
722
+
723
+ .module-data-pane {
724
+ flex: 1;
725
+ display: flex;
726
+ flex-direction: column;
727
+ overflow: hidden;
728
+ height: 100%;
729
+ min-height: 0;
730
+ max-height: 100%;
731
+ }
732
+
733
+ .module-json-pane {
734
+ flex: 0 0 120px;
735
+ display: flex;
736
+ flex-direction: column;
737
+ overflow: hidden;
738
+ min-height: 80px;
739
+ max-height: 120px;
740
+ border-top: 1px solid #e2e8f0;
741
+ }
742
+
743
+ .module-data-header,
744
+ .module-json-header {
745
+ display: flex;
746
+ justify-content: space-between;
747
+ align-items: center;
748
+ padding: 8px 8px;
749
+ border-bottom: 1px solid #e2e8f0;
750
+ background: #f8f9fa;
751
+ font-size: 12px;
752
+ }
753
+
754
+ .module-data-header h5,
755
+ .module-json-header h5 {
756
+ margin: 0;
757
+ font-size: 12px;
758
+ color: #4a5568;
759
+ font-weight: 600;
760
+ }
761
+
762
+ .module-data-content {
763
+ flex: 1;
764
+ overflow-y: auto;
765
+ padding: 8px;
766
+ background: white;
767
+ height: 100%;
768
+ min-height: 0;
769
+ max-height: 100%;
770
+ scrollbar-width: thin;
771
+ scrollbar-color: #cbd5e0 #f7fafc;
772
+ }
773
+
774
+ .module-data-content::-webkit-scrollbar {
775
+ width: 6px;
776
+ }
777
+
778
+ .module-data-content::-webkit-scrollbar-track {
779
+ background: #f7fafc;
780
+ }
781
+
782
+ .module-data-content::-webkit-scrollbar-thumb {
783
+ background: #cbd5e0;
784
+ border-radius: 3px;
785
+ }
786
+
787
+ .module-data-content::-webkit-scrollbar-thumb:hover {
788
+ background: #a0aec0;
789
+ }
790
+
791
+ .module-json-content {
792
+ flex: 1;
793
+ overflow-y: auto;
794
+ padding: 8px;
795
+ background: #f8fafc;
796
+ font-family: 'Monaco', 'Consolas', 'Courier New', monospace;
797
+ font-size: 12px;
798
+ line-height: 1.5;
799
+ height: 100%;
800
+ min-height: 0;
801
+ }
802
+
803
+ /* Contextual Header */
804
+ .contextual-header {
805
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
806
+ color: white;
807
+ padding: 12px 8px;
808
+ margin-bottom: 15px;
809
+ border-radius: 8px;
810
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
811
+ }
812
+
813
+ .contextual-header-text {
814
+ margin: 0;
815
+ font-size: 14px;
816
+ font-weight: 600;
817
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
818
+ height: 100%;
819
+ min-height: 0;
820
+ }
821
+
822
+ .module-json-content {
823
+ background: #f8fafc;
824
+ font-family: 'Monaco', 'Consolas', 'Courier New', monospace;
825
+ font-size: 12px;
826
+ line-height: 1.5;
827
+ }
828
+
829
+ /* Legacy support - remove old module-content class */
830
+ .module-content {
831
+ flex: 1;
832
+ overflow-y: auto;
833
+ padding: 8px;
834
+ background: white;
835
+ height: 100%;
836
+ min-height: 0;
837
+ }
838
+
839
+ .module-empty {
840
+ text-align: center;
841
+ color: #718096;
842
+ padding: 40px;
843
+ font-style: italic;
844
+ }
845
+
846
+ .module-hint {
847
+ color: #94a3b8;
848
+ font-size: 12px;
849
+ margin-top: 8px;
850
+ }
851
+
852
+ /* Events List */
853
+ .events-list {
854
+ flex: 1;
855
+ overflow-y: auto;
856
+ padding: 5px;
857
+ background: white;
858
+ height: 100%;
859
+ min-height: 0;
860
+ }
861
+
862
+ /* Other List Containers */
863
+ .agents-list,
864
+ .tools-list,
865
+ .files-list {
866
+ flex: 1;
867
+ overflow-y: auto;
868
+ padding: 5px;
869
+ background: white;
870
+ height: 100%;
871
+ min-height: 0;
872
+ }
873
+
874
+ .no-events,
875
+ .no-agents,
876
+ .no-tools,
877
+ .no-files {
878
+ text-align: center;
879
+ color: #718096;
880
+ padding: 40px;
881
+ font-style: italic;
882
+ }
883
+
884
+ /* Event Items */
885
+ .event-item {
886
+ background: white;
887
+ border-radius: 6px;
888
+ padding: 6px;
889
+ margin-bottom: 8px;
890
+ border-left: 4px solid #4299e1;
891
+ cursor: pointer;
892
+ transition: all 0.2s;
893
+ }
894
+
895
+ /* Single-row event items */
896
+ .event-item.single-row {
897
+ padding: 8px 6px;
898
+ display: flex;
899
+ align-items: center;
900
+ justify-content: space-between;
901
+ min-height: 40px;
902
+ }
903
+
904
+ .event-single-row-content {
905
+ font-size: 13px;
906
+ color: #2d3748;
907
+ line-height: 1.4;
908
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
909
+ word-break: break-all;
910
+ flex: 1;
911
+ display: flex;
912
+ justify-content: space-between;
913
+ align-items: center;
914
+ }
915
+
916
+ .event-content-main {
917
+ flex: 1;
918
+ white-space: nowrap;
919
+ overflow: hidden;
920
+ text-overflow: ellipsis;
921
+ margin-right: 12px;
922
+ }
923
+
924
+ .event-timestamp {
925
+ color: #64748b;
926
+ font-size: 12px;
927
+ white-space: nowrap;
928
+ margin-left: auto;
929
+ font-weight: 500;
930
+ }
931
+
932
+ /* Other Item Types */
933
+ .agent-item,
934
+ .tool-item,
935
+ .file-item {
936
+ background: white;
937
+ border-radius: 6px;
938
+ padding: 6px;
939
+ margin-bottom: 8px;
940
+ border-left: 4px solid #4299e1;
941
+ cursor: pointer;
942
+ transition: all 0.2s;
943
+ }
944
+
945
+ .agent-item:hover,
946
+ .tool-item:hover,
947
+ .file-item:hover {
948
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
949
+ transform: translateX(2px);
950
+ }
951
+
952
+ .event-item:hover {
953
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
954
+ transform: translateX(2px);
955
+ }
956
+
957
+ .event-item.single-row:hover {
958
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
959
+ transform: translateX(2px);
960
+ }
961
+
962
+ .event-item.selected {
963
+ background: #e3f2fd;
964
+ border-left: 4px solid #2196f3;
965
+ padding-left: 16px;
966
+ box-shadow: 0 2px 12px rgba(33, 150, 243, 0.2);
967
+ }
968
+
969
+ /* Selected state for all card types - unified styling */
970
+ .event-item.selected,
971
+ .agent-item.selected,
972
+ .tool-item.selected,
973
+ .file-item.selected {
974
+ background: #e3f2fd !important;
975
+ border-left: 4px solid #2196f3 !important;
976
+ box-shadow: 0 2px 12px rgba(33, 150, 243, 0.2) !important;
977
+ transform: translateX(4px) !important;
978
+ }
979
+
980
+ /* Single-row selected state */
981
+ .event-item.single-row.selected {
982
+ background: #e3f2fd !important;
983
+ border-left: 4px solid #2196f3 !important;
984
+ box-shadow: 0 2px 12px rgba(33, 150, 243, 0.2) !important;
985
+ transform: translateX(4px) !important;
986
+ }
987
+
988
+ .event-item .event-data strong {
989
+ color: #475569;
990
+ font-weight: 600;
991
+ }
992
+
993
+ .event-header {
994
+ display: flex;
995
+ justify-content: space-between;
996
+ align-items: center;
997
+ margin-bottom: 5px;
998
+ }
999
+
1000
+ .event-type {
1001
+ font-weight: 600;
1002
+ color: #2d3748;
1003
+ }
1004
+
1005
+ .event-timestamp {
1006
+ font-size: 12px;
1007
+ color: #718096;
1008
+ }
1009
+
1010
+ .event-data {
1011
+ font-size: 14px;
1012
+ color: #4a5568;
1013
+ margin-top: 5px;
1014
+ }
1015
+
1016
+ /* Event Type Colors */
1017
+ .event-session {
1018
+ background: white;
1019
+ border-left-color: #48bb78;
1020
+ }
1021
+
1022
+ .event-claude {
1023
+ background: white;
1024
+ border-left-color: #ed8936;
1025
+ }
1026
+
1027
+ .event-agent {
1028
+ background: white;
1029
+ border-left-color: #9f7aea;
1030
+ }
1031
+
1032
+ .event-hook {
1033
+ background: white;
1034
+ border-left-color: #38b2ac;
1035
+ }
1036
+
1037
+ .event-todo {
1038
+ background: white;
1039
+ border-left-color: #e53e3e;
1040
+ }
1041
+
1042
+ .event-memory {
1043
+ background: white;
1044
+ border-left-color: #d69e2e;
1045
+ }
1046
+
1047
+ .event-log {
1048
+ background: white;
1049
+ border-left-color: #718096;
1050
+ }
1051
+
1052
+ /* File Path Display */
1053
+ .file-path {
1054
+ font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1055
+ font-size: 13px;
1056
+ color: #2d3748;
1057
+ word-break: break-all;
1058
+ }
1059
+
1060
+ .file-agent {
1061
+ font-size: 12px;
1062
+ color: #718096;
1063
+ margin-left: 8px;
1064
+ font-style: italic;
1065
+ }
1066
+
1067
+ /* Event Class Sections */
1068
+ .event-class-section {
1069
+ margin-bottom: 20px;
1070
+ }
1071
+
1072
+ .event-class-header {
1073
+ font-weight: 600;
1074
+ color: #2d3748;
1075
+ font-size: 14px;
1076
+ margin-bottom: 15px;
1077
+ padding: 10px;
1078
+ background: #f7fafc;
1079
+ border-radius: 6px;
1080
+ border-left: 4px solid #4299e1;
1081
+ display: flex;
1082
+ align-items: center;
1083
+ gap: 8px;
1084
+ }
1085
+
1086
+ .event-class-icon {
1087
+ font-size: 16px;
1088
+ }
1089
+
1090
+ /* Event Detail Cards */
1091
+ .event-detail-card {
1092
+ background: white;
1093
+ border: 1px solid #e2e8f0;
1094
+ border-radius: 6px;
1095
+ margin-bottom: 10px;
1096
+ overflow: hidden;
1097
+ }
1098
+
1099
+ .event-detail-header {
1100
+ background: #f7fafc;
1101
+ padding: 8px 12px;
1102
+ border-bottom: 1px solid #e2e8f0;
1103
+ display: flex;
1104
+ justify-content: space-between;
1105
+ align-items: center;
1106
+ }
1107
+
1108
+ .event-detail-title {
1109
+ font-weight: 600;
1110
+ color: #2d3748;
1111
+ font-size: 13px;
1112
+ }
1113
+
1114
+ .event-detail-time {
1115
+ font-size: 11px;
1116
+ color: #718096;
1117
+ }
1118
+
1119
+ .event-detail-content {
1120
+ padding: 12px;
1121
+ }
1122
+
1123
+ .event-property {
1124
+ display: flex;
1125
+ margin-bottom: 6px;
1126
+ font-size: 12px;
1127
+ }
1128
+
1129
+ .event-property:last-child {
1130
+ margin-bottom: 0;
1131
+ }
1132
+
1133
+ .event-property-key {
1134
+ font-weight: 600;
1135
+ color: #4a5568;
1136
+ margin-right: 8px;
1137
+ min-width: 80px;
1138
+ }
1139
+
1140
+ .event-property-value {
1141
+ color: #2d3748;
1142
+ word-wrap: break-word;
1143
+ flex: 1;
1144
+ }
1145
+
1146
+ /* JSON Display */
1147
+ .json-section {
1148
+ margin-top: 20px;
1149
+ border-top: 1px solid #e2e8f0;
1150
+ padding-top: 15px;
1151
+ }
1152
+
1153
+ .json-header {
1154
+ margin-bottom: 10px;
1155
+ }
1156
+
1157
+ .json-header h4 {
1158
+ margin: 0;
1159
+ color: #1e293b;
1160
+ font-size: 14px;
1161
+ font-weight: 600;
1162
+ }
1163
+
1164
+ /* Collapsible JSON Section */
1165
+ .collapsible-json-section {
1166
+ margin-top: 20px;
1167
+ border-top: 1px solid #e2e8f0;
1168
+ padding-top: 0;
1169
+ }
1170
+
1171
+ .json-toggle-header {
1172
+ background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%);
1173
+ border: 1px solid #e2e8f0;
1174
+ border-radius: 8px;
1175
+ padding: 12px 16px;
1176
+ cursor: pointer;
1177
+ display: flex;
1178
+ align-items: center;
1179
+ justify-content: space-between;
1180
+ transition: all 0.2s ease;
1181
+ margin-bottom: 0;
1182
+ user-select: none;
1183
+ }
1184
+
1185
+ .json-toggle-header:hover {
1186
+ background: linear-gradient(135deg, #edf2f7 0%, #e2e8f0 100%);
1187
+ transform: translateY(-1px);
1188
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
1189
+ }
1190
+
1191
+ .json-toggle-header:active {
1192
+ transform: translateY(0);
1193
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1194
+ }
1195
+
1196
+ .json-toggle-header:focus {
1197
+ outline: 2px solid #4299e1;
1198
+ outline-offset: 2px;
1199
+ }
1200
+
1201
+ .json-toggle-text {
1202
+ font-size: 14px;
1203
+ font-weight: 600;
1204
+ color: #4a5568;
1205
+ display: flex;
1206
+ align-items: center;
1207
+ gap: 8px;
1208
+ }
1209
+
1210
+ .json-toggle-text::before {
1211
+ content: '🔍';
1212
+ font-size: 16px;
1213
+ }
1214
+
1215
+ .json-toggle-arrow {
1216
+ font-size: 14px;
1217
+ font-weight: bold;
1218
+ color: #4a5568;
1219
+ transition: transform 0.2s ease;
1220
+ }
1221
+
1222
+ .json-content-collapsible {
1223
+ border: 1px solid #e2e8f0;
1224
+ border-top: none;
1225
+ border-radius: 0 0 8px 8px;
1226
+ overflow: hidden;
1227
+ transition: all 0.3s ease;
1228
+ }
1229
+
1230
+ .json-content-collapsible[aria-hidden="false"] {
1231
+ animation: slideDown 0.3s ease;
1232
+ }
1233
+
1234
+ @keyframes slideDown {
1235
+ from {
1236
+ opacity: 0;
1237
+ max-height: 0;
1238
+ }
1239
+ to {
1240
+ opacity: 1;
1241
+ max-height: 500px;
1242
+ }
1243
+ }
1244
+
1245
+ .json-display {
1246
+ background: #f8fafc;
1247
+ border-radius: 0;
1248
+ padding: 16px;
1249
+ overflow-x: auto;
1250
+ font-family: 'Monaco', 'Consolas', 'Courier New', monospace;
1251
+ font-size: 12px;
1252
+ line-height: 1.5;
1253
+ color: #1e293b;
1254
+ max-height: 400px;
1255
+ overflow-y: auto;
1256
+ margin: 0;
1257
+ border: none;
1258
+ position: relative;
1259
+ }
1260
+
1261
+ .json-display pre {
1262
+ margin: 0;
1263
+ padding: 0;
1264
+ white-space: pre-wrap;
1265
+ word-wrap: break-word;
1266
+ }
1267
+
1268
+ /* Copy button for JSON content */
1269
+ .json-display::before {
1270
+ content: '📋';
1271
+ position: absolute;
1272
+ top: 8px;
1273
+ right: 8px;
1274
+ background: rgba(255, 255, 255, 0.9);
1275
+ border: 1px solid #e2e8f0;
1276
+ border-radius: 4px;
1277
+ padding: 4px 8px;
1278
+ font-size: 14px;
1279
+ cursor: pointer;
1280
+ opacity: 0;
1281
+ transition: opacity 0.2s ease;
1282
+ z-index: 10;
1283
+ }
1284
+
1285
+ .json-display:hover::before {
1286
+ opacity: 1;
1287
+ }
1288
+
1289
+ /* Structured Data View */
1290
+ .structured-view-section {
1291
+ margin-bottom: 20px;
1292
+ }
1293
+
1294
+ .structured-view-header {
1295
+ margin-bottom: 15px;
1296
+ padding-bottom: 8px;
1297
+ border-bottom: 1px solid #e2e8f0;
1298
+ }
1299
+
1300
+ .structured-view-header h4 {
1301
+ margin: 0;
1302
+ color: #1e293b;
1303
+ font-size: 14px;
1304
+ font-weight: 600;
1305
+ }
1306
+
1307
+ .structured-data {
1308
+ background: #f8fafc;
1309
+ border: 1px solid #e2e8f0;
1310
+ border-radius: 6px;
1311
+ padding: 12px;
1312
+ }
1313
+
1314
+ .structured-field {
1315
+ margin-bottom: 8px;
1316
+ font-size: 13px;
1317
+ line-height: 1.4;
1318
+ color: #4a5568;
1319
+ }
1320
+
1321
+ .structured-field:last-child {
1322
+ margin-bottom: 0;
1323
+ }
1324
+
1325
+ .structured-field strong {
1326
+ color: #2d3748;
1327
+ font-weight: 600;
1328
+ margin-right: 8px;
1329
+ }
1330
+
1331
+ /* Todo Checklist */
1332
+ .todo-checklist {
1333
+ margin-top: 15px;
1334
+ background: #f8fafc;
1335
+ border: 1px solid #e2e8f0;
1336
+ border-radius: 6px;
1337
+ padding: 12px;
1338
+ }
1339
+
1340
+ .todo-checklist-header {
1341
+ font-weight: 600;
1342
+ color: #2d3748;
1343
+ margin-bottom: 10px;
1344
+ font-size: 13px;
1345
+ border-bottom: 1px solid #e2e8f0;
1346
+ padding-bottom: 8px;
1347
+ }
1348
+
1349
+ .todo-item {
1350
+ display: flex;
1351
+ align-items: flex-start;
1352
+ gap: 8px;
1353
+ margin-bottom: 6px;
1354
+ padding: 6px 8px;
1355
+ border-radius: 4px;
1356
+ transition: background-color 0.2s;
1357
+ }
1358
+
1359
+ .todo-item:hover {
1360
+ background: rgba(0, 0, 0, 0.02);
1361
+ }
1362
+
1363
+ .todo-item:last-child {
1364
+ margin-bottom: 0;
1365
+ }
1366
+
1367
+ .todo-status {
1368
+ font-size: 14px;
1369
+ line-height: 1.4;
1370
+ min-width: 16px;
1371
+ display: inline-block;
1372
+ }
1373
+
1374
+ .todo-content {
1375
+ flex: 1;
1376
+ font-size: 12px;
1377
+ line-height: 1.4;
1378
+ color: #4a5568;
1379
+ word-wrap: break-word;
1380
+ }
1381
+
1382
+ .todo-completed .todo-content {
1383
+ color: #68d391;
1384
+ text-decoration: line-through;
1385
+ }
1386
+
1387
+ .todo-in-progress .todo-content {
1388
+ color: #4299e1;
1389
+ font-weight: 500;
1390
+ }
1391
+
1392
+ .todo-pending .todo-content {
1393
+ color: #4a5568;
1394
+ }
1395
+
1396
+ /* Modal Styles */
1397
+ .modal {
1398
+ display: none;
1399
+ position: fixed;
1400
+ z-index: 1000;
1401
+ left: 0;
1402
+ top: 0;
1403
+ width: 100%;
1404
+ height: 100%;
1405
+ background-color: rgba(0, 0, 0, 0.5);
1406
+ align-items: center;
1407
+ justify-content: center;
1408
+ }
1409
+
1410
+ .modal-content {
1411
+ background-color: white;
1412
+ margin: 5% auto;
1413
+ padding: 20px;
1414
+ border-radius: 12px;
1415
+ width: 80%;
1416
+ max-width: 800px;
1417
+ max-height: 80%;
1418
+ overflow-y: auto;
1419
+ }
1420
+
1421
+ .close {
1422
+ color: #aaa;
1423
+ float: right;
1424
+ font-size: 28px;
1425
+ font-weight: bold;
1426
+ cursor: pointer;
1427
+ }
1428
+
1429
+ .close:hover {
1430
+ color: #000;
1431
+ }
1432
+
1433
+ /* Code Display */
1434
+ pre {
1435
+ background: #f8f9fa;
1436
+ padding: 15px;
1437
+ border-radius: 6px;
1438
+ overflow-x: auto;
1439
+ font-size: 12px;
1440
+ line-height: 1.4;
1441
+ }
1442
+
1443
+ /* Git Diff Modal Styles */
1444
+ .git-diff-modal {
1445
+ z-index: 1001; /* Higher than regular modals */
1446
+ }
1447
+
1448
+ .modal-content.git-diff-content {
1449
+ width: 95vw;
1450
+ height: 95vh;
1451
+ max-width: none;
1452
+ max-height: none;
1453
+ margin: 2.5vh auto;
1454
+ padding: 0;
1455
+ display: flex;
1456
+ flex-direction: column;
1457
+ background: #ffffff;
1458
+ border-radius: 8px;
1459
+ box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
1460
+ }
1461
+
1462
+ .git-diff-header {
1463
+ display: flex;
1464
+ align-items: center;
1465
+ justify-content: space-between;
1466
+ padding: 20px 24px;
1467
+ border-bottom: 1px solid #e2e8f0;
1468
+ background: #f8fafc;
1469
+ border-radius: 8px 8px 0 0;
1470
+ min-height: 60px;
1471
+ flex-shrink: 0; /* Prevent header from shrinking */
1472
+ }
1473
+
1474
+ .git-diff-title {
1475
+ display: flex;
1476
+ align-items: center;
1477
+ gap: 12px;
1478
+ margin: 0;
1479
+ font-size: 20px;
1480
+ font-weight: 600;
1481
+ color: #2d3748;
1482
+ }
1483
+
1484
+ .git-diff-icon {
1485
+ font-size: 24px;
1486
+ }
1487
+
1488
+ /* Styles for tracked/untracked file indicators */
1489
+ .git-diff-icon.tracked-file {
1490
+ opacity: 1;
1491
+ filter: none;
1492
+ }
1493
+
1494
+ .git-diff-icon.untracked-file {
1495
+ opacity: 0.8;
1496
+ position: relative;
1497
+ }
1498
+
1499
+ .git-diff-icon.untracked-file:hover {
1500
+ opacity: 1;
1501
+ }
1502
+
1503
+ /* Add visual emphasis for untracked files */
1504
+ .git-diff-icon.untracked-file::after {
1505
+ content: '';
1506
+ position: absolute;
1507
+ top: 0;
1508
+ left: 0;
1509
+ right: 0;
1510
+ bottom: 0;
1511
+ background: rgba(255, 0, 0, 0.1);
1512
+ border-radius: 3px;
1513
+ pointer-events: none;
1514
+ }
1515
+
1516
+ .git-diff-meta {
1517
+ display: flex;
1518
+ flex-direction: column;
1519
+ gap: 4px;
1520
+ flex: 1;
1521
+ margin-left: 20px;
1522
+ }
1523
+
1524
+ .git-diff-file-path {
1525
+ font-family: 'Monaco', 'Consolas', monospace;
1526
+ font-size: 14px;
1527
+ font-weight: 600;
1528
+ color: #4a5568;
1529
+ word-break: break-all;
1530
+ }
1531
+
1532
+ .git-diff-timestamp {
1533
+ font-size: 12px;
1534
+ color: #718096;
1535
+ }
1536
+
1537
+ .git-diff-close {
1538
+ background: none;
1539
+ border: none;
1540
+ font-size: 24px;
1541
+ cursor: pointer;
1542
+ color: #a0aec0;
1543
+ padding: 8px;
1544
+ border-radius: 4px;
1545
+ transition: all 0.2s ease;
1546
+ display: flex;
1547
+ align-items: center;
1548
+ justify-content: center;
1549
+ width: 40px;
1550
+ height: 40px;
1551
+ }
1552
+
1553
+ .git-diff-close:hover {
1554
+ background: #fed7d7;
1555
+ color: #e53e3e;
1556
+ }
1557
+
1558
+ .git-diff-body {
1559
+ flex: 1;
1560
+ display: flex;
1561
+ flex-direction: column;
1562
+ overflow: hidden;
1563
+ min-height: 0; /* Important for flexbox scrolling */
1564
+ position: relative; /* Establish positioning context */
1565
+ }
1566
+
1567
+ .git-diff-loading {
1568
+ display: flex;
1569
+ flex-direction: column;
1570
+ align-items: center;
1571
+ justify-content: center;
1572
+ flex: 1;
1573
+ gap: 16px;
1574
+ color: #4a5568;
1575
+ font-size: 14px;
1576
+ }
1577
+
1578
+ .loading-spinner {
1579
+ width: 40px;
1580
+ height: 40px;
1581
+ border: 3px solid #e2e8f0;
1582
+ border-top: 3px solid #4299e1;
1583
+ border-radius: 50%;
1584
+ animation: spin 1s linear infinite;
1585
+ }
1586
+
1587
+ @keyframes spin {
1588
+ 0% { transform: rotate(0deg); }
1589
+ 100% { transform: rotate(360deg); }
1590
+ }
1591
+
1592
+ .git-diff-error {
1593
+ padding: 24px;
1594
+ text-align: center;
1595
+ display: flex;
1596
+ flex-direction: column;
1597
+ align-items: center;
1598
+ gap: 16px;
1599
+ }
1600
+
1601
+ .error-icon {
1602
+ font-size: 48px;
1603
+ }
1604
+
1605
+ .error-message {
1606
+ font-size: 16px;
1607
+ color: #e53e3e;
1608
+ font-weight: 500;
1609
+ margin-bottom: 8px;
1610
+ }
1611
+
1612
+ .error-suggestions {
1613
+ background: #fef5e7;
1614
+ border: 1px solid #f6e05e;
1615
+ border-radius: 6px;
1616
+ padding: 16px;
1617
+ color: #744210;
1618
+ font-size: 14px;
1619
+ max-width: 500px;
1620
+ }
1621
+
1622
+ .error-suggestions h4 {
1623
+ margin: 0 0 8px 0;
1624
+ color: #744210;
1625
+ font-size: 14px;
1626
+ }
1627
+
1628
+ .error-suggestions ul {
1629
+ margin: 0;
1630
+ padding-left: 20px;
1631
+ }
1632
+
1633
+ .error-suggestions li {
1634
+ margin-bottom: 4px;
1635
+ }
1636
+
1637
+ .git-diff-content-area {
1638
+ flex: 1;
1639
+ display: flex;
1640
+ flex-direction: column;
1641
+ overflow: hidden;
1642
+ min-height: 0; /* Important for flexbox scrolling */
1643
+ height: 100%;
1644
+ max-height: calc(100% - 80px); /* Account for header */
1645
+ }
1646
+
1647
+ .git-diff-toolbar {
1648
+ display: flex;
1649
+ justify-content: space-between;
1650
+ align-items: center;
1651
+ padding: 12px 24px;
1652
+ background: #f7fafc;
1653
+ flex-shrink: 0; /* Prevent toolbar from shrinking */
1654
+ border-bottom: 1px solid #e2e8f0;
1655
+ }
1656
+
1657
+ .git-diff-info {
1658
+ display: flex;
1659
+ gap: 20px;
1660
+ font-size: 12px;
1661
+ color: #4a5568;
1662
+ font-family: 'Monaco', 'Consolas', monospace;
1663
+ }
1664
+
1665
+ .commit-hash {
1666
+ color: #805ad5;
1667
+ font-weight: 600;
1668
+ }
1669
+
1670
+ .diff-method {
1671
+ color: #38a169;
1672
+ }
1673
+
1674
+ .git-diff-actions {
1675
+ display: flex;
1676
+ gap: 8px;
1677
+ }
1678
+
1679
+ .git-diff-copy {
1680
+ background: #4299e1;
1681
+ color: white;
1682
+ border: none;
1683
+ padding: 6px 12px;
1684
+ border-radius: 4px;
1685
+ font-size: 12px;
1686
+ cursor: pointer;
1687
+ transition: background-color 0.2s ease;
1688
+ display: flex;
1689
+ align-items: center;
1690
+ gap: 4px;
1691
+ }
1692
+
1693
+ .git-diff-copy:hover {
1694
+ background: #3182ce;
1695
+ }
1696
+
1697
+ .git-diff-scroll-wrapper {
1698
+ flex: 1;
1699
+ overflow: auto !important;
1700
+ overflow-y: scroll !important;
1701
+ min-height: 0;
1702
+ position: relative;
1703
+ height: 100%;
1704
+ max-height: calc(100vh - 300px); /* Account for header, toolbar, margins */
1705
+ }
1706
+
1707
+ .git-diff-display {
1708
+ margin: 0;
1709
+ background: #1a202c;
1710
+ color: #e2e8f0;
1711
+ padding: 0;
1712
+ border-radius: 0;
1713
+ overflow: visible;
1714
+ font-family: 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
1715
+ font-size: 13px;
1716
+ line-height: 1.5;
1717
+ min-height: min-content;
1718
+ }
1719
+
1720
+ .git-diff-code {
1721
+ display: block;
1722
+ padding: 20px;
1723
+ margin: 0;
1724
+ white-space: pre;
1725
+ overflow-wrap: normal;
1726
+ color: #e2e8f0;
1727
+ }
1728
+
1729
+ /* Git diff syntax highlighting */
1730
+ .git-diff-code .diff-header {
1731
+ color: #fbb6ce;
1732
+ font-weight: bold;
1733
+ }
1734
+
1735
+ .git-diff-code .diff-meta {
1736
+ color: #bee3f8;
1737
+ }
1738
+
1739
+ .git-diff-code .diff-addition {
1740
+ background-color: rgba(72, 187, 120, 0.2);
1741
+ color: #68d391;
1742
+ }
1743
+
1744
+ .git-diff-code .diff-deletion {
1745
+ background-color: rgba(245, 101, 101, 0.2);
1746
+ color: #fc8181;
1747
+ }
1748
+
1749
+ .git-diff-code .diff-context {
1750
+ color: #e2e8f0;
1751
+ }
1752
+
1753
+ /* Git Diff Button Styles */
1754
+ .git-diff-action {
1755
+ margin-top: 16px;
1756
+ padding-top: 16px;
1757
+ border-top: 1px solid #e2e8f0;
1758
+ display: flex;
1759
+ justify-content: center;
1760
+ }
1761
+
1762
+ .git-diff-button {
1763
+ background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
1764
+ color: white;
1765
+ border: none;
1766
+ padding: 10px 20px;
1767
+ border-radius: 6px;
1768
+ font-size: 13px;
1769
+ font-weight: 500;
1770
+ cursor: pointer;
1771
+ transition: all 0.2s ease;
1772
+ display: flex;
1773
+ align-items: center;
1774
+ gap: 8px;
1775
+ box-shadow: 0 2px 4px rgba(66, 153, 225, 0.3);
1776
+ }
1777
+
1778
+ .git-diff-button:hover {
1779
+ background: linear-gradient(135deg, #3182ce 0%, #2c5282 100%);
1780
+ transform: translateY(-1px);
1781
+ box-shadow: 0 4px 8px rgba(66, 153, 225, 0.4);
1782
+ }
1783
+
1784
+ .git-diff-button:active {
1785
+ transform: translateY(0);
1786
+ box-shadow: 0 2px 4px rgba(66, 153, 225, 0.3);
1787
+ }
1788
+
1789
+
1790
+ button:disabled {
1791
+ opacity: 0.5;
1792
+ cursor: not-allowed;
1793
+ background: #a0aec0;
1794
+ }
1795
+
1796
+ button:disabled:hover {
1797
+ transform: none;
1798
+ background: #a0aec0;
1799
+ }
1800
+
1801
+ /* Responsive Design */
1802
+ @media (max-width: 1200px) {
1803
+ .split-container {
1804
+ flex-direction: column;
1805
+ }
1806
+
1807
+ .module-viewer {
1808
+ width: 100%;
1809
+ height: 250px;
1810
+ }
1811
+
1812
+ /* Single-row content adjustments for smaller screens */
1813
+ .event-single-row-content {
1814
+ font-size: 12px;
1815
+ word-break: break-word;
1816
+ overflow-wrap: break-word;
1817
+ }
1818
+ }
1819
+
1820
+ @media (max-width: 768px) {
1821
+ .container {
1822
+ padding: 10px;
1823
+ padding-bottom: 15px;
1824
+ }
1825
+
1826
+ .header-row {
1827
+ flex-direction: column;
1828
+ align-items: stretch;
1829
+ gap: 10px;
1830
+ }
1831
+
1832
+ .filter-group {
1833
+ max-width: none;
1834
+ }
1835
+
1836
+ .modal-content {
1837
+ width: 95%;
1838
+ margin: 10% auto;
1839
+ }
1840
+ }
1841
+
1842
+ /* File Viewer Modal Styles */
1843
+ .file-viewer-modal {
1844
+ z-index: 1001; /* Higher than regular modals */
1845
+ }
1846
+
1847
+ .modal-content.file-viewer-content {
1848
+ width: 95vw;
1849
+ height: 95vh;
1850
+ max-width: none;
1851
+ max-height: none;
1852
+ margin: 2.5vh auto;
1853
+ padding: 0;
1854
+ display: flex;
1855
+ flex-direction: column;
1856
+ background: #ffffff;
1857
+ border-radius: 8px;
1858
+ overflow: hidden;
1859
+ }
1860
+
1861
+ .file-viewer-header {
1862
+ display: flex;
1863
+ align-items: center;
1864
+ justify-content: space-between;
1865
+ padding: 20px 24px;
1866
+ border-bottom: 1px solid #e2e8f0;
1867
+ background: #f8fafc;
1868
+ border-radius: 8px 8px 0 0;
1869
+ min-height: 60px;
1870
+ flex-shrink: 0; /* Prevent header from shrinking */
1871
+ }
1872
+
1873
+ .file-viewer-title {
1874
+ display: flex;
1875
+ align-items: center;
1876
+ gap: 12px;
1877
+ margin: 0;
1878
+ font-size: 20px;
1879
+ font-weight: 600;
1880
+ color: #2d3748;
1881
+ }
1882
+
1883
+ .file-viewer-icon {
1884
+ font-size: 24px;
1885
+ }
1886
+
1887
+ .file-viewer-meta {
1888
+ display: flex;
1889
+ flex-direction: column;
1890
+ gap: 4px;
1891
+ flex: 1;
1892
+ margin-left: 20px;
1893
+ }
1894
+
1895
+ .file-viewer-file-path {
1896
+ font-family: 'Monaco', 'Consolas', monospace;
1897
+ font-size: 14px;
1898
+ font-weight: 600;
1899
+ color: #4a5568;
1900
+ word-break: break-all;
1901
+ }
1902
+
1903
+ .file-viewer-file-size {
1904
+ font-size: 12px;
1905
+ color: #718096;
1906
+ }
1907
+
1908
+ .file-viewer-close {
1909
+ background: none;
1910
+ border: none;
1911
+ font-size: 24px;
1912
+ cursor: pointer;
1913
+ color: #a0aec0;
1914
+ padding: 8px;
1915
+ border-radius: 4px;
1916
+ transition: all 0.2s ease;
1917
+ display: flex;
1918
+ align-items: center;
1919
+ justify-content: center;
1920
+ }
1921
+
1922
+ .file-viewer-close:hover {
1923
+ background: #fed7d7;
1924
+ color: #e53e3e;
1925
+ }
1926
+
1927
+ .file-viewer-body {
1928
+ flex: 1;
1929
+ display: flex;
1930
+ flex-direction: column;
1931
+ overflow: hidden;
1932
+ min-height: 0; /* Important for flexbox scrolling */
1933
+ position: relative; /* Establish positioning context */
1934
+ }
1935
+
1936
+ .file-viewer-loading {
1937
+ display: flex;
1938
+ flex-direction: column;
1939
+ align-items: center;
1940
+ justify-content: center;
1941
+ flex: 1;
1942
+ gap: 16px;
1943
+ color: #4a5568;
1944
+ font-size: 14px;
1945
+ }
1946
+
1947
+ .file-viewer-error {
1948
+ padding: 24px;
1949
+ text-align: center;
1950
+ display: flex;
1951
+ flex-direction: column;
1952
+ align-items: center;
1953
+ gap: 16px;
1954
+ }
1955
+
1956
+ .file-viewer-content-area {
1957
+ flex: 1;
1958
+ display: flex;
1959
+ flex-direction: column;
1960
+ overflow: hidden;
1961
+ min-height: 0; /* Important for flexbox scrolling */
1962
+ height: 100%;
1963
+ max-height: calc(100% - 80px); /* Account for header */
1964
+ }
1965
+
1966
+ .file-viewer-toolbar {
1967
+ display: flex;
1968
+ justify-content: space-between;
1969
+ align-items: center;
1970
+ padding: 12px 24px;
1971
+ background: #f7fafc;
1972
+ flex-shrink: 0; /* Prevent toolbar from shrinking */
1973
+ border-bottom: 1px solid #e2e8f0;
1974
+ }
1975
+
1976
+ .file-viewer-info {
1977
+ display: flex;
1978
+ gap: 20px;
1979
+ font-size: 12px;
1980
+ color: #4a5568;
1981
+ font-family: 'Monaco', 'Consolas', monospace;
1982
+ }
1983
+
1984
+ .file-extension {
1985
+ color: #805ad5;
1986
+ font-weight: 600;
1987
+ }
1988
+
1989
+ .file-encoding {
1990
+ color: #38a169;
1991
+ font-weight: 600;
1992
+ }
1993
+
1994
+ .file-viewer-actions {
1995
+ display: flex;
1996
+ gap: 8px;
1997
+ }
1998
+
1999
+ .file-content-copy {
2000
+ background: #4299e1;
2001
+ color: white;
2002
+ border: none;
2003
+ padding: 6px 12px;
2004
+ border-radius: 4px;
2005
+ font-size: 12px;
2006
+ cursor: pointer;
2007
+ transition: background-color 0.2s ease;
2008
+ display: flex;
2009
+ align-items: center;
2010
+ gap: 4px;
2011
+ }
2012
+
2013
+ .file-content-copy:hover {
2014
+ background: #3182ce;
2015
+ }
2016
+
2017
+ .file-viewer-scroll-wrapper {
2018
+ flex: 1;
2019
+ overflow: auto !important;
2020
+ overflow-y: scroll !important;
2021
+ min-height: 0;
2022
+ position: relative;
2023
+ height: 100%;
2024
+ max-height: calc(100vh - 300px); /* Account for header, toolbar, margins */
2025
+ }
2026
+
2027
+ .file-content-display {
2028
+ margin: 0;
2029
+ background: #1a202c;
2030
+ color: #e2e8f0;
2031
+ padding: 0;
2032
+ border-radius: 0;
2033
+ overflow: visible;
2034
+ font-family: 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
2035
+ font-size: 13px;
2036
+ line-height: 1.5;
2037
+ min-height: min-content;
2038
+ }
2039
+
2040
+ .file-content-code {
2041
+ display: block;
2042
+ padding: 20px;
2043
+ margin: 0;
2044
+ white-space: pre;
2045
+ overflow-wrap: normal;
2046
+ color: #e2e8f0;
2047
+ }
2048
+
2049
+ /* File content syntax highlighting - Prism.js integration */
2050
+ .file-content-display code[class*="language-"],
2051
+ .file-content-display pre[class*="language-"] {
2052
+ color: #e2e8f0;
2053
+ background: none;
2054
+ font-family: 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
2055
+ font-size: 13px;
2056
+ line-height: 1.5;
2057
+ direction: ltr;
2058
+ text-align: left;
2059
+ white-space: pre;
2060
+ word-spacing: normal;
2061
+ word-break: normal;
2062
+ word-wrap: normal;
2063
+ -moz-tab-size: 4;
2064
+ -o-tab-size: 4;
2065
+ tab-size: 4;
2066
+ -webkit-hyphens: none;
2067
+ -moz-hyphens: none;
2068
+ -ms-hyphens: none;
2069
+ hyphens: none;
2070
+ }
2071
+
2072
+ /* Prism line numbers integration */
2073
+ .file-content-display .line-numbers-rows {
2074
+ border-right: 1px solid #44475a;
2075
+ padding-right: 0.5em;
2076
+ }
2077
+
2078
+ .file-content-display .line-numbers .line-numbers-rows > span:before {
2079
+ color: #6272a4;
2080
+ }
2081
+
2082
+ /* File content syntax highlighting - fallback colors */
2083
+ .file-content-code .keyword {
2084
+ color: #ff79c6;
2085
+ font-weight: 600;
2086
+ }
2087
+
2088
+ .file-content-code .comment {
2089
+ color: #6272a4;
2090
+ font-style: italic;
2091
+ }
2092
+
2093
+ .file-content-code .string {
2094
+ color: #f1fa8c;
2095
+ }
2096
+
2097
+ .file-content-code .number {
2098
+ color: #bd93f9;
2099
+ }
2100
+
2101
+ .file-content-code .property {
2102
+ color: #50fa7b;
2103
+ }
2104
+
2105
+ .file-content-code .value {
2106
+ color: #8be9fd;
2107
+ }
2108
+
2109
+ .file-content-code .selector {
2110
+ color: #ff79c6;
2111
+ }
2112
+
2113
+ .file-content-code .tag {
2114
+ color: #ff79c6;
2115
+ }
2116
+
2117
+ .file-content-code .attribute {
2118
+ color: #50fa7b;
2119
+ }
2120
+
2121
+ .file-content-code .header {
2122
+ color: #ff79c6;
2123
+ font-weight: bold;
2124
+ }
2125
+
2126
+ .file-content-code .header-text {
2127
+ color: #f8f8f2;
2128
+ font-weight: normal;
2129
+ }
2130
+
2131
+ .file-content-code .bold {
2132
+ color: #f8f8f2;
2133
+ font-weight: bold;
2134
+ }
2135
+
2136
+ .file-content-code .italic {
2137
+ color: #f8f8f2;
2138
+ font-style: italic;
2139
+ }
2140
+
2141
+ .file-content-code .code {
2142
+ background: rgba(68, 71, 90, 0.5);
2143
+ color: #f1fa8c;
2144
+ padding: 2px 4px;
2145
+ border-radius: 3px;
2146
+ }
2147
+
2148
+ .file-content-code .list-marker {
2149
+ color: #ff79c6;
2150
+ }
2151
+
2152
+ .file-content-code .line-number {
2153
+ color: #6272a4;
2154
+ user-select: none;
2155
+ margin-right: 1em;
2156
+ border-right: 1px solid #44475a;
2157
+ padding-right: 0.5em;
2158
+ display: inline-block;
2159
+ min-width: 3em;
2160
+ text-align: right;
2161
+ }
2162
+
2163
+ /* Git Tracking Control Styles */
2164
+ .git-track-status {
2165
+ margin-top: 8px;
2166
+ font-size: 14px;
2167
+ }
2168
+
2169
+ .untracked-file-notice,
2170
+ .tracked-file-notice,
2171
+ .tracking-file-notice,
2172
+ .tracking-error-notice {
2173
+ display: flex;
2174
+ align-items: center;
2175
+ gap: 8px;
2176
+ padding: 8px 12px;
2177
+ border-radius: 6px;
2178
+ margin-top: 8px;
2179
+ }
2180
+
2181
+ .untracked-file-notice {
2182
+ background: #fef5e7;
2183
+ border: 1px solid #f6e05e;
2184
+ color: #744210;
2185
+ }
2186
+
2187
+ .tracked-file-notice {
2188
+ background: #f0fff4;
2189
+ border: 1px solid #9ae6b4;
2190
+ color: #22543d;
2191
+ }
2192
+
2193
+ .tracking-file-notice {
2194
+ background: #ebf8ff;
2195
+ border: 1px solid #90cdf4;
2196
+ color: #2c5282;
2197
+ }
2198
+
2199
+ .tracking-error-notice {
2200
+ background: #fed7d7;
2201
+ border: 1px solid #fc8181;
2202
+ color: #742a2a;
2203
+ }
2204
+
2205
+ .track-file-button {
2206
+ background: linear-gradient(135deg, #48bb78 0%, #38a169 100%);
2207
+ color: white;
2208
+ border: none;
2209
+ padding: 6px 12px;
2210
+ border-radius: 4px;
2211
+ font-size: 12px;
2212
+ font-weight: 500;
2213
+ cursor: pointer;
2214
+ transition: all 0.2s ease;
2215
+ display: flex;
2216
+ align-items: center;
2217
+ gap: 4px;
2218
+ margin-left: auto;
2219
+ }
2220
+
2221
+ .track-file-button:hover {
2222
+ background: linear-gradient(135deg, #38a169 0%, #2f855a 100%);
2223
+ transform: translateY(-1px);
2224
+ box-shadow: 0 4px 8px rgba(72, 187, 120, 0.4);
2225
+ }
2226
+
2227
+ .track-file-button:active {
2228
+ transform: translateY(0);
2229
+ box-shadow: 0 2px 4px rgba(72, 187, 120, 0.3);
2230
+ }
2231
+
2232
+ .untracked-icon,
2233
+ .tracked-icon,
2234
+ .loading-icon,
2235
+ .error-icon {
2236
+ font-size: 16px;
2237
+ flex-shrink: 0;
2238
+ }
2239
+
2240
+ .untracked-text,
2241
+ .tracked-text,
2242
+ .loading-text,
2243
+ .error-text {
2244
+ flex: 1;
2245
+ font-size: 13px;
2246
+ font-weight: 500;
2247
+ }
2248
+
2249
+ .git-icon {
2250
+ font-size: 14px;
2251
+ }
2252
+
2253
+ /* File viewer icon styling */
2254
+ .file-viewer-icon {
2255
+ transition: all 0.2s ease;
2256
+ }
2257
+
2258
+ .file-viewer-icon:hover {
2259
+ transform: scale(1.1);
2260
+ opacity: 0.8;
2261
+ }
2262
+
2263
+ /* Agent-specific view styles */
2264
+ .agent-overview-section,
2265
+ .agent-prompt-section,
2266
+ .agent-todos-section,
2267
+ .agent-tools-section {
2268
+ margin-bottom: 20px;
2269
+ }
2270
+
2271
+ .agent-prompt {
2272
+ border: 1px solid #e2e8f0;
2273
+ background: #f8fafc;
2274
+ border-radius: 6px;
2275
+ padding: 10px;
2276
+ font-family: 'Monaco', 'Consolas', monospace;
2277
+ font-size: 12px;
2278
+ line-height: 1.4;
2279
+ white-space: pre-wrap;
2280
+ max-height: 300px;
2281
+ overflow-y: auto;
2282
+ }
2283
+
2284
+ .agent-todos-section .todo-checklist {
2285
+ background: #ffffff;
2286
+ border-radius: 8px;
2287
+ padding: 12px;
2288
+ border: 1px solid #e2e8f0;
2289
+ }
2290
+
2291
+ .agent-todos-section .todo-item {
2292
+ display: flex;
2293
+ align-items: center;
2294
+ gap: 10px;
2295
+ padding: 8px 0;
2296
+ border-bottom: 1px solid #f1f5f9;
2297
+ }
2298
+
2299
+ .agent-todos-section .todo-item:last-child {
2300
+ border-bottom: none;
2301
+ }
2302
+
2303
+ .agent-todos-section .todo-timestamp {
2304
+ font-size: 11px;
2305
+ color: #64748b;
2306
+ margin-left: auto;
2307
+ font-family: 'Monaco', 'Consolas', monospace;
2308
+ }
2309
+
2310
+ .tools-list {
2311
+ background: #ffffff;
2312
+ border-radius: 8px;
2313
+ padding: 12px;
2314
+ border: 1px solid #e2e8f0;
2315
+ }
2316
+
2317
+ .tool-call-item {
2318
+ padding: 10px 0;
2319
+ border-bottom: 1px solid #f1f5f9;
2320
+ }
2321
+
2322
+ .tool-call-item:last-child {
2323
+ border-bottom: none;
2324
+ }
2325
+
2326
+ .tool-call-header {
2327
+ display: flex;
2328
+ align-items: center;
2329
+ gap: 12px;
2330
+ margin-bottom: 4px;
2331
+ }
2332
+
2333
+ .tool-name {
2334
+ font-weight: 600;
2335
+ color: #374151;
2336
+ font-size: 14px;
2337
+ }
2338
+
2339
+ .tool-phase {
2340
+ font-size: 11px;
2341
+ padding: 2px 6px;
2342
+ border-radius: 4px;
2343
+ font-weight: 500;
2344
+ text-transform: uppercase;
2345
+ }
2346
+
2347
+ .tool-phase.pre_tool {
2348
+ background: #fef3c7;
2349
+ color: #92400e;
2350
+ }
2351
+
2352
+ .tool-phase.post_tool {
2353
+ background: #d1fae5;
2354
+ color: #065f46;
2355
+ }
2356
+
2357
+ .tool-timestamp {
2358
+ font-size: 11px;
2359
+ color: #64748b;
2360
+ font-family: 'Monaco', 'Consolas', monospace;
2361
+ margin-left: auto;
2362
+ }
2363
+
2364
+ .tool-success.success {
2365
+ color: #059669;
2366
+ font-weight: bold;
2367
+ }
2368
+
2369
+ .tool-success.failed {
2370
+ color: #dc2626;
2371
+ font-weight: bold;
2372
+ }
2373
+
2374
+ .tool-call-details {
2375
+ display: flex;
2376
+ align-items: center;
2377
+ gap: 15px;
2378
+ font-size: 12px;
2379
+ color: #64748b;
2380
+ margin-left: 24px;
2381
+ }
2382
+
2383
+ /* Consolidated Tool Status Styles */
2384
+ .tool-status-indicator {
2385
+ display: flex;
2386
+ align-items: center;
2387
+ gap: 6px;
2388
+ font-size: 12px;
2389
+ font-weight: 500;
2390
+ padding: 2px 8px;
2391
+ border-radius: 12px;
2392
+ background: #f1f5f9;
2393
+ color: #475569;
2394
+ }
2395
+
2396
+ .tool-status-indicator.status-success {
2397
+ background: #dcfce7;
2398
+ color: #166534;
2399
+ }
2400
+
2401
+ .tool-status-indicator.status-failed {
2402
+ background: #fef2f2;
2403
+ color: #dc2626;
2404
+ }
2405
+
2406
+ .tool-status-indicator.status-blocked {
2407
+ background: #fef3c7;
2408
+ color: #d97706;
2409
+ }
2410
+
2411
+ .tool-status-indicator.status-running {
2412
+ background: #e0f2fe;
2413
+ color: #0369a1;
2414
+ }
2415
+
2416
+ .tool-completed {
2417
+ font-style: italic;
2418
+ color: #64748b;
2419
+ }
2420
+
2421
+ .tool-agent {
2422
+ font-size: 11px;
2423
+ font-weight: 500;
2424
+ color: #6366f1;
2425
+ background: #eef2ff;
2426
+ padding: 2px 6px;
2427
+ border-radius: 8px;
2428
+ text-transform: uppercase;
2429
+ letter-spacing: 0.5px;
2430
+ }
2431
+
2432
+ .tool-target {
2433
+ font-family: 'Monaco', 'Consolas', monospace;
2434
+ background: #f1f5f9;
2435
+ padding: 2px 6px;
2436
+ border-radius: 3px;
2437
+ }
2438
+
2439
+ .tool-duration {
2440
+ font-family: 'Monaco', 'Consolas', monospace;
2441
+ color: #7c3aed;
2442
+ }
2443
+
2444
+ /* Tool Result Section Styles */
2445
+ .tool-result-section {
2446
+ margin-top: 16px;
2447
+ border-top: 1px solid #e2e8f0;
2448
+ padding-top: 16px;
2449
+ }
2450
+
2451
+ .tool-result-content {
2452
+ margin-top: 12px;
2453
+ }
2454
+
2455
+ .tool-result-status {
2456
+ display: flex;
2457
+ align-items: center;
2458
+ gap: 8px;
2459
+ padding: 8px 12px;
2460
+ border-radius: 6px;
2461
+ font-weight: 500;
2462
+ margin-bottom: 12px;
2463
+ }
2464
+
2465
+ .tool-result-status.tool-success {
2466
+ background: #dcfce7;
2467
+ color: #166534;
2468
+ border: 1px solid #bbf7d0;
2469
+ }
2470
+
2471
+ .tool-result-status.tool-failure {
2472
+ background: #fef2f2;
2473
+ color: #991b1b;
2474
+ border: 1px solid #fecaca;
2475
+ }
2476
+
2477
+ .tool-result-status.tool-blocked {
2478
+ background: #fef3c7;
2479
+ color: #92400e;
2480
+ border: 1px solid #fde68a;
2481
+ }
2482
+
2483
+ .tool-result-status.tool-running {
2484
+ background: #f0f9ff;
2485
+ color: #0369a1;
2486
+ border: 1px solid #bae6fd;
2487
+ }
2488
+
2489
+ .tool-result-icon {
2490
+ font-size: 16px;
2491
+ }
2492
+
2493
+ .tool-result-text {
2494
+ font-weight: 600;
2495
+ }
2496
+
2497
+ .tool-exit-code {
2498
+ margin-left: auto;
2499
+ font-family: 'Monaco', 'Consolas', monospace;
2500
+ font-size: 12px;
2501
+ padding: 2px 6px;
2502
+ background: rgba(0, 0, 0, 0.05);
2503
+ border-radius: 3px;
2504
+ }
2505
+
2506
+ .tool-result-output,
2507
+ .tool-result-error,
2508
+ .tool-result-other {
2509
+ margin-bottom: 12px;
2510
+ }
2511
+
2512
+ .tool-result-label {
2513
+ font-weight: 600;
2514
+ color: #374151;
2515
+ margin-bottom: 6px;
2516
+ display: flex;
2517
+ align-items: center;
2518
+ gap: 6px;
2519
+ font-size: 14px;
2520
+ }
2521
+
2522
+ .tool-result-preview {
2523
+ background: #f8fafc;
2524
+ border: 1px solid #e2e8f0;
2525
+ border-radius: 6px;
2526
+ padding: 12px;
2527
+ max-height: 300px;
2528
+ overflow-y: auto;
2529
+ }
2530
+
2531
+ .tool-result-preview.error-preview {
2532
+ background: #fef2f2;
2533
+ border-color: #fecaca;
2534
+ }
2535
+
2536
+ .tool-result-preview pre {
2537
+ margin: 0;
2538
+ font-family: 'Monaco', 'Consolas', 'Menlo', monospace;
2539
+ font-size: 12px;
2540
+ line-height: 1.4;
2541
+ white-space: pre-wrap;
2542
+ word-wrap: break-word;
2543
+ }
2544
+
2545
+ .tool-result-meta {
2546
+ font-size: 11px;
2547
+ color: #6b7280;
2548
+ margin-top: 4px;
2549
+ font-style: italic;
2550
+ }
2551
+
2552
+ /* Clickable File Path Styles */
2553
+ .clickable-file-path {
2554
+ color: #3b82f6;
2555
+ cursor: pointer;
2556
+ text-decoration: none;
2557
+ font-family: 'Monaco', 'Consolas', 'Menlo', monospace;
2558
+ font-size: 13px;
2559
+ font-weight: 500;
2560
+ border-radius: 4px;
2561
+ padding: 2px 6px;
2562
+ transition: all 0.2s ease;
2563
+ display: inline-block;
2564
+ background: rgba(59, 130, 246, 0.1);
2565
+ border: 1px solid rgba(59, 130, 246, 0.2);
2566
+ }
2567
+
2568
+ .clickable-file-path:hover {
2569
+ color: #1d4ed8;
2570
+ background: rgba(59, 130, 246, 0.15);
2571
+ border-color: rgba(59, 130, 246, 0.3);
2572
+ text-decoration: underline;
2573
+ transform: translateY(-1px);
2574
+ box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
2575
+ }
2576
+
2577
+ .clickable-file-path:active {
2578
+ transform: translateY(0);
2579
+ box-shadow: 0 1px 2px rgba(59, 130, 246, 0.3);
2580
+ background: rgba(59, 130, 246, 0.2);
2581
+ }
2582
+
2583
+ /* Special styling for file path in file-path-display context */
2584
+ .file-path-display .clickable-file-path {
2585
+ font-size: 14px;
2586
+ padding: 4px 8px;
2587
+ margin-left: 8px;
2588
+ }
2589
+
2590
+ /* Ensure clickable file paths stand out in event property values */
2591
+ .event-property-value .clickable-file-path {
2592
+ margin: 0;
2593
+ background: rgba(59, 130, 246, 0.08);
2594
+ border: 1px solid rgba(59, 130, 246, 0.15);
2595
+ }
2596
+
2597
+ .event-property-value .clickable-file-path:hover {
2598
+ background: rgba(59, 130, 246, 0.12);
2599
+ border-color: rgba(59, 130, 246, 0.25);
2600
+ }
2601
+
2602
+ /* Inline Edit Diff Viewer Styles */
2603
+ .inline-edit-diff-viewer {
2604
+ margin-top: 8px;
2605
+ border-top: 1px solid #e2e8f0;
2606
+ background: #f8f9fa;
2607
+ }
2608
+
2609
+ .diff-toggle-header {
2610
+ display: flex;
2611
+ align-items: center;
2612
+ gap: 6px;
2613
+ padding: 8px 12px;
2614
+ cursor: pointer;
2615
+ transition: background-color 0.2s;
2616
+ user-select: none;
2617
+ font-size: 12px;
2618
+ color: #4a5568;
2619
+ }
2620
+
2621
+ .diff-toggle-header:hover {
2622
+ background: #e2e8f0;
2623
+ }
2624
+
2625
+ .diff-toggle-icon {
2626
+ font-size: 14px;
2627
+ }
2628
+
2629
+ .diff-toggle-text {
2630
+ flex: 1;
2631
+ font-weight: 500;
2632
+ }
2633
+
2634
+ .diff-toggle-arrow {
2635
+ font-size: 10px;
2636
+ color: #718096;
2637
+ transition: transform 0.2s;
2638
+ }
2639
+
2640
+ .diff-content-container {
2641
+ border-top: 1px solid #e2e8f0;
2642
+ background: white;
2643
+ }
2644
+
2645
+ .edit-diff-section {
2646
+ padding: 8px;
2647
+ }
2648
+
2649
+ .edit-diff-header {
2650
+ font-size: 11px;
2651
+ font-weight: 600;
2652
+ color: #4a5568;
2653
+ margin-bottom: 6px;
2654
+ padding: 4px 8px;
2655
+ background: #f1f5f9;
2656
+ border-radius: 4px;
2657
+ }
2658
+
2659
+ .diff-container {
2660
+ font-family: 'Monaco', 'Consolas', 'Menlo', monospace;
2661
+ font-size: 11px;
2662
+ line-height: 1.4;
2663
+ background: #1a202c;
2664
+ border-radius: 4px;
2665
+ overflow-x: auto;
2666
+ max-height: 200px;
2667
+ overflow-y: auto;
2668
+ }
2669
+
2670
+ .diff-line {
2671
+ padding: 2px 8px;
2672
+ white-space: pre;
2673
+ word-break: break-all;
2674
+ }
2675
+
2676
+ .diff-line.diff-added {
2677
+ background: rgba(16, 185, 129, 0.1);
2678
+ color: #10b981;
2679
+ }
2680
+
2681
+ .diff-line.diff-removed {
2682
+ background: rgba(239, 68, 68, 0.1);
2683
+ color: #ef4444;
2684
+ }
2685
+
2686
+ .diff-line.diff-unchanged {
2687
+ color: #9ca3af;
2688
+ background: transparent;
2689
+ }
2690
+
2691
+ /* Event item adjustments to accommodate diff viewers */
2692
+ .event-item.single-row {
2693
+ flex-direction: column;
2694
+ align-items: stretch;
2695
+ }
2696
+
2697
+ .event-single-row-content {
2698
+ display: flex;
2699
+ align-items: center;
2700
+ justify-content: space-between;
2701
+ min-height: 32px;
2702
+ }
2703
+
2704
+ /* Responsive adjustments for diff viewers */
2705
+ @media (max-width: 768px) {
2706
+ .diff-container {
2707
+ font-size: 10px;
2708
+ max-height: 150px;
2709
+ }
2710
+
2711
+ .inline-edit-diff-viewer {
2712
+ margin-left: -12px;
2713
+ margin-right: -12px;
2714
+ }
2715
+
2716
+ .directory-viewer-overlay {
2717
+ left: 10px !important;
2718
+ right: 10px !important;
2719
+ min-width: auto !important;
2720
+ max-width: none !important;
2721
+ }
2722
+ }