@hef2024/llmasaservice-ui 0.16.8

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.
package/dist/index.css ADDED
@@ -0,0 +1,3239 @@
1
+ /* src/ChatPanel.css */
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: border-box;
6
+ }
7
+ :root {
8
+ --spacing-small: 0.3rem;
9
+ --spacing-medium: 0.5rem;
10
+ --spacing-large: 1rem;
11
+ --border-radius: 10px;
12
+ --icon-size-large: 1rem;
13
+ --icon-button-size-large: 2.5rem;
14
+ --icon-size-small: 1.5rem;
15
+ --icon-button-size-small: 1.7rem;
16
+ --button-send-size: 40px;
17
+ --input-height: 40px;
18
+ --background-color: #fff;
19
+ --title-text-color: #555;
20
+ --title-background-color: #fff;
21
+ --title-divider-color: #eee;
22
+ --input-background-color: #eee;
23
+ --input-border-color: #ddd;
24
+ --input-text-color: #555;
25
+ --button-background-color: #eee;
26
+ --button-border-color: #ddd;
27
+ --button-text-color: #555;
28
+ --button-background-color-hover: #777;
29
+ --button-text-color-hover: #fff;
30
+ --button-drop-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15);
31
+ --button-disabled-color: #ccc;
32
+ --button-disabled-background-color: #eee;
33
+ --button-action-background-color: transparent;
34
+ --button-action-text-color: #999;
35
+ --prompt-background-color: #eeeeee;
36
+ --prompt-text-color: #000;
37
+ --response-background-color: #ffffff;
38
+ --response-text-color: #000;
39
+ --button-scroll-background-color: #777;
40
+ --button-scroll-text-color: #fff;
41
+ --button-scroll-background-color-hover: #999;
42
+ --table-border-color: #777;
43
+ --powered-by-text-color: #999;
44
+ --background-color-mandatory: #ffcccc;
45
+ --border-color-mandatory: #ff5555;
46
+ --text-color-manadatory: #ff5555;
47
+ }
48
+ .dark-theme {
49
+ --background-color: #171717;
50
+ --title-text-color: #e0e0e0;
51
+ --title-background-color: #171717;
52
+ --title-divider-color: #333;
53
+ --input-background-color: #2c2c2c;
54
+ --input-border-color: #444;
55
+ --input-text-color: #e0e0e0;
56
+ --button-background-color: #3a3a3a;
57
+ --button-border-color: #555;
58
+ --button-text-color: #e0e0e0;
59
+ --button-background-color-hover: #505050;
60
+ --button-text-color-hover: #fff;
61
+ --button-drop-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
62
+ --button-disabled-color: #808080;
63
+ --button-disabled-background-color: #505050;
64
+ --button-action-background-color: transparent;
65
+ --button-action-text-color: #bbb;
66
+ --prompt-background-color: #333333;
67
+ --prompt-text-color: #ffffff;
68
+ --response-background-color: #171717;
69
+ --response-text-color: #e0e0e0;
70
+ --button-scroll-background-color: #505050;
71
+ --button-scroll-text-color: #fff;
72
+ --button-scroll-background-color-hover: #606060;
73
+ --table-border-color: #444;
74
+ --background-color-mandatory: #2c2c2c;
75
+ --border-color-mandatory: #ff5555;
76
+ --text-color-manadatory: #e0e0e0;
77
+ }
78
+ .llm-panel {
79
+ font-family:
80
+ "Inter",
81
+ system-ui,
82
+ -apple-system,
83
+ "Segoe UI",
84
+ Roboto,
85
+ sans-serif;
86
+ font-size: 0.875rem;
87
+ background-color: var(--background-color);
88
+ display: flex;
89
+ flex-direction: column;
90
+ position: relative;
91
+ padding: var(--spacing-medium);
92
+ }
93
+ .llm-panel .title {
94
+ font-size: 1rem;
95
+ padding: var(--spacing-medium);
96
+ border-bottom: 0.5px solid var(--title-divider-color);
97
+ text-align: center;
98
+ color: var(--title-text-color);
99
+ background-color: var(--title-background-color);
100
+ }
101
+ .llm-panel .input-container {
102
+ display: flex;
103
+ flex-direction: row;
104
+ align-items: center;
105
+ margin-top: var(--spacing-small);
106
+ }
107
+ .llm-panel .email-input-container {
108
+ display: flex;
109
+ flex-direction: row;
110
+ width: 100%;
111
+ gap: var(--spacing-small);
112
+ margin-top: var(--spacing-small);
113
+ margin-bottom: var(--spacing-small);
114
+ padding-right: var(--spacing-small);
115
+ }
116
+ .llm-panel .email-input {
117
+ flex: 1;
118
+ color: var(--input-text-color);
119
+ padding: var(--spacing-small);
120
+ background-color: var(--input-background-color);
121
+ border: 1px solid var(--input-border-color);
122
+ }
123
+ .llm-panel .email-input-invalid {
124
+ flex: 1;
125
+ color: var(--input-text-color);
126
+ padding: var(--spacing-small);
127
+ background-color: var(--background-color-mandatory);
128
+ border: 1px solid var(--border-color-mandatory);
129
+ }
130
+ .llm-panel .email-input-message {
131
+ color: var(--text-color-manadatory);
132
+ font-size: 0.8em;
133
+ margin-top: var(--spacing-small);
134
+ }
135
+ .llm-panel .email-input-invalid::placeholder {
136
+ color: var(--text-color-manadatory);
137
+ }
138
+ .llm-panel .email-input-set {
139
+ flex: 1;
140
+ color: var(--input-text-color);
141
+ padding: var(--spacing-small);
142
+ background-color: var(--background-color);
143
+ border: 0px solid var(--background-color);
144
+ opacity: 0.7;
145
+ user-select: none;
146
+ }
147
+ .llm-panel .email-input-button:hover {
148
+ background-color: var(--button-background-color-hover);
149
+ color: var(--button-text-color-hover);
150
+ }
151
+ .llm-panel .email-input-button {
152
+ padding: var(--spacing-small);
153
+ background-color: var(--button-background-color);
154
+ color: var(--button-text-color);
155
+ border-radius: var(--border-radius);
156
+ border: 1px solid var(--button-border-color);
157
+ cursor: pointer;
158
+ transition: background-color 0.3s ease;
159
+ white-space: nowrap;
160
+ }
161
+ .llm-panel .chat-input {
162
+ flex: 1;
163
+ color: var(--input-text-color);
164
+ margin: 0 var(--spacing-small);
165
+ padding: var(--spacing-small);
166
+ border-radius: var(--border-radius);
167
+ min-height: var(--input-height);
168
+ max-height: 120px;
169
+ resize: vertical;
170
+ overflow-y: auto;
171
+ background-color: var(--input-background-color);
172
+ border: 1px solid var(--input-border-color);
173
+ transition: height 0.1s ease;
174
+ }
175
+ .llm-panel .chat-input.user-resized {
176
+ max-height: none;
177
+ }
178
+ .llm-panel .chat-input:focus,
179
+ .llm-panel input:focus {
180
+ outline: none;
181
+ border: 2px solid var(--button-background-color-hover);
182
+ box-shadow: 0 0 5px var(--button-background-color-hover);
183
+ }
184
+ .llm-panel .chat-input:disabled {
185
+ background-color: var(--button-disabled-background-color);
186
+ cursor: not-allowed;
187
+ }
188
+ .llm-panel .chat-input:disabled::placeholder {
189
+ color: var(--button-disabled-color);
190
+ }
191
+ .llm-panel .send-button {
192
+ margin-right: var(--spacing-small);
193
+ padding: var(--spacing-small);
194
+ background-color: var(--button-background-color);
195
+ color: var(--button-text-color);
196
+ background-color: var(--input-background-color);
197
+ border: 1px solid var(--input-border-color);
198
+ border-radius: var(--border-radius);
199
+ cursor: pointer;
200
+ height: var(--button-send-size);
201
+ width: var(--button-send-size);
202
+ transition: background-color 0.3s ease;
203
+ }
204
+ .llm-panel .send-button:hover {
205
+ background-color: var(--button-background-color-hover);
206
+ color: var(--button-text-color-hover);
207
+ }
208
+ .llm-panel .send-button:disabled {
209
+ cursor: not-allowed;
210
+ color: var(--button-disabled-color);
211
+ background-color: var(--button-disabled-background-color);
212
+ }
213
+ .llm-panel .history-entry {
214
+ background-color: var(--background-color);
215
+ padding-bottom: var(--spacing-medium);
216
+ border-radius: var(--border-radius);
217
+ margin-bottom: var(--spacing-medium);
218
+ }
219
+ .llm-panel .responseArea {
220
+ flex: 1;
221
+ background-color: var(--background-color);
222
+ border-radius: var(--border-radius);
223
+ overflow-y: auto;
224
+ padding: var(--spacing-medium);
225
+ margin-top: var(--spacing-medium);
226
+ }
227
+ .llm-panel .prompt {
228
+ align-self: flex-start;
229
+ padding: var(--spacing-medium);
230
+ border-radius: 25px;
231
+ margin-left: 5%;
232
+ max-width: 100%;
233
+ white-space: pre-wrap;
234
+ background-color: var(--prompt-background-color);
235
+ color: var(--prompt-text-color);
236
+ margin-top: var(--spacing-small);
237
+ }
238
+ .llm-panel .response {
239
+ align-self: flex-end;
240
+ padding: var(--spacing-small);
241
+ background-color: var(--response-background-color);
242
+ color: var(--response-text-color);
243
+ margin-top: var(--spacing-small);
244
+ }
245
+ .llm-panel .copy-button,
246
+ .llm-panel .thumbs-button {
247
+ font-size: var(--icon-size-small);
248
+ border: none;
249
+ background-color: var(--button-action-background-color);
250
+ color: var(--button-action-text-color);
251
+ cursor: pointer;
252
+ width: var(--icon-button-size-small);
253
+ height: var(--icon-button-size-small);
254
+ display: flex;
255
+ justify-content: center;
256
+ align-items: center;
257
+ }
258
+ .llm-panel .copy-button:hover,
259
+ .llm-panel .thumbs-button:hover {
260
+ color: var(--button-text-color-hover);
261
+ background-color: var(--button-background-color-hover);
262
+ box-shadow: 0 0 5px var(--button-background-color-hover);
263
+ }
264
+ .llm-panel .copy-button:disabled,
265
+ .llm-panel .thumbs-button:disabled {
266
+ cursor: not-allowed;
267
+ color: var(--button-disabled-color);
268
+ background-color: var(--button-disabled-background-color);
269
+ }
270
+ .llm-panel .icon-svg {
271
+ width: var(--icon-size-small);
272
+ height: var(--icon-size-small);
273
+ margin: 0;
274
+ }
275
+ .llm-panel .icon-svg-large {
276
+ width: var(--icon-size-large);
277
+ height: var(--icon-size-large);
278
+ margin: 0;
279
+ }
280
+ .llm-panel .button-container {
281
+ display: flex;
282
+ margin-top: var(--spacing-medium);
283
+ }
284
+ .llm-panel .button-container-actions {
285
+ display: flex;
286
+ justify-content: space-between;
287
+ gap: 0;
288
+ }
289
+ .llm-panel .scroll-button {
290
+ position: absolute;
291
+ left: 50%;
292
+ transform: translateX(-50%);
293
+ bottom: 5%;
294
+ background-color: var(--button-scroll-background-color);
295
+ color: var(--button-scroll-text-color);
296
+ border: none;
297
+ border-radius: 50%;
298
+ height: 2.5rem;
299
+ width: 2.5rem;
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ cursor: pointer;
304
+ z-index: 10;
305
+ }
306
+ .llm-panel .scroll-button:hover {
307
+ background-color: var(--button-scroll-background-color-hover);
308
+ }
309
+ .llm-panel table {
310
+ border-collapse: collapse;
311
+ margin-bottom: 1em;
312
+ border: 1px solid var(--table-border-color);
313
+ }
314
+ .llm-panel th,
315
+ .llm-panel td {
316
+ border: 1px solid var(--table-border-color);
317
+ padding: 8px;
318
+ }
319
+ .llm-panel .save-button {
320
+ flex: 1;
321
+ background-color: var(--button-background-color);
322
+ color: var(--button-text-color);
323
+ border: 1px solid var(--button-border-color);
324
+ border-radius: var(--border-radius);
325
+ cursor: pointer;
326
+ padding: 5px 10px;
327
+ font-size: 0.8em;
328
+ margin: var(--spacing-small);
329
+ transition: background-color 0.3s ease, transform 0.3s ease;
330
+ box-shadow: var(--button-drop-shadow);
331
+ }
332
+ .llm-panel .save-button:disabled {
333
+ cursor: not-allowed;
334
+ color: var(--button-disabled-color);
335
+ background-color: var(--button-disabled-background-color);
336
+ }
337
+ .llm-panel .save-button:hover {
338
+ background-color: var(--button-background-color-hover);
339
+ color: var(--button-text-color-hover);
340
+ }
341
+ .llm-panel .new-conversation-button {
342
+ background-color: var(--prompt-background-color);
343
+ border-color: var(--button-border-color);
344
+ font-weight: 500;
345
+ }
346
+ .llm-panel .new-conversation-button:hover {
347
+ background-color: var(--button-background-color-hover);
348
+ color: var(--button-text-color-hover);
349
+ transform: translateY(-1px);
350
+ }
351
+ .llm-panel .new-conversation-button.confirm-state {
352
+ background-color: #ff6b35;
353
+ color: white;
354
+ border-color: #e55a2b;
355
+ animation: pulse-confirm 1s infinite;
356
+ }
357
+ .llm-panel .new-conversation-button.confirm-state:hover {
358
+ background-color: #e55a2b;
359
+ color: white;
360
+ }
361
+ @keyframes pulse-confirm {
362
+ 0% {
363
+ opacity: 1;
364
+ }
365
+ 50% {
366
+ opacity: 0.7;
367
+ }
368
+ 100% {
369
+ opacity: 1;
370
+ }
371
+ }
372
+ .llm-panel .suggestion-button {
373
+ background-color: var(--button-background-color);
374
+ color: var(--button-text-color);
375
+ border: 1px solid var(--button-border-color);
376
+ border-radius: var(--border-radius);
377
+ padding: 5px 10px;
378
+ font-size: 0.8em;
379
+ cursor: pointer;
380
+ margin: var(--spacing-small);
381
+ box-shadow: var(--button-drop-shadow);
382
+ }
383
+ .llm-panel .suggestion-button:hover {
384
+ background-color: var(--button-background-color-hover);
385
+ color: var(--button-text-color-hover);
386
+ }
387
+ .llm-panel .suggestion-button:disabled {
388
+ background-color: var(--button-disabled-color);
389
+ color: var(--button-disabled-background-color);
390
+ cursor: not-allowed;
391
+ }
392
+ .footer-container {
393
+ display: flex;
394
+ align-items: center;
395
+ min-height: 24px;
396
+ }
397
+ .footer-container.no-tools {
398
+ justify-content: center;
399
+ }
400
+ .footer-container.with-tools {
401
+ justify-content: space-between;
402
+ }
403
+ .footer-left {
404
+ flex: 1;
405
+ display: flex;
406
+ justify-content: center;
407
+ }
408
+ .footer-right {
409
+ flex: 1;
410
+ display: flex;
411
+ justify-content: center;
412
+ }
413
+ .footer-center {
414
+ flex: none;
415
+ width: 100%;
416
+ }
417
+ .powered-by {
418
+ display: flex;
419
+ justify-content: center;
420
+ align-items: center;
421
+ color: var(--powered-by-text-color);
422
+ font-size: 0.8em;
423
+ height: 100%;
424
+ text-align: center;
425
+ }
426
+ .powered-by a {
427
+ color: var(--powered-by-text-color);
428
+ text-decoration: underline;
429
+ }
430
+ .tool-status {
431
+ display: flex;
432
+ align-items: center;
433
+ justify-content: center;
434
+ margin-top: 4px;
435
+ font-size: 10px;
436
+ color: #666;
437
+ opacity: 0.7;
438
+ cursor: help;
439
+ }
440
+ .tool-status-dot {
441
+ width: 6px;
442
+ height: 6px;
443
+ border-radius: 50%;
444
+ margin-right: 4px;
445
+ display: inline-block;
446
+ cursor: help;
447
+ }
448
+ .tool-status-dot.loading {
449
+ background-color: #ffa500;
450
+ animation: pulse 1.5s ease-in-out infinite;
451
+ }
452
+ .tool-status-dot.ready {
453
+ background-color: #28a745;
454
+ }
455
+ .tool-status-dot.ready:hover {
456
+ background-color: #34ce57;
457
+ transform: scale(1.2);
458
+ transition: all 0.2s ease;
459
+ }
460
+ .tool-status-dot.error {
461
+ background-color: #dc3545;
462
+ }
463
+ .tool-status-text {
464
+ font-size: 9px;
465
+ font-weight: 300;
466
+ cursor: help;
467
+ }
468
+ .tool-status-text:hover {
469
+ opacity: 1;
470
+ transition: opacity 0.2s ease;
471
+ }
472
+ .modal-overlay {
473
+ position: fixed;
474
+ top: 0;
475
+ left: 0;
476
+ right: 0;
477
+ bottom: 0;
478
+ background: rgba(0, 0, 0, 0.5);
479
+ display: flex;
480
+ justify-content: center;
481
+ align-items: center;
482
+ }
483
+ .modal-content {
484
+ background: white;
485
+ padding: 5px;
486
+ border-radius: 8px;
487
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
488
+ text-align: center;
489
+ color: #333;
490
+ }
491
+ .modal-text {
492
+ color: black;
493
+ }
494
+ .modal-buttons {
495
+ padding: 5px 10px;
496
+ display: flex;
497
+ justify-content: space-between;
498
+ }
499
+ .modal-buttons button {
500
+ padding: 5px 10px;
501
+ border: none;
502
+ border-radius: 5px;
503
+ cursor: pointer;
504
+ }
505
+ .modal-buttons button:first-child {
506
+ background: #ccc;
507
+ }
508
+ .modal-buttons button:last-child {
509
+ background: #007bff;
510
+ color: white;
511
+ }
512
+ .approve-tools-panel {
513
+ display: flex;
514
+ flex-direction: column;
515
+ gap: var(--spacing-small);
516
+ margin-top: var(--spacing-small);
517
+ padding: var(--spacing-small);
518
+ background-color: #FFFFE0;
519
+ border: 1px solid var(--button-border-color);
520
+ box-shadow: var(--button-drop-shadow);
521
+ margin-left: calc(-1 * var(--spacing-medium));
522
+ margin-right: calc(-1 * var(--spacing-medium));
523
+ color: black;
524
+ }
525
+ .approve-tools-header {
526
+ font-size: 0.75em;
527
+ text-align: center;
528
+ }
529
+ .approve-tools-buttons {
530
+ display: flex;
531
+ justify-content: center;
532
+ flex-wrap: wrap;
533
+ gap: var(--spacing-small);
534
+ margin: var(--spacing-small) 0;
535
+ }
536
+ .approve-tools-button {
537
+ background-color: var(--button-background-color);
538
+ color: var(--button-text-color);
539
+ border: 1px solid var(--button-border-color);
540
+ border-radius: var(--border-radius);
541
+ padding: 5px 5px;
542
+ font-size: 0.8em;
543
+ cursor: pointer;
544
+ margin: var(--spacing-small);
545
+ box-shadow: var(--button-drop-shadow);
546
+ }
547
+ .approve-tools-description {
548
+ text-align: center;
549
+ font-size: 0.75em;
550
+ color: var(--button-action-text-color);
551
+ padding: 0 var(--spacing-small) var(--spacing-small);
552
+ }
553
+ .invalid {
554
+ border-color: red;
555
+ }
556
+ .error-message {
557
+ color: red;
558
+ font-size: 0.8em;
559
+ margin-top: var(--spacing-small);
560
+ }
561
+ .loading-text {
562
+ display: flex;
563
+ align-items: flex-start;
564
+ justify-content: flex-start;
565
+ margin: 10px 0;
566
+ height: auto;
567
+ min-height: 30px;
568
+ padding: 8px 12px;
569
+ background:
570
+ linear-gradient(
571
+ 135deg,
572
+ rgba(0, 123, 255, 0.05) 0%,
573
+ rgba(0, 123, 255, 0.1) 100%);
574
+ border-left: 3px solid rgba(0, 123, 255, 0.3);
575
+ border-radius: 6px;
576
+ font-size: 0.9rem;
577
+ font-style: italic;
578
+ color: var(--button-text-color);
579
+ opacity: 0.8;
580
+ transition: all 0.3s ease;
581
+ word-wrap: break-word;
582
+ overflow-wrap: break-word;
583
+ line-height: 1.4;
584
+ }
585
+ .dark-theme .loading-text {
586
+ background:
587
+ linear-gradient(
588
+ 135deg,
589
+ rgba(100, 200, 255, 0.08) 0%,
590
+ rgba(100, 200, 255, 0.15) 100%);
591
+ border-left-color: rgba(100, 200, 255, 0.4);
592
+ color: var(--button-text-color);
593
+ }
594
+ .loading-text:hover {
595
+ opacity: 1;
596
+ transform: translateX(2px);
597
+ }
598
+ .loading-text .dot {
599
+ background-color: var(--button-text-color);
600
+ border-radius: 50%;
601
+ width: 6px;
602
+ height: 6px;
603
+ margin: 0 2px 0 8px;
604
+ display: inline-block;
605
+ animation: jump 1.2s infinite ease-in-out;
606
+ flex-shrink: 0;
607
+ align-self: center;
608
+ }
609
+ .dark-theme .loading-text .dot {
610
+ background-color: rgba(100, 200, 255, 0.7);
611
+ }
612
+ .loading-text .dot:nth-child(2) {
613
+ animation-delay: 0s;
614
+ }
615
+ .loading-text .dot:nth-child(3) {
616
+ animation-delay: 0.2s;
617
+ }
618
+ .loading-text .dot:nth-child(4) {
619
+ animation-delay: 0.4s;
620
+ }
621
+ @keyframes jump {
622
+ 0%, 80%, 100% {
623
+ transform: translateY(0);
624
+ opacity: 0.6;
625
+ }
626
+ 40% {
627
+ transform: translateY(-6px);
628
+ opacity: 1;
629
+ }
630
+ }
631
+ .llm-panel .approve-all-button {
632
+ background-color: var(--button-background-color-hover);
633
+ color: var(--button-text-color-hover);
634
+ border: 1px solid var(--button-border-color);
635
+ border-radius: var(--border-radius);
636
+ padding: 8px 15px;
637
+ font-size: 0.9em;
638
+ font-weight: bold;
639
+ cursor: pointer;
640
+ margin: var(--spacing-medium) 0;
641
+ box-shadow: var(--button-drop-shadow);
642
+ display: inline-block;
643
+ }
644
+ .llm-panel .approve-all-button:hover {
645
+ filter: brightness(1.1);
646
+ transform: translateY(-1px);
647
+ }
648
+ .modal-overlay {
649
+ position: fixed;
650
+ top: 0;
651
+ left: 0;
652
+ width: 100vw;
653
+ height: 100vh;
654
+ background-color: rgba(0, 0, 0, 0.5);
655
+ display: flex;
656
+ justify-content: center;
657
+ align-items: center;
658
+ z-index: 1000;
659
+ }
660
+ .tool-info-modal-content {
661
+ width: 90vw;
662
+ height: 90vh;
663
+ max-width: 90vw;
664
+ max-height: 90vh;
665
+ display: flex;
666
+ flex-direction: column;
667
+ background-color: white;
668
+ padding: 20px;
669
+ border-radius: 8px;
670
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
671
+ position: relative;
672
+ color: #333;
673
+ }
674
+ .tool-info-container {
675
+ display: flex;
676
+ flex-grow: 1;
677
+ flex-direction: row;
678
+ gap: 0;
679
+ margin: 0;
680
+ padding: 0;
681
+ }
682
+ .tool-info-section {
683
+ flex: 1;
684
+ display: flex;
685
+ flex-direction: column;
686
+ padding: 10px;
687
+ background-color: white;
688
+ }
689
+ .tool-info-json {
690
+ width: 100%;
691
+ height: 100%;
692
+ overflow: auto;
693
+ resize: none;
694
+ background-color: #f5f5f5;
695
+ border: 1px solid #ccc;
696
+ border-radius: 4px;
697
+ padding: 8px;
698
+ font-family: monospace;
699
+ flex-grow: 1;
700
+ }
701
+ .modal-buttons {
702
+ display: flex;
703
+ justify-content: flex-end;
704
+ margin-top: 10px;
705
+ }
706
+ .modal-buttons button {
707
+ padding: 8px 16px;
708
+ margin-left: 8px;
709
+ border: none;
710
+ border-radius: 4px;
711
+ background-color: #007bff;
712
+ color: white;
713
+ cursor: pointer;
714
+ }
715
+ .tool-status {
716
+ display: flex;
717
+ align-items: center;
718
+ justify-content: center;
719
+ margin-top: 4px;
720
+ font-size: 10px;
721
+ color: #666;
722
+ opacity: 0.7;
723
+ cursor: help;
724
+ }
725
+ .tool-status-dot {
726
+ width: 6px;
727
+ height: 6px;
728
+ border-radius: 50%;
729
+ margin-right: 4px;
730
+ display: inline-block;
731
+ cursor: help;
732
+ }
733
+ .tool-status-dot.loading {
734
+ background-color: #ffa500;
735
+ animation: pulse 1.5s ease-in-out infinite;
736
+ }
737
+ .tool-status-dot.ready {
738
+ background-color: #28a745;
739
+ }
740
+ .tool-status-dot.ready:hover {
741
+ background-color: #34ce57;
742
+ transform: scale(1.2);
743
+ transition: all 0.2s ease;
744
+ }
745
+ .tool-status-dot.error {
746
+ background-color: #dc3545;
747
+ }
748
+ .tool-status-text {
749
+ font-size: 9px;
750
+ font-weight: 300;
751
+ cursor: help;
752
+ }
753
+ .tool-status-text:hover {
754
+ opacity: 1;
755
+ transition: opacity 0.2s ease;
756
+ }
757
+ .dark-theme .tool-status {
758
+ color: #999;
759
+ }
760
+ .reasoning-section,
761
+ .searching-section {
762
+ margin: 1rem 0;
763
+ padding: 0.75rem;
764
+ border-radius: var(--border-radius);
765
+ border-left: 4px solid;
766
+ background-color: var(--reasoning-background-color, #f8f9fa);
767
+ }
768
+ .reasoning-section {
769
+ border-left-color: var(--reasoning-border-color, #007bff);
770
+ background-color: var(--reasoning-background-color, #f0f8ff);
771
+ }
772
+ .searching-section {
773
+ border-left-color: var(--searching-border-color, #28a745);
774
+ background-color: var(--searching-background-color, #f0fff0);
775
+ }
776
+ .reasoning-header,
777
+ .searching-header {
778
+ font-weight: 600;
779
+ font-size: 0.9rem;
780
+ margin-bottom: 0.5rem;
781
+ color: var(--prompt-text-color);
782
+ opacity: 0.8;
783
+ }
784
+ .reasoning-content,
785
+ .searching-content {
786
+ font-size: 0.85rem;
787
+ line-height: 1.4;
788
+ color: var(--prompt-text-color);
789
+ opacity: 0.9;
790
+ font-style: italic;
791
+ }
792
+ .dark-theme .reasoning-section {
793
+ background-color: var(--reasoning-background-color-dark, #1a1a2e);
794
+ border-left-color: var(--reasoning-border-color-dark, #4a9eff);
795
+ }
796
+ .dark-theme .searching-section {
797
+ background-color: var(--searching-background-color-dark, #1a2e1a);
798
+ border-left-color: var(--searching-border-color-dark, #4ade80);
799
+ }
800
+ .dark-theme .reasoning-header,
801
+ .dark-theme .searching-header,
802
+ .dark-theme .reasoning-content,
803
+ .dark-theme .searching-content {
804
+ color: var(--response-text-color);
805
+ }
806
+ .streaming-response {
807
+ animation: fadeIn 0.3s ease-in-out;
808
+ }
809
+ @keyframes fadeIn {
810
+ from {
811
+ opacity: 0;
812
+ }
813
+ to {
814
+ opacity: 1;
815
+ }
816
+ }
817
+ .thinking-block-container {
818
+ margin-bottom: var(--spacing-medium);
819
+ }
820
+ .thinking-section {
821
+ border: 1px solid var(--input-border-color);
822
+ border-radius: var(--border-radius);
823
+ padding: var(--spacing-medium);
824
+ background-color: var(--input-background-color);
825
+ margin-bottom: var(--spacing-small);
826
+ }
827
+ .thinking-header {
828
+ display: flex;
829
+ justify-content: space-between;
830
+ align-items: center;
831
+ font-weight: bold;
832
+ color: var(--title-text-color);
833
+ margin-bottom: var(--spacing-small);
834
+ font-size: 0.9rem;
835
+ white-space: nowrap;
836
+ overflow: hidden;
837
+ text-overflow: ellipsis;
838
+ }
839
+ .thinking-navigation {
840
+ display: flex;
841
+ align-items: center;
842
+ gap: var(--spacing-small);
843
+ }
844
+ .thinking-nav-btn {
845
+ background: var(--button-background-color);
846
+ border: 1px solid var(--button-border-color);
847
+ border-radius: 4px;
848
+ padding: 2px 6px;
849
+ cursor: pointer;
850
+ font-size: 12px;
851
+ line-height: 1;
852
+ min-width: 20px;
853
+ height: 20px;
854
+ display: flex;
855
+ align-items: center;
856
+ justify-content: center;
857
+ }
858
+ .thinking-nav-btn:hover:not(:disabled) {
859
+ background: var(--button-background-color-hover);
860
+ color: var(--button-text-color-hover);
861
+ }
862
+ .thinking-nav-btn:disabled {
863
+ background: var(--button-disabled-background-color);
864
+ color: var(--button-disabled-color);
865
+ cursor: not-allowed;
866
+ }
867
+ .thinking-counter {
868
+ font-size: 11px;
869
+ color: var(--title-text-color);
870
+ font-weight: normal;
871
+ min-width: 30px;
872
+ text-align: center;
873
+ }
874
+ .thinking-content {
875
+ color: var(--input-text-color);
876
+ font-size: 0.85rem;
877
+ line-height: 1.4;
878
+ white-space: pre-wrap;
879
+ }
880
+ button[data-pending=true] {
881
+ opacity: 0.55;
882
+ pointer-events: none;
883
+ position: relative;
884
+ }
885
+ button[data-pending=true]::after {
886
+ content: "\2026";
887
+ position: absolute;
888
+ top: 2px;
889
+ right: 6px;
890
+ font-weight: bold;
891
+ opacity: 0.6;
892
+ font-size: 0.8em;
893
+ }
894
+ .reasoning-section {
895
+ border-left: 3px solid #4a90e2;
896
+ }
897
+ .searching-section {
898
+ border-left: 3px solid #7b68ee;
899
+ }
900
+
901
+ /* src/AIChatPanel.css */
902
+ :root {
903
+ --ai-chat-user-bg: #e5e7eb;
904
+ --ai-chat-user-text: #1f2937;
905
+ --ai-chat-assistant-bg: transparent;
906
+ --ai-chat-assistant-text: #374151;
907
+ --ai-chat-message-radius: 12px;
908
+ --ai-chat-message-padding: 12px 16px;
909
+ --ai-chat-message-max-width: 85%;
910
+ --ai-chat-input-bg: #ffffff;
911
+ --ai-chat-input-border: #d1d5db;
912
+ --ai-chat-input-text: #1f2937;
913
+ --ai-chat-input-placeholder: #9ca3af;
914
+ --ai-chat-input-focus-border: #3b82f6;
915
+ --ai-chat-input-focus-ring: rgba(59, 130, 246, 0.2);
916
+ --ai-chat-input-radius: 12px;
917
+ --ai-chat-suggestion-bg: #f3f4f6;
918
+ --ai-chat-suggestion-border: #e5e7eb;
919
+ --ai-chat-suggestion-text: #374151;
920
+ --ai-chat-suggestion-hover-bg: #e5e7eb;
921
+ --ai-chat-thinking-bg: #f0f9ff;
922
+ --ai-chat-thinking-border: #bae6fd;
923
+ --ai-chat-thinking-text: #0c4a6e;
924
+ --ai-chat-thinking-icon: #0369a1;
925
+ --ai-chat-loading-dot: #9ca3af;
926
+ --ai-chat-footer-text: #9ca3af;
927
+ --ai-chat-footer-link: #3b82f6;
928
+ --ai-chat-tools-ready: #22c55e;
929
+ --ai-chat-tools-loading: #f59e0b;
930
+ --ai-chat-tools-error: #ef4444;
931
+ }
932
+ .dark-theme {
933
+ --ai-chat-user-bg: #374151;
934
+ --ai-chat-user-text: #f9fafb;
935
+ --ai-chat-assistant-bg: transparent;
936
+ --ai-chat-assistant-text: #e5e7eb;
937
+ --ai-chat-input-bg: #1f2937;
938
+ --ai-chat-input-border: #374151;
939
+ --ai-chat-input-text: #f9fafb;
940
+ --ai-chat-input-placeholder: #6b7280;
941
+ --ai-chat-input-focus-border: #60a5fa;
942
+ --ai-chat-input-focus-ring: rgba(96, 165, 250, 0.2);
943
+ --ai-chat-suggestion-bg: #1f2937;
944
+ --ai-chat-suggestion-border: #374151;
945
+ --ai-chat-suggestion-text: #e5e7eb;
946
+ --ai-chat-suggestion-hover-bg: #374151;
947
+ --ai-chat-thinking-bg: #0c4a6e;
948
+ --ai-chat-thinking-border: #0369a1;
949
+ --ai-chat-thinking-text: #e0f2fe;
950
+ --ai-chat-thinking-icon: #7dd3fc;
951
+ --ai-chat-loading-dot: #6b7280;
952
+ --ai-chat-footer-text: #6b7280;
953
+ --ai-chat-footer-link: #60a5fa;
954
+ }
955
+ .ai-chat-panel {
956
+ display: flex;
957
+ flex-direction: column;
958
+ flex: 1;
959
+ width: 100%;
960
+ min-width: 0;
961
+ min-height: 0;
962
+ overflow: hidden;
963
+ background-color: var(--ai-chat-bg, #ffffff);
964
+ font-family:
965
+ -apple-system,
966
+ BlinkMacSystemFont,
967
+ "Segoe UI",
968
+ Roboto,
969
+ sans-serif;
970
+ font-size: 14px;
971
+ color: var(--ai-chat-assistant-text);
972
+ }
973
+ .dark-theme.ai-chat-panel {
974
+ background-color: var(--ai-chat-bg, #111827);
975
+ }
976
+ .ai-chat-panel__title {
977
+ padding: 12px 16px;
978
+ font-size: 16px;
979
+ font-weight: 600;
980
+ border-bottom: 1px solid var(--ai-sidebar-border, #e5e7eb);
981
+ flex-shrink: 0;
982
+ }
983
+ .ai-chat-panel__messages {
984
+ flex: 1;
985
+ overflow-y: auto;
986
+ overflow-x: hidden;
987
+ padding: 16px;
988
+ display: flex;
989
+ flex-direction: column;
990
+ gap: 16px;
991
+ min-width: 0;
992
+ min-height: 0;
993
+ }
994
+ .ai-chat-entry {
995
+ display: flex;
996
+ flex-direction: column;
997
+ gap: 12px;
998
+ }
999
+ .ai-chat-message {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ max-width: var(--ai-chat-message-max-width);
1003
+ min-width: 0;
1004
+ word-wrap: break-word;
1005
+ overflow-wrap: break-word;
1006
+ }
1007
+ .ai-chat-message--user {
1008
+ align-self: flex-end;
1009
+ }
1010
+ .ai-chat-message--user .ai-chat-message__content {
1011
+ background-color: var(--ai-chat-user-bg);
1012
+ color: var(--ai-chat-user-text);
1013
+ border-radius: var(--ai-chat-message-radius);
1014
+ border-bottom-right-radius: 4px;
1015
+ padding: var(--ai-chat-message-padding);
1016
+ }
1017
+ .ai-chat-message--assistant {
1018
+ align-self: flex-start;
1019
+ max-width: 100%;
1020
+ }
1021
+ .ai-chat-message--assistant .ai-chat-message__content {
1022
+ background-color: var(--ai-chat-assistant-bg);
1023
+ color: var(--ai-chat-assistant-text);
1024
+ padding: 4px 0;
1025
+ word-wrap: break-word;
1026
+ overflow-wrap: break-word;
1027
+ min-width: 0;
1028
+ }
1029
+ .ai-chat-message__content p {
1030
+ margin: 0 0 0.75em 0;
1031
+ line-height: 1.6;
1032
+ }
1033
+ .ai-chat-message__content p:last-child {
1034
+ margin-bottom: 0;
1035
+ }
1036
+ .ai-chat-message__content ul,
1037
+ .ai-chat-message__content ol {
1038
+ margin: 0 0 1em 0;
1039
+ padding-left: 1.5em;
1040
+ line-height: 1.6;
1041
+ }
1042
+ .ai-chat-message__content li {
1043
+ margin: 0.5em 0;
1044
+ line-height: 1.6;
1045
+ }
1046
+ .ai-chat-message__content li:first-child {
1047
+ margin-top: 0;
1048
+ }
1049
+ .ai-chat-message__content li:last-child {
1050
+ margin-bottom: 0;
1051
+ }
1052
+ .ai-chat-message__content ul ul,
1053
+ .ai-chat-message__content ol ol,
1054
+ .ai-chat-message__content ul ol,
1055
+ .ai-chat-message__content ol ul {
1056
+ margin-top: 0.5em;
1057
+ margin-bottom: 0.5em;
1058
+ }
1059
+ .ai-chat-message__content h1,
1060
+ .ai-chat-message__content h2,
1061
+ .ai-chat-message__content h3,
1062
+ .ai-chat-message__content h4,
1063
+ .ai-chat-message__content h5,
1064
+ .ai-chat-message__content h6 {
1065
+ margin: 1.25em 0 0.75em 0;
1066
+ line-height: 1.4;
1067
+ font-weight: 600;
1068
+ }
1069
+ .ai-chat-message__content h1:first-child,
1070
+ .ai-chat-message__content h2:first-child,
1071
+ .ai-chat-message__content h3:first-child,
1072
+ .ai-chat-message__content h4:first-child,
1073
+ .ai-chat-message__content h5:first-child,
1074
+ .ai-chat-message__content h6:first-child {
1075
+ margin-top: 0;
1076
+ }
1077
+ .ai-chat-message__content table {
1078
+ margin: 1em 0;
1079
+ border-collapse: collapse;
1080
+ width: 100%;
1081
+ }
1082
+ .ai-chat-message__content th,
1083
+ .ai-chat-message__content td {
1084
+ padding: 0.5em 0.75em;
1085
+ border: 1px solid rgba(0, 0, 0, 0.1);
1086
+ line-height: 1.5;
1087
+ }
1088
+ .dark-theme .ai-chat-message__content th,
1089
+ .dark-theme .ai-chat-message__content td {
1090
+ border-color: rgba(255, 255, 255, 0.1);
1091
+ }
1092
+ .ai-chat-message__content th {
1093
+ font-weight: 600;
1094
+ background-color: rgba(0, 0, 0, 0.05);
1095
+ }
1096
+ .dark-theme .ai-chat-message__content th {
1097
+ background-color: rgba(255, 255, 255, 0.05);
1098
+ }
1099
+ .ai-chat-message__content tr {
1100
+ line-height: 1.5;
1101
+ }
1102
+ .ai-chat-message__content blockquote {
1103
+ margin: 1em 0;
1104
+ padding: 0.5em 1em;
1105
+ border-left: 4px solid rgba(0, 0, 0, 0.2);
1106
+ background-color: rgba(0, 0, 0, 0.02);
1107
+ line-height: 1.6;
1108
+ }
1109
+ .dark-theme .ai-chat-message__content blockquote {
1110
+ border-left-color: rgba(255, 255, 255, 0.2);
1111
+ background-color: rgba(255, 255, 255, 0.02);
1112
+ }
1113
+ .ai-chat-message__content hr {
1114
+ margin: 1.5em 0;
1115
+ border: none;
1116
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
1117
+ }
1118
+ .dark-theme .ai-chat-message__content hr {
1119
+ border-top-color: rgba(255, 255, 255, 0.1);
1120
+ }
1121
+ .ai-chat-message__content code {
1122
+ background-color: rgba(0, 0, 0, 0.05);
1123
+ padding: 0.2em 0.4em;
1124
+ border-radius: 4px;
1125
+ font-size: 0.9em;
1126
+ font-family:
1127
+ "SF Mono",
1128
+ Monaco,
1129
+ Consolas,
1130
+ monospace;
1131
+ }
1132
+ .dark-theme .ai-chat-message__content code {
1133
+ background-color: rgba(255, 255, 255, 0.1);
1134
+ }
1135
+ .ai-chat-message__content pre {
1136
+ margin: 0.75em 0;
1137
+ border-radius: 8px;
1138
+ overflow: hidden;
1139
+ }
1140
+ .ai-chat-message__content pre code {
1141
+ background: none;
1142
+ padding: 0;
1143
+ }
1144
+ .ai-chat-message__content a {
1145
+ color: var(--ai-chat-footer-link);
1146
+ text-decoration: none;
1147
+ }
1148
+ .ai-chat-message__content a:hover {
1149
+ text-decoration: underline;
1150
+ }
1151
+ .ai-chat-message__actions {
1152
+ display: flex;
1153
+ gap: 4px;
1154
+ margin-top: 8px;
1155
+ opacity: 0;
1156
+ transition: opacity 0.2s;
1157
+ }
1158
+ .ai-chat-message:hover .ai-chat-message__actions {
1159
+ opacity: 1;
1160
+ }
1161
+ .ai-chat-thinking {
1162
+ background-color: var(--ai-chat-thinking-bg);
1163
+ border: 1px solid var(--ai-chat-thinking-border);
1164
+ border-radius: 8px;
1165
+ padding: 12px;
1166
+ margin-bottom: 12px;
1167
+ font-size: 13px;
1168
+ }
1169
+ .ai-chat-thinking__header {
1170
+ display: flex;
1171
+ align-items: center;
1172
+ gap: 8px;
1173
+ margin-bottom: 8px;
1174
+ color: var(--ai-chat-thinking-text);
1175
+ }
1176
+ .ai-chat-thinking__icon {
1177
+ color: var(--ai-chat-thinking-icon);
1178
+ }
1179
+ .ai-chat-thinking__title {
1180
+ font-weight: 600;
1181
+ flex: 1;
1182
+ }
1183
+ .ai-chat-thinking__nav {
1184
+ display: flex;
1185
+ align-items: center;
1186
+ gap: 4px;
1187
+ font-size: 12px;
1188
+ }
1189
+ .ai-chat-thinking__nav button {
1190
+ background: none;
1191
+ border: none;
1192
+ color: var(--ai-chat-thinking-icon);
1193
+ cursor: pointer;
1194
+ padding: 2px 6px;
1195
+ font-size: 14px;
1196
+ border-radius: 4px;
1197
+ }
1198
+ .ai-chat-thinking__nav button:hover:not(:disabled) {
1199
+ background-color: rgba(0, 0, 0, 0.1);
1200
+ }
1201
+ .ai-chat-thinking__nav button:disabled {
1202
+ opacity: 0.4;
1203
+ cursor: not-allowed;
1204
+ }
1205
+ .ai-chat-thinking__content {
1206
+ color: var(--ai-chat-thinking-text);
1207
+ opacity: 0.9;
1208
+ line-height: 1.5;
1209
+ }
1210
+ .ai-chat-loading {
1211
+ display: flex;
1212
+ align-items: center;
1213
+ gap: 4px;
1214
+ color: var(--ai-chat-loading-dot);
1215
+ }
1216
+ .ai-chat-loading__dots {
1217
+ display: flex;
1218
+ gap: 4px;
1219
+ }
1220
+ .ai-chat-loading__dot {
1221
+ width: 6px;
1222
+ height: 6px;
1223
+ background-color: var(--ai-chat-loading-dot);
1224
+ border-radius: 50%;
1225
+ animation: ai-chat-dot-bounce 1.4s ease-in-out infinite both;
1226
+ }
1227
+ .ai-chat-loading__dot:nth-child(1) {
1228
+ animation-delay: -0.32s;
1229
+ }
1230
+ .ai-chat-loading__dot:nth-child(2) {
1231
+ animation-delay: -0.16s;
1232
+ }
1233
+ @keyframes ai-chat-dot-bounce {
1234
+ 0%, 80%, 100% {
1235
+ transform: scale(0.6);
1236
+ opacity: 0.4;
1237
+ }
1238
+ 40% {
1239
+ transform: scale(1);
1240
+ opacity: 1;
1241
+ }
1242
+ }
1243
+ .ai-chat-suggestions {
1244
+ display: flex;
1245
+ flex-wrap: wrap;
1246
+ gap: 8px;
1247
+ margin-top: 8px;
1248
+ width: 100%;
1249
+ min-width: 0;
1250
+ }
1251
+ .ai-chat-suggestions__button {
1252
+ font-size: 13px;
1253
+ white-space: normal;
1254
+ text-align: left;
1255
+ height: auto;
1256
+ padding: 8px 12px;
1257
+ min-width: 0;
1258
+ max-width: 100%;
1259
+ word-wrap: break-word;
1260
+ overflow-wrap: break-word;
1261
+ }
1262
+ .ai-chat-panel__new-conversation {
1263
+ padding: 8px 16px;
1264
+ display: flex;
1265
+ justify-content: center;
1266
+ flex-shrink: 0;
1267
+ }
1268
+ .ai-chat-new-conversation {
1269
+ width: 100%;
1270
+ }
1271
+ .ai-chat-panel__input {
1272
+ display: flex;
1273
+ align-items: flex-end;
1274
+ gap: 8px;
1275
+ padding: 12px 16px;
1276
+ border-top: 1px solid var(--ai-sidebar-border, #e5e7eb);
1277
+ flex-shrink: 0;
1278
+ }
1279
+ .ai-chat-input {
1280
+ flex: 1;
1281
+ min-height: 40px;
1282
+ max-height: 200px;
1283
+ padding: 10px 14px;
1284
+ background-color: var(--ai-chat-input-bg);
1285
+ border: 1px solid var(--ai-chat-input-border);
1286
+ border-radius: var(--ai-chat-input-radius);
1287
+ color: var(--ai-chat-input-text);
1288
+ font-size: 14px;
1289
+ font-family: inherit;
1290
+ line-height: 1.5;
1291
+ resize: none;
1292
+ outline: none;
1293
+ transition: border-color 0.2s, box-shadow 0.2s;
1294
+ }
1295
+ .ai-chat-input::placeholder {
1296
+ color: var(--ai-chat-input-placeholder);
1297
+ }
1298
+ .ai-chat-input:focus {
1299
+ border-color: var(--ai-chat-input-focus-border);
1300
+ box-shadow: 0 0 0 3px var(--ai-chat-input-focus-ring);
1301
+ }
1302
+ .ai-chat-send-button {
1303
+ display: flex;
1304
+ align-items: center;
1305
+ justify-content: center;
1306
+ width: 24px;
1307
+ height: 24px;
1308
+ padding: 0;
1309
+ border: none;
1310
+ border-radius: 6px;
1311
+ background-color: var(--ai-button-primary-bg, #3b82f6);
1312
+ color: white;
1313
+ cursor: pointer;
1314
+ transition: background-color 0.15s, opacity 0.15s;
1315
+ flex-shrink: 0;
1316
+ }
1317
+ .ai-chat-send-button:hover:not(:disabled) {
1318
+ background-color: var(--ai-button-primary-hover, #2563eb);
1319
+ }
1320
+ .ai-chat-send-button--disabled,
1321
+ .ai-chat-send-button:disabled {
1322
+ opacity: 0.4;
1323
+ cursor: not-allowed;
1324
+ }
1325
+ .ai-chat-send-button--stop {
1326
+ background-color: var(--ai-chat-tools-error, #ef4444);
1327
+ }
1328
+ .ai-chat-send-button--stop:hover:not(:disabled) {
1329
+ background-color: #dc2626;
1330
+ }
1331
+ .ai-chat-panel__footer {
1332
+ display: flex;
1333
+ align-items: center;
1334
+ justify-content: space-between;
1335
+ padding: 8px 16px;
1336
+ font-size: 12px;
1337
+ color: var(--ai-chat-footer-text);
1338
+ border-top: 1px solid var(--ai-sidebar-border, #e5e7eb);
1339
+ flex-shrink: 0;
1340
+ }
1341
+ .ai-chat-tools-status {
1342
+ display: flex;
1343
+ align-items: center;
1344
+ gap: 6px;
1345
+ }
1346
+ .ai-chat-tools-status__dot {
1347
+ width: 8px;
1348
+ height: 8px;
1349
+ border-radius: 50%;
1350
+ }
1351
+ .ai-chat-tools-status__dot.ready {
1352
+ background-color: var(--ai-chat-tools-ready);
1353
+ }
1354
+ .ai-chat-tools-status__dot.loading {
1355
+ background-color: var(--ai-chat-tools-loading);
1356
+ animation: ai-chat-pulse 1.5s ease-in-out infinite;
1357
+ }
1358
+ .ai-chat-tools-status__dot.error {
1359
+ background-color: var(--ai-chat-tools-error);
1360
+ }
1361
+ @keyframes ai-chat-pulse {
1362
+ 0%, 100% {
1363
+ opacity: 1;
1364
+ }
1365
+ 50% {
1366
+ opacity: 0.4;
1367
+ }
1368
+ }
1369
+ .ai-chat-powered-by {
1370
+ display: flex;
1371
+ align-items: center;
1372
+ gap: 6px;
1373
+ }
1374
+ .ai-chat-powered-by a {
1375
+ display: flex;
1376
+ align-items: center;
1377
+ gap: 4px;
1378
+ color: var(--ai-chat-footer-link);
1379
+ text-decoration: none;
1380
+ }
1381
+ .ai-chat-powered-by a:hover {
1382
+ text-decoration: underline;
1383
+ }
1384
+ .ai-chat-icon {
1385
+ width: 20px;
1386
+ height: 20px;
1387
+ }
1388
+ .ai-chat-icon-sm {
1389
+ width: 16px;
1390
+ height: 16px;
1391
+ }
1392
+ .ai-chat-panel__messages::-webkit-scrollbar {
1393
+ width: 6px;
1394
+ }
1395
+ .ai-chat-panel__messages::-webkit-scrollbar-track {
1396
+ background: transparent;
1397
+ }
1398
+ .ai-chat-panel__messages::-webkit-scrollbar-thumb {
1399
+ background-color: rgba(0, 0, 0, 0.2);
1400
+ border-radius: 3px;
1401
+ }
1402
+ .dark-theme .ai-chat-panel__messages::-webkit-scrollbar-thumb {
1403
+ background-color: rgba(255, 255, 255, 0.2);
1404
+ }
1405
+ .ai-chat-panel__messages::-webkit-scrollbar-thumb:hover {
1406
+ background-color: rgba(0, 0, 0, 0.3);
1407
+ }
1408
+ .dark-theme .ai-chat-panel__messages::-webkit-scrollbar-thumb:hover {
1409
+ background-color: rgba(255, 255, 255, 0.3);
1410
+ }
1411
+ @media (max-width: 480px) {
1412
+ .ai-chat-message {
1413
+ max-width: 95%;
1414
+ }
1415
+ .ai-chat-suggestions {
1416
+ flex-direction: column;
1417
+ }
1418
+ .ai-chat-suggestions__button {
1419
+ width: 100%;
1420
+ }
1421
+ }
1422
+ .ai-chat-panel {
1423
+ container-type: inline-size;
1424
+ container-name: chat-panel;
1425
+ }
1426
+ @container chat-panel (max-width: 380px) {
1427
+ .ai-chat-suggestions {
1428
+ flex-direction: column;
1429
+ }
1430
+ .ai-chat-suggestions__button {
1431
+ width: 100%;
1432
+ min-width: 0;
1433
+ text-align: left;
1434
+ word-wrap: break-word;
1435
+ overflow-wrap: break-word;
1436
+ hyphens: auto;
1437
+ }
1438
+ .ai-chat-message__content {
1439
+ word-wrap: break-word;
1440
+ overflow-wrap: break-word;
1441
+ hyphens: auto;
1442
+ }
1443
+ .ai-chat-panel__messages {
1444
+ padding: 12px;
1445
+ }
1446
+ .ai-chat-panel__input {
1447
+ padding: 10px 12px;
1448
+ }
1449
+ .ai-chat-input {
1450
+ min-height: 36px;
1451
+ padding: 8px 12px;
1452
+ font-size: 13px;
1453
+ }
1454
+ }
1455
+ @container chat-panel (max-width: 320px) {
1456
+ .ai-chat-panel__messages {
1457
+ padding: 8px;
1458
+ }
1459
+ .ai-chat-panel__input {
1460
+ padding: 8px;
1461
+ gap: 6px;
1462
+ }
1463
+ .ai-chat-suggestions__button {
1464
+ padding: 6px 10px;
1465
+ font-size: 12px;
1466
+ }
1467
+ .ai-chat-send-button {
1468
+ width: 36px;
1469
+ height: 36px;
1470
+ }
1471
+ }
1472
+ .ai-chat-panel__input-container {
1473
+ margin: 12px 16px;
1474
+ border: 1px solid var(--ai-chat-input-border);
1475
+ border-radius: var(--ai-chat-input-radius);
1476
+ background-color: var(--ai-chat-input-bg);
1477
+ flex-shrink: 0;
1478
+ transition: border-color 0.2s, box-shadow 0.2s;
1479
+ }
1480
+ .ai-chat-panel__input-container:focus-within {
1481
+ border-color: var(--ai-chat-input-focus-border);
1482
+ box-shadow: 0 0 0 3px var(--ai-chat-input-focus-ring);
1483
+ }
1484
+ .ai-chat-panel__input-container--dropdown-open {
1485
+ border-color: var(--ai-chat-input-focus-border);
1486
+ }
1487
+ .ai-chat-panel__input-container .ai-chat-panel__input {
1488
+ border-top: none;
1489
+ padding: 8px 8px 4px 8px;
1490
+ }
1491
+ .ai-chat-panel__input-container .ai-chat-input {
1492
+ border: none;
1493
+ background: transparent;
1494
+ padding: 4px 8px;
1495
+ border-radius: 0;
1496
+ }
1497
+ .ai-chat-panel__input-container .ai-chat-input:focus {
1498
+ border-color: transparent;
1499
+ box-shadow: none;
1500
+ }
1501
+ .ai-chat-panel__input-footer {
1502
+ display: flex;
1503
+ align-items: center;
1504
+ justify-content: space-between;
1505
+ gap: 8px;
1506
+ padding: 0 8px 8px 8px;
1507
+ flex-shrink: 0;
1508
+ }
1509
+ .ai-chat-panel__input-footer-spacer {
1510
+ flex: 1;
1511
+ }
1512
+ .ai-chat-agent-selector {
1513
+ position: relative;
1514
+ }
1515
+ .ai-chat-agent-selector__trigger {
1516
+ display: flex;
1517
+ align-items: center;
1518
+ gap: 4px;
1519
+ padding: 2px 6px;
1520
+ background: transparent;
1521
+ border: none;
1522
+ border-radius: 4px;
1523
+ color: var(--ai-chat-footer-text, #6b7280);
1524
+ font-size: 12px;
1525
+ font-family: inherit;
1526
+ cursor: pointer;
1527
+ transition: background-color 0.15s, color 0.15s;
1528
+ }
1529
+ .ai-chat-agent-selector__trigger:hover {
1530
+ background-color: var(--ai-button-ghost-hover, rgba(0, 0, 0, 0.04));
1531
+ color: var(--ai-chat-assistant-text);
1532
+ }
1533
+ .ai-chat-agent-selector__trigger:disabled {
1534
+ opacity: 0.5;
1535
+ cursor: not-allowed;
1536
+ }
1537
+ .ai-chat-agent-selector__label {
1538
+ font-weight: 500;
1539
+ }
1540
+ .ai-chat-agent-selector__dropdown-inside .ai-chat-agent-selector__option {
1541
+ border-radius: 0;
1542
+ }
1543
+ .ai-chat-agent-selector__dropdown-inside .ai-chat-agent-selector__option:first-child {
1544
+ border-top-left-radius: 0;
1545
+ border-top-right-radius: 0;
1546
+ }
1547
+ .ai-chat-agent-selector__dropdown-inside .ai-chat-agent-selector__option:last-child {
1548
+ border-bottom-left-radius: calc(var(--ai-chat-input-radius) - 1px);
1549
+ border-bottom-right-radius: calc(var(--ai-chat-input-radius) - 1px);
1550
+ }
1551
+ .ai-chat-agent-selector__dropdown {
1552
+ position: absolute;
1553
+ bottom: 100%;
1554
+ left: 0;
1555
+ min-width: 200px;
1556
+ max-width: 280px;
1557
+ margin-bottom: 6px;
1558
+ background-color: var(--ai-select-bg, #ffffff);
1559
+ border: 1px solid var(--ai-select-border, #d1d5db);
1560
+ border-radius: 8px;
1561
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
1562
+ z-index: 1000;
1563
+ overflow: hidden;
1564
+ animation: ai-chat-dropdown-appear 0.15s ease-out;
1565
+ }
1566
+ .dark-theme .ai-chat-agent-selector__dropdown {
1567
+ background-color: var(--ai-select-bg, #1f2937);
1568
+ border-color: var(--ai-select-border, #374151);
1569
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
1570
+ }
1571
+ .ai-chat-agent-selector__dropdown-inside {
1572
+ background-color: var(--ai-select-bg, #f9fafb);
1573
+ overflow: hidden;
1574
+ animation: ai-chat-dropdown-inside-appear 0.15s ease-out;
1575
+ max-height: 200px;
1576
+ overflow-y: auto;
1577
+ }
1578
+ .dark-theme .ai-chat-agent-selector__dropdown-inside {
1579
+ background-color: var(--ai-select-bg, #1f2937);
1580
+ }
1581
+ @keyframes ai-chat-dropdown-inside-appear {
1582
+ from {
1583
+ opacity: 0;
1584
+ max-height: 0;
1585
+ }
1586
+ to {
1587
+ opacity: 1;
1588
+ max-height: 200px;
1589
+ }
1590
+ }
1591
+ @keyframes ai-chat-dropdown-appear {
1592
+ from {
1593
+ opacity: 0;
1594
+ transform: translateY(4px);
1595
+ }
1596
+ to {
1597
+ opacity: 1;
1598
+ transform: translateY(0);
1599
+ }
1600
+ }
1601
+ .ai-chat-agent-selector__option {
1602
+ display: flex;
1603
+ align-items: center;
1604
+ gap: 8px;
1605
+ width: 100%;
1606
+ padding: 8px 10px;
1607
+ background: none;
1608
+ border: none;
1609
+ color: var(--ai-select-text, #1f2937);
1610
+ font-size: 12px;
1611
+ font-family: inherit;
1612
+ text-align: left;
1613
+ cursor: pointer;
1614
+ transition: background-color 0.15s;
1615
+ }
1616
+ .dark-theme .ai-chat-agent-selector__option {
1617
+ color: var(--ai-select-text, #f3f4f6);
1618
+ }
1619
+ .ai-chat-agent-selector__option:hover {
1620
+ background-color: var(--ai-select-item-hover, #f3f4f6);
1621
+ }
1622
+ .dark-theme .ai-chat-agent-selector__option:hover {
1623
+ background-color: var(--ai-select-item-hover, #374151);
1624
+ }
1625
+ .ai-chat-agent-selector__option--selected {
1626
+ background-color: var(--ai-select-item-selected, #eff6ff);
1627
+ }
1628
+ .dark-theme .ai-chat-agent-selector__option--selected {
1629
+ background-color: var(--ai-select-item-selected, #1e3a5f);
1630
+ }
1631
+ .ai-chat-agent-selector__avatar {
1632
+ width: 20px;
1633
+ height: 20px;
1634
+ border-radius: 50%;
1635
+ object-fit: cover;
1636
+ flex-shrink: 0;
1637
+ }
1638
+ .ai-chat-agent-selector__option-avatar {
1639
+ width: 24px;
1640
+ height: 24px;
1641
+ border-radius: 50%;
1642
+ object-fit: cover;
1643
+ flex-shrink: 0;
1644
+ }
1645
+ .ai-chat-agent-selector__option-icon {
1646
+ display: flex;
1647
+ color: var(--ai-chat-footer-text, #9ca3af);
1648
+ }
1649
+ .ai-chat-agent-selector__option-content {
1650
+ flex: 1;
1651
+ min-width: 0;
1652
+ }
1653
+ .ai-chat-agent-selector__option-label {
1654
+ display: block;
1655
+ font-weight: 500;
1656
+ }
1657
+ .ai-chat-agent-selector__option-description {
1658
+ display: block;
1659
+ font-size: 11px;
1660
+ color: var(--ai-sidebar-text-muted, #6b7280);
1661
+ margin-top: 2px;
1662
+ white-space: nowrap;
1663
+ overflow: hidden;
1664
+ text-overflow: ellipsis;
1665
+ }
1666
+ .ai-chat-agent-selector__option-check {
1667
+ display: flex;
1668
+ color: var(--ai-button-primary-bg, #3b82f6);
1669
+ }
1670
+ @container chat-panel (max-width: 380px) {
1671
+ .ai-chat-panel__input-container {
1672
+ margin: 10px 12px;
1673
+ }
1674
+ .ai-chat-panel__input-footer {
1675
+ padding: 0 6px 6px 6px;
1676
+ }
1677
+ .ai-chat-agent-selector__trigger {
1678
+ padding: 2px 6px;
1679
+ font-size: 12px;
1680
+ }
1681
+ .ai-chat-agent-selector__dropdown {
1682
+ min-width: 180px;
1683
+ }
1684
+ .ai-chat-agent-selector__dropdown-inside {
1685
+ max-height: 160px;
1686
+ }
1687
+ .ai-chat-send-button {
1688
+ width: 22px;
1689
+ height: 22px;
1690
+ }
1691
+ }
1692
+ @container chat-panel (max-width: 320px) {
1693
+ .ai-chat-panel__input-container {
1694
+ margin: 8px;
1695
+ }
1696
+ .ai-chat-panel__input-footer {
1697
+ padding: 0 6px 4px 6px;
1698
+ }
1699
+ .ai-chat-send-button {
1700
+ width: 20px;
1701
+ height: 20px;
1702
+ }
1703
+ }
1704
+ .ai-chat-agent-suggestion {
1705
+ display: flex;
1706
+ align-items: center;
1707
+ justify-content: space-between;
1708
+ gap: 12px;
1709
+ padding: 12px 16px;
1710
+ margin: 12px 0;
1711
+ background-color: var(--ai-chat-suggestion-bg);
1712
+ border: 1px solid var(--ai-chat-suggestion-border);
1713
+ border-radius: 8px;
1714
+ transition: border-color 0.15s, box-shadow 0.15s;
1715
+ }
1716
+ .ai-chat-agent-suggestion:hover {
1717
+ border-color: var(--ai-chat-input-focus-border);
1718
+ box-shadow: 0 0 0 2px var(--ai-chat-input-focus-ring);
1719
+ }
1720
+ .ai-chat-agent-suggestion__content {
1721
+ display: flex;
1722
+ align-items: center;
1723
+ gap: 10px;
1724
+ flex: 1;
1725
+ min-width: 0;
1726
+ }
1727
+ .ai-chat-agent-suggestion__icon {
1728
+ display: flex;
1729
+ align-items: center;
1730
+ justify-content: center;
1731
+ width: 32px;
1732
+ height: 32px;
1733
+ border-radius: 8px;
1734
+ background-color: var(--ai-button-primary-bg, #3b82f6);
1735
+ color: white;
1736
+ flex-shrink: 0;
1737
+ }
1738
+ .ai-chat-agent-suggestion__icon svg {
1739
+ width: 16px;
1740
+ height: 16px;
1741
+ }
1742
+ .ai-chat-agent-suggestion__text {
1743
+ display: flex;
1744
+ flex-direction: column;
1745
+ gap: 2px;
1746
+ min-width: 0;
1747
+ }
1748
+ .ai-chat-agent-suggestion__label {
1749
+ font-weight: 600;
1750
+ font-size: 14px;
1751
+ color: var(--ai-chat-assistant-text);
1752
+ }
1753
+ .ai-chat-agent-suggestion__reason {
1754
+ font-size: 12px;
1755
+ color: var(--ai-sidebar-text-muted, #6b7280);
1756
+ white-space: nowrap;
1757
+ overflow: hidden;
1758
+ text-overflow: ellipsis;
1759
+ }
1760
+ .ai-chat-agent-suggestion__button {
1761
+ flex-shrink: 0;
1762
+ }
1763
+ .dark-theme .ai-chat-agent-suggestion {
1764
+ background-color: var(--ai-chat-suggestion-bg);
1765
+ border-color: var(--ai-chat-suggestion-border);
1766
+ }
1767
+ .dark-theme .ai-chat-agent-suggestion__label {
1768
+ color: var(--ai-chat-assistant-text);
1769
+ }
1770
+ .dark-theme .ai-chat-agent-suggestion__reason {
1771
+ color: var(--ai-sidebar-text-muted, #9ca3af);
1772
+ }
1773
+ .ai-chat-agent-suggestion__avatar {
1774
+ width: 32px;
1775
+ height: 32px;
1776
+ border-radius: 8px;
1777
+ object-fit: cover;
1778
+ flex-shrink: 0;
1779
+ }
1780
+ .ai-chat-agent-suggestion--invalid {
1781
+ opacity: 0.7;
1782
+ }
1783
+ .ai-chat-agent-suggestion--invalid:hover {
1784
+ border-color: var(--ai-chat-suggestion-border);
1785
+ box-shadow: none;
1786
+ }
1787
+ .ai-chat-agent-suggestion__unavailable {
1788
+ font-size: 12px;
1789
+ color: var(--ai-sidebar-text-muted, #6b7280);
1790
+ font-style: italic;
1791
+ flex-shrink: 0;
1792
+ }
1793
+ .ai-chat-agent-suggestion--switched {
1794
+ background-color: rgba(34, 197, 94, 0.08);
1795
+ border-color: rgba(34, 197, 94, 0.3);
1796
+ }
1797
+ .ai-chat-agent-suggestion--switched:hover {
1798
+ border-color: rgba(34, 197, 94, 0.4);
1799
+ box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.1);
1800
+ }
1801
+ .ai-chat-agent-suggestion__icon--switched {
1802
+ background-color: #22c55e;
1803
+ }
1804
+ .ai-chat-agent-suggestion__switched-badge {
1805
+ display: flex;
1806
+ align-items: center;
1807
+ gap: 4px;
1808
+ padding: 6px 12px;
1809
+ background-color: rgba(34, 197, 94, 0.1);
1810
+ color: #16a34a;
1811
+ border-radius: 6px;
1812
+ font-size: 12px;
1813
+ font-weight: 600;
1814
+ flex-shrink: 0;
1815
+ }
1816
+ .dark-theme .ai-chat-agent-suggestion--switched {
1817
+ background-color: rgba(34, 197, 94, 0.12);
1818
+ border-color: rgba(34, 197, 94, 0.25);
1819
+ }
1820
+ .dark-theme .ai-chat-agent-suggestion__switched-badge {
1821
+ background-color: rgba(34, 197, 94, 0.15);
1822
+ color: #4ade80;
1823
+ }
1824
+ @container chat-panel (max-width: 380px) {
1825
+ .ai-chat-agent-suggestion {
1826
+ flex-direction: column;
1827
+ align-items: stretch;
1828
+ gap: 10px;
1829
+ padding: 10px 12px;
1830
+ }
1831
+ .ai-chat-agent-suggestion__button {
1832
+ width: 100%;
1833
+ }
1834
+ .ai-chat-agent-suggestion__reason {
1835
+ white-space: normal;
1836
+ }
1837
+ }
1838
+ .ai-chat-context-pill-wrapper {
1839
+ position: relative;
1840
+ flex-shrink: 0;
1841
+ }
1842
+ .ai-chat-context-pill {
1843
+ display: flex;
1844
+ align-items: center;
1845
+ gap: 6px;
1846
+ padding: 4px 10px;
1847
+ background: var(--ai-chat-suggestion-bg, #f3f4f6);
1848
+ border: none;
1849
+ border-radius: 999px;
1850
+ color: var(--ai-sidebar-text-muted, #6b7280);
1851
+ font-size: 12px;
1852
+ cursor: pointer;
1853
+ transition: all 0.15s ease;
1854
+ font-family: inherit;
1855
+ }
1856
+ .ai-chat-context-pill:hover {
1857
+ background: var(--ai-chat-suggestion-hover-bg, #e5e7eb);
1858
+ color: var(--ai-chat-input-text, #1f2937);
1859
+ }
1860
+ .ai-chat-context-pill--active {
1861
+ background: var(--ai-chat-suggestion-hover-bg, #e5e7eb);
1862
+ color: var(--ai-chat-input-text, #1f2937);
1863
+ }
1864
+ .ai-chat-context-pill--warning {
1865
+ color: #f59e0b;
1866
+ }
1867
+ .ai-chat-context-pill__count {
1868
+ display: none;
1869
+ border-radius: 999px;
1870
+ }
1871
+ .ai-chat-context-pill__label {
1872
+ font-weight: 400;
1873
+ color: var(--ai-sidebar-text-muted, #6b7280);
1874
+ font-size: 12px;
1875
+ }
1876
+ .ai-chat-context-pill__tokens {
1877
+ display: none;
1878
+ }
1879
+ .ai-chat-context-popover {
1880
+ position: absolute;
1881
+ bottom: calc(100% + 8px);
1882
+ left: 50%;
1883
+ transform: translateX(-50%);
1884
+ min-width: 280px;
1885
+ max-width: 360px;
1886
+ background: var(--ai-chat-input-bg, #ffffff);
1887
+ border: 1px solid var(--ai-chat-input-border, #e5e7eb);
1888
+ border-radius: 12px;
1889
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04);
1890
+ z-index: 1000;
1891
+ overflow: hidden;
1892
+ animation: contextPopoverSlideUp 0.15s ease-out;
1893
+ }
1894
+ .ai-chat-context-popover--detail {
1895
+ position: fixed;
1896
+ bottom: 80px;
1897
+ left: 50%;
1898
+ transform: translateX(-50%);
1899
+ width: calc(100vw - 100px);
1900
+ max-width: 800px;
1901
+ min-width: 500px;
1902
+ max-height: calc(100vh - 200px);
1903
+ z-index: 1001;
1904
+ }
1905
+ @keyframes contextPopoverSlideUp {
1906
+ from {
1907
+ opacity: 0;
1908
+ transform: translateX(-50%) translateY(4px);
1909
+ }
1910
+ to {
1911
+ opacity: 1;
1912
+ transform: translateX(-50%) translateY(0);
1913
+ }
1914
+ }
1915
+ .ai-chat-context-popover__header {
1916
+ display: flex;
1917
+ align-items: center;
1918
+ justify-content: space-between;
1919
+ padding: 12px 14px;
1920
+ border-bottom: 1px solid var(--ai-chat-suggestion-border, #e5e7eb);
1921
+ }
1922
+ .ai-chat-context-popover__title {
1923
+ font-weight: 600;
1924
+ font-size: 13px;
1925
+ color: var(--ai-chat-input-text, #1f2937);
1926
+ }
1927
+ .ai-chat-context-popover__close {
1928
+ display: flex;
1929
+ align-items: center;
1930
+ justify-content: center;
1931
+ width: 24px;
1932
+ height: 24px;
1933
+ background: transparent;
1934
+ border: none;
1935
+ border-radius: 6px;
1936
+ color: var(--ai-sidebar-text-muted, #9ca3af);
1937
+ font-size: 18px;
1938
+ cursor: pointer;
1939
+ transition: all 0.15s;
1940
+ }
1941
+ .ai-chat-context-popover__close:hover {
1942
+ background: var(--ai-chat-suggestion-bg, #f3f4f6);
1943
+ color: var(--ai-chat-input-text, #1f2937);
1944
+ }
1945
+ .ai-chat-context-popover__token-bar {
1946
+ padding: 10px 14px;
1947
+ background: var(--ai-chat-suggestion-bg, #f9fafb);
1948
+ }
1949
+ .ai-chat-context-popover__token-info {
1950
+ display: flex;
1951
+ align-items: baseline;
1952
+ gap: 4px;
1953
+ margin-bottom: 6px;
1954
+ font-size: 12px;
1955
+ }
1956
+ .ai-chat-context-popover__token-info > span:first-child {
1957
+ font-weight: 600;
1958
+ color: var(--ai-chat-input-text, #1f2937);
1959
+ }
1960
+ .ai-chat-context-popover__token-limit {
1961
+ color: var(--ai-sidebar-text-muted, #9ca3af);
1962
+ }
1963
+ .ai-chat-context-popover__tokens--warning {
1964
+ color: #f59e0b !important;
1965
+ }
1966
+ .ai-chat-context-popover__progress {
1967
+ height: 4px;
1968
+ background: var(--ai-chat-suggestion-border, #e5e7eb);
1969
+ border-radius: 2px;
1970
+ overflow: hidden;
1971
+ }
1972
+ .ai-chat-context-popover__progress-bar {
1973
+ height: 100%;
1974
+ background: #22c55e;
1975
+ border-radius: 2px;
1976
+ transition: width 0.3s ease;
1977
+ }
1978
+ .ai-chat-context-popover__progress-bar--warning {
1979
+ background: #f59e0b;
1980
+ }
1981
+ .ai-chat-context-popover__summary {
1982
+ display: flex;
1983
+ flex-direction: column;
1984
+ }
1985
+ .ai-chat-context-popover__sections {
1986
+ display: flex;
1987
+ flex-direction: column;
1988
+ max-height: 200px;
1989
+ overflow-y: auto;
1990
+ }
1991
+ .ai-chat-context-popover__section-item {
1992
+ display: flex;
1993
+ align-items: center;
1994
+ gap: 10px;
1995
+ padding: 10px 14px;
1996
+ border-bottom: 1px solid var(--ai-chat-suggestion-border, #f3f4f6);
1997
+ transition: background 0.1s;
1998
+ }
1999
+ .ai-chat-context-popover__section-item:last-child {
2000
+ border-bottom: none;
2001
+ }
2002
+ .ai-chat-context-popover__section-item--clickable {
2003
+ cursor: pointer;
2004
+ }
2005
+ .ai-chat-context-popover__section-item--clickable:hover {
2006
+ background: var(--ai-chat-suggestion-bg, #f9fafb);
2007
+ }
2008
+ .ai-chat-context-popover__section-icon {
2009
+ font-size: 14px;
2010
+ opacity: 0.7;
2011
+ }
2012
+ .ai-chat-context-popover__section-title {
2013
+ flex: 1;
2014
+ font-size: 13px;
2015
+ font-weight: 500;
2016
+ color: var(--ai-chat-input-text, #1f2937);
2017
+ white-space: nowrap;
2018
+ overflow: hidden;
2019
+ text-overflow: ellipsis;
2020
+ }
2021
+ .ai-chat-context-popover__section-tokens {
2022
+ font-size: 11px;
2023
+ color: var(--ai-sidebar-text-muted, #9ca3af);
2024
+ flex-shrink: 0;
2025
+ }
2026
+ .ai-chat-context-popover__expand-btn {
2027
+ display: flex;
2028
+ align-items: center;
2029
+ justify-content: center;
2030
+ width: 100%;
2031
+ padding: 10px 14px;
2032
+ background: transparent;
2033
+ border: none;
2034
+ border-top: 1px solid var(--ai-chat-suggestion-border, #e5e7eb);
2035
+ color: var(--ai-button-primary-bg, #3b82f6);
2036
+ font-size: 12px;
2037
+ font-weight: 500;
2038
+ cursor: pointer;
2039
+ transition: background 0.15s;
2040
+ }
2041
+ .ai-chat-context-popover__expand-btn:hover {
2042
+ background: var(--ai-chat-suggestion-bg, #f9fafb);
2043
+ }
2044
+ .ai-chat-context-popover__detail {
2045
+ display: flex;
2046
+ flex-direction: column;
2047
+ height: 100%;
2048
+ max-height: calc(100vh - 250px);
2049
+ min-height: 300px;
2050
+ }
2051
+ .ai-chat-context-popover__back {
2052
+ display: flex;
2053
+ align-items: center;
2054
+ gap: 2px;
2055
+ padding: 4px 8px;
2056
+ margin-right: 8px;
2057
+ background: transparent;
2058
+ border: none;
2059
+ border-radius: 6px;
2060
+ color: var(--ai-sidebar-text-muted, #6b7280);
2061
+ font-size: 12px;
2062
+ cursor: pointer;
2063
+ transition: all 0.15s;
2064
+ }
2065
+ .ai-chat-context-popover__back:hover {
2066
+ background: var(--ai-chat-suggestion-bg, #f3f4f6);
2067
+ color: var(--ai-chat-input-text, #1f2937);
2068
+ }
2069
+ .ai-chat-context-popover__detail-sections {
2070
+ flex: 1;
2071
+ overflow-y: auto;
2072
+ padding: 12px;
2073
+ min-height: 0;
2074
+ }
2075
+ .ai-chat-context-popover__detail-section {
2076
+ margin-bottom: 6px;
2077
+ background: var(--ai-chat-suggestion-bg, #f9fafb);
2078
+ border-radius: 8px;
2079
+ overflow: hidden;
2080
+ }
2081
+ .ai-chat-context-popover__detail-section-header {
2082
+ display: flex;
2083
+ align-items: center;
2084
+ justify-content: space-between;
2085
+ padding: 10px 12px;
2086
+ cursor: pointer;
2087
+ user-select: none;
2088
+ list-style: none;
2089
+ font-size: 13px;
2090
+ }
2091
+ .ai-chat-context-popover__detail-section-header::-webkit-details-marker {
2092
+ display: none;
2093
+ }
2094
+ .ai-chat-context-popover__detail-section-title {
2095
+ font-weight: 600;
2096
+ color: var(--ai-chat-input-text, #1f2937);
2097
+ }
2098
+ .ai-chat-context-popover__detail-section-meta {
2099
+ display: flex;
2100
+ align-items: center;
2101
+ gap: 8px;
2102
+ font-size: 11px;
2103
+ color: var(--ai-sidebar-text-muted, #9ca3af);
2104
+ }
2105
+ .ai-chat-context-popover__detail-section-meta code {
2106
+ background: var(--ai-chat-suggestion-hover-bg, #e5e7eb);
2107
+ padding: 2px 6px;
2108
+ border-radius: 4px;
2109
+ font-family: "SF Mono", monospace;
2110
+ font-size: 10px;
2111
+ }
2112
+ .ai-chat-context-popover__detail-content {
2113
+ margin: 0;
2114
+ padding: 12px 14px;
2115
+ background: var(--ai-chat-input-bg, #ffffff);
2116
+ border-top: 1px solid var(--ai-chat-suggestion-border, #e5e7eb);
2117
+ font-family:
2118
+ "SF Mono",
2119
+ "Monaco",
2120
+ "Fira Code",
2121
+ monospace;
2122
+ font-size: 12px;
2123
+ line-height: 1.6;
2124
+ color: var(--ai-chat-input-text, #374151);
2125
+ overflow-x: auto;
2126
+ white-space: pre-wrap;
2127
+ word-break: break-word;
2128
+ max-height: 400px;
2129
+ overflow-y: auto;
2130
+ }
2131
+ .dark-theme .ai-chat-context-pill {
2132
+ background: var(--ai-chat-suggestion-bg, #374151);
2133
+ }
2134
+ .dark-theme .ai-chat-context-pill:hover,
2135
+ .dark-theme .ai-chat-context-pill--active {
2136
+ background: var(--ai-chat-suggestion-hover-bg, #4b5563);
2137
+ }
2138
+ .dark-theme .ai-chat-context-popover {
2139
+ background: var(--ai-chat-input-bg, #1f2937);
2140
+ border-color: var(--ai-chat-input-border, #374151);
2141
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
2142
+ }
2143
+ .dark-theme .ai-chat-context-popover__token-bar {
2144
+ background: var(--ai-chat-suggestion-bg, #111827);
2145
+ }
2146
+ .dark-theme .ai-chat-context-popover__detail-content {
2147
+ background: #111827;
2148
+ }
2149
+ @container chat-panel (max-width: 380px) {
2150
+ .ai-chat-context-pill__label {
2151
+ font-size: 11px;
2152
+ }
2153
+ .ai-chat-context-popover {
2154
+ min-width: 260px;
2155
+ left: auto;
2156
+ right: 0;
2157
+ transform: none;
2158
+ }
2159
+ @keyframes contextPopoverSlideUp {
2160
+ from {
2161
+ opacity: 0;
2162
+ transform: translateY(4px);
2163
+ }
2164
+ to {
2165
+ opacity: 1;
2166
+ transform: translateY(0);
2167
+ }
2168
+ }
2169
+ }
2170
+
2171
+ /* src/AIAgentPanel.css */
2172
+ :root {
2173
+ --ai-panel-width: 720px;
2174
+ --ai-panel-min-width: 520px;
2175
+ --ai-panel-max-width: 1200px;
2176
+ --ai-panel-collapsed-width: 48px;
2177
+ --ai-panel-border-radius: 0;
2178
+ --ai-panel-transition: 0.2s ease;
2179
+ --ai-sidebar-bg: #f8f9fa;
2180
+ --ai-sidebar-border: #e5e7eb;
2181
+ --ai-sidebar-text: #374151;
2182
+ --ai-sidebar-text-muted: #6b7280;
2183
+ --ai-sidebar-hover: #f3f4f6;
2184
+ --ai-sidebar-active: #e5e7eb;
2185
+ --ai-header-bg: #ffffff;
2186
+ --ai-header-border: #e5e7eb;
2187
+ --ai-header-height: 52px;
2188
+ --ai-agent-badge-bg: #dbeafe;
2189
+ --ai-agent-badge-text: #1d4ed8;
2190
+ --ai-agent-selector-bg: #ffffff;
2191
+ --ai-agent-selector-border: #e5e7eb;
2192
+ --ai-conversation-bg: transparent;
2193
+ --ai-conversation-hover: rgba(0, 0, 0, 0.04);
2194
+ --ai-conversation-active: rgba(0, 0, 0, 0.08);
2195
+ --ai-conversation-title-color: #1f2937;
2196
+ --ai-conversation-preview-color: #6b7280;
2197
+ --ai-conversation-meta-color: #9ca3af;
2198
+ --ai-group-label-color: #9ca3af;
2199
+ --ai-group-label-size: 0.75rem;
2200
+ --ai-button-primary-bg: #3b82f6;
2201
+ --ai-button-primary-text: #ffffff;
2202
+ --ai-button-primary-hover: #2563eb;
2203
+ --ai-button-secondary-bg: #f3f4f6;
2204
+ --ai-button-secondary-text: #374151;
2205
+ --ai-button-secondary-border: #d1d5db;
2206
+ --ai-button-secondary-hover: #e5e7eb;
2207
+ --ai-button-ghost-hover: rgba(0, 0, 0, 0.06);
2208
+ --ai-button-destructive-bg: #ef4444;
2209
+ --ai-button-destructive-text: #ffffff;
2210
+ --ai-button-destructive-hover: #dc2626;
2211
+ --ai-button-radius: 6px;
2212
+ --ai-input-bg: #ffffff;
2213
+ --ai-input-border: #d1d5db;
2214
+ --ai-input-text: #1f2937;
2215
+ --ai-input-placeholder: #9ca3af;
2216
+ --ai-input-focus-border: #3b82f6;
2217
+ --ai-input-focus-ring: rgba(59, 130, 246, 0.2);
2218
+ --ai-input-radius: 6px;
2219
+ --ai-select-bg: #ffffff;
2220
+ --ai-select-border: #d1d5db;
2221
+ --ai-select-text: #1f2937;
2222
+ --ai-select-hover: #f9fafb;
2223
+ --ai-select-item-hover: #f3f4f6;
2224
+ --ai-select-item-selected: #eff6ff;
2225
+ --ai-tooltip-bg: #1f2937;
2226
+ --ai-tooltip-text: #ffffff;
2227
+ --ai-tooltip-radius: 4px;
2228
+ --ai-dialog-bg: #ffffff;
2229
+ --ai-dialog-border: #e5e7eb;
2230
+ --ai-dialog-overlay: rgba(0, 0, 0, 0.5);
2231
+ --ai-dialog-title-color: #1f2937;
2232
+ --ai-dialog-description-color: #6b7280;
2233
+ --ai-dialog-radius: 8px;
2234
+ --ai-scrollbar-track: transparent;
2235
+ --ai-scrollbar-thumb: #d1d5db;
2236
+ --ai-scrollbar-thumb-hover: #9ca3af;
2237
+ --ai-scrollbar-width: 6px;
2238
+ --ai-context-bg: #f9fafb;
2239
+ --ai-context-border: #e5e7eb;
2240
+ --ai-context-text: #6b7280;
2241
+ --ai-context-warning: #f59e0b;
2242
+ --ai-loading-spinner: #3b82f6;
2243
+ --ai-resize-handle-width: 4px;
2244
+ --ai-resize-handle-color: transparent;
2245
+ --ai-resize-handle-hover: #3b82f6;
2246
+ --ai-chat-bg: #ffffff;
2247
+ }
2248
+ .dark-theme {
2249
+ --ai-sidebar-bg: #1f2937;
2250
+ --ai-sidebar-border: #374151;
2251
+ --ai-sidebar-text: #f3f4f6;
2252
+ --ai-sidebar-text-muted: #9ca3af;
2253
+ --ai-sidebar-hover: #374151;
2254
+ --ai-sidebar-active: #4b5563;
2255
+ --ai-header-bg: #111827;
2256
+ --ai-header-border: #374151;
2257
+ --ai-agent-badge-bg: #1e3a5f;
2258
+ --ai-agent-badge-text: #60a5fa;
2259
+ --ai-agent-selector-bg: #1f2937;
2260
+ --ai-agent-selector-border: #374151;
2261
+ --ai-conversation-hover: rgba(255, 255, 255, 0.04);
2262
+ --ai-conversation-active: rgba(255, 255, 255, 0.08);
2263
+ --ai-conversation-title-color: #f3f4f6;
2264
+ --ai-conversation-preview-color: #9ca3af;
2265
+ --ai-conversation-meta-color: #6b7280;
2266
+ --ai-group-label-color: #6b7280;
2267
+ --ai-button-primary-bg: #3b82f6;
2268
+ --ai-button-primary-text: #ffffff;
2269
+ --ai-button-primary-hover: #60a5fa;
2270
+ --ai-button-secondary-bg: #374151;
2271
+ --ai-button-secondary-text: #f3f4f6;
2272
+ --ai-button-secondary-border: #4b5563;
2273
+ --ai-button-secondary-hover: #4b5563;
2274
+ --ai-button-ghost-hover: rgba(255, 255, 255, 0.08);
2275
+ --ai-input-bg: #1f2937;
2276
+ --ai-input-border: #374151;
2277
+ --ai-input-text: #f3f4f6;
2278
+ --ai-input-placeholder: #6b7280;
2279
+ --ai-input-focus-border: #3b82f6;
2280
+ --ai-input-focus-ring: rgba(59, 130, 246, 0.3);
2281
+ --ai-select-bg: #1f2937;
2282
+ --ai-select-border: #374151;
2283
+ --ai-select-text: #f3f4f6;
2284
+ --ai-select-hover: #374151;
2285
+ --ai-select-item-hover: #374151;
2286
+ --ai-select-item-selected: #1e3a5f;
2287
+ --ai-tooltip-bg: #374151;
2288
+ --ai-tooltip-text: #f3f4f6;
2289
+ --ai-dialog-bg: #1f2937;
2290
+ --ai-dialog-border: #374151;
2291
+ --ai-dialog-overlay: rgba(0, 0, 0, 0.7);
2292
+ --ai-dialog-title-color: #f3f4f6;
2293
+ --ai-dialog-description-color: #9ca3af;
2294
+ --ai-scrollbar-thumb: #4b5563;
2295
+ --ai-scrollbar-thumb-hover: #6b7280;
2296
+ --ai-context-bg: #111827;
2297
+ --ai-context-border: #374151;
2298
+ --ai-context-text: #9ca3af;
2299
+ --ai-chat-bg: #111827;
2300
+ }
2301
+ .ai-agent-panel {
2302
+ display: flex;
2303
+ flex-direction: row;
2304
+ align-self: stretch;
2305
+ height: 100%;
2306
+ max-height: 100%;
2307
+ background-color: var(--ai-sidebar-bg);
2308
+ border-left: 1px solid var(--ai-sidebar-border);
2309
+ font-family:
2310
+ -apple-system,
2311
+ BlinkMacSystemFont,
2312
+ "Segoe UI",
2313
+ Roboto,
2314
+ "Helvetica Neue",
2315
+ Arial,
2316
+ sans-serif;
2317
+ font-size: 14px;
2318
+ position: relative;
2319
+ transition: width var(--ai-panel-transition);
2320
+ box-sizing: border-box;
2321
+ overflow: hidden;
2322
+ }
2323
+ .ai-agent-panel--left {
2324
+ border-left: none;
2325
+ border-right: 1px solid var(--ai-sidebar-border);
2326
+ }
2327
+ .ai-agent-panel--sidebar-left {
2328
+ flex-direction: row;
2329
+ }
2330
+ .ai-agent-panel--sidebar-left .ai-agent-panel__sidebar {
2331
+ order: 1;
2332
+ border-right: 1px solid var(--ai-sidebar-border);
2333
+ border-left: none;
2334
+ }
2335
+ .ai-agent-panel--sidebar-left .ai-agent-panel__chat {
2336
+ order: 2;
2337
+ }
2338
+ .ai-agent-panel--sidebar-right {
2339
+ flex-direction: row;
2340
+ }
2341
+ .ai-agent-panel--sidebar-right .ai-agent-panel__sidebar {
2342
+ order: 2;
2343
+ border-left: 1px solid var(--ai-sidebar-border);
2344
+ border-right: none;
2345
+ }
2346
+ .ai-agent-panel--sidebar-right .ai-agent-panel__chat {
2347
+ order: 1;
2348
+ }
2349
+ .ai-agent-panel--collapsed {
2350
+ width: var(--ai-panel-collapsed-width) !important;
2351
+ }
2352
+ .ai-agent-panel__resize-handle {
2353
+ width: var(--ai-resize-handle-width);
2354
+ min-width: var(--ai-resize-handle-width);
2355
+ align-self: stretch;
2356
+ background-color: var(--ai-resize-handle-color);
2357
+ cursor: ew-resize;
2358
+ transition: background-color 0.15s;
2359
+ z-index: 100;
2360
+ flex-shrink: 0;
2361
+ order: 0;
2362
+ }
2363
+ .ai-agent-panel__resize-handle:hover {
2364
+ background-color: var(--ai-resize-handle-hover);
2365
+ }
2366
+ .ai-agent-panel__resize-handle:active {
2367
+ background-color: var(--ai-resize-handle-hover);
2368
+ }
2369
+ .ai-agent-panel:hover .ai-agent-panel__resize-handle {
2370
+ background-color: rgba(100, 100, 100, 0.15);
2371
+ }
2372
+ .ai-agent-panel--right .ai-agent-panel__resize-handle {
2373
+ order: -1 !important;
2374
+ }
2375
+ .ai-agent-panel--left .ai-agent-panel__resize-handle {
2376
+ order: 99 !important;
2377
+ }
2378
+ .ai-agent-panel__collapsed-bar {
2379
+ display: flex;
2380
+ flex-direction: column;
2381
+ align-items: center;
2382
+ padding: 8px;
2383
+ gap: 4px;
2384
+ width: 100%;
2385
+ height: 100%;
2386
+ cursor: pointer;
2387
+ transition: background-color 0.15s, box-shadow 0.15s;
2388
+ }
2389
+ .ai-agent-panel__collapsed-bar:hover {
2390
+ background-color: var(--ai-sidebar-hover);
2391
+ box-shadow: inset 2px 0 0 var(--ai-button-primary-bg);
2392
+ }
2393
+ .ai-agent-panel--left .ai-agent-panel__collapsed-bar:hover {
2394
+ box-shadow: inset -2px 0 0 var(--ai-button-primary-bg);
2395
+ }
2396
+ .ai-agent-panel__collapsed-divider {
2397
+ width: 24px;
2398
+ height: 1px;
2399
+ background-color: var(--ai-sidebar-border);
2400
+ margin: 4px 0;
2401
+ }
2402
+ .ai-agent-panel__collapsed-spacer {
2403
+ flex: 1;
2404
+ }
2405
+ .ai-agent-panel__agent-icon {
2406
+ font-weight: 600;
2407
+ font-size: 12px;
2408
+ }
2409
+ .ai-agent-panel__agent-avatar {
2410
+ width: 24px;
2411
+ height: 24px;
2412
+ border-radius: 50%;
2413
+ object-fit: cover;
2414
+ }
2415
+ .ai-agent-panel__agent-icon {
2416
+ position: relative;
2417
+ }
2418
+ .ai-agent-panel__agent-icon--active {
2419
+ }
2420
+ .ai-agent-panel__agent-active-indicator {
2421
+ position: absolute;
2422
+ bottom: 2px;
2423
+ right: 2px;
2424
+ width: 8px;
2425
+ height: 8px;
2426
+ border-radius: 50%;
2427
+ background-color: var(--ai-button-primary-bg);
2428
+ border: 2px solid var(--ai-sidebar-bg);
2429
+ }
2430
+ .ai-agent-panel__sidebar {
2431
+ width: 200px;
2432
+ min-width: 180px;
2433
+ max-width: 280px;
2434
+ height: 100%;
2435
+ max-height: 100%;
2436
+ flex-shrink: 0;
2437
+ display: flex;
2438
+ flex-direction: column;
2439
+ border-right: 1px solid var(--ai-sidebar-border);
2440
+ background-color: var(--ai-sidebar-bg);
2441
+ overflow: hidden;
2442
+ }
2443
+ .ai-agent-panel--left .ai-agent-panel__sidebar {
2444
+ border-right: none;
2445
+ border-left: 1px solid var(--ai-sidebar-border);
2446
+ }
2447
+ .ai-agent-panel__header {
2448
+ display: flex;
2449
+ align-items: center;
2450
+ justify-content: space-between;
2451
+ padding: 8px;
2452
+ height: var(--ai-header-height);
2453
+ border-bottom: 1px solid var(--ai-header-border);
2454
+ background-color: var(--ai-header-bg);
2455
+ gap: 8px;
2456
+ }
2457
+ .ai-agent-panel__header-actions {
2458
+ display: flex;
2459
+ align-items: center;
2460
+ gap: 4px;
2461
+ flex: 1;
2462
+ }
2463
+ .ai-agent-panel__conversations {
2464
+ flex: 1;
2465
+ overflow-y: auto;
2466
+ padding: 8px;
2467
+ }
2468
+ .ai-agent-panel__empty {
2469
+ display: flex;
2470
+ flex-direction: column;
2471
+ align-items: center;
2472
+ justify-content: center;
2473
+ padding: 32px 16px;
2474
+ color: var(--ai-sidebar-text-muted);
2475
+ text-align: center;
2476
+ }
2477
+ .ai-agent-panel__empty svg {
2478
+ width: 32px;
2479
+ height: 32px;
2480
+ margin-bottom: 12px;
2481
+ opacity: 0.5;
2482
+ }
2483
+ .ai-agent-panel__empty p {
2484
+ margin: 0;
2485
+ }
2486
+ .ai-agent-panel__empty-hint {
2487
+ font-size: 12px;
2488
+ margin-top: 4px !important;
2489
+ opacity: 0.7;
2490
+ }
2491
+ .ai-agent-panel__group {
2492
+ margin-bottom: 16px;
2493
+ }
2494
+ .ai-agent-panel__group-label {
2495
+ font-size: var(--ai-group-label-size);
2496
+ font-weight: 600;
2497
+ color: var(--ai-group-label-color);
2498
+ text-transform: uppercase;
2499
+ letter-spacing: 0.05em;
2500
+ padding: 8px 8px 4px;
2501
+ }
2502
+ .ai-agent-panel__group-label--clickable {
2503
+ display: flex;
2504
+ align-items: center;
2505
+ justify-content: space-between;
2506
+ cursor: pointer;
2507
+ user-select: none;
2508
+ transition: color 0.15s;
2509
+ }
2510
+ .ai-agent-panel__group-label--clickable:hover {
2511
+ color: var(--ai-sidebar-text);
2512
+ }
2513
+ .ai-agent-panel__group-chevron {
2514
+ font-size: 8px;
2515
+ opacity: 0.6;
2516
+ transition: opacity 0.15s;
2517
+ }
2518
+ .ai-agent-panel__group-label--clickable:hover .ai-agent-panel__group-chevron {
2519
+ opacity: 1;
2520
+ }
2521
+ .ai-agent-panel__conversation {
2522
+ display: flex;
2523
+ align-items: flex-start;
2524
+ padding: 4px 8px;
2525
+ border-radius: 6px;
2526
+ cursor: pointer;
2527
+ transition: background-color 0.15s;
2528
+ gap: 8px;
2529
+ }
2530
+ .ai-agent-panel__conversation:hover {
2531
+ background-color: var(--ai-conversation-hover);
2532
+ }
2533
+ .ai-agent-panel__conversation--active {
2534
+ background-color: var(--ai-conversation-active);
2535
+ }
2536
+ .ai-agent-panel__conversation-content {
2537
+ flex: 1;
2538
+ min-width: 0;
2539
+ }
2540
+ .ai-agent-panel__conversation-title {
2541
+ font-weight: 400;
2542
+ font-size: 11px;
2543
+ color: var(--ai-conversation-preview-color);
2544
+ white-space: nowrap;
2545
+ overflow: hidden;
2546
+ text-overflow: ellipsis;
2547
+ margin-bottom: 2px;
2548
+ }
2549
+ .ai-agent-panel__conversation-preview {
2550
+ font-size: 11px;
2551
+ color: var(--ai-conversation-preview-color);
2552
+ white-space: nowrap;
2553
+ overflow: hidden;
2554
+ text-overflow: ellipsis;
2555
+ margin-bottom: 2px;
2556
+ }
2557
+ .ai-agent-panel__conversation-meta {
2558
+ display: flex;
2559
+ align-items: center;
2560
+ gap: 6px;
2561
+ font-size: 11px;
2562
+ color: var(--ai-conversation-meta-color);
2563
+ }
2564
+ .ai-agent-panel__conversation-agent {
2565
+ font-size: 10px;
2566
+ color: var(--ai-agent-badge-text);
2567
+ background-color: var(--ai-agent-badge-bg);
2568
+ padding: 1px 4px;
2569
+ border-radius: 3px;
2570
+ }
2571
+ .ai-agent-panel__conversation-delete {
2572
+ opacity: 0;
2573
+ transition: opacity 0.15s;
2574
+ }
2575
+ .ai-agent-panel__conversation:hover .ai-agent-panel__conversation-delete {
2576
+ opacity: 1;
2577
+ }
2578
+ .ai-agent-panel__context-summary {
2579
+ display: flex;
2580
+ align-items: center;
2581
+ gap: 8px;
2582
+ padding: 10px 12px;
2583
+ border-top: 1px solid var(--ai-context-border);
2584
+ background-color: var(--ai-context-bg);
2585
+ font-size: 12px;
2586
+ color: var(--ai-context-text);
2587
+ }
2588
+ .ai-agent-panel__context-summary svg {
2589
+ width: 14px;
2590
+ height: 14px;
2591
+ opacity: 0.6;
2592
+ }
2593
+ .ai-agent-panel__context-warning {
2594
+ color: var(--ai-context-warning);
2595
+ font-weight: 500;
2596
+ }
2597
+ .ai-agent-panel__chat {
2598
+ position: relative;
2599
+ flex: 1;
2600
+ background-color: var(--ai-chat-bg);
2601
+ min-width: 0;
2602
+ min-height: 0;
2603
+ overflow: hidden;
2604
+ }
2605
+ .ai-agent-panel__agent-selector {
2606
+ padding: 8px 12px;
2607
+ border-bottom: 1px solid var(--ai-sidebar-border);
2608
+ }
2609
+ .ai-agent-panel__loading {
2610
+ display: flex;
2611
+ flex-direction: column;
2612
+ align-items: center;
2613
+ justify-content: center;
2614
+ flex: 1;
2615
+ gap: 12px;
2616
+ color: var(--ai-sidebar-text-muted);
2617
+ }
2618
+ .ai-agent-panel__conversation-loading-overlay {
2619
+ position: absolute;
2620
+ top: 0;
2621
+ left: 0;
2622
+ right: 0;
2623
+ bottom: 0;
2624
+ display: flex;
2625
+ flex-direction: column;
2626
+ align-items: center;
2627
+ justify-content: center;
2628
+ gap: 12px;
2629
+ background-color: var(--ai-chat-bg);
2630
+ color: var(--ai-sidebar-text-muted);
2631
+ z-index: 10;
2632
+ backdrop-filter: blur(2px);
2633
+ }
2634
+ .ai-agent-panel__loading-spinner {
2635
+ width: 24px;
2636
+ height: 24px;
2637
+ border: 2px solid var(--ai-sidebar-border);
2638
+ border-top-color: var(--ai-loading-spinner);
2639
+ border-radius: 50%;
2640
+ animation: ai-spin 0.8s linear infinite;
2641
+ }
2642
+ @keyframes ai-spin {
2643
+ to {
2644
+ transform: rotate(360deg);
2645
+ }
2646
+ }
2647
+ .ai-button {
2648
+ display: inline-flex;
2649
+ align-items: center;
2650
+ justify-content: center;
2651
+ border: none;
2652
+ cursor: pointer;
2653
+ font-family: inherit;
2654
+ font-weight: 500;
2655
+ transition: all 0.15s;
2656
+ border-radius: var(--ai-button-radius);
2657
+ }
2658
+ .ai-button:disabled {
2659
+ opacity: 0.5;
2660
+ cursor: not-allowed;
2661
+ }
2662
+ .ai-button--primary {
2663
+ background-color: var(--ai-button-primary-bg);
2664
+ color: var(--ai-button-primary-text);
2665
+ }
2666
+ .ai-button--primary:hover:not(:disabled) {
2667
+ background-color: var(--ai-button-primary-hover);
2668
+ }
2669
+ .ai-button--secondary {
2670
+ background-color: var(--ai-button-secondary-bg);
2671
+ color: var(--ai-button-secondary-text);
2672
+ border: 1px solid var(--ai-button-secondary-border);
2673
+ }
2674
+ .ai-button--secondary:hover:not(:disabled) {
2675
+ background-color: var(--ai-button-secondary-hover);
2676
+ }
2677
+ .ai-button--ghost {
2678
+ background-color: transparent;
2679
+ color: var(--ai-sidebar-text);
2680
+ }
2681
+ .ai-button--ghost:hover:not(:disabled) {
2682
+ background-color: var(--ai-button-ghost-hover);
2683
+ }
2684
+ .ai-button--outline {
2685
+ background-color: transparent;
2686
+ color: var(--ai-sidebar-text);
2687
+ border: 1px solid var(--ai-button-secondary-border);
2688
+ }
2689
+ .ai-button--outline:hover:not(:disabled) {
2690
+ background-color: var(--ai-button-ghost-hover);
2691
+ }
2692
+ .ai-button--destructive {
2693
+ background-color: var(--ai-button-destructive-bg);
2694
+ color: var(--ai-button-destructive-text);
2695
+ }
2696
+ .ai-button--destructive:hover:not(:disabled) {
2697
+ background-color: var(--ai-button-destructive-hover);
2698
+ }
2699
+ .ai-button--default {
2700
+ padding: 8px 16px;
2701
+ font-size: 14px;
2702
+ }
2703
+ .ai-button--sm {
2704
+ padding: 6px 12px;
2705
+ font-size: 13px;
2706
+ }
2707
+ .ai-button--lg {
2708
+ padding: 10px 20px;
2709
+ font-size: 15px;
2710
+ }
2711
+ .ai-button--icon {
2712
+ width: 32px;
2713
+ height: 32px;
2714
+ padding: 0;
2715
+ }
2716
+ .ai-input-wrapper {
2717
+ position: relative;
2718
+ display: flex;
2719
+ align-items: center;
2720
+ width: 100%;
2721
+ }
2722
+ .ai-input-icon {
2723
+ position: absolute;
2724
+ left: 10px;
2725
+ color: var(--ai-input-placeholder);
2726
+ pointer-events: none;
2727
+ display: flex;
2728
+ }
2729
+ .ai-input-wrapper .ai-input {
2730
+ padding-left: 34px;
2731
+ }
2732
+ .ai-input {
2733
+ width: 100%;
2734
+ padding: 8px 12px;
2735
+ font-size: 14px;
2736
+ font-family: inherit;
2737
+ color: var(--ai-input-text);
2738
+ background-color: var(--ai-input-bg);
2739
+ border: 1px solid var(--ai-input-border);
2740
+ border-radius: var(--ai-input-radius);
2741
+ outline: none;
2742
+ transition: border-color 0.15s, box-shadow 0.15s;
2743
+ }
2744
+ .ai-input::placeholder {
2745
+ color: var(--ai-input-placeholder);
2746
+ }
2747
+ .ai-input:focus {
2748
+ border-color: var(--ai-input-focus-border);
2749
+ box-shadow: 0 0 0 3px var(--ai-input-focus-ring);
2750
+ }
2751
+ .ai-select {
2752
+ position: relative;
2753
+ width: 100%;
2754
+ }
2755
+ .ai-select--disabled {
2756
+ opacity: 0.5;
2757
+ pointer-events: none;
2758
+ }
2759
+ .ai-select-trigger {
2760
+ display: flex;
2761
+ align-items: center;
2762
+ justify-content: space-between;
2763
+ width: 100%;
2764
+ padding: 8px 12px;
2765
+ font-size: 14px;
2766
+ font-family: inherit;
2767
+ color: var(--ai-select-text);
2768
+ background-color: var(--ai-select-bg);
2769
+ border: 1px solid var(--ai-select-border);
2770
+ border-radius: var(--ai-input-radius);
2771
+ cursor: pointer;
2772
+ transition: border-color 0.15s;
2773
+ }
2774
+ .ai-select-trigger:hover {
2775
+ background-color: var(--ai-select-hover);
2776
+ }
2777
+ .ai-select-value {
2778
+ display: flex;
2779
+ align-items: center;
2780
+ gap: 8px;
2781
+ }
2782
+ .ai-select-placeholder {
2783
+ color: var(--ai-input-placeholder);
2784
+ }
2785
+ .ai-select-icon {
2786
+ display: flex;
2787
+ }
2788
+ .ai-select-chevron {
2789
+ color: var(--ai-input-placeholder);
2790
+ }
2791
+ .ai-select-content {
2792
+ position: absolute;
2793
+ top: 100%;
2794
+ left: 0;
2795
+ right: 0;
2796
+ margin-top: 4px;
2797
+ background-color: var(--ai-select-bg);
2798
+ border: 1px solid var(--ai-select-border);
2799
+ border-radius: var(--ai-input-radius);
2800
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
2801
+ z-index: 100;
2802
+ max-height: 240px;
2803
+ overflow-y: auto;
2804
+ }
2805
+ .ai-select-item {
2806
+ display: flex;
2807
+ align-items: center;
2808
+ width: 100%;
2809
+ padding: 10px 12px;
2810
+ font-size: 14px;
2811
+ font-family: inherit;
2812
+ color: var(--ai-select-text);
2813
+ background: none;
2814
+ border: none;
2815
+ cursor: pointer;
2816
+ text-align: left;
2817
+ gap: 8px;
2818
+ transition: background-color 0.15s;
2819
+ }
2820
+ .ai-select-item:hover {
2821
+ background-color: var(--ai-select-item-hover);
2822
+ }
2823
+ .ai-select-item--selected {
2824
+ background-color: var(--ai-select-item-selected);
2825
+ }
2826
+ .ai-select-item-icon {
2827
+ display: flex;
2828
+ }
2829
+ .ai-select-item-content {
2830
+ flex: 1;
2831
+ min-width: 0;
2832
+ }
2833
+ .ai-select-item-label {
2834
+ display: block;
2835
+ font-weight: 500;
2836
+ }
2837
+ .ai-select-item-description {
2838
+ display: block;
2839
+ font-size: 12px;
2840
+ color: var(--ai-sidebar-text-muted);
2841
+ margin-top: 2px;
2842
+ }
2843
+ .ai-select-item-check {
2844
+ color: var(--ai-button-primary-bg);
2845
+ }
2846
+ .ai-scroll-area {
2847
+ overflow: hidden;
2848
+ position: relative;
2849
+ }
2850
+ .ai-scroll-area-viewport {
2851
+ height: 100%;
2852
+ overflow-y: auto;
2853
+ scrollbar-width: thin;
2854
+ scrollbar-color: var(--ai-scrollbar-thumb) var(--ai-scrollbar-track);
2855
+ }
2856
+ .ai-scroll-area-viewport::-webkit-scrollbar {
2857
+ width: var(--ai-scrollbar-width);
2858
+ }
2859
+ .ai-scroll-area-viewport::-webkit-scrollbar-track {
2860
+ background: var(--ai-scrollbar-track);
2861
+ }
2862
+ .ai-scroll-area-viewport::-webkit-scrollbar-thumb {
2863
+ background-color: var(--ai-scrollbar-thumb);
2864
+ border-radius: 3px;
2865
+ }
2866
+ .ai-scroll-area-viewport::-webkit-scrollbar-thumb:hover {
2867
+ background-color: var(--ai-scrollbar-thumb-hover);
2868
+ }
2869
+ .ai-tooltip-trigger {
2870
+ position: relative;
2871
+ display: inline-flex;
2872
+ }
2873
+ .ai-tooltip {
2874
+ position: absolute;
2875
+ z-index: 1000;
2876
+ padding: 6px 10px;
2877
+ font-size: 12px;
2878
+ color: var(--ai-tooltip-text);
2879
+ background-color: var(--ai-tooltip-bg);
2880
+ border-radius: var(--ai-tooltip-radius);
2881
+ white-space: nowrap;
2882
+ pointer-events: none;
2883
+ animation: ai-tooltip-fade-in 0.15s ease;
2884
+ }
2885
+ @keyframes ai-tooltip-fade-in {
2886
+ from {
2887
+ opacity: 0;
2888
+ transform: scale(0.95);
2889
+ }
2890
+ to {
2891
+ opacity: 1;
2892
+ transform: scale(1);
2893
+ }
2894
+ }
2895
+ .ai-tooltip--top {
2896
+ bottom: 100%;
2897
+ left: 50%;
2898
+ transform: translateX(-50%);
2899
+ margin-bottom: 6px;
2900
+ }
2901
+ .ai-tooltip--bottom {
2902
+ top: 100%;
2903
+ left: 50%;
2904
+ transform: translateX(-50%);
2905
+ margin-top: 6px;
2906
+ }
2907
+ .ai-tooltip--left {
2908
+ right: 100%;
2909
+ top: 50%;
2910
+ transform: translateY(-50%);
2911
+ margin-right: 6px;
2912
+ }
2913
+ .ai-tooltip--right {
2914
+ left: 100%;
2915
+ top: 50%;
2916
+ transform: translateY(-50%);
2917
+ margin-left: 6px;
2918
+ }
2919
+ .ai-tooltip-arrow {
2920
+ display: none;
2921
+ }
2922
+ .ai-dialog-overlay {
2923
+ position: fixed;
2924
+ top: 0;
2925
+ left: 0;
2926
+ right: 0;
2927
+ bottom: 0;
2928
+ background-color: var(--ai-dialog-overlay);
2929
+ display: flex;
2930
+ align-items: center;
2931
+ justify-content: center;
2932
+ z-index: 10000;
2933
+ animation: ai-dialog-overlay-fade-in 0.2s ease;
2934
+ }
2935
+ @keyframes ai-dialog-overlay-fade-in {
2936
+ from {
2937
+ opacity: 0;
2938
+ }
2939
+ to {
2940
+ opacity: 1;
2941
+ }
2942
+ }
2943
+ .ai-dialog {
2944
+ position: relative;
2945
+ background-color: var(--ai-dialog-bg);
2946
+ border: 1px solid var(--ai-dialog-border);
2947
+ border-radius: var(--ai-dialog-radius);
2948
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
2949
+ max-width: 420px;
2950
+ width: 90%;
2951
+ animation: ai-dialog-slide-in 0.2s ease;
2952
+ }
2953
+ @keyframes ai-dialog-slide-in {
2954
+ from {
2955
+ opacity: 0;
2956
+ transform: scale(0.95) translateY(-10px);
2957
+ }
2958
+ to {
2959
+ opacity: 1;
2960
+ transform: scale(1) translateY(0);
2961
+ }
2962
+ }
2963
+ .ai-dialog-header {
2964
+ padding: 20px 20px 12px;
2965
+ }
2966
+ .ai-dialog-title {
2967
+ margin: 0;
2968
+ font-size: 16px;
2969
+ font-weight: 600;
2970
+ color: var(--ai-dialog-title-color);
2971
+ }
2972
+ .ai-dialog-description {
2973
+ margin: 8px 0 0;
2974
+ font-size: 14px;
2975
+ color: var(--ai-dialog-description-color);
2976
+ line-height: 1.5;
2977
+ }
2978
+ .ai-dialog-content {
2979
+ padding: 0 20px 20px;
2980
+ }
2981
+ .ai-dialog-footer {
2982
+ display: flex;
2983
+ justify-content: flex-end;
2984
+ gap: 8px;
2985
+ padding: 16px 20px;
2986
+ border-top: 1px solid var(--ai-dialog-border);
2987
+ }
2988
+ .ai-dialog-close {
2989
+ position: absolute;
2990
+ top: 12px;
2991
+ right: 12px;
2992
+ width: 28px;
2993
+ height: 28px;
2994
+ display: flex;
2995
+ align-items: center;
2996
+ justify-content: center;
2997
+ background: none;
2998
+ border: none;
2999
+ color: var(--ai-sidebar-text-muted);
3000
+ cursor: pointer;
3001
+ border-radius: 4px;
3002
+ transition: background-color 0.15s, color 0.15s;
3003
+ }
3004
+ .ai-dialog-close:hover {
3005
+ background-color: var(--ai-button-ghost-hover);
3006
+ color: var(--ai-sidebar-text);
3007
+ }
3008
+ @media (max-width: 600px) {
3009
+ .ai-agent-panel {
3010
+ width: 100% !important;
3011
+ }
3012
+ .ai-agent-panel__sidebar {
3013
+ width: 240px;
3014
+ min-width: unset;
3015
+ max-width: 280px;
3016
+ position: absolute;
3017
+ left: 0;
3018
+ top: 0;
3019
+ bottom: 0;
3020
+ z-index: 100;
3021
+ transform: translateX(-100%);
3022
+ transition: transform var(--ai-panel-transition);
3023
+ }
3024
+ .ai-agent-panel--left .ai-agent-panel__sidebar {
3025
+ transform: translateX(100%);
3026
+ left: auto;
3027
+ right: 0;
3028
+ }
3029
+ .ai-agent-panel__sidebar--open {
3030
+ transform: translateX(0);
3031
+ }
3032
+ .ai-agent-panel__resize-handle {
3033
+ display: none;
3034
+ }
3035
+ .ai-agent-panel__chat {
3036
+ min-width: 0;
3037
+ }
3038
+ }
3039
+ .ai-agent-panel[style*=width] {
3040
+ flex-shrink: 0;
3041
+ }
3042
+ .ai-agent-panel__chat {
3043
+ container-type: inline-size;
3044
+ container-name: agent-chat;
3045
+ }
3046
+ @container agent-chat (max-width: 380px) {
3047
+ .ai-agent-panel__agent-selector {
3048
+ padding: 6px 8px;
3049
+ }
3050
+ .ai-agent-panel__initial-message {
3051
+ padding: 12px;
3052
+ font-size: 13px;
3053
+ word-wrap: break-word;
3054
+ overflow-wrap: break-word;
3055
+ hyphens: auto;
3056
+ }
3057
+ .ai-agent-panel__empty-state {
3058
+ padding: 16px 12px;
3059
+ }
3060
+ .ai-agent-panel__empty-icon {
3061
+ width: 40px;
3062
+ height: 40px;
3063
+ }
3064
+ .ai-agent-panel__empty-title {
3065
+ font-size: 14px;
3066
+ }
3067
+ .ai-agent-panel__empty-description {
3068
+ font-size: 12px;
3069
+ }
3070
+ }
3071
+ @container agent-chat (max-width: 320px) {
3072
+ .ai-agent-panel__header-actions {
3073
+ gap: 4px;
3074
+ }
3075
+ .ai-agent-panel__header-button {
3076
+ padding: 4px;
3077
+ }
3078
+ .ai-agent-panel__agent-selector .ai-select {
3079
+ font-size: 13px;
3080
+ }
3081
+ }
3082
+ .ai-agent-panel__group--active {
3083
+ background-color: var(--ai-conversation-active);
3084
+ border-radius: 6px;
3085
+ margin-bottom: 8px;
3086
+ padding: 4px;
3087
+ }
3088
+ .ai-agent-panel__group--active .ai-agent-panel__group-label {
3089
+ color: var(--ai-button-primary-bg);
3090
+ font-weight: 600;
3091
+ }
3092
+ .ai-agent-panel__conversation--active-item {
3093
+ display: flex;
3094
+ align-items: center;
3095
+ justify-content: space-between;
3096
+ background-color: var(--ai-sidebar-bg);
3097
+ border-radius: 4px;
3098
+ margin: 2px 0;
3099
+ }
3100
+ .ai-agent-panel__conversation--active-item .ai-agent-panel__conversation-content {
3101
+ flex: 1;
3102
+ min-width: 0;
3103
+ }
3104
+ .ai-agent-panel__conversation--active-item .ai-agent-panel__conversation-title {
3105
+ display: flex;
3106
+ align-items: center;
3107
+ gap: 6px;
3108
+ }
3109
+ .ai-agent-panel__conversation--current {
3110
+ background-color: var(--ai-conversation-active) !important;
3111
+ border-left: 2px solid var(--ai-button-primary-bg);
3112
+ }
3113
+ .ai-agent-panel__conversation--in-active {
3114
+ opacity: 0.7;
3115
+ }
3116
+ .ai-agent-panel__conversation--in-active:hover {
3117
+ opacity: 1;
3118
+ }
3119
+ .ai-agent-panel__conversation-close {
3120
+ display: flex;
3121
+ align-items: center;
3122
+ justify-content: center;
3123
+ width: 20px;
3124
+ height: 20px;
3125
+ padding: 0;
3126
+ margin-right: 4px;
3127
+ background: none;
3128
+ border: none;
3129
+ border-radius: 4px;
3130
+ color: var(--ai-sidebar-text-muted);
3131
+ cursor: pointer;
3132
+ opacity: 0;
3133
+ transition:
3134
+ opacity 0.15s,
3135
+ background-color 0.15s,
3136
+ color 0.15s;
3137
+ }
3138
+ .ai-agent-panel__conversation--active-item:hover .ai-agent-panel__conversation-close {
3139
+ opacity: 1;
3140
+ }
3141
+ .ai-agent-panel__conversation-close:hover {
3142
+ background-color: var(--ai-button-ghost-hover);
3143
+ color: var(--ai-sidebar-text);
3144
+ }
3145
+ .ai-agent-panel__active-badge {
3146
+ color: var(--ai-button-primary-bg);
3147
+ font-size: 8px;
3148
+ margin-right: 2px;
3149
+ }
3150
+ .ai-agent-panel__loading-dot {
3151
+ display: inline-block;
3152
+ width: 8px;
3153
+ height: 8px;
3154
+ border-radius: 50%;
3155
+ background-color: var(--ai-button-primary-bg);
3156
+ animation: ai-pulse 1.5s ease-in-out infinite;
3157
+ }
3158
+ @keyframes ai-pulse {
3159
+ 0%, 100% {
3160
+ opacity: 1;
3161
+ transform: scale(1);
3162
+ }
3163
+ 50% {
3164
+ opacity: 0.5;
3165
+ transform: scale(0.8);
3166
+ }
3167
+ }
3168
+ .ai-agent-panel__group-divider {
3169
+ height: 1px;
3170
+ background-color: var(--ai-sidebar-border);
3171
+ margin: 12px 8px;
3172
+ }
3173
+ .ai-agent-panel__chat-wrapper {
3174
+ position: absolute;
3175
+ top: 0;
3176
+ left: 0;
3177
+ right: 0;
3178
+ bottom: 0;
3179
+ display: flex;
3180
+ flex-direction: column;
3181
+ overflow: hidden;
3182
+ }
3183
+ .ai-agent-panel__empty-chat {
3184
+ position: absolute;
3185
+ top: 0;
3186
+ left: 0;
3187
+ right: 0;
3188
+ bottom: 0;
3189
+ display: flex;
3190
+ flex-direction: column;
3191
+ align-items: center;
3192
+ justify-content: center;
3193
+ gap: 16px;
3194
+ color: var(--ai-sidebar-text-muted);
3195
+ text-align: center;
3196
+ padding: 32px;
3197
+ }
3198
+ .ai-agent-panel__empty-chat svg {
3199
+ width: 48px;
3200
+ height: 48px;
3201
+ opacity: 0.5;
3202
+ }
3203
+ .ai-agent-panel__empty-chat p {
3204
+ margin: 0;
3205
+ font-size: 14px;
3206
+ }
3207
+ .ai-agent-panel__sidebar--collapsed {
3208
+ width: var(--ai-panel-collapsed-width) !important;
3209
+ min-width: var(--ai-panel-collapsed-width) !important;
3210
+ max-width: var(--ai-panel-collapsed-width) !important;
3211
+ }
3212
+ .ai-agent-panel__history-collapsed-bar {
3213
+ display: flex;
3214
+ flex-direction: column;
3215
+ align-items: center;
3216
+ padding: 8px 4px;
3217
+ gap: 4px;
3218
+ width: 100%;
3219
+ height: 100%;
3220
+ background-color: var(--ai-sidebar-bg);
3221
+ cursor: pointer;
3222
+ transition: background-color 0.15s, box-shadow 0.15s;
3223
+ }
3224
+ .ai-agent-panel__history-collapsed-bar:hover {
3225
+ background-color: var(--ai-sidebar-hover);
3226
+ box-shadow: inset -2px 0 0 var(--ai-button-primary-bg);
3227
+ }
3228
+ .ai-agent-panel--sidebar-right .ai-agent-panel__history-collapsed-bar:hover {
3229
+ box-shadow: inset 2px 0 0 var(--ai-button-primary-bg);
3230
+ }
3231
+ .ai-agent-panel__history-collapsed-spacer {
3232
+ flex: 1;
3233
+ }
3234
+ .ai-agent-panel--sidebar-left .ai-agent-panel__sidebar--collapsed {
3235
+ border-right: 1px solid var(--ai-sidebar-border);
3236
+ }
3237
+ .ai-agent-panel--sidebar-right .ai-agent-panel__sidebar--collapsed {
3238
+ border-left: 1px solid var(--ai-sidebar-border);
3239
+ }