@yiarce/dsh-chat 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/page.css ADDED
@@ -0,0 +1,1463 @@
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
+ .yc-chat-surface .yc-friend-request-card {
880
+ width: fit-content;
881
+ max-width: min(360px, 80%);
882
+ margin: 10px auto;
883
+ padding: 12px 14px;
884
+ border: 1px solid var(--yc-line);
885
+ border-radius: 12px;
886
+ background: var(--yc-card);
887
+ color: var(--yc-text);
888
+ box-shadow: 0 4px 16px #00000012;
889
+ }
890
+
891
+ .yc-chat-surface .yc-friend-request-card p { margin: 6px 0 10px; color: var(--yc-muted); font-size: 12px; }
892
+ .yc-chat-surface .yc-friend-request-actions { display: flex; gap: 8px; }
893
+ .yc-chat-surface .yc-friend-request-actions button { padding: 5px 10px; border-radius: 6px; background: var(--yc-hover); color: var(--yc-text); }
894
+ .yc-chat-surface .yc-friend-request-actions button:hover { background: var(--yc-accent); color: white; }
895
+
896
+ .yc-chat-surface .yc-window-controls button svg {
897
+ display: block;
898
+ width: 14px;
899
+ height: 14px;
900
+ margin: auto;
901
+ fill: none;
902
+ stroke: currentColor;
903
+ stroke-width: 1.7;
904
+ stroke-linecap: round;
905
+ stroke-linejoin: round;
906
+ }
907
+
908
+ .yc-chat-surface #window-close svg {
909
+ width: 15px;
910
+ height: 15px;
911
+ stroke-width: 2.2;
912
+ }
913
+
914
+ .yc-chat-surface .yc-window-controls button:focus-visible {
915
+ outline: 1px solid currentColor;
916
+ outline-offset: -4px;
917
+ }
918
+
919
+ @media(max-width:720px) {
920
+ .yc-chat-surface {
921
+ grid-template-columns: 190px minmax(0,1fr);
922
+ }
923
+ .yc-chat-surface .yc-sidebar-heading {
924
+ min-height: 66px;
925
+ height: 66px;
926
+ }
927
+ .yc-chat-surface .yc-composer {
928
+ padding: 10px 18px;
929
+ }
930
+ .yc-chat-surface .yc-composer textarea {
931
+ height: 46px;
932
+ }
933
+ .yc-chat-surface .yc-login {
934
+ top: calc(40px + var(--yc-window-bar-height, 0px));
935
+ }
936
+ }
937
+
938
+ @media(max-width:540px) {
939
+ .yc-chat-surface {
940
+ grid-template-columns: 143px minmax(0,1fr);
941
+ }
942
+ .yc-chat-surface .yc-session {
943
+ gap: 7px;
944
+ padding: 7px;
945
+ }
946
+ .yc-chat-surface .yc-session .yc-avatar {
947
+ width: 30px;
948
+ height: 30px;
949
+ font-size: 14px;
950
+ border-radius: 50%;
951
+ }
952
+ .yc-chat-surface .yc-session-top time {
953
+ display: none;
954
+ }
955
+ .yc-chat-surface .yc-profile {
956
+ padding: 13px 9px;
957
+ gap: 6px;
958
+ }
959
+ .yc-chat-surface .yc-profile .yc-avatar {
960
+ width: 28px;
961
+ height: 28px;
962
+ font-size: 10px;
963
+ }
964
+ .yc-chat-surface .yc-profile-info strong {
965
+ font-size: 11px;
966
+ }
967
+ .yc-chat-surface .yc-profile-info .yc-presence {
968
+ font-size: 9px;
969
+ }
970
+ .yc-chat-surface .yc-profile-info {
971
+ min-width: 0;
972
+ }
973
+ .yc-chat-surface .yc-sidebar-heading {
974
+ padding: 0 11px;
975
+ }
976
+ .yc-chat-surface .yc-search {
977
+ margin-left: 8px;
978
+ margin-right: 8px;
979
+ background: var(--yc-input-bg);
980
+ }
981
+ .yc-chat-surface .yc-list-caption {
982
+ padding-left: 13px;
983
+ padding-right: 13px;
984
+ }
985
+ .yc-chat-surface .yc-conversation-header {
986
+ gap: 5px;
987
+ }
988
+ .yc-chat-surface .yc-text-button {
989
+ font-size: 10px;
990
+ }
991
+ .yc-chat-surface .yc-message {
992
+ gap: 7px;
993
+ }
994
+ .yc-chat-surface .yc-message-avatar .yc-avatar {
995
+ width: 25px;
996
+ height: 25px;
997
+ }
998
+ .yc-chat-surface .yc-message-content {
999
+ max-width: 82%;
1000
+ }
1001
+ .yc-chat-surface .yc-bubble {
1002
+ padding: 8px 10px;
1003
+ font-size: 12px;
1004
+ -webkit-backdrop-filter: var(--yc-bubble-blur);
1005
+ backdrop-filter: var(--yc-bubble-blur);
1006
+ }
1007
+ .yc-chat-surface .yc-composer {
1008
+ padding: 12px;
1009
+ background: var(--yc-input-bg);
1010
+ -webkit-backdrop-filter: var(--yc-composer-blur);
1011
+ backdrop-filter: var(--yc-composer-blur);
1012
+ }
1013
+ .yc-chat-surface .yc-char-count {
1014
+ display: none;
1015
+ }
1016
+ .yc-chat-surface #composerHint {
1017
+ font-size: 9px;
1018
+ }
1019
+ .yc-chat-surface .yc-send {
1020
+ padding: 7px 12px;
1021
+ gap: 7px;
1022
+ }
1023
+ .yc-chat-surface .yc-composer-footer {
1024
+ gap: 6px;
1025
+ }
1026
+ .yc-chat-surface .yc-login-card h2 {
1027
+ font-size: 18px;
1028
+ }
1029
+ .yc-chat-surface #qr {
1030
+ width: 150px;
1031
+ height: 150px;
1032
+ }
1033
+ }
1034
+
1035
+ @media(prefers-reduced-motion:reduce) {
1036
+ .yc-chat-surface .yc-send {
1037
+ transition: none;
1038
+ }
1039
+ }
1040
+
1041
+ .yc-chat-surface #btnPanelClose {
1042
+ order: 3;
1043
+ color: var(--yc-muted);
1044
+ flex: none;
1045
+ }
1046
+
1047
+
1048
+ .yc-chat-surface[data-theme="dark"] { color-scheme: dark; }
1049
+
1050
+ .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; }
1051
+
1052
+ .yc-chat-surface .yc-sticker-panel {
1053
+ position: absolute;
1054
+ bottom: calc(100% + 8px);
1055
+ left: 12px;
1056
+ right: 12px;
1057
+ z-index: 5;
1058
+ margin: 0;
1059
+ border: 0;
1060
+ border-radius: 12px;
1061
+ padding: 8px 10px 2px;
1062
+ background: var(--yc-input-bg);
1063
+ box-shadow: 0 4px 24px #0002;
1064
+ -webkit-backdrop-filter: var(--yc-popover-blur);
1065
+ backdrop-filter: var(--yc-popover-blur);
1066
+ }
1067
+ .yc-chat-surface .yc-sticker-status {
1068
+ position: absolute;
1069
+ width: 1px;
1070
+ height: 1px;
1071
+ padding: 0;
1072
+ margin: -1px;
1073
+ overflow: hidden;
1074
+ clip-path: inset(50%);
1075
+ white-space: nowrap;
1076
+ border: 0;
1077
+ }
1078
+ .yc-chat-surface .yc-sticker-list {
1079
+ display: flex;
1080
+ gap: 8px;
1081
+ padding: 3px 2px 7px;
1082
+ scrollbar-width: none;
1083
+ overflow-x: auto;
1084
+ overflow-y: hidden;
1085
+ outline: none;
1086
+ overscroll-behavior-x: contain;
1087
+ }
1088
+ .yc-chat-surface .yc-sticker-card {
1089
+ flex: 0 0 96px;
1090
+ height: 96px;
1091
+ display: flex;
1092
+ align-items: center;
1093
+ justify-content: center;
1094
+ overflow: hidden;
1095
+ border: 2px solid transparent;
1096
+ border-radius: 9px;
1097
+ padding: 3px;
1098
+ cursor: pointer;
1099
+ transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
1100
+ background: var(--yc-card);
1101
+ font-size: 11px;
1102
+ color: var(--yc-muted);
1103
+ }
1104
+ .yc-chat-surface .yc-sticker-card img {
1105
+ display: block;
1106
+ visibility: hidden;
1107
+ pointer-events: none;
1108
+ border-radius: 5px;
1109
+ width: 100%;
1110
+ height: 100%;
1111
+ object-fit: contain;
1112
+ }
1113
+
1114
+ .yc-chat-surface .yc-sticker-card img.is-loaded {
1115
+ visibility: visible;
1116
+ }
1117
+ .yc-chat-surface .yc-sticker-card:hover {
1118
+ background: var(--yc-hover);
1119
+ border-color: color-mix(in srgb, var(--yc-accent) 55%, transparent);
1120
+ }
1121
+ .yc-chat-surface .yc-sticker-card.is-selected {
1122
+ border-color: var(--yc-accent);
1123
+ background: color-mix(in srgb, var(--yc-accent) 14%, var(--yc-card));
1124
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--yc-accent) 25%, transparent);
1125
+ }
1126
+ .yc-chat-surface .yc-sticker-list:focus-visible {
1127
+ outline: none;
1128
+ }
1129
+ @media (prefers-reduced-motion: reduce) {
1130
+ .yc-chat-surface .yc-sticker-card { transition: none; }
1131
+ }
1132
+
1133
+ .yc-chat-surface .yc-sticker-list::-webkit-scrollbar {
1134
+ display: none;
1135
+ width: 0;
1136
+ height: 0;
1137
+ }
1138
+ .yc-chat-surface .yc-sticker-scroll {
1139
+ position: relative;
1140
+ height: 16px;
1141
+ margin: 0 3px;
1142
+ cursor: pointer;
1143
+ touch-action: none;
1144
+ user-select: none;
1145
+ outline: none;
1146
+ }
1147
+ .yc-chat-surface .yc-sticker-scroll::before {
1148
+ content: '';
1149
+ position: absolute;
1150
+ left: 0;
1151
+ right: 0;
1152
+ top: 6px;
1153
+ height: 4px;
1154
+ border-radius: 999px;
1155
+ background: color-mix(in srgb, var(--yc-muted) 12%, transparent);
1156
+ }
1157
+ .yc-chat-surface .yc-sticker-thumb {
1158
+ position: absolute;
1159
+ left: 0;
1160
+ top: 5px;
1161
+ height: 6px;
1162
+ border-radius: 999px;
1163
+ background: color-mix(in srgb, var(--yc-muted) 45%, transparent);
1164
+ pointer-events: none;
1165
+ transition: background 120ms ease;
1166
+ }
1167
+ .yc-chat-surface .yc-sticker-scroll:hover .yc-sticker-thumb,
1168
+ .yc-chat-surface .yc-sticker-scroll:focus-visible .yc-sticker-thumb {
1169
+ background: color-mix(in srgb, var(--yc-accent) 75%, var(--yc-muted));
1170
+ }
1171
+ .yc-chat-surface .yc-sticker-scroll.is-dragging .yc-sticker-thumb {
1172
+ background: var(--yc-accent);
1173
+ }
1174
+ @media (prefers-reduced-motion: reduce) {
1175
+ .yc-chat-surface .yc-sticker-thumb { transition: none; }
1176
+ }
1177
+
1178
+ .yc-chat-surface .yc-bubble.yc-sticker-bubble {
1179
+ max-width: 100%;
1180
+ padding: 8px;
1181
+ line-height: 1.7;
1182
+ }
1183
+
1184
+ /* Sticker messages reserve their space until the image has decoded. */
1185
+ .yc-chat-surface .yc-message-sticker {
1186
+ position: relative;
1187
+ width: min(220px, 48vw);
1188
+ max-width: 100%;
1189
+ aspect-ratio: 1;
1190
+ overflow: hidden;
1191
+ border-radius: 10px;
1192
+ }
1193
+ .yc-chat-surface .yc-message-sticker > img {
1194
+ display: block;
1195
+ visibility: hidden;
1196
+ width: 100%;
1197
+ height: 100%;
1198
+ object-fit: contain;
1199
+ border-radius: inherit;
1200
+ }
1201
+ .yc-chat-surface .yc-message-sticker.is-loaded > img {
1202
+ visibility: visible;
1203
+ }
1204
+ .yc-chat-surface .yc-sticker-retry {
1205
+ position: absolute;
1206
+ inset: 0;
1207
+ width: 100%;
1208
+ height: 100%;
1209
+ padding: 12px;
1210
+ border: 0;
1211
+ border-radius: inherit;
1212
+ background: var(--yc-card);
1213
+ color: var(--yc-muted);
1214
+ font: inherit;
1215
+ font-size: 12px;
1216
+ cursor: pointer;
1217
+ }
1218
+ .yc-chat-surface .yc-sticker-retry:hover {
1219
+ background: var(--yc-hover);
1220
+ color: var(--yc-text);
1221
+ }
1222
+ .yc-chat-surface .yc-sticker-retry:focus-visible {
1223
+ outline: 2px solid var(--yc-accent);
1224
+ outline-offset: -2px;
1225
+ }
1226
+
1227
+ .yc-chat-surface .yc-composer-editor {
1228
+ display: flex;
1229
+ flex-direction: column;
1230
+ gap: 8px;
1231
+ }
1232
+ .yc-chat-surface .yc-composer-editor.has-sticker textarea {
1233
+ height: 64px;
1234
+ }
1235
+ .yc-chat-surface .yc-draft-sticker {
1236
+ position: relative;
1237
+ flex: none;
1238
+ width: 76px;
1239
+ height: 76px;
1240
+ border-radius: 9px;
1241
+ background: var(--yc-card);
1242
+ }
1243
+ .yc-chat-surface .yc-draft-sticker > img {
1244
+ display: block;
1245
+ visibility: hidden;
1246
+ width: 100%;
1247
+ height: 100%;
1248
+ object-fit: contain;
1249
+ border-radius: inherit;
1250
+ }
1251
+ .yc-chat-surface .yc-draft-sticker.is-loaded > img {
1252
+ visibility: visible;
1253
+ }
1254
+ .yc-chat-surface .yc-draft-sticker-remove {
1255
+ position: absolute;
1256
+ top: -5px;
1257
+ right: -5px;
1258
+ display: grid;
1259
+ place-items: center;
1260
+ width: 22px;
1261
+ height: 22px;
1262
+ padding: 0;
1263
+ border: 1px solid var(--yc-line);
1264
+ border-radius: 50%;
1265
+ background: var(--yc-bg);
1266
+ color: var(--yc-text);
1267
+ font: inherit;
1268
+ font-size: 16px;
1269
+ line-height: 1;
1270
+ cursor: pointer;
1271
+ }
1272
+ .yc-chat-surface .yc-draft-sticker-remove:hover {
1273
+ background: var(--yc-hover);
1274
+ }
1275
+ .yc-chat-surface .yc-draft-sticker-retry {
1276
+ position: absolute;
1277
+ inset: 0;
1278
+ border: 0;
1279
+ border-radius: inherit;
1280
+ background: var(--yc-card);
1281
+ color: var(--yc-muted);
1282
+ font: inherit;
1283
+ font-size: 11px;
1284
+ cursor: pointer;
1285
+ }
1286
+ .yc-chat-surface .yc-sticker-caption {
1287
+ margin-top: 8px;
1288
+ white-space: pre-wrap;
1289
+ overflow-wrap: anywhere;
1290
+ font-size: 13px;
1291
+ line-height: 1.7;
1292
+ }
1293
+
1294
+ .yc-chat-surface .yc-composer-toolbar {
1295
+ display: flex;
1296
+ align-items: center;
1297
+ gap: 6px;
1298
+ margin-bottom: 12px;
1299
+ }
1300
+
1301
+ .yc-chat-surface .yc-composer-tool {
1302
+ display: inline-flex;
1303
+ align-items: center;
1304
+ justify-content: center;
1305
+ flex: none;
1306
+ width: 30px;
1307
+ height: 30px;
1308
+ padding: 6px;
1309
+ border: 0;
1310
+ border-radius: 7px;
1311
+ background: transparent;
1312
+ color: var(--yc-muted);
1313
+ }
1314
+
1315
+ .yc-chat-surface .yc-composer-tool svg {
1316
+ width: 18px;
1317
+ height: 18px;
1318
+ flex: none;
1319
+ }
1320
+
1321
+ .yc-chat-surface .yc-composer-tool:hover:not(:disabled) {
1322
+ background: var(--yc-hover);
1323
+ color: var(--yc-text);
1324
+ }
1325
+
1326
+
1327
+ .yc-chat-surface .yc-composer-toolbar {
1328
+ position: relative;
1329
+ }
1330
+
1331
+ .yc-chat-surface .yc-emoji-panel {
1332
+ position: absolute;
1333
+ bottom: calc(100% + 10px);
1334
+ left: 0;
1335
+ z-index: 10;
1336
+ width: min(440px, 100%);
1337
+ max-height: 340px;
1338
+ max-height: min(340px, 55vh);
1339
+ display: flex;
1340
+ flex-direction: column;
1341
+ overflow: hidden;
1342
+ border: 1px solid var(--yc-line);
1343
+ border-radius: 10px;
1344
+ background: var(--t-bg2, var(--dsw-specific-sidebar-fill, var(--yc-fallback-bg)));
1345
+ color: var(--yc-text);
1346
+ box-shadow: 0 8px 28px #0003;
1347
+ }
1348
+
1349
+ .yc-chat-surface .yc-emoji-body {
1350
+ min-height: 0;
1351
+ overflow-y: auto;
1352
+ overscroll-behavior: contain;
1353
+ padding: 10px 12px 12px;
1354
+ }
1355
+
1356
+ .yc-chat-surface .yc-emoji-heading {
1357
+ margin: 7px 0 6px;
1358
+ color: var(--yc-muted);
1359
+ font-size: 11px;
1360
+ }
1361
+
1362
+ .yc-chat-surface .yc-emoji-grid {
1363
+ display: grid;
1364
+ grid-template-columns: repeat(auto-fill, minmax(32px, 1fr));
1365
+ gap: 3px;
1366
+ }
1367
+
1368
+ .yc-chat-surface .yc-emoji-item {
1369
+ display: flex;
1370
+ align-items: center;
1371
+ justify-content: center;
1372
+ height: 34px;
1373
+ padding: 2px;
1374
+ border: 0;
1375
+ border-radius: 6px;
1376
+ background: transparent;
1377
+ font: 24px/1 "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
1378
+ }
1379
+
1380
+ .yc-chat-surface .yc-emoji-tabs {
1381
+ display: flex;
1382
+ flex: none;
1383
+ gap: 5px;
1384
+ padding: 5px 10px;
1385
+ border-top: 1px solid var(--yc-line);
1386
+ }
1387
+
1388
+ .yc-chat-surface .yc-emoji-tab {
1389
+ display: grid;
1390
+ place-items: center;
1391
+ width: 32px;
1392
+ min-width: 32px;
1393
+ flex: none;
1394
+ height: 32px;
1395
+ padding: 0;
1396
+ border: 0;
1397
+ border-radius: 6px;
1398
+ background: transparent;
1399
+ color: var(--yc-muted);
1400
+ }
1401
+
1402
+ .yc-chat-surface .yc-emoji-tab svg {
1403
+ display: block;
1404
+ width: 18px;
1405
+ height: 18px;
1406
+ }
1407
+
1408
+
1409
+ .yc-chat-surface .yc-emoji-item:hover,
1410
+ .yc-chat-surface .yc-emoji-tab:hover,
1411
+ .yc-chat-surface .yc-emoji-tab[aria-pressed="true"] {
1412
+ background: var(--yc-hover);
1413
+ color: var(--yc-text);
1414
+ }
1415
+
1416
+ .yc-chat-context-menu, .yc-chat-confirm {
1417
+ box-sizing: border-box; color: var(--yc-text); background: var(--yc-menu-bg, #151a26);
1418
+ border: 1px solid var(--yc-line); border-radius: 9px; box-shadow: 0 8px 28px #0004;
1419
+ font-size: 12px; line-height: 1.5; --wails-draggable: no-drag;
1420
+ }
1421
+ .yc-chat-context-menu[hidden] { display: none !important; }
1422
+ .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; }
1423
+ .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; }
1424
+ .yc-chat-context-menu button { display: block; width: 100%; padding: 7px 12px; text-align: left; white-space: nowrap; }
1425
+ .yc-chat-context-menu button:hover:not(:disabled), .yc-chat-context-menu button:focus-visible, .yc-chat-confirm button:hover { background: var(--yc-hover); }
1426
+ .yc-chat-context-menu button:focus-visible, .yc-chat-confirm button:focus-visible { outline: 1px solid var(--yc-accent); outline-offset: -1px; }
1427
+ .yc-chat-context-menu button:disabled { opacity: .4; cursor: default; }
1428
+ .yc-chat-context-menu .is-danger, .yc-chat-confirm .is-danger { color: #e6636d; }
1429
+ .yc-chat-confirm { width: min(360px, calc(100vw - 32px)); padding: 20px; }
1430
+ .yc-chat-confirm::backdrop { background: #0005; }
1431
+ .yc-chat-confirm p { margin: 0 0 20px; overflow-wrap: anywhere; }
1432
+ .yc-chat-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; }
1433
+ .yc-chat-confirm button { padding: 6px 14px; }
1434
+
1435
+ /* Upload progress belongs to the message image, never the composer. */
1436
+ .yc-chat-surface .yc-image-upload {
1437
+ position: absolute;
1438
+ inset: 0;
1439
+ display: flex;
1440
+ flex-direction: column;
1441
+ align-items: center;
1442
+ justify-content: center;
1443
+ gap: 8px;
1444
+ border-radius: inherit;
1445
+ background: #0006;
1446
+ color: #fff;
1447
+ pointer-events: none;
1448
+ }
1449
+ .yc-chat-surface .yc-image-upload-ring { display: block; width: 40px; height: 40px; }
1450
+ .yc-chat-surface .yc-image-upload-ring svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); fill: none; stroke-width: 3; }
1451
+ .yc-chat-surface .yc-image-upload-track { stroke: #ffffff40; }
1452
+ .yc-chat-surface .yc-image-upload-fill { stroke: #fff; stroke-linecap: round; stroke-dasharray: var(--upload-progress, 0) 100; }
1453
+ .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; }
1454
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-fill { stroke-dasharray: 25 100; }
1455
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-ring { animation: yc-send-spin .8s linear infinite; }
1456
+ @media (prefers-reduced-motion: reduce) {
1457
+ .yc-chat-surface .yc-image-upload.is-processing .yc-image-upload-ring { animation: none; }
1458
+ }
1459
+
1460
+ body.yc-standalone { position: relative; isolation: isolate; background: #151a26; color: #dfe5f1; }
1461
+ body.yc-standalone > .yc-chat-surface { position: relative; z-index: 1; }
1462
+ .yc-standalone-background { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
1463
+ @media (prefers-color-scheme: light) { body.yc-standalone { background: #f5f7fa; color: #25313d; } }