PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.6.0
MxChat – AI Chatbot & Content Generation for WordPress v2.6.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 -624 3.2.92.6.0 View file →
@@ -126,9 +126,9 @@
126 126 transform: translateY(0);
127 127 }
128 128 }
129 129
130 -.mxchat-chatbot-wrapper {
130 +#mxchat-chatbot-wrapper {
131 131 display: none;
132 132 }
133 133
134 134 /* ========================================
@@ -289,37 +289,8 @@
289 289
290 290 /* ========================================
291 291 CODE BLOCKS & INLINE CODE
292 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 293 .mxchat-code-block-container {
323 294 margin: 16px 0;
324 295 border-radius: 8px;
325 296 background: rgba(255, 255, 255, 0.1);
@@ -439,9 +410,9 @@
439 410 opacity: 1;
440 411 background: none;
441 412 }
442 413
443 -.mxchat-chatbot .chat-toolbar {
414 +#mxchat-chatbot .chat-toolbar {
444 415 display: flex;
445 416 gap: 10px;
446 417 padding: 8px;
447 418 background: none;
@@ -447,9 +418,9 @@
447 418 background: none;
448 419 align-items: end;
449 420 }
450 421
451 -.mxchat-chatbot .toolbar-btn {
422 +#mxchat-chatbot .toolbar-btn {
452 423 background: none;
453 424 border: none;
454 425 padding: 0;
455 426 cursor: pointer;
@@ -463,14 +434,14 @@
463 434 min-width: 0;
464 435 box-shadow: none;
465 436 }
466 437
467 -.mxchat-chatbot .toolbar-btn svg {
438 +#mxchat-chatbot .toolbar-btn svg {
468 439 width: 100%;
469 440 height: 100%;
470 441 }
471 442
472 -.mxchat-chatbot .toolbar-btn:hover {
443 +#mxchat-chatbot .toolbar-btn:hover {
473 444 opacity: 1;
474 445 background: none;
475 446 border: none;
476 447 box-shadow: none;
@@ -475,9 +446,9 @@
475 446 border: none;
476 447 box-shadow: none;
477 448 }
478 449
479 -.mxchat-chatbot .toolbar-btn:disabled {
450 +#mxchat-chatbot .toolbar-btn:disabled {
480 451 opacity: 0.3;
481 452 cursor: not-allowed;
482 453 background: none;
483 454 border: none;
@@ -487,9 +458,9 @@
487 458 background-color: rgba(120, 115, 245, 0.2);
488 459 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.4);
489 460 }
490 461
491 -.active-perplexity-container {
462 +#active-perplexity-container {
492 463 display: flex;
493 464 align-items: center;
494 465 margin-left: 8px;
495 466 font-size: 12px;
@@ -494,13 +465,13 @@
494 465 margin-left: 8px;
495 466 font-size: 12px;
496 467 }
497 468
498 -.perplexity-search-btn {
469 +#perplexity-search-btn {
499 470 display: none;
500 471 }
501 472
502 -.perplexity-search-btn.active {
473 +#perplexity-search-btn.active {
503 474 opacity: 1;
504 475 }
505 476
506 477 /* ========================================
@@ -505,9 +476,9 @@
505 476
506 477 /* ========================================
507 478 POPULAR QUESTIONS SYSTEM
508 479 ======================================== */
509 -.mxchat-popular-questions {
480 +#mxchat-popular-questions {
510 481 padding: 0 10px 10px;
511 482 transition: all 0.3s ease;
512 483 margin-bottom: 12px;
513 484 position: relative;
@@ -533,14 +504,14 @@
533 504 transition: all 0.3s ease;
534 505 gap: 8px;
535 506 }
536 507
537 -.mxchat-popular-questions.collapsed {
508 +#mxchat-popular-questions.collapsed {
538 509 padding: 0;
539 510 margin: 0;
540 511 }
541 512
542 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
513 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
543 514 flex-direction: row;
544 515 justify-content: center;
545 516 align-items: center;
546 517 padding: 0;
@@ -547,18 +518,18 @@
547 518 max-height: 40px;
548 519 overflow: visible;
549 520 }
550 521
551 -.mxchat-popular-questions.collapsed .mxchat-popular-question {
522 +#mxchat-popular-questions.collapsed .mxchat-popular-question {
552 523 display: none;
553 524 }
554 525
555 -.mxchat-popular-questions.collapsed .questions-collapse-btn {
526 +#mxchat-popular-questions.collapsed .questions-collapse-btn {
556 527 display: none;
557 528 }
558 529
559 530 /* MISSING - These need to be inside the container context: */
560 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
531 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
561 532 background: none;
562 533 border: none;
563 534 padding: 0;
564 535 margin: 0;
@@ -573,9 +544,9 @@
573 544 box-shadow: none;
574 545 outline: none;
575 546 }
576 547
577 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
548 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
578 549 background: none;
579 550 border: none;
580 551 padding: 0;
581 552 margin: 0px; /* Center and add bottom margin */
@@ -608,9 +579,8 @@
608 579 .questions-toggle-btn svg,
609 580 .questions-collapse-btn svg {
610 581 transition: transform 0.2s ease;
611 582 fill: none;
612 - stroke: #212121;
613 583 width: 25px;
614 584 height: 25px;
615 585 }
616 586
@@ -618,13 +588,13 @@
618 588 .questions-collapse-btn:hover svg {
619 589 opacity: 0.7;
620 590 }
621 591
622 -.mxchat-popular-questions.collapsed .questions-toggle-btn {
592 +#mxchat-popular-questions.collapsed .questions-toggle-btn {
623 593 display: flex;
624 594 }
625 595
626 -.mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
596 +#mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
627 597 display: flex;
628 598 align-self: center;
629 599 order: -1;
630 600 }
@@ -691,41 +661,38 @@
691 661 opacity: 0;
692 662 pointer-events: none;
693 663 }
694 664
695 -.mxchat-chatbot{
665 +#mxchat-chatbot {
696 666 background: #fff;
697 667 overflow: hidden;
698 668 position: relative;
699 669 display: flex;
700 670 flex-direction: column;
671 + height: 500px;
672 + box-sizing: border-box;
701 673 flex-grow: 1;
702 - min-height: 0; /* Allow flex shrinking */
703 - box-sizing: border-box;
704 674 }
705 675
706 -.chat-container {
676 +#chat-container {
707 677 display: flex;
708 678 flex-direction: column;
709 - flex-grow: 1;
710 - min-height: 0; /* Critical for flex overflow scrolling */
711 679 height: 100%;
712 680 }
713 681
714 -.chat-box {
682 +#chat-box {
715 683 flex-grow: 1;
716 684 overflow-y: auto;
717 685 padding: 10px;
718 686 margin-bottom: 0;
719 687 font-size: 1rem;
720 - min-height: 0; /* Critical for flex overflow scrolling */
721 688 }
722 689
723 -.chat-box::-webkit-scrollbar {
690 +#chat-box::-webkit-scrollbar {
724 691 width: 5px;
725 692 }
726 693
727 -.chat-box::-webkit-scrollbar-thumb {
694 +#chat-box::-webkit-scrollbar-thumb {
728 695 background-color: #212121;
729 696 border-radius: 20px;
730 697 }
731 698
@@ -754,9 +721,9 @@
754 721 .user-message p {
755 722 margin: 0;
756 723 }
757 724
758 -.mxchat-chatbot .chat-container .chat-box .bot-message {
725 +#mxchat-chatbot #chat-container #chat-box .bot-message {
759 726 float: left;
760 727 clear: both;
761 728 border: 1px solid rgba(226, 232, 255, 0.2);
762 729 border-radius: 0 18px 18px;
@@ -764,9 +731,9 @@
764 731 color: #fff;
765 732 overflow-x: hidden;
766 733 }
767 734
768 -.mxchat-chatbot .chat-container .chat-box .agent-message {
735 +#mxchat-chatbot #chat-container #chat-box .agent-message {
769 736 text-align: left;
770 737 float: left;
771 738 clear: both;
772 739 border: 1px solid rgba(226, 232, 255, 0.2);
@@ -819,9 +786,9 @@
819 786 font-size: 14px;
820 787 text-align: center;
821 788 }
822 789
823 -.mxchat-chatbot-wrapper {
790 +#mxchat-chatbot-wrapper {
824 791 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
825 792 border-radius: 10px;
826 793 display: flex;
827 794 flex-direction: column;
@@ -826,16 +793,14 @@
826 793 display: flex;
827 794 flex-direction: column;
828 795 height: 100%;
829 796 width: 100%;
830 - min-height: 0; /* Allow flex shrinking */
831 - overflow: hidden;
832 797 }
833 798
834 799 /* ========================================
835 800 INPUT & CONTROLS
836 801 ======================================== */
837 -.mxchat-chatbot .chat-container .input-container {
802 +#mxchat-chatbot #chat-container #input-container {
838 803 position: relative;
839 804 display: flex;
840 805 align-items: center;
841 806 padding-right: 40px;
@@ -843,9 +808,9 @@
843 808 border-radius: 10px;
844 809 margin: 0 10px 10px;
845 810 }
846 811
847 -.mxchat-chatbot .chat-container .input-container .chat-input {
812 +#mxchat-chatbot #chat-container #input-container #chat-input {
848 813 flex-grow: 1;
849 814 color: #212121;
850 815 line-height: 24px;
851 816 background: transparent;
@@ -863,32 +828,32 @@
863 828 outline: none;
864 829 border-radius: 10px;
865 830 }
866 831
867 -.chat-input::-webkit-scrollbar {
832 +#chat-input::-webkit-scrollbar {
868 833 width: 8px;
869 834 }
870 835
871 -.chat-input::-webkit-scrollbar-track {
836 +#chat-input::-webkit-scrollbar-track {
872 837 background: #f1f1f1;
873 838 border-radius: 4px;
874 839 }
875 840
876 -.chat-input::-webkit-scrollbar-thumb {
841 +#chat-input::-webkit-scrollbar-thumb {
877 842 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
878 843 border-radius: 4px;
879 844 }
880 845
881 -.chat-input::-webkit-scrollbar-thumb:hover {
846 +#chat-input::-webkit-scrollbar-thumb:hover {
882 847 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
883 848 }
884 849
885 -.chat-input {
850 +#chat-input {
886 851 scrollbar-width: thin;
887 852 scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
888 853 }
889 854
890 -.mxchat-chatbot .chat-container .input-container .send-button {
855 +#mxchat-chatbot #chat-container #input-container #send-button {
891 856 position: absolute;
892 857 right: 10px;
893 858 top: 50%;
894 859 transform: translateY(-50%);
@@ -908,32 +873,25 @@
908 873 cursor: pointer;
909 874 font-weight: 700;
910 875 }
911 876
912 -.send-button svg {
877 +#send-button svg {
913 878 width: 25px;
914 879 height: 25px;
915 880 pointer-events: none;
916 881 }
917 882
918 -.send-button:hover {
883 +#send-button:hover {
919 884 opacity: 0.8;
920 885 }
921 886
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 {
887 +#mxchat-chatbot .spinner {
930 888 animation: rotate 2s linear infinite;
931 889 width: 20px;
932 890 height: 20px;
933 891 }
934 892
935 -.mxchat-chatbot .spinner circle {
893 +#mxchat-chatbot .spinner circle {
936 894 stroke: #212121;
937 895 stroke-linecap: round;
938 896 animation: dash 1.5s ease-in-out infinite;
939 897 }
@@ -965,11 +923,9 @@
965 923 .chatbot-title-container {
966 924 display: flex;
967 925 align-items: center;
968 926 justify-content: space-between;
969 - gap: 10px;
970 - flex: 1 1 auto;
971 - min-width: 0;
927 + width: 100%;
972 928 }
973 929
974 930 .chatbot-title-group {
975 931 display: flex;
@@ -978,36 +934,25 @@
978 934 }
979 935
980 936 .chat-mode-indicator {
981 937 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);
938 + margin-right: 8px;
939 + padding: 4px 8px;
940 + border-radius: 12px;
941 + background: rgba(255, 255, 255, 0.2);
987 942 color: #ffffff;
988 - display: inline-flex;
989 - align-items: center;
990 - height: 22px;
991 - white-space: nowrap;
992 - flex: 0 0 auto;
993 943 }
994 944
995 -.floating-chatbot {
945 +#floating-chatbot {
996 946 position: fixed;
997 947 bottom: 25px;
998 948 right: 25px;
999 949 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 */
950 + height: 625px;
1005 951 box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
1006 952 border-radius: 20px;
1007 953 overflow: hidden;
1008 954 display: flex;
1009 - flex-direction: column;
1010 955 z-index: 100000;
1011 956 transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
1012 957 transform: translateY(20%);
1013 958 opacity: 0;
@@ -1013,42 +958,27 @@
1013 958 opacity: 0;
1014 959 pointer-events: none;
1015 960 }
1016 961
1017 -.floating-chatbot.visible {
962 +#floating-chatbot.visible {
1018 963 transform: translateY(0);
1019 964 opacity: 1;
1020 965 pointer-events: auto;
1021 966 }
1022 967
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,
968 +#floating-chatbot-button.hidden,
1039 969 .exit-chat span {
1040 970 display: none !important;
1041 971 }
1042 972
1043 -.chatbot-top-bar button.exit-chat:hover {
1044 - background: rgba(255, 255, 255, 0.12);
973 +.chatbot-top-bar#exit-chat-button button.exit-chat:hover {
974 + background: none;
1045 975 }
1046 976 .visible {
1047 977 display: flex;
1048 978 }
1049 979
1050 -.floating-chatbot-button {
980 +#floating-chatbot-button {
1051 981 transition: opacity 1s ease-in-out;
1052 982 font-size: 1.25rem;
1053 983 position: fixed;
1054 984 bottom: 30px;
@@ -1066,14 +996,9 @@
1066 996 z-index: 100000;
1067 997 display: flex;
1068 998 }
1069 999
1070 -.floating-chatbot-button:focus-visible {
1071 - outline: 3px solid #7873f5;
1072 - outline-offset: 3px;
1073 -}
1074 -
1075 -.floating-chatbot-button img {
1000 +#floating-chatbot-button img {
1076 1001 max-width: 100%;
1077 1002 max-height: 100%;
1078 1003 width: auto;
1079 1004 height: auto;
@@ -1082,41 +1007,34 @@
1082 1007 .chatbot-top-bar {
1083 1008 background: #212121;
1084 1009 }
1085 1010
1086 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1011 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1087 1012 background: transparent;
1088 1013 border: none;
1089 1014 opacity: 0.8;
1090 1015 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;
1016 + min-width: 20px;
1097 1017 }
1098 1018
1099 -.mxchat-chatbot-wrapper .chatbot-top-bar {
1019 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1100 1020 cursor: pointer;
1101 1021 color: #fff;
1102 - padding: 8px 12px;
1103 - min-height: 48px;
1104 - gap: 8px;
1022 + padding: 10px;
1105 1023 border-top-left-radius: 10px;
1106 1024 border-top-right-radius: 10px;
1107 1025 display: flex;
1108 1026 justify-content: space-between;
1109 - align-items: center;
1027 + align-items: start;
1110 1028 }
1111 1029
1112 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1113 - font-size: 15px;
1114 - line-height: 1.2;
1115 - padding: 0;
1030 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1031 + font-size: 16px;
1032 + line-height: 25px;
1033 + padding: 10px;
1116 1034 margin: 0;
1117 1035 font-family: 'Plus Jakarta Sans', sans-serif;
1118 - font-weight: 600;
1036 + font-weight: bold;
1119 1037 }
1120 1038
1121 1039 .exit-chat {
1122 1040 border: none;
@@ -1121,92 +1039,56 @@
1121 1039 .exit-chat {
1122 1040 border: none;
1123 1041 background: transparent;
1124 1042 cursor: pointer;
1125 - display: inline-flex;
1043 + display: flex;
1126 1044 align-items: center;
1127 1045 justify-content: center;
1128 - padding: 0;
1046 + padding: 5px;
1129 1047 margin-left: auto;
1130 1048 opacity: 0.8;
1131 - width: 32px;
1132 - height: 32px;
1133 - min-width: 32px;
1134 - flex: 0 0 auto;
1049 + min-width: 20px;
1135 1050 }
1136 1051
1137 1052 .exit-chat svg {
1138 - width: 18px;
1139 - height: 18px;
1140 - fill: none;
1141 - stroke: currentColor;
1053 + fill: white;
1054 + width: 24px;
1055 + height: 24px;
1056 + transform: rotate(270deg);
1142 1057 }
1143 1058
1144 -.mxchat-chatbot-wrapper .chatbot-footer {
1059 +#mxchat-chatbot-wrapper .chatbot-footer {
1145 1060 text-align: center;
1146 1061 padding-bottom: 10px;
1147 1062 font-size: 0.85em;
1148 1063 }
1149 1064
1150 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1065 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1151 1066 font-size: 12px;
1152 1067 margin: 0;
1153 1068 color: #71717a;
1154 1069 }
1155 1070
1156 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1071 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1157 1072 color: #0073aa;
1158 1073 text-decoration: underline;
1159 1074 font-size: 12px;
1160 1075 }
1161 1076
1162 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1077 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1163 1078 text-decoration: none;
1164 1079 color: inherit;
1165 1080 font-weight: 700;
1166 1081 }
1167 1082
1168 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1083 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1169 1084 text-decoration: underline;
1170 1085 }
1171 1086
1172 1087 /* ========================================
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 1088 THINKING DOTS ANIMATION
1207 1089 ======================================== */
1208 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1090 +#chat-box .bot-message.temporary-message .thinking-dots-container {
1209 1091 display: flex;
1210 1092 justify-content: center;
1211 1093 align-items: center;
1212 1094 overflow: hidden;
@@ -1215,9 +1097,9 @@
1215 1097 z-index: 1;
1216 1098 flex-shrink: 0;
1217 1099 }
1218 1100
1219 -.chat-box .bot-message.temporary-message .thinking-dots {
1101 +#chat-box .bot-message.temporary-message .thinking-dots {
1220 1102 display: flex;
1221 1103 justify-content: center;
1222 1104 align-items: center;
1223 1105 height: 90%;
@@ -1224,9 +1106,9 @@
1224 1106 gap: 5px;
1225 1107 flex-shrink: 0;
1226 1108 }
1227 1109
1228 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1110 +#chat-box .bot-message.temporary-message .thinking-dots .dot {
1229 1111 height: 6px;
1230 1112 width: 6px;
1231 1113 margin: 0 3px;
1232 1114 background-color: #fff;
@@ -1231,21 +1113,21 @@
1231 1113 margin: 0 3px;
1232 1114 background-color: #fff;
1233 1115 border-radius: 50%;
1234 1116 display: inline-block;
1235 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1117 + animation: bounce 1.4s ease-in-out infinite both;
1236 1118 vertical-align: middle;
1237 1119 }
1238 1120
1239 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1121 +#chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1240 1122 animation-delay: -0.32s;
1241 1123 }
1242 1124
1243 -.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) {
1244 1126 animation-delay: -0.16s;
1245 1127 }
1246 1128
1247 -@keyframes mxchat-dot-bounce {
1129 +@keyframes bounce {
1248 1130 0%, 100%, 80% {
1249 1131 transform: scale(1);
1250 1132 }
1251 1133 40% {
@@ -1255,9 +1137,9 @@
1255 1137
1256 1138 /* ========================================
1257 1139 PRE-CHAT MESSAGE
1258 1140 ======================================== */
1259 -.pre-chat-message {
1141 +#pre-chat-message {
1260 1142 position: fixed;
1261 1143 bottom: 85px;
1262 1144 right: 30px;
1263 1145 background-color: #fff;
@@ -1272,9 +1154,9 @@
1272 1154 display: none;
1273 1155 margin-bottom: 10px;
1274 1156 }
1275 1157
1276 -.pre-chat-message .close-pre-chat-message {
1158 +#pre-chat-message .close-pre-chat-message {
1277 1159 position: absolute;
1278 1160 top: -6px;
1279 1161 right: -6px;
1280 1162 background-color: #ccc;
@@ -1294,60 +1176,8 @@
1294 1176 line-height: 1;
1295 1177 }
1296 1178
1297 1179 /* ========================================
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 1180 MOBILE RESPONSIVE
1351 1181 ======================================== */
1352 1182 @media screen and (max-width: 782px) {
1353 1183 .mxchat-search-results {
@@ -1379,14 +1209,14 @@
1379 1209 width: 22px;
1380 1210 height: 22px;
1381 1211 }
1382 1212
1383 - .pre-chat-message {
1213 + #pre-chat-message {
1384 1214 bottom: 70px;
1385 1215 right: 15px;
1386 1216 }
1387 1217
1388 - .chat-input {
1218 + #chat-input {
1389 1219 width: calc(100% - 70px);
1390 1220 }
1391 1221
1392 1222 .bot-message,
@@ -1394,41 +1224,30 @@
1394 1224 padding: 10px;
1395 1225 max-width: 95%;
1396 1226 }
1397 1227
1398 - .floating-chatbot-button {
1228 + #floating-chatbot-button {
1399 1229 bottom: 15px;
1400 1230 right: 10px;
1401 1231 }
1402 1232
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);
1233 + #floating-chatbot {
1234 + width: 100vw;
1235 + height: calc(var(--vh, 1vh) * 100);
1411 1236 margin: 0;
1412 1237 padding: 0;
1413 1238 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);
1239 + bottom: 0;
1240 + top: 0;
1241 + left: 0;
1242 + right: 0;
1243 + border-radius: 0;
1420 1244 }
1421 1245
1422 - .floating-chatbot .mxchat-chatbot-wrapper {
1423 - border-radius: 16px;
1424 - overflow: hidden;
1246 + #mxchat-chatbot-wrapper .chatbot-top-bar {
1247 + border-top-left-radius: 0;
1248 + border-top-right-radius: 0;
1425 1249 }
1426 -
1427 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1428 - border-top-left-radius: 16px;
1429 - border-top-right-radius: 16px;
1430 - }
1431 1250 }
1432 1251
1433 1252
1434 1253
@@ -1572,9 +1391,9 @@
1572 1391 }
1573 1392
1574 1393
1575 1394 /* This selector with more context - showing the collapse button in certain states */
1576 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1395 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1577 1396 background: none;
1578 1397 border: none;
1579 1398 padding: 0;
1580 1399 margin: 0px;
@@ -1592,15 +1411,15 @@
1592 1411 order: -1; /* THIS IS MISSING */
1593 1412 }
1594 1413
1595 1414 /* ALL hover states - these are MISSING from your new CSS */
1596 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1415 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1597 1416 background: none;
1598 1417 border: none;
1599 1418 box-shadow: none;
1600 1419 }
1601 1420
1602 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1421 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1603 1422 outline: none;
1604 1423 background: none;
1605 1424 border: none;
1606 1425 box-shadow: none;
@@ -1605,9 +1424,9 @@
1605 1424 border: none;
1606 1425 box-shadow: none;
1607 1426 }
1608 1427
1609 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1428 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1610 1429 background: none;
1611 1430 border: none;
1612 1431 box-shadow: none;
1613 1432 }
@@ -1612,361 +1431,24 @@
1612 1431 box-shadow: none;
1613 1432 }
1614 1433
1615 1434 /* SVG styles - these are MISSING */
1616 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1435 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1617 1436 fill: none;
1618 - stroke: #212121;
1619 1437 transition: transform 0.2s ease;
1620 1438 width: 25px;
1621 1439 height: 25px;
1622 1440 }
1623 1441
1624 -.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 {
1625 1443 opacity: 0.7;
1626 1444 }
1627 1445
1628 1446 /* 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 {
1447 +#mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1630 1448 display: flex;
1631 1449 }
1632 1450
1633 1451 /* Hide when actually collapsed */
1634 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1452 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1635 1453 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 1454 }