@mtharrison/loupe 1.1.0 → 1.2.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.
@@ -1,3 +1,5 @@
1
+ @import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&display=swap";
2
+
1
3
  /* client/src/styles.css */
2
4
  :root {
3
5
  color-scheme: light;
@@ -19,28 +21,40 @@
19
21
  --shadow: 0 22px 60px rgba(30, 48, 72, 0.16);
20
22
  --radius: 22px;
21
23
  --page-gutter: 1.5rem;
24
+ --brand-font:
25
+ "Space Grotesk",
26
+ "Avenir Next",
27
+ "Segoe UI",
28
+ sans-serif;
22
29
  }
23
30
  :root[data-theme=dark] {
24
31
  color-scheme: dark;
25
- --background: #0e1723;
26
- --background-strong: #050b14;
27
- --panel: rgba(18, 27, 40, 0.94);
28
- --panel-strong: rgba(23, 33, 49, 0.98);
29
- --panel-soft: rgba(88, 144, 219, 0.12);
30
- --foreground: #e6edf8;
31
- --muted-foreground: #95a8c1;
32
- --line: rgba(128, 153, 189, 0.18);
33
- --line-strong: rgba(116, 169, 255, 0.42);
34
- --primary: #86b8ff;
35
- --primary-strong: #d6e5ff;
36
- --secondary: rgba(108, 142, 194, 0.14);
37
- --warning: #e4b05c;
38
- --danger: #ef8798;
39
- --success: #69c59c;
40
- --shadow: 0 28px 80px rgba(1, 8, 20, 0.48);
32
+ --background: #111b29;
33
+ --background-strong: #09111c;
34
+ --panel: rgba(22, 32, 47, 0.96);
35
+ --panel-strong: rgba(28, 40, 59, 0.98);
36
+ --panel-soft: rgba(115, 170, 255, 0.16);
37
+ --foreground: #f3f7ff;
38
+ --muted-foreground: #b6c5d9;
39
+ --line: rgba(140, 164, 197, 0.24);
40
+ --line-strong: rgba(145, 193, 255, 0.52);
41
+ --primary: #9dc8ff;
42
+ --primary-strong: #f4f8ff;
43
+ --secondary: rgba(120, 155, 212, 0.18);
44
+ --warning: #f2bf67;
45
+ --danger: #f39bac;
46
+ --success: #7ad1aa;
47
+ --shadow: 0 30px 90px rgba(1, 8, 20, 0.56);
41
48
  }
42
49
  * {
43
50
  box-sizing: border-box;
51
+ scrollbar-width: none;
52
+ -ms-overflow-style: none;
53
+ }
54
+ *::-webkit-scrollbar {
55
+ width: 0;
56
+ height: 0;
57
+ background: transparent;
44
58
  }
45
59
  html,
46
60
  body,
@@ -77,17 +91,17 @@ body {
77
91
  background:
78
92
  radial-gradient(
79
93
  circle at top left,
80
- rgba(95, 137, 205, 0.24),
81
- transparent 30rem),
94
+ rgba(108, 158, 235, 0.2),
95
+ transparent 34rem),
82
96
  radial-gradient(
83
97
  circle at top right,
84
- rgba(194, 210, 231, 0.22),
85
- transparent 24rem),
98
+ rgba(138, 164, 207, 0.12),
99
+ transparent 28rem),
86
100
  linear-gradient(
87
101
  180deg,
88
- #cad6e2 0%,
89
- #a5b7c9 42%,
90
- #7c90a8 100%);
102
+ #1a2638 0%,
103
+ #101a28 45%,
104
+ #09111c 100%);
91
105
  }
92
106
  button,
93
107
  input,
@@ -179,14 +193,16 @@ pre {
179
193
  min-height: 100dvh;
180
194
  padding: var(--page-gutter);
181
195
  justify-items: center;
182
- align-items: center;
196
+ align-items: stretch;
183
197
  justify-self: center;
198
+ width: 100%;
184
199
  }
185
200
  .board-shell {
186
201
  display: flex;
187
202
  flex: 1;
188
203
  flex-direction: column;
189
204
  height: 100%;
205
+ width: 100%;
190
206
  gap: 0.85rem;
191
207
  min-height: 0;
192
208
  overflow: hidden;
@@ -205,6 +221,7 @@ pre {
205
221
  box-shadow: 0 0 72px rgba(37, 57, 87, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.6);
206
222
  }
207
223
  .inspector-shell {
224
+ width: 100%;
208
225
  min-height: 0;
209
226
  gap: 0.9rem;
210
227
  }
@@ -247,10 +264,13 @@ pre {
247
264
  align-items: center;
248
265
  color: #132e48;
249
266
  }
250
- .brand-wordmark-svg {
267
+ .brand-wordmark-text {
251
268
  display: block;
252
- width: clamp(8rem, 13vw, 10.15rem);
253
- height: auto;
269
+ font-family: var(--brand-font);
270
+ font-size: clamp(1.65rem, 2.5vw, 2.15rem);
271
+ font-weight: 700;
272
+ letter-spacing: -0.06em;
273
+ line-height: 0.95;
254
274
  }
255
275
  .brand-subtitle {
256
276
  color: var(--muted-foreground);
@@ -382,19 +402,18 @@ pre {
382
402
  .workspace-grid {
383
403
  display: grid;
384
404
  flex: 1;
385
- grid-template-columns: minmax(40rem, 46rem) minmax(0, 1fr);
405
+ grid-template-columns: minmax(30rem, 36rem) minmax(0, 1fr);
386
406
  gap: 0.9rem;
387
- align-items: start;
407
+ align-items: stretch;
388
408
  min-height: 0;
389
409
  overflow: auto;
390
410
  padding-right: 0.2rem;
391
411
  }
392
- .workspace-grid::-webkit-scrollbar {
393
- width: 10px;
412
+ .workspace-grid.is-sidebar-collapsed {
413
+ grid-template-columns: minmax(0, 1fr);
394
414
  }
395
- .workspace-grid::-webkit-scrollbar-thumb {
396
- background: rgba(148, 163, 184, 0.22);
397
- border-radius: 999px;
415
+ .workspace-grid.is-sidebar-collapsed .session-sidebar-card {
416
+ display: none;
398
417
  }
399
418
  .ui-card {
400
419
  display: flex;
@@ -407,9 +426,11 @@ pre {
407
426
  }
408
427
  .sidebar-card {
409
428
  min-width: 0;
429
+ height: 100%;
410
430
  }
411
431
  .timeline-card {
412
432
  min-width: 0;
433
+ height: 100%;
413
434
  }
414
435
  .navigator-card,
415
436
  .content-card {
@@ -426,59 +447,69 @@ pre {
426
447
  min-height: 0;
427
448
  flex: 1;
428
449
  flex-direction: column;
450
+ padding: 0.8rem;
429
451
  }
430
- .session-sidebar-toolbar {
452
+ .session-tree-section {
431
453
  display: flex;
432
- align-items: center;
433
- justify-content: space-between;
434
- gap: 0.75rem;
435
- margin: 0.4rem 0.4rem 0;
436
- padding: 0.88rem 0.92rem;
454
+ flex-direction: column;
455
+ gap: 0.7rem;
456
+ min-height: 0;
457
+ flex: 1;
458
+ padding: 0.72rem 0.78rem;
437
459
  border: 1px solid var(--line);
438
460
  border-radius: 16px;
439
461
  background: rgba(250, 252, 255, 0.9);
440
462
  box-shadow: 0 8px 22px rgba(32, 50, 76, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.7);
441
463
  }
442
- .session-sidebar-toolbar-copy {
464
+ .session-tree-header {
443
465
  display: flex;
466
+ align-items: center;
467
+ justify-content: space-between;
468
+ gap: 0.75rem;
469
+ }
470
+ .session-tree-title-row {
471
+ display: flex;
472
+ align-items: center;
473
+ gap: 0.5rem;
444
474
  min-width: 0;
445
- flex-direction: column;
446
- gap: 0.18rem;
447
475
  }
448
- .session-sidebar-toolbar-title {
476
+ .session-tree-title {
449
477
  font-size: 0.82rem;
450
478
  font-weight: 700;
451
479
  letter-spacing: 0.08em;
452
480
  text-transform: uppercase;
453
481
  color: var(--muted-foreground);
454
482
  }
455
- .session-sidebar-toolbar-meta {
483
+ .session-tree-filter-badge {
484
+ min-height: 1.3rem;
485
+ padding: 0.12rem 0.44rem;
486
+ font-size: 0.66rem;
487
+ }
488
+ .session-tree-meta {
456
489
  color: var(--muted-foreground);
457
490
  font-size: 0.84rem;
458
491
  }
459
- .session-sidebar-select {
460
- width: auto;
461
- min-width: min(14rem, 100%);
462
- max-width: 16rem;
463
- }
464
- .session-sidebar-shell .hierarchy-timeline-panel {
465
- margin: 0;
466
- flex: 1;
492
+ .session-tree-scroll {
467
493
  min-height: 0;
468
- border: 0;
469
- border-radius: 0;
470
- background: transparent;
471
- box-shadow: none;
472
- }
473
- .session-sidebar-shell .hierarchy-timeline-list {
474
- max-height: none;
475
494
  flex: 1;
495
+ overflow: auto;
496
+ padding-right: 0.12rem;
497
+ scrollbar-gutter: stable;
476
498
  }
477
499
  .session-sidebar-empty {
478
500
  display: flex;
479
501
  flex: 1;
480
502
  min-height: 0;
481
- padding: 0.95rem;
503
+ padding: 0.2rem;
504
+ }
505
+ .session-sidebar-empty-state {
506
+ display: flex;
507
+ flex: 1;
508
+ min-height: 0;
509
+ flex-direction: column;
510
+ align-items: center;
511
+ justify-content: center;
512
+ gap: 0.85rem;
482
513
  }
483
514
  .content-card {
484
515
  overflow: hidden;
@@ -533,12 +564,15 @@ pre {
533
564
  .sheet-close:focus-visible,
534
565
  .nav-item:focus-visible,
535
566
  .nav-switch-button:focus-visible,
567
+ .session-tree-select:focus-visible,
536
568
  .theme-switch-button:focus-visible,
537
569
  .expandable-toggle:focus-visible,
538
570
  .tree-node-toggle:focus-visible,
539
571
  .tree-node-select:focus-visible,
540
572
  .trace-row:focus-visible,
541
573
  .tabs-trigger:focus-visible,
574
+ .trace-detail-breadcrumb-segment:focus-visible,
575
+ .ui-badge-button:focus-visible,
542
576
  .ui-input:focus-visible,
543
577
  .ui-select:focus-visible {
544
578
  outline: 2px solid rgba(40, 93, 168, 0.28);
@@ -601,6 +635,11 @@ pre {
601
635
  background: rgba(40, 93, 168, 0.08);
602
636
  color: var(--primary-strong);
603
637
  }
638
+ .session-panel-toggle.is-active {
639
+ border-color: rgba(40, 93, 168, 0.2);
640
+ background: rgba(40, 93, 168, 0.08);
641
+ color: var(--primary-strong);
642
+ }
604
643
  .clear-traces-button.is-confirming {
605
644
  border-color: rgba(181, 82, 93, 0.34);
606
645
  background: rgba(181, 82, 93, 0.08);
@@ -617,6 +656,18 @@ pre {
617
656
  letter-spacing: 0.03em;
618
657
  text-transform: uppercase;
619
658
  }
659
+ .ui-badge-button {
660
+ border: 0;
661
+ cursor: pointer;
662
+ transition:
663
+ transform 160ms ease,
664
+ filter 160ms ease,
665
+ box-shadow 160ms ease;
666
+ }
667
+ .ui-badge-button:hover {
668
+ transform: translateY(-1px);
669
+ filter: brightness(0.98);
670
+ }
620
671
  .ui-badge-secondary {
621
672
  background: rgba(73, 102, 148, 0.1);
622
673
  color: var(--muted-foreground);
@@ -628,20 +679,20 @@ pre {
628
679
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
629
680
  }
630
681
  .ui-badge[data-semantic=session] {
631
- --semantic-badge-color: rgba(54, 103, 214, 0.92);
682
+ --semantic-badge-color: rgba(86, 107, 147, 0.92);
632
683
  }
633
684
  .ui-badge[data-semantic=actor] {
634
- --semantic-badge-color: rgba(71, 160, 92, 0.9);
685
+ --semantic-badge-color: rgba(60, 110, 214, 0.9);
635
686
  }
636
687
  .ui-badge[data-semantic=child-actor],
637
688
  .ui-badge[data-semantic=stage] {
638
- --semantic-badge-color: rgba(130, 95, 214, 0.9);
689
+ --semantic-badge-color: rgba(34, 154, 161, 0.9);
639
690
  }
640
691
  .ui-badge[data-semantic=guardrail] {
641
- --semantic-badge-color: rgba(219, 150, 58, 0.92);
692
+ --semantic-badge-color: rgba(184, 129, 44, 0.92);
642
693
  }
643
694
  .ui-badge[data-semantic=call] {
644
- --semantic-badge-color: rgba(61, 108, 225, 0.9);
695
+ --semantic-badge-color: rgba(92, 121, 171, 0.9);
645
696
  }
646
697
  .ui-badge[data-semantic=system] {
647
698
  --semantic-badge-color: rgba(40, 93, 168, 0.92);
@@ -1135,11 +1186,13 @@ pre {
1135
1186
  .hierarchy-timeline-row {
1136
1187
  --timeline-time-column: 4.75rem;
1137
1188
  --timeline-column-gap: 0.45rem;
1138
- --timeline-indent: 0.94rem;
1139
- --timeline-gutter-base: 1.16rem;
1189
+ --timeline-indent: 1rem;
1190
+ --timeline-gutter-base: 1.25rem;
1191
+ --timeline-connector-base: 0.22rem;
1140
1192
  --timeline-gutter-width: calc( var(--timeline-depth, 0) * var(--timeline-indent) + var(--timeline-gutter-base) );
1141
- --timeline-branch-offset: calc( var(--timeline-depth, 0) * var(--timeline-indent) + 0.12rem );
1142
- --timeline-row-color: rgba(69, 104, 222, 0.88);
1193
+ --timeline-row-color: rgba(92, 121, 171, 0.9);
1194
+ --timeline-bar-stroke: color-mix(in srgb, var(--timeline-row-color) 74%, white);
1195
+ --timeline-connector-color: color-mix( in srgb, var(--timeline-row-color) 28%, rgba(84, 100, 125, 0.18) );
1143
1196
  position: relative;
1144
1197
  display: grid;
1145
1198
  grid-template-columns: var(--timeline-time-column) minmax(0, 1fr) minmax(13rem, 19rem);
@@ -1215,20 +1268,20 @@ pre {
1215
1268
  box-shadow: inset 3px 0 0 rgba(40, 93, 168, 0.74), 0 8px 20px rgba(32, 50, 76, 0.06);
1216
1269
  }
1217
1270
  .hierarchy-timeline-row.is-session {
1218
- --timeline-row-color: rgba(54, 103, 214, 0.92);
1271
+ --timeline-row-color: rgba(86, 107, 147, 0.92);
1219
1272
  }
1220
1273
  .hierarchy-timeline-row.is-actor {
1221
- --timeline-row-color: rgba(71, 160, 92, 0.9);
1274
+ --timeline-row-color: rgba(60, 110, 214, 0.9);
1222
1275
  }
1223
1276
  .hierarchy-timeline-row.is-child-actor,
1224
1277
  .hierarchy-timeline-row.is-stage {
1225
- --timeline-row-color: rgba(130, 95, 214, 0.9);
1278
+ --timeline-row-color: rgba(34, 154, 161, 0.9);
1226
1279
  }
1227
1280
  .hierarchy-timeline-row.is-guardrail {
1228
- --timeline-row-color: rgba(219, 150, 58, 0.92);
1281
+ --timeline-row-color: rgba(184, 129, 44, 0.92);
1229
1282
  }
1230
1283
  .hierarchy-timeline-row.is-trace {
1231
- --timeline-row-color: rgba(61, 108, 225, 0.9);
1284
+ --timeline-row-color: rgba(92, 121, 171, 0.9);
1232
1285
  }
1233
1286
  .hierarchy-timeline-row-time {
1234
1287
  align-self: stretch;
@@ -1258,27 +1311,60 @@ pre {
1258
1311
  min-width: 0;
1259
1312
  }
1260
1313
  .hierarchy-timeline-row-gutter::before {
1314
+ display: none;
1315
+ }
1316
+ .hierarchy-timeline-row-gutter::after {
1317
+ display: none;
1318
+ }
1319
+ .hierarchy-timeline-row.is-root .hierarchy-timeline-row-gutter::before,
1320
+ .hierarchy-timeline-row.is-root .hierarchy-timeline-row-gutter::after {
1321
+ display: none;
1322
+ }
1323
+ .hierarchy-timeline-row-ancestor,
1324
+ .hierarchy-timeline-row-connector {
1325
+ position: absolute;
1326
+ top: -0.15rem;
1327
+ bottom: -0.15rem;
1328
+ width: var(--timeline-indent);
1329
+ left: calc(var(--timeline-connector-index, 0) * var(--timeline-indent) + var(--timeline-connector-base));
1330
+ }
1331
+ .hierarchy-timeline-row-ancestor::before,
1332
+ .hierarchy-timeline-row-connector-top,
1333
+ .hierarchy-timeline-row-connector-bottom {
1261
1334
  content: "";
1262
1335
  position: absolute;
1263
- top: -0.14rem;
1264
- left: var(--timeline-branch-offset);
1265
- bottom: -0.14rem;
1336
+ left: calc(var(--timeline-indent) * 0.5);
1266
1337
  width: 1px;
1267
- background: color-mix(in srgb, var(--timeline-row-color) 18%, rgba(84, 100, 125, 0.12));
1338
+ background: var(--timeline-connector-color);
1268
1339
  }
1269
- .hierarchy-timeline-row-gutter::after {
1270
- content: "";
1340
+ .hierarchy-timeline-row-ancestor::before {
1341
+ top: 0;
1342
+ bottom: 0;
1343
+ opacity: 0;
1344
+ }
1345
+ .hierarchy-timeline-row-ancestor.has-line::before {
1346
+ opacity: 1;
1347
+ }
1348
+ .hierarchy-timeline-row-connector-top {
1349
+ top: 0;
1350
+ bottom: 50%;
1351
+ }
1352
+ .hierarchy-timeline-row-connector-elbow {
1271
1353
  position: absolute;
1272
1354
  top: 50%;
1273
- left: var(--timeline-branch-offset);
1274
- right: 0.08rem;
1355
+ left: calc(var(--timeline-indent) * 0.5);
1356
+ width: calc(var(--timeline-indent) * 0.62);
1275
1357
  height: 1px;
1276
- background: color-mix(in srgb, var(--timeline-row-color) 18%, rgba(84, 100, 125, 0.12));
1358
+ background: var(--timeline-connector-color);
1277
1359
  transform: translateY(-50%);
1278
1360
  }
1279
- .hierarchy-timeline-row.is-root .hierarchy-timeline-row-gutter::before,
1280
- .hierarchy-timeline-row.is-root .hierarchy-timeline-row-gutter::after {
1281
- display: none;
1361
+ .hierarchy-timeline-row-connector-bottom {
1362
+ top: 50%;
1363
+ bottom: 0;
1364
+ opacity: 0;
1365
+ }
1366
+ .hierarchy-timeline-row-connector-bottom.has-line {
1367
+ opacity: 1;
1282
1368
  }
1283
1369
  .hierarchy-timeline-row-labels {
1284
1370
  position: relative;
@@ -1295,6 +1381,23 @@ pre {
1295
1381
  min-width: 0;
1296
1382
  flex-wrap: wrap;
1297
1383
  }
1384
+ .hierarchy-timeline-row-flag {
1385
+ display: inline-flex;
1386
+ align-items: center;
1387
+ min-height: 1.3rem;
1388
+ padding: 0.12rem 0.42rem;
1389
+ border-radius: 999px;
1390
+ background: rgba(34, 154, 161, 0.1);
1391
+ color: #1d6970;
1392
+ font-size: 0.68rem;
1393
+ font-weight: 700;
1394
+ letter-spacing: 0.04em;
1395
+ text-transform: uppercase;
1396
+ }
1397
+ .hierarchy-timeline-row-flag.is-highlight {
1398
+ background: rgba(184, 129, 44, 0.1);
1399
+ color: #865815;
1400
+ }
1298
1401
  .hierarchy-timeline-row-title-text {
1299
1402
  min-width: 0;
1300
1403
  font-size: 0.92rem;
@@ -1320,14 +1423,11 @@ pre {
1320
1423
  .hierarchy-timeline-row-bars {
1321
1424
  display: grid;
1322
1425
  grid-template-columns: minmax(10rem, 1fr) auto;
1323
- grid-template-areas: "track duration" "action action";
1324
1426
  column-gap: 0.65rem;
1325
- row-gap: 0.45rem;
1326
1427
  align-items: center;
1327
1428
  padding: 0.58rem 0.82rem 0.58rem 0.18rem;
1328
1429
  }
1329
1430
  .hierarchy-timeline-row-track {
1330
- grid-area: track;
1331
1431
  position: relative;
1332
1432
  height: 1rem;
1333
1433
  }
@@ -1337,7 +1437,8 @@ pre {
1337
1437
  left: 0;
1338
1438
  right: 0;
1339
1439
  top: 50%;
1340
- height: 1px;
1440
+ height: 0.3rem;
1441
+ border-radius: 999px;
1341
1442
  background: rgba(84, 100, 125, 0.12);
1342
1443
  transform: translateY(-50%);
1343
1444
  }
@@ -1346,10 +1447,10 @@ pre {
1346
1447
  top: 50%;
1347
1448
  left: calc(var(--timeline-offset, 0) * 100%);
1348
1449
  width: max(0.5rem, calc(var(--timeline-span, 0.1) * 100%));
1349
- height: 0.72rem;
1450
+ height: 0.5rem;
1350
1451
  border-radius: 999px;
1351
- background: color-mix(in srgb, var(--timeline-row-color) 24%, transparent);
1352
- border: 1px solid color-mix(in srgb, var(--timeline-row-color) 72%, white);
1452
+ background: color-mix(in srgb, var(--timeline-row-color) 24%, white);
1453
+ border: 1px solid var(--timeline-bar-stroke);
1353
1454
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24), 0 1px 2px rgba(32, 50, 76, 0.08);
1354
1455
  transform: translateY(-50%);
1355
1456
  }
@@ -1359,9 +1460,9 @@ pre {
1359
1460
  position: absolute;
1360
1461
  top: 50%;
1361
1462
  width: 2px;
1362
- height: 0.9rem;
1463
+ height: 0.7rem;
1363
1464
  border-radius: 999px;
1364
- background: color-mix(in srgb, var(--timeline-row-color) 92%, white);
1465
+ background: var(--timeline-bar-stroke);
1365
1466
  transform: translateY(-50%);
1366
1467
  }
1367
1468
  .hierarchy-timeline-row-bar::before {
@@ -1371,7 +1472,6 @@ pre {
1371
1472
  right: -1px;
1372
1473
  }
1373
1474
  .hierarchy-timeline-row-duration {
1374
- grid-area: duration;
1375
1475
  color: var(--muted-foreground);
1376
1476
  font-family:
1377
1477
  ui-monospace,
@@ -1384,36 +1484,6 @@ pre {
1384
1484
  text-align: right;
1385
1485
  white-space: nowrap;
1386
1486
  }
1387
- .hierarchy-timeline-row-action {
1388
- grid-area: action;
1389
- display: flex;
1390
- align-items: center;
1391
- justify-content: flex-end;
1392
- min-width: 0;
1393
- }
1394
- .hierarchy-timeline-row-inspect {
1395
- display: inline-flex;
1396
- align-items: center;
1397
- justify-content: center;
1398
- align-self: flex-end;
1399
- min-height: 2rem;
1400
- padding: 0.42rem 0.72rem;
1401
- border: 1px solid rgba(40, 93, 168, 0.18);
1402
- border-radius: 999px;
1403
- border-color: rgba(40, 93, 168, 0.18);
1404
- background: rgba(40, 93, 168, 0.08);
1405
- color: var(--primary-strong);
1406
- font-size: 0.75rem;
1407
- font-weight: 700;
1408
- line-height: 1;
1409
- pointer-events: none;
1410
- user-select: none;
1411
- white-space: nowrap;
1412
- }
1413
- .hierarchy-timeline-row.is-clickable:hover .hierarchy-timeline-row-inspect {
1414
- border-color: rgba(40, 93, 168, 0.26);
1415
- background: rgba(40, 93, 168, 0.12);
1416
- }
1417
1487
  .trace-detail-header {
1418
1488
  display: flex;
1419
1489
  align-items: flex-start;
@@ -1444,13 +1514,34 @@ pre {
1444
1514
  color: rgba(84, 100, 125, 0.5);
1445
1515
  }
1446
1516
  .trace-detail-breadcrumb-segment {
1517
+ border: 0;
1518
+ background: transparent;
1519
+ color: inherit;
1520
+ cursor: pointer;
1521
+ padding: 0;
1447
1522
  white-space: nowrap;
1523
+ transition:
1524
+ color 160ms ease,
1525
+ text-decoration-color 160ms ease,
1526
+ background 160ms ease;
1527
+ }
1528
+ .trace-detail-breadcrumb-segment:hover {
1529
+ color: var(--primary-strong);
1530
+ text-decoration: underline;
1531
+ text-decoration-thickness: 1px;
1532
+ text-underline-offset: 0.18em;
1448
1533
  }
1449
1534
  .trace-detail-breadcrumb-segment.is-current {
1450
1535
  border-radius: 999px;
1451
1536
  padding: 0.18rem 0.56rem;
1452
1537
  background: rgba(40, 93, 168, 0.08);
1453
1538
  color: var(--primary-strong);
1539
+ text-decoration: none;
1540
+ }
1541
+ .trace-detail-filter-pills {
1542
+ display: flex;
1543
+ flex-wrap: wrap;
1544
+ gap: 0.45rem;
1454
1545
  }
1455
1546
  .trace-detail-title-row {
1456
1547
  display: flex;
@@ -1521,8 +1612,9 @@ pre {
1521
1612
  flex: 1;
1522
1613
  min-height: 0;
1523
1614
  grid-template-columns: minmax(0, 1fr);
1615
+ grid-template-rows: minmax(0, 1fr);
1524
1616
  gap: 1rem;
1525
- align-items: start;
1617
+ align-items: stretch;
1526
1618
  }
1527
1619
  .trace-detail-main.has-secondary-inspector {
1528
1620
  grid-template-columns: minmax(0, 2.05fr) minmax(14.5rem, 0.72fr);
@@ -1574,18 +1666,52 @@ pre {
1574
1666
  align-items: center;
1575
1667
  justify-content: space-between;
1576
1668
  gap: 0.65rem;
1669
+ min-width: 0;
1670
+ }
1671
+ .trace-detail-tabs-shell {
1672
+ display: flex;
1673
+ min-width: 0;
1674
+ flex: 1;
1675
+ overflow-x: auto;
1676
+ overflow-y: hidden;
1677
+ scrollbar-width: none;
1678
+ }
1679
+ .trace-detail-tabs-shell::-webkit-scrollbar {
1680
+ display: none;
1681
+ }
1682
+ .trace-detail-tabs-shell > .tabs-root {
1683
+ min-width: max-content;
1577
1684
  }
1578
1685
  .trace-detail-json-toggle {
1686
+ flex: 0 0 auto;
1579
1687
  min-height: 2.4rem;
1580
1688
  padding: 0.52rem 0.82rem;
1581
1689
  color: var(--muted-foreground);
1582
1690
  }
1583
1691
  .trace-detail-scroll {
1692
+ display: flex;
1693
+ flex-direction: column;
1584
1694
  min-height: 0;
1585
1695
  flex: 1;
1586
- overflow: auto;
1696
+ overflow-x: hidden;
1697
+ overflow-y: scroll;
1587
1698
  padding-right: 0.2rem;
1588
1699
  }
1700
+ .trace-detail-pane {
1701
+ display: flex;
1702
+ width: 100%;
1703
+ min-height: 100%;
1704
+ flex: 1 0 auto;
1705
+ flex-direction: column;
1706
+ }
1707
+ .trace-detail-pane > .detail-grid,
1708
+ .trace-detail-pane > .conversation-layout,
1709
+ .trace-detail-pane > .empty-state {
1710
+ min-height: 100%;
1711
+ }
1712
+ .trace-detail-pane > .detail-grid {
1713
+ align-content: start;
1714
+ }
1589
1715
  .trace-detail-empty {
1590
1716
  display: flex;
1591
1717
  min-height: 0;
@@ -1601,14 +1727,15 @@ pre {
1601
1727
  flex-direction: column;
1602
1728
  gap: 0.45rem;
1603
1729
  width: 100%;
1604
- padding-left: calc(var(--depth, 0) * 0.75rem);
1605
1730
  content-visibility: auto;
1606
1731
  contain-intrinsic-size: 4rem;
1607
1732
  }
1608
1733
  .tree-node-card {
1609
- display: flex;
1734
+ --tree-timeline-width: minmax(8.75rem, 10.5rem);
1735
+ display: grid;
1736
+ grid-template-columns: 1.8rem minmax(0, 1fr);
1610
1737
  align-items: center;
1611
- gap: 0.7rem;
1738
+ column-gap: 0.7rem;
1612
1739
  width: 100%;
1613
1740
  padding: 0.28rem;
1614
1741
  border-radius: 12px;
@@ -1626,6 +1753,14 @@ pre {
1626
1753
  0 0 0 1px rgba(40, 93, 168, 0.1),
1627
1754
  inset 0 1px 0 rgba(255, 255, 255, 0.72);
1628
1755
  }
1756
+ .tree-node-card.is-in-path:not(.is-active) {
1757
+ border-color: rgba(40, 93, 168, 0.18);
1758
+ background: rgba(247, 251, 255, 0.96);
1759
+ box-shadow:
1760
+ inset 2px 0 0 rgba(40, 93, 168, 0.42),
1761
+ 0 8px 18px rgba(32, 50, 76, 0.06),
1762
+ inset 0 1px 0 rgba(255, 255, 255, 0.72);
1763
+ }
1629
1764
  .tree-node-card.is-trace {
1630
1765
  background: rgba(246, 249, 253, 0.88);
1631
1766
  box-shadow: 0 4px 12px rgba(32, 50, 76, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.7);
@@ -1670,24 +1805,45 @@ pre {
1670
1805
  cursor: default;
1671
1806
  }
1672
1807
  .tree-node-select {
1673
- display: flex;
1674
- flex: 1;
1808
+ display: grid;
1809
+ grid-template-columns: minmax(0, 1fr) var(--tree-timeline-width);
1675
1810
  min-width: 0;
1811
+ align-items: center;
1812
+ gap: 0.85rem;
1676
1813
  text-align: left;
1677
1814
  font: inherit;
1678
1815
  padding: 0.48rem 0;
1679
1816
  }
1680
- .tree-trace-select {
1817
+ .tree-structure-select {
1681
1818
  align-items: center;
1682
- justify-content: space-between;
1683
- gap: 0.85rem;
1819
+ }
1820
+ .tree-trace-select {
1684
1821
  padding: 0.48rem 0.1rem 0.48rem 0;
1685
1822
  }
1823
+ .tree-session-card {
1824
+ align-items: flex-start;
1825
+ }
1826
+ .session-tree-select {
1827
+ padding-right: 0.1rem;
1828
+ }
1686
1829
  .tree-node-copy {
1687
1830
  display: flex;
1688
1831
  min-width: 0;
1689
1832
  flex-direction: column;
1690
1833
  gap: 0.16rem;
1834
+ padding-left: calc(var(--depth, 0) * 0.9rem);
1835
+ }
1836
+ .session-tree-copy {
1837
+ gap: 0.32rem;
1838
+ }
1839
+ .tree-node-heading {
1840
+ display: flex;
1841
+ align-items: center;
1842
+ gap: 0.45rem;
1843
+ min-width: 0;
1844
+ }
1845
+ .tree-node-inline-badge {
1846
+ flex: 0 0 auto;
1691
1847
  }
1692
1848
  .tree-trace-wrap {
1693
1849
  contain-intrinsic-size: 5.5rem;
@@ -1701,6 +1857,135 @@ pre {
1701
1857
  color: var(--muted-foreground);
1702
1858
  font-size: 0.8rem;
1703
1859
  }
1860
+ .session-tree-card-header,
1861
+ .session-tree-card-footer {
1862
+ display: flex;
1863
+ align-items: center;
1864
+ justify-content: space-between;
1865
+ gap: 0.65rem;
1866
+ }
1867
+ .session-tree-card-title {
1868
+ min-width: 0;
1869
+ font-size: 0.92rem;
1870
+ font-weight: 650;
1871
+ letter-spacing: -0.02em;
1872
+ overflow: hidden;
1873
+ text-overflow: ellipsis;
1874
+ white-space: nowrap;
1875
+ }
1876
+ .session-tree-card-time {
1877
+ flex: 0 0 auto;
1878
+ color: var(--muted-foreground);
1879
+ font-size: 0.74rem;
1880
+ font-weight: 600;
1881
+ white-space: nowrap;
1882
+ }
1883
+ .session-tree-card-id {
1884
+ min-width: 0;
1885
+ color: var(--muted-foreground);
1886
+ font-family:
1887
+ "SFMono-Regular",
1888
+ ui-monospace,
1889
+ "Cascadia Code",
1890
+ "Source Code Pro",
1891
+ Menlo,
1892
+ monospace;
1893
+ font-size: 0.71rem;
1894
+ }
1895
+ .session-tree-card-badges {
1896
+ display: inline-flex;
1897
+ align-items: center;
1898
+ justify-content: flex-end;
1899
+ gap: 0.35rem;
1900
+ flex-wrap: wrap;
1901
+ }
1902
+ .session-tree-timeline-shell {
1903
+ padding: 0 0.1rem 0.2rem 2.35rem;
1904
+ }
1905
+ .session-tree-timeline-list {
1906
+ display: flex;
1907
+ flex-direction: column;
1908
+ gap: 0.45rem;
1909
+ }
1910
+ .session-tree-timeline-list .hierarchy-timeline-row {
1911
+ grid-template-columns: 4rem minmax(0, 1fr) minmax(6rem, 7.25rem);
1912
+ gap: 0.4rem;
1913
+ }
1914
+ .session-tree-timeline-list .hierarchy-timeline-row-labels {
1915
+ padding: 0.72rem 0.5rem 0.72rem 1.05rem;
1916
+ }
1917
+ .session-tree-timeline-list .hierarchy-timeline-row-bars {
1918
+ grid-template-columns: minmax(4.8rem, 1fr) auto;
1919
+ column-gap: 0.35rem;
1920
+ padding: 0.72rem 0.8rem 0.72rem 0.2rem;
1921
+ }
1922
+ .session-tree-timeline-list .hierarchy-timeline-row-title {
1923
+ flex-wrap: nowrap;
1924
+ }
1925
+ .session-tree-timeline-list .hierarchy-timeline-row-title-text,
1926
+ .session-tree-timeline-list .hierarchy-timeline-row-meta {
1927
+ overflow: hidden;
1928
+ text-overflow: ellipsis;
1929
+ white-space: nowrap;
1930
+ }
1931
+ .session-tree-timeline-list .hierarchy-timeline-row-title-text {
1932
+ font-size: 0.84rem;
1933
+ }
1934
+ .session-tree-timeline-list .hierarchy-timeline-row-meta,
1935
+ .session-tree-timeline-list .hierarchy-timeline-row-time,
1936
+ .session-tree-timeline-list .hierarchy-timeline-row-duration {
1937
+ font-size: 0.72rem;
1938
+ }
1939
+ .session-tree-timeline {
1940
+ display: inline-flex;
1941
+ min-width: 0;
1942
+ flex-direction: column;
1943
+ gap: 0.28rem;
1944
+ align-items: stretch;
1945
+ }
1946
+ .session-tree-timeline-meta {
1947
+ display: flex;
1948
+ align-items: center;
1949
+ justify-content: space-between;
1950
+ gap: 0.45rem;
1951
+ color: var(--muted-foreground);
1952
+ font-size: 0.68rem;
1953
+ font-weight: 600;
1954
+ }
1955
+ .session-tree-timeline-start,
1956
+ .session-tree-timeline-duration {
1957
+ white-space: nowrap;
1958
+ }
1959
+ .session-tree-timeline-track {
1960
+ position: relative;
1961
+ display: block;
1962
+ width: 100%;
1963
+ height: 0.9rem;
1964
+ }
1965
+ .session-tree-timeline-track::before {
1966
+ content: "";
1967
+ position: absolute;
1968
+ inset: 50% 0 auto;
1969
+ height: 2px;
1970
+ border-radius: 999px;
1971
+ background: rgba(84, 100, 125, 0.18);
1972
+ transform: translateY(-50%);
1973
+ }
1974
+ .session-tree-timeline-bar {
1975
+ position: absolute;
1976
+ left: calc(var(--session-tree-offset, 0) * 100%);
1977
+ top: 50%;
1978
+ width: max(0.5rem, calc(var(--session-tree-span, 0.08) * 100%));
1979
+ height: 0.45rem;
1980
+ border-radius: 999px;
1981
+ border: 1px solid rgba(40, 93, 168, 0.28);
1982
+ background:
1983
+ linear-gradient(
1984
+ 90deg,
1985
+ rgba(92, 121, 171, 0.22),
1986
+ rgba(40, 93, 168, 0.52));
1987
+ transform: translateY(-50%);
1988
+ }
1704
1989
  .tree-node-children {
1705
1990
  display: flex;
1706
1991
  flex-direction: column;
@@ -1798,16 +2083,22 @@ pre {
1798
2083
  opacity: 1;
1799
2084
  }
1800
2085
  .detail-tabs {
2086
+ display: inline-flex;
2087
+ width: max-content;
2088
+ min-width: max-content;
2089
+ flex-wrap: nowrap;
1801
2090
  padding: 0.24rem;
1802
2091
  border-radius: 16px;
1803
2092
  background: rgba(243, 247, 251, 0.98);
1804
2093
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72), 0 1px 2px rgba(32, 50, 76, 0.04);
1805
2094
  }
1806
2095
  .detail-tabs .tabs-trigger {
2096
+ flex: 0 0 auto;
1807
2097
  padding: 0.62rem 0.94rem;
1808
2098
  font-size: 0.84rem;
1809
2099
  font-weight: 700;
1810
2100
  letter-spacing: -0.01em;
2101
+ white-space: nowrap;
1811
2102
  }
1812
2103
  .tabs-root[data-value=conversation] .tabs-trigger[data-tab-value=conversation],
1813
2104
  .tabs-root[data-value=request] .tabs-trigger[data-tab-value=request],
@@ -1955,12 +2246,60 @@ pre {
1955
2246
  display: flex;
1956
2247
  flex-direction: column;
1957
2248
  gap: 0;
2249
+ min-width: 0;
1958
2250
  }
1959
2251
  .conversation-thread > * + * {
1960
2252
  margin-top: 0.95rem;
1961
2253
  padding-top: 0.95rem;
1962
2254
  border-top: 1px solid rgba(88, 105, 130, 0.12);
1963
2255
  }
2256
+ .conversation-context-rail {
2257
+ display: none;
2258
+ min-width: 0;
2259
+ }
2260
+ .conversation-context-rail-header {
2261
+ display: flex;
2262
+ flex-direction: column;
2263
+ gap: 0.18rem;
2264
+ }
2265
+ .conversation-context-rail-title {
2266
+ font-size: 0.82rem;
2267
+ font-weight: 700;
2268
+ letter-spacing: 0.08em;
2269
+ text-transform: uppercase;
2270
+ color: var(--muted-foreground);
2271
+ }
2272
+ .conversation-context-rail-copy {
2273
+ color: var(--muted-foreground);
2274
+ font-size: 0.82rem;
2275
+ line-height: 1.4;
2276
+ }
2277
+ .conversation-context-rail .detail-grid {
2278
+ gap: 0.75rem;
2279
+ }
2280
+ .detail-inline-context-layout {
2281
+ display: grid;
2282
+ grid-template-columns: minmax(0, 1.2fr) minmax(24rem, 32rem);
2283
+ align-items: start;
2284
+ gap: 1rem;
2285
+ min-width: 0;
2286
+ }
2287
+ .detail-inline-context-main {
2288
+ min-width: 0;
2289
+ }
2290
+ .detail-inline-context-layout .conversation-thread > * {
2291
+ width: 100%;
2292
+ }
2293
+ .detail-inline-context-layout .conversation-thread .conversation-row {
2294
+ width: 100%;
2295
+ max-width: none;
2296
+ }
2297
+ .detail-inline-context-layout .conversation-context-rail {
2298
+ display: flex;
2299
+ flex-direction: column;
2300
+ gap: 0.75rem;
2301
+ min-width: 0;
2302
+ }
1964
2303
  .conversation-row {
1965
2304
  --message-accent: rgba(120, 137, 159, 0.24);
1966
2305
  --message-border-color: rgba(88, 105, 130, 0.12);
@@ -1974,8 +2313,14 @@ pre {
1974
2313
  gap: 0.45rem;
1975
2314
  max-width: min(52rem, 100%);
1976
2315
  }
2316
+ .conversation-row.is-user,
2317
+ .conversation-row.is-assistant,
2318
+ .conversation-row.is-system,
2319
+ .conversation-row.is-tool,
2320
+ .conversation-row.is-tool-call {
2321
+ align-self: flex-start;
2322
+ }
1977
2323
  .conversation-row.is-user {
1978
- align-self: flex-end;
1979
2324
  --message-accent: rgba(46, 181, 129, 0.58);
1980
2325
  --message-border-color: rgba(46, 181, 129, 0.28);
1981
2326
  --message-surface: rgba(232, 251, 242, 0.98);
@@ -1983,12 +2328,6 @@ pre {
1983
2328
  --message-label-border: rgba(46, 181, 129, 0.26);
1984
2329
  --message-label-surface: rgba(46, 181, 129, 0.16);
1985
2330
  }
1986
- .conversation-row.is-assistant,
1987
- .conversation-row.is-system,
1988
- .conversation-row.is-tool,
1989
- .conversation-row.is-tool-call {
1990
- align-self: flex-start;
1991
- }
1992
2331
  .conversation-row.is-assistant {
1993
2332
  --message-accent: rgba(151, 96, 255, 0.48);
1994
2333
  --message-border-color: rgba(151, 96, 255, 0.24);
@@ -2045,8 +2384,120 @@ pre {
2045
2384
  padding: 0.9rem 1rem;
2046
2385
  box-shadow: inset 3px 0 0 var(--message-accent), inset 0 1px 0 rgba(255, 255, 255, 0.72);
2047
2386
  }
2048
- .conversation-row.is-user .conversation-role {
2049
- align-self: flex-end;
2387
+ .message-insight-banner {
2388
+ display: flex;
2389
+ flex-direction: column;
2390
+ gap: 0.55rem;
2391
+ margin-bottom: 0.85rem;
2392
+ }
2393
+ .message-insight-card {
2394
+ display: flex;
2395
+ flex-direction: column;
2396
+ gap: 0.35rem;
2397
+ padding: 0.7rem 0.8rem;
2398
+ border: 1px solid rgba(184, 129, 44, 0.16);
2399
+ border-radius: 12px;
2400
+ background: rgba(255, 248, 236, 0.9);
2401
+ }
2402
+ .message-insight-card.is-highlight {
2403
+ border-color: rgba(86, 107, 147, 0.16);
2404
+ background: rgba(241, 246, 255, 0.88);
2405
+ }
2406
+ .message-insight-card-header {
2407
+ display: flex;
2408
+ align-items: center;
2409
+ justify-content: space-between;
2410
+ gap: 0.5rem;
2411
+ flex-wrap: wrap;
2412
+ }
2413
+ .message-insight-card-tags,
2414
+ .structured-markup-tags {
2415
+ display: flex;
2416
+ flex-wrap: wrap;
2417
+ gap: 0.35rem;
2418
+ }
2419
+ .message-insight-card-copy {
2420
+ color: var(--foreground);
2421
+ font-size: 0.82rem;
2422
+ line-height: 1.45;
2423
+ }
2424
+ .trace-insights-content {
2425
+ display: flex;
2426
+ flex-direction: column;
2427
+ gap: 0.7rem;
2428
+ }
2429
+ .trace-insight-item {
2430
+ display: flex;
2431
+ flex-direction: column;
2432
+ gap: 0.35rem;
2433
+ padding: 0.78rem 0.85rem;
2434
+ border: 1px solid rgba(86, 107, 147, 0.14);
2435
+ border-radius: 12px;
2436
+ background: rgba(243, 247, 255, 0.84);
2437
+ }
2438
+ .trace-insight-item.is-structured {
2439
+ border-color: rgba(34, 154, 161, 0.16);
2440
+ background: rgba(240, 252, 252, 0.9);
2441
+ }
2442
+ .trace-insight-item-header,
2443
+ .trace-insight-item-tags {
2444
+ display: flex;
2445
+ align-items: center;
2446
+ gap: 0.45rem;
2447
+ flex-wrap: wrap;
2448
+ }
2449
+ .trace-insight-item-header {
2450
+ justify-content: space-between;
2451
+ }
2452
+ .trace-insight-item-source {
2453
+ color: var(--muted-foreground);
2454
+ font-size: 0.74rem;
2455
+ font-family:
2456
+ ui-monospace,
2457
+ SFMono-Regular,
2458
+ Menlo,
2459
+ Consolas,
2460
+ monospace;
2461
+ }
2462
+ .trace-insight-item-copy {
2463
+ color: var(--foreground);
2464
+ font-size: 0.83rem;
2465
+ line-height: 1.5;
2466
+ }
2467
+ .structured-markup-block {
2468
+ display: flex;
2469
+ flex-direction: column;
2470
+ gap: 0.75rem;
2471
+ }
2472
+ .structured-markup-header {
2473
+ display: flex;
2474
+ align-items: center;
2475
+ justify-content: space-between;
2476
+ gap: 0.5rem;
2477
+ flex-wrap: wrap;
2478
+ }
2479
+ .structured-markup-pre {
2480
+ margin: 0;
2481
+ padding: 0.9rem 1rem;
2482
+ border-radius: 12px;
2483
+ border: 1px solid rgba(34, 154, 161, 0.18);
2484
+ background: rgba(240, 252, 252, 0.92);
2485
+ line-height: 1.5;
2486
+ overflow: auto;
2487
+ }
2488
+ .structured-markup-token.is-tag-name {
2489
+ color: #1b6a72;
2490
+ font-weight: 700;
2491
+ }
2492
+ .structured-markup-token.is-tag-punctuation,
2493
+ .structured-markup-token.is-attr-punctuation {
2494
+ color: var(--muted-foreground);
2495
+ }
2496
+ .structured-markup-token.is-attr-name {
2497
+ color: #7a4d13;
2498
+ }
2499
+ .structured-markup-token.is-attr-value {
2500
+ color: #245fd6;
2050
2501
  }
2051
2502
  .conversation-row.is-user .conversation-bubble {
2052
2503
  --expandable-fade-color: rgba(232, 251, 242, 0.98);
@@ -2624,7 +3075,7 @@ pre {
2624
3075
  line-height: 1.6;
2625
3076
  }
2626
3077
  :root[data-theme=dark] .background-glow {
2627
- opacity: 0.06;
3078
+ opacity: 0.08;
2628
3079
  }
2629
3080
  :root[data-theme=dark] .glow-teal {
2630
3081
  background: rgba(134, 184, 255, 0.14);
@@ -2641,17 +3092,17 @@ pre {
2641
3092
  transparent 1px);
2642
3093
  }
2643
3094
  :root[data-theme=dark] .board-shell {
2644
- border-color: rgba(128, 153, 189, 0.16);
3095
+ border-color: rgba(140, 164, 197, 0.22);
2645
3096
  background:
2646
3097
  linear-gradient(
2647
3098
  180deg,
2648
- rgba(18, 27, 40, 0.98),
2649
- rgba(11, 18, 29, 0.96)),
3099
+ rgba(21, 31, 46, 0.98),
3100
+ rgba(12, 19, 31, 0.98)),
2650
3101
  linear-gradient(
2651
3102
  135deg,
2652
- rgba(255, 255, 255, 0.04),
2653
- transparent);
2654
- box-shadow: 0 28px 90px rgba(1, 7, 18, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.05);
3103
+ rgba(157, 200, 255, 0.08),
3104
+ transparent 60%);
3105
+ box-shadow: 0 32px 96px rgba(1, 7, 18, 0.56), inset 0 1px 0 rgba(255, 255, 255, 0.06);
2655
3106
  }
2656
3107
  :root[data-theme=dark] .brand-logo {
2657
3108
  border-color: rgba(128, 153, 189, 0.16);
@@ -2670,20 +3121,63 @@ pre {
2670
3121
  :root[data-theme=dark] .brand-wordmark {
2671
3122
  color: #f3f7ff;
2672
3123
  }
3124
+ :root[data-theme=dark] .brand-subtitle,
3125
+ :root[data-theme=dark] .ui-card-description,
3126
+ :root[data-theme=dark] .filter-label,
3127
+ :root[data-theme=dark] .session-tree-meta,
3128
+ :root[data-theme=dark] .session-tree-card-time,
3129
+ :root[data-theme=dark] .session-tree-card-id,
3130
+ :root[data-theme=dark] .trace-group-meta,
3131
+ :root[data-theme=dark] .nav-item-meta,
3132
+ :root[data-theme=dark] .trace-nav-meta-row,
3133
+ :root[data-theme=dark] .hierarchy-timeline-hint,
3134
+ :root[data-theme=dark] .hierarchy-timeline-row-time,
3135
+ :root[data-theme=dark] .hierarchy-timeline-row-meta,
3136
+ :root[data-theme=dark] .hierarchy-timeline-row-duration,
3137
+ :root[data-theme=dark] .hierarchy-timeline-meta,
3138
+ :root[data-theme=dark] .hierarchy-timeline-title,
3139
+ :root[data-theme=dark] .trace-detail-subtitle,
3140
+ :root[data-theme=dark] .trace-detail-json-toggle,
3141
+ :root[data-theme=dark] .message-card-hint,
3142
+ :root[data-theme=dark] .trace-insight-item-source,
3143
+ :root[data-theme=dark] .tool-call-label,
3144
+ :root[data-theme=dark] .metadata-grid dt,
3145
+ :root[data-theme=dark] .metadata-secondary,
3146
+ :root[data-theme=dark] .kv-grid dt,
3147
+ :root[data-theme=dark] .timing-legend,
3148
+ :root[data-theme=dark] .muted-copy {
3149
+ color: rgba(205, 217, 234, 0.92);
3150
+ }
3151
+ :root[data-theme=dark] .session-tree-card-title,
3152
+ :root[data-theme=dark] .trace-group-title,
3153
+ :root[data-theme=dark] .nav-item-title,
3154
+ :root[data-theme=dark] .trace-row-title,
3155
+ :root[data-theme=dark] .trace-detail-title-row h2,
3156
+ :root[data-theme=dark] .trace-detail-heading p strong,
3157
+ :root[data-theme=dark] .tree-node-label {
3158
+ color: rgba(244, 248, 255, 0.98);
3159
+ }
2673
3160
  :root[data-theme=dark] .inspector-status,
2674
3161
  :root[data-theme=dark] .toolbar-card,
2675
3162
  :root[data-theme=dark] .ui-card,
2676
3163
  :root[data-theme=dark] .inspector-card,
2677
3164
  :root[data-theme=dark] .detail-section {
2678
- background: rgba(18, 27, 40, 0.78);
3165
+ background: var(--panel);
2679
3166
  }
2680
3167
  :root[data-theme=dark] .inspector-status {
2681
- background: rgba(14, 21, 32, 0.78);
3168
+ background: rgba(15, 23, 35, 0.96);
2682
3169
  }
2683
3170
  :root[data-theme=dark] .inspector-chip {
2684
3171
  background: rgba(134, 184, 255, 0.12);
2685
3172
  color: var(--primary-strong);
2686
3173
  }
3174
+ :root[data-theme=dark] .inspector-live-status {
3175
+ color: rgba(216, 228, 243, 0.94);
3176
+ }
3177
+ :root[data-theme=dark] .inspector-live-status.is-live {
3178
+ background: rgba(105, 197, 156, 0.14);
3179
+ color: #99e0bf;
3180
+ }
2687
3181
  :root[data-theme=dark] .ui-button-outline,
2688
3182
  :root[data-theme=dark] .filter-input-shell,
2689
3183
  :root[data-theme=dark] .ui-select,
@@ -2692,8 +3186,9 @@ pre {
2692
3186
  :root[data-theme=dark] .metadata-action-button,
2693
3187
  :root[data-theme=dark] .sheet-close {
2694
3188
  border-color: var(--line);
2695
- background: rgba(20, 29, 43, 0.92);
3189
+ background: var(--panel-strong);
2696
3190
  color: var(--foreground);
3191
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
2697
3192
  }
2698
3193
  :root[data-theme=dark] .ui-input::placeholder {
2699
3194
  color: rgba(149, 168, 193, 0.82);
@@ -2702,7 +3197,10 @@ pre {
2702
3197
  :root[data-theme=dark] .sheet-close:focus-visible,
2703
3198
  :root[data-theme=dark] .nav-item:focus-visible,
2704
3199
  :root[data-theme=dark] .nav-switch-button:focus-visible,
3200
+ :root[data-theme=dark] .session-tree-select:focus-visible,
2705
3201
  :root[data-theme=dark] .theme-switch-button:focus-visible,
3202
+ :root[data-theme=dark] .trace-detail-breadcrumb-segment:focus-visible,
3203
+ :root[data-theme=dark] .ui-badge-button:focus-visible,
2706
3204
  :root[data-theme=dark] .expandable-toggle:focus-visible,
2707
3205
  :root[data-theme=dark] .tree-node-toggle:focus-visible,
2708
3206
  :root[data-theme=dark] .tree-node-select:focus-visible,
@@ -2731,10 +3229,10 @@ pre {
2731
3229
  background: rgba(134, 184, 255, 0.14);
2732
3230
  color: var(--primary-strong);
2733
3231
  }
2734
- :root[data-theme=dark] .session-sidebar-toolbar {
2735
- border-color: rgba(128, 153, 189, 0.14);
2736
- background: rgba(16, 24, 36, 0.82);
2737
- box-shadow: 0 10px 24px rgba(2, 10, 24, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.04);
3232
+ :root[data-theme=dark] .session-tree-section {
3233
+ border-color: rgba(140, 164, 197, 0.18);
3234
+ background: rgba(15, 23, 35, 0.92);
3235
+ box-shadow: 0 12px 28px rgba(2, 10, 24, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.04);
2738
3236
  }
2739
3237
  :root[data-theme=dark] .trace-group-button,
2740
3238
  :root[data-theme=dark] .nav-item,
@@ -2745,15 +3243,15 @@ pre {
2745
3243
  :root[data-theme=dark] .tool-call-stack-item,
2746
3244
  :root[data-theme=dark] .stream-segment,
2747
3245
  :root[data-theme=dark] .conversation-bubble {
2748
- border-color: rgba(128, 153, 189, 0.16);
2749
- background: rgba(21, 31, 46, 0.94);
2750
- box-shadow: 0 10px 24px rgba(2, 10, 24, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.04);
3246
+ border-color: rgba(140, 164, 197, 0.18);
3247
+ background: rgba(22, 33, 48, 0.97);
3248
+ box-shadow: 0 12px 28px rgba(2, 10, 24, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.04);
2751
3249
  }
2752
3250
  :root[data-theme=dark] .nav-list > .nav-item:nth-child(even),
2753
3251
  :root[data-theme=dark] .tree-node-card.is-trace,
2754
3252
  :root[data-theme=dark] .message-card.role-tool {
2755
- --expandable-fade-color: rgba(18, 27, 40, 0.99);
2756
- background: rgba(18, 27, 40, 0.96);
3253
+ --expandable-fade-color: rgba(19, 29, 43, 0.99);
3254
+ background: rgba(19, 29, 43, 0.97);
2757
3255
  }
2758
3256
  :root[data-theme=dark] .tree-node-card.is-detail-trace:not(.is-active) {
2759
3257
  border-color: rgba(134, 184, 255, 0.18);
@@ -2763,6 +3261,14 @@ pre {
2763
3261
  0 10px 24px rgba(2, 10, 24, 0.18),
2764
3262
  inset 0 1px 0 rgba(255, 255, 255, 0.05);
2765
3263
  }
3264
+ :root[data-theme=dark] .tree-node-card.is-in-path:not(.is-active) {
3265
+ border-color: rgba(145, 193, 255, 0.18);
3266
+ background: rgba(27, 40, 59, 0.98);
3267
+ box-shadow:
3268
+ inset 2px 0 0 rgba(134, 184, 255, 0.56),
3269
+ 0 12px 26px rgba(2, 10, 24, 0.18),
3270
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
3271
+ }
2766
3272
  :root[data-theme=dark] .trace-group.has-active-trace .trace-group-button,
2767
3273
  :root[data-theme=dark] .trace-group-button:hover,
2768
3274
  :root[data-theme=dark] .nav-item:hover,
@@ -2772,7 +3278,7 @@ pre {
2772
3278
  :root[data-theme=dark] .trace-row:hover,
2773
3279
  :root[data-theme=dark] .trace-row.is-active {
2774
3280
  border-color: var(--line-strong);
2775
- background: rgba(29, 43, 64, 0.99);
3281
+ background: rgba(35, 50, 74, 0.99);
2776
3282
  box-shadow:
2777
3283
  inset 4px 0 0 rgba(134, 184, 255, 0.82),
2778
3284
  0 14px 32px rgba(2, 10, 24, 0.26),
@@ -2780,19 +3286,23 @@ pre {
2780
3286
  inset 0 1px 0 rgba(255, 255, 255, 0.05);
2781
3287
  }
2782
3288
  :root[data-theme=dark] .trace-row-preview {
2783
- color: rgba(230, 238, 249, 0.84);
3289
+ color: rgba(235, 242, 251, 0.92);
2784
3290
  }
2785
3291
  :root[data-theme=dark] .trace-group-body,
2786
3292
  :root[data-theme=dark] .conversation-thread > * + * {
2787
- border-color: rgba(128, 153, 189, 0.12);
3293
+ border-color: rgba(140, 164, 197, 0.16);
2788
3294
  }
2789
3295
  :root[data-theme=dark] .trace-nav-meta-row span:first-child,
2790
- :root[data-theme=dark] .trace-elapsed-label {
2791
- color: rgba(182, 197, 219, 0.76);
3296
+ :root[data-theme=dark] .trace-elapsed-label,
3297
+ :root[data-theme=dark] .session-tree-timeline-meta {
3298
+ color: rgba(196, 210, 229, 0.9);
2792
3299
  }
2793
3300
  :root[data-theme=dark] .trace-elapsed-track::before {
2794
3301
  background: rgba(128, 153, 189, 0.22);
2795
3302
  }
3303
+ :root[data-theme=dark] .session-tree-timeline-track::before {
3304
+ background: rgba(128, 153, 189, 0.2);
3305
+ }
2796
3306
  :root[data-theme=dark] .trace-elapsed-span {
2797
3307
  background:
2798
3308
  linear-gradient(
@@ -2801,6 +3311,14 @@ pre {
2801
3311
  rgba(104, 158, 255, 0.96));
2802
3312
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 0 0 4px rgba(134, 184, 255, 0.08);
2803
3313
  }
3314
+ :root[data-theme=dark] .session-tree-timeline-bar {
3315
+ border-color: rgba(134, 184, 255, 0.3);
3316
+ background:
3317
+ linear-gradient(
3318
+ 90deg,
3319
+ rgba(134, 184, 255, 0.24),
3320
+ rgba(134, 184, 255, 0.62));
3321
+ }
2804
3322
  :root[data-theme=dark] .trace-elapsed-bar.is-pending .trace-elapsed-span {
2805
3323
  background:
2806
3324
  linear-gradient(
@@ -2809,9 +3327,9 @@ pre {
2809
3327
  rgba(134, 184, 255, 0.9));
2810
3328
  }
2811
3329
  :root[data-theme=dark] .hierarchy-timeline-panel {
2812
- border-color: rgba(128, 153, 189, 0.16);
2813
- background: rgba(18, 27, 40, 0.8);
2814
- box-shadow: 0 14px 32px rgba(2, 10, 24, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.04);
3330
+ border-color: rgba(140, 164, 197, 0.18);
3331
+ background: rgba(18, 27, 40, 0.92);
3332
+ box-shadow: 0 16px 36px rgba(2, 10, 24, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.04);
2815
3333
  }
2816
3334
  :root[data-theme=dark] .hierarchy-timeline-axis-track,
2817
3335
  :root[data-theme=dark] .hierarchy-timeline-row-track {
@@ -2823,7 +3341,7 @@ pre {
2823
3341
  transparent 1px);
2824
3342
  }
2825
3343
  :root[data-theme=dark] .hierarchy-timeline-axis-label {
2826
- color: rgba(182, 197, 219, 0.76);
3344
+ color: rgba(209, 220, 236, 0.9);
2827
3345
  }
2828
3346
  :root[data-theme=dark] .ui-badge[data-semantic] {
2829
3347
  border-color: color-mix(in srgb, var(--semantic-badge-color) 30%, rgba(128, 153, 189, 0.14));
@@ -2831,27 +3349,24 @@ pre {
2831
3349
  color: color-mix(in srgb, var(--semantic-badge-color) 74%, white);
2832
3350
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
2833
3351
  }
2834
- :root[data-theme=dark] .hierarchy-timeline-hint {
2835
- color: rgba(182, 197, 219, 0.72);
2836
- }
2837
3352
  :root[data-theme=dark] .hierarchy-timeline-row::before {
2838
- background: rgba(22, 32, 47, 0.52);
3353
+ background: rgba(23, 33, 49, 0.74);
2839
3354
  }
2840
3355
  :root[data-theme=dark] .hierarchy-timeline-row.is-clickable::before {
2841
3356
  border-color: rgba(134, 184, 255, 0.12);
2842
- background: rgba(24, 35, 52, 0.74);
3357
+ background: rgba(28, 40, 59, 0.88);
2843
3358
  box-shadow: 0 8px 20px rgba(2, 10, 24, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.04);
2844
3359
  }
2845
3360
  :root[data-theme=dark] .hierarchy-timeline-row.is-clickable:hover::before {
2846
3361
  border-color: rgba(134, 184, 255, 0.2);
2847
- background: rgba(29, 43, 64, 0.88);
3362
+ background: rgba(35, 50, 74, 0.94);
2848
3363
  }
2849
3364
  :root[data-theme=dark] .hierarchy-timeline-row.is-structure::before {
2850
3365
  border-color: color-mix(in srgb, var(--timeline-row-color) 18%, rgba(128, 153, 189, 0.08));
2851
3366
  background: color-mix(in srgb, var(--timeline-row-color) 8%, rgba(18, 27, 40, 0.4));
2852
3367
  }
2853
3368
  :root[data-theme=dark] .hierarchy-timeline-row.is-in-path::before {
2854
- background: rgba(27, 40, 60, 0.7);
3369
+ background: rgba(31, 45, 66, 0.82);
2855
3370
  }
2856
3371
  :root[data-theme=dark] .hierarchy-timeline-row.is-structure.is-in-path::before {
2857
3372
  background: rgba(24, 35, 52, 0.38);
@@ -2863,31 +3378,29 @@ pre {
2863
3378
  }
2864
3379
  :root[data-theme=dark] .hierarchy-timeline-row.is-active::before {
2865
3380
  border-color: rgba(134, 184, 255, 0.2);
2866
- background: rgba(31, 45, 66, 0.94);
3381
+ background: rgba(36, 52, 77, 0.96);
2867
3382
  box-shadow: inset 3px 0 0 rgba(134, 184, 255, 0.82), 0 10px 22px rgba(2, 10, 24, 0.18);
2868
3383
  }
2869
- :root[data-theme=dark] .hierarchy-timeline-row-time,
2870
- :root[data-theme=dark] .hierarchy-timeline-row-meta,
2871
- :root[data-theme=dark] .hierarchy-timeline-row-duration,
2872
- :root[data-theme=dark] .hierarchy-timeline-meta,
2873
- :root[data-theme=dark] .hierarchy-timeline-title {
2874
- color: rgba(182, 197, 219, 0.78);
2875
- }
2876
3384
  :root[data-theme=dark] .hierarchy-timeline-row-gutter::before,
2877
3385
  :root[data-theme=dark] .hierarchy-timeline-row-gutter::after {
2878
3386
  background: color-mix(in srgb, var(--timeline-row-color) 24%, rgba(128, 153, 189, 0.14));
2879
3387
  }
3388
+ :root[data-theme=dark] .hierarchy-timeline-row-ancestor::before,
3389
+ :root[data-theme=dark] .hierarchy-timeline-row-connector-top,
3390
+ :root[data-theme=dark] .hierarchy-timeline-row-connector-elbow,
3391
+ :root[data-theme=dark] .hierarchy-timeline-row-connector-bottom {
3392
+ background: color-mix(in srgb, var(--timeline-row-color) 32%, rgba(128, 153, 189, 0.18));
3393
+ }
2880
3394
  :root[data-theme=dark] .hierarchy-timeline-row.is-structure .hierarchy-timeline-row-title-text {
2881
3395
  color: color-mix(in srgb, var(--timeline-row-color) 48%, white);
2882
3396
  }
2883
- :root[data-theme=dark] .hierarchy-timeline-row-inspect {
2884
- border-color: rgba(134, 184, 255, 0.18);
2885
- background: rgba(134, 184, 255, 0.12);
2886
- color: rgba(186, 214, 255, 0.96);
3397
+ :root[data-theme=dark] .hierarchy-timeline-row-flag {
3398
+ background: rgba(34, 154, 161, 0.18);
3399
+ color: #9be5e8;
2887
3400
  }
2888
- :root[data-theme=dark] .hierarchy-timeline-row.is-clickable:hover .hierarchy-timeline-row-inspect {
2889
- border-color: rgba(134, 184, 255, 0.24);
2890
- background: rgba(134, 184, 255, 0.18);
3401
+ :root[data-theme=dark] .hierarchy-timeline-row-flag.is-highlight {
3402
+ background: rgba(184, 129, 44, 0.18);
3403
+ color: #f0c780;
2891
3404
  }
2892
3405
  :root[data-theme=dark] .trace-detail-breadcrumb {
2893
3406
  color: rgba(182, 197, 219, 0.74);
@@ -2899,6 +3412,9 @@ pre {
2899
3412
  background: rgba(134, 184, 255, 0.14);
2900
3413
  color: rgba(186, 214, 255, 0.96);
2901
3414
  }
3415
+ :root[data-theme=dark] .trace-detail-breadcrumb-segment:hover {
3416
+ color: rgba(186, 214, 255, 0.96);
3417
+ }
2902
3418
  :root[data-theme=dark] .trace-detail-subtitle,
2903
3419
  :root[data-theme=dark] .trace-detail-json-toggle {
2904
3420
  color: rgba(182, 197, 219, 0.74);
@@ -2937,11 +3453,15 @@ pre {
2937
3453
  background: rgba(105, 197, 156, 0.12);
2938
3454
  color: var(--success);
2939
3455
  }
3456
+ :root[data-theme=dark] .tabs-trigger {
3457
+ color: rgba(203, 216, 235, 0.92);
3458
+ opacity: 1;
3459
+ }
2940
3460
  :root[data-theme=dark] .tabs-list {
2941
- background: rgba(16, 24, 36, 0.92);
3461
+ background: rgba(15, 23, 35, 0.96);
2942
3462
  }
2943
3463
  :root[data-theme=dark] .detail-tabs {
2944
- background: rgba(16, 24, 36, 0.96);
3464
+ background: rgba(15, 23, 35, 0.98);
2945
3465
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 1px 2px rgba(1, 7, 18, 0.22);
2946
3466
  }
2947
3467
  :root[data-theme=dark] .tabs-trigger:hover {
@@ -2963,61 +3483,65 @@ pre {
2963
3483
  }
2964
3484
  :root[data-theme=dark] .sheet-panel {
2965
3485
  border-left-color: rgba(128, 153, 189, 0.14);
2966
- background: rgba(12, 18, 28, 0.96);
3486
+ background: rgba(10, 16, 25, 0.98);
2967
3487
  box-shadow: -24px 0 70px rgba(1, 7, 18, 0.42);
2968
3488
  }
2969
3489
  :root[data-theme=dark] .conversation-row,
2970
3490
  :root[data-theme=dark] .message-card {
2971
3491
  --message-role-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
3492
+ color: rgba(244, 248, 255, 0.97);
3493
+ }
3494
+ :root[data-theme=dark] .conversation-role {
3495
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 2px rgba(1, 7, 18, 0.18);
2972
3496
  }
2973
3497
  :root[data-theme=dark] .conversation-row.is-user .conversation-bubble,
2974
3498
  :root[data-theme=dark] .message-card.role-user {
2975
3499
  --message-accent: rgba(76, 218, 157, 0.58);
2976
3500
  --message-border-color: rgba(76, 218, 157, 0.28);
2977
- --message-surface: rgba(10, 72, 49, 0.98);
3501
+ --message-surface: rgba(14, 78, 55, 0.98);
2978
3502
  --message-label-color: rgba(209, 255, 234, 0.98);
2979
3503
  --message-label-border: rgba(76, 218, 157, 0.24);
2980
- --message-label-surface: rgba(76, 218, 157, 0.18);
2981
- --expandable-fade-color: rgba(10, 72, 49, 0.99);
3504
+ --message-label-surface: rgba(76, 218, 157, 0.22);
3505
+ --expandable-fade-color: rgba(14, 78, 55, 0.99);
2982
3506
  }
2983
3507
  :root[data-theme=dark] .conversation-row.is-assistant .conversation-bubble,
2984
3508
  :root[data-theme=dark] .message-card.role-assistant {
2985
3509
  --message-accent: rgba(177, 108, 255, 0.54);
2986
3510
  --message-border-color: rgba(177, 108, 255, 0.24);
2987
- --message-surface: rgba(54, 24, 89, 0.98);
3511
+ --message-surface: rgba(58, 34, 94, 0.98);
2988
3512
  --message-label-color: rgba(231, 208, 255, 0.98);
2989
3513
  --message-label-border: rgba(177, 108, 255, 0.22);
2990
- --message-label-surface: rgba(177, 108, 255, 0.16);
2991
- --expandable-fade-color: rgba(22, 32, 48, 0.99);
3514
+ --message-label-surface: rgba(177, 108, 255, 0.2);
3515
+ --expandable-fade-color: rgba(58, 34, 94, 0.99);
2992
3516
  }
2993
3517
  :root[data-theme=dark] .conversation-row.is-system .conversation-bubble,
2994
3518
  :root[data-theme=dark] .message-card.role-system {
2995
3519
  --message-accent: rgba(79, 136, 255, 0.62);
2996
3520
  --message-border-color: rgba(79, 136, 255, 0.28);
2997
- --message-surface: rgba(17, 42, 96, 0.98);
3521
+ --message-surface: rgba(21, 48, 102, 0.98);
2998
3522
  --message-label-color: rgba(203, 221, 255, 0.98);
2999
3523
  --message-label-border: rgba(79, 136, 255, 0.26);
3000
- --message-label-surface: rgba(79, 136, 255, 0.18);
3001
- --expandable-fade-color: rgba(26, 39, 57, 0.99);
3524
+ --message-label-surface: rgba(79, 136, 255, 0.22);
3525
+ --expandable-fade-color: rgba(21, 48, 102, 0.99);
3002
3526
  }
3003
3527
  :root[data-theme=dark] .conversation-row.is-tool .conversation-bubble,
3004
3528
  :root[data-theme=dark] .message-card.role-tool {
3005
3529
  --message-accent: rgba(60, 212, 144, 0.56);
3006
3530
  --message-border-color: rgba(60, 212, 144, 0.26);
3007
- --message-surface: rgba(11, 63, 42, 0.98);
3531
+ --message-surface: rgba(14, 69, 47, 0.98);
3008
3532
  --message-label-color: rgba(203, 255, 229, 0.98);
3009
3533
  --message-label-border: rgba(60, 212, 144, 0.22);
3010
- --message-label-surface: rgba(60, 212, 144, 0.16);
3011
- --expandable-fade-color: rgba(18, 34, 33, 0.99);
3534
+ --message-label-surface: rgba(60, 212, 144, 0.2);
3535
+ --expandable-fade-color: rgba(14, 69, 47, 0.99);
3012
3536
  }
3013
3537
  :root[data-theme=dark] .conversation-row.is-tool-call .conversation-bubble {
3014
3538
  --message-accent: rgba(255, 170, 66, 0.6);
3015
3539
  --message-border-color: rgba(255, 170, 66, 0.28);
3016
- --message-surface: rgba(84, 43, 5, 0.98);
3540
+ --message-surface: rgba(94, 49, 10, 0.98);
3017
3541
  --message-label-color: rgba(255, 228, 184, 0.98);
3018
3542
  --message-label-border: rgba(255, 170, 66, 0.24);
3019
- --message-label-surface: rgba(255, 170, 66, 0.16);
3020
- --expandable-fade-color: rgba(44, 31, 16, 0.99);
3543
+ --message-label-surface: rgba(255, 170, 66, 0.2);
3544
+ --expandable-fade-color: rgba(94, 49, 10, 0.99);
3021
3545
  }
3022
3546
  :root[data-theme=dark] .tool-result-bubble {
3023
3547
  --expandable-fade-color: rgba(18, 34, 33, 0.99);
@@ -3025,6 +3549,39 @@ pre {
3025
3549
  :root[data-theme=dark] .tool-call-bubble {
3026
3550
  --expandable-fade-color: rgba(44, 31, 16, 0.99);
3027
3551
  }
3552
+ :root[data-theme=dark] .message-insight-card {
3553
+ border-color: rgba(184, 129, 44, 0.24);
3554
+ background: rgba(61, 45, 18, 0.8);
3555
+ }
3556
+ :root[data-theme=dark] .message-insight-card.is-highlight {
3557
+ border-color: rgba(86, 107, 147, 0.24);
3558
+ background: rgba(27, 38, 57, 0.82);
3559
+ }
3560
+ :root[data-theme=dark] .trace-insight-item {
3561
+ border-color: rgba(86, 107, 147, 0.24);
3562
+ background: rgba(27, 38, 57, 0.82);
3563
+ }
3564
+ :root[data-theme=dark] .trace-insight-item.is-structured {
3565
+ border-color: rgba(34, 154, 161, 0.22);
3566
+ background: rgba(14, 43, 46, 0.58);
3567
+ }
3568
+ :root[data-theme=dark] .structured-markup-pre {
3569
+ border-color: rgba(34, 154, 161, 0.22);
3570
+ background: rgba(14, 43, 46, 0.58);
3571
+ }
3572
+ :root[data-theme=dark] .structured-markup-token.is-tag-name {
3573
+ color: #8de0e6;
3574
+ }
3575
+ :root[data-theme=dark] .structured-markup-token.is-attr-name {
3576
+ color: #efc27d;
3577
+ }
3578
+ :root[data-theme=dark] .structured-markup-token.is-attr-value {
3579
+ color: #9bc0ff;
3580
+ }
3581
+ :root[data-theme=dark] .structured-markup-token.is-tag-punctuation,
3582
+ :root[data-theme=dark] .structured-markup-token.is-attr-punctuation {
3583
+ color: rgba(211, 222, 237, 0.82);
3584
+ }
3028
3585
  :root[data-theme=dark] .markdown-body code {
3029
3586
  background: rgba(101, 134, 182, 0.18);
3030
3587
  }
@@ -3058,13 +3615,19 @@ pre {
3058
3615
  background: rgba(13, 20, 31, 0.99);
3059
3616
  }
3060
3617
  :root[data-theme=dark] .json-syntax {
3061
- color: #dde7f6;
3618
+ color: #ebf2ff;
3619
+ }
3620
+ :root[data-theme=dark] .stream-segment-copy,
3621
+ :root[data-theme=dark] .tool-result-content pre,
3622
+ :root[data-theme=dark] .markdown-body,
3623
+ :root[data-theme=dark] .message-card-body {
3624
+ color: rgba(241, 246, 255, 0.97);
3062
3625
  }
3063
3626
  :root[data-theme=dark] .json-token-key {
3064
- color: #acd0ff;
3627
+ color: #bfdbff;
3065
3628
  }
3066
3629
  :root[data-theme=dark] .json-token-string {
3067
- color: #d2dced;
3630
+ color: #dfe8f7;
3068
3631
  }
3069
3632
  :root[data-theme=dark] .json-token-number {
3070
3633
  color: #cba8ff;
@@ -3088,9 +3651,6 @@ pre {
3088
3651
  border-color: rgba(134, 184, 255, 0.24);
3089
3652
  background: rgba(134, 184, 255, 0.16);
3090
3653
  }
3091
- :root[data-theme=dark] .workspace-grid::-webkit-scrollbar-thumb {
3092
- background: rgba(128, 153, 189, 0.28);
3093
- }
3094
3654
  [data-icon=inline-start] {
3095
3655
  width: 1rem;
3096
3656
  height: 1rem;
@@ -3133,7 +3693,9 @@ pre {
3133
3693
  }
3134
3694
  }
3135
3695
  @media (max-width: 1180px) {
3136
- .workspace-grid,
3696
+ .workspace-grid {
3697
+ grid-template-columns: minmax(24rem, 28rem) minmax(0, 1fr);
3698
+ }
3137
3699
  .filters-grid,
3138
3700
  .filters-secondary-row {
3139
3701
  grid-template-columns: minmax(0, 1fr);
@@ -3146,8 +3708,7 @@ pre {
3146
3708
  .inspector-status {
3147
3709
  justify-content: space-between;
3148
3710
  }
3149
- .navigator-header,
3150
- .trace-detail-toolbar {
3711
+ .navigator-header {
3151
3712
  flex-direction: column;
3152
3713
  align-items: stretch;
3153
3714
  }
@@ -3170,6 +3731,62 @@ pre {
3170
3731
  width: min(100vw, 48rem);
3171
3732
  }
3172
3733
  }
3734
+ @media (max-width: 960px) {
3735
+ .app-shell {
3736
+ height: auto;
3737
+ min-height: 100dvh;
3738
+ overflow-y: auto;
3739
+ }
3740
+ .app-frame {
3741
+ height: auto;
3742
+ min-height: 100dvh;
3743
+ }
3744
+ .board-shell {
3745
+ flex: 0 0 auto;
3746
+ height: auto;
3747
+ min-height: calc(100dvh - (var(--page-gutter) * 2));
3748
+ overflow: visible;
3749
+ }
3750
+ .workspace-grid,
3751
+ .filters-grid,
3752
+ .filters-secondary-row {
3753
+ grid-template-columns: minmax(0, 1fr);
3754
+ }
3755
+ .workspace-grid {
3756
+ flex: 0 0 auto;
3757
+ overflow: visible;
3758
+ min-height: auto;
3759
+ }
3760
+ .sidebar-card,
3761
+ .timeline-card,
3762
+ .session-sidebar-shell,
3763
+ .trace-detail-panel,
3764
+ .trace-detail-main,
3765
+ .trace-detail-primary,
3766
+ .trace-detail-secondary {
3767
+ min-height: auto;
3768
+ height: auto;
3769
+ }
3770
+ .content-scroll,
3771
+ .session-tree-scroll,
3772
+ .hierarchy-timeline-list,
3773
+ .session-sidebar-shell .hierarchy-timeline-list,
3774
+ .trace-detail-scroll,
3775
+ .trace-detail-secondary {
3776
+ overflow: visible;
3777
+ max-height: none;
3778
+ }
3779
+ .trace-detail-scroll {
3780
+ padding-right: 0;
3781
+ }
3782
+ .session-sidebar-shell .hierarchy-timeline-panel {
3783
+ flex: 0 0 auto;
3784
+ }
3785
+ .trace-detail-toolbar {
3786
+ flex-direction: column;
3787
+ align-items: stretch;
3788
+ }
3789
+ }
3173
3790
  @media (max-width: 720px) {
3174
3791
  :root {
3175
3792
  --page-gutter: 1rem;
@@ -3208,7 +3825,7 @@ pre {
3208
3825
  .sheet-header-actions {
3209
3826
  justify-content: flex-end;
3210
3827
  }
3211
- .tabs-list {
3828
+ .tabs-list:not(.detail-tabs) {
3212
3829
  width: 100%;
3213
3830
  }
3214
3831
  .trace-detail-title-row {
@@ -3235,12 +3852,24 @@ pre {
3235
3852
  min-width: 0;
3236
3853
  width: 100%;
3237
3854
  }
3238
- .tree-trace-select {
3239
- flex-direction: column;
3855
+ .tree-node-card {
3856
+ grid-template-columns: 1.8rem minmax(0, 1fr);
3857
+ }
3858
+ .tree-node-select,
3859
+ .tree-structure-select,
3860
+ .tree-trace-select,
3861
+ .session-tree-select {
3862
+ grid-template-columns: minmax(0, 1fr);
3240
3863
  align-items: stretch;
3241
3864
  }
3865
+ .session-tree-timeline {
3866
+ min-width: 0;
3867
+ width: 100%;
3868
+ flex-basis: auto;
3869
+ }
3242
3870
  .trace-elapsed-bar,
3243
- .nav-item-side-meta {
3871
+ .nav-item-side-meta,
3872
+ .session-tree-timeline-meta {
3244
3873
  justify-content: flex-start;
3245
3874
  }
3246
3875
  .trace-detail-secondary .hierarchy-timeline-axis,
@@ -3268,9 +3897,6 @@ pre {
3268
3897
  grid-column: auto;
3269
3898
  grid-template-columns: minmax(0, 1fr) auto;
3270
3899
  }
3271
- .trace-detail-secondary .hierarchy-timeline-row-action {
3272
- justify-content: flex-start;
3273
- }
3274
3900
  .hierarchy-timeline-header,
3275
3901
  .hierarchy-timeline-header-side {
3276
3902
  flex-direction: column;
@@ -3306,7 +3932,4 @@ pre {
3306
3932
  grid-column: auto;
3307
3933
  grid-template-columns: minmax(0, 1fr) auto;
3308
3934
  }
3309
- .hierarchy-timeline-row-action {
3310
- justify-content: flex-start;
3311
- }
3312
3935
  }