codex-devtools 0.1.1

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,1916 @@
1
+ *, ::before, ::after {
2
+ --tw-border-spacing-x: 0;
3
+ --tw-border-spacing-y: 0;
4
+ --tw-translate-x: 0;
5
+ --tw-translate-y: 0;
6
+ --tw-rotate: 0;
7
+ --tw-skew-x: 0;
8
+ --tw-skew-y: 0;
9
+ --tw-scale-x: 1;
10
+ --tw-scale-y: 1;
11
+ --tw-pan-x: ;
12
+ --tw-pan-y: ;
13
+ --tw-pinch-zoom: ;
14
+ --tw-scroll-snap-strictness: proximity;
15
+ --tw-gradient-from-position: ;
16
+ --tw-gradient-via-position: ;
17
+ --tw-gradient-to-position: ;
18
+ --tw-ordinal: ;
19
+ --tw-slashed-zero: ;
20
+ --tw-numeric-figure: ;
21
+ --tw-numeric-spacing: ;
22
+ --tw-numeric-fraction: ;
23
+ --tw-ring-inset: ;
24
+ --tw-ring-offset-width: 0px;
25
+ --tw-ring-offset-color: #fff;
26
+ --tw-ring-color: rgb(59 130 246 / 0.5);
27
+ --tw-ring-offset-shadow: 0 0 #0000;
28
+ --tw-ring-shadow: 0 0 #0000;
29
+ --tw-shadow: 0 0 #0000;
30
+ --tw-shadow-colored: 0 0 #0000;
31
+ --tw-blur: ;
32
+ --tw-brightness: ;
33
+ --tw-contrast: ;
34
+ --tw-grayscale: ;
35
+ --tw-hue-rotate: ;
36
+ --tw-invert: ;
37
+ --tw-saturate: ;
38
+ --tw-sepia: ;
39
+ --tw-drop-shadow: ;
40
+ --tw-backdrop-blur: ;
41
+ --tw-backdrop-brightness: ;
42
+ --tw-backdrop-contrast: ;
43
+ --tw-backdrop-grayscale: ;
44
+ --tw-backdrop-hue-rotate: ;
45
+ --tw-backdrop-invert: ;
46
+ --tw-backdrop-opacity: ;
47
+ --tw-backdrop-saturate: ;
48
+ --tw-backdrop-sepia: ;
49
+ --tw-contain-size: ;
50
+ --tw-contain-layout: ;
51
+ --tw-contain-paint: ;
52
+ --tw-contain-style: ;
53
+ }
54
+
55
+ ::backdrop {
56
+ --tw-border-spacing-x: 0;
57
+ --tw-border-spacing-y: 0;
58
+ --tw-translate-x: 0;
59
+ --tw-translate-y: 0;
60
+ --tw-rotate: 0;
61
+ --tw-skew-x: 0;
62
+ --tw-skew-y: 0;
63
+ --tw-scale-x: 1;
64
+ --tw-scale-y: 1;
65
+ --tw-pan-x: ;
66
+ --tw-pan-y: ;
67
+ --tw-pinch-zoom: ;
68
+ --tw-scroll-snap-strictness: proximity;
69
+ --tw-gradient-from-position: ;
70
+ --tw-gradient-via-position: ;
71
+ --tw-gradient-to-position: ;
72
+ --tw-ordinal: ;
73
+ --tw-slashed-zero: ;
74
+ --tw-numeric-figure: ;
75
+ --tw-numeric-spacing: ;
76
+ --tw-numeric-fraction: ;
77
+ --tw-ring-inset: ;
78
+ --tw-ring-offset-width: 0px;
79
+ --tw-ring-offset-color: #fff;
80
+ --tw-ring-color: rgb(59 130 246 / 0.5);
81
+ --tw-ring-offset-shadow: 0 0 #0000;
82
+ --tw-ring-shadow: 0 0 #0000;
83
+ --tw-shadow: 0 0 #0000;
84
+ --tw-shadow-colored: 0 0 #0000;
85
+ --tw-blur: ;
86
+ --tw-brightness: ;
87
+ --tw-contrast: ;
88
+ --tw-grayscale: ;
89
+ --tw-hue-rotate: ;
90
+ --tw-invert: ;
91
+ --tw-saturate: ;
92
+ --tw-sepia: ;
93
+ --tw-drop-shadow: ;
94
+ --tw-backdrop-blur: ;
95
+ --tw-backdrop-brightness: ;
96
+ --tw-backdrop-contrast: ;
97
+ --tw-backdrop-grayscale: ;
98
+ --tw-backdrop-hue-rotate: ;
99
+ --tw-backdrop-invert: ;
100
+ --tw-backdrop-opacity: ;
101
+ --tw-backdrop-saturate: ;
102
+ --tw-backdrop-sepia: ;
103
+ --tw-contain-size: ;
104
+ --tw-contain-layout: ;
105
+ --tw-contain-paint: ;
106
+ --tw-contain-style: ;
107
+ }/*
108
+ ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
109
+ *//*
110
+ 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
111
+ 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
112
+ */
113
+
114
+ *,
115
+ ::before,
116
+ ::after {
117
+ box-sizing: border-box; /* 1 */
118
+ border-width: 0; /* 2 */
119
+ border-style: solid; /* 2 */
120
+ border-color: #e5e7eb; /* 2 */
121
+ }
122
+
123
+ ::before,
124
+ ::after {
125
+ --tw-content: '';
126
+ }
127
+
128
+ /*
129
+ 1. Use a consistent sensible line-height in all browsers.
130
+ 2. Prevent adjustments of font size after orientation changes in iOS.
131
+ 3. Use a more readable tab size.
132
+ 4. Use the user's configured `sans` font-family by default.
133
+ 5. Use the user's configured `sans` font-feature-settings by default.
134
+ 6. Use the user's configured `sans` font-variation-settings by default.
135
+ 7. Disable tap highlights on iOS
136
+ */
137
+
138
+ html,
139
+ :host {
140
+ line-height: 1.5; /* 1 */
141
+ -webkit-text-size-adjust: 100%; /* 2 */
142
+ -moz-tab-size: 4; /* 3 */
143
+ -o-tab-size: 4;
144
+ tab-size: 4; /* 3 */
145
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
146
+ font-feature-settings: normal; /* 5 */
147
+ font-variation-settings: normal; /* 6 */
148
+ -webkit-tap-highlight-color: transparent; /* 7 */
149
+ }
150
+
151
+ /*
152
+ 1. Remove the margin in all browsers.
153
+ 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
154
+ */
155
+
156
+ body {
157
+ margin: 0; /* 1 */
158
+ line-height: inherit; /* 2 */
159
+ }
160
+
161
+ /*
162
+ 1. Add the correct height in Firefox.
163
+ 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
164
+ 3. Ensure horizontal rules are visible by default.
165
+ */
166
+
167
+ hr {
168
+ height: 0; /* 1 */
169
+ color: inherit; /* 2 */
170
+ border-top-width: 1px; /* 3 */
171
+ }
172
+
173
+ /*
174
+ Add the correct text decoration in Chrome, Edge, and Safari.
175
+ */
176
+
177
+ abbr:where([title]) {
178
+ -webkit-text-decoration: underline dotted;
179
+ text-decoration: underline dotted;
180
+ }
181
+
182
+ /*
183
+ Remove the default font size and weight for headings.
184
+ */
185
+
186
+ h1,
187
+ h2,
188
+ h3,
189
+ h4,
190
+ h5,
191
+ h6 {
192
+ font-size: inherit;
193
+ font-weight: inherit;
194
+ }
195
+
196
+ /*
197
+ Reset links to optimize for opt-in styling instead of opt-out.
198
+ */
199
+
200
+ a {
201
+ color: inherit;
202
+ text-decoration: inherit;
203
+ }
204
+
205
+ /*
206
+ Add the correct font weight in Edge and Safari.
207
+ */
208
+
209
+ b,
210
+ strong {
211
+ font-weight: bolder;
212
+ }
213
+
214
+ /*
215
+ 1. Use the user's configured `mono` font-family by default.
216
+ 2. Use the user's configured `mono` font-feature-settings by default.
217
+ 3. Use the user's configured `mono` font-variation-settings by default.
218
+ 4. Correct the odd `em` font sizing in all browsers.
219
+ */
220
+
221
+ code,
222
+ kbd,
223
+ samp,
224
+ pre {
225
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
226
+ font-feature-settings: normal; /* 2 */
227
+ font-variation-settings: normal; /* 3 */
228
+ font-size: 1em; /* 4 */
229
+ }
230
+
231
+ /*
232
+ Add the correct font size in all browsers.
233
+ */
234
+
235
+ small {
236
+ font-size: 80%;
237
+ }
238
+
239
+ /*
240
+ Prevent `sub` and `sup` elements from affecting the line height in all browsers.
241
+ */
242
+
243
+ sub,
244
+ sup {
245
+ font-size: 75%;
246
+ line-height: 0;
247
+ position: relative;
248
+ vertical-align: baseline;
249
+ }
250
+
251
+ sub {
252
+ bottom: -0.25em;
253
+ }
254
+
255
+ sup {
256
+ top: -0.5em;
257
+ }
258
+
259
+ /*
260
+ 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
261
+ 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
262
+ 3. Remove gaps between table borders by default.
263
+ */
264
+
265
+ table {
266
+ text-indent: 0; /* 1 */
267
+ border-color: inherit; /* 2 */
268
+ border-collapse: collapse; /* 3 */
269
+ }
270
+
271
+ /*
272
+ 1. Change the font styles in all browsers.
273
+ 2. Remove the margin in Firefox and Safari.
274
+ 3. Remove default padding in all browsers.
275
+ */
276
+
277
+ button,
278
+ input,
279
+ optgroup,
280
+ select,
281
+ textarea {
282
+ font-family: inherit; /* 1 */
283
+ font-feature-settings: inherit; /* 1 */
284
+ font-variation-settings: inherit; /* 1 */
285
+ font-size: 100%; /* 1 */
286
+ font-weight: inherit; /* 1 */
287
+ line-height: inherit; /* 1 */
288
+ letter-spacing: inherit; /* 1 */
289
+ color: inherit; /* 1 */
290
+ margin: 0; /* 2 */
291
+ padding: 0; /* 3 */
292
+ }
293
+
294
+ /*
295
+ Remove the inheritance of text transform in Edge and Firefox.
296
+ */
297
+
298
+ button,
299
+ select {
300
+ text-transform: none;
301
+ }
302
+
303
+ /*
304
+ 1. Correct the inability to style clickable types in iOS and Safari.
305
+ 2. Remove default button styles.
306
+ */
307
+
308
+ button,
309
+ input:where([type='button']),
310
+ input:where([type='reset']),
311
+ input:where([type='submit']) {
312
+ -webkit-appearance: button; /* 1 */
313
+ background-color: transparent; /* 2 */
314
+ background-image: none; /* 2 */
315
+ }
316
+
317
+ /*
318
+ Use the modern Firefox focus style for all focusable elements.
319
+ */
320
+
321
+ :-moz-focusring {
322
+ outline: auto;
323
+ }
324
+
325
+ /*
326
+ Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
327
+ */
328
+
329
+ :-moz-ui-invalid {
330
+ box-shadow: none;
331
+ }
332
+
333
+ /*
334
+ Add the correct vertical alignment in Chrome and Firefox.
335
+ */
336
+
337
+ progress {
338
+ vertical-align: baseline;
339
+ }
340
+
341
+ /*
342
+ Correct the cursor style of increment and decrement buttons in Safari.
343
+ */
344
+
345
+ ::-webkit-inner-spin-button,
346
+ ::-webkit-outer-spin-button {
347
+ height: auto;
348
+ }
349
+
350
+ /*
351
+ 1. Correct the odd appearance in Chrome and Safari.
352
+ 2. Correct the outline style in Safari.
353
+ */
354
+
355
+ [type='search'] {
356
+ -webkit-appearance: textfield; /* 1 */
357
+ outline-offset: -2px; /* 2 */
358
+ }
359
+
360
+ /*
361
+ Remove the inner padding in Chrome and Safari on macOS.
362
+ */
363
+
364
+ ::-webkit-search-decoration {
365
+ -webkit-appearance: none;
366
+ }
367
+
368
+ /*
369
+ 1. Correct the inability to style clickable types in iOS and Safari.
370
+ 2. Change font properties to `inherit` in Safari.
371
+ */
372
+
373
+ ::-webkit-file-upload-button {
374
+ -webkit-appearance: button; /* 1 */
375
+ font: inherit; /* 2 */
376
+ }
377
+
378
+ /*
379
+ Add the correct display in Chrome and Safari.
380
+ */
381
+
382
+ summary {
383
+ display: list-item;
384
+ }
385
+
386
+ /*
387
+ Removes the default spacing and border for appropriate elements.
388
+ */
389
+
390
+ blockquote,
391
+ dl,
392
+ dd,
393
+ h1,
394
+ h2,
395
+ h3,
396
+ h4,
397
+ h5,
398
+ h6,
399
+ hr,
400
+ figure,
401
+ p,
402
+ pre {
403
+ margin: 0;
404
+ }
405
+
406
+ fieldset {
407
+ margin: 0;
408
+ padding: 0;
409
+ }
410
+
411
+ legend {
412
+ padding: 0;
413
+ }
414
+
415
+ ol,
416
+ ul,
417
+ menu {
418
+ list-style: none;
419
+ margin: 0;
420
+ padding: 0;
421
+ }
422
+
423
+ /*
424
+ Reset default styling for dialogs.
425
+ */
426
+ dialog {
427
+ padding: 0;
428
+ }
429
+
430
+ /*
431
+ Prevent resizing textareas horizontally by default.
432
+ */
433
+
434
+ textarea {
435
+ resize: vertical;
436
+ }
437
+
438
+ /*
439
+ 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
440
+ 2. Set the default placeholder color to the user's configured gray 400 color.
441
+ */
442
+
443
+ input::-moz-placeholder, textarea::-moz-placeholder {
444
+ opacity: 1; /* 1 */
445
+ color: #9ca3af; /* 2 */
446
+ }
447
+
448
+ input::placeholder,
449
+ textarea::placeholder {
450
+ opacity: 1; /* 1 */
451
+ color: #9ca3af; /* 2 */
452
+ }
453
+
454
+ /*
455
+ Set the default cursor for buttons.
456
+ */
457
+
458
+ button,
459
+ [role="button"] {
460
+ cursor: pointer;
461
+ }
462
+
463
+ /*
464
+ Make sure disabled buttons don't get the pointer cursor.
465
+ */
466
+ :disabled {
467
+ cursor: default;
468
+ }
469
+
470
+ /*
471
+ 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
472
+ 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
473
+ This can trigger a poorly considered lint error in some tools but is included by design.
474
+ */
475
+
476
+ img,
477
+ svg,
478
+ video,
479
+ canvas,
480
+ audio,
481
+ iframe,
482
+ embed,
483
+ object {
484
+ display: block; /* 1 */
485
+ vertical-align: middle; /* 2 */
486
+ }
487
+
488
+ /*
489
+ Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
490
+ */
491
+
492
+ img,
493
+ video {
494
+ max-width: 100%;
495
+ height: auto;
496
+ }
497
+
498
+ /* Make elements with the HTML hidden attribute stay hidden by default */
499
+ [hidden]:where(:not([hidden="until-found"])) {
500
+ display: none;
501
+ }
502
+ .\!container {
503
+ width: 100% !important;
504
+ }
505
+ .container {
506
+ width: 100%;
507
+ }
508
+ @media (min-width: 640px) {
509
+
510
+ .\!container {
511
+ max-width: 640px !important;
512
+ }
513
+
514
+ .container {
515
+ max-width: 640px;
516
+ }
517
+ }
518
+ @media (min-width: 768px) {
519
+
520
+ .\!container {
521
+ max-width: 768px !important;
522
+ }
523
+
524
+ .container {
525
+ max-width: 768px;
526
+ }
527
+ }
528
+ @media (min-width: 1024px) {
529
+
530
+ .\!container {
531
+ max-width: 1024px !important;
532
+ }
533
+
534
+ .container {
535
+ max-width: 1024px;
536
+ }
537
+ }
538
+ @media (min-width: 1280px) {
539
+
540
+ .\!container {
541
+ max-width: 1280px !important;
542
+ }
543
+
544
+ .container {
545
+ max-width: 1280px;
546
+ }
547
+ }
548
+ @media (min-width: 1536px) {
549
+
550
+ .\!container {
551
+ max-width: 1536px !important;
552
+ }
553
+
554
+ .container {
555
+ max-width: 1536px;
556
+ }
557
+ }
558
+ .static {
559
+ position: static;
560
+ }
561
+ .absolute {
562
+ position: absolute;
563
+ }
564
+ .relative {
565
+ position: relative;
566
+ }
567
+ .block {
568
+ display: block;
569
+ }
570
+ .inline {
571
+ display: inline;
572
+ }
573
+ .transform {
574
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
575
+ }
576
+ .bg-slate-950 {
577
+ --tw-bg-opacity: 1;
578
+ background-color: rgb(2 6 23 / var(--tw-bg-opacity, 1));
579
+ }
580
+ .text-slate-100 {
581
+ --tw-text-opacity: 1;
582
+ color: rgb(241 245 249 / var(--tw-text-opacity, 1));
583
+ }
584
+ .filter {
585
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
586
+ }
587
+
588
+ :root {
589
+ --bg-canvas: #111318;
590
+ --bg-panel: #171a21;
591
+ --bg-panel-raised: #1e2530;
592
+ --bg-hover: #2b3444;
593
+ --border-subtle: rgba(255, 255, 255, 0.08);
594
+ --border-strong: rgba(255, 255, 255, 0.18);
595
+ --text-primary: #f4f6fb;
596
+ --text-secondary: #b8c0d4;
597
+ --text-muted: #8792ac;
598
+ --accent: #3b82f6;
599
+ --accent-strong: #2563eb;
600
+ --success: #22c55e;
601
+ --danger: #ef4444;
602
+ --warning: #f59e0b;
603
+ --font-body: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;
604
+ --font-mono: 'IBM Plex Mono', 'SFMono-Regular', ui-monospace, monospace;
605
+ }
606
+
607
+ :root.light {
608
+ --bg-canvas: #f2f5fb;
609
+ --bg-panel: #ffffff;
610
+ --bg-panel-raised: #f8faff;
611
+ --bg-hover: #edf3ff;
612
+ --border-subtle: rgba(31, 41, 55, 0.12);
613
+ --border-strong: rgba(31, 41, 55, 0.22);
614
+ --text-primary: #111827;
615
+ --text-secondary: #334155;
616
+ --text-muted: #64748b;
617
+ --accent: #2563eb;
618
+ --accent-strong: #1d4ed8;
619
+ }
620
+
621
+ * {
622
+ box-sizing: border-box;
623
+ }
624
+
625
+ html,
626
+ body,
627
+ #root {
628
+ margin: 0;
629
+ width: 100%;
630
+ height: 100%;
631
+ }
632
+
633
+ body {
634
+ background: radial-gradient(circle at top right, rgba(59, 130, 246, 0.16), transparent 45%),
635
+ var(--bg-canvas);
636
+ color: var(--text-primary);
637
+ font-family: var(--font-body);
638
+ }
639
+
640
+ button,
641
+ input,
642
+ select {
643
+ font: inherit;
644
+ }
645
+
646
+ .layout-shell {
647
+ display: flex;
648
+ width: 100%;
649
+ height: 100%;
650
+ }
651
+
652
+ .sidebar-shell {
653
+ display: flex;
654
+ flex-direction: column;
655
+ width: 320px;
656
+ border-right: 1px solid var(--border-subtle);
657
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), transparent), var(--bg-panel);
658
+ }
659
+
660
+ .sidebar-header {
661
+ padding: 16px;
662
+ border-bottom: 1px solid var(--border-subtle);
663
+ }
664
+
665
+ .sidebar-title {
666
+ margin: 0;
667
+ font-size: 1rem;
668
+ letter-spacing: 0.02em;
669
+ }
670
+
671
+ .sidebar-subtitle {
672
+ margin: 4px 0 0;
673
+ font-size: 0.82rem;
674
+ color: var(--text-muted);
675
+ }
676
+
677
+ .sidebar-controls {
678
+ display: grid;
679
+ gap: 8px;
680
+ padding: 12px 16px;
681
+ border-bottom: 1px solid var(--border-subtle);
682
+ }
683
+
684
+ .sidebar-label {
685
+ font-size: 0.75rem;
686
+ color: var(--text-muted);
687
+ text-transform: uppercase;
688
+ letter-spacing: 0.06em;
689
+ }
690
+
691
+ .app-select,
692
+ .app-input {
693
+ width: 100%;
694
+ padding: 8px 10px;
695
+ border-radius: 8px;
696
+ border: 1px solid var(--border-subtle);
697
+ color: var(--text-primary);
698
+ background: var(--bg-panel-raised);
699
+ }
700
+
701
+ .app-select:focus,
702
+ .app-input:focus {
703
+ outline: 1px solid var(--accent);
704
+ border-color: var(--accent);
705
+ }
706
+
707
+ .sidebar-loading,
708
+ .sidebar-empty {
709
+ padding: 16px;
710
+ color: var(--text-muted);
711
+ font-size: 0.9rem;
712
+ }
713
+
714
+ .session-groups {
715
+ flex: 1;
716
+ overflow: auto;
717
+ padding: 8px;
718
+ }
719
+
720
+ .session-group {
721
+ margin-bottom: 16px;
722
+ }
723
+
724
+ .session-group-title {
725
+ margin: 4px 8px 8px;
726
+ font-size: 0.72rem;
727
+ font-weight: 600;
728
+ color: var(--text-muted);
729
+ text-transform: uppercase;
730
+ letter-spacing: 0.08em;
731
+ }
732
+
733
+ .session-group-list {
734
+ display: grid;
735
+ gap: 6px;
736
+ }
737
+
738
+ .session-item {
739
+ width: 100%;
740
+ border: 1px solid var(--border-subtle);
741
+ background: var(--bg-panel-raised);
742
+ border-radius: 10px;
743
+ padding: 8px;
744
+ text-align: left;
745
+ cursor: pointer;
746
+ transition: background 120ms ease, border-color 120ms ease;
747
+ }
748
+
749
+ .session-item:hover {
750
+ background: var(--bg-hover);
751
+ }
752
+
753
+ .session-item.active {
754
+ border-color: var(--accent);
755
+ box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.35);
756
+ }
757
+
758
+ .session-item-header {
759
+ display: flex;
760
+ justify-content: space-between;
761
+ align-items: center;
762
+ gap: 8px;
763
+ margin-bottom: 6px;
764
+ }
765
+
766
+ .session-item-header-left {
767
+ display: inline-flex;
768
+ align-items: center;
769
+ gap: 7px;
770
+ min-width: 0;
771
+ }
772
+
773
+ .session-model-badge {
774
+ padding: 2px 6px;
775
+ border-radius: 999px;
776
+ font-size: 0.7rem;
777
+ line-height: 1.25;
778
+ white-space: nowrap;
779
+ background: rgba(59, 130, 246, 0.2);
780
+ border: 1px solid rgba(59, 130, 246, 0.4);
781
+ color: #dbeafe;
782
+ }
783
+
784
+ :root.light .session-model-badge {
785
+ color: #1e3a8a;
786
+ }
787
+
788
+ .session-update-dot {
789
+ width: 7px;
790
+ height: 7px;
791
+ border-radius: 999px;
792
+ background: #22c55e;
793
+ box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
794
+ flex-shrink: 0;
795
+ }
796
+
797
+ .session-time {
798
+ font-size: 0.72rem;
799
+ color: var(--text-muted);
800
+ flex-shrink: 0;
801
+ }
802
+
803
+ .session-item-meta {
804
+ display: grid;
805
+ justify-items: end;
806
+ gap: 1px;
807
+ }
808
+
809
+ .session-size {
810
+ font-size: 0.68rem;
811
+ color: var(--text-muted);
812
+ }
813
+
814
+ .session-preview {
815
+ margin: 0;
816
+ color: var(--text-secondary);
817
+ font-size: 0.82rem;
818
+ line-height: 1.25;
819
+ }
820
+
821
+ .content-shell {
822
+ flex: 1;
823
+ min-width: 0;
824
+ display: flex;
825
+ flex-direction: column;
826
+ }
827
+
828
+ .tabbar-shell {
829
+ display: flex;
830
+ flex-direction: column;
831
+ gap: 8px;
832
+ padding: 8px 10px;
833
+ border-bottom: 1px solid var(--border-subtle);
834
+ background: var(--bg-panel);
835
+ }
836
+
837
+ .tabbar-main-row {
838
+ display: flex;
839
+ align-items: center;
840
+ gap: 8px;
841
+ min-height: 34px;
842
+ }
843
+
844
+ .tabbar-main-tabs {
845
+ display: flex;
846
+ align-items: center;
847
+ gap: 6px;
848
+ }
849
+
850
+ .tabbar-icon-button {
851
+ width: 32px;
852
+ height: 32px;
853
+ border: 1px solid var(--border-subtle);
854
+ background: var(--bg-panel-raised);
855
+ color: var(--text-secondary);
856
+ border-radius: 8px;
857
+ display: inline-flex;
858
+ align-items: center;
859
+ justify-content: center;
860
+ cursor: pointer;
861
+ flex-shrink: 0;
862
+ }
863
+
864
+ .tabbar-action {
865
+ border: 1px solid var(--border-subtle);
866
+ background: var(--bg-panel-raised);
867
+ color: var(--text-secondary);
868
+ border-radius: 8px;
869
+ padding: 6px 10px;
870
+ cursor: pointer;
871
+ }
872
+
873
+ .tabbar-main-tabs .tabbar-action.active {
874
+ color: var(--text-primary);
875
+ border-color: var(--accent);
876
+ box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.32);
877
+ }
878
+
879
+ .tabbar-action.primary {
880
+ color: white;
881
+ border-color: var(--accent-strong);
882
+ background: var(--accent-strong);
883
+ }
884
+
885
+ .tabbar-secondary-row {
886
+ min-height: 34px;
887
+ }
888
+
889
+ .tabbar-tabs {
890
+ display: flex;
891
+ align-items: center;
892
+ gap: 6px;
893
+ overflow-x: auto;
894
+ white-space: nowrap;
895
+ }
896
+
897
+ .tab-chip {
898
+ display: inline-flex;
899
+ align-items: center;
900
+ border: 1px solid var(--border-subtle);
901
+ border-radius: 8px;
902
+ background: var(--bg-panel-raised);
903
+ }
904
+
905
+ .tab-chip.active {
906
+ border-color: var(--accent);
907
+ }
908
+
909
+ .tab-chip-button {
910
+ border: 0;
911
+ background: transparent;
912
+ color: var(--text-secondary);
913
+ padding: 6px 10px;
914
+ cursor: pointer;
915
+ }
916
+
917
+ .tab-chip.active .tab-chip-button {
918
+ color: var(--text-primary);
919
+ }
920
+
921
+ .tab-chip-close {
922
+ border: 0;
923
+ border-left: 1px solid var(--border-subtle);
924
+ background: transparent;
925
+ color: var(--text-muted);
926
+ width: 28px;
927
+ height: 28px;
928
+ cursor: pointer;
929
+ }
930
+
931
+ .tabbar-icon-button:hover,
932
+ .tabbar-action:not(.primary):hover {
933
+ background: var(--bg-hover);
934
+ }
935
+
936
+ .tabbar-icon-button:focus-visible,
937
+ .tabbar-action:focus-visible,
938
+ .tab-chip-button:focus-visible,
939
+ .tab-chip-close:focus-visible {
940
+ outline: 1px solid var(--accent);
941
+ outline-offset: 1px;
942
+ }
943
+
944
+ .content-body {
945
+ flex: 1;
946
+ min-height: 0;
947
+ overflow: auto;
948
+ }
949
+
950
+ .dashboard-shell,
951
+ .settings-shell {
952
+ max-width: 980px;
953
+ margin: 0 auto;
954
+ padding: 24px;
955
+ }
956
+
957
+ .dashboard-header h2,
958
+ .settings-header h2 {
959
+ margin: 0;
960
+ font-size: 1.25rem;
961
+ }
962
+
963
+ .dashboard-header p,
964
+ .settings-header p {
965
+ margin: 6px 0 0;
966
+ color: var(--text-muted);
967
+ }
968
+
969
+ .dashboard-stats {
970
+ display: grid;
971
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
972
+ gap: 12px;
973
+ margin-top: 16px;
974
+ }
975
+
976
+ .stat-card {
977
+ border: 1px solid var(--border-subtle);
978
+ background: var(--bg-panel);
979
+ border-radius: 12px;
980
+ padding: 14px;
981
+ }
982
+
983
+ .stat-label {
984
+ font-size: 0.75rem;
985
+ color: var(--text-muted);
986
+ text-transform: uppercase;
987
+ letter-spacing: 0.07em;
988
+ }
989
+
990
+ .stat-value {
991
+ display: block;
992
+ margin-top: 8px;
993
+ font-size: 1.45rem;
994
+ }
995
+
996
+ .dashboard-list,
997
+ .settings-section {
998
+ margin-top: 20px;
999
+ border: 1px solid var(--border-subtle);
1000
+ background: var(--bg-panel);
1001
+ border-radius: 12px;
1002
+ padding: 14px;
1003
+ }
1004
+
1005
+ .dashboard-section-header {
1006
+ display: flex;
1007
+ justify-content: space-between;
1008
+ align-items: center;
1009
+ gap: 10px;
1010
+ margin-bottom: 12px;
1011
+ }
1012
+
1013
+ .dashboard-section-header h3,
1014
+ .settings-section h3 {
1015
+ margin: 0;
1016
+ font-size: 0.95rem;
1017
+ }
1018
+
1019
+ .dashboard-session-list {
1020
+ list-style: none;
1021
+ margin: 0;
1022
+ padding: 0;
1023
+ display: grid;
1024
+ gap: 8px;
1025
+ }
1026
+
1027
+ .dashboard-session-item {
1028
+ width: 100%;
1029
+ border: 1px solid var(--border-subtle);
1030
+ border-radius: 8px;
1031
+ background: var(--bg-panel-raised);
1032
+ padding: 8px 10px;
1033
+ text-align: left;
1034
+ cursor: pointer;
1035
+ }
1036
+
1037
+ .dashboard-session-header {
1038
+ display: flex;
1039
+ justify-content: space-between;
1040
+ align-items: baseline;
1041
+ gap: 10px;
1042
+ }
1043
+
1044
+ .dashboard-session-title {
1045
+ display: block;
1046
+ color: var(--text-primary);
1047
+ font-size: 0.84rem;
1048
+ overflow: hidden;
1049
+ text-overflow: ellipsis;
1050
+ white-space: nowrap;
1051
+ }
1052
+
1053
+ .dashboard-session-time {
1054
+ color: var(--text-muted);
1055
+ font-family: var(--font-mono);
1056
+ font-size: 0.72rem;
1057
+ white-space: nowrap;
1058
+ }
1059
+
1060
+ .dashboard-session-meta-right {
1061
+ display: inline-flex;
1062
+ align-items: center;
1063
+ gap: 7px;
1064
+ flex-shrink: 0;
1065
+ }
1066
+
1067
+ .dashboard-session-size {
1068
+ color: var(--text-muted);
1069
+ font-family: var(--font-mono);
1070
+ font-size: 0.72rem;
1071
+ white-space: nowrap;
1072
+ }
1073
+
1074
+ .dashboard-session-meta {
1075
+ display: block;
1076
+ margin-top: 4px;
1077
+ color: var(--text-muted);
1078
+ font-family: var(--font-mono);
1079
+ font-size: 0.73rem;
1080
+ }
1081
+
1082
+ .theme-toggle-grid {
1083
+ display: grid;
1084
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1085
+ gap: 8px;
1086
+ }
1087
+
1088
+ .theme-option {
1089
+ display: flex;
1090
+ align-items: center;
1091
+ gap: 6px;
1092
+ border: 1px solid var(--border-subtle);
1093
+ border-radius: 8px;
1094
+ padding: 8px;
1095
+ }
1096
+
1097
+ .settings-toggle {
1098
+ display: inline-flex;
1099
+ align-items: center;
1100
+ gap: 8px;
1101
+ border: 1px solid var(--border-subtle);
1102
+ border-radius: 8px;
1103
+ padding: 8px 10px;
1104
+ }
1105
+
1106
+ .settings-actions {
1107
+ margin-top: 12px;
1108
+ display: flex;
1109
+ justify-content: flex-end;
1110
+ }
1111
+
1112
+ .empty-view {
1113
+ display: grid;
1114
+ gap: 8px;
1115
+ align-items: center;
1116
+ justify-items: center;
1117
+ min-height: 260px;
1118
+ padding: 24px;
1119
+ }
1120
+
1121
+ .empty-title {
1122
+ margin: 0;
1123
+ font-size: 1rem;
1124
+ }
1125
+
1126
+ .empty-copy {
1127
+ margin: 0;
1128
+ color: var(--text-muted);
1129
+ text-align: center;
1130
+ }
1131
+
1132
+ .error-actions {
1133
+ display: flex;
1134
+ gap: 8px;
1135
+ }
1136
+
1137
+ .dialog-root {
1138
+ position: fixed;
1139
+ inset: 0;
1140
+ z-index: 100;
1141
+ display: grid;
1142
+ place-items: center;
1143
+ }
1144
+
1145
+ .dialog-backdrop {
1146
+ position: absolute;
1147
+ inset: 0;
1148
+ border: 0;
1149
+ background: rgba(2, 6, 23, 0.7);
1150
+ }
1151
+
1152
+ .dialog-panel {
1153
+ position: relative;
1154
+ width: min(420px, calc(100% - 24px));
1155
+ border: 1px solid var(--border-strong);
1156
+ border-radius: 12px;
1157
+ background: var(--bg-panel);
1158
+ padding: 18px;
1159
+ }
1160
+
1161
+ .dialog-title {
1162
+ margin: 0;
1163
+ font-size: 1rem;
1164
+ }
1165
+
1166
+ .dialog-copy {
1167
+ margin: 8px 0 0;
1168
+ color: var(--text-secondary);
1169
+ }
1170
+
1171
+ .dialog-actions {
1172
+ display: flex;
1173
+ justify-content: flex-end;
1174
+ gap: 8px;
1175
+ margin-top: 16px;
1176
+ }
1177
+
1178
+ @media (max-width: 900px) {
1179
+ .sidebar-shell {
1180
+ width: 280px;
1181
+ }
1182
+ }
1183
+
1184
+ @media (max-width: 760px) {
1185
+ .layout-shell {
1186
+ flex-direction: column;
1187
+ }
1188
+
1189
+ .sidebar-shell {
1190
+ width: 100%;
1191
+ max-height: 38vh;
1192
+ border-right: 0;
1193
+ border-bottom: 1px solid var(--border-subtle);
1194
+ }
1195
+
1196
+ .tabbar-shell {
1197
+ gap: 6px;
1198
+ }
1199
+
1200
+ .tabbar-main-row {
1201
+ flex-wrap: wrap;
1202
+ }
1203
+
1204
+ .tabbar-main-tabs {
1205
+ max-width: 100%;
1206
+ overflow-x: auto;
1207
+ }
1208
+ }
1209
+
1210
+ .chat-shell {
1211
+ height: 100%;
1212
+ overflow: auto;
1213
+ padding: 18px;
1214
+ }
1215
+
1216
+ .chat-row {
1217
+ padding-bottom: 14px;
1218
+ }
1219
+
1220
+ .chat-user-row {
1221
+ display: flex;
1222
+ justify-content: flex-end;
1223
+ }
1224
+
1225
+ .chat-user-bubble {
1226
+ max-width: min(760px, 92%);
1227
+ border: 1px solid var(--border-subtle);
1228
+ background: rgba(59, 130, 246, 0.16);
1229
+ border-radius: 14px;
1230
+ padding: 10px 12px;
1231
+ }
1232
+
1233
+ .chat-attachments {
1234
+ display: grid;
1235
+ gap: 8px;
1236
+ margin-top: 10px;
1237
+ }
1238
+
1239
+ .chat-attachment-card {
1240
+ border: 1px solid var(--border-subtle);
1241
+ border-radius: 10px;
1242
+ overflow: hidden;
1243
+ background: var(--bg-panel);
1244
+ }
1245
+
1246
+ .chat-attachment-header {
1247
+ display: flex;
1248
+ justify-content: space-between;
1249
+ align-items: center;
1250
+ gap: 8px;
1251
+ padding: 8px 10px;
1252
+ border-bottom: 1px solid var(--border-subtle);
1253
+ background: var(--bg-panel-raised);
1254
+ }
1255
+
1256
+ .chat-attachment-kind {
1257
+ font-size: 0.75rem;
1258
+ color: var(--text-muted);
1259
+ text-transform: uppercase;
1260
+ letter-spacing: 0.05em;
1261
+ }
1262
+
1263
+ .chat-attachment-meta {
1264
+ display: inline-flex;
1265
+ align-items: center;
1266
+ gap: 8px;
1267
+ font-size: 0.72rem;
1268
+ color: var(--text-muted);
1269
+ }
1270
+
1271
+ .chat-attachment-meta code {
1272
+ font-family: var(--font-mono);
1273
+ }
1274
+
1275
+ .chat-attachment-note {
1276
+ margin: 0;
1277
+ padding: 10px;
1278
+ color: var(--text-muted);
1279
+ font-size: 0.78rem;
1280
+ }
1281
+
1282
+ .chat-attachment-image-wrap {
1283
+ padding: 10px;
1284
+ }
1285
+
1286
+ .chat-attachment-image {
1287
+ display: block;
1288
+ width: 100%;
1289
+ max-height: 340px;
1290
+ -o-object-fit: contain;
1291
+ object-fit: contain;
1292
+ border: 1px solid var(--border-subtle);
1293
+ border-radius: 8px;
1294
+ background: rgba(15, 23, 42, 0.4);
1295
+ }
1296
+
1297
+ .chat-attachment-markdown {
1298
+ padding: 8px 10px;
1299
+ }
1300
+
1301
+ .chat-attachment-text {
1302
+ margin: 0;
1303
+ padding: 10px;
1304
+ max-height: 280px;
1305
+ overflow: auto;
1306
+ white-space: pre-wrap;
1307
+ overflow-wrap: anywhere;
1308
+ font-family: var(--font-mono);
1309
+ font-size: 0.78rem;
1310
+ color: var(--text-secondary);
1311
+ }
1312
+
1313
+ .chat-user-time {
1314
+ display: block;
1315
+ margin-top: 8px;
1316
+ font-size: 0.72rem;
1317
+ color: var(--text-muted);
1318
+ text-align: right;
1319
+ }
1320
+
1321
+ .chat-ai-card {
1322
+ width: min(840px, 100%);
1323
+ border: 1px solid var(--border-subtle);
1324
+ border-radius: 14px;
1325
+ background: var(--bg-panel);
1326
+ padding: 12px;
1327
+ }
1328
+
1329
+ .chat-ai-header {
1330
+ display: flex;
1331
+ justify-content: space-between;
1332
+ align-items: center;
1333
+ gap: 8px;
1334
+ margin-bottom: 10px;
1335
+ }
1336
+
1337
+ .chat-ai-title {
1338
+ margin: 0;
1339
+ font-size: 0.82rem;
1340
+ text-transform: uppercase;
1341
+ letter-spacing: 0.06em;
1342
+ color: var(--text-muted);
1343
+ }
1344
+
1345
+ .chat-ai-time {
1346
+ font-size: 0.75rem;
1347
+ color: var(--text-muted);
1348
+ }
1349
+
1350
+ .chat-item-panel {
1351
+ border: 1px solid var(--border-subtle);
1352
+ border-radius: 10px;
1353
+ overflow: hidden;
1354
+ margin-bottom: 8px;
1355
+ }
1356
+
1357
+ .chat-item-panel.thinking {
1358
+ border-color: rgba(245, 158, 11, 0.3);
1359
+ background: rgba(245, 158, 11, 0.08);
1360
+ }
1361
+
1362
+ .chat-item-header {
1363
+ display: flex;
1364
+ justify-content: space-between;
1365
+ width: 100%;
1366
+ border: 0;
1367
+ background: var(--bg-panel-raised);
1368
+ color: var(--text-secondary);
1369
+ padding: 8px 10px;
1370
+ cursor: pointer;
1371
+ }
1372
+
1373
+ .chat-item-panel.thinking .chat-item-header {
1374
+ background: transparent;
1375
+ }
1376
+
1377
+ .chat-item-body {
1378
+ padding: 10px;
1379
+ color: var(--text-secondary);
1380
+ }
1381
+
1382
+ .chat-item-panel.thinking .chat-item-body {
1383
+ font-size: 0.78rem;
1384
+ }
1385
+
1386
+ .chat-item-panel.thinking.compact .chat-item-body {
1387
+ padding: 8px 10px;
1388
+ }
1389
+
1390
+ .thinking-compact-body {
1391
+ display: flex;
1392
+ align-items: flex-start;
1393
+ gap: 8px;
1394
+ }
1395
+
1396
+ .thinking-compact-body.single {
1397
+ align-items: center;
1398
+ }
1399
+
1400
+ .thinking-header-main {
1401
+ display: inline-flex;
1402
+ align-items: center;
1403
+ gap: 6px;
1404
+ }
1405
+
1406
+ .thinking-icon-wrap {
1407
+ display: inline-flex;
1408
+ align-items: center;
1409
+ justify-content: center;
1410
+ color: var(--text-muted);
1411
+ flex-shrink: 0;
1412
+ }
1413
+
1414
+ .chat-item-chevron,
1415
+ .chat-thinking-indicator {
1416
+ font-size: 0.75rem;
1417
+ color: var(--text-muted);
1418
+ }
1419
+
1420
+ .thinking-preview {
1421
+ margin: 0;
1422
+ }
1423
+
1424
+ .thinking-compact-list,
1425
+ .thinking-expanded-list {
1426
+ margin: 0;
1427
+ padding: 0;
1428
+ list-style: none;
1429
+ display: grid;
1430
+ gap: 4px;
1431
+ width: 100%;
1432
+ }
1433
+
1434
+ .thinking-dash-item {
1435
+ margin: 0;
1436
+ display: grid;
1437
+ grid-template-columns: auto minmax(0, 1fr);
1438
+ gap: 6px;
1439
+ align-items: flex-start;
1440
+ }
1441
+
1442
+ .thinking-dash-prefix {
1443
+ color: var(--text-muted);
1444
+ line-height: 1.4;
1445
+ }
1446
+
1447
+ .thinking-plain-text {
1448
+ display: block;
1449
+ margin: 0;
1450
+ font-size: 0.78rem;
1451
+ font-weight: 400;
1452
+ line-height: 1.4;
1453
+ white-space: pre-wrap;
1454
+ }
1455
+
1456
+ .chat-tools-section {
1457
+ margin-top: 10px;
1458
+ }
1459
+
1460
+ .chat-tools-title {
1461
+ margin: 0 0 8px;
1462
+ font-size: 0.78rem;
1463
+ color: var(--text-muted);
1464
+ text-transform: uppercase;
1465
+ letter-spacing: 0.06em;
1466
+ }
1467
+
1468
+ .chat-tools-list {
1469
+ display: grid;
1470
+ gap: 8px;
1471
+ }
1472
+
1473
+ .trace-card {
1474
+ border: 1px solid var(--border-subtle);
1475
+ border-radius: 10px;
1476
+ overflow: hidden;
1477
+ }
1478
+
1479
+ .trace-card.error {
1480
+ border-color: rgba(239, 68, 68, 0.45);
1481
+ }
1482
+
1483
+ .trace-group-card {
1484
+ border: 1px solid var(--border-subtle);
1485
+ border-radius: 10px;
1486
+ overflow: hidden;
1487
+ }
1488
+
1489
+ .trace-group-header {
1490
+ width: 100%;
1491
+ border: 0;
1492
+ background: var(--bg-panel-raised);
1493
+ color: var(--text-secondary);
1494
+ display: flex;
1495
+ justify-content: space-between;
1496
+ align-items: center;
1497
+ gap: 8px;
1498
+ padding: 8px 10px;
1499
+ cursor: pointer;
1500
+ }
1501
+
1502
+ .trace-group-body {
1503
+ padding: 8px 10px 10px;
1504
+ background: rgba(0, 0, 0, 0.08);
1505
+ }
1506
+
1507
+ :root.light .trace-group-body {
1508
+ background: rgba(148, 163, 184, 0.08);
1509
+ }
1510
+
1511
+ .trace-header {
1512
+ width: 100%;
1513
+ border: 0;
1514
+ background: var(--bg-panel-raised);
1515
+ color: var(--text-secondary);
1516
+ display: flex;
1517
+ justify-content: space-between;
1518
+ align-items: center;
1519
+ gap: 8px;
1520
+ padding: 8px 10px;
1521
+ cursor: pointer;
1522
+ }
1523
+
1524
+ .trace-card.terminal .trace-header {
1525
+ background: rgba(2, 6, 23, 0.86);
1526
+ }
1527
+
1528
+ :root.light .trace-card.terminal .trace-header {
1529
+ background: #0f172a;
1530
+ color: #e2e8f0;
1531
+ }
1532
+
1533
+ .trace-header-main {
1534
+ display: grid;
1535
+ gap: 2px;
1536
+ min-width: 0;
1537
+ text-align: left;
1538
+ }
1539
+
1540
+ .trace-name {
1541
+ display: inline-flex;
1542
+ align-items: center;
1543
+ gap: 6px;
1544
+ font-family: var(--font-mono);
1545
+ font-size: 0.84rem;
1546
+ }
1547
+
1548
+ .trace-name-icon {
1549
+ color: var(--text-muted);
1550
+ flex-shrink: 0;
1551
+ }
1552
+
1553
+ .trace-command-preview {
1554
+ font-family: var(--font-mono);
1555
+ font-size: 0.72rem;
1556
+ color: var(--text-muted);
1557
+ white-space: nowrap;
1558
+ overflow: hidden;
1559
+ text-overflow: ellipsis;
1560
+ }
1561
+
1562
+ .trace-terminal-line {
1563
+ display: inline-block;
1564
+ max-width: 100%;
1565
+ border: 1px solid rgba(148, 163, 184, 0.35);
1566
+ border-radius: 6px;
1567
+ background: #020617;
1568
+ color: #dbe7ff;
1569
+ padding: 3px 8px;
1570
+ }
1571
+
1572
+ :root.light .trace-terminal-line {
1573
+ border-color: rgba(148, 163, 184, 0.45);
1574
+ background: #111827;
1575
+ color: #e5edf8;
1576
+ }
1577
+
1578
+ .trace-header-meta {
1579
+ display: inline-flex;
1580
+ align-items: center;
1581
+ gap: 7px;
1582
+ flex-shrink: 0;
1583
+ }
1584
+
1585
+ .trace-token-usage {
1586
+ font-size: 0.72rem;
1587
+ color: var(--text-muted);
1588
+ }
1589
+
1590
+ .trace-meta {
1591
+ display: inline-flex;
1592
+ align-items: center;
1593
+ justify-content: center;
1594
+ border: 1px solid currentColor;
1595
+ border-radius: 999px;
1596
+ padding: 2px 7px;
1597
+ color: var(--text-muted);
1598
+ font-size: 0.74rem;
1599
+ }
1600
+
1601
+ .trace-body {
1602
+ display: grid;
1603
+ gap: 8px;
1604
+ padding: 10px;
1605
+ }
1606
+
1607
+ .trace-body h5 {
1608
+ margin: 0;
1609
+ font-size: 0.78rem;
1610
+ color: var(--text-muted);
1611
+ }
1612
+
1613
+ .metrics-pill {
1614
+ display: inline-flex;
1615
+ align-items: center;
1616
+ gap: 5px;
1617
+ border: 1px solid var(--border-subtle);
1618
+ border-radius: 999px;
1619
+ background: var(--bg-panel-raised);
1620
+ padding: 3px 8px;
1621
+ font-size: 0.73rem;
1622
+ color: var(--text-secondary);
1623
+ }
1624
+
1625
+ .metrics-divider {
1626
+ color: var(--text-muted);
1627
+ }
1628
+
1629
+ .chat-system-message {
1630
+ border: 1px dashed var(--border-subtle);
1631
+ border-radius: 8px;
1632
+ padding: 8px 10px;
1633
+ color: var(--text-muted);
1634
+ font-style: italic;
1635
+ }
1636
+
1637
+ .chat-system-prelude {
1638
+ width: min(840px, 100%);
1639
+ border: 1px solid rgba(245, 158, 11, 0.4);
1640
+ border-radius: 10px;
1641
+ background: rgba(245, 158, 11, 0.1);
1642
+ overflow: hidden;
1643
+ }
1644
+
1645
+ .chat-system-prelude.environment_context {
1646
+ border-color: rgba(20, 184, 166, 0.35);
1647
+ background: rgba(20, 184, 166, 0.1);
1648
+ }
1649
+
1650
+ .chat-system-prelude.permissions_instructions {
1651
+ border-color: rgba(59, 130, 246, 0.35);
1652
+ background: rgba(59, 130, 246, 0.1);
1653
+ }
1654
+
1655
+ .chat-system-prelude.collaboration_mode {
1656
+ border-color: rgba(244, 63, 94, 0.35);
1657
+ background: rgba(244, 63, 94, 0.1);
1658
+ }
1659
+
1660
+ .chat-system-prelude.turn_aborted {
1661
+ border-color: rgba(148, 163, 184, 0.45);
1662
+ background: rgba(15, 23, 42, 0.35);
1663
+ }
1664
+
1665
+ :root.light .chat-system-prelude.turn_aborted {
1666
+ background: rgba(148, 163, 184, 0.12);
1667
+ }
1668
+
1669
+ .chat-system-prelude-summary {
1670
+ display: flex;
1671
+ justify-content: space-between;
1672
+ align-items: center;
1673
+ gap: 10px;
1674
+ padding: 8px 10px;
1675
+ cursor: pointer;
1676
+ color: var(--text-secondary);
1677
+ font-size: 0.78rem;
1678
+ list-style: none;
1679
+ }
1680
+
1681
+ .chat-system-prelude-summary::-webkit-details-marker {
1682
+ display: none;
1683
+ }
1684
+
1685
+ .chat-system-prelude-summary-hint {
1686
+ color: var(--text-muted);
1687
+ font-size: 0.72rem;
1688
+ text-transform: uppercase;
1689
+ letter-spacing: 0.05em;
1690
+ }
1691
+
1692
+ .chat-system-prelude-content {
1693
+ margin: 0;
1694
+ padding: 10px;
1695
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
1696
+ color: var(--text-secondary);
1697
+ font-family: var(--font-mono);
1698
+ font-size: 0.75rem;
1699
+ line-height: 1.45;
1700
+ white-space: pre-wrap;
1701
+ overflow-wrap: anywhere;
1702
+ }
1703
+
1704
+ .chat-model-summary {
1705
+ display: flex;
1706
+ justify-content: center;
1707
+ margin: 0 0 10px;
1708
+ }
1709
+
1710
+ .chat-model-summary-label {
1711
+ border: 1px solid var(--border-subtle);
1712
+ border-radius: 999px;
1713
+ background: var(--bg-panel-raised);
1714
+ color: var(--text-secondary);
1715
+ font-size: 0.74rem;
1716
+ padding: 4px 10px;
1717
+ }
1718
+
1719
+ .chat-model-summary-label code {
1720
+ font-family: var(--font-mono);
1721
+ font-size: 0.72rem;
1722
+ }
1723
+
1724
+ .chat-model-change {
1725
+ display: flex;
1726
+ justify-content: center;
1727
+ margin: 4px 0;
1728
+ }
1729
+
1730
+ .chat-model-change-label {
1731
+ border: 1px solid var(--border-subtle);
1732
+ border-radius: 999px;
1733
+ background: var(--bg-panel-raised);
1734
+ color: var(--text-secondary);
1735
+ font-size: 0.74rem;
1736
+ padding: 4px 10px;
1737
+ }
1738
+
1739
+ .chat-model-change-label code {
1740
+ font-family: var(--font-mono);
1741
+ font-size: 0.72rem;
1742
+ }
1743
+
1744
+ .chat-compaction-divider {
1745
+ display: flex;
1746
+ width: 100%;
1747
+ margin: 8px 0;
1748
+ }
1749
+
1750
+ .chat-compaction-divider-label {
1751
+ display: inline-flex;
1752
+ align-items: center;
1753
+ justify-content: center;
1754
+ gap: 6px;
1755
+ width: 100%;
1756
+ border: 1px solid rgba(245, 158, 11, 0.6);
1757
+ border-radius: 11px;
1758
+ background: linear-gradient(180deg, rgba(245, 158, 11, 0.2), rgba(245, 158, 11, 0.13));
1759
+ color: #fbbf24;
1760
+ font-size: 0.84rem;
1761
+ font-weight: 600;
1762
+ padding: 10px 14px;
1763
+ }
1764
+
1765
+ :root.light .chat-compaction-divider-label {
1766
+ background: linear-gradient(180deg, rgba(245, 158, 11, 0.2), rgba(245, 158, 11, 0.14));
1767
+ color: #b45309;
1768
+ }
1769
+
1770
+ .markdown-root {
1771
+ color: var(--text-secondary);
1772
+ line-height: 1.55;
1773
+ }
1774
+
1775
+ .markdown-root h1,
1776
+ .markdown-root h2,
1777
+ .markdown-root h3,
1778
+ .markdown-root h4 {
1779
+ margin: 0.35em 0;
1780
+ color: var(--text-primary);
1781
+ }
1782
+
1783
+ .markdown-root p {
1784
+ margin: 0.45em 0;
1785
+ }
1786
+
1787
+ .markdown-root ul {
1788
+ margin: 0.45em 0;
1789
+ padding-left: 1.2rem;
1790
+ }
1791
+
1792
+ .markdown-root li {
1793
+ margin: 0.2em 0;
1794
+ }
1795
+
1796
+ .markdown-inline-code {
1797
+ font-family: var(--font-mono);
1798
+ font-size: 0.88em;
1799
+ border: 1px solid var(--border-subtle);
1800
+ border-radius: 5px;
1801
+ background: var(--bg-panel-raised);
1802
+ padding: 1px 4px;
1803
+ }
1804
+
1805
+ .markdown-link {
1806
+ color: var(--accent);
1807
+ }
1808
+
1809
+ .code-viewer-shell {
1810
+ border: 1px solid var(--border-subtle);
1811
+ border-radius: 10px;
1812
+ overflow: hidden;
1813
+ background: #0d1119;
1814
+ }
1815
+
1816
+ :root.light .code-viewer-shell {
1817
+ background: #f5f7fd;
1818
+ }
1819
+
1820
+ .code-viewer-header {
1821
+ display: flex;
1822
+ justify-content: space-between;
1823
+ gap: 8px;
1824
+ align-items: center;
1825
+ padding: 6px 10px;
1826
+ border-bottom: 1px solid var(--border-subtle);
1827
+ font-size: 0.75rem;
1828
+ color: var(--text-muted);
1829
+ }
1830
+
1831
+ .code-language {
1832
+ font-family: var(--font-mono);
1833
+ text-transform: uppercase;
1834
+ }
1835
+
1836
+ .code-viewer-pre {
1837
+ margin: 0;
1838
+ max-height: 280px;
1839
+ overflow: auto;
1840
+ }
1841
+
1842
+ .code-line {
1843
+ display: grid;
1844
+ grid-template-columns: 46px minmax(0, 1fr);
1845
+ align-items: baseline;
1846
+ min-height: 1.5rem;
1847
+ }
1848
+
1849
+ .code-line-number {
1850
+ text-align: right;
1851
+ padding-right: 8px;
1852
+ color: #5f6c85;
1853
+ -webkit-user-select: none;
1854
+ -moz-user-select: none;
1855
+ user-select: none;
1856
+ font-family: var(--font-mono);
1857
+ font-size: 0.72rem;
1858
+ }
1859
+
1860
+ .code-line-content {
1861
+ font-family: var(--font-mono);
1862
+ font-size: 0.8rem;
1863
+ color: #dce7fb;
1864
+ white-space: pre;
1865
+ padding-right: 10px;
1866
+ }
1867
+
1868
+ :root.light .code-line-content {
1869
+ color: #0f172a;
1870
+ }
1871
+
1872
+ .code-token.comment {
1873
+ color: #94a3b8;
1874
+ }
1875
+
1876
+ .code-token.string {
1877
+ color: #22c55e;
1878
+ }
1879
+
1880
+ .code-token.number {
1881
+ color: #f59e0b;
1882
+ }
1883
+
1884
+ .code-token.keyword {
1885
+ color: #60a5fa;
1886
+ }
1887
+
1888
+ .diff-shell {
1889
+ border: 1px solid var(--border-subtle);
1890
+ border-radius: 10px;
1891
+ overflow: hidden;
1892
+ }
1893
+
1894
+ .diff-line {
1895
+ display: grid;
1896
+ grid-template-columns: 20px minmax(0, 1fr);
1897
+ gap: 8px;
1898
+ padding: 3px 8px;
1899
+ font-family: var(--font-mono);
1900
+ font-size: 0.78rem;
1901
+ }
1902
+
1903
+ .diff-line.added {
1904
+ background: rgba(34, 197, 94, 0.14);
1905
+ }
1906
+
1907
+ .diff-line.removed {
1908
+ background: rgba(239, 68, 68, 0.14);
1909
+ }
1910
+
1911
+ .diff-prefix {
1912
+ -webkit-user-select: none;
1913
+ -moz-user-select: none;
1914
+ user-select: none;
1915
+ color: var(--text-muted);
1916
+ }