@shawnowen/comet-mcp 2.3.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.
@@ -0,0 +1,1068 @@
1
+ /* ─── Comet Session Manager Sidebar ─── */
2
+ /* Dark theme, folder-tree styles, lifecycle color badges */
3
+
4
+ /* ─── Reset & Base ─── */
5
+ *,
6
+ *::before,
7
+ *::after {
8
+ box-sizing: border-box;
9
+ margin: 0;
10
+ padding: 0;
11
+ }
12
+
13
+ :root {
14
+ /* Surface colors */
15
+ --bg-primary: #1a1a2e;
16
+ --bg-secondary: #16213e;
17
+ --bg-tertiary: #0f3460;
18
+ --bg-hover: rgba(255, 255, 255, 0.06);
19
+ --bg-active: rgba(255, 255, 255, 0.1);
20
+
21
+ /* Text colors */
22
+ --text-primary: #e8e8f0;
23
+ --text-secondary: #a0a0b8;
24
+ --text-tertiary: #707088;
25
+ --text-accent: #7c83ff;
26
+
27
+ /* Border */
28
+ --border-subtle: rgba(255, 255, 255, 0.08);
29
+ --border-focus: rgba(124, 131, 255, 0.5);
30
+
31
+ /* Status */
32
+ --color-success: #4ade80;
33
+ --color-error: #f87171;
34
+ --color-warning: #fbbf24;
35
+
36
+ /* 9 Lifecycle colors (Chrome TabGroup colors) */
37
+ --group-grey: #8b8b8b;
38
+ --group-blue: #4688f1;
39
+ --group-red: #d93025;
40
+ --group-yellow: #f9ab00;
41
+ --group-green: #188038;
42
+ --group-pink: #e91e8c;
43
+ --group-purple: #9334e6;
44
+ --group-cyan: #00acc1;
45
+ --group-orange: #fa903e;
46
+
47
+ /* Sizing */
48
+ --sidebar-width: 100%;
49
+ --header-height: 42px;
50
+ --footer-height: 32px;
51
+ --indent-size: 16px;
52
+ --radius-sm: 4px;
53
+ --radius-md: 6px;
54
+ --radius-lg: 8px;
55
+
56
+ /* Animation */
57
+ --transition-fast: 120ms ease;
58
+ --transition-normal: 200ms ease;
59
+ --transition-slow: 300ms ease-out;
60
+ }
61
+
62
+ html,
63
+ body {
64
+ height: 100%;
65
+ overflow: hidden;
66
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
67
+ font-size: 13px;
68
+ line-height: 1.4;
69
+ color: var(--text-primary);
70
+ background: var(--bg-primary);
71
+ -webkit-font-smoothing: antialiased;
72
+ }
73
+
74
+ body {
75
+ display: flex;
76
+ flex-direction: column;
77
+ }
78
+
79
+ /* ─── Search Bar ─── */
80
+ .search-container {
81
+ padding: 10px 12px 6px;
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ .search-wrapper {
86
+ position: relative;
87
+ display: flex;
88
+ align-items: center;
89
+ }
90
+
91
+ .search-icon {
92
+ position: absolute;
93
+ left: 10px;
94
+ color: var(--text-tertiary);
95
+ pointer-events: none;
96
+ }
97
+
98
+ .search-input {
99
+ width: 100%;
100
+ padding: 7px 30px 7px 32px;
101
+ background: var(--bg-secondary);
102
+ border: 1px solid var(--border-subtle);
103
+ border-radius: var(--radius-md);
104
+ color: var(--text-primary);
105
+ font-size: 12px;
106
+ font-family: inherit;
107
+ outline: none;
108
+ transition: border-color var(--transition-fast);
109
+ }
110
+
111
+ .search-input::placeholder {
112
+ color: var(--text-tertiary);
113
+ }
114
+
115
+ .search-input:focus {
116
+ border-color: var(--border-focus);
117
+ }
118
+
119
+ .search-clear {
120
+ position: absolute;
121
+ right: 6px;
122
+ width: 20px;
123
+ height: 20px;
124
+ border: none;
125
+ background: transparent;
126
+ color: var(--text-tertiary);
127
+ font-size: 16px;
128
+ cursor: pointer;
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ border-radius: var(--radius-sm);
133
+ transition: background var(--transition-fast), color var(--transition-fast);
134
+ }
135
+
136
+ .search-clear:hover {
137
+ background: var(--bg-hover);
138
+ color: var(--text-primary);
139
+ }
140
+
141
+ /* ─── Toolbar ─── */
142
+ .toolbar {
143
+ display: flex;
144
+ gap: 4px;
145
+ padding: 0 12px 8px;
146
+ flex-shrink: 0;
147
+ }
148
+
149
+ .toolbar-btn {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 5px;
153
+ padding: 4px 10px;
154
+ background: transparent;
155
+ border: 1px solid var(--border-subtle);
156
+ border-radius: var(--radius-sm);
157
+ color: var(--text-secondary);
158
+ font-size: 11px;
159
+ font-family: inherit;
160
+ cursor: pointer;
161
+ transition: all var(--transition-fast);
162
+ }
163
+
164
+ .toolbar-btn:hover {
165
+ background: var(--bg-hover);
166
+ color: var(--text-primary);
167
+ border-color: var(--border-focus);
168
+ }
169
+
170
+ /* Save All button — primary accent */
171
+ .toolbar-btn-primary {
172
+ background: rgba(124, 131, 255, 0.12);
173
+ border-color: rgba(124, 131, 255, 0.3);
174
+ color: var(--text-accent);
175
+ font-weight: 600;
176
+ }
177
+
178
+ .toolbar-btn-primary:hover {
179
+ background: rgba(124, 131, 255, 0.22);
180
+ border-color: var(--text-accent);
181
+ color: #fff;
182
+ }
183
+
184
+ .toolbar-btn-primary:disabled {
185
+ opacity: 0.6;
186
+ cursor: not-allowed;
187
+ }
188
+
189
+ .toolbar-btn svg {
190
+ flex-shrink: 0;
191
+ }
192
+
193
+ /* ─── Sections Container ─── */
194
+ .sections-container {
195
+ flex: 1;
196
+ overflow-y: auto;
197
+ overflow-x: hidden;
198
+ scrollbar-width: thin;
199
+ scrollbar-color: rgba(255, 255, 255, 0.15) transparent;
200
+ }
201
+
202
+ .sections-container::-webkit-scrollbar {
203
+ width: 6px;
204
+ }
205
+
206
+ .sections-container::-webkit-scrollbar-track {
207
+ background: transparent;
208
+ }
209
+
210
+ .sections-container::-webkit-scrollbar-thumb {
211
+ background: rgba(255, 255, 255, 0.15);
212
+ border-radius: 3px;
213
+ }
214
+
215
+ .sections-container::-webkit-scrollbar-thumb:hover {
216
+ background: rgba(255, 255, 255, 0.25);
217
+ }
218
+
219
+ /* ─── Section Headers ─── */
220
+ .section {
221
+ border-bottom: 1px solid var(--border-subtle);
222
+ }
223
+
224
+ .section-header {
225
+ display: flex;
226
+ align-items: center;
227
+ gap: 6px;
228
+ padding: 8px 12px;
229
+ cursor: pointer;
230
+ user-select: none;
231
+ transition: background var(--transition-fast);
232
+ }
233
+
234
+ .section-header:hover {
235
+ background: var(--bg-hover);
236
+ }
237
+
238
+ .section-chevron {
239
+ font-size: 10px;
240
+ color: var(--text-tertiary);
241
+ transition: transform var(--transition-normal);
242
+ width: 12px;
243
+ text-align: center;
244
+ }
245
+
246
+ .section-header.expanded .section-chevron {
247
+ transform: rotate(90deg);
248
+ }
249
+
250
+ .section-title {
251
+ font-weight: 600;
252
+ font-size: 12px;
253
+ text-transform: uppercase;
254
+ letter-spacing: 0.5px;
255
+ color: var(--text-secondary);
256
+ }
257
+
258
+ .section-count {
259
+ margin-left: auto;
260
+ padding: 1px 7px;
261
+ background: var(--bg-tertiary);
262
+ border-radius: 10px;
263
+ font-size: 10px;
264
+ font-weight: 600;
265
+ color: var(--text-secondary);
266
+ }
267
+
268
+ /* ─── Section Content ─── */
269
+ .section-content {
270
+ overflow: hidden;
271
+ transition: max-height var(--transition-slow);
272
+ }
273
+
274
+ .section-content.collapsed {
275
+ max-height: 0 !important;
276
+ }
277
+
278
+ /* ─── Empty States ─── */
279
+ .empty-state {
280
+ display: flex;
281
+ flex-direction: column;
282
+ align-items: center;
283
+ gap: 6px;
284
+ padding: 20px 12px;
285
+ color: var(--text-tertiary);
286
+ font-size: 12px;
287
+ }
288
+
289
+ .empty-icon {
290
+ font-size: 24px;
291
+ opacity: 0.6;
292
+ }
293
+
294
+ /* ─── Window Header ─── */
295
+ .window-header {
296
+ display: flex;
297
+ align-items: center;
298
+ gap: 6px;
299
+ padding: 4px 12px 4px 16px;
300
+ font-size: 11px;
301
+ color: var(--text-tertiary);
302
+ font-weight: 500;
303
+ }
304
+
305
+ .window-header::before {
306
+ content: '';
307
+ width: 8px;
308
+ height: 8px;
309
+ border: 1.5px solid var(--text-tertiary);
310
+ border-radius: 2px;
311
+ flex-shrink: 0;
312
+ }
313
+
314
+ /* ─── Tab Group Node ─── */
315
+ .group-node {
316
+ margin: 1px 0;
317
+ }
318
+
319
+ .group-header {
320
+ display: flex;
321
+ align-items: center;
322
+ gap: 6px;
323
+ padding: 5px 12px 5px 28px;
324
+ cursor: pointer;
325
+ user-select: none;
326
+ transition: background var(--transition-fast);
327
+ position: relative;
328
+ }
329
+
330
+ .group-header:hover {
331
+ background: var(--bg-hover);
332
+ }
333
+
334
+ .group-header:hover .group-actions {
335
+ opacity: 1;
336
+ }
337
+
338
+ .group-chevron {
339
+ font-size: 9px;
340
+ color: var(--text-tertiary);
341
+ transition: transform var(--transition-normal);
342
+ width: 10px;
343
+ text-align: center;
344
+ flex-shrink: 0;
345
+ }
346
+
347
+ .group-header.expanded .group-chevron {
348
+ transform: rotate(90deg);
349
+ }
350
+
351
+ .group-color-badge {
352
+ width: 10px;
353
+ height: 10px;
354
+ border-radius: 3px;
355
+ flex-shrink: 0;
356
+ }
357
+
358
+ /* Lifecycle color badge variants */
359
+ .badge-grey {
360
+ background: var(--group-grey);
361
+ }
362
+
363
+ .badge-blue {
364
+ background: var(--group-blue);
365
+ }
366
+
367
+ .badge-red {
368
+ background: var(--group-red);
369
+ }
370
+
371
+ .badge-yellow {
372
+ background: var(--group-yellow);
373
+ }
374
+
375
+ .badge-green {
376
+ background: var(--group-green);
377
+ }
378
+
379
+ .badge-pink {
380
+ background: var(--group-pink);
381
+ }
382
+
383
+ .badge-purple {
384
+ background: var(--group-purple);
385
+ }
386
+
387
+ .badge-cyan {
388
+ background: var(--group-cyan);
389
+ }
390
+
391
+ .badge-orange {
392
+ background: var(--group-orange);
393
+ }
394
+
395
+ .group-title {
396
+ font-size: 12px;
397
+ font-weight: 500;
398
+ color: var(--text-primary);
399
+ white-space: nowrap;
400
+ overflow: hidden;
401
+ text-overflow: ellipsis;
402
+ flex: 1;
403
+ min-width: 0;
404
+ }
405
+
406
+ .group-tab-count {
407
+ font-size: 10px;
408
+ color: var(--text-tertiary);
409
+ flex-shrink: 0;
410
+ padding: 0 4px;
411
+ }
412
+
413
+ .group-actions {
414
+ display: flex;
415
+ gap: 2px;
416
+ opacity: 0;
417
+ transition: opacity var(--transition-fast);
418
+ flex-shrink: 0;
419
+ }
420
+
421
+ .action-btn {
422
+ width: 22px;
423
+ height: 22px;
424
+ border: none;
425
+ background: transparent;
426
+ color: var(--text-tertiary);
427
+ border-radius: var(--radius-sm);
428
+ cursor: pointer;
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: center;
432
+ font-size: 12px;
433
+ transition: all var(--transition-fast);
434
+ }
435
+
436
+ .action-btn:hover {
437
+ background: var(--bg-active);
438
+ color: var(--text-primary);
439
+ }
440
+
441
+ .action-btn.archive-btn:hover {
442
+ color: var(--color-warning);
443
+ }
444
+
445
+ .action-btn.restore-btn:hover {
446
+ color: var(--color-success);
447
+ }
448
+
449
+ .action-btn.delete-btn:hover {
450
+ color: var(--color-error);
451
+ }
452
+
453
+ .action-btn.close-btn:hover {
454
+ color: var(--color-error);
455
+ }
456
+
457
+ /* ─── Tab Leaf ─── */
458
+ .tab-list {
459
+ overflow: hidden;
460
+ transition: max-height var(--transition-normal);
461
+ }
462
+
463
+ .tab-list.collapsed {
464
+ max-height: 0 !important;
465
+ }
466
+
467
+ .tab-item {
468
+ display: flex;
469
+ align-items: center;
470
+ gap: 6px;
471
+ padding: 3px 12px 3px 50px;
472
+ cursor: pointer;
473
+ transition: background var(--transition-fast);
474
+ position: relative;
475
+ }
476
+
477
+ .tab-item:hover {
478
+ background: var(--bg-hover);
479
+ }
480
+
481
+ .tab-item:hover .tab-close {
482
+ opacity: 1;
483
+ }
484
+
485
+ .tab-item.active {
486
+ background: var(--bg-active);
487
+ }
488
+
489
+ .tab-favicon {
490
+ width: 14px;
491
+ height: 14px;
492
+ border-radius: 2px;
493
+ flex-shrink: 0;
494
+ object-fit: contain;
495
+ }
496
+
497
+ .tab-favicon-placeholder {
498
+ width: 14px;
499
+ height: 14px;
500
+ border-radius: 2px;
501
+ flex-shrink: 0;
502
+ background: var(--bg-tertiary);
503
+ display: flex;
504
+ align-items: center;
505
+ justify-content: center;
506
+ font-size: 8px;
507
+ color: var(--text-tertiary);
508
+ }
509
+
510
+ .tab-title {
511
+ font-size: 12px;
512
+ color: var(--text-primary);
513
+ white-space: nowrap;
514
+ overflow: hidden;
515
+ text-overflow: ellipsis;
516
+ flex: 1;
517
+ min-width: 0;
518
+ }
519
+
520
+ .tab-url {
521
+ font-size: 10px;
522
+ color: var(--text-tertiary);
523
+ white-space: nowrap;
524
+ overflow: hidden;
525
+ text-overflow: ellipsis;
526
+ max-width: 120px;
527
+ }
528
+
529
+ .tab-close {
530
+ opacity: 0;
531
+ width: 18px;
532
+ height: 18px;
533
+ border: none;
534
+ background: transparent;
535
+ color: var(--text-tertiary);
536
+ border-radius: var(--radius-sm);
537
+ cursor: pointer;
538
+ display: flex;
539
+ align-items: center;
540
+ justify-content: center;
541
+ font-size: 11px;
542
+ flex-shrink: 0;
543
+ transition: all var(--transition-fast);
544
+ }
545
+
546
+ .tab-close:hover {
547
+ background: rgba(248, 113, 113, 0.15);
548
+ color: var(--color-error);
549
+ }
550
+
551
+ /* ─── Archive Entry ─── */
552
+ .archive-item {
553
+ display: flex;
554
+ align-items: center;
555
+ gap: 6px;
556
+ padding: 5px 12px 5px 28px;
557
+ cursor: pointer;
558
+ transition: background var(--transition-fast);
559
+ }
560
+
561
+ .archive-item:hover {
562
+ background: var(--bg-hover);
563
+ }
564
+
565
+ .archive-item:hover .group-actions {
566
+ opacity: 1;
567
+ }
568
+
569
+ .archive-timestamp {
570
+ font-size: 10px;
571
+ color: var(--text-tertiary);
572
+ flex-shrink: 0;
573
+ }
574
+
575
+ /* ─── Archive Expandable Node ─── */
576
+ .archive-node .group-header {
577
+ padding-left: 28px;
578
+ }
579
+
580
+ .archive-tab-item {
581
+ cursor: pointer;
582
+ }
583
+
584
+ .archive-tab-item:hover .tab-title {
585
+ color: var(--text-accent);
586
+ text-decoration: underline;
587
+ }
588
+
589
+ /* ─── Rename Input ─── */
590
+ .rename-input {
591
+ flex: 1;
592
+ min-width: 0;
593
+ padding: 2px 6px;
594
+ background: var(--bg-primary);
595
+ border: 1px solid var(--border-focus);
596
+ border-radius: var(--radius-sm);
597
+ color: var(--text-primary);
598
+ font-size: 12px;
599
+ font-weight: 500;
600
+ font-family: inherit;
601
+ outline: none;
602
+ }
603
+
604
+ .rename-input:focus {
605
+ box-shadow: 0 0 0 2px rgba(124, 131, 255, 0.2);
606
+ }
607
+
608
+ .action-btn.rename-btn:hover {
609
+ color: var(--text-accent);
610
+ }
611
+
612
+ /* ─── Recently Closed ─── */
613
+ .recent-item {
614
+ display: flex;
615
+ align-items: center;
616
+ gap: 6px;
617
+ padding: 5px 12px 5px 28px;
618
+ cursor: pointer;
619
+ transition: background var(--transition-fast);
620
+ }
621
+
622
+ .recent-item:hover {
623
+ background: var(--bg-hover);
624
+ }
625
+
626
+ .recent-item:hover .group-actions {
627
+ opacity: 1;
628
+ }
629
+
630
+ .recent-type-icon {
631
+ width: 14px;
632
+ height: 14px;
633
+ display: flex;
634
+ align-items: center;
635
+ justify-content: center;
636
+ font-size: 12px;
637
+ flex-shrink: 0;
638
+ color: var(--text-tertiary);
639
+ }
640
+
641
+ .recent-timestamp {
642
+ font-size: 10px;
643
+ color: var(--text-tertiary);
644
+ flex-shrink: 0;
645
+ margin-left: auto;
646
+ }
647
+
648
+ /* ─── Import Modal ─── */
649
+ .modal-overlay {
650
+ position: fixed;
651
+ inset: 0;
652
+ background: rgba(0, 0, 0, 0.6);
653
+ backdrop-filter: blur(4px);
654
+ display: flex;
655
+ align-items: center;
656
+ justify-content: center;
657
+ z-index: 1000;
658
+ animation: fadeIn var(--transition-normal);
659
+ }
660
+
661
+ .modal {
662
+ background: var(--bg-secondary);
663
+ border: 1px solid var(--border-subtle);
664
+ border-radius: var(--radius-lg);
665
+ width: calc(100% - 24px);
666
+ max-height: calc(100vh - 48px);
667
+ display: flex;
668
+ flex-direction: column;
669
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.4);
670
+ animation: slideUp var(--transition-slow);
671
+ }
672
+
673
+ .modal-header {
674
+ display: flex;
675
+ align-items: center;
676
+ justify-content: space-between;
677
+ padding: 14px 16px;
678
+ border-bottom: 1px solid var(--border-subtle);
679
+ }
680
+
681
+ .modal-header h3 {
682
+ font-size: 14px;
683
+ font-weight: 600;
684
+ color: var(--text-primary);
685
+ }
686
+
687
+ .modal-close {
688
+ width: 24px;
689
+ height: 24px;
690
+ border: none;
691
+ background: transparent;
692
+ color: var(--text-tertiary);
693
+ font-size: 18px;
694
+ cursor: pointer;
695
+ border-radius: var(--radius-sm);
696
+ display: flex;
697
+ align-items: center;
698
+ justify-content: center;
699
+ transition: all var(--transition-fast);
700
+ }
701
+
702
+ .modal-close:hover {
703
+ background: var(--bg-hover);
704
+ color: var(--text-primary);
705
+ }
706
+
707
+ .modal-body {
708
+ padding: 16px;
709
+ overflow-y: auto;
710
+ flex: 1;
711
+ }
712
+
713
+ .modal-description {
714
+ font-size: 12px;
715
+ color: var(--text-secondary);
716
+ margin-bottom: 10px;
717
+ }
718
+
719
+ .import-textarea {
720
+ width: 100%;
721
+ padding: 10px;
722
+ background: var(--bg-primary);
723
+ border: 1px solid var(--border-subtle);
724
+ border-radius: var(--radius-md);
725
+ color: var(--text-primary);
726
+ font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
727
+ font-size: 11px;
728
+ line-height: 1.5;
729
+ resize: vertical;
730
+ outline: none;
731
+ transition: border-color var(--transition-fast);
732
+ }
733
+
734
+ .import-textarea:focus {
735
+ border-color: var(--border-focus);
736
+ }
737
+
738
+ .import-textarea::placeholder {
739
+ color: var(--text-tertiary);
740
+ }
741
+
742
+ .import-preview {
743
+ margin-top: 12px;
744
+ padding: 10px;
745
+ background: var(--bg-primary);
746
+ border-radius: var(--radius-md);
747
+ max-height: 200px;
748
+ overflow-y: auto;
749
+ }
750
+
751
+ .import-preview-group {
752
+ margin-bottom: 8px;
753
+ padding-bottom: 8px;
754
+ border-bottom: 1px solid var(--border-subtle);
755
+ }
756
+
757
+ .import-preview-group:last-child {
758
+ margin-bottom: 0;
759
+ padding-bottom: 0;
760
+ border-bottom: none;
761
+ }
762
+
763
+ .import-group-name {
764
+ display: flex;
765
+ align-items: center;
766
+ gap: 6px;
767
+ margin-bottom: 4px;
768
+ }
769
+
770
+ .import-group-name input {
771
+ flex: 1;
772
+ padding: 3px 6px;
773
+ background: var(--bg-secondary);
774
+ border: 1px solid var(--border-subtle);
775
+ border-radius: var(--radius-sm);
776
+ color: var(--text-primary);
777
+ font-size: 12px;
778
+ font-family: inherit;
779
+ outline: none;
780
+ }
781
+
782
+ .import-group-name input:focus {
783
+ border-color: var(--border-focus);
784
+ }
785
+
786
+ .import-group-count {
787
+ font-size: 10px;
788
+ color: var(--text-tertiary);
789
+ }
790
+
791
+ .import-group-url {
792
+ font-size: 11px;
793
+ color: var(--text-tertiary);
794
+ padding: 1px 0 1px 18px;
795
+ white-space: nowrap;
796
+ overflow: hidden;
797
+ text-overflow: ellipsis;
798
+ }
799
+
800
+ .import-warning {
801
+ display: flex;
802
+ align-items: center;
803
+ gap: 6px;
804
+ margin-top: 10px;
805
+ padding: 8px 10px;
806
+ background: rgba(251, 191, 36, 0.1);
807
+ border: 1px solid rgba(251, 191, 36, 0.25);
808
+ border-radius: var(--radius-md);
809
+ color: var(--color-warning);
810
+ font-size: 11px;
811
+ }
812
+
813
+ .modal-footer {
814
+ display: flex;
815
+ justify-content: flex-end;
816
+ gap: 8px;
817
+ padding: 12px 16px;
818
+ border-top: 1px solid var(--border-subtle);
819
+ }
820
+
821
+ /* ─── Buttons ─── */
822
+ .btn {
823
+ padding: 6px 14px;
824
+ border: none;
825
+ border-radius: var(--radius-sm);
826
+ font-size: 12px;
827
+ font-weight: 500;
828
+ font-family: inherit;
829
+ cursor: pointer;
830
+ transition: all var(--transition-fast);
831
+ }
832
+
833
+ .btn:disabled {
834
+ opacity: 0.5;
835
+ cursor: not-allowed;
836
+ }
837
+
838
+ .btn-primary {
839
+ background: var(--text-accent);
840
+ color: #fff;
841
+ }
842
+
843
+ .btn-primary:hover:not(:disabled) {
844
+ background: #6b72e8;
845
+ }
846
+
847
+ .btn-secondary {
848
+ background: transparent;
849
+ border: 1px solid var(--border-subtle);
850
+ color: var(--text-secondary);
851
+ }
852
+
853
+ .btn-secondary:hover {
854
+ background: var(--bg-hover);
855
+ color: var(--text-primary);
856
+ }
857
+
858
+ /* ─── Status Bar ─── */
859
+ .status-bar {
860
+ display: flex;
861
+ align-items: center;
862
+ justify-content: space-between;
863
+ padding: 4px 12px;
864
+ height: var(--footer-height);
865
+ background: var(--bg-secondary);
866
+ border-top: 1px solid var(--border-subtle);
867
+ flex-shrink: 0;
868
+ }
869
+
870
+ .status-indicator {
871
+ display: flex;
872
+ align-items: center;
873
+ gap: 6px;
874
+ }
875
+
876
+ .status-dot {
877
+ width: 7px;
878
+ height: 7px;
879
+ border-radius: 50%;
880
+ background: var(--text-tertiary);
881
+ transition: background var(--transition-normal);
882
+ }
883
+
884
+ .status-dot.connected {
885
+ background: var(--color-success);
886
+ box-shadow: 0 0 6px rgba(74, 222, 128, 0.4);
887
+ animation: pulse 2s ease-in-out infinite;
888
+ }
889
+
890
+ .status-dot.disconnected {
891
+ background: var(--color-error);
892
+ box-shadow: 0 0 6px rgba(248, 113, 113, 0.4);
893
+ }
894
+
895
+ .status-text {
896
+ font-size: 11px;
897
+ color: var(--text-tertiary);
898
+ }
899
+
900
+ .reconnect-btn {
901
+ padding: 2px 8px;
902
+ background: transparent;
903
+ border: 1px solid var(--border-subtle);
904
+ border-radius: var(--radius-sm);
905
+ color: var(--text-secondary);
906
+ font-size: 10px;
907
+ font-family: inherit;
908
+ cursor: pointer;
909
+ transition: all var(--transition-fast);
910
+ }
911
+
912
+ .reconnect-btn:hover {
913
+ background: var(--bg-hover);
914
+ color: var(--text-primary);
915
+ border-color: var(--border-focus);
916
+ }
917
+
918
+ /* ─── Utility Classes ─── */
919
+ .hidden {
920
+ display: none !important;
921
+ }
922
+
923
+ /* ─── Search Highlighting ─── */
924
+ .search-match {
925
+ background: rgba(124, 131, 255, 0.25);
926
+ border-radius: 2px;
927
+ padding: 0 1px;
928
+ }
929
+
930
+ .search-section-label {
931
+ font-size: 9px;
932
+ text-transform: uppercase;
933
+ letter-spacing: 0.5px;
934
+ color: var(--text-tertiary);
935
+ padding: 1px 6px;
936
+ background: var(--bg-tertiary);
937
+ border-radius: 3px;
938
+ flex-shrink: 0;
939
+ }
940
+
941
+ /* ─── Animations ─── */
942
+ @keyframes fadeIn {
943
+ from {
944
+ opacity: 0;
945
+ }
946
+
947
+ to {
948
+ opacity: 1;
949
+ }
950
+ }
951
+
952
+ @keyframes slideUp {
953
+ from {
954
+ opacity: 0;
955
+ transform: translateY(12px);
956
+ }
957
+
958
+ to {
959
+ opacity: 1;
960
+ transform: translateY(0);
961
+ }
962
+ }
963
+
964
+ @keyframes pulse {
965
+
966
+ 0%,
967
+ 100% {
968
+ opacity: 1;
969
+ }
970
+
971
+ 50% {
972
+ opacity: 0.6;
973
+ }
974
+ }
975
+
976
+ @keyframes slideIn {
977
+ from {
978
+ opacity: 0;
979
+ transform: translateX(-8px);
980
+ }
981
+
982
+ to {
983
+ opacity: 1;
984
+ transform: translateX(0);
985
+ }
986
+ }
987
+
988
+ .slide-in {
989
+ animation: slideIn var(--transition-normal);
990
+ }
991
+
992
+ /* ─── No Results ─── */
993
+ .no-results {
994
+ display: flex;
995
+ flex-direction: column;
996
+ align-items: center;
997
+ gap: 6px;
998
+ padding: 30px 12px;
999
+ color: var(--text-tertiary);
1000
+ font-size: 12px;
1001
+ }
1002
+
1003
+ .no-results-icon {
1004
+ font-size: 28px;
1005
+ opacity: 0.5;
1006
+ }
1007
+
1008
+ /* ─── Keyboard Navigation Focus ─── */
1009
+ .kb-focused {
1010
+ outline: 1px solid var(--border-focus);
1011
+ outline-offset: -1px;
1012
+ background: var(--bg-hover) !important;
1013
+ }
1014
+
1015
+ /* ─── Archive/Restore Slide Animations (T040) ─── */
1016
+ @keyframes slideOutRight {
1017
+ from {
1018
+ opacity: 1;
1019
+ transform: translateX(0);
1020
+ }
1021
+
1022
+ to {
1023
+ opacity: 0;
1024
+ transform: translateX(20px);
1025
+ }
1026
+ }
1027
+
1028
+ @keyframes slideInLeft {
1029
+ from {
1030
+ opacity: 0;
1031
+ transform: translateX(-20px);
1032
+ }
1033
+
1034
+ to {
1035
+ opacity: 1;
1036
+ transform: translateX(0);
1037
+ }
1038
+ }
1039
+
1040
+ .archive-anim-out {
1041
+ animation: slideOutRight var(--transition-slow) forwards;
1042
+ }
1043
+
1044
+ .archive-anim-in {
1045
+ animation: slideInLeft var(--transition-slow);
1046
+ }
1047
+
1048
+ /* ─── Search Filter Fade (T040) ─── */
1049
+ @keyframes filterFadeIn {
1050
+ from {
1051
+ opacity: 0;
1052
+ transform: scale(0.97);
1053
+ }
1054
+
1055
+ to {
1056
+ opacity: 1;
1057
+ transform: scale(1);
1058
+ }
1059
+ }
1060
+
1061
+ .filter-visible {
1062
+ animation: filterFadeIn var(--transition-fast);
1063
+ }
1064
+
1065
+ /* ─── Recently Closed Window Node ─── */
1066
+ .recent-window-node .group-header {
1067
+ padding-left: 28px;
1068
+ }