PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.10
MxChat – AI Chatbot & Content Generation for WordPress v3.2.10
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
mxchat-basic / css / chat-style.css

chat-style.css in MxChat – AI Chatbot & Content Generation for WordPress 3.2.10, at css/chat-style.css

1,972 lines 45.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 NOTIFICATION SYSTEM
3 ======================================== */
4 .chat-notification-badge {
5 animation: notification-pulse 2s infinite;
6 box-shadow: 0 0 0 rgba(255, 68, 68, 0.4);
7 transition: all 0.3s ease;
8 }
9
10 @keyframes notification-pulse {
11 0% {
12 transform: scale(1);
13 box-shadow: 0 0 0 0 rgba(255, 68, 68, 0.4);
14 }
15 70% {
16 transform: scale(1.1);
17 box-shadow: 0 0 0 10px rgba(255, 68, 68, 0);
18 }
19 100% {
20 transform: scale(1);
21 box-shadow: 0 0 0 0 rgba(255, 68, 68, 0);
22 }
23 }
24
25 /* ========================================
26 EMAIL COLLECTION SYSTEM
27 ======================================== */
28 .email-blocker {
29 display: flex;
30 flex-direction: column;
31 align-items: center;
32 justify-content: center;
33 border-radius: 12px;
34 padding: 30px 20px;
35 max-width: 100%;
36 margin: auto;
37 text-align: center;
38 animation: fadeIn 0.5s ease-in-out;
39 }
40
41 .email-blocker-header {
42 margin-bottom: 20px;
43 }
44
45 .email-blocker-logo {
46 max-width: 80px;
47 margin-bottom: 10px;
48 }
49
50 .email-blocker h2 {
51 font-size: 24px;
52 font-weight: bold;
53 color: #333333;
54 margin-bottom: 10px;
55 }
56
57 .email-blocker p {
58 font-size: 16px;
59 color: #555555;
60 margin-bottom: 20px;
61 }
62
63 .email-blocker input[type="email"],
64 .email-blocker .mxchat-name-input {
65 width: 100%;
66 padding: 12px;
67 margin-bottom: 15px;
68 border: 1px solid #ddd;
69 border-radius: 8px;
70 font-size: 16px;
71 color: #333333;
72 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
73 transition: border-color 0.3s, box-shadow 0.3s;
74 }
75
76 .email-blocker input[type="email"]:focus,
77 .email-blocker .mxchat-name-input:focus {
78 border-color: #0073aa;
79 box-shadow: 0 0 8px rgba(0, 115, 170, 0.3);
80 outline: none;
81 }
82
83 .email-blocker button {
84 background-color: #0073aa;
85 color: #ffffff;
86 padding: 12px 20px;
87 border: none;
88 border-radius: 8px;
89 font-size: 16px;
90 font-weight: bold;
91 cursor: pointer;
92 width: 100%;
93 transition: background-color 0.3s, transform 0.2s;
94 }
95
96 .email-blocker button:hover {
97 background-color: #005177;
98 transform: translateY(-2px);
99 }
100
101 .email-blocker-footer {
102 margin-top: 20px;
103 font-size: 12px;
104 color: #888888;
105 }
106
107 .sr-only {
108 position: absolute;
109 width: 1px;
110 height: 1px;
111 padding: 0;
112 margin: -1px;
113 overflow: hidden;
114 clip: rect(0, 0, 0, 0);
115 white-space: nowrap;
116 border: 0;
117 }
118
119 @keyframes fadeIn {
120 from {
121 opacity: 0;
122 transform: translateY(-10px);
123 }
124 to {
125 opacity: 1;
126 transform: translateY(0);
127 }
128 }
129
130 .mxchat-chatbot-wrapper {
131 display: none;
132 }
133
134 /* ========================================
135 SEARCH RESULTS SYSTEM
136 ======================================== */
137 .chatbot-title-icon {
138 width: 24px;
139 height: 24px;
140 object-fit: contain;
141 }
142
143 .wp-admin .mxchat-search-results,
144 .wp-content .mxchat-search-results,
145 .site-content .mxchat-search-results,
146 .mxchat-search-results {
147 display: flex;
148 flex-direction: column;
149 gap: 20px;
150 margin: 15px 0;
151 font-size: 14px !important;
152 }
153
154 .mxchat-search-intro {
155 font-size: 16px !important;
156 margin: 0 0 15px 0 !important;
157 line-height: 1.4 !important;
158 font-weight: normal !important;
159 }
160
161 .mxchat-search-item {
162 padding: 15px !important;
163 border-radius: 8px !important;
164 background: #ffffff !important;
165 border: 1px solid rgba(0, 0, 0, 0.1) !important;
166 }
167
168 .mxchat-search-header {
169 display: flex !important;
170 align-items: center !important;
171 gap: 8px !important;
172 margin-bottom: 8px !important;
173 }
174
175 .mxchat-site-icon {
176 width: 16px !important;
177 height: 16px !important;
178 flex-shrink: 0 !important;
179 }
180
181 .mxchat-site-url {
182 font-size: 13px !important;
183 color: #555 !important;
184 line-height: 1 !important;
185 }
186
187 .mxchat-search-content {
188 display: flex !important;
189 flex-direction: column !important;
190 gap: 10px !important;
191 }
192
193 .mxchat-search-title {
194 font-size: 16px !important;
195 line-height: 1.4 !important;
196 margin: 0 !important;
197 padding: 0 !important;
198 font-weight: 600 !important;
199 }
200
201 .mxchat-search-title a {
202 text-decoration: none !important;
203 color: #000 !important;
204 }
205
206 .mxchat-search-title a:hover {
207 text-decoration: underline !important;
208 }
209
210 .mxchat-search-thumbnail {
211 max-width: 200px !important;
212 margin: 10px 0 !important;
213 }
214
215 .mxchat-search-thumbnail img {
216 max-width: 100% !important;
217 height: auto !important;
218 border-radius: 4px !important;
219 }
220
221 .mxchat-search-description {
222 font-size: 14px !important;
223 line-height: 1.6 !important;
224 color: #333 !important;
225 margin: 0 !important;
226 padding: 0 !important;
227 }
228
229 /* ========================================
230 ENHANCED HEADINGS & TEXT STYLING
231 ======================================== */
232 .bot-message .chat-heading {
233 color: inherit;
234 margin: 16px 0 12px 0 !important;
235 font-weight: bold !important;
236 line-height: 1.3 !important;
237 }
238
239 .bot-message h1.chat-heading,
240 .chat-heading-1 {
241 font-size: 1.5em !important;
242 border-bottom: 2px solid rgba(255, 255, 255, 0.3) !important;
243 padding-bottom: 8px !important;
244 }
245
246 .bot-message h2.chat-heading,
247 .chat-heading-2 {
248 font-size: 1.25em !important;
249 border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
250 padding-bottom: 6px !important;
251 }
252
253 .bot-message h3.chat-heading,
254 .chat-heading-3 {
255 font-size: 1.125em !important;
256 }
257
258 .bot-message h4.chat-heading,
259 .chat-heading-4 {
260 font-size: 1em !important;
261 }
262
263 .bot-message h5.chat-heading,
264 .chat-heading-5 {
265 font-size: 0.875em !important;
266 text-transform: uppercase !important;
267 letter-spacing: 0.5px !important;
268 }
269
270 .bot-message h6.chat-heading,
271 .chat-heading-6 {
272 font-size: 0.75em !important;
273 text-transform: uppercase !important;
274 letter-spacing: 0.5px !important;
275 }
276
277 .bot-message strong {
278 font-weight: bold !important;
279 }
280
281 .bot-message em {
282 font-style: italic !important;
283 }
284
285 .bot-message del {
286 text-decoration: line-through !important;
287 opacity: 0.7;
288 }
289
290 /* ========================================
291 CODE BLOCKS & INLINE CODE
292 ======================================== */
293 .mxchat-table-wrapper {
294 overflow-x: auto;
295 margin: 12px 0;
296 -webkit-overflow-scrolling: touch;
297 }
298
299 .mxchat-table {
300 width: 100%;
301 border-collapse: collapse;
302 font-size: 0.9em;
303 line-height: 1.4;
304 }
305
306 .mxchat-table th,
307 .mxchat-table td {
308 padding: 8px 12px;
309 border: 1px solid rgba(128, 128, 128, 0.3);
310 word-break: break-word;
311 }
312
313 .mxchat-table thead th {
314 font-weight: 600;
315 background: rgba(128, 128, 128, 0.15);
316 }
317
318 .mxchat-table tbody tr:nth-child(even) {
319 background: rgba(128, 128, 128, 0.05);
320 }
321
322 .mxchat-code-block-container {
323 margin: 16px 0;
324 border-radius: 8px;
325 background: rgba(255, 255, 255, 0.1);
326 border: 1px solid rgba(255, 255, 255, 0.2);
327 overflow: hidden;
328 font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace;
329 }
330
331 .mxchat-code-header {
332 display: flex;
333 justify-content: space-between;
334 align-items: center;
335 background: rgba(255, 255, 255, 0.15);
336 padding: 8px 12px;
337 border-bottom: 1px solid rgba(255, 255, 255, 0.2);
338 font-size: 11px;
339 min-height: 36px;
340 }
341
342 .mxchat-code-language {
343 color: rgba(255, 255, 255, 0.8);
344 font-weight: 600;
345 text-transform: uppercase;
346 letter-spacing: 0.5px;
347 font-size: 10px;
348 }
349
350 .mxchat-copy-button {
351 background: rgba(255, 255, 255, 0.2);
352 color: white;
353 border: 1px solid rgba(255, 255, 255, 0.3);
354 padding: 4px 8px;
355 border-radius: 4px;
356 font-size: 10px;
357 cursor: pointer;
358 transition: all 0.2s ease;
359 min-height: 24px;
360 line-height: 1;
361 }
362
363 .mxchat-copy-button:hover {
364 background: rgba(255, 255, 255, 0.3);
365 border-color: rgba(255, 255, 255, 0.4);
366 }
367
368 .mxchat-copy-button:active {
369 background: rgba(255, 255, 255, 0.4);
370 }
371
372 .mxchat-code-block {
373 margin: 0;
374 padding: 16px;
375 background: rgba(0, 0, 0, 0.3);
376 overflow-x: auto;
377 font-size: 13px;
378 line-height: 1.4;
379 white-space: pre;
380 border: none;
381 }
382
383 .mxchat-code-block code {
384 font-family: inherit;
385 font-size: inherit;
386 background: none !important;
387 padding: 0 !important;
388 border: none !important;
389 color: rgba(255, 255, 255, 0.95) !important;
390 display: block;
391 }
392
393 .mxchat-inline-code {
394 background: rgba(255, 255, 255, 0.2) !important;
395 padding: 2px 6px !important;
396 border-radius: 3px !important;
397 font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace !important;
398 font-size: 0.85em !important;
399 color: #81c784 !important;
400 border: 1px solid rgba(255, 255, 255, 0.3) !important;
401 }
402
403 /* ========================================
404 TOOLBAR SYSTEM
405 ======================================== */
406 .active-pdf-container,
407 .active-word-container {
408 display: inline-flex;
409 align-items: center;
410 max-width: 200px;
411 margin: 0;
412 padding: 0;
413 line-height: 13px;
414 }
415
416 .active-pdf-name,
417 .active-word-name {
418 font-size: 11px;
419 white-space: nowrap;
420 overflow: hidden;
421 text-overflow: ellipsis;
422 }
423
424 .remove-pdf-btn,
425 .remove-word-btn,
426 .toolbar-perplexity {
427 background: none;
428 border: none;
429 padding: 2px;
430 margin-left: 4px;
431 cursor: pointer;
432 transition: opacity 0.2s;
433 line-height: 13px;
434 }
435
436 .remove-pdf-btn:hover,
437 .remove-word-btn:hover,
438 .toolbar-perplexity:hover {
439 opacity: 1;
440 background: none;
441 }
442
443 .mxchat-chatbot .chat-toolbar {
444 display: flex;
445 gap: 10px;
446 padding: 8px;
447 background: none;
448 align-items: end;
449 }
450
451 .mxchat-chatbot .toolbar-btn {
452 background: none;
453 border: none;
454 padding: 0;
455 cursor: pointer;
456 width: 16px;
457 height: 16px;
458 align-items: center;
459 justify-content: center;
460 opacity: 0.6;
461 transition: opacity 0.2s;
462 margin: 0;
463 min-width: 0;
464 box-shadow: none;
465 }
466
467 .mxchat-chatbot .toolbar-btn svg {
468 width: 100%;
469 height: 100%;
470 }
471
472 .mxchat-chatbot .toolbar-btn:hover {
473 opacity: 1;
474 background: none;
475 border: none;
476 box-shadow: none;
477 }
478
479 .mxchat-chatbot .toolbar-btn:disabled {
480 opacity: 0.3;
481 cursor: not-allowed;
482 background: none;
483 border: none;
484 }
485
486 .toolbar-btn.active {
487 background-color: rgba(120, 115, 245, 0.2);
488 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.4);
489 }
490
491 .active-perplexity-container {
492 display: flex;
493 align-items: center;
494 margin-left: 8px;
495 font-size: 12px;
496 }
497
498 .perplexity-search-btn {
499 display: none;
500 }
501
502 .perplexity-search-btn.active {
503 opacity: 1;
504 }
505
506 /* ========================================
507 POPULAR QUESTIONS SYSTEM
508 ======================================== */
509 .mxchat-popular-questions {
510 padding: 0 10px 10px;
511 transition: all 0.3s ease;
512 margin-bottom: 12px;
513 position: relative;
514 }
515
516 .mxchat-popular-questions-title {
517 font-size: 14px;
518 line-height: 24px;
519 font-weight: bold;
520 color: #212121;
521 margin-bottom: 10px;
522 }
523
524 .mxchat-popular-questions-container {
525 position: relative;
526 display: flex;
527 flex-direction: column;
528 max-height: 200px;
529 overflow-y: auto;
530 padding: 0 10px 10px;
531 scrollbar-width: thin;
532 scrollbar-color: #212121 #f1f1f1;
533 transition: all 0.3s ease;
534 gap: 8px;
535 }
536
537 .mxchat-popular-questions.collapsed {
538 padding: 0;
539 margin: 0;
540 }
541
542 .mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
543 flex-direction: row;
544 justify-content: center;
545 align-items: center;
546 padding: 0;
547 max-height: 40px;
548 overflow: visible;
549 }
550
551 .mxchat-popular-questions.collapsed .mxchat-popular-question {
552 display: none;
553 }
554
555 .mxchat-popular-questions.collapsed .questions-collapse-btn {
556 display: none;
557 }
558
559 /* MISSING - These need to be inside the container context: */
560 .mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
561 background: none;
562 border: none;
563 padding: 0;
564 margin: 0;
565 cursor: pointer;
566 transition: all 0.2s ease;
567 color: #212121;
568 display: none; /* Hidden by default when open */
569 align-items: center;
570 justify-content: center;
571 width: 32px;
572 height: 32px;
573 box-shadow: none;
574 outline: none;
575 }
576
577 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
578 background: none;
579 border: none;
580 padding: 0;
581 margin: 0px; /* Center and add bottom margin */
582 cursor: pointer;
583 transition: all 0.2s ease;
584 color: #212121;
585 display: none; /* Hidden by default */
586 align-items: center;
587 justify-content: center;
588 width: 32px;
589 height: 32px;
590 box-shadow: none;
591 outline: none;
592 align-self: center; /* Center in flex container */
593 order: -1; /* Make sure it appears first */
594 }
595
596 .questions-toggle-btn:hover,
597 .questions-collapse-btn:hover,
598 .questions-toggle-btn:focus,
599 .questions-collapse-btn:focus,
600 .questions-toggle-btn:active,
601 .questions-collapse-btn:active {
602 background: none;
603 border: none;
604 box-shadow: none;
605 outline: none;
606 }
607
608 .questions-toggle-btn svg,
609 .questions-collapse-btn svg {
610 transition: transform 0.2s ease;
611 fill: none;
612 stroke: #212121;
613 width: 25px;
614 height: 25px;
615 }
616
617 .questions-toggle-btn:hover svg,
618 .questions-collapse-btn:hover svg {
619 opacity: 0.7;
620 }
621
622 .mxchat-popular-questions.collapsed .questions-toggle-btn {
623 display: flex;
624 }
625
626 .mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
627 display: flex;
628 align-self: center;
629 order: -1;
630 }
631
632 .mxchat-popular-question {
633 padding: 12px 20px;
634 background-color: #f5f5f5;
635 border: 1px solid #bbb;
636 border-radius: 8px;
637 color: #212121;
638 font-size: 14px;
639 line-height: 24px;
640 cursor: pointer;
641 text-align: initial;
642 transition: all 0.3s ease;
643 margin-bottom: 0;
644 box-shadow: none;
645 }
646
647 .mxchat-popular-question:hover {
648 background-color: #eaeaea;
649 border-color: #999;
650 box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
651 transform: translateY(-1px);
652 }
653
654 .mxchat-popular-question:focus {
655 outline: none;
656 background-color: #e0e0e0;
657 border-color: #777;
658 box-shadow: 0 0 0 3px rgba(100, 149, 237, 0.5);
659 }
660
661 .mxchat-popular-question:active {
662 background-color: #d8d8d8;
663 border-color: #666;
664 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
665 transform: translateY(0);
666 }
667
668 .mxchat-popular-questions-container::-webkit-scrollbar {
669 width: 8px;
670 }
671
672 .mxchat-popular-questions-container::-webkit-scrollbar-track {
673 background: #f1f1f1;
674 border-radius: 4px;
675 }
676
677 .mxchat-popular-questions-container::-webkit-scrollbar-thumb {
678 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
679 border-radius: 4px;
680 }
681
682 .mxchat-popular-questions-container::-webkit-scrollbar-thumb:hover {
683 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
684 }
685
686 /* ========================================
687 CORE CHATBOT UI
688 ======================================== */
689 .invisible {
690 display: none;
691 opacity: 0;
692 pointer-events: none;
693 }
694
695 .mxchat-chatbot{
696 background: #fff;
697 overflow: hidden;
698 position: relative;
699 display: flex;
700 flex-direction: column;
701 flex-grow: 1;
702 min-height: 0; /* Allow flex shrinking */
703 box-sizing: border-box;
704 }
705
706 .chat-container {
707 display: flex;
708 flex-direction: column;
709 flex-grow: 1;
710 min-height: 0; /* Critical for flex overflow scrolling */
711 height: 100%;
712 }
713
714 .chat-box {
715 flex-grow: 1;
716 overflow-y: auto;
717 padding: 10px;
718 margin-bottom: 0;
719 font-size: 1rem;
720 min-height: 0; /* Critical for flex overflow scrolling */
721 }
722
723 .chat-box::-webkit-scrollbar {
724 width: 5px;
725 }
726
727 .chat-box::-webkit-scrollbar-thumb {
728 background-color: #212121;
729 border-radius: 20px;
730 }
731
732 .bot-message,
733 .user-message {
734 margin-bottom: 15px;
735 padding: 10px;
736 display: inline-block;
737 max-width: 85%;
738 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
739 font-size: 14px;
740 line-height: 24px;
741 }
742
743 .user-message {
744 background: #fff;
745 color: #212121;
746 text-align: left;
747 float: right;
748 clear: both;
749 border-radius: 18px 0 18px 18px;
750 word-wrap: break-word;
751 border: 1px solid rgba(226, 232, 255, 0.2);
752 }
753
754 .user-message p {
755 margin: 0;
756 }
757
758 .mxchat-chatbot .chat-container .chat-box .bot-message {
759 float: left;
760 clear: both;
761 border: 1px solid rgba(226, 232, 255, 0.2);
762 border-radius: 0 18px 18px;
763 background: #212121;
764 color: #fff;
765 overflow-x: hidden;
766 }
767
768 .mxchat-chatbot .chat-container .chat-box .agent-message {
769 text-align: left;
770 float: left;
771 clear: both;
772 border: 1px solid rgba(226, 232, 255, 0.2);
773 border-radius: 0 18px 18px;
774 background: #212121;
775 color: #fff;
776 overflow-x: hidden;
777 margin-bottom: 15px;
778 padding: 10px;
779 display: inline-block;
780 max-width: 85%;
781 font-size: 14px;
782 line-height: 24px;
783 box-shadow: -2px 2px rgba(250, 115, 230, 0.6), -4px 4px rgba(120, 115, 245, 0.6);
784 }
785
786 .bot-message p {
787 margin: 0 0 1em 0;
788 }
789
790 .bot-message p:last-child {
791 margin-bottom: 0;
792 }
793
794 .bot-message {
795 white-space: pre-line;
796 }
797
798 .bot-message a {
799 color: #ffffff;
800 text-decoration: underline !important;
801 }
802
803 .bot-message a:hover {
804 color: #e0e0e0;
805 text-decoration: underline;
806 }
807
808 .bot-message a:visited {
809 color: #ffffff;
810 }
811
812 .system-message {
813 padding: 8px 12px;
814 margin: 8px 0;
815 background-color: rgba(120, 115, 245, 0.1);
816 border-radius: 8px;
817 color: #555;
818 font-style: italic;
819 font-size: 14px;
820 text-align: center;
821 }
822
823 .mxchat-chatbot-wrapper {
824 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
825 border-radius: 10px;
826 display: flex;
827 flex-direction: column;
828 height: 100%;
829 width: 100%;
830 min-height: 0; /* Allow flex shrinking */
831 overflow: hidden;
832 }
833
834 /* ========================================
835 INPUT & CONTROLS
836 ======================================== */
837 .mxchat-chatbot .chat-container .input-container {
838 position: relative;
839 display: flex;
840 align-items: center;
841 padding-right: 40px;
842 border: 1px solid #ccc;
843 border-radius: 10px;
844 margin: 0 10px 10px;
845 }
846
847 .mxchat-chatbot .chat-container .input-container .chat-input {
848 flex-grow: 1;
849 color: #212121;
850 line-height: 24px;
851 background: transparent;
852 margin-bottom: 0;
853 width: 100%;
854 min-height: 20px;
855 max-height: 65px;
856 resize: none;
857 overflow-y: auto;
858 font-size: 16px;
859 border: none;
860 border-radius: 5px;
861 box-sizing: border-box;
862 padding: 0.4em 0.5em;
863 outline: none;
864 border-radius: 10px;
865 }
866
867 .chat-input::-webkit-scrollbar {
868 width: 8px;
869 }
870
871 .chat-input::-webkit-scrollbar-track {
872 background: #f1f1f1;
873 border-radius: 4px;
874 }
875
876 .chat-input::-webkit-scrollbar-thumb {
877 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
878 border-radius: 4px;
879 }
880
881 .chat-input::-webkit-scrollbar-thumb:hover {
882 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
883 }
884
885 .chat-input {
886 scrollbar-width: thin;
887 scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
888 }
889
890 .mxchat-chatbot .chat-container .input-container .send-button {
891 position: absolute;
892 right: 10px;
893 top: 50%;
894 transform: translateY(-50%);
895 border: none;
896 border-radius: 50%;
897 width: 30px;
898 height: 30px;
899 display: flex;
900 align-items: center;
901 justify-content: center;
902 background: transparent !important;
903 padding: 5px;
904 margin: 0;
905 transition: background-color 0.3s;
906 color: #fff;
907 font-size: 1rem;
908 cursor: pointer;
909 font-weight: 700;
910 }
911
912 .send-button svg {
913 width: 25px;
914 height: 25px;
915 pointer-events: none;
916 }
917
918 .send-button:hover {
919 opacity: 0.8;
920 }
921
922 /* Stop state while a response is streaming: the send button becomes a Stop
923 control in place — same chrome and position, swapped glyph. Themeable hook;
924 the glyph's size/color are mirrored from the send icon at runtime. */
925 .mxchat-chatbot .chat-container .input-container .send-button.mxchat-stop-mode {
926 cursor: pointer;
927 }
928
929 .mxchat-chatbot .spinner {
930 animation: rotate 2s linear infinite;
931 width: 20px;
932 height: 20px;
933 }
934
935 .mxchat-chatbot .spinner circle {
936 stroke: #212121;
937 stroke-linecap: round;
938 animation: dash 1.5s ease-in-out infinite;
939 }
940
941 @keyframes rotate {
942 100% {
943 transform: rotate(360deg);
944 }
945 }
946
947 @keyframes dash {
948 0% {
949 stroke-dasharray: 1, 150;
950 stroke-dashoffset: 0;
951 }
952 50% {
953 stroke-dasharray: 90, 150;
954 stroke-dashoffset: -35;
955 }
956 100% {
957 stroke-dasharray: 90, 150;
958 stroke-dashoffset: -124;
959 }
960 }
961
962 /* ========================================
963 FLOATING CHATBOT & CONTROLS
964 ======================================== */
965 .chatbot-title-container {
966 display: flex;
967 align-items: center;
968 justify-content: space-between;
969 gap: 10px;
970 flex: 1 1 auto;
971 min-width: 0;
972 }
973
974 .chatbot-title-group {
975 display: flex;
976 align-items: center;
977 gap: 8px;
978 }
979
980 .chat-mode-indicator {
981 font-size: 12px;
982 line-height: 1;
983 margin-right: 0;
984 padding: 4px 9px;
985 border-radius: 999px;
986 background: rgba(255, 255, 255, 0.18);
987 color: #ffffff;
988 display: inline-flex;
989 align-items: center;
990 height: 22px;
991 white-space: nowrap;
992 flex: 0 0 auto;
993 }
994
995 .floating-chatbot {
996 position: fixed;
997 bottom: 25px;
998 right: 25px;
999 width: 375px;
1000 /* Use viewport-aware height with fallbacks */
1001 height: min(625px, calc(100vh - 50px)); /* 50px = 25px top + 25px bottom margin */
1002 height: min(625px, calc(100dvh - 50px)); /* Dynamic viewport height for mobile browsers */
1003 max-height: calc(100vh - 50px);
1004 max-height: calc(100dvh - 50px); /* Fallback for browsers supporting dvh */
1005 box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
1006 border-radius: 20px;
1007 overflow: hidden;
1008 display: flex;
1009 flex-direction: column;
1010 z-index: 100000;
1011 transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
1012 transform: translateY(20%);
1013 opacity: 0;
1014 pointer-events: none;
1015 }
1016
1017 .floating-chatbot.visible {
1018 transform: translateY(0);
1019 opacity: 1;
1020 pointer-events: auto;
1021 }
1022
1023 /* ========================================
1024 EMBEDDED CHATBOT (Shortcode)
1025 ======================================== */
1026 /* Embedded chatbots are NOT inside .floating-chatbot wrapper */
1027 /* Apply fixed height like floating widget so quick questions overlay properly */
1028 .mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) {
1029 height: 500px;
1030 max-height: 500px;
1031 }
1032
1033 /* Hide the minimize/exit button for embedded chatbots - it doesn't make sense */
1034 .mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) .exit-chat {
1035 display: none !important;
1036 }
1037
1038 .floating-chatbot-button.hidden,
1039 .exit-chat span {
1040 display: none !important;
1041 }
1042
1043 .chatbot-top-bar button.exit-chat:hover {
1044 background: rgba(255, 255, 255, 0.12);
1045 }
1046 .visible {
1047 display: flex;
1048 }
1049
1050 .floating-chatbot-button {
1051 transition: opacity 1s ease-in-out;
1052 font-size: 1.25rem;
1053 position: fixed;
1054 bottom: 30px;
1055 right: 25px;
1056 background-color: #212121;
1057 color: #fff;
1058 width: 60px;
1059 height: 60px;
1060 border-radius: 50%;
1061 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
1062 justify-content: center;
1063 align-items: center;
1064 cursor: pointer;
1065 transition: 0.3s;
1066 z-index: 100000;
1067 display: flex;
1068 }
1069
1070 .floating-chatbot-button:focus-visible {
1071 outline: 3px solid #7873f5;
1072 outline-offset: 3px;
1073 }
1074
1075 .floating-chatbot-button img {
1076 max-width: 100%;
1077 max-height: 100%;
1078 width: auto;
1079 height: auto;
1080 }
1081
1082 .chatbot-top-bar {
1083 background: #212121;
1084 }
1085
1086 .mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1087 background: transparent;
1088 border: none;
1089 opacity: 0.8;
1090 padding: 0;
1091 width: 32px;
1092 height: 32px;
1093 min-width: 32px;
1094 flex: 0 0 auto;
1095 border-radius: 6px;
1096 transition: opacity 0.15s ease, background 0.15s ease;
1097 }
1098
1099 .mxchat-chatbot-wrapper .chatbot-top-bar {
1100 cursor: pointer;
1101 color: #fff;
1102 padding: 8px 12px;
1103 min-height: 48px;
1104 gap: 8px;
1105 border-top-left-radius: 10px;
1106 border-top-right-radius: 10px;
1107 display: flex;
1108 justify-content: space-between;
1109 align-items: center;
1110 }
1111
1112 .mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1113 font-size: 15px;
1114 line-height: 1.2;
1115 padding: 0;
1116 margin: 0;
1117 font-family: 'Plus Jakarta Sans', sans-serif;
1118 font-weight: 600;
1119 }
1120
1121 .exit-chat {
1122 border: none;
1123 background: transparent;
1124 cursor: pointer;
1125 display: inline-flex;
1126 align-items: center;
1127 justify-content: center;
1128 padding: 0;
1129 margin-left: auto;
1130 opacity: 0.8;
1131 width: 32px;
1132 height: 32px;
1133 min-width: 32px;
1134 flex: 0 0 auto;
1135 }
1136
1137 .exit-chat svg {
1138 width: 18px;
1139 height: 18px;
1140 fill: none;
1141 stroke: currentColor;
1142 }
1143
1144 .mxchat-chatbot-wrapper .chatbot-footer {
1145 text-align: center;
1146 padding-bottom: 10px;
1147 font-size: 0.85em;
1148 }
1149
1150 .mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1151 font-size: 12px;
1152 margin: 0;
1153 color: #71717a;
1154 }
1155
1156 .mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1157 color: #0073aa;
1158 text-decoration: underline;
1159 font-size: 12px;
1160 }
1161
1162 .mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1163 text-decoration: none;
1164 color: inherit;
1165 font-weight: 700;
1166 }
1167
1168 .mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1169 text-decoration: underline;
1170 }
1171
1172 /* ========================================
1173 INIT LOADER (shown while chat initializes)
1174 ======================================== */
1175 .mxchat-init-loader {
1176 display: flex;
1177 align-items: center;
1178 justify-content: center;
1179 flex-grow: 1;
1180 min-height: 0;
1181 animation: fadeIn 0.3s ease-in-out;
1182 }
1183
1184 .mxchat-init-loader-dots {
1185 display: flex;
1186 gap: 8px;
1187 }
1188
1189 .mxchat-init-loader-dots .dot {
1190 width: 8px;
1191 height: 8px;
1192 border-radius: 50%;
1193 background-color: #888;
1194 animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1195 }
1196
1197 .mxchat-init-loader-dots .dot:nth-child(1) {
1198 animation-delay: -0.32s;
1199 }
1200
1201 .mxchat-init-loader-dots .dot:nth-child(2) {
1202 animation-delay: -0.16s;
1203 }
1204
1205 /* ========================================
1206 THINKING DOTS ANIMATION
1207 ======================================== */
1208 .chat-box .bot-message.temporary-message .thinking-dots-container {
1209 display: flex;
1210 justify-content: center;
1211 align-items: center;
1212 overflow: hidden;
1213 height: 20px;
1214 position: relative;
1215 z-index: 1;
1216 flex-shrink: 0;
1217 }
1218
1219 .chat-box .bot-message.temporary-message .thinking-dots {
1220 display: flex;
1221 justify-content: center;
1222 align-items: center;
1223 height: 90%;
1224 gap: 5px;
1225 flex-shrink: 0;
1226 }
1227
1228 .chat-box .bot-message.temporary-message .thinking-dots .dot {
1229 height: 6px;
1230 width: 6px;
1231 margin: 0 3px;
1232 background-color: #fff;
1233 border-radius: 50%;
1234 display: inline-block;
1235 animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1236 vertical-align: middle;
1237 }
1238
1239 .chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1240 animation-delay: -0.32s;
1241 }
1242
1243 .chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1244 animation-delay: -0.16s;
1245 }
1246
1247 @keyframes mxchat-dot-bounce {
1248 0%, 100%, 80% {
1249 transform: scale(1);
1250 }
1251 40% {
1252 transform: scale(1.5);
1253 }
1254 }
1255
1256 /* ========================================
1257 PRE-CHAT MESSAGE
1258 ======================================== */
1259 .pre-chat-message {
1260 position: fixed;
1261 bottom: 85px;
1262 right: 30px;
1263 background-color: #fff;
1264 color: #212121;
1265 padding: 10px;
1266 box-shadow: 0px 0px 10px rgba(150, 150, 150, 0.3);
1267 border-radius: 5px;
1268 z-index: 1000;
1269 cursor: pointer;
1270 max-width: 325px;
1271 font-size: 14px;
1272 display: none;
1273 margin-bottom: 10px;
1274 }
1275
1276 .pre-chat-message .close-pre-chat-message {
1277 position: absolute;
1278 top: -6px;
1279 right: -6px;
1280 background-color: #ccc;
1281 border: none;
1282 color: #212121;
1283 font-size: 14px;
1284 cursor: pointer;
1285 border-radius: 50%;
1286 width: 20px;
1287 min-width: 20px;
1288 min-height: 20px;
1289 height: 20px;
1290 display: flex;
1291 align-items: center;
1292 justify-content: center;
1293 padding: 0;
1294 line-height: 1;
1295 }
1296
1297 /* ========================================
1298 VIEWPORT HEIGHT CONSTRAINTS
1299 Handles bookmarks bar, browser zoom, and smaller screens
1300 ======================================== */
1301 @media screen and (max-height: 700px) {
1302 .floating-chatbot {
1303 bottom: 15px;
1304 height: calc(100vh - 30px);
1305 height: calc(100dvh - 30px);
1306 max-height: calc(100vh - 30px);
1307 max-height: calc(100dvh - 30px);
1308 }
1309
1310 .floating-chatbot-button {
1311 bottom: 20px;
1312 }
1313
1314 .pre-chat-message {
1315 bottom: 75px;
1316 }
1317 }
1318
1319 @media screen and (max-height: 550px) {
1320 .floating-chatbot {
1321 bottom: 10px;
1322 height: calc(100vh - 20px);
1323 height: calc(100dvh - 20px);
1324 max-height: calc(100vh - 20px);
1325 max-height: calc(100dvh - 20px);
1326 }
1327
1328 /* Reduce padding in tight spaces */
1329 .mxchat-popular-questions {
1330 padding: 0 8px 5px;
1331 margin-bottom: 8px;
1332 }
1333
1334 .mxchat-popular-question {
1335 padding: 8px 12px;
1336 font-size: 13px;
1337 line-height: 20px;
1338 }
1339
1340 .mxchat-chatbot .chat-container .input-container {
1341 margin: 0 8px 8px;
1342 }
1343
1344 .mxchat-chatbot-wrapper .chatbot-footer {
1345 padding-bottom: 5px;
1346 }
1347 }
1348
1349 /* ========================================
1350 MOBILE RESPONSIVE
1351 ======================================== */
1352 @media screen and (max-width: 782px) {
1353 .mxchat-search-results {
1354 gap: 15px !important;
1355 }
1356
1357 .mxchat-search-intro {
1358 font-size: 15px !important;
1359 }
1360
1361 .mxchat-search-title {
1362 font-size: 15px !important;
1363 }
1364
1365 .mxchat-search-description {
1366 font-size: 13px !important;
1367 }
1368 }
1369
1370 @media (max-width: 550px) {
1371 .questions-toggle-btn,
1372 .questions-collapse-btn {
1373 width: 28px;
1374 height: 28px;
1375 }
1376
1377 .questions-toggle-btn svg,
1378 .questions-collapse-btn svg {
1379 width: 22px;
1380 height: 22px;
1381 }
1382
1383 .pre-chat-message {
1384 bottom: 70px;
1385 right: 15px;
1386 }
1387
1388 .chat-input {
1389 width: calc(100% - 70px);
1390 }
1391
1392 .bot-message,
1393 .user-message {
1394 padding: 10px;
1395 max-width: 95%;
1396 }
1397
1398 .floating-chatbot-button {
1399 bottom: 15px;
1400 right: 10px;
1401 }
1402
1403 .floating-chatbot {
1404 width: calc(100vw - 16px);
1405 /* Use multiple fallbacks for maximum browser compatibility */
1406 height: calc(100vh - 16px); /* Fallback */
1407 height: calc(var(--vh, 1vh) * 100 - 16px); /* JS-set custom property fallback */
1408 height: calc(100dvh - 16px); /* Modern dynamic viewport height */
1409 max-height: calc(100vh - 16px);
1410 max-height: calc(100dvh - 16px);
1411 margin: 0;
1412 padding: 0;
1413 position: fixed;
1414 bottom: 8px;
1415 top: auto;
1416 left: 8px;
1417 right: 8px;
1418 border-radius: 16px;
1419 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1420 }
1421
1422 .floating-chatbot .mxchat-chatbot-wrapper {
1423 border-radius: 16px;
1424 overflow: hidden;
1425 }
1426
1427 .mxchat-chatbot-wrapper .chatbot-top-bar {
1428 border-top-left-radius: 16px;
1429 border-top-right-radius: 16px;
1430 }
1431 }
1432
1433
1434
1435 pre {
1436 background-color: #000;
1437 border: 1px solid #ddd;
1438 border-radius: 20px;
1439 border-left: 3px solid #9e7aff;
1440 color: #fff;
1441 page-break-inside: avoid;
1442 font-family: monospace;
1443 font-size: 15px;
1444 line-height: 1.6;
1445 margin-bottom: 1.6em;
1446 max-width: 100%;
1447 overflow: auto;
1448 padding: 1em 1.5em;
1449 display: block;
1450 word-wrap: break-word;
1451 }
1452
1453 .copy-btn {
1454 padding: 10px 20px;
1455 border: none;
1456 border-radius: 4px;
1457 background-color: #9e7aff;
1458 transition: background-color 0.3s;
1459 color: #fff;
1460 font-size: 1rem;
1461 cursor: pointer;
1462 font-weight: 700;
1463 margin-bottom: 10px;
1464 }
1465
1466 .copy-btn:hover {
1467 opacity: 0.8;
1468 }
1469
1470 .mxchat-product-card {
1471 display: flex;
1472 flex-direction: column;
1473 align-items: center;
1474 margin: 10px 0;
1475 padding: 10px;
1476 border-radius: 5px;
1477 background-color: inherit;
1478 }
1479
1480 .mxchat-product-card img.mxchat-product-image {
1481 max-width: 100%;
1482 height: auto;
1483 margin-bottom: 5px;
1484 border-radius: 4px;
1485 }
1486
1487 .mxchat-product-card h3.mxchat-product-name {
1488 font-size: 16px;
1489 font-weight: bold;
1490 margin: 5px 0;
1491 text-align: center;
1492 color: inherit;
1493 }
1494
1495 .mxchat-product-card .mxchat-product-price {
1496 color: inherit;
1497 font-weight: bold;
1498 margin-bottom: 5px;
1499 }
1500
1501 .mxchat-product-card .mxchat-product-description {
1502 font-size: 14px;
1503 text-align: center;
1504 margin-bottom: 10px;
1505 color: inherit;
1506 }
1507
1508 .mxchat-product-card .mxchat-add-to-cart-button {
1509 background-color: #212121;
1510 color: #fff;
1511 padding: 8px 12px;
1512 border: none;
1513 cursor: pointer;
1514 border-radius: 12px;
1515 transition: background-color 0.3s ease;
1516 }
1517
1518 .mxchat-product-card .mxchat-add-to-cart-button:hover {
1519 background-color: #212121;
1520 }
1521
1522 .mxchat-image-gallery {
1523 display: flex;
1524 flex-wrap: wrap;
1525 gap: 10px;
1526 justify-content: center;
1527 }
1528
1529 .mxchat-image-item {
1530 text-align: center;
1531 overflow: hidden;
1532 word-wrap: break-word;
1533 }
1534
1535 .mxchat-image-title {
1536 display: block;
1537 font-size: 14px;
1538 color: inherit;
1539 white-space: nowrap;
1540 overflow: hidden;
1541 text-overflow: ellipsis;
1542 max-width: 100%;
1543 }
1544
1545 .mxchat-image-link {
1546 text-decoration: none;
1547 }
1548
1549 .mxchat-image-thumbnail {
1550 max-width: 100%;
1551 height: auto;
1552 border-radius: 5px;
1553 transition: transform 0.3s;
1554 }
1555
1556 .mxchat-image-thumbnail:hover {
1557 transform: scale(1.05);
1558 }
1559
1560 .mxchat-generated-image {
1561 max-width: 100%;
1562 height: auto;
1563 border-radius: 0 0 8px 8px;
1564 }
1565
1566 #widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1567 padding: 10px;
1568 }
1569
1570 #widget_icon_10 {
1571 fill: #fff;
1572 }
1573
1574
1575 /* This selector with more context - showing the collapse button in certain states */
1576 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1577 background: none;
1578 border: none;
1579 padding: 0;
1580 margin: 0px;
1581 cursor: pointer;
1582 transition: all 0.2s ease;
1583 color: #212121;
1584 display: none; /* Hidden by default */
1585 align-items: center;
1586 justify-content: center;
1587 width: 32px;
1588 height: 32px;
1589 box-shadow: none;
1590 outline: none;
1591 align-self: center; /* THIS IS MISSING */
1592 order: -1; /* THIS IS MISSING */
1593 }
1594
1595 /* ALL hover states - these are MISSING from your new CSS */
1596 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1597 background: none;
1598 border: none;
1599 box-shadow: none;
1600 }
1601
1602 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1603 outline: none;
1604 background: none;
1605 border: none;
1606 box-shadow: none;
1607 }
1608
1609 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1610 background: none;
1611 border: none;
1612 box-shadow: none;
1613 }
1614
1615 /* SVG styles - these are MISSING */
1616 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1617 fill: none;
1618 stroke: #212121;
1619 transition: transform 0.2s ease;
1620 width: 25px;
1621 height: 25px;
1622 }
1623
1624 .mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1625 opacity: 0.7;
1626 }
1627
1628 /* THE CRITICAL DISPLAY RULE - this shows when it's been collapsed before */
1629 .mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1630 display: flex;
1631 }
1632
1633 /* Hide when actually collapsed */
1634 .mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1635 display: none;
1636 }
1637
1638 /* ============================================================
1639 Header overflow menu — 3-dot kebab + dropdown (v3.2.9 / v3.2.10)
1640 Lives in .chatbot-top-bar to the LEFT of .exit-chat. Visual treatment
1641 mirrors .exit-chat: transparent, white-on-dark, 0.8 opacity, 5px pad.
1642
1643 v3.2.10: explicit `order` rules pin the visual order
1644 title (0) | kebab (1) | down-arrow (2)
1645 so the down-arrow is always the rightmost icon regardless of source
1646 order or which sibling has margin-left:auto.
1647 ============================================================ */
1648 .mxchat-chatbot-wrapper .chatbot-top-bar > .chatbot-title-container { order: 0; }
1649 .mxchat-chatbot-wrapper .chatbot-top-bar > .mxchat-header-menu-wrap { order: 1; }
1650 .mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat { order: 2; }
1651
1652 .mxchat-header-menu-wrap {
1653 position: relative;
1654 display: inline-flex;
1655 align-items: center;
1656 margin-left: auto; /* push kebab + arrow group to the right edge */
1657 }
1658 .mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap ~ .exit-chat,
1659 .mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap + .exit-chat {
1660 margin-left: 4px; /* even, snug gap between kebab and close */
1661 }
1662 .mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat:focus {
1663 background: rgba(255, 255, 255, 0.12);
1664 opacity: 1;
1665 outline: none;
1666 }
1667 .mxchat-header-btn {
1668 border: none;
1669 background: transparent;
1670 cursor: pointer;
1671 display: inline-flex;
1672 align-items: center;
1673 justify-content: center;
1674 padding: 0;
1675 opacity: 0.8;
1676 color: #fff;
1677 transition: opacity 0.15s ease, background 0.15s ease;
1678 border-radius: 6px;
1679 line-height: 0;
1680 width: 32px;
1681 height: 32px;
1682 min-width: 32px;
1683 flex: 0 0 auto;
1684 }
1685 .mxchat-header-btn:hover,
1686 .mxchat-header-btn:focus {
1687 opacity: 1;
1688 background: rgba(255, 255, 255, 0.12);
1689 outline: none;
1690 }
1691 .mxchat-header-btn[aria-expanded="true"] {
1692 opacity: 1;
1693 background: rgba(255, 255, 255, 0.12);
1694 }
1695 .mxchat-menu-trigger svg {
1696 width: 18px;
1697 height: 18px;
1698 }
1699
1700 .mxchat-header-menu {
1701 position: absolute;
1702 top: calc(100% + 6px);
1703 right: 0;
1704 min-width: 220px;
1705 background: var(--mxchat-menu-bg, #ffffff);
1706 color: var(--mxchat-menu-fg, #1a1a1a);
1707 border: 1px solid rgba(127, 127, 127, 0.20);
1708 border-radius: 10px;
1709 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.10);
1710 padding: 4px;
1711 z-index: 5;
1712 opacity: 0;
1713 transform: translateY(-4px);
1714 pointer-events: none;
1715 transition: opacity 0.12s ease, transform 0.12s ease;
1716 }
1717 .mxchat-header-menu.is-open {
1718 opacity: 1;
1719 transform: translateY(0);
1720 pointer-events: auto;
1721 }
1722 .mxchat-header-menu[hidden] {
1723 display: none;
1724 }
1725 .mxchat-menu-item {
1726 display: flex;
1727 align-items: center;
1728 gap: 10px;
1729 width: 100%;
1730 padding: 8px 12px;
1731 min-height: 40px;
1732 border: none;
1733 background: transparent;
1734 color: inherit;
1735 font-size: 14px;
1736 line-height: 1.3;
1737 text-align: left;
1738 cursor: pointer;
1739 border-radius: 6px;
1740 transition: background 0.12s ease;
1741 text-decoration: none;
1742 box-sizing: border-box;
1743 }
1744 .mxchat-menu-item:hover,
1745 .mxchat-menu-item:focus {
1746 background: rgba(127, 127, 127, 0.18);
1747 outline: none;
1748 }
1749 .mxchat-menu-item-icon {
1750 display: inline-flex;
1751 align-items: center;
1752 justify-content: center;
1753 width: 16px;
1754 height: 16px;
1755 color: inherit;
1756 opacity: 0.85;
1757 flex-shrink: 0;
1758 }
1759 .mxchat-menu-item-icon svg {
1760 width: 16px;
1761 height: 16px;
1762 display: block;
1763 }
1764 .mxchat-menu-item-label {
1765 flex: 1;
1766 color: inherit;
1767 }
1768
1769 /* RTL — flip the dropdown anchor edge */
1770 [dir="rtl"] .mxchat-header-menu,
1771 .mxchat-chatbot-wrapper[dir="rtl"] .mxchat-header-menu {
1772 right: auto;
1773 left: 0;
1774 }
1775
1776 /* ============================================================================
1777 Satisfaction rating (v3.2.6 — polished per plan-141a12)
1778 Theme-adaptive via currentColor + inherit. Clean slate — old rules removed.
1779 ========================================================================= */
1780 .mxchat-chatbot .chat-container .chat-box .mxchat-rating-prompt,
1781 .mxchat-chatbot .chat-container .chat-box .mxchat-rating-feedback,
1782 .mxchat-chatbot .chat-container .chat-box .mxchat-rating-saved {
1783 clear: both;
1784 float: left;
1785 max-width: 92%;
1786 box-sizing: border-box;
1787 }
1788
1789 /* Theme-adaptive wrapper — .bot-message carries the user's custom bg/color via
1790 inline style; the inner rating component supplies its own padding + layout. */
1791 .mxchat-rating-bot-bubble {
1792 padding: 0;
1793 overflow: visible;
1794 }
1795
1796 .mxchat-rating-prompt {
1797 display: flex;
1798 flex-direction: column;
1799 align-items: stretch;
1800 gap: 10px;
1801 padding: 10px 14px;
1802 margin: 10px 0;
1803 font-size: 14px;
1804 color: inherit;
1805 }
1806
1807 .mxchat-rating-question {
1808 color: inherit;
1809 opacity: 0.85;
1810 font-weight: 500;
1811 }
1812
1813 .mxchat-rating-actions {
1814 display: flex;
1815 align-items: center;
1816 gap: 8px;
1817 }
1818
1819 .mxchat-rating-buttons {
1820 display: inline-flex;
1821 gap: 6px;
1822 }
1823
1824 .mxchat-rating-btn {
1825 display: inline-flex;
1826 align-items: center;
1827 justify-content: center;
1828 width: 32px;
1829 height: 32px;
1830 border-radius: 8px;
1831 background: transparent;
1832 border: none;
1833 color: inherit;
1834 opacity: 0.6;
1835 cursor: pointer;
1836 transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
1837 padding: 0;
1838 }
1839
1840 .mxchat-rating-btn:hover {
1841 opacity: 1;
1842 transform: scale(1.12);
1843 background: rgba(255, 255, 255, 0.08);
1844 }
1845
1846 .mxchat-rating-btn:focus-visible {
1847 opacity: 1;
1848 outline: 2px solid currentColor;
1849 outline-offset: 2px;
1850 }
1851
1852 .mxchat-rating-btn svg {
1853 pointer-events: none;
1854 }
1855
1856 .mxchat-rating-dismiss {
1857 width: 24px;
1858 height: 24px;
1859 border-radius: 6px;
1860 background: transparent;
1861 border: none;
1862 color: inherit;
1863 opacity: 0.45;
1864 cursor: pointer;
1865 font-size: 18px;
1866 line-height: 1;
1867 transition: opacity 0.18s ease, background-color 0.18s ease;
1868 }
1869
1870 .mxchat-rating-dismiss:hover {
1871 opacity: 0.9;
1872 background: rgba(255, 255, 255, 0.08);
1873 }
1874
1875 /* Feedback panel that replaces the prompt after a rating is clicked */
1876 .mxchat-rating-feedback {
1877 padding: 12px 14px;
1878 margin: 10px 0;
1879 display: flex;
1880 flex-direction: column;
1881 gap: 10px;
1882 color: inherit;
1883 animation: mxchat-rating-fade-in 0.22s ease;
1884 }
1885
1886 .mxchat-rating-feedback-label {
1887 font-size: 13px;
1888 opacity: 0.85;
1889 font-weight: 500;
1890 }
1891
1892 .mxchat-rating-feedback-input {
1893 width: 100%;
1894 box-sizing: border-box;
1895 padding: 8px 10px;
1896 border: 1px solid rgba(255, 255, 255, 0.25);
1897 border-radius: 8px;
1898 font-size: 14px;
1899 font-family: inherit;
1900 resize: vertical;
1901 background: rgba(255, 255, 255, 0.08);
1902 color: inherit;
1903 }
1904
1905 .mxchat-rating-feedback-input:focus {
1906 outline: none;
1907 border-color: rgba(255, 255, 255, 0.45);
1908 background: rgba(255, 255, 255, 0.15);
1909 }
1910
1911 .mxchat-rating-feedback-actions {
1912 display: flex;
1913 justify-content: flex-end;
1914 gap: 8px;
1915 }
1916
1917 .mxchat-rating-skip,
1918 .mxchat-rating-submit {
1919 padding: 6px 14px;
1920 border-radius: 8px;
1921 font-size: 13px;
1922 font-weight: 500;
1923 cursor: pointer;
1924 border: none;
1925 transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
1926 }
1927
1928 .mxchat-rating-skip {
1929 background: transparent;
1930 color: inherit;
1931 opacity: 0.6;
1932 }
1933
1934 .mxchat-rating-skip:hover {
1935 opacity: 1;
1936 background: rgba(255, 255, 255, 0.08);
1937 }
1938
1939 .mxchat-rating-submit {
1940 /* Filled "primary" pill: fill = the bot font color, label = the bubble bg.
1941 syncRatingBubbleColors() in chat-script.js paints the real bot colors
1942 straight onto this button (inline) from the bubble's COMPUTED style, so
1943 it adapts to both the inline color pickers AND the mxchat-theme AI
1944 customizer. These var()/literal values are the no-JS safety net — the
1945 literal fallbacks (#212121 fill / #ffffff label) stay legible on their
1946 own (no white-on-white). Longhand background-color (not the `background`
1947 shorthand) because Chromium resolves inherited custom properties
1948 unreliably inside the shorthand. Do NOT use currentColor here — setting
1949 `color` would re-poison the background to the same value. */
1950 background-color: var(--mxchat-bot-fg, #212121);
1951 color: var(--mxchat-bot-bg, #ffffff);
1952 }
1953
1954 .mxchat-rating-submit:hover {
1955 transform: translateY(-1px);
1956 opacity: 0.9;
1957 }
1958
1959 .mxchat-rating-saved {
1960 padding: 10px 14px;
1961 margin: 10px 0;
1962 font-size: 13px;
1963 font-weight: 500;
1964 text-align: center;
1965 color: inherit;
1966 animation: mxchat-rating-fade-in 0.22s ease;
1967 }
1968
1969 @keyframes mxchat-rating-fade-in {
1970 from { opacity: 0; transform: translateY(4px); }
1971 to { opacity: 1; transform: translateY(0); }
1972 }