ccanalyzer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,738 @@
1
+ :root {
2
+ --bg: #0d0f14;
3
+ --bg2: #141720;
4
+ --bg3: #1a1e28;
5
+ --bg4: #1f2433;
6
+ --border: #252b3a;
7
+ --border2: #2e3650;
8
+ --text: #e2e8f0;
9
+ --text2: #8892a4;
10
+ --text3: #5a6478;
11
+ --accent: #4f8ef7;
12
+ --accent2: #2d5fba;
13
+ --green: #34d399;
14
+ --yellow: #fbbf24;
15
+ --orange: #f97316;
16
+ --red: #f87171;
17
+ --purple: #a78bfa;
18
+ --teal: #2dd4bf;
19
+ --radius: 8px;
20
+ --radius2: 12px;
21
+ --sidebar-w: 220px;
22
+ --font: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
23
+ }
24
+
25
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
26
+
27
+ body {
28
+ background: var(--bg);
29
+ color: var(--text);
30
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
31
+ font-size: 14px;
32
+ height: 100vh;
33
+ overflow: hidden;
34
+ }
35
+
36
+ #app {
37
+ display: flex;
38
+ height: 100vh;
39
+ }
40
+
41
+ /* ── Sidebar ── */
42
+ #sidebar {
43
+ width: var(--sidebar-w);
44
+ background: var(--bg2);
45
+ border-right: 1px solid var(--border);
46
+ display: flex;
47
+ flex-direction: column;
48
+ flex-shrink: 0;
49
+ overflow: hidden;
50
+ }
51
+
52
+ .logo {
53
+ padding: 20px 16px 16px;
54
+ border-bottom: 1px solid var(--border);
55
+ display: flex;
56
+ align-items: center;
57
+ gap: 10px;
58
+ }
59
+ .logo-icon { font-size: 20px; color: var(--accent); }
60
+ .logo-text { font-size: 16px; font-weight: 700; letter-spacing: 0.5px; color: var(--text); }
61
+
62
+ #nav-menu {
63
+ padding: 12px 8px;
64
+ display: flex;
65
+ flex-direction: column;
66
+ gap: 2px;
67
+ }
68
+
69
+ .nav-item {
70
+ display: flex;
71
+ align-items: center;
72
+ gap: 10px;
73
+ padding: 9px 12px;
74
+ border-radius: var(--radius);
75
+ color: var(--text2);
76
+ text-decoration: none;
77
+ font-size: 13px;
78
+ transition: all 0.15s;
79
+ cursor: pointer;
80
+ }
81
+ .nav-item:hover { background: var(--bg3); color: var(--text); }
82
+ .nav-item.active { background: var(--bg4); color: var(--accent); }
83
+ .nav-icon { font-size: 14px; }
84
+
85
+ #breadcrumb {
86
+ padding: 16px 12px;
87
+ margin-top: auto;
88
+ border-top: 1px solid var(--border);
89
+ font-size: 11px;
90
+ color: var(--text3);
91
+ line-height: 1.6;
92
+ }
93
+
94
+ /* ── Content ── */
95
+ #content {
96
+ flex: 1;
97
+ overflow-y: auto;
98
+ padding: 0;
99
+ }
100
+ #content::-webkit-scrollbar { width: 6px; }
101
+ #content::-webkit-scrollbar-track { background: transparent; }
102
+ #content::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
103
+
104
+ .view { padding: 28px 32px; }
105
+ .hidden { display: none !important; }
106
+
107
+ /* ── Page header ── */
108
+ .page-header {
109
+ margin-bottom: 28px;
110
+ }
111
+ .page-header h1 {
112
+ font-size: 22px;
113
+ font-weight: 700;
114
+ color: var(--text);
115
+ margin-bottom: 4px;
116
+ }
117
+ .page-header .subtitle {
118
+ color: var(--text2);
119
+ font-size: 13px;
120
+ }
121
+
122
+ /* ── Stats grid ── */
123
+ .stats-grid {
124
+ display: grid;
125
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
126
+ gap: 14px;
127
+ margin-bottom: 28px;
128
+ }
129
+
130
+ .stat-card {
131
+ background: var(--bg2);
132
+ border: 1px solid var(--border);
133
+ border-radius: var(--radius2);
134
+ padding: 18px 20px;
135
+ transition: border-color 0.15s;
136
+ }
137
+ .stat-card:hover { border-color: var(--border2); }
138
+ .stat-card .label {
139
+ font-size: 11px;
140
+ text-transform: uppercase;
141
+ letter-spacing: 0.8px;
142
+ color: var(--text3);
143
+ margin-bottom: 8px;
144
+ }
145
+ .stat-card .value {
146
+ font-size: 24px;
147
+ font-weight: 700;
148
+ color: var(--text);
149
+ }
150
+ .stat-card .sub {
151
+ font-size: 12px;
152
+ color: var(--text2);
153
+ margin-top: 4px;
154
+ }
155
+ .stat-card.accent .value { color: var(--accent); }
156
+ .stat-card.green .value { color: var(--green); }
157
+ .stat-card.yellow .value { color: var(--yellow); }
158
+ .stat-card.purple .value { color: var(--purple); }
159
+
160
+ /* ── Chart section ── */
161
+ .chart-section {
162
+ background: var(--bg2);
163
+ border: 1px solid var(--border);
164
+ border-radius: var(--radius2);
165
+ padding: 20px 24px;
166
+ margin-bottom: 28px;
167
+ }
168
+ .chart-section h2 {
169
+ font-size: 14px;
170
+ font-weight: 600;
171
+ color: var(--text2);
172
+ margin-bottom: 16px;
173
+ text-transform: uppercase;
174
+ letter-spacing: 0.6px;
175
+ }
176
+ .chart-container { height: 180px; }
177
+
178
+ /* ── Tables ── */
179
+ .section-title {
180
+ font-size: 12px;
181
+ font-weight: 600;
182
+ text-transform: uppercase;
183
+ letter-spacing: 0.8px;
184
+ color: var(--text3);
185
+ margin-bottom: 12px;
186
+ }
187
+
188
+ .table-wrap {
189
+ background: var(--bg2);
190
+ border: 1px solid var(--border);
191
+ border-radius: var(--radius2);
192
+ overflow: hidden;
193
+ }
194
+
195
+ table {
196
+ width: 100%;
197
+ border-collapse: collapse;
198
+ }
199
+ th {
200
+ background: var(--bg3);
201
+ padding: 10px 16px;
202
+ text-align: left;
203
+ font-size: 11px;
204
+ text-transform: uppercase;
205
+ letter-spacing: 0.7px;
206
+ color: var(--text3);
207
+ border-bottom: 1px solid var(--border);
208
+ font-weight: 600;
209
+ }
210
+ td {
211
+ padding: 12px 16px;
212
+ border-bottom: 1px solid var(--border);
213
+ vertical-align: middle;
214
+ font-size: 13px;
215
+ }
216
+ tr:last-child td { border-bottom: none; }
217
+ tr:hover td { background: var(--bg3); cursor: pointer; }
218
+
219
+ .td-name { color: var(--text); font-weight: 500; max-width: 300px; }
220
+ .td-path { color: var(--text3); font-family: var(--font); font-size: 11px; }
221
+ .td-num { color: var(--text2); text-align: right; }
222
+ .td-cost { color: var(--green); font-family: var(--font); font-weight: 600; text-align: right; }
223
+ .td-date { color: var(--text3); font-size: 12px; }
224
+
225
+ /* ── Badges ── */
226
+ .badge {
227
+ display: inline-flex;
228
+ align-items: center;
229
+ gap: 4px;
230
+ padding: 2px 8px;
231
+ border-radius: 20px;
232
+ font-size: 11px;
233
+ font-weight: 500;
234
+ }
235
+ .badge-model { background: #1a2440; color: var(--accent); }
236
+ .badge-agent { background: #1a2a20; color: var(--green); }
237
+ .badge-sidechain { background: #2a1a30; color: var(--purple); }
238
+
239
+ /* ── Session detail ── */
240
+ .session-meta {
241
+ display: flex;
242
+ flex-wrap: wrap;
243
+ gap: 12px;
244
+ margin-bottom: 24px;
245
+ padding: 16px 20px;
246
+ background: var(--bg2);
247
+ border: 1px solid var(--border);
248
+ border-radius: var(--radius2);
249
+ }
250
+ .meta-item { display: flex; flex-direction: column; gap: 3px; }
251
+ .meta-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.7px; color: var(--text3); }
252
+ .meta-value { font-size: 13px; color: var(--text); font-weight: 500; }
253
+ .meta-value.mono { font-family: var(--font); font-size: 12px; }
254
+ .meta-value.green { color: var(--green); }
255
+ .meta-value.accent { color: var(--accent); }
256
+
257
+ /* ── Token bar ── */
258
+ .token-bar {
259
+ display: flex;
260
+ gap: 16px;
261
+ padding: 14px 20px;
262
+ background: var(--bg2);
263
+ border: 1px solid var(--border);
264
+ border-radius: var(--radius2);
265
+ margin-bottom: 24px;
266
+ flex-wrap: wrap;
267
+ }
268
+ .token-item { display: flex; flex-direction: column; gap: 3px; }
269
+ .token-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.7px; color: var(--text3); }
270
+ .token-value { font-family: var(--font); font-size: 14px; font-weight: 600; }
271
+ .token-value.input { color: var(--accent); }
272
+ .token-value.output { color: var(--green); }
273
+ .token-value.cache-w { color: var(--yellow); }
274
+ .token-value.cache-r { color: var(--teal); }
275
+ .token-value.cost { color: var(--orange); }
276
+
277
+ /* ── Messages ── */
278
+ .messages-container {
279
+ display: flex;
280
+ flex-direction: column;
281
+ gap: 10px;
282
+ }
283
+
284
+ .message {
285
+ border-radius: var(--radius2);
286
+ border: 1px solid var(--border);
287
+ overflow: hidden;
288
+ }
289
+ .message.sidechain {
290
+ border-color: var(--purple);
291
+ border-left: 3px solid var(--purple);
292
+ opacity: 0.85;
293
+ }
294
+
295
+ .message-header {
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: space-between;
299
+ padding: 10px 16px;
300
+ background: var(--bg3);
301
+ gap: 12px;
302
+ cursor: pointer;
303
+ user-select: none;
304
+ }
305
+ .message-header:hover { background: var(--bg4); }
306
+
307
+ .msg-role {
308
+ font-size: 11px;
309
+ font-weight: 700;
310
+ text-transform: uppercase;
311
+ letter-spacing: 0.8px;
312
+ }
313
+ .msg-role.user { color: var(--yellow); }
314
+ .msg-role.assistant { color: var(--accent); }
315
+
316
+ .msg-meta {
317
+ display: flex;
318
+ align-items: center;
319
+ gap: 10px;
320
+ font-size: 11px;
321
+ color: var(--text3);
322
+ margin-left: auto;
323
+ }
324
+
325
+ .msg-chevron {
326
+ color: var(--text3);
327
+ font-size: 10px;
328
+ transition: transform 0.2s;
329
+ }
330
+ .message.collapsed .msg-chevron { transform: rotate(-90deg); }
331
+
332
+ .message-body {
333
+ padding: 14px 16px;
334
+ background: var(--bg2);
335
+ }
336
+ .message.collapsed .message-body { display: none; }
337
+
338
+ .msg-text {
339
+ color: var(--text);
340
+ line-height: 1.65;
341
+ white-space: pre-wrap;
342
+ word-break: break-word;
343
+ font-size: 13px;
344
+ }
345
+ .msg-text code {
346
+ background: var(--bg4);
347
+ padding: 1px 5px;
348
+ border-radius: 4px;
349
+ font-family: var(--font);
350
+ font-size: 12px;
351
+ color: var(--teal);
352
+ }
353
+
354
+ /* ── Tool call ── */
355
+ .tool-call {
356
+ background: var(--bg3);
357
+ border: 1px solid var(--border2);
358
+ border-radius: var(--radius);
359
+ padding: 10px 14px;
360
+ margin: 8px 0;
361
+ }
362
+ .tool-name {
363
+ font-family: var(--font);
364
+ font-size: 12px;
365
+ color: var(--purple);
366
+ font-weight: 600;
367
+ margin-bottom: 6px;
368
+ }
369
+ .tool-input {
370
+ font-family: var(--font);
371
+ font-size: 11px;
372
+ color: var(--text2);
373
+ white-space: pre-wrap;
374
+ word-break: break-word;
375
+ max-height: 200px;
376
+ overflow-y: auto;
377
+ }
378
+
379
+ .thinking-block {
380
+ background: var(--bg4);
381
+ border-left: 3px solid var(--text3);
382
+ padding: 8px 12px;
383
+ margin: 6px 0;
384
+ font-size: 12px;
385
+ color: var(--text3);
386
+ font-style: italic;
387
+ }
388
+
389
+ .usage-inline {
390
+ margin-top: 10px;
391
+ padding-top: 10px;
392
+ border-top: 1px solid var(--border);
393
+ display: flex;
394
+ gap: 14px;
395
+ flex-wrap: wrap;
396
+ }
397
+ .usage-chip {
398
+ font-size: 11px;
399
+ font-family: var(--font);
400
+ color: var(--text3);
401
+ }
402
+ .usage-chip span { font-weight: 600; }
403
+ .usage-chip .in { color: var(--accent); }
404
+ .usage-chip .out { color: var(--green); }
405
+ .usage-chip .cw { color: var(--yellow); }
406
+ .usage-chip .cr { color: var(--teal); }
407
+
408
+ /* ── Back button ── */
409
+ .back-btn {
410
+ display: inline-flex;
411
+ align-items: center;
412
+ gap: 8px;
413
+ padding: 8px 14px;
414
+ background: var(--bg3);
415
+ border: 1px solid var(--border);
416
+ border-radius: var(--radius);
417
+ color: var(--text2);
418
+ cursor: pointer;
419
+ font-size: 13px;
420
+ margin-bottom: 20px;
421
+ transition: all 0.15s;
422
+ }
423
+ .back-btn:hover { background: var(--bg4); color: var(--text); border-color: var(--border2); }
424
+
425
+ /* ── Loading ── */
426
+ .loading-overlay {
427
+ position: fixed;
428
+ inset: 0;
429
+ background: rgba(13,15,20,0.7);
430
+ display: flex;
431
+ align-items: center;
432
+ justify-content: center;
433
+ z-index: 100;
434
+ }
435
+ .spinner {
436
+ width: 36px;
437
+ height: 36px;
438
+ border: 3px solid var(--border);
439
+ border-top-color: var(--accent);
440
+ border-radius: 50%;
441
+ animation: spin 0.8s linear infinite;
442
+ }
443
+ @keyframes spin { to { transform: rotate(360deg); } }
444
+
445
+ /* ── Agent filter bar ── */
446
+ .filter-bar {
447
+ display: flex;
448
+ align-items: center;
449
+ gap: 12px;
450
+ margin-bottom: 16px;
451
+ }
452
+ .filter-btn {
453
+ padding: 5px 14px;
454
+ border-radius: 20px;
455
+ border: 1px solid var(--border);
456
+ background: var(--bg3);
457
+ color: var(--text2);
458
+ cursor: pointer;
459
+ font-size: 12px;
460
+ transition: all 0.15s;
461
+ }
462
+ .filter-btn:hover { border-color: var(--border2); color: var(--text); }
463
+ .filter-btn.active { background: var(--accent2); border-color: var(--accent); color: var(--text); }
464
+
465
+ /* ── Empty state ── */
466
+ .empty { text-align: center; padding: 60px 20px; color: var(--text3); }
467
+ .empty .emoji { font-size: 36px; margin-bottom: 12px; }
468
+ .empty p { font-size: 14px; }
469
+
470
+ /* ── Timeline / Gantt ── */
471
+ .timeline-toggle {
472
+ display: flex;
473
+ align-items: center;
474
+ gap: 10px;
475
+ padding: 11px 16px;
476
+ background: var(--bg2);
477
+ border: 1px solid var(--border);
478
+ border-radius: var(--radius);
479
+ cursor: pointer;
480
+ font-size: 13px;
481
+ color: var(--text2);
482
+ margin-bottom: 20px;
483
+ transition: all 0.15s;
484
+ user-select: none;
485
+ }
486
+ .timeline-toggle.open {
487
+ margin-bottom: 0;
488
+ border-radius: var(--radius) var(--radius) 0 0;
489
+ }
490
+ .timeline-toggle:hover { background: var(--bg3); border-color: var(--border2); color: var(--text); }
491
+ .tl-icon { color: var(--purple); font-size: 14px; }
492
+
493
+ #timeline-section {
494
+ border: 1px solid var(--border);
495
+ border-top: none;
496
+ border-radius: 0 0 var(--radius) var(--radius);
497
+ margin-bottom: 20px;
498
+ overflow: hidden;
499
+ }
500
+
501
+ .timeline-wrap {
502
+ background: var(--bg);
503
+ padding: 20px 0 16px;
504
+ overflow: hidden;
505
+ }
506
+
507
+ .gantt-svg-wrap {
508
+ width: 100%;
509
+ }
510
+
511
+ .gantt-tooltip {
512
+ position: fixed;
513
+ background: var(--bg3);
514
+ border: 1px solid var(--border2);
515
+ border-radius: var(--radius);
516
+ padding: 8px 12px;
517
+ font-size: 12px;
518
+ color: var(--text);
519
+ pointer-events: none;
520
+ z-index: 500;
521
+ white-space: nowrap;
522
+ max-width: 320px;
523
+ box-shadow: 0 4px 20px rgba(0,0,0,0.5);
524
+ }
525
+
526
+ /* ── Timeline detail panel ── */
527
+ .tl-detail {
528
+ border-top: 1px solid var(--border);
529
+ background: var(--bg2);
530
+ display: flex;
531
+ flex-direction: column;
532
+ max-height: 70vh;
533
+ }
534
+
535
+ .tl-detail-header {
536
+ display: flex;
537
+ align-items: center;
538
+ gap: 8px;
539
+ padding: 12px 20px;
540
+ border-bottom: 1px solid var(--border);
541
+ flex-shrink: 0;
542
+ }
543
+ .tl-detail-close {
544
+ margin-left: auto;
545
+ background: none;
546
+ border: none;
547
+ color: var(--text3);
548
+ cursor: pointer;
549
+ font-size: 18px;
550
+ padding: 0 4px;
551
+ line-height: 1;
552
+ }
553
+ .tl-detail-close:hover { color: var(--text); }
554
+ .tl-detail-body {
555
+ font-size: 13px;
556
+ padding: 16px 20px;
557
+ overflow-y: auto;
558
+ flex: 1;
559
+ }
560
+ .tl-detail-body::-webkit-scrollbar { width: 5px; }
561
+ .tl-detail-body::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
562
+
563
+ /* ── Agent modal ── */
564
+ .agent-modal {
565
+ position: fixed;
566
+ inset: 0;
567
+ background: rgba(0,0,0,0.65);
568
+ display: flex;
569
+ align-items: center;
570
+ justify-content: center;
571
+ z-index: 200;
572
+ padding: 24px;
573
+ }
574
+ .agent-modal-box {
575
+ background: var(--bg2);
576
+ border: 1px solid var(--border2);
577
+ border-radius: var(--radius2);
578
+ width: 100%;
579
+ max-width: 860px;
580
+ max-height: 90vh;
581
+ display: flex;
582
+ flex-direction: column;
583
+ overflow: hidden;
584
+ box-shadow: 0 24px 64px rgba(0,0,0,0.6);
585
+ }
586
+ .agent-modal-header {
587
+ display: flex;
588
+ align-items: flex-start;
589
+ justify-content: space-between;
590
+ gap: 16px;
591
+ padding: 16px 20px;
592
+ border-bottom: 1px solid var(--border);
593
+ flex-shrink: 0;
594
+ }
595
+ .modal-close-btn {
596
+ background: none;
597
+ border: none;
598
+ color: var(--text3);
599
+ cursor: pointer;
600
+ font-size: 20px;
601
+ padding: 0 4px;
602
+ line-height: 1;
603
+ flex-shrink: 0;
604
+ }
605
+ .modal-close-btn:hover { color: var(--text); }
606
+
607
+ .agent-modal-loading {
608
+ padding: 40px;
609
+ text-align: center;
610
+ }
611
+ .agent-modal-stats {
612
+ display: flex;
613
+ gap: 20px;
614
+ flex-wrap: wrap;
615
+ padding: 12px 20px;
616
+ border-bottom: 1px solid var(--border);
617
+ background: var(--bg3);
618
+ flex-shrink: 0;
619
+ }
620
+ .agent-modal-messages {
621
+ overflow-y: auto;
622
+ padding: 16px 20px;
623
+ flex: 1;
624
+ }
625
+ .agent-modal-body {
626
+ display: flex;
627
+ flex-direction: column;
628
+ flex: 1;
629
+ overflow: hidden;
630
+ }
631
+ .agent-modal-messages::-webkit-scrollbar { width: 5px; }
632
+ .agent-modal-messages::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
633
+
634
+ /* ── Agent summary view ── */
635
+ .agent-section {
636
+ margin-bottom: 20px;
637
+ }
638
+ .agent-section-label {
639
+ font-size: 11px;
640
+ text-transform: uppercase;
641
+ letter-spacing: 0.7px;
642
+ color: var(--text3);
643
+ margin-bottom: 8px;
644
+ font-weight: 600;
645
+ }
646
+ .agent-task-text {
647
+ background: var(--bg3);
648
+ border-left: 3px solid var(--yellow);
649
+ padding: 10px 14px;
650
+ border-radius: 0 var(--radius) var(--radius) 0;
651
+ font-size: 13px;
652
+ color: var(--text);
653
+ line-height: 1.6;
654
+ white-space: pre-wrap;
655
+ word-break: break-word;
656
+ }
657
+ .agent-result-text {
658
+ background: var(--bg3);
659
+ border-left: 3px solid var(--green);
660
+ padding: 10px 14px;
661
+ border-radius: 0 var(--radius) var(--radius) 0;
662
+ font-size: 13px;
663
+ color: var(--text);
664
+ line-height: 1.6;
665
+ white-space: pre-wrap;
666
+ word-break: break-word;
667
+ }
668
+ .tool-summary-chips {
669
+ display: flex;
670
+ flex-wrap: wrap;
671
+ gap: 6px;
672
+ margin-bottom: 4px;
673
+ }
674
+ .tool-chip {
675
+ display: inline-flex;
676
+ align-items: center;
677
+ gap: 6px;
678
+ padding: 3px 10px;
679
+ background: var(--bg4);
680
+ border: 1px solid var(--border2);
681
+ border-radius: 20px;
682
+ font-family: var(--font);
683
+ font-size: 11px;
684
+ color: var(--purple);
685
+ }
686
+ .tool-chip-count {
687
+ background: var(--bg3);
688
+ color: var(--text3);
689
+ border-radius: 10px;
690
+ padding: 0 5px;
691
+ font-size: 10px;
692
+ min-width: 16px;
693
+ text-align: center;
694
+ }
695
+ .tool-sequence {
696
+ display: flex;
697
+ flex-direction: column;
698
+ gap: 2px;
699
+ max-height: 280px;
700
+ overflow-y: auto;
701
+ padding-right: 4px;
702
+ }
703
+ .tool-sequence::-webkit-scrollbar { width: 4px; }
704
+ .tool-sequence::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }
705
+ .tool-seq-item {
706
+ display: flex;
707
+ align-items: center;
708
+ gap: 8px;
709
+ padding: 3px 6px;
710
+ border-radius: 4px;
711
+ font-size: 11px;
712
+ }
713
+ .tool-seq-item:hover { background: var(--bg3); }
714
+ .tool-seq-num {
715
+ color: var(--text3);
716
+ min-width: 24px;
717
+ text-align: right;
718
+ font-family: var(--font);
719
+ font-size: 10px;
720
+ }
721
+ .tool-seq-name {
722
+ color: var(--purple);
723
+ font-family: var(--font);
724
+ font-weight: 500;
725
+ min-width: 90px;
726
+ }
727
+ .tool-seq-preview {
728
+ color: var(--text3);
729
+ overflow: hidden;
730
+ text-overflow: ellipsis;
731
+ white-space: nowrap;
732
+ flex: 1;
733
+ }
734
+
735
+ /* ── Scrollbar ── */
736
+ ::-webkit-scrollbar { width: 5px; height: 5px; }
737
+ ::-webkit-scrollbar-track { background: transparent; }
738
+ ::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }