@firstpick/pi-package-webui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1122 @@
1
+ :root {
2
+ color-scheme: dark;
3
+
4
+ /* Catppuccin Mocha core */
5
+ --ctp-rosewater: #f5e0dc;
6
+ --ctp-flamingo: #f2cdcd;
7
+ --ctp-pink: #f5c2e7;
8
+ --ctp-mauve: #cba6f7;
9
+ --ctp-red: #f38ba8;
10
+ --ctp-maroon: #eba0ac;
11
+ --ctp-peach: #fab387;
12
+ --ctp-yellow: #f9e2af;
13
+ --ctp-green: #a6e3a1;
14
+ --ctp-teal: #94e2d5;
15
+ --ctp-sky: #89dceb;
16
+ --ctp-sapphire: #74c7ec;
17
+ --ctp-blue: #89b4fa;
18
+ --ctp-lavender: #b4befe;
19
+ --ctp-text: #cdd6f4;
20
+ --ctp-subtext: #bac2de;
21
+ --ctp-overlay: #6c7086;
22
+ --ctp-surface: #313244;
23
+ --ctp-base: #1e1e2e;
24
+ --ctp-mantle: #181825;
25
+ --ctp-crust: #11111b;
26
+
27
+ --bg: var(--ctp-crust);
28
+ --panel: rgba(30, 30, 46, 0.72);
29
+ --panel-2: rgba(49, 50, 68, 0.78);
30
+ --panel-3: rgba(24, 24, 37, 0.92);
31
+ --text: var(--ctp-text);
32
+ --muted: var(--ctp-subtext);
33
+ --border: rgba(180, 190, 254, 0.22);
34
+ --accent: var(--ctp-mauve);
35
+ --accent-2: var(--ctp-teal);
36
+ --accent-3: var(--ctp-pink);
37
+ --danger: var(--ctp-red);
38
+ --warning: var(--ctp-yellow);
39
+ --ok: var(--ctp-green);
40
+ --shadow: rgba(17, 17, 27, 0.78);
41
+ --glow-mauve: rgba(203, 166, 247, 0.42);
42
+ --glow-blue: rgba(137, 180, 250, 0.36);
43
+ --glow-pink: rgba(245, 194, 231, 0.34);
44
+ --glow-teal: rgba(148, 226, 213, 0.26);
45
+ --panel-gradient: linear-gradient(145deg, rgba(49, 50, 68, 0.78), rgba(24, 24, 37, 0.86) 52%, rgba(17, 17, 27, 0.9));
46
+ --neon-gradient: linear-gradient(120deg, var(--ctp-pink), var(--ctp-mauve) 32%, var(--ctp-blue) 66%, var(--ctp-teal));
47
+
48
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
49
+ }
50
+
51
+ * { box-sizing: border-box; }
52
+ html, body { height: 100%; min-height: 100%; }
53
+ body {
54
+ margin: 0;
55
+ min-height: 0;
56
+ overflow: hidden;
57
+ color: var(--text);
58
+ background:
59
+ radial-gradient(circle at 8% -8%, rgba(245, 194, 231, 0.34) 0, transparent 31rem),
60
+ radial-gradient(circle at 82% 2%, rgba(137, 180, 250, 0.32) 0, transparent 34rem),
61
+ radial-gradient(circle at 52% 112%, rgba(148, 226, 213, 0.20) 0, transparent 30rem),
62
+ linear-gradient(135deg, #11111b 0%, #181825 45%, #1e1e2e 100%);
63
+ }
64
+ body::before,
65
+ body::after {
66
+ content: "";
67
+ position: fixed;
68
+ inset: 0;
69
+ pointer-events: none;
70
+ z-index: 0;
71
+ }
72
+ body::before {
73
+ opacity: 0.38;
74
+ background-image:
75
+ linear-gradient(rgba(137, 180, 250, 0.14) 1px, transparent 1px),
76
+ linear-gradient(90deg, rgba(203, 166, 247, 0.12) 1px, transparent 1px);
77
+ background-size: 46px 46px;
78
+ mask-image: linear-gradient(to bottom, rgba(0,0,0,0.88), rgba(0,0,0,0.12));
79
+ }
80
+ body::after {
81
+ opacity: 0.14;
82
+ background: repeating-linear-gradient(to bottom, transparent 0 4px, rgba(205, 214, 244, 0.36) 5px, transparent 6px);
83
+ mix-blend-mode: screen;
84
+ }
85
+
86
+ button, select, textarea, input {
87
+ color: var(--text);
88
+ background: linear-gradient(180deg, rgba(49, 50, 68, 0.9), rgba(24, 24, 37, 0.88));
89
+ border: 1px solid var(--border);
90
+ border-radius: 0.7rem;
91
+ font: inherit;
92
+ outline: none;
93
+ }
94
+ button, select, input { min-height: 2.35rem; }
95
+ button {
96
+ position: relative;
97
+ padding: 0.56rem 0.86rem;
98
+ cursor: pointer;
99
+ color: var(--ctp-text);
100
+ box-shadow: 0 0 0 1px rgba(203, 166, 247, 0.04), 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16);
101
+ transition: transform 140ms ease, border-color 140ms ease, box-shadow 140ms ease, background 140ms ease;
102
+ }
103
+ button:hover {
104
+ transform: translateY(-1px);
105
+ border-color: rgba(137, 180, 250, 0.72);
106
+ box-shadow: 0 0 0 1px rgba(137, 180, 250, 0.16), 0 0 1.1rem var(--glow-blue), 0 1rem 2rem rgba(0, 0, 0, 0.2);
107
+ }
108
+ button:active { transform: translateY(0); }
109
+ button.primary {
110
+ color: #11111b;
111
+ font-weight: 800;
112
+ border-color: transparent;
113
+ background: var(--neon-gradient);
114
+ box-shadow: 0 0 1.4rem var(--glow-mauve), 0 0.7rem 1.8rem rgba(0, 0, 0, 0.35);
115
+ }
116
+ button.danger {
117
+ color: #11111b;
118
+ font-weight: 800;
119
+ background: linear-gradient(120deg, var(--ctp-red), var(--ctp-peach));
120
+ border-color: rgba(243, 139, 168, 0.82);
121
+ box-shadow: 0 0 1.1rem rgba(243, 139, 168, 0.42);
122
+ }
123
+ button:disabled { cursor: not-allowed; opacity: 0.5; transform: none; }
124
+ button:focus-visible, select:focus-visible, textarea:focus-visible, input:focus-visible {
125
+ border-color: var(--ctp-teal);
126
+ box-shadow: 0 0 0 3px rgba(148, 226, 213, 0.15), 0 0 1rem var(--glow-teal);
127
+ }
128
+ select {
129
+ appearance: none;
130
+ -webkit-appearance: none;
131
+ padding: 0.5rem 2.15rem 0.5rem 0.7rem;
132
+ min-width: 8rem;
133
+ color: var(--ctp-text);
134
+ color-scheme: dark;
135
+ accent-color: var(--ctp-mauve);
136
+ border-color: rgba(180, 190, 254, 0.30);
137
+ background-color: var(--ctp-base);
138
+ background-image:
139
+ linear-gradient(45deg, transparent 50%, var(--ctp-teal) 50%),
140
+ linear-gradient(135deg, var(--ctp-teal) 50%, transparent 50%),
141
+ linear-gradient(135deg, rgba(245, 194, 231, 0.16), rgba(137, 180, 250, 0.10) 45%, rgba(148, 226, 213, 0.12)),
142
+ linear-gradient(180deg, rgba(49, 50, 68, 0.98), rgba(24, 24, 37, 0.96));
143
+ background-position:
144
+ calc(100% - 1.05rem) 50%,
145
+ calc(100% - 0.72rem) 50%,
146
+ 0 0,
147
+ 0 0;
148
+ background-size:
149
+ 0.34rem 0.34rem,
150
+ 0.34rem 0.34rem,
151
+ 100% 100%,
152
+ 100% 100%;
153
+ background-repeat: no-repeat;
154
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.045), 0 0.55rem 1.3rem rgba(17, 17, 27, 0.22);
155
+ }
156
+ select:hover {
157
+ border-color: rgba(203, 166, 247, 0.58);
158
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.055), 0 0 1rem rgba(203, 166, 247, 0.16);
159
+ }
160
+ select option,
161
+ select optgroup {
162
+ color: var(--ctp-text);
163
+ background: var(--ctp-base);
164
+ }
165
+ select option:checked {
166
+ color: #11111b;
167
+ background: linear-gradient(90deg, var(--ctp-pink), var(--ctp-mauve), var(--ctp-blue));
168
+ }
169
+ select option:disabled {
170
+ color: var(--ctp-overlay);
171
+ background: var(--ctp-mantle);
172
+ }
173
+ textarea {
174
+ width: 100%;
175
+ min-height: 7rem;
176
+ padding: 0.9rem;
177
+ resize: vertical;
178
+ line-height: 1.5;
179
+ color: var(--ctp-text);
180
+ caret-color: var(--ctp-pink);
181
+ background:
182
+ linear-gradient(180deg, rgba(17, 17, 27, 0.78), rgba(30, 30, 46, 0.8)),
183
+ radial-gradient(circle at 0 0, rgba(203, 166, 247, 0.14), transparent 18rem);
184
+ box-shadow: inset 0 0 0 1px rgba(245, 194, 231, 0.04), inset 0 0 2rem rgba(17, 17, 27, 0.42);
185
+ }
186
+ textarea::placeholder { color: rgba(186, 194, 222, 0.62); }
187
+
188
+ .topbar {
189
+ position: sticky;
190
+ top: 0;
191
+ z-index: 10;
192
+ display: flex;
193
+ gap: 1rem;
194
+ align-items: center;
195
+ justify-content: space-between;
196
+ padding: 1rem 1.25rem;
197
+ border-bottom: 1px solid rgba(180, 190, 254, 0.22);
198
+ background: linear-gradient(90deg, rgba(17, 17, 27, 0.9), rgba(30, 30, 46, 0.7), rgba(24, 24, 37, 0.88));
199
+ backdrop-filter: blur(18px) saturate(150%);
200
+ box-shadow: 0 0.75rem 2.5rem rgba(17, 17, 27, 0.56), 0 0 2rem rgba(203, 166, 247, 0.10);
201
+ }
202
+ .topbar::before {
203
+ content: "";
204
+ position: absolute;
205
+ left: 0;
206
+ right: 0;
207
+ bottom: -1px;
208
+ height: 1px;
209
+ background: var(--neon-gradient);
210
+ box-shadow: 0 0 1.3rem var(--glow-mauve);
211
+ }
212
+ .topbar h1 {
213
+ margin: 0;
214
+ font-size: clamp(1.25rem, 2.2vw, 1.85rem);
215
+ letter-spacing: 0.03em;
216
+ text-transform: uppercase;
217
+ background: var(--neon-gradient);
218
+ -webkit-background-clip: text;
219
+ background-clip: text;
220
+ color: transparent;
221
+ text-shadow: 0 0 1.6rem var(--glow-mauve);
222
+ }
223
+ .topbar p { margin: 0.25rem 0 0; color: rgba(205, 214, 244, 0.72); }
224
+ .top-actions {
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: flex-end;
228
+ gap: 0.5rem;
229
+ flex-wrap: wrap;
230
+ }
231
+
232
+ .layout {
233
+ position: relative;
234
+ z-index: 1;
235
+ display: grid;
236
+ grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
237
+ gap: 1rem;
238
+ padding: 1rem;
239
+ width: 100%;
240
+ height: 100vh;
241
+ height: 100dvh;
242
+ min-height: 0;
243
+ overflow: hidden;
244
+ transition: grid-template-columns 180ms ease;
245
+ }
246
+ body.side-panel-collapsed .layout {
247
+ grid-template-columns: minmax(0, 1fr);
248
+ }
249
+ body.side-panel-collapsed .side-panel {
250
+ display: none;
251
+ }
252
+ .side-panel-expand-button {
253
+ position: fixed;
254
+ top: 1rem;
255
+ right: 0.9rem;
256
+ z-index: 8;
257
+ display: none;
258
+ place-items: center;
259
+ width: 2.55rem;
260
+ min-width: 2.55rem;
261
+ height: 2.55rem;
262
+ min-height: 2.55rem;
263
+ padding: 0;
264
+ overflow: hidden;
265
+ border-radius: 0.9rem;
266
+ border-color: rgba(148, 226, 213, 0.42);
267
+ color: var(--ctp-teal);
268
+ background:
269
+ linear-gradient(120deg, rgba(148, 226, 213, 0.14), rgba(203, 166, 247, 0.10)),
270
+ linear-gradient(145deg, rgba(30, 30, 46, 0.94), rgba(17, 17, 27, 0.96));
271
+ box-shadow: 0 0 1.15rem rgba(148, 226, 213, 0.22), 0 0.8rem 2rem rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255,255,255,0.06);
272
+ }
273
+ .side-panel-expand-button::before,
274
+ .side-panel-toggle-button::before {
275
+ content: "";
276
+ position: absolute;
277
+ inset: -55%;
278
+ background: conic-gradient(from 120deg, transparent, rgba(245, 194, 231, 0.16), rgba(137, 180, 250, 0.18), rgba(148, 226, 213, 0.14), transparent 55%);
279
+ opacity: 0;
280
+ transition: opacity 160ms ease, transform 260ms ease;
281
+ }
282
+ .side-panel-expand-button:hover::before,
283
+ .side-panel-toggle-button:hover::before {
284
+ opacity: 1;
285
+ transform: rotate(18deg);
286
+ }
287
+ body.side-panel-collapsed .side-panel-expand-button {
288
+ display: grid;
289
+ }
290
+ .side-panel-button-icon {
291
+ position: relative;
292
+ z-index: 1;
293
+ display: block;
294
+ width: 1.28rem;
295
+ height: 1.08rem;
296
+ border: 1px solid rgba(180, 190, 254, 0.34);
297
+ border-radius: 0.34rem;
298
+ background: rgba(17, 17, 27, 0.50);
299
+ box-shadow: inset 0 0 0 1px rgba(245, 194, 231, 0.04), 0 0 0.75rem rgba(148, 226, 213, 0.10);
300
+ }
301
+ .side-panel-button-icon::before {
302
+ content: "";
303
+ position: absolute;
304
+ left: 0.19rem;
305
+ top: 0.18rem;
306
+ bottom: 0.18rem;
307
+ width: 0.28rem;
308
+ border-radius: 0.18rem;
309
+ background: linear-gradient(180deg, var(--ctp-pink), var(--ctp-mauve));
310
+ box-shadow: 0 0 0.55rem rgba(203, 166, 247, 0.45);
311
+ }
312
+ .side-panel-button-icon span {
313
+ position: absolute;
314
+ left: 0.62rem;
315
+ right: 0.2rem;
316
+ display: block;
317
+ height: 0.12rem;
318
+ border-radius: 999px;
319
+ background: currentColor;
320
+ opacity: 0.82;
321
+ box-shadow: 0 0 0.35rem currentColor;
322
+ }
323
+ .side-panel-button-icon span:nth-child(1) { top: 0.28rem; }
324
+ .side-panel-button-icon span:nth-child(2) { top: 0.48rem; }
325
+ .side-panel-button-icon span:nth-child(3) { top: 0.68rem; }
326
+ .side-panel-button-chevron { display: none; }
327
+ .chat-panel, .side-panel {
328
+ position: relative;
329
+ min-height: 0;
330
+ background: var(--panel-gradient);
331
+ border: 1px solid var(--border);
332
+ border-radius: 1.1rem;
333
+ box-shadow: 0 1rem 3rem var(--shadow), 0 0 2rem rgba(203, 166, 247, 0.10), inset 0 1px 0 rgba(255,255,255,0.06);
334
+ overflow: hidden;
335
+ }
336
+ .chat-panel::before, .side-panel::before, .extension-dialog::before {
337
+ content: "";
338
+ position: absolute;
339
+ inset: 0;
340
+ padding: 1px;
341
+ border-radius: inherit;
342
+ background: linear-gradient(135deg, rgba(245, 194, 231, 0.64), rgba(137, 180, 250, 0.08) 38%, rgba(148, 226, 213, 0.46));
343
+ mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
344
+ mask-composite: exclude;
345
+ pointer-events: none;
346
+ }
347
+ .chat-panel {
348
+ display: flex;
349
+ flex-direction: column;
350
+ height: 100%;
351
+ min-height: 0;
352
+ }
353
+ .side-panel {
354
+ display: grid;
355
+ grid-template-rows: auto minmax(0, 1fr);
356
+ overflow: hidden;
357
+ padding: 0;
358
+ }
359
+ .side-panel-header {
360
+ position: relative;
361
+ z-index: 1;
362
+ display: flex;
363
+ align-items: center;
364
+ justify-content: space-between;
365
+ gap: 0.8rem;
366
+ margin: 0;
367
+ padding: 0.9rem 0.95rem;
368
+ border-bottom: 1px solid rgba(180, 190, 254, 0.16);
369
+ background: linear-gradient(90deg, rgba(17, 17, 27, 0.96), rgba(30, 30, 46, 0.82));
370
+ backdrop-filter: blur(14px) saturate(150%);
371
+ }
372
+ .side-panel-header strong {
373
+ display: block;
374
+ margin-top: 0.1rem;
375
+ color: var(--ctp-text);
376
+ letter-spacing: 0.03em;
377
+ }
378
+ .side-panel-session-line {
379
+ margin: 0.34rem 0 0;
380
+ max-width: 17rem;
381
+ overflow: hidden;
382
+ text-overflow: ellipsis;
383
+ white-space: nowrap;
384
+ font-size: 0.76rem;
385
+ }
386
+ .side-panel-kicker {
387
+ display: block;
388
+ color: var(--ctp-pink);
389
+ font-size: 0.68rem;
390
+ font-weight: 900;
391
+ letter-spacing: 0.18em;
392
+ text-transform: uppercase;
393
+ text-shadow: 0 0 0.9rem var(--glow-pink);
394
+ }
395
+ .side-panel-toggle-button {
396
+ position: relative;
397
+ display: inline-grid;
398
+ place-items: center;
399
+ width: 2.45rem;
400
+ min-width: 2.45rem;
401
+ height: 2.35rem;
402
+ min-height: 2.35rem;
403
+ padding: 0;
404
+ overflow: hidden;
405
+ border-radius: 0.78rem;
406
+ border-color: rgba(148, 226, 213, 0.38);
407
+ color: var(--ctp-teal);
408
+ background:
409
+ linear-gradient(120deg, rgba(148, 226, 213, 0.12), rgba(203, 166, 247, 0.10)),
410
+ linear-gradient(145deg, rgba(49, 50, 68, 0.78), rgba(17, 17, 27, 0.86));
411
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.055), 0 0 0.8rem rgba(148, 226, 213, 0.08);
412
+ }
413
+ .side-panel-toggle-button:hover,
414
+ .side-panel-expand-button:hover {
415
+ color: var(--ctp-pink);
416
+ border-color: rgba(245, 194, 231, 0.62);
417
+ box-shadow: 0 0 1.35rem rgba(245, 194, 231, 0.22), 0 0.85rem 1.8rem rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.07);
418
+ }
419
+ .side-panel-body {
420
+ min-height: 0;
421
+ overflow: auto;
422
+ padding: 1rem;
423
+ scrollbar-gutter: stable;
424
+ }
425
+ .side-panel h2 {
426
+ font-size: 0.78rem;
427
+ margin: 1.1rem 0 0.55rem;
428
+ color: var(--ctp-pink);
429
+ text-transform: uppercase;
430
+ letter-spacing: 0.16em;
431
+ text-shadow: 0 0 1rem var(--glow-pink);
432
+ }
433
+ .side-panel-body h2:first-child { margin-top: 0; }
434
+ .side-panel-controls {
435
+ display: grid;
436
+ gap: 0.75rem;
437
+ padding: 0.72rem;
438
+ border: 1px solid rgba(180, 190, 254, 0.16);
439
+ border-radius: 0.85rem;
440
+ background: rgba(17, 17, 27, 0.46);
441
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 0 1rem rgba(203, 166, 247, 0.06);
442
+ }
443
+ .control-field {
444
+ display: grid;
445
+ gap: 0.42rem;
446
+ }
447
+ .control-field label {
448
+ color: rgba(205, 214, 244, 0.74);
449
+ font-size: 0.72rem;
450
+ font-weight: 900;
451
+ letter-spacing: 0.12em;
452
+ text-transform: uppercase;
453
+ }
454
+ .side-panel-controls select,
455
+ .side-panel-controls button {
456
+ width: 100%;
457
+ min-width: 0;
458
+ }
459
+ .side-panel-controls .danger {
460
+ margin-top: 0.15rem;
461
+ }
462
+
463
+ .widget-area {
464
+ flex: 0 0 auto;
465
+ border-bottom: 1px solid rgba(180, 190, 254, 0.16);
466
+ padding: 0.72rem 0.95rem;
467
+ color: rgba(205, 214, 244, 0.78);
468
+ background: linear-gradient(90deg, rgba(203, 166, 247, 0.10), rgba(137, 180, 250, 0.05), rgba(148, 226, 213, 0.08));
469
+ }
470
+ .statusbar {
471
+ position: relative;
472
+ flex: 0 0 auto;
473
+ display: grid;
474
+ gap: 0.58rem;
475
+ padding: 0.78rem 0.95rem 0.82rem;
476
+ color: rgba(205, 214, 244, 0.84);
477
+ border-top: 1px solid rgba(245, 194, 231, 0.18);
478
+ border-bottom: 1px solid rgba(148, 226, 213, 0.22);
479
+ background:
480
+ radial-gradient(circle at 6% 0%, rgba(245, 194, 231, 0.13), transparent 15rem),
481
+ radial-gradient(circle at 82% 50%, rgba(148, 226, 213, 0.10), transparent 18rem),
482
+ linear-gradient(135deg, rgba(17, 17, 27, 0.94), rgba(30, 30, 46, 0.80) 48%, rgba(24, 24, 37, 0.92));
483
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 -0.45rem 1.2rem rgba(17, 17, 27, 0.28);
484
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
485
+ font-size: 0.76rem;
486
+ line-height: 1.35;
487
+ }
488
+ .statusbar::before {
489
+ content: "";
490
+ position: absolute;
491
+ inset: 0 0 auto;
492
+ height: 1px;
493
+ background: var(--neon-gradient);
494
+ opacity: 0.62;
495
+ box-shadow: 0 0 1rem var(--glow-mauve);
496
+ }
497
+ .footer-line {
498
+ position: relative;
499
+ z-index: 1;
500
+ display: flex;
501
+ align-items: stretch;
502
+ min-width: 0;
503
+ }
504
+ .footer-line-main {
505
+ flex-wrap: wrap;
506
+ gap: 0.5rem;
507
+ }
508
+ .footer-line-meta {
509
+ display: grid;
510
+ grid-template-columns: minmax(10rem, 1.9fr) minmax(5rem, 0.55fr) minmax(6.5rem, 0.6fr) minmax(7rem, 0.65fr) minmax(12rem, 1.2fr);
511
+ gap: 0.5rem;
512
+ color: rgba(186, 194, 222, 0.76);
513
+ }
514
+ .footer-metric,
515
+ .footer-meta {
516
+ min-width: 0;
517
+ border: 1px solid rgba(180, 190, 254, 0.16);
518
+ background:
519
+ linear-gradient(180deg, rgba(49, 50, 68, 0.46), rgba(17, 17, 27, 0.34)),
520
+ linear-gradient(90deg, rgba(203, 166, 247, 0.06), rgba(148, 226, 213, 0.03));
521
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 0.45rem 1rem rgba(0, 0, 0, 0.10);
522
+ }
523
+ .footer-metric {
524
+ display: inline-grid;
525
+ grid-template-columns: auto auto minmax(0, 1fr);
526
+ align-items: center;
527
+ gap: 0.42rem;
528
+ min-height: 2.1rem;
529
+ padding: 0.35rem 0.62rem;
530
+ border-radius: 0.78rem;
531
+ }
532
+ .footer-metric-icon {
533
+ display: inline-grid;
534
+ place-items: center;
535
+ width: 1.28rem;
536
+ height: 1.28rem;
537
+ border-radius: 999px;
538
+ color: #11111b;
539
+ background: linear-gradient(135deg, var(--ctp-pink), var(--ctp-mauve) 48%, var(--ctp-blue));
540
+ font-size: 0.72rem;
541
+ font-weight: 950;
542
+ line-height: 1;
543
+ box-shadow: 0 0 0.85rem rgba(203, 166, 247, 0.34);
544
+ }
545
+ .footer-metric-label,
546
+ .footer-meta-label {
547
+ color: rgba(186, 194, 222, 0.62);
548
+ font-size: 0.64rem;
549
+ font-weight: 950;
550
+ letter-spacing: 0.12em;
551
+ text-transform: uppercase;
552
+ }
553
+ .footer-metric-value,
554
+ .footer-meta-value {
555
+ min-width: 0;
556
+ overflow: hidden;
557
+ color: rgba(205, 214, 244, 0.94);
558
+ font-weight: 800;
559
+ text-overflow: ellipsis;
560
+ white-space: nowrap;
561
+ }
562
+ .footer-meta {
563
+ display: grid;
564
+ grid-template-columns: auto minmax(0, 1fr);
565
+ align-items: center;
566
+ gap: 0.38rem;
567
+ min-height: 1.85rem;
568
+ padding: 0.28rem 0.52rem;
569
+ border-radius: 0.7rem;
570
+ }
571
+ .footer-model .footer-meta-value {
572
+ color: var(--ctp-teal);
573
+ text-shadow: 0 0 0.6rem rgba(148, 226, 213, 0.22);
574
+ }
575
+ .footer-branch .footer-meta-value {
576
+ color: var(--ctp-pink);
577
+ text-shadow: 0 0 0.55rem rgba(245, 194, 231, 0.18);
578
+ }
579
+ .footer-runtime .footer-meta-value {
580
+ color: var(--ctp-yellow);
581
+ }
582
+ .tone-pink .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-pink), var(--ctp-mauve)); }
583
+ .tone-blue .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-blue), var(--ctp-sapphire)); }
584
+ .tone-mauve .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-mauve), var(--ctp-lavender)); }
585
+ .tone-yellow .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-yellow), var(--ctp-peach)); }
586
+ .tone-green .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-green), var(--ctp-teal)); }
587
+ .tone-teal .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-teal), var(--ctp-sky)); }
588
+
589
+ .git-workflow-panel[hidden] { display: none; }
590
+ .git-workflow-panel {
591
+ flex: 0 0 auto;
592
+ display: grid;
593
+ gap: 0.72rem;
594
+ max-height: min(32rem, 44dvh);
595
+ overflow: auto;
596
+ padding: 0.9rem;
597
+ border-top: 1px solid rgba(245, 194, 231, 0.16);
598
+ border-bottom: 1px solid rgba(148, 226, 213, 0.20);
599
+ background:
600
+ radial-gradient(circle at 10% 10%, rgba(166, 227, 161, 0.10), transparent 16rem),
601
+ radial-gradient(circle at 92% 0%, rgba(203, 166, 247, 0.14), transparent 18rem),
602
+ linear-gradient(145deg, rgba(17, 17, 27, 0.94), rgba(30, 30, 46, 0.82));
603
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.045), 0 -0.5rem 1.4rem rgba(17, 17, 27, 0.22);
604
+ }
605
+ .git-workflow-header {
606
+ display: flex;
607
+ align-items: flex-start;
608
+ justify-content: space-between;
609
+ gap: 1rem;
610
+ }
611
+ .git-workflow-header strong {
612
+ display: block;
613
+ margin-top: 0.1rem;
614
+ letter-spacing: 0.03em;
615
+ }
616
+ .git-workflow-header p {
617
+ margin: 0.25rem 0 0;
618
+ font-size: 0.86rem;
619
+ }
620
+ .git-workflow-kicker {
621
+ display: block;
622
+ color: var(--ctp-green);
623
+ font-size: 0.68rem;
624
+ font-weight: 950;
625
+ letter-spacing: 0.18em;
626
+ text-transform: uppercase;
627
+ text-shadow: 0 0 0.9rem rgba(166, 227, 161, 0.34);
628
+ }
629
+ .git-workflow-steps,
630
+ .git-workflow-actions {
631
+ display: flex;
632
+ gap: 0.5rem;
633
+ flex-wrap: wrap;
634
+ align-items: center;
635
+ }
636
+ .git-workflow-step {
637
+ position: relative;
638
+ padding: 0.38rem 0.72rem 0.38rem 1.62rem;
639
+ border: 1px solid rgba(180, 190, 254, 0.16);
640
+ border-radius: 999px;
641
+ color: rgba(186, 194, 222, 0.76);
642
+ background: rgba(17, 17, 27, 0.42);
643
+ font-size: 0.76rem;
644
+ font-weight: 900;
645
+ letter-spacing: 0.08em;
646
+ text-transform: uppercase;
647
+ }
648
+ .git-workflow-step::before {
649
+ content: "";
650
+ position: absolute;
651
+ left: 0.58rem;
652
+ top: 50%;
653
+ width: 0.52rem;
654
+ height: 0.52rem;
655
+ border-radius: 999px;
656
+ background: rgba(108, 112, 134, 0.72);
657
+ transform: translateY(-50%);
658
+ }
659
+ .git-workflow-step.active {
660
+ color: var(--ctp-text);
661
+ border-color: rgba(245, 194, 231, 0.42);
662
+ background: linear-gradient(90deg, rgba(203, 166, 247, 0.20), rgba(137, 180, 250, 0.10));
663
+ box-shadow: 0 0 1rem rgba(203, 166, 247, 0.16);
664
+ }
665
+ .git-workflow-step.active::before {
666
+ background: var(--ctp-pink);
667
+ box-shadow: 0 0 0.7rem var(--glow-pink);
668
+ }
669
+ .git-workflow-step.done {
670
+ color: var(--ctp-green);
671
+ border-color: rgba(166, 227, 161, 0.30);
672
+ }
673
+ .git-workflow-step.done::before {
674
+ background: var(--ctp-green);
675
+ box-shadow: 0 0 0.7rem rgba(166, 227, 161, 0.32);
676
+ }
677
+ .git-workflow-output {
678
+ max-height: 14rem;
679
+ min-height: 4.5rem;
680
+ overflow: auto;
681
+ margin: 0;
682
+ padding: 0.78rem;
683
+ border: 1px solid rgba(180, 190, 254, 0.16);
684
+ border-radius: 0.82rem;
685
+ color: rgba(205, 214, 244, 0.88);
686
+ background:
687
+ linear-gradient(180deg, rgba(17, 17, 27, 0.76), rgba(17, 17, 27, 0.58)),
688
+ radial-gradient(circle at 0 0, rgba(148, 226, 213, 0.08), transparent 14rem);
689
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
690
+ font-size: 0.82rem;
691
+ line-height: 1.45;
692
+ white-space: pre-wrap;
693
+ }
694
+ .git-workflow-actions button {
695
+ min-height: 2.15rem;
696
+ padding: 0.45rem 0.72rem;
697
+ }
698
+ .widget-area:empty { display: none; }
699
+ .widget {
700
+ background: rgba(17, 17, 27, 0.72);
701
+ border: 1px solid rgba(148, 226, 213, 0.24);
702
+ border-radius: 0.8rem;
703
+ padding: 0.7rem;
704
+ margin: 0.35rem 0;
705
+ white-space: pre-wrap;
706
+ box-shadow: inset 0 0 1.4rem rgba(148, 226, 213, 0.06), 0 0 1rem rgba(148, 226, 213, 0.08);
707
+ }
708
+ .chat {
709
+ flex: 1 1 auto;
710
+ min-height: 0;
711
+ overflow: auto;
712
+ padding: 1rem;
713
+ scroll-behavior: smooth;
714
+ }
715
+ .message {
716
+ position: relative;
717
+ margin: 0 0 0.9rem;
718
+ padding: 0.86rem;
719
+ border: 1px solid rgba(180, 190, 254, 0.18);
720
+ border-radius: 0.95rem;
721
+ background: linear-gradient(145deg, rgba(49, 50, 68, 0.66), rgba(24, 24, 37, 0.7));
722
+ box-shadow: 0 0.8rem 1.8rem rgba(17, 17, 27, 0.34), inset 0 1px 0 rgba(255,255,255,0.045);
723
+ }
724
+ .message::before {
725
+ content: "";
726
+ position: absolute;
727
+ inset: -1px auto -1px -1px;
728
+ width: 3px;
729
+ border-radius: 999px;
730
+ background: var(--neon-gradient);
731
+ opacity: 0.72;
732
+ box-shadow: 0 0 0.9rem var(--glow-mauve);
733
+ }
734
+ .message.user {
735
+ border-color: rgba(137, 180, 250, 0.34);
736
+ background: linear-gradient(145deg, rgba(137, 180, 250, 0.16), rgba(49, 50, 68, 0.58));
737
+ }
738
+ .message.assistant {
739
+ border-color: rgba(148, 226, 213, 0.30);
740
+ background: linear-gradient(145deg, rgba(148, 226, 213, 0.12), rgba(49, 50, 68, 0.58));
741
+ }
742
+ .message.toolResult, .message.bashExecution {
743
+ border-color: rgba(249, 226, 175, 0.30);
744
+ background: linear-gradient(145deg, rgba(249, 226, 175, 0.11), rgba(49, 50, 68, 0.58));
745
+ padding: 0;
746
+ }
747
+ .message.streaming {
748
+ outline: 1px solid rgba(148, 226, 213, 0.72);
749
+ box-shadow: 0 0 1.7rem var(--glow-teal), 0 0.8rem 2rem rgba(17, 17, 27, 0.4);
750
+ }
751
+ .message.error {
752
+ border-color: rgba(243, 139, 168, 0.72);
753
+ color: var(--ctp-red);
754
+ box-shadow: 0 0 1.3rem rgba(243, 139, 168, 0.28);
755
+ }
756
+ .message-header {
757
+ display: flex;
758
+ justify-content: space-between;
759
+ gap: 1rem;
760
+ margin-bottom: 0.48rem;
761
+ color: rgba(186, 194, 222, 0.78);
762
+ font-size: 0.78rem;
763
+ }
764
+ .message-collapse {
765
+ margin: 0;
766
+ padding: 0;
767
+ border: 0;
768
+ background: transparent;
769
+ }
770
+ .message-collapse > summary.message-header {
771
+ margin: 0;
772
+ padding: 0.82rem 0.9rem;
773
+ list-style: none;
774
+ align-items: center;
775
+ }
776
+ .message-collapse > summary.message-header::-webkit-details-marker { display: none; }
777
+ .message-collapse > summary.message-header::after {
778
+ content: "▸";
779
+ color: var(--ctp-yellow);
780
+ margin-left: 0.55rem;
781
+ text-shadow: 0 0 0.75rem rgba(249, 226, 175, 0.35);
782
+ transition: transform 140ms ease;
783
+ }
784
+ .message-collapse[open] > summary.message-header::after { transform: rotate(90deg); }
785
+ .message-collapse > .message-body {
786
+ padding: 0 0.9rem 0.85rem;
787
+ border-top: 1px solid rgba(249, 226, 175, 0.12);
788
+ }
789
+ .message.toolResult:not(.error) .message-collapse:not([open]) > summary.message-header,
790
+ .message.bashExecution .message-collapse:not([open]) > summary.message-header {
791
+ color: rgba(186, 194, 222, 0.72);
792
+ }
793
+ .message.toolResult:not(.error) .message-collapse:not([open]) .message-role,
794
+ .message.bashExecution .message-collapse:not([open]) .message-role {
795
+ color: var(--ctp-yellow);
796
+ text-shadow: 0 0 0.8rem rgba(249, 226, 175, 0.28);
797
+ }
798
+ .message-role {
799
+ color: var(--ctp-teal);
800
+ font-weight: 900;
801
+ text-transform: uppercase;
802
+ letter-spacing: 0.12em;
803
+ text-shadow: 0 0 1rem var(--glow-teal);
804
+ }
805
+ .text-block, .code-block {
806
+ margin: 0.35rem 0;
807
+ white-space: pre-wrap;
808
+ overflow-wrap: anywhere;
809
+ }
810
+ .code-block {
811
+ overflow: auto;
812
+ background: rgba(17, 17, 27, 0.82);
813
+ border: 1px solid rgba(203, 166, 247, 0.20);
814
+ border-radius: 0.75rem;
815
+ padding: 0.72rem;
816
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
817
+ font-size: 0.88rem;
818
+ box-shadow: inset 0 0 1.6rem rgba(0, 0, 0, 0.24);
819
+ }
820
+ details {
821
+ margin: 0.5rem 0;
822
+ padding: 0.6rem;
823
+ background: rgba(17, 17, 27, 0.46);
824
+ border: 1px solid rgba(249, 226, 175, 0.15);
825
+ border-radius: 0.72rem;
826
+ }
827
+ summary { cursor: pointer; color: var(--warning); }
828
+ .thinking-block {
829
+ border-color: rgba(203, 166, 247, 0.30);
830
+ background:
831
+ linear-gradient(120deg, rgba(203, 166, 247, 0.12), rgba(137, 180, 250, 0.08), rgba(148, 226, 213, 0.06)),
832
+ rgba(17, 17, 27, 0.55);
833
+ box-shadow: inset 0 0 1.1rem rgba(203, 166, 247, 0.06), 0 0 1rem rgba(203, 166, 247, 0.08);
834
+ }
835
+ .thinking-block > summary {
836
+ color: var(--ctp-mauve);
837
+ font-weight: 900;
838
+ letter-spacing: 0.1em;
839
+ text-transform: uppercase;
840
+ text-shadow: 0 0 0.9rem var(--glow-mauve);
841
+ }
842
+ .thinking-block.streaming-thinking > summary::after {
843
+ content: " live";
844
+ color: var(--ctp-teal);
845
+ margin-left: 0.45rem;
846
+ font-size: 0.72em;
847
+ letter-spacing: 0.14em;
848
+ text-shadow: 0 0 0.7rem var(--glow-teal);
849
+ }
850
+ .thinking-block.streaming-thinking.complete > summary::after {
851
+ content: " done";
852
+ color: var(--ctp-green);
853
+ }
854
+ .thinking-text {
855
+ color: rgba(205, 214, 244, 0.82);
856
+ margin-top: 0.55rem;
857
+ font-style: italic;
858
+ white-space: pre-wrap;
859
+ }
860
+
861
+ .composer {
862
+ position: relative;
863
+ z-index: 2;
864
+ flex: 0 0 auto;
865
+ min-height: 0;
866
+ border-top: 1px solid rgba(180, 190, 254, 0.18);
867
+ padding: 0.9rem;
868
+ background: linear-gradient(180deg, rgba(17, 17, 27, 0.48), rgba(17, 17, 27, 0.82));
869
+ }
870
+ .composer::before {
871
+ content: "";
872
+ position: absolute;
873
+ left: 0;
874
+ right: 0;
875
+ top: -1px;
876
+ height: 1px;
877
+ background: linear-gradient(90deg, transparent, var(--ctp-pink), var(--ctp-blue), var(--ctp-teal), transparent);
878
+ opacity: 0.8;
879
+ }
880
+ .command-suggest[hidden] { display: none; }
881
+ .command-suggest {
882
+ margin-top: 0.5rem;
883
+ max-height: 15rem;
884
+ overflow: auto;
885
+ background: rgba(17, 17, 27, 0.94);
886
+ border: 1px solid rgba(203, 166, 247, 0.34);
887
+ border-radius: 0.85rem;
888
+ box-shadow: 0 0.75rem 2rem var(--shadow), 0 0 1.4rem rgba(203, 166, 247, 0.18);
889
+ }
890
+ .command-suggest-item {
891
+ display: grid;
892
+ grid-template-columns: minmax(9rem, auto) minmax(0, 1fr) auto;
893
+ gap: 0.6rem;
894
+ width: 100%;
895
+ padding: 0.64rem 0.75rem;
896
+ background: transparent;
897
+ border: 0;
898
+ border-radius: 0;
899
+ text-align: left;
900
+ align-items: baseline;
901
+ box-shadow: none;
902
+ }
903
+ .command-suggest-item + .command-suggest-item { border-top: 1px solid rgba(180, 190, 254, 0.08); }
904
+ .command-suggest-item:hover,
905
+ .command-suggest-item.active {
906
+ background: linear-gradient(90deg, rgba(203, 166, 247, 0.20), rgba(137, 180, 250, 0.10), rgba(148, 226, 213, 0.12));
907
+ box-shadow: inset 3px 0 0 var(--ctp-teal), 0 0 1.2rem rgba(148, 226, 213, 0.10);
908
+ transform: none;
909
+ }
910
+ .command-suggest-name {
911
+ color: var(--ctp-green);
912
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
913
+ font-weight: 900;
914
+ text-shadow: 0 0 0.8rem rgba(166, 227, 161, 0.34);
915
+ }
916
+ .command-suggest-desc {
917
+ color: var(--text);
918
+ overflow: hidden;
919
+ text-overflow: ellipsis;
920
+ white-space: nowrap;
921
+ }
922
+ .command-suggest-source {
923
+ color: rgba(186, 194, 222, 0.68);
924
+ font-size: 0.72rem;
925
+ text-transform: uppercase;
926
+ letter-spacing: 0.08em;
927
+ }
928
+ .command-suggest-empty {
929
+ padding: 0.7rem 0.8rem;
930
+ color: var(--muted);
931
+ }
932
+ .composer-row {
933
+ display: flex;
934
+ gap: 0.5rem;
935
+ align-items: center;
936
+ margin-top: 0.7rem;
937
+ flex-wrap: wrap;
938
+ }
939
+ .composer-row label {
940
+ display: flex;
941
+ align-items: center;
942
+ gap: 0.45rem;
943
+ color: rgba(205, 214, 244, 0.74);
944
+ font-size: 0.88rem;
945
+ text-transform: uppercase;
946
+ letter-spacing: 0.06em;
947
+ }
948
+ .spacer { flex: 1; }
949
+ .composer-new-button,
950
+ .composer-compact-button,
951
+ .composer-git-button {
952
+ margin-right: 0.45rem;
953
+ }
954
+ .composer-compact-button,
955
+ .composer-git-button {
956
+ color: var(--ctp-teal);
957
+ border-color: rgba(148, 226, 213, 0.36);
958
+ background:
959
+ linear-gradient(120deg, rgba(148, 226, 213, 0.13), rgba(203, 166, 247, 0.10)),
960
+ linear-gradient(180deg, rgba(49, 50, 68, 0.88), rgba(17, 17, 27, 0.88));
961
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 0 0.85rem rgba(148, 226, 213, 0.08);
962
+ }
963
+ .composer-git-button {
964
+ color: var(--ctp-green);
965
+ border-color: rgba(166, 227, 161, 0.38);
966
+ background:
967
+ linear-gradient(120deg, rgba(166, 227, 161, 0.13), rgba(148, 226, 213, 0.10)),
968
+ linear-gradient(180deg, rgba(49, 50, 68, 0.88), rgba(17, 17, 27, 0.88));
969
+ }
970
+ .composer-compact-button:hover,
971
+ .composer-git-button:hover {
972
+ color: #11111b;
973
+ background: linear-gradient(120deg, var(--ctp-teal), var(--ctp-blue), var(--ctp-mauve));
974
+ border-color: transparent;
975
+ }
976
+ .composer-git-button:hover {
977
+ background: linear-gradient(120deg, var(--ctp-green), var(--ctp-teal), var(--ctp-blue));
978
+ }
979
+ .composer-git-button[data-tooltip]::before,
980
+ .composer-git-button[data-tooltip]::after {
981
+ position: absolute;
982
+ right: 0;
983
+ pointer-events: none;
984
+ opacity: 0;
985
+ transition: opacity 140ms ease, transform 140ms ease;
986
+ }
987
+ .composer-git-button[data-tooltip]::before {
988
+ content: "";
989
+ bottom: calc(100% + 0.42rem);
990
+ width: 0.72rem;
991
+ height: 0.72rem;
992
+ background: rgba(17, 17, 27, 0.96);
993
+ border-right: 1px solid rgba(166, 227, 161, 0.28);
994
+ border-bottom: 1px solid rgba(166, 227, 161, 0.28);
995
+ transform: translate(-1.2rem, 0.24rem) rotate(45deg);
996
+ z-index: 29;
997
+ }
998
+ .composer-git-button[data-tooltip]::after {
999
+ content: attr(data-tooltip);
1000
+ bottom: calc(100% + 0.72rem);
1001
+ z-index: 30;
1002
+ width: max-content;
1003
+ max-width: min(25rem, calc(100vw - 2rem));
1004
+ padding: 0.78rem 0.9rem;
1005
+ color: var(--ctp-text);
1006
+ text-align: left;
1007
+ white-space: pre-line;
1008
+ line-height: 1.45;
1009
+ border: 1px solid rgba(166, 227, 161, 0.30);
1010
+ border-radius: 0.86rem;
1011
+ background:
1012
+ radial-gradient(circle at 8% 0%, rgba(166, 227, 161, 0.13), transparent 12rem),
1013
+ linear-gradient(145deg, rgba(17, 17, 27, 0.98), rgba(30, 30, 46, 0.94));
1014
+ box-shadow: 0 1rem 2.4rem rgba(17, 17, 27, 0.58), 0 0 1.2rem rgba(166, 227, 161, 0.16), inset 0 1px 0 rgba(255,255,255,0.055);
1015
+ font-size: 0.82rem;
1016
+ font-weight: 650;
1017
+ text-transform: none;
1018
+ letter-spacing: 0;
1019
+ transform: translateY(0.24rem);
1020
+ }
1021
+ .composer-git-button[data-tooltip]:hover::before,
1022
+ .composer-git-button[data-tooltip]:hover::after,
1023
+ .composer-git-button[data-tooltip]:focus-visible::before,
1024
+ .composer-git-button[data-tooltip]:focus-visible::after {
1025
+ opacity: 1;
1026
+ transform: translateY(0);
1027
+ }
1028
+ .composer-git-button[data-tooltip]:hover::before,
1029
+ .composer-git-button[data-tooltip]:focus-visible::before {
1030
+ transform: translate(-1.2rem, 0) rotate(45deg);
1031
+ }
1032
+
1033
+ .details {
1034
+ display: grid;
1035
+ grid-template-columns: auto minmax(0, 1fr);
1036
+ gap: 0.38rem 0.72rem;
1037
+ margin: 0;
1038
+ font-size: 0.9rem;
1039
+ }
1040
+ .details dt { color: rgba(186, 194, 222, 0.66); }
1041
+ .details dd { margin: 0; overflow-wrap: anywhere; }
1042
+ .queue-box, .commands-box, .event-log {
1043
+ background: rgba(17, 17, 27, 0.72);
1044
+ border: 1px solid rgba(180, 190, 254, 0.18);
1045
+ border-radius: 0.82rem;
1046
+ padding: 0.72rem;
1047
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
1048
+ }
1049
+ .commands-box {
1050
+ max-height: 13rem;
1051
+ overflow: auto;
1052
+ font-size: 0.86rem;
1053
+ }
1054
+ .command-item { margin-bottom: 0.5rem; }
1055
+ .command-item code {
1056
+ color: var(--ctp-green);
1057
+ text-shadow: 0 0 0.7rem rgba(166, 227, 161, 0.25);
1058
+ }
1059
+ .event-log {
1060
+ max-height: min(17rem, 32vh);
1061
+ overflow: auto;
1062
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
1063
+ font-size: 0.82rem;
1064
+ }
1065
+ .event { padding: 0.3rem 0; border-bottom: 1px solid rgba(180, 190, 254, 0.06); }
1066
+ .event.warn { color: var(--warning); }
1067
+ .event.error { color: var(--danger); }
1068
+ .muted { color: rgba(186, 194, 222, 0.68); }
1069
+
1070
+ .extension-dialog {
1071
+ position: relative;
1072
+ width: min(42rem, calc(100vw - 2rem));
1073
+ border: 1px solid rgba(203, 166, 247, 0.35);
1074
+ border-radius: 1rem;
1075
+ background: linear-gradient(145deg, rgba(30, 30, 46, 0.98), rgba(17, 17, 27, 0.98));
1076
+ color: var(--text);
1077
+ box-shadow: 0 2rem 5rem var(--shadow), 0 0 2rem var(--glow-mauve);
1078
+ }
1079
+ .extension-dialog::backdrop { background: rgba(17, 17, 27, 0.78); backdrop-filter: blur(4px); }
1080
+ .extension-dialog menu {
1081
+ display: flex;
1082
+ justify-content: flex-end;
1083
+ gap: 0.5rem;
1084
+ padding: 0;
1085
+ margin: 1rem 0 0;
1086
+ }
1087
+ .dialog-options {
1088
+ display: grid;
1089
+ gap: 0.5rem;
1090
+ }
1091
+ .dialog-options button { text-align: left; }
1092
+ .dialog-input { width: 100%; padding: 0.7rem; }
1093
+ .dialog-editor { width: 100%; min-height: 12rem; padding: 0.7rem; }
1094
+
1095
+ ::-webkit-scrollbar { width: 0.75rem; height: 0.75rem; }
1096
+ ::-webkit-scrollbar-track { background: rgba(17, 17, 27, 0.55); }
1097
+ ::-webkit-scrollbar-thumb {
1098
+ background: linear-gradient(180deg, var(--ctp-mauve), var(--ctp-blue), var(--ctp-teal));
1099
+ border: 2px solid rgba(17, 17, 27, 0.88);
1100
+ border-radius: 999px;
1101
+ }
1102
+ ::selection { color: #11111b; background: var(--ctp-pink); }
1103
+
1104
+ @media (max-width: 1050px) {
1105
+ body { overflow: auto; }
1106
+ .layout,
1107
+ body.side-panel-collapsed .layout { grid-template-columns: 1fr; height: auto; min-height: 100dvh; overflow: visible; }
1108
+ .chat-panel { min-height: 70dvh; }
1109
+ .side-panel { max-height: none; }
1110
+ .footer-line-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1111
+ .footer-workspace,
1112
+ .footer-model { grid-column: 1 / -1; }
1113
+ }
1114
+
1115
+ @media (max-width: 720px) {
1116
+ .layout { padding: 0.65rem; }
1117
+ .statusbar { padding: 0.68rem; }
1118
+ .footer-line-main,
1119
+ .footer-line-meta { grid-template-columns: 1fr; }
1120
+ .footer-metric { width: 100%; }
1121
+ .command-suggest-item { grid-template-columns: 1fr; gap: 0.25rem; }
1122
+ }