PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.5.7
MxChat – AI Chatbot & Content Generation for WordPress v2.5.7
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 -688 3.2.122.5.7 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,97 +828,33 @@
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 -/* Chat input character counter + soft limit feedback (plan 7091a2).
891 - Language-neutral: numbers + color only. Hidden until ~80% of the cap, then
892 - fades in and ramps neutral -> amber -> red. The input border mirrors the same
893 - cue, and an over-limit keystroke/paste triggers a brief shake so the hard
894 - maxlength cap (plan a3fae2) is never a silent "input jumps back". */
895 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
855 +#mxchat-chatbot #chat-container #input-container #send-button {
896 856 position: absolute;
897 - bottom: 3px;
898 - right: 44px; /* clear the absolutely-positioned send button */
899 - font-size: 11px;
900 - line-height: 1;
901 - font-variant-numeric: tabular-nums;
902 - color: #9aa0a6;
903 - background: rgba(255, 255, 255, 0.85);
904 - padding: 1px 5px;
905 - border-radius: 8px;
906 - pointer-events: none;
907 - opacity: 0;
908 - visibility: hidden;
909 - transition: opacity 0.18s ease, color 0.18s ease;
910 - z-index: 2;
911 -}
912 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-visible {
913 - opacity: 1;
914 - visibility: visible;
915 -}
916 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-warn {
917 - color: #d98300; /* amber: approaching the cap */
918 -}
919 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-full {
920 - color: #d93025; /* red: at the cap */
921 - font-weight: 600;
922 -}
923 -/* RTL widgets: counter on the opposite side. */
924 -.mxchat-chatbot[dir="rtl"] .chat-container .input-container .mxchat-char-counter,
925 -[dir="rtl"] .mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
926 - right: auto;
927 - left: 44px;
928 -}
929 -/* Input border affordance mirrors the counter color. */
930 -.mxchat-chatbot .chat-container .input-container.mxchat-input-near-limit {
931 - border-color: #f0b048;
932 -}
933 -.mxchat-chatbot .chat-container .input-container.mxchat-input-at-limit {
934 - border-color: #e5675c;
935 -}
936 -/* Soft "you hit the edge" bump when an over-limit keystroke/paste is rejected. */
937 -.mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
938 - animation: mxchat-input-bump 0.2s ease;
939 -}
940 -@keyframes mxchat-input-bump {
941 - 0% { transform: translateX(0); }
942 - 25% { transform: translateX(-3px); }
943 - 50% { transform: translateX(3px); }
944 - 75% { transform: translateX(-2px); }
945 - 100% { transform: translateX(0); }
946 -}
947 -/* Respect reduced-motion: drop the shake; the red border/counter still signals the cap. */
948 -@media (prefers-reduced-motion: reduce) {
949 - .mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
950 - animation: none;
951 - }
952 -}
953 -
954 -.mxchat-chatbot .chat-container .input-container .send-button {
955 - position: absolute;
956 857 right: 10px;
957 858 top: 50%;
958 859 transform: translateY(-50%);
959 860 border: none;
@@ -972,32 +873,25 @@
972 873 cursor: pointer;
973 874 font-weight: 700;
974 875 }
975 876
976 -.send-button svg {
877 +#send-button svg {
977 878 width: 25px;
978 879 height: 25px;
979 880 pointer-events: none;
980 881 }
981 882
982 -.send-button:hover {
883 +#send-button:hover {
983 884 opacity: 0.8;
984 885 }
985 886
986 -/* Stop state while a response is streaming: the send button becomes a Stop
987 - control in place — same chrome and position, swapped glyph. Themeable hook;
988 - the glyph's size/color are mirrored from the send icon at runtime. */
989 -.mxchat-chatbot .chat-container .input-container .send-button.mxchat-stop-mode {
990 - cursor: pointer;
991 -}
992 -
993 -.mxchat-chatbot .spinner {
887 +#mxchat-chatbot .spinner {
994 888 animation: rotate 2s linear infinite;
995 889 width: 20px;
996 890 height: 20px;
997 891 }
998 892
999 -.mxchat-chatbot .spinner circle {
893 +#mxchat-chatbot .spinner circle {
1000 894 stroke: #212121;
1001 895 stroke-linecap: round;
1002 896 animation: dash 1.5s ease-in-out infinite;
1003 897 }
@@ -1029,11 +923,9 @@
1029 923 .chatbot-title-container {
1030 924 display: flex;
1031 925 align-items: center;
1032 926 justify-content: space-between;
1033 - gap: 10px;
1034 - flex: 1 1 auto;
1035 - min-width: 0;
927 + width: 100%;
1036 928 }
1037 929
1038 930 .chatbot-title-group {
1039 931 display: flex;
@@ -1042,36 +934,25 @@
1042 934 }
1043 935
1044 936 .chat-mode-indicator {
1045 937 font-size: 12px;
1046 - line-height: 1;
1047 - margin-right: 0;
1048 - padding: 4px 9px;
1049 - border-radius: 999px;
1050 - 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);
1051 942 color: #ffffff;
1052 - display: inline-flex;
1053 - align-items: center;
1054 - height: 22px;
1055 - white-space: nowrap;
1056 - flex: 0 0 auto;
1057 943 }
1058 944
1059 -.floating-chatbot {
945 +#floating-chatbot {
1060 946 position: fixed;
1061 947 bottom: 25px;
1062 948 right: 25px;
1063 949 width: 375px;
1064 - /* Use viewport-aware height with fallbacks */
1065 - height: min(625px, calc(100vh - 50px)); /* 50px = 25px top + 25px bottom margin */
1066 - height: min(625px, calc(100dvh - 50px)); /* Dynamic viewport height for mobile browsers */
1067 - max-height: calc(100vh - 50px);
1068 - max-height: calc(100dvh - 50px); /* Fallback for browsers supporting dvh */
950 + height: 625px;
1069 951 box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
1070 952 border-radius: 20px;
1071 953 overflow: hidden;
1072 954 display: flex;
1073 - flex-direction: column;
1074 955 z-index: 100000;
1075 956 transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
1076 957 transform: translateY(20%);
1077 958 opacity: 0;
@@ -1077,42 +958,27 @@
1077 958 opacity: 0;
1078 959 pointer-events: none;
1079 960 }
1080 961
1081 -.floating-chatbot.visible {
962 +#floating-chatbot.visible {
1082 963 transform: translateY(0);
1083 964 opacity: 1;
1084 965 pointer-events: auto;
1085 966 }
1086 967
1087 -/* ========================================
1088 - EMBEDDED CHATBOT (Shortcode)
1089 - ======================================== */
1090 -/* Embedded chatbots are NOT inside .floating-chatbot wrapper */
1091 -/* Apply fixed height like floating widget so quick questions overlay properly */
1092 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) {
1093 - height: 500px;
1094 - max-height: 500px;
1095 -}
1096 -
1097 -/* Hide the minimize/exit button for embedded chatbots - it doesn't make sense */
1098 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) .exit-chat {
1099 - display: none !important;
1100 -}
1101 -
1102 -.floating-chatbot-button.hidden,
968 +#floating-chatbot-button.hidden,
1103 969 .exit-chat span {
1104 970 display: none !important;
1105 971 }
1106 972
1107 -.chatbot-top-bar button.exit-chat:hover {
1108 - background: rgba(255, 255, 255, 0.12);
973 +.chatbot-top-bar#exit-chat-button button.exit-chat:hover {
974 + background: none;
1109 975 }
1110 976 .visible {
1111 977 display: flex;
1112 978 }
1113 979
1114 -.floating-chatbot-button {
980 +#floating-chatbot-button {
1115 981 transition: opacity 1s ease-in-out;
1116 982 font-size: 1.25rem;
1117 983 position: fixed;
1118 984 bottom: 30px;
@@ -1130,14 +996,9 @@
1130 996 z-index: 100000;
1131 997 display: flex;
1132 998 }
1133 999
1134 -.floating-chatbot-button:focus-visible {
1135 - outline: 3px solid #7873f5;
1136 - outline-offset: 3px;
1137 -}
1138 -
1139 -.floating-chatbot-button img {
1000 +#floating-chatbot-button img {
1140 1001 max-width: 100%;
1141 1002 max-height: 100%;
1142 1003 width: auto;
1143 1004 height: auto;
@@ -1146,41 +1007,34 @@
1146 1007 .chatbot-top-bar {
1147 1008 background: #212121;
1148 1009 }
1149 1010
1150 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1011 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1151 1012 background: transparent;
1152 1013 border: none;
1153 1014 opacity: 0.8;
1154 1015 padding: 0;
1155 - width: 32px;
1156 - height: 32px;
1157 - min-width: 32px;
1158 - flex: 0 0 auto;
1159 - border-radius: 6px;
1160 - transition: opacity 0.15s ease, background 0.15s ease;
1016 + min-width: 20px;
1161 1017 }
1162 1018
1163 -.mxchat-chatbot-wrapper .chatbot-top-bar {
1019 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1164 1020 cursor: pointer;
1165 1021 color: #fff;
1166 - padding: 8px 12px;
1167 - min-height: 48px;
1168 - gap: 8px;
1022 + padding: 10px;
1169 1023 border-top-left-radius: 10px;
1170 1024 border-top-right-radius: 10px;
1171 1025 display: flex;
1172 1026 justify-content: space-between;
1173 - align-items: center;
1027 + align-items: start;
1174 1028 }
1175 1029
1176 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1177 - font-size: 15px;
1178 - line-height: 1.2;
1179 - padding: 0;
1030 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1031 + font-size: 16px;
1032 + line-height: 25px;
1033 + padding: 10px;
1180 1034 margin: 0;
1181 1035 font-family: 'Plus Jakarta Sans', sans-serif;
1182 - font-weight: 600;
1036 + font-weight: bold;
1183 1037 }
1184 1038
1185 1039 .exit-chat {
1186 1040 border: none;
@@ -1185,92 +1039,56 @@
1185 1039 .exit-chat {
1186 1040 border: none;
1187 1041 background: transparent;
1188 1042 cursor: pointer;
1189 - display: inline-flex;
1043 + display: flex;
1190 1044 align-items: center;
1191 1045 justify-content: center;
1192 - padding: 0;
1046 + padding: 5px;
1193 1047 margin-left: auto;
1194 1048 opacity: 0.8;
1195 - width: 32px;
1196 - height: 32px;
1197 - min-width: 32px;
1198 - flex: 0 0 auto;
1049 + min-width: 20px;
1199 1050 }
1200 1051
1201 1052 .exit-chat svg {
1202 - width: 18px;
1203 - height: 18px;
1204 - fill: none;
1205 - stroke: currentColor;
1053 + fill: white;
1054 + width: 24px;
1055 + height: 24px;
1056 + transform: rotate(270deg);
1206 1057 }
1207 1058
1208 -.mxchat-chatbot-wrapper .chatbot-footer {
1059 +#mxchat-chatbot-wrapper .chatbot-footer {
1209 1060 text-align: center;
1210 1061 padding-bottom: 10px;
1211 1062 font-size: 0.85em;
1212 1063 }
1213 1064
1214 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1065 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1215 1066 font-size: 12px;
1216 1067 margin: 0;
1217 1068 color: #71717a;
1218 1069 }
1219 1070
1220 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1071 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1221 1072 color: #0073aa;
1222 1073 text-decoration: underline;
1223 1074 font-size: 12px;
1224 1075 }
1225 1076
1226 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1077 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1227 1078 text-decoration: none;
1228 1079 color: inherit;
1229 1080 font-weight: 700;
1230 1081 }
1231 1082
1232 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1083 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1233 1084 text-decoration: underline;
1234 1085 }
1235 1086
1236 1087 /* ========================================
1237 - INIT LOADER (shown while chat initializes)
1238 - ======================================== */
1239 -.mxchat-init-loader {
1240 - display: flex;
1241 - align-items: center;
1242 - justify-content: center;
1243 - flex-grow: 1;
1244 - min-height: 0;
1245 - animation: fadeIn 0.3s ease-in-out;
1246 -}
1247 -
1248 -.mxchat-init-loader-dots {
1249 - display: flex;
1250 - gap: 8px;
1251 -}
1252 -
1253 -.mxchat-init-loader-dots .dot {
1254 - width: 8px;
1255 - height: 8px;
1256 - border-radius: 50%;
1257 - background-color: #888;
1258 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1259 -}
1260 -
1261 -.mxchat-init-loader-dots .dot:nth-child(1) {
1262 - animation-delay: -0.32s;
1263 -}
1264 -
1265 -.mxchat-init-loader-dots .dot:nth-child(2) {
1266 - animation-delay: -0.16s;
1267 -}
1268 -
1269 -/* ========================================
1270 1088 THINKING DOTS ANIMATION
1271 1089 ======================================== */
1272 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1090 +#chat-box .bot-message.temporary-message .thinking-dots-container {
1273 1091 display: flex;
1274 1092 justify-content: center;
1275 1093 align-items: center;
1276 1094 overflow: hidden;
@@ -1279,9 +1097,9 @@
1279 1097 z-index: 1;
1280 1098 flex-shrink: 0;
1281 1099 }
1282 1100
1283 -.chat-box .bot-message.temporary-message .thinking-dots {
1101 +#chat-box .bot-message.temporary-message .thinking-dots {
1284 1102 display: flex;
1285 1103 justify-content: center;
1286 1104 align-items: center;
1287 1105 height: 90%;
@@ -1288,9 +1106,9 @@
1288 1106 gap: 5px;
1289 1107 flex-shrink: 0;
1290 1108 }
1291 1109
1292 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1110 +#chat-box .bot-message.temporary-message .thinking-dots .dot {
1293 1111 height: 6px;
1294 1112 width: 6px;
1295 1113 margin: 0 3px;
1296 1114 background-color: #fff;
@@ -1295,21 +1113,21 @@
1295 1113 margin: 0 3px;
1296 1114 background-color: #fff;
1297 1115 border-radius: 50%;
1298 1116 display: inline-block;
1299 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1117 + animation: bounce 1.4s ease-in-out infinite both;
1300 1118 vertical-align: middle;
1301 1119 }
1302 1120
1303 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1121 +#chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1304 1122 animation-delay: -0.32s;
1305 1123 }
1306 1124
1307 -.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) {
1308 1126 animation-delay: -0.16s;
1309 1127 }
1310 1128
1311 -@keyframes mxchat-dot-bounce {
1129 +@keyframes bounce {
1312 1130 0%, 100%, 80% {
1313 1131 transform: scale(1);
1314 1132 }
1315 1133 40% {
@@ -1319,9 +1137,9 @@
1319 1137
1320 1138 /* ========================================
1321 1139 PRE-CHAT MESSAGE
1322 1140 ======================================== */
1323 -.pre-chat-message {
1141 +#pre-chat-message {
1324 1142 position: fixed;
1325 1143 bottom: 85px;
1326 1144 right: 30px;
1327 1145 background-color: #fff;
@@ -1336,9 +1154,9 @@
1336 1154 display: none;
1337 1155 margin-bottom: 10px;
1338 1156 }
1339 1157
1340 -.pre-chat-message .close-pre-chat-message {
1158 +#pre-chat-message .close-pre-chat-message {
1341 1159 position: absolute;
1342 1160 top: -6px;
1343 1161 right: -6px;
1344 1162 background-color: #ccc;
@@ -1358,60 +1176,8 @@
1358 1176 line-height: 1;
1359 1177 }
1360 1178
1361 1179 /* ========================================
1362 - VIEWPORT HEIGHT CONSTRAINTS
1363 - Handles bookmarks bar, browser zoom, and smaller screens
1364 - ======================================== */
1365 -@media screen and (max-height: 700px) {
1366 - .floating-chatbot {
1367 - bottom: 15px;
1368 - height: calc(100vh - 30px);
1369 - height: calc(100dvh - 30px);
1370 - max-height: calc(100vh - 30px);
1371 - max-height: calc(100dvh - 30px);
1372 - }
1373 -
1374 - .floating-chatbot-button {
1375 - bottom: 20px;
1376 - }
1377 -
1378 - .pre-chat-message {
1379 - bottom: 75px;
1380 - }
1381 -}
1382 -
1383 -@media screen and (max-height: 550px) {
1384 - .floating-chatbot {
1385 - bottom: 10px;
1386 - height: calc(100vh - 20px);
1387 - height: calc(100dvh - 20px);
1388 - max-height: calc(100vh - 20px);
1389 - max-height: calc(100dvh - 20px);
1390 - }
1391 -
1392 - /* Reduce padding in tight spaces */
1393 - .mxchat-popular-questions {
1394 - padding: 0 8px 5px;
1395 - margin-bottom: 8px;
1396 - }
1397 -
1398 - .mxchat-popular-question {
1399 - padding: 8px 12px;
1400 - font-size: 13px;
1401 - line-height: 20px;
1402 - }
1403 -
1404 - .mxchat-chatbot .chat-container .input-container {
1405 - margin: 0 8px 8px;
1406 - }
1407 -
1408 - .mxchat-chatbot-wrapper .chatbot-footer {
1409 - padding-bottom: 5px;
1410 - }
1411 -}
1412 -
1413 -/* ========================================
1414 1180 MOBILE RESPONSIVE
1415 1181 ======================================== */
1416 1182 @media screen and (max-width: 782px) {
1417 1183 .mxchat-search-results {
@@ -1443,14 +1209,14 @@
1443 1209 width: 22px;
1444 1210 height: 22px;
1445 1211 }
1446 1212
1447 - .pre-chat-message {
1213 + #pre-chat-message {
1448 1214 bottom: 70px;
1449 1215 right: 15px;
1450 1216 }
1451 1217
1452 - .chat-input {
1218 + #chat-input {
1453 1219 width: calc(100% - 70px);
1454 1220 }
1455 1221
1456 1222 .bot-message,
@@ -1458,41 +1224,30 @@
1458 1224 padding: 10px;
1459 1225 max-width: 95%;
1460 1226 }
1461 1227
1462 - .floating-chatbot-button {
1228 + #floating-chatbot-button {
1463 1229 bottom: 15px;
1464 1230 right: 10px;
1465 1231 }
1466 1232
1467 - .floating-chatbot {
1468 - width: calc(100vw - 16px);
1469 - /* Use multiple fallbacks for maximum browser compatibility */
1470 - height: calc(100vh - 16px); /* Fallback */
1471 - height: calc(var(--vh, 1vh) * 100 - 16px); /* JS-set custom property fallback */
1472 - height: calc(100dvh - 16px); /* Modern dynamic viewport height */
1473 - max-height: calc(100vh - 16px);
1474 - max-height: calc(100dvh - 16px);
1233 + #floating-chatbot {
1234 + width: 100vw;
1235 + height: calc(var(--vh, 1vh) * 100);
1475 1236 margin: 0;
1476 1237 padding: 0;
1477 1238 position: fixed;
1478 - bottom: 8px;
1479 - top: auto;
1480 - left: 8px;
1481 - right: 8px;
1482 - border-radius: 16px;
1483 - 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;
1484 1244 }
1485 1245
1486 - .floating-chatbot .mxchat-chatbot-wrapper {
1487 - border-radius: 16px;
1488 - overflow: hidden;
1246 + #mxchat-chatbot-wrapper .chatbot-top-bar {
1247 + border-top-left-radius: 0;
1248 + border-top-right-radius: 0;
1489 1249 }
1490 -
1491 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1492 - border-top-left-radius: 16px;
1493 - border-top-right-radius: 16px;
1494 - }
1495 1250 }
1496 1251
1497 1252
1498 1253
@@ -1636,9 +1391,9 @@
1636 1391 }
1637 1392
1638 1393
1639 1394 /* This selector with more context - showing the collapse button in certain states */
1640 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1395 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1641 1396 background: none;
1642 1397 border: none;
1643 1398 padding: 0;
1644 1399 margin: 0px;
@@ -1656,15 +1411,15 @@
1656 1411 order: -1; /* THIS IS MISSING */
1657 1412 }
1658 1413
1659 1414 /* ALL hover states - these are MISSING from your new CSS */
1660 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1415 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1661 1416 background: none;
1662 1417 border: none;
1663 1418 box-shadow: none;
1664 1419 }
1665 1420
1666 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1421 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1667 1422 outline: none;
1668 1423 background: none;
1669 1424 border: none;
1670 1425 box-shadow: none;
@@ -1669,9 +1424,9 @@
1669 1424 border: none;
1670 1425 box-shadow: none;
1671 1426 }
1672 1427
1673 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1428 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1674 1429 background: none;
1675 1430 border: none;
1676 1431 box-shadow: none;
1677 1432 }
@@ -1676,361 +1431,24 @@
1676 1431 box-shadow: none;
1677 1432 }
1678 1433
1679 1434 /* SVG styles - these are MISSING */
1680 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1435 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1681 1436 fill: none;
1682 - stroke: #212121;
1683 1437 transition: transform 0.2s ease;
1684 1438 width: 25px;
1685 1439 height: 25px;
1686 1440 }
1687 1441
1688 -.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 {
1689 1443 opacity: 0.7;
1690 1444 }
1691 1445
1692 1446 /* THE CRITICAL DISPLAY RULE - this shows when it's been collapsed before */
1693 -.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 {
1694 1448 display: flex;
1695 1449 }
1696 1450
1697 1451 /* Hide when actually collapsed */
1698 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1452 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1699 1453 display: none;
1700 -}
1701 -
1702 -/* ============================================================
1703 - Header overflow menu — 3-dot kebab + dropdown (v3.2.9 / v3.2.10)
1704 - Lives in .chatbot-top-bar to the LEFT of .exit-chat. Visual treatment
1705 - mirrors .exit-chat: transparent, white-on-dark, 0.8 opacity, 5px pad.
1706 -
1707 - v3.2.10: explicit `order` rules pin the visual order
1708 - title (0) | kebab (1) | down-arrow (2)
1709 - so the down-arrow is always the rightmost icon regardless of source
1710 - order or which sibling has margin-left:auto.
1711 - ============================================================ */
1712 -.mxchat-chatbot-wrapper .chatbot-top-bar > .chatbot-title-container { order: 0; }
1713 -.mxchat-chatbot-wrapper .chatbot-top-bar > .mxchat-header-menu-wrap { order: 1; }
1714 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat { order: 2; }
1715 -
1716 -.mxchat-header-menu-wrap {
1717 - position: relative;
1718 - display: inline-flex;
1719 - align-items: center;
1720 - margin-left: auto; /* push kebab + arrow group to the right edge */
1721 -}
1722 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap ~ .exit-chat,
1723 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap + .exit-chat {
1724 - margin-left: 4px; /* even, snug gap between kebab and close */
1725 -}
1726 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat:focus {
1727 - background: rgba(255, 255, 255, 0.12);
1728 - opacity: 1;
1729 - outline: none;
1730 -}
1731 -.mxchat-header-btn {
1732 - border: none;
1733 - background: transparent;
1734 - cursor: pointer;
1735 - display: inline-flex;
1736 - align-items: center;
1737 - justify-content: center;
1738 - padding: 0;
1739 - opacity: 0.8;
1740 - color: #fff;
1741 - transition: opacity 0.15s ease, background 0.15s ease;
1742 - border-radius: 6px;
1743 - line-height: 0;
1744 - width: 32px;
1745 - height: 32px;
1746 - min-width: 32px;
1747 - flex: 0 0 auto;
1748 -}
1749 -.mxchat-header-btn:hover,
1750 -.mxchat-header-btn:focus {
1751 - opacity: 1;
1752 - background: rgba(255, 255, 255, 0.12);
1753 - outline: none;
1754 -}
1755 -.mxchat-header-btn[aria-expanded="true"] {
1756 - opacity: 1;
1757 - background: rgba(255, 255, 255, 0.12);
1758 -}
1759 -.mxchat-menu-trigger svg {
1760 - width: 18px;
1761 - height: 18px;
1762 -}
1763 -
1764 -.mxchat-header-menu {
1765 - position: absolute;
1766 - top: calc(100% + 6px);
1767 - right: 0;
1768 - min-width: 220px;
1769 - background: var(--mxchat-menu-bg, #ffffff);
1770 - color: var(--mxchat-menu-fg, #1a1a1a);
1771 - border: 1px solid rgba(127, 127, 127, 0.20);
1772 - border-radius: 10px;
1773 - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.10);
1774 - padding: 4px;
1775 - z-index: 5;
1776 - opacity: 0;
1777 - transform: translateY(-4px);
1778 - pointer-events: none;
1779 - transition: opacity 0.12s ease, transform 0.12s ease;
1780 -}
1781 -.mxchat-header-menu.is-open {
1782 - opacity: 1;
1783 - transform: translateY(0);
1784 - pointer-events: auto;
1785 -}
1786 -.mxchat-header-menu[hidden] {
1787 - display: none;
1788 -}
1789 -.mxchat-menu-item {
1790 - display: flex;
1791 - align-items: center;
1792 - gap: 10px;
1793 - width: 100%;
1794 - padding: 8px 12px;
1795 - min-height: 40px;
1796 - border: none;
1797 - background: transparent;
1798 - color: inherit;
1799 - font-size: 14px;
1800 - line-height: 1.3;
1801 - text-align: left;
1802 - cursor: pointer;
1803 - border-radius: 6px;
1804 - transition: background 0.12s ease;
1805 - text-decoration: none;
1806 - box-sizing: border-box;
1807 -}
1808 -.mxchat-menu-item:hover,
1809 -.mxchat-menu-item:focus {
1810 - background: rgba(127, 127, 127, 0.18);
1811 - outline: none;
1812 -}
1813 -.mxchat-menu-item-icon {
1814 - display: inline-flex;
1815 - align-items: center;
1816 - justify-content: center;
1817 - width: 16px;
1818 - height: 16px;
1819 - color: inherit;
1820 - opacity: 0.85;
1821 - flex-shrink: 0;
1822 -}
1823 -.mxchat-menu-item-icon svg {
1824 - width: 16px;
1825 - height: 16px;
1826 - display: block;
1827 -}
1828 -.mxchat-menu-item-label {
1829 - flex: 1;
1830 - color: inherit;
1831 -}
1832 -
1833 -/* RTL — flip the dropdown anchor edge */
1834 -[dir="rtl"] .mxchat-header-menu,
1835 -.mxchat-chatbot-wrapper[dir="rtl"] .mxchat-header-menu {
1836 - right: auto;
1837 - left: 0;
1838 -}
1839 -
1840 -/* ============================================================================
1841 - Satisfaction rating (v3.2.6 — polished per plan-141a12)
1842 - Theme-adaptive via currentColor + inherit. Clean slate — old rules removed.
1843 - ========================================================================= */
1844 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-prompt,
1845 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-feedback,
1846 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-saved {
1847 - clear: both;
1848 - float: left;
1849 - max-width: 92%;
1850 - box-sizing: border-box;
1851 -}
1852 -
1853 -/* Theme-adaptive wrapper — .bot-message carries the user's custom bg/color via
1854 - inline style; the inner rating component supplies its own padding + layout. */
1855 -.mxchat-rating-bot-bubble {
1856 - padding: 0;
1857 - overflow: visible;
1858 -}
1859 -
1860 -.mxchat-rating-prompt {
1861 - display: flex;
1862 - flex-direction: column;
1863 - align-items: stretch;
1864 - gap: 10px;
1865 - padding: 10px 14px;
1866 - margin: 10px 0;
1867 - font-size: 14px;
1868 - color: inherit;
1869 -}
1870 -
1871 -.mxchat-rating-question {
1872 - color: inherit;
1873 - opacity: 0.85;
1874 - font-weight: 500;
1875 -}
1876 -
1877 -.mxchat-rating-actions {
1878 - display: flex;
1879 - align-items: center;
1880 - gap: 8px;
1881 -}
1882 -
1883 -.mxchat-rating-buttons {
1884 - display: inline-flex;
1885 - gap: 6px;
1886 -}
1887 -
1888 -.mxchat-rating-btn {
1889 - display: inline-flex;
1890 - align-items: center;
1891 - justify-content: center;
1892 - width: 32px;
1893 - height: 32px;
1894 - border-radius: 8px;
1895 - background: transparent;
1896 - border: none;
1897 - color: inherit;
1898 - opacity: 0.6;
1899 - cursor: pointer;
1900 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
1901 - padding: 0;
1902 -}
1903 -
1904 -.mxchat-rating-btn:hover {
1905 - opacity: 1;
1906 - transform: scale(1.12);
1907 - background: rgba(255, 255, 255, 0.08);
1908 -}
1909 -
1910 -.mxchat-rating-btn:focus-visible {
1911 - opacity: 1;
1912 - outline: 2px solid currentColor;
1913 - outline-offset: 2px;
1914 -}
1915 -
1916 -.mxchat-rating-btn svg {
1917 - pointer-events: none;
1918 -}
1919 -
1920 -.mxchat-rating-dismiss {
1921 - width: 24px;
1922 - height: 24px;
1923 - border-radius: 6px;
1924 - background: transparent;
1925 - border: none;
1926 - color: inherit;
1927 - opacity: 0.45;
1928 - cursor: pointer;
1929 - font-size: 18px;
1930 - line-height: 1;
1931 - transition: opacity 0.18s ease, background-color 0.18s ease;
1932 -}
1933 -
1934 -.mxchat-rating-dismiss:hover {
1935 - opacity: 0.9;
1936 - background: rgba(255, 255, 255, 0.08);
1937 -}
1938 -
1939 -/* Feedback panel that replaces the prompt after a rating is clicked */
1940 -.mxchat-rating-feedback {
1941 - padding: 12px 14px;
1942 - margin: 10px 0;
1943 - display: flex;
1944 - flex-direction: column;
1945 - gap: 10px;
1946 - color: inherit;
1947 - animation: mxchat-rating-fade-in 0.22s ease;
1948 -}
1949 -
1950 -.mxchat-rating-feedback-label {
1951 - font-size: 13px;
1952 - opacity: 0.85;
1953 - font-weight: 500;
1954 -}
1955 -
1956 -.mxchat-rating-feedback-input {
1957 - width: 100%;
1958 - box-sizing: border-box;
1959 - padding: 8px 10px;
1960 - border: 1px solid rgba(255, 255, 255, 0.25);
1961 - border-radius: 8px;
1962 - font-size: 14px;
1963 - font-family: inherit;
1964 - resize: vertical;
1965 - background: rgba(255, 255, 255, 0.08);
1966 - color: inherit;
1967 -}
1968 -
1969 -.mxchat-rating-feedback-input:focus {
1970 - outline: none;
1971 - border-color: rgba(255, 255, 255, 0.45);
1972 - background: rgba(255, 255, 255, 0.15);
1973 -}
1974 -
1975 -.mxchat-rating-feedback-actions {
1976 - display: flex;
1977 - justify-content: flex-end;
1978 - gap: 8px;
1979 -}
1980 -
1981 -.mxchat-rating-skip,
1982 -.mxchat-rating-submit {
1983 - padding: 6px 14px;
1984 - border-radius: 8px;
1985 - font-size: 13px;
1986 - font-weight: 500;
1987 - cursor: pointer;
1988 - border: none;
1989 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
1990 -}
1991 -
1992 -.mxchat-rating-skip {
1993 - background: transparent;
1994 - color: inherit;
1995 - opacity: 0.6;
1996 -}
1997 -
1998 -.mxchat-rating-skip:hover {
1999 - opacity: 1;
2000 - background: rgba(255, 255, 255, 0.08);
2001 -}
2002 -
2003 -.mxchat-rating-submit {
2004 - /* Filled "primary" pill: fill = the bot font color, label = the bubble bg.
2005 - syncRatingBubbleColors() in chat-script.js paints the real bot colors
2006 - straight onto this button (inline) from the bubble's COMPUTED style, so
2007 - it adapts to both the inline color pickers AND the mxchat-theme AI
2008 - customizer. These var()/literal values are the no-JS safety net — the
2009 - literal fallbacks (#212121 fill / #ffffff label) stay legible on their
2010 - own (no white-on-white). Longhand background-color (not the `background`
2011 - shorthand) because Chromium resolves inherited custom properties
2012 - unreliably inside the shorthand. Do NOT use currentColor here — setting
2013 - `color` would re-poison the background to the same value. */
2014 - background-color: var(--mxchat-bot-fg, #212121);
2015 - color: var(--mxchat-bot-bg, #ffffff);
2016 -}
2017 -
2018 -.mxchat-rating-submit:hover {
2019 - transform: translateY(-1px);
2020 - opacity: 0.9;
2021 -}
2022 -
2023 -.mxchat-rating-saved {
2024 - padding: 10px 14px;
2025 - margin: 10px 0;
2026 - font-size: 13px;
2027 - font-weight: 500;
2028 - text-align: center;
2029 - color: inherit;
2030 - animation: mxchat-rating-fade-in 0.22s ease;
2031 -}
2032 -
2033 -@keyframes mxchat-rating-fade-in {
2034 - from { opacity: 0; transform: translateY(4px); }
2035 - to { opacity: 1; transform: translateY(0); }
2036 1454 }