PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.5.0
MxChat – AI Chatbot & Content Generation for WordPress v2.5.0
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
← All changes | css/chat-style.css +106 -861 3.2.152.5.0 View file →
@@ -1,45 +1,4 @@
1 -/* ============================================================
2 - DEFENSIVE BASELINE (v3.2.15, plan-52fd4c)
3 - The widget renders in the host page DOM with no isolation layer,
4 - so host-theme CSS bleeds into it. This block is a scoped floor:
5 - (1) border-box everywhere inside the widget (themes that set
6 - *{box-sizing:content-box} otherwise break every fixed-size element);
7 - (2) a specificity-0 reset via :where() of exactly the properties
8 - themes commonly weaponize on form/button elements. :where() keeps
9 - specificity at zero, so every later widget rule AND any customer
10 - custom CSS still wins unchanged — the reset only fills gaps where
11 - we currently set nothing. Scoped: nothing here can leak onto the
12 - host page. Deliberately NOT Shadow DOM / @layer / !important.
13 - ============================================================ */
14 -.mxchat-chatbot-wrapper,
15 -.mxchat-chatbot-wrapper *,
16 -.mxchat-chatbot-wrapper *::before,
17 -.mxchat-chatbot-wrapper *::after,
18 -.floating-chatbot,
19 -.floating-chatbot *,
20 -.floating-chatbot *::before,
21 -.floating-chatbot *::after {
22 - box-sizing: border-box;
23 -}
24 -
25 -.mxchat-chatbot-wrapper :where(button, input, select, textarea) {
26 - font-family: inherit;
27 - font-size: inherit;
28 - line-height: inherit;
29 - margin: 0;
30 - text-transform: none;
31 - letter-spacing: normal;
32 - min-height: 0;
33 - max-width: none;
34 - background-image: none;
35 - text-shadow: none;
36 - float: none;
37 -}
38 -.mxchat-chatbot-wrapper :where(button) {
39 - width: auto;
40 -}
41 -
42 1 /* ========================================
43 2 NOTIFICATION SYSTEM
44 3 ======================================== */
45 4 .chat-notification-badge {
@@ -167,9 +126,9 @@
167 126 transform: translateY(0);
168 127 }
169 128 }
170 129
171 -.mxchat-chatbot-wrapper {
130 +#mxchat-chatbot-wrapper {
172 131 display: none;
173 132 }
174 133
175 134 /* ========================================
@@ -330,37 +289,8 @@
330 289
331 290 /* ========================================
332 291 CODE BLOCKS & INLINE CODE
333 292 ======================================== */
334 -.mxchat-table-wrapper {
335 - overflow-x: auto;
336 - margin: 12px 0;
337 - -webkit-overflow-scrolling: touch;
338 -}
339 -
340 -.mxchat-table {
341 - width: 100%;
342 - border-collapse: collapse;
343 - font-size: 0.9em;
344 - line-height: 1.4;
345 -}
346 -
347 -.mxchat-table th,
348 -.mxchat-table td {
349 - padding: 8px 12px;
350 - border: 1px solid rgba(128, 128, 128, 0.3);
351 - word-break: break-word;
352 -}
353 -
354 -.mxchat-table thead th {
355 - font-weight: 600;
356 - background: rgba(128, 128, 128, 0.15);
357 -}
358 -
359 -.mxchat-table tbody tr:nth-child(even) {
360 - background: rgba(128, 128, 128, 0.05);
361 -}
362 -
363 293 .mxchat-code-block-container {
364 294 margin: 16px 0;
365 295 border-radius: 8px;
366 296 background: rgba(255, 255, 255, 0.1);
@@ -480,9 +410,9 @@
480 410 opacity: 1;
481 411 background: none;
482 412 }
483 413
484 -.mxchat-chatbot .chat-toolbar {
414 +#mxchat-chatbot .chat-toolbar {
485 415 display: flex;
486 416 gap: 10px;
487 417 padding: 8px;
488 418 background: none;
@@ -488,9 +418,9 @@
488 418 background: none;
489 419 align-items: end;
490 420 }
491 421
492 -.mxchat-chatbot .toolbar-btn {
422 +#mxchat-chatbot .toolbar-btn {
493 423 background: none;
494 424 border: none;
495 425 padding: 0;
496 426 cursor: pointer;
@@ -504,14 +434,14 @@
504 434 min-width: 0;
505 435 box-shadow: none;
506 436 }
507 437
508 -.mxchat-chatbot .toolbar-btn svg {
438 +#mxchat-chatbot .toolbar-btn svg {
509 439 width: 100%;
510 440 height: 100%;
511 441 }
512 442
513 -.mxchat-chatbot .toolbar-btn:hover {
443 +#mxchat-chatbot .toolbar-btn:hover {
514 444 opacity: 1;
515 445 background: none;
516 446 border: none;
517 447 box-shadow: none;
@@ -516,9 +446,9 @@
516 446 border: none;
517 447 box-shadow: none;
518 448 }
519 449
520 -.mxchat-chatbot .toolbar-btn:disabled {
450 +#mxchat-chatbot .toolbar-btn:disabled {
521 451 opacity: 0.3;
522 452 cursor: not-allowed;
523 453 background: none;
524 454 border: none;
@@ -528,9 +458,9 @@
528 458 background-color: rgba(120, 115, 245, 0.2);
529 459 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.4);
530 460 }
531 461
532 -.active-perplexity-container {
462 +#active-perplexity-container {
533 463 display: flex;
534 464 align-items: center;
535 465 margin-left: 8px;
536 466 font-size: 12px;
@@ -535,13 +465,13 @@
535 465 margin-left: 8px;
536 466 font-size: 12px;
537 467 }
538 468
539 -.perplexity-search-btn {
469 +#perplexity-search-btn {
540 470 display: none;
541 471 }
542 472
543 -.perplexity-search-btn.active {
473 +#perplexity-search-btn.active {
544 474 opacity: 1;
545 475 }
546 476
547 477 /* ========================================
@@ -546,9 +476,9 @@
546 476
547 477 /* ========================================
548 478 POPULAR QUESTIONS SYSTEM
549 479 ======================================== */
550 -.mxchat-popular-questions {
480 +#mxchat-popular-questions {
551 481 padding: 0 10px 10px;
552 482 transition: all 0.3s ease;
553 483 margin-bottom: 12px;
554 484 position: relative;
@@ -574,14 +504,14 @@
574 504 transition: all 0.3s ease;
575 505 gap: 8px;
576 506 }
577 507
578 -.mxchat-popular-questions.collapsed {
508 +#mxchat-popular-questions.collapsed {
579 509 padding: 0;
580 510 margin: 0;
581 511 }
582 512
583 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
513 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
584 514 flex-direction: row;
585 515 justify-content: center;
586 516 align-items: center;
587 517 padding: 0;
@@ -588,18 +518,18 @@
588 518 max-height: 40px;
589 519 overflow: visible;
590 520 }
591 521
592 -.mxchat-popular-questions.collapsed .mxchat-popular-question {
522 +#mxchat-popular-questions.collapsed .mxchat-popular-question {
593 523 display: none;
594 524 }
595 525
596 -.mxchat-popular-questions.collapsed .questions-collapse-btn {
526 +#mxchat-popular-questions.collapsed .questions-collapse-btn {
597 527 display: none;
598 528 }
599 529
600 530 /* MISSING - These need to be inside the container context: */
601 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
531 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
602 532 background: none;
603 533 border: none;
604 534 padding: 0;
605 535 margin: 0;
@@ -614,9 +544,9 @@
614 544 box-shadow: none;
615 545 outline: none;
616 546 }
617 547
618 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
548 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
619 549 background: none;
620 550 border: none;
621 551 padding: 0;
622 552 margin: 0px; /* Center and add bottom margin */
@@ -649,9 +579,8 @@
649 579 .questions-toggle-btn svg,
650 580 .questions-collapse-btn svg {
651 581 transition: transform 0.2s ease;
652 582 fill: none;
653 - stroke: #212121;
654 583 width: 25px;
655 584 height: 25px;
656 585 }
657 586
@@ -659,13 +588,13 @@
659 588 .questions-collapse-btn:hover svg {
660 589 opacity: 0.7;
661 590 }
662 591
663 -.mxchat-popular-questions.collapsed .questions-toggle-btn {
592 +#mxchat-popular-questions.collapsed .questions-toggle-btn {
664 593 display: flex;
665 594 }
666 595
667 -.mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
596 +#mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
668 597 display: flex;
669 598 align-self: center;
670 599 order: -1;
671 600 }
@@ -732,41 +661,38 @@
732 661 opacity: 0;
733 662 pointer-events: none;
734 663 }
735 664
736 -.mxchat-chatbot{
665 +#mxchat-chatbot {
737 666 background: #fff;
738 667 overflow: hidden;
739 668 position: relative;
740 669 display: flex;
741 670 flex-direction: column;
671 + height: 500px;
672 + box-sizing: border-box;
742 673 flex-grow: 1;
743 - min-height: 0; /* Allow flex shrinking */
744 - box-sizing: border-box;
745 674 }
746 675
747 -.chat-container {
676 +#chat-container {
748 677 display: flex;
749 678 flex-direction: column;
750 - flex-grow: 1;
751 - min-height: 0; /* Critical for flex overflow scrolling */
752 679 height: 100%;
753 680 }
754 681
755 -.chat-box {
682 +#chat-box {
756 683 flex-grow: 1;
757 684 overflow-y: auto;
758 685 padding: 10px;
759 686 margin-bottom: 0;
760 687 font-size: 1rem;
761 - min-height: 0; /* Critical for flex overflow scrolling */
762 688 }
763 689
764 -.chat-box::-webkit-scrollbar {
690 +#chat-box::-webkit-scrollbar {
765 691 width: 5px;
766 692 }
767 693
768 -.chat-box::-webkit-scrollbar-thumb {
694 +#chat-box::-webkit-scrollbar-thumb {
769 695 background-color: #212121;
770 696 border-radius: 20px;
771 697 }
772 698
@@ -795,9 +721,9 @@
795 721 .user-message p {
796 722 margin: 0;
797 723 }
798 724
799 -.mxchat-chatbot .chat-container .chat-box .bot-message {
725 +#mxchat-chatbot #chat-container #chat-box .bot-message {
800 726 float: left;
801 727 clear: both;
802 728 border: 1px solid rgba(226, 232, 255, 0.2);
803 729 border-radius: 0 18px 18px;
@@ -805,9 +731,9 @@
805 731 color: #fff;
806 732 overflow-x: hidden;
807 733 }
808 734
809 -.mxchat-chatbot .chat-container .chat-box .agent-message {
735 +#mxchat-chatbot #chat-container #chat-box .agent-message {
810 736 text-align: left;
811 737 float: left;
812 738 clear: both;
813 739 border: 1px solid rgba(226, 232, 255, 0.2);
@@ -860,9 +786,9 @@
860 786 font-size: 14px;
861 787 text-align: center;
862 788 }
863 789
864 -.mxchat-chatbot-wrapper {
790 +#mxchat-chatbot-wrapper {
865 791 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
866 792 border-radius: 10px;
867 793 display: flex;
868 794 flex-direction: column;
@@ -867,16 +793,14 @@
867 793 display: flex;
868 794 flex-direction: column;
869 795 height: 100%;
870 796 width: 100%;
871 - min-height: 0; /* Allow flex shrinking */
872 - overflow: hidden;
873 797 }
874 798
875 799 /* ========================================
876 800 INPUT & CONTROLS
877 801 ======================================== */
878 -.mxchat-chatbot .chat-container .input-container {
802 +#mxchat-chatbot #chat-container #input-container {
879 803 position: relative;
880 804 display: flex;
881 805 align-items: center;
882 806 padding-right: 40px;
@@ -884,9 +808,9 @@
884 808 border-radius: 10px;
885 809 margin: 0 10px 10px;
886 810 }
887 811
888 -.mxchat-chatbot .chat-container .input-container .chat-input {
812 +#mxchat-chatbot #chat-container #input-container #chat-input {
889 813 flex-grow: 1;
890 814 color: #212121;
891 815 line-height: 24px;
892 816 background: transparent;
@@ -904,97 +828,33 @@
904 828 outline: none;
905 829 border-radius: 10px;
906 830 }
907 831
908 -.chat-input::-webkit-scrollbar {
832 +#chat-input::-webkit-scrollbar {
909 833 width: 8px;
910 834 }
911 835
912 -.chat-input::-webkit-scrollbar-track {
836 +#chat-input::-webkit-scrollbar-track {
913 837 background: #f1f1f1;
914 838 border-radius: 4px;
915 839 }
916 840
917 -.chat-input::-webkit-scrollbar-thumb {
841 +#chat-input::-webkit-scrollbar-thumb {
918 842 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
919 843 border-radius: 4px;
920 844 }
921 845
922 -.chat-input::-webkit-scrollbar-thumb:hover {
846 +#chat-input::-webkit-scrollbar-thumb:hover {
923 847 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
924 848 }
925 849
926 -.chat-input {
850 +#chat-input {
927 851 scrollbar-width: thin;
928 852 scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
929 853 }
930 854
931 -/* Chat input character counter + soft limit feedback (plan 7091a2).
932 - Language-neutral: numbers + color only. Hidden until ~80% of the cap, then
933 - fades in and ramps neutral -> amber -> red. The input border mirrors the same
934 - cue, and an over-limit keystroke/paste triggers a brief shake so the hard
935 - maxlength cap (plan a3fae2) is never a silent "input jumps back". */
936 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
855 +#mxchat-chatbot #chat-container #input-container #send-button {
937 856 position: absolute;
938 - bottom: 3px;
939 - right: 44px; /* clear the absolutely-positioned send button */
940 - font-size: 11px;
941 - line-height: 1;
942 - font-variant-numeric: tabular-nums;
943 - color: #9aa0a6;
944 - background: rgba(255, 255, 255, 0.85);
945 - padding: 1px 5px;
946 - border-radius: 8px;
947 - pointer-events: none;
948 - opacity: 0;
949 - visibility: hidden;
950 - transition: opacity 0.18s ease, color 0.18s ease;
951 - z-index: 2;
952 -}
953 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-visible {
954 - opacity: 1;
955 - visibility: visible;
956 -}
957 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-warn {
958 - color: #d98300; /* amber: approaching the cap */
959 -}
960 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-full {
961 - color: #d93025; /* red: at the cap */
962 - font-weight: 600;
963 -}
964 -/* RTL widgets: counter on the opposite side. */
965 -.mxchat-chatbot[dir="rtl"] .chat-container .input-container .mxchat-char-counter,
966 -[dir="rtl"] .mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
967 - right: auto;
968 - left: 44px;
969 -}
970 -/* Input border affordance mirrors the counter color. */
971 -.mxchat-chatbot .chat-container .input-container.mxchat-input-near-limit {
972 - border-color: #f0b048;
973 -}
974 -.mxchat-chatbot .chat-container .input-container.mxchat-input-at-limit {
975 - border-color: #e5675c;
976 -}
977 -/* Soft "you hit the edge" bump when an over-limit keystroke/paste is rejected. */
978 -.mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
979 - animation: mxchat-input-bump 0.2s ease;
980 -}
981 -@keyframes mxchat-input-bump {
982 - 0% { transform: translateX(0); }
983 - 25% { transform: translateX(-3px); }
984 - 50% { transform: translateX(3px); }
985 - 75% { transform: translateX(-2px); }
986 - 100% { transform: translateX(0); }
987 -}
988 -/* Respect reduced-motion: drop the shake; the red border/counter still signals the cap. */
989 -@media (prefers-reduced-motion: reduce) {
990 - .mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
991 - animation: none;
992 - }
993 -}
994 -
995 -.mxchat-chatbot .chat-container .input-container .send-button {
996 - position: absolute;
997 857 right: 10px;
998 858 top: 50%;
999 859 transform: translateY(-50%);
1000 860 border: none;
@@ -1013,32 +873,25 @@
1013 873 cursor: pointer;
1014 874 font-weight: 700;
1015 875 }
1016 876
1017 -.send-button svg {
877 +#send-button svg {
1018 878 width: 25px;
1019 879 height: 25px;
1020 880 pointer-events: none;
1021 881 }
1022 882
1023 -.send-button:hover {
883 +#send-button:hover {
1024 884 opacity: 0.8;
1025 885 }
1026 886
1027 -/* Stop state while a response is streaming: the send button becomes a Stop
1028 - control in place — same chrome and position, swapped glyph. Themeable hook;
1029 - the glyph's size/color are mirrored from the send icon at runtime. */
1030 -.mxchat-chatbot .chat-container .input-container .send-button.mxchat-stop-mode {
1031 - cursor: pointer;
1032 -}
1033 -
1034 -.mxchat-chatbot .spinner {
887 +#mxchat-chatbot .spinner {
1035 888 animation: rotate 2s linear infinite;
1036 889 width: 20px;
1037 890 height: 20px;
1038 891 }
1039 892
1040 -.mxchat-chatbot .spinner circle {
893 +#mxchat-chatbot .spinner circle {
1041 894 stroke: #212121;
1042 895 stroke-linecap: round;
1043 896 animation: dash 1.5s ease-in-out infinite;
1044 897 }
@@ -1070,11 +923,9 @@
1070 923 .chatbot-title-container {
1071 924 display: flex;
1072 925 align-items: center;
1073 926 justify-content: space-between;
1074 - gap: 10px;
1075 - flex: 1 1 auto;
1076 - min-width: 0;
927 + width: 100%;
1077 928 }
1078 929
1079 930 .chatbot-title-group {
1080 931 display: flex;
@@ -1083,36 +934,25 @@
1083 934 }
1084 935
1085 936 .chat-mode-indicator {
1086 937 font-size: 12px;
1087 - line-height: 1;
1088 - margin-right: 0;
1089 - padding: 4px 9px;
1090 - border-radius: 999px;
1091 - background: rgba(255, 255, 255, 0.18);
938 + margin-right: 8px;
939 + padding: 4px 8px;
940 + border-radius: 12px;
941 + background: rgba(255, 255, 255, 0.2);
1092 942 color: #ffffff;
1093 - display: inline-flex;
1094 - align-items: center;
1095 - height: 22px;
1096 - white-space: nowrap;
1097 - flex: 0 0 auto;
1098 943 }
1099 944
1100 -.floating-chatbot {
945 +#floating-chatbot {
1101 946 position: fixed;
1102 947 bottom: 25px;
1103 948 right: 25px;
1104 949 width: 375px;
1105 - /* Use viewport-aware height with fallbacks */
1106 - height: min(625px, calc(100vh - 50px)); /* 50px = 25px top + 25px bottom margin */
1107 - height: min(625px, calc(100dvh - 50px)); /* Dynamic viewport height for mobile browsers */
1108 - max-height: calc(100vh - 50px);
1109 - max-height: calc(100dvh - 50px); /* Fallback for browsers supporting dvh */
950 + height: 625px;
1110 951 box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
1111 952 border-radius: 20px;
1112 953 overflow: hidden;
1113 954 display: flex;
1114 - flex-direction: column;
1115 955 z-index: 100000;
1116 956 transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
1117 957 transform: translateY(20%);
1118 958 opacity: 0;
@@ -1118,42 +958,27 @@
1118 958 opacity: 0;
1119 959 pointer-events: none;
1120 960 }
1121 961
1122 -.floating-chatbot.visible {
962 +#floating-chatbot.visible {
1123 963 transform: translateY(0);
1124 964 opacity: 1;
1125 965 pointer-events: auto;
1126 966 }
1127 967
1128 -/* ========================================
1129 - EMBEDDED CHATBOT (Shortcode)
1130 - ======================================== */
1131 -/* Embedded chatbots are NOT inside .floating-chatbot wrapper */
1132 -/* Apply fixed height like floating widget so quick questions overlay properly */
1133 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) {
1134 - height: 500px;
1135 - max-height: 500px;
1136 -}
1137 -
1138 -/* Hide the minimize/exit button for embedded chatbots - it doesn't make sense */
1139 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) .exit-chat {
1140 - display: none !important;
1141 -}
1142 -
1143 -.floating-chatbot-button.hidden,
968 +#floating-chatbot-button.hidden,
1144 969 .exit-chat span {
1145 970 display: none !important;
1146 971 }
1147 972
1148 -.chatbot-top-bar button.exit-chat:hover {
1149 - background: rgba(255, 255, 255, 0.12);
973 +.chatbot-top-bar#exit-chat-button button.exit-chat:hover {
974 + background: none;
1150 975 }
1151 976 .visible {
1152 977 display: flex;
1153 978 }
1154 979
1155 -.floating-chatbot-button {
980 +#floating-chatbot-button {
1156 981 transition: opacity 1s ease-in-out;
1157 982 font-size: 1.25rem;
1158 983 position: fixed;
1159 984 bottom: 30px;
@@ -1171,14 +996,9 @@
1171 996 z-index: 100000;
1172 997 display: flex;
1173 998 }
1174 999
1175 -.floating-chatbot-button:focus-visible {
1176 - outline: 3px solid #7873f5;
1177 - outline-offset: 3px;
1178 -}
1179 -
1180 -.floating-chatbot-button img {
1000 +#floating-chatbot-button img {
1181 1001 max-width: 100%;
1182 1002 max-height: 100%;
1183 1003 width: auto;
1184 1004 height: auto;
@@ -1187,51 +1007,34 @@
1187 1007 .chatbot-top-bar {
1188 1008 background: #212121;
1189 1009 }
1190 1010
1191 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1011 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1192 1012 background: transparent;
1193 - /* v3.2.15 (plan-52fd4c): explicit guards against host-theme button rules.
1194 - Margin deliberately untouched — .exit-chat relies on margin-left:auto. */
1195 - background-image: none;
1196 1013 border: none;
1197 1014 opacity: 0.8;
1198 1015 padding: 0;
1199 - width: 32px;
1200 - height: 32px;
1201 - min-width: 32px;
1202 - min-height: 32px;
1203 - max-width: none;
1204 - flex: 0 0 auto;
1205 - border-radius: 6px;
1206 - font-family: inherit;
1207 - text-transform: none;
1208 - text-shadow: none;
1209 - appearance: none;
1210 - -webkit-appearance: none;
1211 - transition: opacity 0.15s ease, background 0.15s ease;
1016 + min-width: 20px;
1212 1017 }
1213 1018
1214 -.mxchat-chatbot-wrapper .chatbot-top-bar {
1019 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1215 1020 cursor: pointer;
1216 1021 color: #fff;
1217 - padding: 8px 12px;
1218 - min-height: 48px;
1219 - gap: 8px;
1022 + padding: 10px;
1220 1023 border-top-left-radius: 10px;
1221 1024 border-top-right-radius: 10px;
1222 1025 display: flex;
1223 1026 justify-content: space-between;
1224 - align-items: center;
1027 + align-items: start;
1225 1028 }
1226 1029
1227 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1228 - font-size: 15px;
1229 - line-height: 1.2;
1230 - padding: 0;
1030 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1031 + font-size: 16px;
1032 + line-height: 25px;
1033 + padding: 10px;
1231 1034 margin: 0;
1232 1035 font-family: 'Plus Jakarta Sans', sans-serif;
1233 - font-weight: 600;
1036 + font-weight: bold;
1234 1037 }
1235 1038
1236 1039 .exit-chat {
1237 1040 border: none;
@@ -1236,92 +1039,56 @@
1236 1039 .exit-chat {
1237 1040 border: none;
1238 1041 background: transparent;
1239 1042 cursor: pointer;
1240 - display: inline-flex;
1043 + display: flex;
1241 1044 align-items: center;
1242 1045 justify-content: center;
1243 - padding: 0;
1046 + padding: 5px;
1244 1047 margin-left: auto;
1245 1048 opacity: 0.8;
1246 - width: 32px;
1247 - height: 32px;
1248 - min-width: 32px;
1249 - flex: 0 0 auto;
1049 + min-width: 20px;
1250 1050 }
1251 1051
1252 1052 .exit-chat svg {
1253 - width: 18px;
1254 - height: 18px;
1255 - fill: none;
1256 - stroke: currentColor;
1053 + fill: white;
1054 + width: 24px;
1055 + height: 24px;
1056 + transform: rotate(270deg);
1257 1057 }
1258 1058
1259 -.mxchat-chatbot-wrapper .chatbot-footer {
1059 +#mxchat-chatbot-wrapper .chatbot-footer {
1260 1060 text-align: center;
1261 1061 padding-bottom: 10px;
1262 1062 font-size: 0.85em;
1263 1063 }
1264 1064
1265 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1065 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1266 1066 font-size: 12px;
1267 1067 margin: 0;
1268 1068 color: #71717a;
1269 1069 }
1270 1070
1271 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1071 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1272 1072 color: #0073aa;
1273 1073 text-decoration: underline;
1274 1074 font-size: 12px;
1275 1075 }
1276 1076
1277 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1077 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1278 1078 text-decoration: none;
1279 1079 color: inherit;
1280 1080 font-weight: 700;
1281 1081 }
1282 1082
1283 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1083 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1284 1084 text-decoration: underline;
1285 1085 }
1286 1086
1287 1087 /* ========================================
1288 - INIT LOADER (shown while chat initializes)
1289 - ======================================== */
1290 -.mxchat-init-loader {
1291 - display: flex;
1292 - align-items: center;
1293 - justify-content: center;
1294 - flex-grow: 1;
1295 - min-height: 0;
1296 - animation: fadeIn 0.3s ease-in-out;
1297 -}
1298 -
1299 -.mxchat-init-loader-dots {
1300 - display: flex;
1301 - gap: 8px;
1302 -}
1303 -
1304 -.mxchat-init-loader-dots .dot {
1305 - width: 8px;
1306 - height: 8px;
1307 - border-radius: 50%;
1308 - background-color: #888;
1309 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1310 -}
1311 -
1312 -.mxchat-init-loader-dots .dot:nth-child(1) {
1313 - animation-delay: -0.32s;
1314 -}
1315 -
1316 -.mxchat-init-loader-dots .dot:nth-child(2) {
1317 - animation-delay: -0.16s;
1318 -}
1319 -
1320 -/* ========================================
1321 1088 THINKING DOTS ANIMATION
1322 1089 ======================================== */
1323 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1090 +#chat-box .bot-message.temporary-message .thinking-dots-container {
1324 1091 display: flex;
1325 1092 justify-content: center;
1326 1093 align-items: center;
1327 1094 overflow: hidden;
@@ -1330,9 +1097,9 @@
1330 1097 z-index: 1;
1331 1098 flex-shrink: 0;
1332 1099 }
1333 1100
1334 -.chat-box .bot-message.temporary-message .thinking-dots {
1101 +#chat-box .bot-message.temporary-message .thinking-dots {
1335 1102 display: flex;
1336 1103 justify-content: center;
1337 1104 align-items: center;
1338 1105 height: 90%;
@@ -1339,9 +1106,9 @@
1339 1106 gap: 5px;
1340 1107 flex-shrink: 0;
1341 1108 }
1342 1109
1343 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1110 +#chat-box .bot-message.temporary-message .thinking-dots .dot {
1344 1111 height: 6px;
1345 1112 width: 6px;
1346 1113 margin: 0 3px;
1347 1114 background-color: #fff;
@@ -1346,21 +1113,21 @@
1346 1113 margin: 0 3px;
1347 1114 background-color: #fff;
1348 1115 border-radius: 50%;
1349 1116 display: inline-block;
1350 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1117 + animation: bounce 1.4s ease-in-out infinite both;
1351 1118 vertical-align: middle;
1352 1119 }
1353 1120
1354 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1121 +#chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1355 1122 animation-delay: -0.32s;
1356 1123 }
1357 1124
1358 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1125 +#chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1359 1126 animation-delay: -0.16s;
1360 1127 }
1361 1128
1362 -@keyframes mxchat-dot-bounce {
1129 +@keyframes bounce {
1363 1130 0%, 100%, 80% {
1364 1131 transform: scale(1);
1365 1132 }
1366 1133 40% {
@@ -1370,9 +1137,9 @@
1370 1137
1371 1138 /* ========================================
1372 1139 PRE-CHAT MESSAGE
1373 1140 ======================================== */
1374 -.pre-chat-message {
1141 +#pre-chat-message {
1375 1142 position: fixed;
1376 1143 bottom: 85px;
1377 1144 right: 30px;
1378 1145 background-color: #fff;
@@ -1387,9 +1154,9 @@
1387 1154 display: none;
1388 1155 margin-bottom: 10px;
1389 1156 }
1390 1157
1391 -.pre-chat-message .close-pre-chat-message {
1158 +#pre-chat-message .close-pre-chat-message {
1392 1159 position: absolute;
1393 1160 top: -6px;
1394 1161 right: -6px;
1395 1162 background-color: #ccc;
@@ -1409,60 +1176,8 @@
1409 1176 line-height: 1;
1410 1177 }
1411 1178
1412 1179 /* ========================================
1413 - VIEWPORT HEIGHT CONSTRAINTS
1414 - Handles bookmarks bar, browser zoom, and smaller screens
1415 - ======================================== */
1416 -@media screen and (max-height: 700px) {
1417 - .floating-chatbot {
1418 - bottom: 15px;
1419 - height: calc(100vh - 30px);
1420 - height: calc(100dvh - 30px);
1421 - max-height: calc(100vh - 30px);
1422 - max-height: calc(100dvh - 30px);
1423 - }
1424 -
1425 - .floating-chatbot-button {
1426 - bottom: 20px;
1427 - }
1428 -
1429 - .pre-chat-message {
1430 - bottom: 75px;
1431 - }
1432 -}
1433 -
1434 -@media screen and (max-height: 550px) {
1435 - .floating-chatbot {
1436 - bottom: 10px;
1437 - height: calc(100vh - 20px);
1438 - height: calc(100dvh - 20px);
1439 - max-height: calc(100vh - 20px);
1440 - max-height: calc(100dvh - 20px);
1441 - }
1442 -
1443 - /* Reduce padding in tight spaces */
1444 - .mxchat-popular-questions {
1445 - padding: 0 8px 5px;
1446 - margin-bottom: 8px;
1447 - }
1448 -
1449 - .mxchat-popular-question {
1450 - padding: 8px 12px;
1451 - font-size: 13px;
1452 - line-height: 20px;
1453 - }
1454 -
1455 - .mxchat-chatbot .chat-container .input-container {
1456 - margin: 0 8px 8px;
1457 - }
1458 -
1459 - .mxchat-chatbot-wrapper .chatbot-footer {
1460 - padding-bottom: 5px;
1461 - }
1462 -}
1463 -
1464 -/* ========================================
1465 1180 MOBILE RESPONSIVE
1466 1181 ======================================== */
1467 1182 @media screen and (max-width: 782px) {
1468 1183 .mxchat-search-results {
@@ -1494,14 +1209,14 @@
1494 1209 width: 22px;
1495 1210 height: 22px;
1496 1211 }
1497 1212
1498 - .pre-chat-message {
1213 + #pre-chat-message {
1499 1214 bottom: 70px;
1500 1215 right: 15px;
1501 1216 }
1502 1217
1503 - .chat-input {
1218 + #chat-input {
1504 1219 width: calc(100% - 70px);
1505 1220 }
1506 1221
1507 1222 .bot-message,
@@ -1509,41 +1224,30 @@
1509 1224 padding: 10px;
1510 1225 max-width: 95%;
1511 1226 }
1512 1227
1513 - .floating-chatbot-button {
1228 + #floating-chatbot-button {
1514 1229 bottom: 15px;
1515 1230 right: 10px;
1516 1231 }
1517 1232
1518 - .floating-chatbot {
1519 - width: calc(100vw - 16px);
1520 - /* Use multiple fallbacks for maximum browser compatibility */
1521 - height: calc(100vh - 16px); /* Fallback */
1522 - height: calc(var(--vh, 1vh) * 100 - 16px); /* JS-set custom property fallback */
1523 - height: calc(100dvh - 16px); /* Modern dynamic viewport height */
1524 - max-height: calc(100vh - 16px);
1525 - max-height: calc(100dvh - 16px);
1233 + #floating-chatbot {
1234 + width: 100vw;
1235 + height: calc(var(--vh, 1vh) * 100);
1526 1236 margin: 0;
1527 1237 padding: 0;
1528 1238 position: fixed;
1529 - bottom: 8px;
1530 - top: auto;
1531 - left: 8px;
1532 - right: 8px;
1533 - border-radius: 16px;
1534 - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1239 + bottom: 0;
1240 + top: 0;
1241 + left: 0;
1242 + right: 0;
1243 + border-radius: 0;
1535 1244 }
1536 1245
1537 - .floating-chatbot .mxchat-chatbot-wrapper {
1538 - border-radius: 16px;
1539 - overflow: hidden;
1246 + #mxchat-chatbot-wrapper .chatbot-top-bar {
1247 + border-top-left-radius: 0;
1248 + border-top-right-radius: 0;
1540 1249 }
1541 -
1542 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1543 - border-top-left-radius: 16px;
1544 - border-top-right-radius: 16px;
1545 - }
1546 1250 }
1547 1251
1548 1252
1549 1253
@@ -1677,106 +1381,8 @@
1677 1381 height: auto;
1678 1382 border-radius: 0 0 8px 8px;
1679 1383 }
1680 1384
1681 -/* Consent-safe YouTube embed (click-to-load facade → nocookie iframe).
1682 - Caption colors INHERIT from the message bubble (same idiom as
1683 - .mxchat-product-card) so the embed reads correctly on any widget theme —
1684 - bot bubbles commonly force their own text color. */
1685 -.mxchat-youtube-embed {
1686 - max-width: 340px;
1687 - margin-top: 8px;
1688 -}
1689 -
1690 -.mxchat-youtube-facade {
1691 - position: relative;
1692 - display: block;
1693 - width: 100%;
1694 - padding: 0;
1695 - margin: 0;
1696 - border: none;
1697 - background: #000;
1698 - cursor: pointer;
1699 - aspect-ratio: 16 / 9;
1700 - border-radius: 10px;
1701 - overflow: hidden;
1702 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1703 -}
1704 -
1705 -.mxchat-youtube-thumb {
1706 - width: 100%;
1707 - height: 100%;
1708 - object-fit: cover;
1709 - display: block;
1710 - opacity: 0.92;
1711 - transition: opacity 0.2s;
1712 -}
1713 -
1714 -.mxchat-youtube-facade:hover .mxchat-youtube-thumb {
1715 - opacity: 1;
1716 -}
1717 -
1718 -.mxchat-youtube-play {
1719 - position: absolute;
1720 - top: 50%;
1721 - left: 50%;
1722 - transform: translate(-50%, -50%);
1723 - display: flex;
1724 - align-items: center;
1725 - justify-content: center;
1726 - width: 52px;
1727 - height: 52px;
1728 - border-radius: 50%;
1729 - background: rgba(0, 0, 0, 0.72);
1730 - color: #fff;
1731 - transition: transform 0.2s, background 0.2s;
1732 -}
1733 -
1734 -.mxchat-youtube-play svg {
1735 - margin-left: 3px;
1736 -}
1737 -
1738 -.mxchat-youtube-facade:hover .mxchat-youtube-play {
1739 - transform: translate(-50%, -50%) scale(1.08);
1740 - background: rgba(0, 0, 0, 0.85);
1741 -}
1742 -
1743 -.mxchat-youtube-iframe {
1744 - width: 100%;
1745 - aspect-ratio: 16 / 9;
1746 - border: none;
1747 - display: block;
1748 - border-radius: 10px;
1749 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1750 -}
1751 -
1752 -.mxchat-youtube-caption {
1753 - display: flex;
1754 - align-items: baseline;
1755 - justify-content: space-between;
1756 - gap: 10px;
1757 - padding: 8px 2px 0;
1758 - background: transparent;
1759 - color: inherit;
1760 -}
1761 -
1762 -.mxchat-youtube-title {
1763 - font-size: 13px;
1764 - font-weight: 600;
1765 - color: inherit;
1766 - overflow: hidden;
1767 - white-space: nowrap;
1768 - text-overflow: ellipsis;
1769 -}
1770 -
1771 -.mxchat-youtube-link {
1772 - font-size: 12px;
1773 - white-space: nowrap;
1774 - color: inherit;
1775 - opacity: 0.85;
1776 - text-decoration: underline;
1777 -}
1778 -
1779 1385 #widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1780 1386 padding: 10px;
1781 1387 }
1782 1388
@@ -1785,9 +1391,9 @@
1785 1391 }
1786 1392
1787 1393
1788 1394 /* This selector with more context - showing the collapse button in certain states */
1789 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1395 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1790 1396 background: none;
1791 1397 border: none;
1792 1398 padding: 0;
1793 1399 margin: 0px;
@@ -1805,15 +1411,15 @@
1805 1411 order: -1; /* THIS IS MISSING */
1806 1412 }
1807 1413
1808 1414 /* ALL hover states - these are MISSING from your new CSS */
1809 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1415 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1810 1416 background: none;
1811 1417 border: none;
1812 1418 box-shadow: none;
1813 1419 }
1814 1420
1815 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1421 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1816 1422 outline: none;
1817 1423 background: none;
1818 1424 border: none;
1819 1425 box-shadow: none;
@@ -1818,9 +1424,9 @@
1818 1424 border: none;
1819 1425 box-shadow: none;
1820 1426 }
1821 1427
1822 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1428 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1823 1429 background: none;
1824 1430 border: none;
1825 1431 box-shadow: none;
1826 1432 }
@@ -1825,385 +1431,24 @@
1825 1431 box-shadow: none;
1826 1432 }
1827 1433
1828 1434 /* SVG styles - these are MISSING */
1829 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1435 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1830 1436 fill: none;
1831 - stroke: #212121;
1832 1437 transition: transform 0.2s ease;
1833 1438 width: 25px;
1834 1439 height: 25px;
1835 1440 }
1836 1441
1837 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1442 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1838 1443 opacity: 0.7;
1839 1444 }
1840 1445
1841 1446 /* THE CRITICAL DISPLAY RULE - this shows when it's been collapsed before */
1842 -.mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1447 +#mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1843 1448 display: flex;
1844 1449 }
1845 1450
1846 1451 /* Hide when actually collapsed */
1847 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1452 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1848 1453 display: none;
1849 -}
1850 -
1851 -/* ============================================================
1852 - Header overflow menu — 3-dot kebab + dropdown (v3.2.9 / v3.2.10)
1853 - Lives in .chatbot-top-bar to the LEFT of .exit-chat. Visual treatment
1854 - mirrors .exit-chat: transparent, white-on-dark, 0.8 opacity, 5px pad.
1855 -
1856 - v3.2.10: explicit `order` rules pin the visual order
1857 - title (0) | kebab (1) | down-arrow (2)
1858 - so the down-arrow is always the rightmost icon regardless of source
1859 - order or which sibling has margin-left:auto.
1860 - ============================================================ */
1861 -.mxchat-chatbot-wrapper .chatbot-top-bar > .chatbot-title-container { order: 0; }
1862 -.mxchat-chatbot-wrapper .chatbot-top-bar > .mxchat-header-menu-wrap { order: 1; }
1863 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat { order: 2; }
1864 -
1865 -.mxchat-header-menu-wrap {
1866 - position: relative;
1867 - display: inline-flex;
1868 - align-items: center;
1869 - margin-left: auto; /* push kebab + arrow group to the right edge */
1870 -}
1871 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap ~ .exit-chat,
1872 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap + .exit-chat {
1873 - margin-left: 4px; /* even, snug gap between kebab and close */
1874 -}
1875 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat:focus {
1876 - background: rgba(255, 255, 255, 0.12);
1877 - opacity: 1;
1878 - outline: none;
1879 -}
1880 -/* v3.2.15 (plan-52fd4c): kebab rules scoped under the wrapper + explicit
1881 - guards on every property a theme's button/link rules commonly set
1882 - (font-family, margin, appearance, text-transform, background-image),
1883 - after a customer site's theme visibly mangled the dropdown. */
1884 -.mxchat-chatbot-wrapper .mxchat-header-btn {
1885 - border: none;
1886 - background: transparent;
1887 - background-image: none;
1888 - cursor: pointer;
1889 - display: inline-flex;
1890 - align-items: center;
1891 - justify-content: center;
1892 - padding: 0;
1893 - margin: 0;
1894 - opacity: 0.8;
1895 - color: #fff;
1896 - font-family: inherit;
1897 - text-transform: none;
1898 - text-shadow: none;
1899 - appearance: none;
1900 - -webkit-appearance: none;
1901 - transition: opacity 0.15s ease, background 0.15s ease;
1902 - border-radius: 6px;
1903 - line-height: 0;
1904 - width: 32px;
1905 - height: 32px;
1906 - min-width: 32px;
1907 - min-height: 32px;
1908 - max-width: none;
1909 - flex: 0 0 auto;
1910 -}
1911 -.mxchat-chatbot-wrapper .mxchat-header-btn:hover,
1912 -.mxchat-chatbot-wrapper .mxchat-header-btn:focus {
1913 - opacity: 1;
1914 - background: rgba(255, 255, 255, 0.12);
1915 - outline: none;
1916 -}
1917 -.mxchat-chatbot-wrapper .mxchat-header-btn[aria-expanded="true"] {
1918 - opacity: 1;
1919 - background: rgba(255, 255, 255, 0.12);
1920 -}
1921 -.mxchat-chatbot-wrapper .mxchat-menu-trigger svg {
1922 - width: 18px;
1923 - height: 18px;
1924 -}
1925 -
1926 -.mxchat-chatbot-wrapper .mxchat-header-menu {
1927 - position: absolute;
1928 - top: calc(100% + 6px);
1929 - right: 0;
1930 - min-width: 220px;
1931 - margin: 0;
1932 - background: var(--mxchat-menu-bg, #ffffff);
1933 - color: var(--mxchat-menu-fg, #1a1a1a);
1934 - border: 1px solid rgba(127, 127, 127, 0.20);
1935 - border-radius: 10px;
1936 - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.10);
1937 - padding: 4px;
1938 - font-family: inherit;
1939 - z-index: 99;
1940 - opacity: 0;
1941 - transform: translateY(-4px);
1942 - pointer-events: none;
1943 - transition: opacity 0.12s ease, transform 0.12s ease;
1944 -}
1945 -.mxchat-chatbot-wrapper .mxchat-header-menu.is-open {
1946 - opacity: 1;
1947 - transform: translateY(0);
1948 - pointer-events: auto;
1949 -}
1950 -.mxchat-chatbot-wrapper .mxchat-header-menu[hidden] {
1951 - display: none;
1952 -}
1953 -.mxchat-chatbot-wrapper .mxchat-menu-item {
1954 - display: flex;
1955 - align-items: center;
1956 - gap: 10px;
1957 - width: 100%;
1958 - padding: 8px 12px;
1959 - margin: 0;
1960 - min-height: 40px;
1961 - border: none;
1962 - background: transparent;
1963 - background-image: none;
1964 - color: inherit;
1965 - font-family: inherit;
1966 - font-size: 14px;
1967 - line-height: 1.3;
1968 - letter-spacing: normal;
1969 - text-align: left;
1970 - text-transform: none;
1971 - text-shadow: none;
1972 - white-space: nowrap;
1973 - appearance: none;
1974 - -webkit-appearance: none;
1975 - cursor: pointer;
1976 - border-radius: 6px;
1977 - transition: background 0.12s ease;
1978 - text-decoration: none;
1979 - box-sizing: border-box;
1980 -}
1981 -.mxchat-chatbot-wrapper .mxchat-menu-item:hover,
1982 -.mxchat-chatbot-wrapper .mxchat-menu-item:focus {
1983 - background: rgba(127, 127, 127, 0.18);
1984 - outline: none;
1985 -}
1986 -.mxchat-menu-item-icon {
1987 - display: inline-flex;
1988 - align-items: center;
1989 - justify-content: center;
1990 - width: 16px;
1991 - height: 16px;
1992 - color: inherit;
1993 - opacity: 0.85;
1994 - flex-shrink: 0;
1995 -}
1996 -.mxchat-menu-item-icon svg {
1997 - width: 16px;
1998 - height: 16px;
1999 - display: block;
2000 -}
2001 -.mxchat-menu-item-label {
2002 - flex: 1;
2003 - color: inherit;
2004 -}
2005 -
2006 -/* RTL — flip the dropdown anchor edge */
2007 -[dir="rtl"] .mxchat-header-menu,
2008 -.mxchat-chatbot-wrapper[dir="rtl"] .mxchat-header-menu {
2009 - right: auto;
2010 - left: 0;
2011 -}
2012 -
2013 -/* ============================================================================
2014 - Satisfaction rating (v3.2.6 — polished per plan-141a12)
2015 - Theme-adaptive via currentColor + inherit. Clean slate — old rules removed.
2016 - ========================================================================= */
2017 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-prompt,
2018 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-feedback,
2019 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-saved {
2020 - clear: both;
2021 - float: left;
2022 - max-width: 92%;
2023 - box-sizing: border-box;
2024 -}
2025 -
2026 -/* Theme-adaptive wrapper — .bot-message carries the user's custom bg/color via
2027 - inline style; the inner rating component supplies its own padding + layout. */
2028 -.mxchat-rating-bot-bubble {
2029 - padding: 0;
2030 - overflow: visible;
2031 -}
2032 -
2033 -.mxchat-rating-prompt {
2034 - display: flex;
2035 - flex-direction: column;
2036 - align-items: stretch;
2037 - gap: 10px;
2038 - padding: 10px 14px;
2039 - margin: 10px 0;
2040 - font-size: 14px;
2041 - color: inherit;
2042 -}
2043 -
2044 -.mxchat-rating-question {
2045 - color: inherit;
2046 - opacity: 0.85;
2047 - font-weight: 500;
2048 -}
2049 -
2050 -.mxchat-rating-actions {
2051 - display: flex;
2052 - align-items: center;
2053 - gap: 8px;
2054 -}
2055 -
2056 -.mxchat-rating-buttons {
2057 - display: inline-flex;
2058 - gap: 6px;
2059 -}
2060 -
2061 -.mxchat-rating-btn {
2062 - display: inline-flex;
2063 - align-items: center;
2064 - justify-content: center;
2065 - width: 32px;
2066 - height: 32px;
2067 - border-radius: 8px;
2068 - background: transparent;
2069 - border: none;
2070 - color: inherit;
2071 - opacity: 0.6;
2072 - cursor: pointer;
2073 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
2074 - padding: 0;
2075 -}
2076 -
2077 -.mxchat-rating-btn:hover {
2078 - opacity: 1;
2079 - transform: scale(1.12);
2080 - background: rgba(255, 255, 255, 0.08);
2081 -}
2082 -
2083 -.mxchat-rating-btn:focus-visible {
2084 - opacity: 1;
2085 - outline: 2px solid currentColor;
2086 - outline-offset: 2px;
2087 -}
2088 -
2089 -.mxchat-rating-btn svg {
2090 - pointer-events: none;
2091 -}
2092 -
2093 -.mxchat-rating-dismiss {
2094 - width: 24px;
2095 - height: 24px;
2096 - border-radius: 6px;
2097 - background: transparent;
2098 - border: none;
2099 - color: inherit;
2100 - opacity: 0.45;
2101 - cursor: pointer;
2102 - font-size: 18px;
2103 - line-height: 1;
2104 - transition: opacity 0.18s ease, background-color 0.18s ease;
2105 -}
2106 -
2107 -.mxchat-rating-dismiss:hover {
2108 - opacity: 0.9;
2109 - background: rgba(255, 255, 255, 0.08);
2110 -}
2111 -
2112 -/* Feedback panel that replaces the prompt after a rating is clicked */
2113 -.mxchat-rating-feedback {
2114 - padding: 12px 14px;
2115 - margin: 10px 0;
2116 - display: flex;
2117 - flex-direction: column;
2118 - gap: 10px;
2119 - color: inherit;
2120 - animation: mxchat-rating-fade-in 0.22s ease;
2121 -}
2122 -
2123 -.mxchat-rating-feedback-label {
2124 - font-size: 13px;
2125 - opacity: 0.85;
2126 - font-weight: 500;
2127 -}
2128 -
2129 -.mxchat-rating-feedback-input {
2130 - width: 100%;
2131 - box-sizing: border-box;
2132 - padding: 8px 10px;
2133 - border: 1px solid rgba(255, 255, 255, 0.25);
2134 - border-radius: 8px;
2135 - font-size: 14px;
2136 - font-family: inherit;
2137 - resize: vertical;
2138 - background: rgba(255, 255, 255, 0.08);
2139 - color: inherit;
2140 -}
2141 -
2142 -.mxchat-rating-feedback-input:focus {
2143 - outline: none;
2144 - border-color: rgba(255, 255, 255, 0.45);
2145 - background: rgba(255, 255, 255, 0.15);
2146 -}
2147 -
2148 -.mxchat-rating-feedback-actions {
2149 - display: flex;
2150 - justify-content: flex-end;
2151 - gap: 8px;
2152 -}
2153 -
2154 -.mxchat-rating-skip,
2155 -.mxchat-rating-submit {
2156 - padding: 6px 14px;
2157 - border-radius: 8px;
2158 - font-size: 13px;
2159 - font-weight: 500;
2160 - cursor: pointer;
2161 - border: none;
2162 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
2163 -}
2164 -
2165 -.mxchat-rating-skip {
2166 - background: transparent;
2167 - color: inherit;
2168 - opacity: 0.6;
2169 -}
2170 -
2171 -.mxchat-rating-skip:hover {
2172 - opacity: 1;
2173 - background: rgba(255, 255, 255, 0.08);
2174 -}
2175 -
2176 -.mxchat-rating-submit {
2177 - /* Filled "primary" pill: fill = the bot font color, label = the bubble bg.
2178 - syncRatingBubbleColors() in chat-script.js paints the real bot colors
2179 - straight onto this button (inline) from the bubble's COMPUTED style, so
2180 - it adapts to both the inline color pickers AND the mxchat-theme AI
2181 - customizer. These var()/literal values are the no-JS safety net — the
2182 - literal fallbacks (#212121 fill / #ffffff label) stay legible on their
2183 - own (no white-on-white). Longhand background-color (not the `background`
2184 - shorthand) because Chromium resolves inherited custom properties
2185 - unreliably inside the shorthand. Do NOT use currentColor here — setting
2186 - `color` would re-poison the background to the same value. */
2187 - background-color: var(--mxchat-bot-fg, #212121);
2188 - color: var(--mxchat-bot-bg, #ffffff);
2189 -}
2190 -
2191 -.mxchat-rating-submit:hover {
2192 - transform: translateY(-1px);
2193 - opacity: 0.9;
2194 -}
2195 -
2196 -.mxchat-rating-saved {
2197 - padding: 10px 14px;
2198 - margin: 10px 0;
2199 - font-size: 13px;
2200 - font-weight: 500;
2201 - text-align: center;
2202 - color: inherit;
2203 - animation: mxchat-rating-fade-in 0.22s ease;
2204 -}
2205 -
2206 -@keyframes mxchat-rating-fade-in {
2207 - from { opacity: 0; transform: translateY(4px); }
2208 - to { opacity: 1; transform: translateY(0); }
2209 1454 }