@yiarce/dsh-chat 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/page.css ADDED
@@ -0,0 +1,1423 @@
1
+ .yc-chat-surface {
2
+ --yc-fallback-text: #dfe5f1;
3
+ --yc-fallback-muted: #9aa4b8;
4
+ --yc-fallback-bg: #151a26;
5
+ --yc-fallback-card: #1e2637;
6
+ --yc-fallback-line: #2a3247;
7
+ --yc-text: var(--t-label, var(--dsw-alias-label-primary, var(--yc-fallback-text)));
8
+ --yc-muted: var(--t-label-dim, var(--dsw-alias-label-secondary, var(--yc-fallback-muted)));
9
+ --yc-line: var(--t-border, var(--dsw-alias-border-l1, var(--yc-fallback-line)));
10
+ --yc-bg: var(--t-content-bg, var(--dsh-any-op-bg, var(--dsw-alias-bg-base, color-mix(in srgb, var(--yc-fallback-bg) var(--yc-bg-opacity, 0%), transparent))));
11
+ --yc-side: var(--dsh-any-op-sidebar, color-mix(in srgb, var(--t-bg2, var(--dsw-specific-sidebar-fill, var(--yc-fallback-bg))) var(--yc-side-opacity, 50%), transparent));
12
+ --yc-input-bg: var(--dsh-any-op-input, color-mix(in srgb, var(--t-bg2, var(--dsw-specific-input-major, var(--yc-fallback-bg))) var(--yc-input-opacity, 50%), transparent));
13
+ --yc-card: var(--dsh-any-op-card-1, color-mix(in srgb, var(--t-surface, var(--dsw-alias-bg-layer-1, var(--yc-fallback-card))) var(--yc-card-opacity, 50%), transparent));
14
+ --yc-hover: var(--t-chip-hover, var(--dsw-alias-interactive-bg-hover, var(--yc-fallback-card)));
15
+ --yc-selected: var(--t-sel, var(--dsw-alias-interactive-bg-active, var(--yc-fallback-card)));
16
+ --yc-accent: var(--t-accent, var(--dsw-alias-brand-primary, #5da2ff));
17
+ --yc-own: var(--t-sel, var(--dsw-alias-interactive-bg-active, var(--yc-fallback-card)));
18
+ --yc-bubble: var(--yc-card);
19
+ --yc-content-blur: var(--t-content-blur, var(--dsh-any-part-blur-global, none));
20
+ --yc-sidebar-blur: var(--yc-side-blur, var(--dsh-any-blur-sidebar-band, none));
21
+ --yc-composer-blur: var(--yc-input-blur, var(--dsh-any-input-blur, none));
22
+ --yc-popover-blur: var(--yc-card-blur, var(--dsh-any-blur-card-panels, none));
23
+ --yc-bubble-blur: var(--yc-chat-blur, var(--dsh-any-blur-chat, none));
24
+ color: var(--yc-text);
25
+ font: 14px/1.5 var(--app-font, system-ui, "Segoe UI", "Microsoft YaHei", sans-serif);
26
+ display: grid;
27
+ grid-template-columns: 228px minmax(0,1fr);
28
+ width: 100%;
29
+ height: 100%;
30
+ min-height: 0;
31
+ overflow: hidden;
32
+ background: transparent;
33
+ color-scheme: inherit;
34
+ }
35
+
36
+ .yc-chat-surface * {
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ .yc-chat-surface [hidden] {
41
+ display: none!important;
42
+ }
43
+
44
+ .yc-chat-surface button,.yc-chat-surface input,.yc-chat-surface textarea,.yc-chat-surface select {
45
+ font: inherit;
46
+ color: inherit;
47
+ }
48
+
49
+ .yc-chat-surface button {
50
+ cursor: pointer;
51
+ --wails-draggable: no-drag;
52
+ }
53
+
54
+ .yc-chat-surface button:disabled {
55
+ opacity: .4;
56
+ cursor: not-allowed;
57
+ }
58
+
59
+ .yc-chat-surface button:focus-visible,.yc-chat-surface summary:focus-visible {
60
+ outline: 2px solid var(--yc-accent);
61
+ outline-offset: 3px;
62
+ }
63
+
64
+ .yc-chat-surface input:focus,.yc-chat-surface textarea:focus,.yc-chat-surface select:focus {
65
+ outline: none;
66
+ }
67
+
68
+ .yc-chat-surface input:focus-visible,.yc-chat-surface textarea:focus-visible,.yc-chat-surface select:focus-visible {
69
+ outline: none;
70
+ }
71
+
72
+ .yc-chat-surface h1,.yc-chat-surface h2,.yc-chat-surface p {
73
+ margin: 0;
74
+ }
75
+
76
+ .yc-chat-surface button {
77
+ border: 0;
78
+ }
79
+
80
+ .yc-chat-surface ::-webkit-scrollbar {
81
+ width: 5px;
82
+ height: 5px;
83
+ }
84
+
85
+ .yc-chat-surface ::-webkit-scrollbar-thumb {
86
+ border-radius: 5px;
87
+ background: color-mix(in srgb, var(--yc-muted) 25%, transparent);
88
+ }
89
+
90
+ .yc-chat-surface .yc-sidebar {
91
+ display: flex;
92
+ flex-direction: column;
93
+ min-height: 0;
94
+ min-width: 0;
95
+ background: var(--yc-side);
96
+ border-right: 1px solid var(--yc-line);
97
+ backdrop-filter: var(--yc-sidebar-blur);
98
+ -webkit-backdrop-filter: var(--yc-sidebar-blur);
99
+ }
100
+
101
+ .yc-chat-surface .yc-sidebar-heading {
102
+ height: 76px;
103
+ padding: 0 20px;
104
+ display: flex;
105
+ align-items: center;
106
+ justify-content: space-between;
107
+ flex: none;
108
+ }
109
+
110
+ .yc-chat-surface h1 {
111
+ font-size: 22px;
112
+ font-weight: 650;
113
+ letter-spacing: .02em;
114
+ }
115
+
116
+ .yc-chat-surface h1 span {
117
+ font-size: 9px;
118
+ font-weight: 500;
119
+ letter-spacing: .18em;
120
+ color: var(--yc-muted);
121
+ display: block;
122
+ margin-top: 1px;
123
+ }
124
+
125
+ .yc-chat-surface .yc-icon-button {
126
+ display: grid;
127
+ place-items: center;
128
+ width: 30px;
129
+ height: 30px;
130
+ background: transparent;
131
+ border-radius: 9px;
132
+ font-size: 24px;
133
+ font-weight: 300;
134
+ }
135
+
136
+ .yc-chat-surface .yc-icon-button:hover {
137
+ background: var(--yc-hover);
138
+ }
139
+
140
+ .yc-chat-surface .yc-search {
141
+ display: flex;
142
+ align-items: center;
143
+ gap: 8px;
144
+ margin: 0 14px 17px;
145
+ padding: 5px 10px;
146
+ background: var(--yc-input-bg);
147
+ border: 1px solid var(--yc-line);
148
+ border-radius: 8px;
149
+ color: var(--yc-muted);
150
+ }
151
+
152
+ .yc-chat-surface .yc-search svg {
153
+ display: block;
154
+ width: 16px;
155
+ height: 16px;
156
+ flex: none;
157
+ }
158
+
159
+ .yc-chat-surface .yc-search input {
160
+ background: none;
161
+ border: 0;
162
+ width: 100%;
163
+ min-width: 0;
164
+ font-size: 12px;
165
+ }
166
+
167
+ .yc-chat-surface input::placeholder,.yc-chat-surface textarea::placeholder {
168
+ color: var(--yc-muted);
169
+ opacity: .85;
170
+ }
171
+
172
+ .yc-chat-surface .yc-list-caption {
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: space-between;
176
+ color: var(--yc-muted);
177
+ font-size: 11px;
178
+ padding: 0 20px 9px;
179
+ letter-spacing: .06em;
180
+ }
181
+
182
+ .yc-chat-surface .yc-list-caption span {
183
+ font-size: 10px;
184
+ }
185
+
186
+ .yc-chat-surface .yc-sessions {
187
+ flex: 1;
188
+ min-height: 0;
189
+ overflow: auto;
190
+ padding: 0 7px;
191
+ }
192
+
193
+ .yc-chat-surface .yc-session {
194
+ display: flex;
195
+ gap: 10px;
196
+ align-items: center;
197
+ width: 100%;
198
+ padding: 8px 10px;
199
+ text-align: left;
200
+ border-radius: 9px;
201
+ background: transparent;
202
+ margin-bottom: 3px;
203
+ position: relative;
204
+ }
205
+
206
+ .yc-chat-surface .yc-session:hover {
207
+ background: var(--yc-hover);
208
+ }
209
+
210
+ .yc-chat-surface .yc-session.is-active {
211
+ background: var(--yc-selected);
212
+ }
213
+
214
+ .yc-chat-surface .yc-session.is-active:before {
215
+ content: "";
216
+ position: absolute;
217
+ left: -7px;
218
+ top: 15px;
219
+ bottom: 15px;
220
+ width: 3px;
221
+ border-radius: 0 3px 3px 0;
222
+ background: var(--yc-accent);
223
+ }
224
+
225
+ .yc-chat-surface .yc-avatar {
226
+ width: 38px;
227
+ height: 38px;
228
+ flex: none;
229
+ display: grid;
230
+ place-items: center;
231
+ border-radius: 50%;
232
+ background: var(--yc-selected);
233
+ color: var(--yc-text);
234
+ overflow: hidden;
235
+ font-weight: 600;
236
+ }
237
+
238
+ .yc-chat-surface .yc-avatar img {
239
+ width: 100%;
240
+ height: 100%;
241
+ object-fit: cover;
242
+ }
243
+
244
+ .yc-chat-surface .yc-room-avatar {
245
+ background: var(--yc-selected);
246
+ color: var(--t-accent-soft, var(--dsw-alias-brand-text, var(--yc-accent)));
247
+ border-radius: 50%;
248
+ }
249
+
250
+ .yc-chat-surface .yc-room-avatar svg {
251
+ width: 60%;
252
+ height: 60%;
253
+ display: block;
254
+ }
255
+
256
+ .yc-chat-surface .yc-session-info {
257
+ min-width: 0;
258
+ flex: 1;
259
+ }
260
+
261
+ .yc-chat-surface .yc-session-top,.yc-chat-surface .yc-session-bottom {
262
+ display: flex;
263
+ align-items: center;
264
+ justify-content: space-between;
265
+ gap: 5px;
266
+ }
267
+
268
+ .yc-chat-surface .yc-session-top {
269
+ margin-bottom: 2px;
270
+ }
271
+
272
+ .yc-chat-surface .yc-session-top strong {
273
+ font-size: 13px;
274
+ font-weight: 600;
275
+ overflow: hidden;
276
+ text-overflow: ellipsis;
277
+ white-space: nowrap;
278
+ }
279
+
280
+ .yc-chat-surface .yc-session-top time {
281
+ font-size: 9px;
282
+ color: var(--yc-muted);
283
+ flex: none;
284
+ }
285
+
286
+ .yc-chat-surface .yc-preview {
287
+ overflow: hidden;
288
+ text-overflow: ellipsis;
289
+ white-space: nowrap;
290
+ font-size: 11px;
291
+ color: var(--yc-muted);
292
+ }
293
+
294
+ .yc-chat-surface .yc-unread {
295
+ font-size: 10px;
296
+ min-width: 17px;
297
+ height: 17px;
298
+ padding: 0 4px;
299
+ border-radius: 9px;
300
+ background: var(--yc-accent);
301
+ color: white;
302
+ font-weight: 500;
303
+ display: grid;
304
+ place-items: center;
305
+ flex: none;
306
+ }
307
+
308
+ .yc-chat-surface .yc-list-empty {
309
+ padding: 20px 10px;
310
+ font-size: 12px;
311
+ color: var(--yc-muted);
312
+ text-align: center;
313
+ }
314
+
315
+ .yc-chat-surface .yc-profile {
316
+ display: flex;
317
+ align-items: center;
318
+ gap: 9px;
319
+ padding: 16px 13px;
320
+ border-top: 1px solid var(--yc-line);
321
+ flex: none;
322
+ }
323
+
324
+ .yc-chat-surface #myAvatar {
325
+ background: none;
326
+ overflow: visible;
327
+ }
328
+
329
+ .yc-chat-surface .yc-profile-info {
330
+ flex: 1;
331
+ min-width: 0;
332
+ }
333
+
334
+ .yc-chat-surface .yc-profile-info strong {
335
+ font-size: 12px;
336
+ display: block;
337
+ overflow: hidden;
338
+ text-overflow: ellipsis;
339
+ white-space: nowrap;
340
+ }
341
+
342
+ .yc-chat-surface .yc-presence {
343
+ display: flex;
344
+ gap: 5px;
345
+ align-items: center;
346
+ min-width: 0;
347
+ margin-top: 3px;
348
+ font-size: 10px;
349
+ color: var(--yc-muted);
350
+ }
351
+
352
+ .yc-chat-surface .yc-presence i {
353
+ width: 5px;
354
+ height: 5px;
355
+ border-radius: 50%;
356
+ background: var(--yc-muted);
357
+ flex: none;
358
+ }
359
+
360
+ .yc-chat-surface .yc-presence i.is-online {
361
+ background: var(--yc-accent);
362
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--yc-accent) 12%, transparent);
363
+ }
364
+
365
+ .yc-chat-surface #status {
366
+ overflow: hidden;
367
+ text-overflow: ellipsis;
368
+ white-space: nowrap;
369
+ }
370
+
371
+ .yc-chat-surface .yc-account-menu {
372
+ position: relative;
373
+ }
374
+
375
+ .yc-chat-surface .yc-account-menu summary {
376
+ list-style: none;
377
+ cursor: pointer;
378
+ padding: 4px;
379
+ font-size: 21px;
380
+ }
381
+
382
+ .yc-chat-surface .yc-account-menu summary::-webkit-details-marker {
383
+ display: none;
384
+ }
385
+
386
+ .yc-chat-surface .yc-account-actions {
387
+ position: absolute;
388
+ bottom: 35px;
389
+ left: -115px;
390
+ width: 145px;
391
+ background: var(--yc-card);
392
+ box-shadow: 0 8px 30px #0002;
393
+ border: 1px solid var(--yc-line);
394
+ border-radius: 10px;
395
+ padding: 5px;
396
+ z-index: 30;
397
+ -webkit-backdrop-filter: var(--yc-popover-blur);
398
+ backdrop-filter: var(--yc-popover-blur);
399
+ }
400
+
401
+ .yc-chat-surface .yc-account-actions button {
402
+ width: 100%;
403
+ text-align: left;
404
+ background: none;
405
+ font-size: 12px;
406
+ padding: 9px;
407
+ border-radius: 6px;
408
+ }
409
+
410
+ .yc-chat-surface .yc-account-actions button:hover {
411
+ background: var(--yc-hover);
412
+ }
413
+
414
+ .yc-chat-surface .yc-workspace {
415
+ display: flex;
416
+ flex-direction: column;
417
+ min-width: 0;
418
+ min-height: 0;
419
+ position: relative;
420
+ background: var(--yc-bg);
421
+ -webkit-backdrop-filter: var(--yc-content-blur);
422
+ backdrop-filter: var(--yc-content-blur);
423
+ }
424
+
425
+ .yc-chat-surface .yc-window-bar {
426
+ display: none;
427
+ height: 34px;
428
+ flex: none;
429
+ align-items: center;
430
+ justify-content: flex-end;
431
+ }
432
+
433
+ .yc-chat-surface.yc-native {
434
+ --yc-window-bar-height: 34px;
435
+ }
436
+
437
+ .yc-chat-surface.yc-native .yc-window-bar {
438
+ display: flex;
439
+ }
440
+
441
+ .yc-chat-surface .yc-window-controls {
442
+ display: flex;
443
+ align-items: center;
444
+ margin: 0;
445
+ gap: 0;
446
+ }
447
+
448
+ .yc-chat-surface .yc-conversation-header {
449
+ display: flex;
450
+ align-items: center;
451
+ gap: 12px;
452
+ height: 40px;
453
+ padding: 0 10px;
454
+ border-bottom: 1px solid var(--yc-line);
455
+ flex: none;
456
+ }
457
+
458
+ .yc-chat-surface.yc-native .yc-window-bar {
459
+ --wails-draggable: drag;
460
+ }
461
+
462
+ .yc-chat-surface .yc-conversation-extras {
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: flex-end;
466
+ gap: 12px;
467
+ flex: none;
468
+ margin-left: auto;
469
+ --wails-draggable: no-drag;
470
+ }
471
+
472
+ .yc-chat-surface .yc-conversation-heading {
473
+ display: flex;
474
+ align-items: center;
475
+ gap: 8px;
476
+ flex: 1;
477
+ min-width: 0;
478
+ }
479
+
480
+ .yc-chat-surface h2 {
481
+ font-size: 16px;
482
+ letter-spacing: .02em;
483
+ font-weight: 600;
484
+ overflow: hidden;
485
+ text-overflow: ellipsis;
486
+ white-space: nowrap;
487
+ }
488
+
489
+ .yc-chat-surface .yc-conversation-heading h2 {
490
+ min-width: 0;
491
+ }
492
+
493
+ .yc-chat-surface .yc-conversation-heading p {
494
+ min-width: 0;
495
+ font-size: 10px;
496
+ color: var(--yc-muted);
497
+ margin: 0;
498
+ overflow: hidden;
499
+ text-overflow: ellipsis;
500
+ white-space: nowrap;
501
+ }
502
+
503
+ .yc-chat-surface .yc-text-button {
504
+ font-size: 11px;
505
+ color: var(--yc-muted);
506
+ background: transparent;
507
+ padding: 6px;
508
+ white-space: nowrap;
509
+ border-radius: 6px;
510
+ }
511
+
512
+ .yc-chat-surface .yc-text-button:hover {
513
+ background: var(--yc-hover);
514
+ color: var(--yc-text);
515
+ }
516
+
517
+
518
+ .yc-chat-surface .yc-window-controls button {
519
+ width: 36px;
520
+ height: 32px;
521
+ font-size: 19px;
522
+ background: transparent;
523
+ color: var(--yc-muted);
524
+ }
525
+
526
+ .yc-chat-surface .yc-window-controls button:hover {
527
+ background: var(--yc-hover);
528
+ }
529
+
530
+ .yc-chat-surface #window-close:hover {
531
+ background: #c85c60;
532
+ color: white;
533
+ }
534
+
535
+ .yc-chat-surface .yc-message-scroll-area {
536
+ position: relative;
537
+ display: flex;
538
+ flex: 1;
539
+ min-height: 0;
540
+ min-width: 0;
541
+ overflow: hidden;
542
+ }
543
+ .yc-chat-surface .yc-message-viewport {
544
+ flex: 1;
545
+ min-height: 0;
546
+ min-width: 0;
547
+ overflow-y: auto;
548
+ overflow-x: hidden;
549
+ scrollbar-width: none;
550
+ scrollbar-gutter: auto;
551
+ padding: 10px 16px;
552
+ overscroll-behavior: contain;
553
+ }
554
+ .yc-chat-surface .yc-message-viewport::-webkit-scrollbar {
555
+ display: none;
556
+ width: 0;
557
+ height: 0;
558
+ }
559
+ .yc-chat-surface .yc-message-scroll {
560
+ position: absolute;
561
+ top: 8px;
562
+ right: 3px;
563
+ bottom: 8px;
564
+ width: 12px;
565
+ cursor: pointer;
566
+ touch-action: none;
567
+ user-select: none;
568
+ outline: none;
569
+ }
570
+
571
+ .yc-chat-surface .yc-message-scroll-thumb {
572
+ position: absolute;
573
+ top: 0;
574
+ left: 3px;
575
+ width: 6px;
576
+ border-radius: 999px;
577
+ background: color-mix(in srgb, var(--yc-muted) 35%, transparent);
578
+ pointer-events: none;
579
+ transition: background 120ms ease;
580
+ }
581
+ .yc-chat-surface .yc-message-scroll:hover .yc-message-scroll-thumb,
582
+ .yc-chat-surface .yc-message-scroll:focus-visible .yc-message-scroll-thumb,
583
+ .yc-chat-surface .yc-message-scroll.is-dragging .yc-message-scroll-thumb {
584
+ background: color-mix(in srgb, var(--yc-accent) 75%, var(--yc-muted));
585
+ }
586
+ @media (prefers-reduced-motion: reduce) {
587
+ .yc-chat-surface .yc-message-scroll-thumb { transition: none; }
588
+ }
589
+
590
+ .yc-chat-surface .yc-messages {
591
+ display: flex;
592
+ flex-direction: column;
593
+ gap: 22px;
594
+ }
595
+
596
+ .yc-chat-surface .yc-message {
597
+ display: flex;
598
+ gap: 10px;
599
+ align-items: flex-start;
600
+ }
601
+
602
+ .yc-chat-surface .yc-message.is-mine {
603
+ flex-direction: row-reverse;
604
+ padding-left: 26px;
605
+ }
606
+
607
+ .yc-chat-surface .yc-message-avatar {
608
+ padding: 0;
609
+ background: transparent;
610
+ border-radius: 50%;
611
+ flex: none;
612
+ }
613
+
614
+ .yc-chat-surface .yc-message-avatar .yc-avatar {
615
+ width: 33px;
616
+ height: 33px;
617
+ font-size: 12px;
618
+ }
619
+
620
+ .yc-chat-surface .yc-message-content {
621
+ min-width: 0;
622
+ max-width: min(78%,560px);
623
+ display: flex;
624
+ flex-direction: column;
625
+ align-items: flex-start;
626
+ }
627
+
628
+ .yc-chat-surface .is-mine .yc-message-content {
629
+ align-items: flex-end;
630
+ }
631
+
632
+ .yc-chat-surface .yc-message-meta {
633
+ display: flex;
634
+ gap: 9px;
635
+ align-items: baseline;
636
+ font-size: 10px;
637
+ color: var(--yc-muted);
638
+ margin: 0 0 6px 1px;
639
+ max-width: 100%;
640
+ }
641
+
642
+ .yc-chat-surface .yc-message-meta span {
643
+ overflow: hidden;
644
+ text-overflow: ellipsis;
645
+ white-space: nowrap;
646
+ }
647
+
648
+ .yc-chat-surface .yc-message-meta time {
649
+ font-size: 9px;
650
+ opacity: .75;
651
+ flex: none;
652
+ }
653
+
654
+ .yc-chat-surface .is-mine .yc-message-meta {
655
+ flex-direction: row-reverse;
656
+ }
657
+
658
+ .yc-chat-surface .yc-bubble {
659
+ position: relative;
660
+ padding: 10px 14px;
661
+ border-radius: 2px 13px 13px 13px;
662
+ background: var(--yc-bubble);
663
+ box-shadow: 0 2px 6px color-mix(in srgb, var(--yc-text) 3%, transparent);
664
+ white-space: pre-wrap;
665
+ overflow-wrap: anywhere;
666
+ font-size: 13px;
667
+ line-height: 1.7;
668
+ -webkit-backdrop-filter: var(--yc-bubble-blur);
669
+ backdrop-filter: var(--yc-bubble-blur);
670
+ }
671
+
672
+ .yc-chat-surface .is-mine .yc-bubble {
673
+ background: var(--yc-own);
674
+ border-radius: 13px 2px 13px 13px;
675
+ }
676
+
677
+ .yc-chat-surface .yc-message-send-status {
678
+ position: absolute;
679
+ left: -26px;
680
+ top: 50%;
681
+ width: 16px;
682
+ height: 16px;
683
+ margin-top: -8px;
684
+ box-sizing: border-box;
685
+ pointer-events: auto;
686
+ }
687
+
688
+ .yc-chat-surface .yc-message-send-status.is-sending {
689
+ border: 2px solid color-mix(in srgb, var(--yc-muted) 25%, transparent);
690
+ border-top-color: var(--yc-muted);
691
+ border-radius: 50%;
692
+ animation: yc-send-spin .8s linear infinite;
693
+ }
694
+
695
+ .yc-chat-surface .yc-message-send-status.is-failed {
696
+ border-radius: 50%;
697
+ background: #dc4545;
698
+ color: #fff;
699
+ text-align: center;
700
+ font: bold 12px/16px sans-serif;
701
+ }
702
+
703
+ @keyframes yc-send-spin {
704
+ to { transform: rotate(360deg); }
705
+ }
706
+
707
+ .yc-chat-surface .yc-system-message {
708
+ font-size: 10px;
709
+ color: var(--yc-muted);
710
+ text-align: center;
711
+ opacity: .85;
712
+ padding: 3px;
713
+ }
714
+
715
+ .yc-chat-surface .yc-composer {
716
+ position: relative;
717
+ border-top: 1px solid var(--yc-line);
718
+ padding: 10px;
719
+ background: var(--yc-input-bg);
720
+ backdrop-filter: var(--yc-composer-blur);
721
+ flex: none;
722
+ -webkit-backdrop-filter: var(--yc-composer-blur);
723
+ }
724
+
725
+ .yc-chat-surface textarea {
726
+ background: transparent;
727
+ border: 0;
728
+ resize: none;
729
+ width: 100%;
730
+ height: 86px;
731
+ min-height: 44px;
732
+ padding: 0;
733
+ line-height: 1.7;
734
+ font-size: 13px;
735
+ }
736
+
737
+ .yc-chat-surface .yc-composer-footer {
738
+ display: flex;
739
+ align-items: center;
740
+ gap: 12px;
741
+ margin-top: 9px;
742
+ }
743
+
744
+ .yc-chat-surface #composerHint {
745
+ font-size: 10px;
746
+ color: var(--yc-muted);
747
+ flex: 1;
748
+ }
749
+
750
+ .yc-chat-surface .yc-char-count {
751
+ font-size: 9px;
752
+ color: var(--yc-muted);
753
+ white-space: nowrap;
754
+ }
755
+
756
+ .yc-chat-surface .yc-send {
757
+ border: 0;
758
+ background: var(--yc-accent);
759
+ color: white;
760
+ font-size: 12px;
761
+ padding: 8px 18px;
762
+ border-radius: 8px;
763
+ display: inline-flex;
764
+ justify-content: center;
765
+ align-items: center;
766
+ gap: 15px;
767
+ white-space: nowrap;
768
+ transition: filter .15s;
769
+ }
770
+
771
+ .yc-chat-surface .yc-send:hover:not(:disabled) {
772
+ filter: brightness(1.1);
773
+ }
774
+
775
+ .yc-chat-surface .yc-send:disabled {
776
+ background: var(--yc-accent);
777
+ color: #fff;
778
+ opacity: .4;
779
+ }
780
+
781
+ .yc-chat-surface .yc-latest {
782
+ position: absolute;
783
+ right: 24px;
784
+ bottom: 180px;
785
+ border: 1px solid var(--yc-line);
786
+ background: var(--yc-card);
787
+ color: var(--yc-accent);
788
+ box-shadow: 0 4px 16px #0001;
789
+ border-radius: 20px;
790
+ padding: 6px 13px;
791
+ font-size: 11px;
792
+ }
793
+
794
+ .yc-chat-surface .yc-feedback {
795
+ padding: 8px 23px;
796
+ background: var(--yc-card);
797
+ color: var(--yc-muted);
798
+ font-size: 11px;
799
+ border-top: 1px solid var(--yc-line);
800
+ }
801
+
802
+ .yc-chat-surface .yc-feedback.is-error {
803
+ color: #bd6461;
804
+ }
805
+
806
+ .yc-chat-surface .yc-login {
807
+ position: absolute;
808
+ inset: calc(40px + var(--yc-window-bar-height, 0px)) 0 0;
809
+ z-index: 20;
810
+ display: grid;
811
+ place-items: center;
812
+ background: var(--yc-bg);
813
+ backdrop-filter: var(--yc-content-blur);
814
+ padding: 20px;
815
+ overflow: auto;
816
+ -webkit-backdrop-filter: var(--yc-content-blur);
817
+ }
818
+
819
+ .yc-chat-surface .yc-login-card {
820
+ display: flex;
821
+ flex-direction: column;
822
+ align-items: center;
823
+ gap: 15px;
824
+ text-align: center;
825
+ max-width: 320px;
826
+ }
827
+
828
+ .yc-chat-surface .yc-login-mark {
829
+ font-size: 38px;
830
+ color: var(--yc-accent);
831
+ opacity: .7;
832
+ }
833
+
834
+ .yc-chat-surface .yc-login-card h2 {
835
+ font-size: 22px;
836
+ font-weight: 500;
837
+ }
838
+
839
+ .yc-chat-surface #loginHint {
840
+ font-size: 12px;
841
+ color: var(--yc-muted);
842
+ }
843
+
844
+ .yc-chat-surface #qr {
845
+ width: 180px;
846
+ height: 180px;
847
+ object-fit: contain;
848
+ border-radius: 12px;
849
+ padding: 8px;
850
+ background: white;
851
+ box-shadow: 0 6px 28px #0001;
852
+ }
853
+
854
+ .yc-chat-surface .yc-login-note {
855
+ font-size: 10px;
856
+ color: var(--yc-muted);
857
+ opacity: .65;
858
+ }
859
+
860
+
861
+ .yc-chat-surface .yc-window-controls button {
862
+ width: 38px;
863
+ height: 34px;
864
+ background: transparent;
865
+ color: var(--yc-muted);
866
+ font-size: 18px;
867
+ }
868
+
869
+ .yc-chat-surface .yc-window-controls button:hover {
870
+ background: var(--yc-hover);
871
+ color: var(--yc-text);
872
+ }
873
+
874
+ .yc-chat-surface #window-close:hover {
875
+ background: #c84453;
876
+ color: white;
877
+ }
878
+
879
+ @media(max-width:720px) {
880
+ .yc-chat-surface {
881
+ grid-template-columns: 190px minmax(0,1fr);
882
+ }
883
+ .yc-chat-surface .yc-sidebar-heading {
884
+ min-height: 66px;
885
+ height: 66px;
886
+ }
887
+ .yc-chat-surface .yc-composer {
888
+ padding: 10px 18px;
889
+ }
890
+ .yc-chat-surface .yc-composer textarea {
891
+ height: 46px;
892
+ }
893
+ .yc-chat-surface .yc-login {
894
+ top: calc(40px + var(--yc-window-bar-height, 0px));
895
+ }
896
+ }
897
+
898
+ @media(max-width:540px) {
899
+ .yc-chat-surface {
900
+ grid-template-columns: 143px minmax(0,1fr);
901
+ }
902
+ .yc-chat-surface .yc-session {
903
+ gap: 7px;
904
+ padding: 7px;
905
+ }
906
+ .yc-chat-surface .yc-session .yc-avatar {
907
+ width: 30px;
908
+ height: 30px;
909
+ font-size: 14px;
910
+ border-radius: 50%;
911
+ }
912
+ .yc-chat-surface .yc-session-top time {
913
+ display: none;
914
+ }
915
+ .yc-chat-surface .yc-profile {
916
+ padding: 13px 9px;
917
+ gap: 6px;
918
+ }
919
+ .yc-chat-surface .yc-profile .yc-avatar {
920
+ width: 28px;
921
+ height: 28px;
922
+ font-size: 10px;
923
+ }
924
+ .yc-chat-surface .yc-profile-info strong {
925
+ font-size: 11px;
926
+ }
927
+ .yc-chat-surface .yc-profile-info .yc-presence {
928
+ font-size: 9px;
929
+ }
930
+ .yc-chat-surface .yc-profile-info {
931
+ min-width: 0;
932
+ }
933
+ .yc-chat-surface .yc-sidebar-heading {
934
+ padding: 0 11px;
935
+ }
936
+ .yc-chat-surface .yc-search {
937
+ margin-left: 8px;
938
+ margin-right: 8px;
939
+ background: var(--yc-input-bg);
940
+ }
941
+ .yc-chat-surface .yc-list-caption {
942
+ padding-left: 13px;
943
+ padding-right: 13px;
944
+ }
945
+ .yc-chat-surface .yc-conversation-header {
946
+ gap: 5px;
947
+ }
948
+ .yc-chat-surface .yc-text-button {
949
+ font-size: 10px;
950
+ }
951
+ .yc-chat-surface .yc-message {
952
+ gap: 7px;
953
+ }
954
+ .yc-chat-surface .yc-message-avatar .yc-avatar {
955
+ width: 25px;
956
+ height: 25px;
957
+ }
958
+ .yc-chat-surface .yc-message-content {
959
+ max-width: 82%;
960
+ }
961
+ .yc-chat-surface .yc-bubble {
962
+ padding: 8px 10px;
963
+ font-size: 12px;
964
+ -webkit-backdrop-filter: var(--yc-bubble-blur);
965
+ backdrop-filter: var(--yc-bubble-blur);
966
+ }
967
+ .yc-chat-surface .yc-composer {
968
+ padding: 12px;
969
+ background: var(--yc-input-bg);
970
+ -webkit-backdrop-filter: var(--yc-composer-blur);
971
+ backdrop-filter: var(--yc-composer-blur);
972
+ }
973
+ .yc-chat-surface .yc-char-count {
974
+ display: none;
975
+ }
976
+ .yc-chat-surface #composerHint {
977
+ font-size: 9px;
978
+ }
979
+ .yc-chat-surface .yc-send {
980
+ padding: 7px 12px;
981
+ gap: 7px;
982
+ }
983
+ .yc-chat-surface .yc-composer-footer {
984
+ gap: 6px;
985
+ }
986
+ .yc-chat-surface .yc-login-card h2 {
987
+ font-size: 18px;
988
+ }
989
+ .yc-chat-surface #qr {
990
+ width: 150px;
991
+ height: 150px;
992
+ }
993
+ }
994
+
995
+ @media(prefers-reduced-motion:reduce) {
996
+ .yc-chat-surface .yc-send {
997
+ transition: none;
998
+ }
999
+ }
1000
+
1001
+ .yc-chat-surface #btnPanelClose {
1002
+ order: 3;
1003
+ color: var(--yc-muted);
1004
+ flex: none;
1005
+ }
1006
+
1007
+
1008
+ .yc-chat-surface[data-theme="dark"] { color-scheme: dark; }
1009
+
1010
+ .yc-chat-surface[data-theme="light"] { color-scheme: light; --yc-fallback-text: #25313d; --yc-fallback-muted: #64748b; --yc-fallback-bg: #f5f7fa; --yc-fallback-card: #e8edf4; --yc-fallback-line: #d5dce7; }
1011
+
1012
+ .yc-chat-surface .yc-sticker-panel {
1013
+ position: absolute;
1014
+ bottom: calc(100% + 8px);
1015
+ left: 12px;
1016
+ right: 12px;
1017
+ z-index: 5;
1018
+ margin: 0;
1019
+ border: 0;
1020
+ border-radius: 12px;
1021
+ padding: 8px 10px 2px;
1022
+ background: var(--yc-input-bg);
1023
+ box-shadow: 0 4px 24px #0002;
1024
+ -webkit-backdrop-filter: var(--yc-popover-blur);
1025
+ backdrop-filter: var(--yc-popover-blur);
1026
+ }
1027
+ .yc-chat-surface .yc-sticker-status {
1028
+ position: absolute;
1029
+ width: 1px;
1030
+ height: 1px;
1031
+ padding: 0;
1032
+ margin: -1px;
1033
+ overflow: hidden;
1034
+ clip-path: inset(50%);
1035
+ white-space: nowrap;
1036
+ border: 0;
1037
+ }
1038
+ .yc-chat-surface .yc-sticker-list {
1039
+ display: flex;
1040
+ gap: 8px;
1041
+ padding: 3px 2px 7px;
1042
+ scrollbar-width: none;
1043
+ overflow-x: auto;
1044
+ overflow-y: hidden;
1045
+ outline: none;
1046
+ overscroll-behavior-x: contain;
1047
+ }
1048
+ .yc-chat-surface .yc-sticker-card {
1049
+ flex: 0 0 96px;
1050
+ height: 96px;
1051
+ display: flex;
1052
+ align-items: center;
1053
+ justify-content: center;
1054
+ overflow: hidden;
1055
+ border: 2px solid transparent;
1056
+ border-radius: 9px;
1057
+ padding: 3px;
1058
+ cursor: pointer;
1059
+ transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
1060
+ background: var(--yc-card);
1061
+ font-size: 11px;
1062
+ color: var(--yc-muted);
1063
+ }
1064
+ .yc-chat-surface .yc-sticker-card img {
1065
+ display: block;
1066
+ visibility: hidden;
1067
+ pointer-events: none;
1068
+ border-radius: 5px;
1069
+ width: 100%;
1070
+ height: 100%;
1071
+ object-fit: contain;
1072
+ }
1073
+
1074
+ .yc-chat-surface .yc-sticker-card img.is-loaded {
1075
+ visibility: visible;
1076
+ }
1077
+ .yc-chat-surface .yc-sticker-card:hover {
1078
+ background: var(--yc-hover);
1079
+ border-color: color-mix(in srgb, var(--yc-accent) 55%, transparent);
1080
+ }
1081
+ .yc-chat-surface .yc-sticker-card.is-selected {
1082
+ border-color: var(--yc-accent);
1083
+ background: color-mix(in srgb, var(--yc-accent) 14%, var(--yc-card));
1084
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--yc-accent) 25%, transparent);
1085
+ }
1086
+ .yc-chat-surface .yc-sticker-list:focus-visible {
1087
+ outline: none;
1088
+ }
1089
+ @media (prefers-reduced-motion: reduce) {
1090
+ .yc-chat-surface .yc-sticker-card { transition: none; }
1091
+ }
1092
+
1093
+ .yc-chat-surface .yc-sticker-list::-webkit-scrollbar {
1094
+ display: none;
1095
+ width: 0;
1096
+ height: 0;
1097
+ }
1098
+ .yc-chat-surface .yc-sticker-scroll {
1099
+ position: relative;
1100
+ height: 16px;
1101
+ margin: 0 3px;
1102
+ cursor: pointer;
1103
+ touch-action: none;
1104
+ user-select: none;
1105
+ outline: none;
1106
+ }
1107
+ .yc-chat-surface .yc-sticker-scroll::before {
1108
+ content: '';
1109
+ position: absolute;
1110
+ left: 0;
1111
+ right: 0;
1112
+ top: 6px;
1113
+ height: 4px;
1114
+ border-radius: 999px;
1115
+ background: color-mix(in srgb, var(--yc-muted) 12%, transparent);
1116
+ }
1117
+ .yc-chat-surface .yc-sticker-thumb {
1118
+ position: absolute;
1119
+ left: 0;
1120
+ top: 5px;
1121
+ height: 6px;
1122
+ border-radius: 999px;
1123
+ background: color-mix(in srgb, var(--yc-muted) 45%, transparent);
1124
+ pointer-events: none;
1125
+ transition: background 120ms ease;
1126
+ }
1127
+ .yc-chat-surface .yc-sticker-scroll:hover .yc-sticker-thumb,
1128
+ .yc-chat-surface .yc-sticker-scroll:focus-visible .yc-sticker-thumb {
1129
+ background: color-mix(in srgb, var(--yc-accent) 75%, var(--yc-muted));
1130
+ }
1131
+ .yc-chat-surface .yc-sticker-scroll.is-dragging .yc-sticker-thumb {
1132
+ background: var(--yc-accent);
1133
+ }
1134
+ @media (prefers-reduced-motion: reduce) {
1135
+ .yc-chat-surface .yc-sticker-thumb { transition: none; }
1136
+ }
1137
+
1138
+ .yc-chat-surface .yc-bubble.yc-sticker-bubble {
1139
+ max-width: 100%;
1140
+ padding: 8px;
1141
+ line-height: 1.7;
1142
+ }
1143
+
1144
+ /* Sticker messages reserve their space until the image has decoded. */
1145
+ .yc-chat-surface .yc-message-sticker {
1146
+ position: relative;
1147
+ width: min(220px, 48vw);
1148
+ max-width: 100%;
1149
+ aspect-ratio: 1;
1150
+ overflow: hidden;
1151
+ border-radius: 10px;
1152
+ }
1153
+ .yc-chat-surface .yc-message-sticker > img {
1154
+ display: block;
1155
+ visibility: hidden;
1156
+ width: 100%;
1157
+ height: 100%;
1158
+ object-fit: contain;
1159
+ border-radius: inherit;
1160
+ }
1161
+ .yc-chat-surface .yc-message-sticker.is-loaded > img {
1162
+ visibility: visible;
1163
+ }
1164
+ .yc-chat-surface .yc-sticker-retry {
1165
+ position: absolute;
1166
+ inset: 0;
1167
+ width: 100%;
1168
+ height: 100%;
1169
+ padding: 12px;
1170
+ border: 0;
1171
+ border-radius: inherit;
1172
+ background: var(--yc-card);
1173
+ color: var(--yc-muted);
1174
+ font: inherit;
1175
+ font-size: 12px;
1176
+ cursor: pointer;
1177
+ }
1178
+ .yc-chat-surface .yc-sticker-retry:hover {
1179
+ background: var(--yc-hover);
1180
+ color: var(--yc-text);
1181
+ }
1182
+ .yc-chat-surface .yc-sticker-retry:focus-visible {
1183
+ outline: 2px solid var(--yc-accent);
1184
+ outline-offset: -2px;
1185
+ }
1186
+
1187
+ .yc-chat-surface .yc-composer-editor {
1188
+ display: flex;
1189
+ flex-direction: column;
1190
+ gap: 8px;
1191
+ }
1192
+ .yc-chat-surface .yc-composer-editor.has-sticker textarea {
1193
+ height: 64px;
1194
+ }
1195
+ .yc-chat-surface .yc-draft-sticker {
1196
+ position: relative;
1197
+ flex: none;
1198
+ width: 76px;
1199
+ height: 76px;
1200
+ border-radius: 9px;
1201
+ background: var(--yc-card);
1202
+ }
1203
+ .yc-chat-surface .yc-draft-sticker > img {
1204
+ display: block;
1205
+ visibility: hidden;
1206
+ width: 100%;
1207
+ height: 100%;
1208
+ object-fit: contain;
1209
+ border-radius: inherit;
1210
+ }
1211
+ .yc-chat-surface .yc-draft-sticker.is-loaded > img {
1212
+ visibility: visible;
1213
+ }
1214
+ .yc-chat-surface .yc-draft-sticker-remove {
1215
+ position: absolute;
1216
+ top: -5px;
1217
+ right: -5px;
1218
+ display: grid;
1219
+ place-items: center;
1220
+ width: 22px;
1221
+ height: 22px;
1222
+ padding: 0;
1223
+ border: 1px solid var(--yc-line);
1224
+ border-radius: 50%;
1225
+ background: var(--yc-bg);
1226
+ color: var(--yc-text);
1227
+ font: inherit;
1228
+ font-size: 16px;
1229
+ line-height: 1;
1230
+ cursor: pointer;
1231
+ }
1232
+ .yc-chat-surface .yc-draft-sticker-remove:hover {
1233
+ background: var(--yc-hover);
1234
+ }
1235
+ .yc-chat-surface .yc-draft-sticker-retry {
1236
+ position: absolute;
1237
+ inset: 0;
1238
+ border: 0;
1239
+ border-radius: inherit;
1240
+ background: var(--yc-card);
1241
+ color: var(--yc-muted);
1242
+ font: inherit;
1243
+ font-size: 11px;
1244
+ cursor: pointer;
1245
+ }
1246
+ .yc-chat-surface .yc-sticker-caption {
1247
+ margin-top: 8px;
1248
+ white-space: pre-wrap;
1249
+ overflow-wrap: anywhere;
1250
+ font-size: 13px;
1251
+ line-height: 1.7;
1252
+ }
1253
+
1254
+ .yc-chat-surface .yc-composer-toolbar {
1255
+ display: flex;
1256
+ align-items: center;
1257
+ gap: 6px;
1258
+ margin-bottom: 12px;
1259
+ }
1260
+
1261
+ .yc-chat-surface .yc-composer-tool {
1262
+ display: inline-flex;
1263
+ align-items: center;
1264
+ justify-content: center;
1265
+ flex: none;
1266
+ width: 30px;
1267
+ height: 30px;
1268
+ padding: 6px;
1269
+ border: 0;
1270
+ border-radius: 7px;
1271
+ background: transparent;
1272
+ color: var(--yc-muted);
1273
+ }
1274
+
1275
+ .yc-chat-surface .yc-composer-tool svg {
1276
+ width: 18px;
1277
+ height: 18px;
1278
+ flex: none;
1279
+ }
1280
+
1281
+ .yc-chat-surface .yc-composer-tool:hover:not(:disabled) {
1282
+ background: var(--yc-hover);
1283
+ color: var(--yc-text);
1284
+ }
1285
+
1286
+
1287
+ .yc-chat-surface .yc-composer-toolbar {
1288
+ position: relative;
1289
+ }
1290
+
1291
+ .yc-chat-surface .yc-emoji-panel {
1292
+ position: absolute;
1293
+ bottom: calc(100% + 10px);
1294
+ left: 0;
1295
+ z-index: 10;
1296
+ width: min(440px, 100%);
1297
+ max-height: 340px;
1298
+ max-height: min(340px, 55vh);
1299
+ display: flex;
1300
+ flex-direction: column;
1301
+ overflow: hidden;
1302
+ border: 1px solid var(--yc-line);
1303
+ border-radius: 10px;
1304
+ background: var(--t-bg2, var(--dsw-specific-sidebar-fill, var(--yc-fallback-bg)));
1305
+ color: var(--yc-text);
1306
+ box-shadow: 0 8px 28px #0003;
1307
+ }
1308
+
1309
+ .yc-chat-surface .yc-emoji-body {
1310
+ min-height: 0;
1311
+ overflow-y: auto;
1312
+ overscroll-behavior: contain;
1313
+ padding: 10px 12px 12px;
1314
+ }
1315
+
1316
+ .yc-chat-surface .yc-emoji-heading {
1317
+ margin: 7px 0 6px;
1318
+ color: var(--yc-muted);
1319
+ font-size: 11px;
1320
+ }
1321
+
1322
+ .yc-chat-surface .yc-emoji-grid {
1323
+ display: grid;
1324
+ grid-template-columns: repeat(auto-fill, minmax(32px, 1fr));
1325
+ gap: 3px;
1326
+ }
1327
+
1328
+ .yc-chat-surface .yc-emoji-item {
1329
+ display: flex;
1330
+ align-items: center;
1331
+ justify-content: center;
1332
+ height: 34px;
1333
+ padding: 2px;
1334
+ border: 0;
1335
+ border-radius: 6px;
1336
+ background: transparent;
1337
+ font: 24px/1 "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
1338
+ }
1339
+
1340
+ .yc-chat-surface .yc-emoji-tabs {
1341
+ display: flex;
1342
+ flex: none;
1343
+ gap: 5px;
1344
+ padding: 5px 10px;
1345
+ border-top: 1px solid var(--yc-line);
1346
+ }
1347
+
1348
+ .yc-chat-surface .yc-emoji-tab {
1349
+ display: grid;
1350
+ place-items: center;
1351
+ width: 32px;
1352
+ min-width: 32px;
1353
+ flex: none;
1354
+ height: 32px;
1355
+ padding: 0;
1356
+ border: 0;
1357
+ border-radius: 6px;
1358
+ background: transparent;
1359
+ color: var(--yc-muted);
1360
+ }
1361
+
1362
+ .yc-chat-surface .yc-emoji-tab svg {
1363
+ display: block;
1364
+ width: 18px;
1365
+ height: 18px;
1366
+ }
1367
+
1368
+
1369
+ .yc-chat-surface .yc-emoji-item:hover,
1370
+ .yc-chat-surface .yc-emoji-tab:hover,
1371
+ .yc-chat-surface .yc-emoji-tab[aria-pressed="true"] {
1372
+ background: var(--yc-hover);
1373
+ color: var(--yc-text);
1374
+ }
1375
+
1376
+ .yc-chat-context-menu, .yc-chat-confirm {
1377
+ box-sizing: border-box; color: var(--yc-text); background: var(--yc-menu-bg, #151a26);
1378
+ border: 1px solid var(--yc-line); border-radius: 9px; box-shadow: 0 8px 28px #0004;
1379
+ font-size: 12px; line-height: 1.5; --wails-draggable: no-drag;
1380
+ }
1381
+ .yc-chat-context-menu[hidden] { display: none !important; }
1382
+ .yc-chat-context-menu { position: fixed; z-index: 10000; min-width: 164px; max-width: calc(100vw - 8px); max-height: calc(100vh - 8px); overflow-y: auto; padding: 5px; }
1383
+ .yc-chat-context-menu button, .yc-chat-confirm button { box-sizing: border-box; border: 0; border-radius: 5px; background: transparent; color: inherit; font: inherit; cursor: pointer; --wails-draggable: no-drag; }
1384
+ .yc-chat-context-menu button { display: block; width: 100%; padding: 7px 12px; text-align: left; white-space: nowrap; }
1385
+ .yc-chat-context-menu button:hover:not(:disabled), .yc-chat-context-menu button:focus-visible, .yc-chat-confirm button:hover { background: var(--yc-hover); }
1386
+ .yc-chat-context-menu button:focus-visible, .yc-chat-confirm button:focus-visible { outline: 1px solid var(--yc-accent); outline-offset: -1px; }
1387
+ .yc-chat-context-menu button:disabled { opacity: .4; cursor: default; }
1388
+ .yc-chat-context-menu .is-danger, .yc-chat-confirm .is-danger { color: #e6636d; }
1389
+ .yc-chat-confirm { width: min(360px, calc(100vw - 32px)); padding: 20px; }
1390
+ .yc-chat-confirm::backdrop { background: #0005; }
1391
+ .yc-chat-confirm p { margin: 0 0 20px; overflow-wrap: anywhere; }
1392
+ .yc-chat-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }
1393
+ .yc-chat-confirm button { padding: 6px 14px; }
1394
+
1395
+ /* Upload progress belongs to the message image, never the composer. */
1396
+ .yc-chat-surface .yc-image-upload {
1397
+ position: absolute;
1398
+ inset: 0;
1399
+ display: flex;
1400
+ flex-direction: column;
1401
+ align-items: center;
1402
+ justify-content: center;
1403
+ gap: 8px;
1404
+ border-radius: inherit;
1405
+ background: #0006;
1406
+ color: #fff;
1407
+ pointer-events: none;
1408
+ }
1409
+ .yc-chat-surface .yc-image-upload-ring { display: block; width: 40px; height: 40px; }
1410
+ .yc-chat-surface .yc-image-upload-ring svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); fill: none; stroke-width: 3; }
1411
+ .yc-chat-surface .yc-image-upload-track { stroke: #ffffff40; }
1412
+ .yc-chat-surface .yc-image-upload-fill { stroke: #fff; stroke-linecap: round; stroke-dasharray: var(--upload-progress, 0) 100; }
1413
+ .yc-chat-surface .yc-image-upload-text { font-size: 12px; line-height: 1.5; font-variant-numeric: tabular-nums; text-shadow: 0 1px 3px #0008; }
1414
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-fill { stroke-dasharray: 25 100; }
1415
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-ring { animation: yc-send-spin .8s linear infinite; }
1416
+ @media (prefers-reduced-motion: reduce) {
1417
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-ring { animation: none; }
1418
+ }
1419
+
1420
+ body.yc-standalone { position: relative; isolation: isolate; background: #151a26; color: #dfe5f1; }
1421
+ body.yc-standalone > .yc-chat-surface { position: relative; z-index: 1; }
1422
+ .yc-standalone-background { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
1423
+ @media (prefers-color-scheme: light) { body.yc-standalone { background: #f5f7fa; color: #25313d; } }