@qiaolei81/copilot-session-viewer 0.3.7 → 0.3.9

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.
@@ -129,8 +129,6 @@
129
129
  overflow-y: auto;
130
130
  padding: 16px;
131
131
  transition: all 0.3s ease;
132
- position: relative;
133
- z-index: 10;
134
132
  }
135
133
  .sidebar.collapsed {
136
134
  width: 0;
@@ -172,18 +170,6 @@
172
170
  .session-info {
173
171
  font-size: 13px;
174
172
  }
175
- .session-summary-block {
176
- color: #e6edf3;
177
- font-size: 13px;
178
- line-height: 1.5;
179
- margin-bottom: 12px;
180
- word-break: break-word;
181
- overflow-wrap: anywhere;
182
- display: -webkit-box;
183
- -webkit-line-clamp: 5;
184
- -webkit-box-orient: vertical;
185
- overflow: hidden;
186
- }
187
173
 
188
174
  /* Session info table */
189
175
  .session-info-table {
@@ -244,6 +230,11 @@
244
230
  color: #a78bdb;
245
231
  border: 1px solid rgba(138, 102, 204, 0.4);
246
232
  }
233
+ .source-modernize {
234
+ background: rgba(76, 175, 80, 0.2);
235
+ color: #66bb6a;
236
+ border: 1px solid rgba(76, 175, 80, 0.4);
237
+ }
247
238
  .source-vscode {
248
239
  background: rgba(0, 122, 204, 0.2);
249
240
  color: #4fc3f7;
@@ -300,38 +291,7 @@
300
291
  color: #fff;
301
292
  }
302
293
 
303
- /* Event filters */
304
- .event-filters {
305
- display: flex;
306
- flex-direction: column;
307
- gap: 4px;
308
- }
309
- .filter-btn {
310
- padding: 6px 10px;
311
- background: #21262d;
312
- border: 1px solid #30363d;
313
- border-radius: 4px;
314
- color: #c9d1d9;
315
- cursor: pointer;
316
- font-size: 13px;
317
- transition: all 0.2s;
318
- text-align: left;
319
- width: 100%;
320
- }
321
- .filter-btn:not(:disabled):hover {
322
- background: #30363d;
323
- }
324
- .filter-btn.active {
325
- background: #1f6feb;
326
- border-color: #1f6feb;
327
- color: #fff;
328
- }
329
- .filter-btn:disabled {
330
- opacity: 0.4;
331
- cursor: not-allowed;
332
- background: #161b22;
333
- color: #6e7681;
334
- }
294
+ /* Event filters — removed from sidebar, now in unified toolbar */
335
295
 
336
296
  /* Session Tags */
337
297
  .session-tags-container {
@@ -478,39 +438,71 @@
478
438
  /* Usage Section */
479
439
  .usage-container {
480
440
  font-size: 12px;
441
+ display: flex;
442
+ flex-direction: column;
443
+ gap: 12px;
481
444
  }
482
- .usage-compact {
483
- padding: 8px;
484
- background: #21262d;
485
- border: 1px solid #30363d;
486
- border-radius: 4px;
445
+ .usage-summary {
446
+ padding: 14px;
447
+ background: linear-gradient(180deg, rgba(88, 166, 255, 0.16) 0%, rgba(22, 27, 34, 0.94) 100%);
448
+ border: 1px solid rgba(88, 166, 255, 0.22);
449
+ border-radius: 10px;
487
450
  color: #c9d1d9;
488
- cursor: pointer;
489
- transition: all 0.2s;
451
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
452
+ }
453
+ .usage-summary-eyebrow {
454
+ font-size: 10px;
455
+ font-weight: 700;
456
+ color: #8b949e;
457
+ text-transform: uppercase;
458
+ letter-spacing: 0.7px;
459
+ margin-bottom: 6px;
460
+ }
461
+ .usage-summary-total {
462
+ font-size: 24px;
463
+ line-height: 1;
464
+ font-weight: 700;
465
+ color: #e6edf3;
490
466
  display: flex;
491
- align-items: center;
492
- justify-content: space-between;
467
+ align-items: baseline;
468
+ gap: 6px;
493
469
  }
494
- .usage-compact:hover {
495
- background: #30363d;
496
- border-color: #58a6ff;
470
+ .usage-summary-total-unit {
471
+ font-size: 11px;
472
+ font-weight: 600;
473
+ text-transform: uppercase;
474
+ letter-spacing: 0.5px;
475
+ color: #8b949e;
497
476
  }
498
- .usage-expand-icon {
477
+ .usage-summary-caption {
478
+ margin-top: 6px;
479
+ font-size: 12px;
499
480
  color: #8b949e;
500
- font-size: 10px;
501
481
  }
502
- .usage-expanded {
482
+ .usage-summary-metrics {
483
+ display: grid;
484
+ grid-template-columns: repeat(3, minmax(0, 1fr));
485
+ gap: 8px;
503
486
  margin-top: 12px;
487
+ }
488
+ .usage-expanded {
489
+ display: flex;
490
+ flex-direction: column;
491
+ gap: 12px;
492
+ }
493
+ .usage-section {
504
494
  padding: 12px;
505
495
  background: rgba(110, 118, 129, 0.05);
506
496
  border: 1px solid #30363d;
507
- border-radius: 6px;
508
- }
509
- .usage-section {
510
- margin-bottom: 12px;
497
+ border-radius: 10px;
498
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
511
499
  }
512
- .usage-section:last-child {
513
- margin-bottom: 0;
500
+ .usage-section-header {
501
+ display: flex;
502
+ align-items: center;
503
+ justify-content: space-between;
504
+ gap: 8px;
505
+ margin-bottom: 10px;
514
506
  }
515
507
  .usage-section-title {
516
508
  font-size: 11px;
@@ -518,110 +510,461 @@
518
510
  color: #8b949e;
519
511
  text-transform: uppercase;
520
512
  letter-spacing: 0.5px;
521
- margin-bottom: 8px;
513
+ margin: 0;
514
+ }
515
+ .usage-section-badge {
516
+ display: inline-flex;
517
+ align-items: center;
518
+ justify-content: center;
519
+ min-width: 24px;
520
+ padding: 2px 8px;
521
+ border-radius: 999px;
522
+ background: rgba(88, 166, 255, 0.12);
523
+ border: 1px solid rgba(88, 166, 255, 0.22);
524
+ color: #79c0ff;
525
+ font-size: 10px;
526
+ font-weight: 700;
527
+ }
528
+ .usage-model-list {
529
+ display: flex;
530
+ flex-direction: column;
531
+ gap: 8px;
522
532
  }
523
533
  .usage-model {
524
- padding: 8px;
525
- background: #161b22;
526
- border-radius: 4px;
527
- margin-bottom: 6px;
534
+ padding: 10px;
535
+ background: linear-gradient(180deg, rgba(13, 17, 23, 0.96) 0%, rgba(22, 27, 34, 0.96) 100%);
536
+ border: 1px solid rgba(48, 54, 61, 0.9);
537
+ border-radius: 8px;
528
538
  }
529
- .usage-model:last-child {
530
- margin-bottom: 0;
539
+ .usage-model-header {
540
+ display: flex;
541
+ flex-direction: column;
542
+ align-items: stretch;
543
+ gap: 8px;
544
+ margin-bottom: 10px;
531
545
  }
532
546
  .usage-model-name {
547
+ display: block;
548
+ max-width: 100%;
533
549
  font-size: 11px;
534
550
  font-weight: 600;
535
- color: #58a6ff;
536
- margin-bottom: 4px;
551
+ line-height: 1.35;
552
+ color: #79c0ff;
537
553
  font-family: 'SF Mono', 'Monaco', 'Consolas', monospace;
554
+ white-space: nowrap;
555
+ word-break: normal;
556
+ overflow-wrap: normal;
557
+ overflow-x: auto;
558
+ overflow-y: hidden;
559
+ scrollbar-width: thin;
560
+ scrollbar-color: rgba(110, 118, 129, 0.55) transparent;
561
+ padding-bottom: 2px;
562
+ }
563
+ .usage-model-name::-webkit-scrollbar {
564
+ height: 4px;
565
+ }
566
+ .usage-model-name::-webkit-scrollbar-thumb {
567
+ background: rgba(110, 118, 129, 0.55);
568
+ border-radius: 999px;
569
+ }
570
+ .usage-model-name::-webkit-scrollbar-track {
571
+ background: transparent;
572
+ }
573
+ .usage-model-meta {
574
+ display: flex;
575
+ flex-wrap: wrap;
576
+ justify-content: flex-start;
577
+ gap: 6px;
578
+ }
579
+ .usage-meta-pill {
580
+ display: inline-flex;
581
+ align-items: center;
582
+ padding: 2px 8px;
583
+ border-radius: 999px;
584
+ background: rgba(110, 118, 129, 0.12);
585
+ border: 1px solid rgba(110, 118, 129, 0.2);
586
+ color: #c9d1d9;
587
+ font-size: 10px;
588
+ font-weight: 600;
589
+ }
590
+ .usage-meta-pill-premium {
591
+ color: #d29922;
592
+ border-color: rgba(210, 153, 34, 0.25);
593
+ background: rgba(210, 153, 34, 0.12);
594
+ }
595
+ .usage-meta-pill-cache {
596
+ color: #3fb950;
597
+ border-color: rgba(63, 185, 80, 0.25);
598
+ background: rgba(63, 185, 80, 0.12);
599
+ }
600
+ .usage-metric-grid {
601
+ display: grid;
602
+ grid-template-columns: repeat(2, minmax(0, 1fr));
603
+ gap: 8px;
604
+ }
605
+ .usage-metric-grid-compact {
606
+ grid-template-columns: repeat(3, minmax(0, 1fr));
607
+ }
608
+ .usage-metric-card {
609
+ display: flex;
610
+ flex-direction: column;
611
+ gap: 4px;
612
+ min-width: 0;
613
+ padding: 9px 10px;
614
+ border-radius: 8px;
615
+ border: 1px solid rgba(48, 54, 61, 0.8);
616
+ background: rgba(13, 17, 23, 0.5);
617
+ }
618
+ .usage-metric-card-summary {
619
+ background: rgba(13, 17, 23, 0.42);
620
+ border-color: rgba(88, 166, 255, 0.14);
621
+ }
622
+ .usage-metric-label {
623
+ font-size: 10px;
624
+ font-weight: 700;
625
+ color: #8b949e;
626
+ text-transform: uppercase;
627
+ letter-spacing: 0.5px;
628
+ }
629
+ .usage-metric-value {
630
+ font-size: 14px;
631
+ line-height: 1.2;
632
+ font-weight: 700;
633
+ color: #e6edf3;
634
+ overflow-wrap: anywhere;
635
+ }
636
+ .usage-metric-value-added {
637
+ color: #3fb950;
638
+ }
639
+ .usage-metric-value-removed {
640
+ color: #f85149;
641
+ }
642
+
643
+ /* Tool Calling Summary */
644
+ .tool-summary-list {
645
+ display: flex;
646
+ flex-direction: column;
647
+ gap: 4px;
538
648
  }
539
- .usage-model-details {
649
+ .tool-summary-item {
650
+ position: relative;
651
+ display: flex;
652
+ justify-content: space-between;
653
+ align-items: center;
654
+ padding: 3px 6px;
540
655
  font-size: 12px;
656
+ border-radius: 3px;
657
+ overflow: hidden;
658
+ }
659
+ .tool-summary-bar {
660
+ position: absolute;
661
+ left: 0;
662
+ top: 0;
663
+ bottom: 0;
664
+ background: rgba(158, 106, 3, 0.15);
665
+ border-radius: 3px;
666
+ transition: width 0.3s ease;
667
+ }
668
+ .tool-summary-name {
669
+ position: relative;
541
670
  color: #c9d1d9;
671
+ overflow: hidden;
672
+ text-overflow: ellipsis;
673
+ white-space: nowrap;
674
+ min-width: 0;
675
+ flex: 1;
676
+ }
677
+ .tool-summary-count {
678
+ position: relative;
679
+ color: #d29922;
680
+ font-weight: 600;
681
+ margin-left: 8px;
682
+ flex-shrink: 0;
683
+ }
684
+
685
+ /* Content */
686
+ .content {
687
+ flex: 1;
542
688
  display: flex;
543
689
  flex-direction: column;
544
- gap: 2px;
690
+ overflow: hidden;
691
+ position: relative;
692
+ }
693
+
694
+ .unified-filter-bar {
695
+ background: #0d1117;
696
+ border-bottom: 1px solid #30363d;
697
+ flex-shrink: 0;
545
698
  }
546
- .usage-model-details > div {
699
+ .filter-bar-row {
547
700
  display: flex;
701
+ align-items: center;
548
702
  gap: 8px;
703
+ padding: 8px 12px;
704
+ flex-wrap: wrap;
705
+ }
706
+ .filter-bar-search {
707
+ display: flex;
549
708
  align-items: center;
709
+ gap: 4px;
710
+ flex: 1;
711
+ min-width: 160px;
550
712
  }
551
- .usage-token-label {
552
- color: #8b949e;
553
- font-weight: 500;
554
- min-width: 40px;
713
+ .filter-bar-divider {
714
+ width: 1px;
715
+ height: 20px;
716
+ background: #30363d;
717
+ flex-shrink: 0;
555
718
  }
556
- .usage-cache-ratio {
557
- color: #3fb950;
558
- font-weight: 600;
719
+ /* Event type dropdown wrapper */
720
+ .filter-type-wrapper {
721
+ position: relative;
722
+ }
723
+ .filter-type-toggle {
724
+ padding: 4px 10px;
725
+ background: #161b22;
726
+ border: 1px solid #30363d;
727
+ border-radius: 6px;
728
+ color: #c9d1d9;
729
+ font-size: 13px;
730
+ cursor: pointer;
731
+ white-space: nowrap;
732
+ transition: all 0.2s;
733
+ }
734
+ .filter-type-toggle:hover {
735
+ border-color: #58a6ff;
736
+ background: #0d1117;
559
737
  }
560
- .usage-context {
738
+ .filter-type-toggle.active {
739
+ border-color: #58a6ff;
740
+ color: #58a6ff;
741
+ background: rgba(88, 166, 255, 0.1);
742
+ }
743
+ .filter-type-menu {
744
+ position: absolute;
745
+ top: calc(100% + 4px);
746
+ left: 0;
747
+ background: #161b22;
748
+ border: 1px solid #30363d;
749
+ border-radius: 6px;
750
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
751
+ min-width: 250px;
752
+ z-index: 1000;
753
+ }
754
+ .filter-type-menu-header {
755
+ padding: 8px 12px;
756
+ border-bottom: 1px solid #30363d;
561
757
  font-size: 12px;
758
+ font-weight: 600;
562
759
  color: #c9d1d9;
760
+ }
761
+ .filter-type-menu-options {
762
+ max-height: 300px;
763
+ overflow-y: auto;
764
+ padding: 4px 0;
765
+ }
766
+ .filter-type-menu-item {
563
767
  display: flex;
564
- flex-direction: column;
768
+ align-items: center;
769
+ justify-content: space-between;
770
+ padding: 6px 12px;
771
+ cursor: pointer;
772
+ transition: background 0.15s;
773
+ font-size: 13px;
774
+ color: #c9d1d9;
775
+ }
776
+ .filter-type-menu-item:hover {
777
+ background: rgba(88, 166, 255, 0.1);
778
+ }
779
+ .filter-type-menu-item.active {
780
+ background: rgba(88, 166, 255, 0.2);
781
+ color: #58a6ff;
782
+ }
783
+ .filter-type-menu-label {
784
+ flex: 1;
785
+ overflow: hidden;
786
+ text-overflow: ellipsis;
787
+ white-space: nowrap;
788
+ }
789
+ .filter-type-menu-count {
790
+ color: #7d8590;
791
+ font-size: 12px;
792
+ margin-left: 8px;
793
+ flex-shrink: 0;
794
+ }
795
+ /* Active filter chips bar */
796
+ .active-filters-bar {
797
+ display: flex;
798
+ align-items: center;
799
+ gap: 6px;
800
+ padding: 4px 12px 8px;
801
+ flex-wrap: wrap;
802
+ }
803
+ .filter-chip {
804
+ display: inline-flex;
805
+ align-items: center;
565
806
  gap: 4px;
807
+ padding: 2px 8px;
808
+ background: rgba(88, 166, 255, 0.15);
809
+ border: 1px solid rgba(88, 166, 255, 0.3);
810
+ border-radius: 12px;
811
+ font-size: 12px;
812
+ color: #58a6ff;
813
+ white-space: nowrap;
814
+ }
815
+ .filter-chip-remove {
816
+ background: none;
817
+ border: none;
818
+ color: #58a6ff;
819
+ cursor: pointer;
820
+ font-size: 14px;
821
+ padding: 0 2px;
822
+ line-height: 1;
823
+ opacity: 0.7;
824
+ transition: opacity 0.15s;
825
+ }
826
+ .filter-chip-remove:hover {
827
+ opacity: 1;
828
+ }
829
+ .clear-all-filters-btn {
830
+ background: none;
831
+ border: none;
832
+ color: #f85149;
833
+ cursor: pointer;
834
+ font-size: 12px;
835
+ padding: 2px 6px;
836
+ border-radius: 3px;
837
+ transition: background 0.2s;
838
+ }
839
+ .clear-all-filters-btn:hover {
840
+ background: rgba(248, 81, 73, 0.1);
566
841
  }
567
- .usage-context > div {
842
+
843
+ .subagent-selector {
568
844
  display: flex;
569
- gap: 8px;
570
845
  align-items: center;
846
+ gap: 8px;
847
+ position: relative;
571
848
  }
572
- .usage-code-changes {
573
- font-size: 12px;
574
- color: #c9d1d9;
849
+
850
+ .subagent-dropdown-trigger {
575
851
  display: flex;
576
- gap: 8px;
577
852
  align-items: center;
853
+ gap: 6px;
854
+ padding: 4px 10px;
855
+ background: #161b22;
856
+ border: 1px solid #30363d;
857
+ border-radius: 6px;
858
+ color: #c9d1d9;
859
+ font-size: 13px;
860
+ cursor: pointer;
861
+ max-width: 280px;
578
862
  }
579
- .usage-code-added {
580
- color: #3fb950;
581
- font-weight: 600;
582
- }
583
- .usage-code-removed {
584
- color: #f85149;
585
- font-weight: 600;
586
- }
587
- .usage-code-files {
588
- color: #8b949e;
589
- }
863
+ .subagent-dropdown-trigger:hover { border-color: #58a6ff; }
864
+ .subagent-trigger-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
865
+ .subagent-trigger-arrow { font-size: 10px; opacity: 0.6; }
590
866
 
591
- /* Content */
592
- .content {
593
- flex: 1;
594
- display: flex;
595
- flex-direction: column;
867
+ .subagent-dropdown-panel {
868
+ position: absolute;
869
+ top: calc(100% + 4px);
870
+ right: 0;
871
+ z-index: 100;
872
+ min-width: 320px;
873
+ max-width: 420px;
874
+ background: #161b22;
875
+ border: 1px solid #30363d;
876
+ border-radius: 8px;
877
+ box-shadow: 0 8px 24px rgba(0,0,0,0.4);
596
878
  overflow: hidden;
597
- position: relative;
598
879
  }
599
-
600
- .scroll-indicator {
880
+
881
+ .subagent-search-input {
882
+ width: 100%;
601
883
  padding: 8px 12px;
602
884
  background: #0d1117;
885
+ border: none;
603
886
  border-bottom: 1px solid #30363d;
604
- font-size: 12px;
605
887
  color: #c9d1d9;
606
- flex-shrink: 0;
607
- display: flex;
608
- align-items: center;
609
- justify-content: space-between;
888
+ font-size: 13px;
889
+ outline: none;
890
+ box-sizing: border-box;
610
891
  }
611
-
612
- .content-toolbar-left {
892
+ .subagent-search-input::placeholder { color: #484f58; }
893
+
894
+ .subagent-dropdown-list {
895
+ max-height: 320px;
896
+ overflow-y: auto;
897
+ }
898
+
899
+ .subagent-dropdown-item {
613
900
  display: flex;
614
- align-items: center;
901
+ align-items: flex-start;
615
902
  gap: 8px;
903
+ padding: 8px 12px;
904
+ cursor: pointer;
905
+ border-bottom: 1px solid #21262d;
616
906
  }
617
-
618
- .content-toolbar-center {
619
- flex: 1;
907
+ .subagent-dropdown-item:last-child { border-bottom: none; }
908
+ .subagent-dropdown-item:hover { background: #1c2129; }
909
+ .subagent-dropdown-item.active { background: rgba(88, 166, 255, 0.1); }
910
+
911
+ .subagent-item-color {
912
+ width: 4px;
913
+ min-height: 20px;
914
+ border-radius: 2px;
915
+ flex-shrink: 0;
916
+ margin-top: 2px;
917
+ }
918
+
919
+ .subagent-item-body { flex: 1; min-width: 0; }
920
+
921
+ .subagent-item-name {
922
+ font-size: 13px;
923
+ color: #c9d1d9;
924
+ font-weight: 500;
925
+ white-space: nowrap;
926
+ overflow: hidden;
927
+ text-overflow: ellipsis;
928
+ }
929
+
930
+ .subagent-item-meta {
620
931
  display: flex;
621
- justify-content: center;
622
- align-items: center;
623
- gap: 12px;
624
- padding: 0 16px;
932
+ gap: 6px;
933
+ margin-top: 2px;
934
+ flex-wrap: wrap;
935
+ }
936
+
937
+ .subagent-meta-tag {
938
+ font-size: 11px;
939
+ color: #8b949e;
940
+ background: #21262d;
941
+ padding: 1px 6px;
942
+ border-radius: 4px;
943
+ }
944
+ .subagent-meta-tag.dim { opacity: 0.7; }
945
+
946
+ .subagent-item-desc {
947
+ font-size: 11px;
948
+ color: #6e7681;
949
+ margin-top: 3px;
950
+ line-height: 1.4;
951
+ display: -webkit-box;
952
+ -webkit-line-clamp: 2;
953
+ -webkit-box-orient: vertical;
954
+ overflow: hidden;
955
+ }
956
+
957
+ .subagent-dropdown-empty {
958
+ padding: 12px;
959
+ text-align: center;
960
+ color: #484f58;
961
+ font-size: 13px;
962
+ }
963
+
964
+ .subagent-usage-badge {
965
+ font-size: 11px;
966
+ color: #7d8590;
967
+ white-space: nowrap;
625
968
  }
626
969
 
627
970
  .scroll-float-btns {
@@ -658,7 +1001,8 @@
658
1001
  opacity: 1;
659
1002
  }
660
1003
  .search-input {
661
- width: 300px;
1004
+ flex: 1;
1005
+ min-width: 120px;
662
1006
  padding: 6px 12px;
663
1007
  background: #161b22;
664
1008
  border: 1px solid #30363d;
@@ -689,7 +1033,6 @@
689
1033
 
690
1034
  /* Search result counter */
691
1035
  .search-result-count {
692
- margin-left: 12px;
693
1036
  font-size: 12px;
694
1037
  color: #c9d1d9;
695
1038
  padding: 4px 8px;
@@ -698,120 +1041,6 @@
698
1041
  white-space: nowrap;
699
1042
  }
700
1043
 
701
- .filter-dropdown {
702
- position: relative;
703
- }
704
-
705
- .filter-dropdown-toggle {
706
- padding: 12px 16px;
707
- min-height: 44px;
708
- background: #161b22;
709
- border: 1px solid #30363d;
710
- border-radius: 6px;
711
- color: #c9d1d9;
712
- font-size: 13px;
713
- cursor: pointer;
714
- display: flex;
715
- align-items: center;
716
- gap: 6px;
717
- transition: all 0.2s;
718
- white-space: nowrap;
719
- }
720
-
721
- .filter-dropdown-toggle:hover {
722
- border-color: #58a6ff;
723
- background: #0d1117;
724
- }
725
-
726
- .filter-count {
727
- background: #58a6ff;
728
- color: #0d1117;
729
- padding: 2px 6px;
730
- border-radius: 10px;
731
- font-size: 12px;
732
- font-weight: 600;
733
- }
734
-
735
- .filter-dropdown-menu {
736
- position: absolute;
737
- top: calc(100% + 4px);
738
- right: 0;
739
- background: #161b22;
740
- border: 1px solid #30363d;
741
- border-radius: 6px;
742
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
743
- min-width: 250px;
744
- z-index: 1000;
745
- }
746
-
747
- .filter-dropdown-header {
748
- padding: 8px 12px;
749
- border-bottom: 1px solid #30363d;
750
- display: flex;
751
- justify-content: space-between;
752
- align-items: center;
753
- font-size: 12px;
754
- font-weight: 600;
755
- color: #c9d1d9;
756
- }
757
-
758
- .clear-filters-btn {
759
- background: none;
760
- border: none;
761
- color: #58a6ff;
762
- cursor: pointer;
763
- font-size: 12px;
764
- padding: 2px 6px;
765
- border-radius: 3px;
766
- transition: background 0.2s;
767
- }
768
-
769
- .clear-filters-btn:hover {
770
- background: rgba(88, 166, 255, 0.1);
771
- }
772
-
773
- .filter-options {
774
- max-height: 300px;
775
- overflow-y: auto;
776
- padding: 4px 0;
777
- }
778
-
779
- .filter-option {
780
- display: flex;
781
- align-items: center;
782
- gap: 8px;
783
- padding: 6px 12px;
784
- cursor: pointer;
785
- transition: background 0.2s;
786
- font-size: 13px;
787
- }
788
-
789
- .filter-option:hover {
790
- background: rgba(88, 166, 255, 0.1);
791
- }
792
-
793
- .filter-option input[type="checkbox"] {
794
- cursor: pointer;
795
- accent-color: #58a6ff;
796
- }
797
-
798
- .filter-option-label {
799
- flex: 1;
800
- color: #c9d1d9;
801
- }
802
-
803
- .filter-option-count {
804
- color: #7d8590;
805
- font-size: 12px;
806
- }
807
-
808
- .content-toolbar-right {
809
- display: flex;
810
- align-items: center;
811
- justify-content: flex-end;
812
- gap: 8px;
813
- }
814
-
815
1044
  /* Turn navigation in toolbar */
816
1045
  .turn-dropdown {
817
1046
  padding: 6px 12px;
@@ -905,6 +1134,7 @@
905
1134
  .badge-reasoning { background: #a371f7; color: #fff; }
906
1135
  .badge-turn { background: #8250df; color: #fff; }
907
1136
  .badge-tool { background: #9e6a03; color: #fff; }
1137
+ .badge-hook { background: #484f58; color: #c9d1d9; }
908
1138
  .badge-subagent { background: #8957e5; color: #fff; }
909
1139
  .badge-skill { background: #bf3989; color: #fff; }
910
1140
  .badge-session { background: #6e7681; color: #fff; }
@@ -1155,6 +1385,35 @@
1155
1385
  margin-right: 3px;
1156
1386
  }
1157
1387
 
1388
+ /* Hook event styles */
1389
+ .hook-content { font-size: 13px; }
1390
+ .hook-summary { color: #8b949e; }
1391
+ .hook-section { margin-top: 4px; }
1392
+ .hook-section-header {
1393
+ cursor: pointer;
1394
+ display: inline-flex;
1395
+ align-items: center;
1396
+ gap: 4px;
1397
+ padding: 2px 0;
1398
+ user-select: none;
1399
+ }
1400
+ .hook-section-header:hover { color: #c9d1d9; }
1401
+ .hook-section-body {
1402
+ margin-top: 2px;
1403
+ padding: 6px 10px;
1404
+ background: #161b22;
1405
+ border: 1px solid #21262d;
1406
+ border-radius: 4px;
1407
+ overflow-x: auto;
1408
+ }
1409
+ .hook-section-body pre {
1410
+ margin: 0;
1411
+ font-size: 12px;
1412
+ color: #c9d1d9;
1413
+ white-space: pre-wrap;
1414
+ word-break: break-word;
1415
+ }
1416
+
1158
1417
  /* Turn divider - Design 3: Slack Style (居中对称) */
1159
1418
  .turn-divider {
1160
1419
  display: flex;
@@ -1229,12 +1488,18 @@
1229
1488
  color: #58a6ff;
1230
1489
  background: rgba(88, 166, 255, 0.1);
1231
1490
  }
1491
+ .subagent-divider-model {
1492
+ font-weight: 400;
1493
+ opacity: 0.8;
1494
+ font-size: 11px;
1495
+ }
1232
1496
  .subagent-divider-line-left,
1233
1497
  .subagent-divider-line-right {
1234
1498
  display: none;
1235
1499
  }
1236
1500
  .event.event-in-subagent { border-left-color: var(--subagent-border-color, #58a6ff); }
1237
- .subagent-owner-tag { font-size: 11px; padding: 1px 6px; border-radius: 8px; border: 1px solid; white-space: nowrap; opacity: 0.85; }
1501
+ .subagent-owner-tag { font-size: 11px; padding: 1px 6px; border-radius: 8px; border: 1px solid; border-color: var(--subagent-color, #58a6ff); color: var(--subagent-color, #58a6ff); white-space: nowrap; opacity: 0.85; cursor: pointer; transition: opacity 0.15s; }
1502
+ .subagent-owner-tag:hover { opacity: 1; background: var(--subagent-hover-bg, rgba(88, 166, 255, 0.15)); }
1238
1503
  .subagent-name-badge { font-size: 11px; padding: 2px 8px; border-radius: 4px; border: 1px solid; white-space: nowrap; font-weight: 600; max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
1239
1504
 
1240
1505
  /* Bottom spacer for last event visibility */
@@ -1248,6 +1513,23 @@
1248
1513
  display: none;
1249
1514
  }
1250
1515
 
1516
+ /* ── Tablet responsive ─────────────────────────────────── */
1517
+ @media (max-width: 768px) {
1518
+ .filter-bar-search {
1519
+ flex: 1 1 100%;
1520
+ order: 1;
1521
+ }
1522
+ .filter-bar-row {
1523
+ flex-wrap: wrap;
1524
+ }
1525
+ .filter-bar-divider {
1526
+ display: none;
1527
+ }
1528
+ .subagent-usage-badge {
1529
+ display: none;
1530
+ }
1531
+ }
1532
+
1251
1533
  /* ── Mobile responsive ────────────────────────────────────── */
1252
1534
  @media (max-width: 640px) {
1253
1535
  /* Header: smaller, wrap if needed */
@@ -1306,25 +1588,70 @@
1306
1588
  width: 100%;
1307
1589
  }
1308
1590
 
1309
- /* Toolbar: stack if narrow */
1310
- .scroll-indicator {
1591
+ /* Toolbar: unified responsive layout */
1592
+ .filter-bar-row {
1311
1593
  flex-wrap: wrap;
1312
1594
  gap: 4px;
1313
1595
  padding: 6px 8px;
1314
1596
  }
1315
- .content-toolbar-left,
1316
- .content-toolbar-right {
1317
- gap: 4px;
1597
+ .filter-bar-search {
1598
+ flex: 1 1 100%;
1599
+ order: 1;
1600
+ }
1601
+ .sidebar-toggle {
1602
+ order: 0;
1603
+ }
1604
+ .filter-bar-divider {
1605
+ display: none;
1606
+ }
1607
+ .turn-dropdown {
1608
+ order: 2;
1609
+ flex: 1;
1610
+ min-width: 0;
1611
+ max-width: 140px;
1612
+ font-size: 12px;
1613
+ }
1614
+ .subagent-selector {
1615
+ order: 3;
1616
+ }
1617
+ .filter-type-wrapper {
1618
+ order: 4;
1318
1619
  }
1319
1620
  .search-input {
1320
1621
  flex: 1;
1321
1622
  min-width: 0;
1322
1623
  font-size: 12px;
1323
1624
  }
1324
- .turn-dropdown {
1325
- max-width: 140px;
1625
+ .subagent-dropdown-trigger {
1626
+ max-width: 160px;
1326
1627
  font-size: 12px;
1327
1628
  }
1629
+ .subagent-dropdown-panel {
1630
+ min-width: 260px;
1631
+ max-width: calc(100vw - 32px);
1632
+ right: 0;
1633
+ left: auto;
1634
+ }
1635
+ .subagent-usage-badge {
1636
+ display: none;
1637
+ }
1638
+
1639
+ .usage-summary {
1640
+ padding: 12px;
1641
+ }
1642
+ .usage-summary-total {
1643
+ font-size: 20px;
1644
+ }
1645
+ .usage-summary-metrics,
1646
+ .usage-metric-grid-compact {
1647
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1648
+ }
1649
+ .usage-model-header {
1650
+ gap: 6px;
1651
+ }
1652
+ .usage-model-meta {
1653
+ justify-content: flex-start;
1654
+ }
1328
1655
 
1329
1656
  /* Float buttons: slightly smaller, keep fixed */
1330
1657
  .scroll-float-btns {