urasoft-live-support 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,829 @@
1
+ /* =========================================
2
+ MODERN CHAT WIDGET - PREMIUM DESIGN
3
+ ========================================= */
4
+
5
+ /* ==================== ROOT VARIABLES ==================== */
6
+ :root {
7
+ --primary: #6366f1;
8
+ --primary-light: #818cf8;
9
+ --primary-dark: #4f46e5;
10
+ --secondary: #8b5cf6;
11
+ --accent: #ec4899;
12
+
13
+ --surface: #ffffff;
14
+ --surface-hover: #f8fafc;
15
+ --surface-alt: #f1f5f9;
16
+ --border: #e2e8f0;
17
+ --border-light: #f1f5f9;
18
+
19
+ --text-primary: #0f172a;
20
+ --text-secondary: #475569;
21
+ --text-tertiary: #94a3b8;
22
+
23
+ --success: #10b981;
24
+ --warning: #f59e0b;
25
+ --error: #ef4444;
26
+
27
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
28
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
29
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
30
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
31
+ --shadow-glow: 0 0 20px rgba(99, 102, 241, 0.3);
32
+
33
+ --radius-sm: 8px;
34
+ --radius-md: 12px;
35
+ --radius-lg: 16px;
36
+ --radius-xl: 20px;
37
+ --radius-2xl: 24px;
38
+ --radius-full: 9999px;
39
+
40
+ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
41
+ --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
42
+ --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);
43
+ --transition-bounce: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);
44
+ }
45
+
46
+ /* ==================== BASE STYLES ==================== */
47
+ .chat-widget {
48
+ position: fixed;
49
+ z-index: 9999;
50
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
51
+ -webkit-font-smoothing: antialiased;
52
+ -moz-osx-font-smoothing: grayscale;
53
+ }
54
+
55
+ .chat-widget * {
56
+ box-sizing: border-box;
57
+ }
58
+
59
+ .chat-widget-bottom-right { bottom: 24px; right: 24px; }
60
+ .chat-widget-bottom-left { bottom: 24px; left: 24px; }
61
+ .chat-widget-top-right { top: 24px; right: 24px; }
62
+ .chat-widget-top-left { top: 24px; left: 24px; }
63
+
64
+ .chat-widget-container {
65
+ display: flex;
66
+ flex-direction: column;
67
+ align-items: flex-end;
68
+ gap: 16px;
69
+ }
70
+
71
+ /* ==================== TOGGLE BUTTON ==================== */
72
+ .chat-widget-button {
73
+ position: relative;
74
+ width: 64px;
75
+ height: 64px;
76
+ border-radius: var(--radius-full);
77
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
78
+ color: white;
79
+ border: none;
80
+ font-size: 28px;
81
+ cursor: pointer;
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: center;
85
+ transition: all var(--transition-base);
86
+ box-shadow:
87
+ var(--shadow-lg),
88
+ 0 8px 32px -8px rgba(99, 102, 241, 0.5);
89
+ overflow: hidden;
90
+ }
91
+
92
+ .chat-widget-button::before {
93
+ content: '';
94
+ position: absolute;
95
+ inset: 0;
96
+ background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.3), transparent 70%);
97
+ opacity: 0;
98
+ transition: opacity var(--transition-base);
99
+ }
100
+
101
+ .chat-widget-button:hover {
102
+ transform: scale(1.1) translateY(-4px);
103
+ box-shadow:
104
+ var(--shadow-xl),
105
+ 0 16px 48px -8px rgba(99, 102, 241, 0.6),
106
+ var(--shadow-glow);
107
+ }
108
+
109
+ .chat-widget-button:hover::before {
110
+ opacity: 1;
111
+ }
112
+
113
+ .chat-widget-button:active {
114
+ transform: scale(1.02) translateY(0);
115
+ }
116
+
117
+ /* ==================== CHAT WINDOW ==================== */
118
+ .chat-window {
119
+ width: 420px;
120
+ height: 640px;
121
+ background: rgba(255, 255, 255, 0.95);
122
+ backdrop-filter: blur(24px) saturate(180%);
123
+ border-radius: var(--radius-2xl);
124
+ box-shadow:
125
+ var(--shadow-xl),
126
+ 0 0 0 1px rgba(0, 0, 0, 0.05),
127
+ 0 32px 64px -12px rgba(0, 0, 0, 0.12);
128
+ display: flex;
129
+ flex-direction: column;
130
+ overflow: hidden;
131
+ animation: chatWindowAppear var(--transition-bounce);
132
+ }
133
+
134
+ @keyframes chatWindowAppear {
135
+ 0% {
136
+ opacity: 0;
137
+ transform: scale(0.9) translateY(20px);
138
+ }
139
+ 60% {
140
+ transform: scale(1.02) translateY(-4px);
141
+ }
142
+ 100% {
143
+ opacity: 1;
144
+ transform: scale(1) translateY(0);
145
+ }
146
+ }
147
+
148
+ /* ==================== HEADER ==================== */
149
+ .chat-header {
150
+ position: relative;
151
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
152
+ padding: 24px 20px;
153
+ display: flex;
154
+ justify-content: space-between;
155
+ align-items: center;
156
+ color: white;
157
+ overflow: hidden;
158
+ }
159
+
160
+ .chat-header::before {
161
+ content: '';
162
+ position: absolute;
163
+ inset: 0;
164
+ background: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.15), transparent 60%);
165
+ pointer-events: none;
166
+ }
167
+
168
+ .chat-header-info {
169
+ display: flex;
170
+ align-items: center;
171
+ gap: 12px;
172
+ position: relative;
173
+ z-index: 1;
174
+ }
175
+
176
+ .chat-header-avatar {
177
+ width: 44px;
178
+ height: 44px;
179
+ border-radius: var(--radius-full);
180
+ border: 3px solid rgba(255, 255, 255, 0.3);
181
+ background: white;
182
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
183
+ }
184
+
185
+ .chat-header-title {
186
+ font-size: 18px;
187
+ font-weight: 700;
188
+ letter-spacing: -0.02em;
189
+ margin-bottom: 2px;
190
+ }
191
+
192
+ .chat-header-status {
193
+ font-size: 13px;
194
+ font-weight: 500;
195
+ opacity: 0.9;
196
+ display: flex;
197
+ align-items: center;
198
+ gap: 6px;
199
+ }
200
+
201
+ .chat-header-status::before {
202
+ content: '';
203
+ width: 8px;
204
+ height: 8px;
205
+ border-radius: var(--radius-full);
206
+ background: currentColor;
207
+ animation: pulse 2s ease-in-out infinite;
208
+ }
209
+
210
+ @keyframes pulse {
211
+ 0%, 100% { opacity: 1; }
212
+ 50% { opacity: 0.5; }
213
+ }
214
+
215
+ .chat-header-status.online::before { background: #10b981; }
216
+ .chat-header-status.connecting::before { background: #f59e0b; }
217
+ .chat-header-status.offline::before { background: #ef4444; }
218
+
219
+ .chat-header-actions {
220
+ display: flex;
221
+ gap: 8px;
222
+ position: relative;
223
+ z-index: 1;
224
+ }
225
+
226
+ .chat-close-button {
227
+ width: 36px;
228
+ height: 36px;
229
+ border-radius: var(--radius-md);
230
+ background: rgba(255, 255, 255, 0.15);
231
+ backdrop-filter: blur(8px);
232
+ color: white;
233
+ border: none;
234
+ font-size: 18px;
235
+ cursor: pointer;
236
+ display: flex;
237
+ align-items: center;
238
+ justify-content: center;
239
+ transition: all var(--transition-fast);
240
+ }
241
+
242
+ .chat-close-button:hover {
243
+ background: rgba(255, 255, 255, 0.25);
244
+ transform: scale(1.05);
245
+ }
246
+
247
+ .chat-close-button:active {
248
+ transform: scale(0.95);
249
+ }
250
+
251
+ /* ==================== WELCOME SCREEN ==================== */
252
+ .chat-welcome-screen {
253
+ flex: 1;
254
+ display: flex;
255
+ flex-direction: column;
256
+ align-items: center;
257
+ justify-content: center;
258
+ padding: 48px 32px;
259
+ background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
260
+ position: relative;
261
+ overflow: hidden;
262
+ }
263
+
264
+ .chat-welcome-screen::before {
265
+ content: '';
266
+ position: absolute;
267
+ top: -50%;
268
+ left: -50%;
269
+ width: 200%;
270
+ height: 200%;
271
+ background: radial-gradient(circle, rgba(99, 102, 241, 0.03) 0%, transparent 70%);
272
+ }
273
+
274
+ .chat-start-conversation-button {
275
+ position: relative;
276
+ padding: 16px 32px;
277
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
278
+ color: white;
279
+ border: none;
280
+ border-radius: var(--radius-xl);
281
+ font-size: 16px;
282
+ font-weight: 600;
283
+ cursor: pointer;
284
+ display: flex;
285
+ align-items: center;
286
+ gap: 12px;
287
+ transition: all var(--transition-base);
288
+ box-shadow:
289
+ var(--shadow-lg),
290
+ 0 8px 32px -8px rgba(99, 102, 241, 0.4);
291
+ z-index: 1;
292
+ }
293
+
294
+ .chat-start-conversation-button .button-icon {
295
+ font-size: 24px;
296
+ }
297
+
298
+ .chat-start-conversation-button:hover {
299
+ transform: translateY(-2px) scale(1.02);
300
+ box-shadow:
301
+ var(--shadow-xl),
302
+ 0 12px 48px -8px rgba(99, 102, 241, 0.5);
303
+ }
304
+
305
+ .chat-start-conversation-button:active {
306
+ transform: translateY(0) scale(0.98);
307
+ }
308
+
309
+ .chat-start-conversation-button.connecting {
310
+ opacity: 0.7;
311
+ cursor: wait;
312
+ pointer-events: none;
313
+ }
314
+
315
+ /* ==================== MESSAGES CONTAINER ==================== */
316
+ .chat-messages {
317
+ flex: 1;
318
+ overflow-y: auto;
319
+ padding: 20px;
320
+ display: flex;
321
+ flex-direction: column;
322
+ gap: 16px;
323
+ background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
324
+ scroll-behavior: smooth;
325
+ }
326
+
327
+ .chat-messages::-webkit-scrollbar {
328
+ width: 6px;
329
+ }
330
+
331
+ .chat-messages::-webkit-scrollbar-track {
332
+ background: transparent;
333
+ }
334
+
335
+ .chat-messages::-webkit-scrollbar-thumb {
336
+ background: var(--border);
337
+ border-radius: var(--radius-full);
338
+ }
339
+
340
+ .chat-messages::-webkit-scrollbar-thumb:hover {
341
+ background: var(--text-tertiary);
342
+ }
343
+
344
+ /* ==================== MESSAGE BUBBLES ==================== */
345
+ .chat-message {
346
+ display: flex;
347
+ gap: 12px;
348
+ max-width: 85%;
349
+ animation: messageAppear 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
350
+ }
351
+
352
+ @keyframes messageAppear {
353
+ 0% {
354
+ opacity: 0;
355
+ transform: translateY(16px) scale(0.95);
356
+ }
357
+ 100% {
358
+ opacity: 1;
359
+ transform: translateY(0) scale(1);
360
+ }
361
+ }
362
+
363
+ .chat-message-user {
364
+ align-self: flex-end;
365
+ flex-direction: row-reverse;
366
+ }
367
+
368
+ .chat-message-agent {
369
+ align-self: flex-start;
370
+ }
371
+
372
+ .chat-message-avatar {
373
+ width: 36px;
374
+ height: 36px;
375
+ border-radius: var(--radius-full);
376
+ flex-shrink: 0;
377
+ box-shadow: var(--shadow-md);
378
+ border: 2px solid white;
379
+ background: white;
380
+ }
381
+
382
+ .chat-message-content {
383
+ display: flex;
384
+ flex-direction: column;
385
+ gap: 6px;
386
+ }
387
+
388
+ .chat-message-text {
389
+ padding: 14px 18px;
390
+ border-radius: var(--radius-lg);
391
+ font-size: 15px;
392
+ line-height: 1.6;
393
+ word-wrap: break-word;
394
+ position: relative;
395
+ transition: all var(--transition-fast);
396
+ }
397
+
398
+ .chat-message-user .chat-message-text {
399
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
400
+ color: white;
401
+ border-bottom-right-radius: 6px;
402
+ box-shadow:
403
+ var(--shadow-md),
404
+ 0 4px 16px -4px rgba(99, 102, 241, 0.3);
405
+ }
406
+
407
+ .chat-message-user .chat-message-text:hover {
408
+ transform: translateY(-1px);
409
+ box-shadow:
410
+ var(--shadow-lg),
411
+ 0 8px 24px -4px rgba(99, 102, 241, 0.4);
412
+ }
413
+
414
+ .chat-message-agent .chat-message-text {
415
+ background: white;
416
+ color: var(--text-primary);
417
+ border-bottom-left-radius: 6px;
418
+ box-shadow: var(--shadow-sm);
419
+ border: 1px solid var(--border-light);
420
+ }
421
+
422
+ .chat-message-agent .chat-message-text:hover {
423
+ transform: translateY(-1px);
424
+ box-shadow: var(--shadow-md);
425
+ border-color: var(--border);
426
+ }
427
+
428
+ .chat-message-time {
429
+ font-size: 12px;
430
+ color: var(--text-tertiary);
431
+ font-weight: 500;
432
+ padding: 0 4px;
433
+ }
434
+
435
+ /* ==================== DISCONNECT BUTTON ==================== */
436
+ .chat-disconnect-button-container {
437
+ padding: 12px 20px;
438
+ background: var(--surface);
439
+ border-top: 1px solid var(--border-light);
440
+ display: flex;
441
+ justify-content: center;
442
+ }
443
+
444
+ .chat-end-conversation-button-small {
445
+ padding: 10px 20px;
446
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
447
+ color: white;
448
+ border: none;
449
+ border-radius: var(--radius-lg);
450
+ font-size: 13px;
451
+ font-weight: 600;
452
+ cursor: pointer;
453
+ display: flex;
454
+ align-items: center;
455
+ gap: 8px;
456
+ transition: all var(--transition-base);
457
+ box-shadow: var(--shadow-sm);
458
+ }
459
+
460
+ .chat-end-conversation-button-small:hover {
461
+ transform: translateY(-1px);
462
+ box-shadow: var(--shadow-md);
463
+ }
464
+
465
+ .chat-end-conversation-button-small:active {
466
+ transform: translateY(0);
467
+ }
468
+
469
+ .chat-end-conversation-button-small .button-icon {
470
+ font-size: 16px;
471
+ }
472
+
473
+ /* ==================== INPUT CONTAINER ==================== */
474
+ .chat-input-container {
475
+ position: relative;
476
+ padding: 20px;
477
+ background: white;
478
+ border-top: 1px solid var(--border-light);
479
+ }
480
+
481
+ .chat-emoji-picker-container {
482
+ position: absolute;
483
+ bottom: 100%;
484
+ left: 0;
485
+ right: 0;
486
+ margin-bottom: 8px;
487
+ z-index: 1000;
488
+ border-radius: var(--radius-xl);
489
+ overflow: hidden;
490
+ box-shadow: var(--shadow-xl);
491
+ animation: emojiPickerAppear 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
492
+ }
493
+
494
+ @keyframes emojiPickerAppear {
495
+ 0% {
496
+ opacity: 0;
497
+ transform: translateY(8px) scale(0.95);
498
+ }
499
+ 100% {
500
+ opacity: 1;
501
+ transform: translateY(0) scale(1);
502
+ }
503
+ }
504
+
505
+ .chat-emoji-picker-container emoji-picker {
506
+ width: 100%;
507
+ height: 350px;
508
+ border: none;
509
+ --border-radius: 16px;
510
+ }
511
+
512
+ .chat-file-preview {
513
+ display: flex;
514
+ flex-direction: column;
515
+ gap: 8px;
516
+ margin-bottom: 12px;
517
+ max-height: 120px;
518
+ overflow-y: auto;
519
+ }
520
+
521
+ .chat-file-item {
522
+ display: flex;
523
+ align-items: center;
524
+ gap: 10px;
525
+ padding: 10px 12px;
526
+ background: var(--surface-alt);
527
+ border-radius: var(--radius-md);
528
+ font-size: 14px;
529
+ transition: all var(--transition-fast);
530
+ }
531
+
532
+ .chat-file-item:hover {
533
+ background: var(--border);
534
+ }
535
+
536
+ .chat-file-icon {
537
+ font-size: 18px;
538
+ }
539
+
540
+ .chat-file-name {
541
+ flex: 1;
542
+ overflow: hidden;
543
+ text-overflow: ellipsis;
544
+ white-space: nowrap;
545
+ color: var(--text-primary);
546
+ font-weight: 500;
547
+ }
548
+
549
+ .chat-file-size {
550
+ font-size: 12px;
551
+ color: var(--text-secondary);
552
+ }
553
+
554
+ .chat-file-remove {
555
+ width: 24px;
556
+ height: 24px;
557
+ border-radius: var(--radius-full);
558
+ background: var(--error);
559
+ color: white;
560
+ border: none;
561
+ font-size: 14px;
562
+ cursor: pointer;
563
+ display: flex;
564
+ align-items: center;
565
+ justify-content: center;
566
+ transition: all var(--transition-fast);
567
+ }
568
+
569
+ .chat-file-remove:hover {
570
+ transform: scale(1.1);
571
+ background: #dc2626;
572
+ }
573
+
574
+ .chat-input-wrapper {
575
+ display: flex;
576
+ align-items: center;
577
+ gap: 10px;
578
+ }
579
+
580
+ .chat-attach-button,
581
+ .chat-emoji-button {
582
+ width: 40px;
583
+ height: 40px;
584
+ border-radius: var(--radius-full);
585
+ background: var(--surface-alt);
586
+ color: var(--text-secondary);
587
+ border: none;
588
+ font-size: 20px;
589
+ cursor: pointer;
590
+ display: flex;
591
+ align-items: center;
592
+ justify-content: center;
593
+ transition: all var(--transition-fast);
594
+ flex-shrink: 0;
595
+ }
596
+
597
+ .chat-attach-button:hover,
598
+ .chat-emoji-button:hover {
599
+ background: var(--border);
600
+ transform: scale(1.05);
601
+ color: var(--text-primary);
602
+ }
603
+
604
+ .chat-attach-button:active,
605
+ .chat-emoji-button:active {
606
+ transform: scale(0.95);
607
+ }
608
+
609
+ .chat-input {
610
+ flex: 1;
611
+ padding: 12px 16px;
612
+ border: 2px solid var(--border);
613
+ border-radius: var(--radius-xl);
614
+ font-size: 15px;
615
+ font-family: inherit;
616
+ color: var(--text-primary);
617
+ background: var(--surface);
618
+ outline: none;
619
+ transition: all var(--transition-base);
620
+ }
621
+
622
+ .chat-input::placeholder {
623
+ color: var(--text-tertiary);
624
+ }
625
+
626
+ .chat-input:focus {
627
+ border-color: var(--primary);
628
+ background: white;
629
+ box-shadow:
630
+ 0 0 0 4px rgba(99, 102, 241, 0.1),
631
+ var(--shadow-sm);
632
+ transform: translateY(-1px);
633
+ }
634
+
635
+ .chat-input:disabled {
636
+ opacity: 0.6;
637
+ cursor: not-allowed;
638
+ background: var(--surface-alt);
639
+ }
640
+
641
+ .chat-send-button {
642
+ width: 44px;
643
+ height: 44px;
644
+ border-radius: var(--radius-full);
645
+ background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
646
+ color: white;
647
+ border: none;
648
+ font-size: 20px;
649
+ cursor: pointer;
650
+ display: flex;
651
+ align-items: center;
652
+ justify-content: center;
653
+ transition: all var(--transition-base);
654
+ box-shadow:
655
+ var(--shadow-md),
656
+ 0 4px 16px -4px rgba(99, 102, 241, 0.4);
657
+ flex-shrink: 0;
658
+ position: relative;
659
+ overflow: hidden;
660
+ }
661
+
662
+ .chat-send-button::before {
663
+ content: '';
664
+ position: absolute;
665
+ inset: 0;
666
+ background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.4), transparent 70%);
667
+ opacity: 0;
668
+ transition: opacity var(--transition-fast);
669
+ }
670
+
671
+ .chat-send-button:hover::before {
672
+ opacity: 1;
673
+ }
674
+
675
+ .chat-send-button:hover {
676
+ transform: scale(1.08) rotate(12deg);
677
+ box-shadow:
678
+ var(--shadow-lg),
679
+ 0 8px 24px -4px rgba(99, 102, 241, 0.5);
680
+ }
681
+
682
+ .chat-send-button:active {
683
+ transform: scale(1) rotate(0deg);
684
+ }
685
+
686
+ .chat-send-button:disabled {
687
+ opacity: 0.5;
688
+ cursor: not-allowed;
689
+ transform: none;
690
+ }
691
+
692
+ /* ==================== DARK MODE ==================== */
693
+ .chat-widget.dark {
694
+ --surface: #1e293b;
695
+ --surface-hover: #334155;
696
+ --surface-alt: #0f172a;
697
+ --border: #334155;
698
+ --border-light: #1e293b;
699
+
700
+ --text-primary: #f1f5f9;
701
+ --text-secondary: #cbd5e1;
702
+ --text-tertiary: #64748b;
703
+ }
704
+
705
+ .chat-widget.dark .chat-window {
706
+ background: rgba(30, 41, 59, 0.95);
707
+ box-shadow:
708
+ var(--shadow-xl),
709
+ 0 0 0 1px rgba(255, 255, 255, 0.05),
710
+ 0 32px 64px -12px rgba(0, 0, 0, 0.3);
711
+ }
712
+
713
+ .chat-widget.dark .chat-messages {
714
+ background: linear-gradient(180deg, #1e293b 0%, #0f172a 100%);
715
+ }
716
+
717
+ .chat-widget.dark .chat-message-agent .chat-message-text {
718
+ background: #334155;
719
+ border-color: #475569;
720
+ color: var(--text-primary);
721
+ }
722
+
723
+ .chat-widget.dark .chat-input-container {
724
+ background: var(--surface);
725
+ border-top-color: var(--border);
726
+ }
727
+
728
+ .chat-widget.dark .chat-input {
729
+ background: var(--surface-alt);
730
+ border-color: var(--border);
731
+ color: var(--text-primary);
732
+ }
733
+
734
+ .chat-widget.dark .chat-input:focus {
735
+ background: var(--surface);
736
+ border-color: var(--primary-light);
737
+ box-shadow:
738
+ 0 0 0 4px rgba(129, 140, 248, 0.15),
739
+ var(--shadow-sm);
740
+ }
741
+
742
+ .chat-widget.dark .chat-emoji-picker-container emoji-picker {
743
+ --background: #1e293b;
744
+ --border-color: #334155;
745
+ --input-border-color: #475569;
746
+ --input-font-color: #f1f5f9;
747
+ --input-placeholder-color: #94a3b8;
748
+ --outline-color: #818cf8;
749
+ --category-font-color: #cbd5e1;
750
+ --button-active-background: #334155;
751
+ --button-hover-background: #475569;
752
+ --emoji-hover-background: #334155;
753
+ --indicator-color: #818cf8;
754
+ --search-background: #0f172a;
755
+ --search-icon-color: #94a3b8;
756
+ }
757
+
758
+ /* ==================== RESPONSIVE ==================== */
759
+ @media (max-width: 480px) {
760
+ .chat-window {
761
+ width: 100vw;
762
+ height: 100vh;
763
+ border-radius: 0;
764
+ max-width: none;
765
+ max-height: none;
766
+ }
767
+
768
+ .chat-widget-bottom-right,
769
+ .chat-widget-bottom-left,
770
+ .chat-widget-top-right,
771
+ .chat-widget-top-left {
772
+ top: 0;
773
+ right: 0;
774
+ bottom: 0;
775
+ left: 0;
776
+ }
777
+ }
778
+
779
+ /* ==================== UTILITIES ==================== */
780
+ .chat-file-input {
781
+ display: none;
782
+ }
783
+
784
+ /* Message attachments */
785
+ .chat-message-attachments {
786
+ display: flex;
787
+ flex-direction: column;
788
+ gap: 6px;
789
+ margin-top: 8px;
790
+ }
791
+
792
+ .chat-message-attachment {
793
+ display: flex;
794
+ align-items: center;
795
+ gap: 8px;
796
+ padding: 8px 12px;
797
+ background: rgba(0, 0, 0, 0.05);
798
+ border-radius: var(--radius-md);
799
+ font-size: 13px;
800
+ }
801
+
802
+ .chat-message-user .chat-message-attachment {
803
+ background: rgba(255, 255, 255, 0.2);
804
+ }
805
+
806
+ /* Connection button */
807
+ .chat-connect-button {
808
+ padding: 12px 24px;
809
+ background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
810
+ color: white;
811
+ border: none;
812
+ border-radius: var(--radius-lg);
813
+ font-size: 14px;
814
+ font-weight: 600;
815
+ cursor: pointer;
816
+ transition: all var(--transition-base);
817
+ box-shadow: var(--shadow-md);
818
+ }
819
+
820
+ .chat-connect-button:hover {
821
+ transform: translateY(-2px);
822
+ box-shadow: var(--shadow-lg);
823
+ }
824
+
825
+ .chat-connect-button:disabled {
826
+ opacity: 0.5;
827
+ cursor: not-allowed;
828
+ transform: none;
829
+ }