PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.6.3
MxChat – AI Chatbot & Content Generation for WordPress v2.6.3
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 +114 -727 3.2.142.6.3 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,9 +661,9 @@
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;
@@ -702,9 +672,9 @@
702 672 min-height: 0; /* Allow flex shrinking */
703 673 box-sizing: border-box;
704 674 }
705 675
706 -.chat-container {
676 +#chat-container {
707 677 display: flex;
708 678 flex-direction: column;
709 679 flex-grow: 1;
710 680 min-height: 0; /* Critical for flex overflow scrolling */
@@ -710,9 +680,9 @@
710 680 min-height: 0; /* Critical for flex overflow scrolling */
711 681 height: 100%;
712 682 }
713 683
714 -.chat-box {
684 +#chat-box {
715 685 flex-grow: 1;
716 686 overflow-y: auto;
717 687 padding: 10px;
718 688 margin-bottom: 0;
@@ -719,13 +689,13 @@
719 689 font-size: 1rem;
720 690 min-height: 0; /* Critical for flex overflow scrolling */
721 691 }
722 692
723 -.chat-box::-webkit-scrollbar {
693 +#chat-box::-webkit-scrollbar {
724 694 width: 5px;
725 695 }
726 696
727 -.chat-box::-webkit-scrollbar-thumb {
697 +#chat-box::-webkit-scrollbar-thumb {
728 698 background-color: #212121;
729 699 border-radius: 20px;
730 700 }
731 701
@@ -754,9 +724,9 @@
754 724 .user-message p {
755 725 margin: 0;
756 726 }
757 727
758 -.mxchat-chatbot .chat-container .chat-box .bot-message {
728 +#mxchat-chatbot #chat-container #chat-box .bot-message {
759 729 float: left;
760 730 clear: both;
761 731 border: 1px solid rgba(226, 232, 255, 0.2);
762 732 border-radius: 0 18px 18px;
@@ -764,9 +734,9 @@
764 734 color: #fff;
765 735 overflow-x: hidden;
766 736 }
767 737
768 -.mxchat-chatbot .chat-container .chat-box .agent-message {
738 +#mxchat-chatbot #chat-container #chat-box .agent-message {
769 739 text-align: left;
770 740 float: left;
771 741 clear: both;
772 742 border: 1px solid rgba(226, 232, 255, 0.2);
@@ -819,9 +789,9 @@
819 789 font-size: 14px;
820 790 text-align: center;
821 791 }
822 792
823 -.mxchat-chatbot-wrapper {
793 +#mxchat-chatbot-wrapper {
824 794 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
825 795 border-radius: 10px;
826 796 display: flex;
827 797 flex-direction: column;
@@ -833,9 +803,9 @@
833 803
834 804 /* ========================================
835 805 INPUT & CONTROLS
836 806 ======================================== */
837 -.mxchat-chatbot .chat-container .input-container {
807 +#mxchat-chatbot #chat-container #input-container {
838 808 position: relative;
839 809 display: flex;
840 810 align-items: center;
841 811 padding-right: 40px;
@@ -843,9 +813,9 @@
843 813 border-radius: 10px;
844 814 margin: 0 10px 10px;
845 815 }
846 816
847 -.mxchat-chatbot .chat-container .input-container .chat-input {
817 +#mxchat-chatbot #chat-container #input-container #chat-input {
848 818 flex-grow: 1;
849 819 color: #212121;
850 820 line-height: 24px;
851 821 background: transparent;
@@ -863,97 +833,33 @@
863 833 outline: none;
864 834 border-radius: 10px;
865 835 }
866 836
867 -.chat-input::-webkit-scrollbar {
837 +#chat-input::-webkit-scrollbar {
868 838 width: 8px;
869 839 }
870 840
871 -.chat-input::-webkit-scrollbar-track {
841 +#chat-input::-webkit-scrollbar-track {
872 842 background: #f1f1f1;
873 843 border-radius: 4px;
874 844 }
875 845
876 -.chat-input::-webkit-scrollbar-thumb {
846 +#chat-input::-webkit-scrollbar-thumb {
877 847 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
878 848 border-radius: 4px;
879 849 }
880 850
881 -.chat-input::-webkit-scrollbar-thumb:hover {
851 +#chat-input::-webkit-scrollbar-thumb:hover {
882 852 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
883 853 }
884 854
885 -.chat-input {
855 +#chat-input {
886 856 scrollbar-width: thin;
887 857 scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
888 858 }
889 859
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 {
860 +#mxchat-chatbot #chat-container #input-container #send-button {
896 861 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 862 right: 10px;
957 863 top: 50%;
958 864 transform: translateY(-50%);
959 865 border: none;
@@ -972,32 +878,25 @@
972 878 cursor: pointer;
973 879 font-weight: 700;
974 880 }
975 881
976 -.send-button svg {
882 +#send-button svg {
977 883 width: 25px;
978 884 height: 25px;
979 885 pointer-events: none;
980 886 }
981 887
982 -.send-button:hover {
888 +#send-button:hover {
983 889 opacity: 0.8;
984 890 }
985 891
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 {
892 +#mxchat-chatbot .spinner {
994 893 animation: rotate 2s linear infinite;
995 894 width: 20px;
996 895 height: 20px;
997 896 }
998 897
999 -.mxchat-chatbot .spinner circle {
898 +#mxchat-chatbot .spinner circle {
1000 899 stroke: #212121;
1001 900 stroke-linecap: round;
1002 901 animation: dash 1.5s ease-in-out infinite;
1003 902 }
@@ -1029,11 +928,9 @@
1029 928 .chatbot-title-container {
1030 929 display: flex;
1031 930 align-items: center;
1032 931 justify-content: space-between;
1033 - gap: 10px;
1034 - flex: 1 1 auto;
1035 - min-width: 0;
932 + width: 100%;
1036 933 }
1037 934
1038 935 .chatbot-title-group {
1039 936 display: flex;
@@ -1042,22 +939,16 @@
1042 939 }
1043 940
1044 941 .chat-mode-indicator {
1045 942 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);
943 + margin-right: 8px;
944 + padding: 4px 8px;
945 + border-radius: 12px;
946 + background: rgba(255, 255, 255, 0.2);
1051 947 color: #ffffff;
1052 - display: inline-flex;
1053 - align-items: center;
1054 - height: 22px;
1055 - white-space: nowrap;
1056 - flex: 0 0 auto;
1057 948 }
1058 949
1059 -.floating-chatbot {
950 +#floating-chatbot {
1060 951 position: fixed;
1061 952 bottom: 25px;
1062 953 right: 25px;
1063 954 width: 375px;
@@ -1077,42 +968,27 @@
1077 968 opacity: 0;
1078 969 pointer-events: none;
1079 970 }
1080 971
1081 -.floating-chatbot.visible {
972 +#floating-chatbot.visible {
1082 973 transform: translateY(0);
1083 974 opacity: 1;
1084 975 pointer-events: auto;
1085 976 }
1086 977
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,
978 +#floating-chatbot-button.hidden,
1103 979 .exit-chat span {
1104 980 display: none !important;
1105 981 }
1106 982
1107 -.chatbot-top-bar button.exit-chat:hover {
1108 - background: rgba(255, 255, 255, 0.12);
983 +.chatbot-top-bar#exit-chat-button button.exit-chat:hover {
984 + background: none;
1109 985 }
1110 986 .visible {
1111 987 display: flex;
1112 988 }
1113 989
1114 -.floating-chatbot-button {
990 +#floating-chatbot-button {
1115 991 transition: opacity 1s ease-in-out;
1116 992 font-size: 1.25rem;
1117 993 position: fixed;
1118 994 bottom: 30px;
@@ -1130,14 +1006,9 @@
1130 1006 z-index: 100000;
1131 1007 display: flex;
1132 1008 }
1133 1009
1134 -.floating-chatbot-button:focus-visible {
1135 - outline: 3px solid #7873f5;
1136 - outline-offset: 3px;
1137 -}
1138 -
1139 -.floating-chatbot-button img {
1010 +#floating-chatbot-button img {
1140 1011 max-width: 100%;
1141 1012 max-height: 100%;
1142 1013 width: auto;
1143 1014 height: auto;
@@ -1146,41 +1017,34 @@
1146 1017 .chatbot-top-bar {
1147 1018 background: #212121;
1148 1019 }
1149 1020
1150 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1021 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1151 1022 background: transparent;
1152 1023 border: none;
1153 1024 opacity: 0.8;
1154 1025 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;
1026 + min-width: 20px;
1161 1027 }
1162 1028
1163 -.mxchat-chatbot-wrapper .chatbot-top-bar {
1029 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1164 1030 cursor: pointer;
1165 1031 color: #fff;
1166 - padding: 8px 12px;
1167 - min-height: 48px;
1168 - gap: 8px;
1032 + padding: 10px;
1169 1033 border-top-left-radius: 10px;
1170 1034 border-top-right-radius: 10px;
1171 1035 display: flex;
1172 1036 justify-content: space-between;
1173 - align-items: center;
1037 + align-items: start;
1174 1038 }
1175 1039
1176 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1177 - font-size: 15px;
1178 - line-height: 1.2;
1179 - padding: 0;
1040 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1041 + font-size: 16px;
1042 + line-height: 25px;
1043 + padding: 10px;
1180 1044 margin: 0;
1181 1045 font-family: 'Plus Jakarta Sans', sans-serif;
1182 - font-weight: 600;
1046 + font-weight: bold;
1183 1047 }
1184 1048
1185 1049 .exit-chat {
1186 1050 border: none;
@@ -1185,92 +1049,56 @@
1185 1049 .exit-chat {
1186 1050 border: none;
1187 1051 background: transparent;
1188 1052 cursor: pointer;
1189 - display: inline-flex;
1053 + display: flex;
1190 1054 align-items: center;
1191 1055 justify-content: center;
1192 - padding: 0;
1056 + padding: 5px;
1193 1057 margin-left: auto;
1194 1058 opacity: 0.8;
1195 - width: 32px;
1196 - height: 32px;
1197 - min-width: 32px;
1198 - flex: 0 0 auto;
1059 + min-width: 20px;
1199 1060 }
1200 1061
1201 1062 .exit-chat svg {
1202 - width: 18px;
1203 - height: 18px;
1204 - fill: none;
1205 - stroke: currentColor;
1063 + fill: white;
1064 + width: 24px;
1065 + height: 24px;
1066 + transform: rotate(270deg);
1206 1067 }
1207 1068
1208 -.mxchat-chatbot-wrapper .chatbot-footer {
1069 +#mxchat-chatbot-wrapper .chatbot-footer {
1209 1070 text-align: center;
1210 1071 padding-bottom: 10px;
1211 1072 font-size: 0.85em;
1212 1073 }
1213 1074
1214 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1075 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1215 1076 font-size: 12px;
1216 1077 margin: 0;
1217 1078 color: #71717a;
1218 1079 }
1219 1080
1220 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1081 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1221 1082 color: #0073aa;
1222 1083 text-decoration: underline;
1223 1084 font-size: 12px;
1224 1085 }
1225 1086
1226 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1087 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1227 1088 text-decoration: none;
1228 1089 color: inherit;
1229 1090 font-weight: 700;
1230 1091 }
1231 1092
1232 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1093 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1233 1094 text-decoration: underline;
1234 1095 }
1235 1096
1236 1097 /* ========================================
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 1098 THINKING DOTS ANIMATION
1271 1099 ======================================== */
1272 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1100 +#chat-box .bot-message.temporary-message .thinking-dots-container {
1273 1101 display: flex;
1274 1102 justify-content: center;
1275 1103 align-items: center;
1276 1104 overflow: hidden;
@@ -1279,9 +1107,9 @@
1279 1107 z-index: 1;
1280 1108 flex-shrink: 0;
1281 1109 }
1282 1110
1283 -.chat-box .bot-message.temporary-message .thinking-dots {
1111 +#chat-box .bot-message.temporary-message .thinking-dots {
1284 1112 display: flex;
1285 1113 justify-content: center;
1286 1114 align-items: center;
1287 1115 height: 90%;
@@ -1288,9 +1116,9 @@
1288 1116 gap: 5px;
1289 1117 flex-shrink: 0;
1290 1118 }
1291 1119
1292 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1120 +#chat-box .bot-message.temporary-message .thinking-dots .dot {
1293 1121 height: 6px;
1294 1122 width: 6px;
1295 1123 margin: 0 3px;
1296 1124 background-color: #fff;
@@ -1295,21 +1123,21 @@
1295 1123 margin: 0 3px;
1296 1124 background-color: #fff;
1297 1125 border-radius: 50%;
1298 1126 display: inline-block;
1299 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1127 + animation: bounce 1.4s ease-in-out infinite both;
1300 1128 vertical-align: middle;
1301 1129 }
1302 1130
1303 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1131 +#chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1304 1132 animation-delay: -0.32s;
1305 1133 }
1306 1134
1307 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1135 +#chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1308 1136 animation-delay: -0.16s;
1309 1137 }
1310 1138
1311 -@keyframes mxchat-dot-bounce {
1139 +@keyframes bounce {
1312 1140 0%, 100%, 80% {
1313 1141 transform: scale(1);
1314 1142 }
1315 1143 40% {
@@ -1319,9 +1147,9 @@
1319 1147
1320 1148 /* ========================================
1321 1149 PRE-CHAT MESSAGE
1322 1150 ======================================== */
1323 -.pre-chat-message {
1151 +#pre-chat-message {
1324 1152 position: fixed;
1325 1153 bottom: 85px;
1326 1154 right: 30px;
1327 1155 background-color: #fff;
@@ -1336,9 +1164,9 @@
1336 1164 display: none;
1337 1165 margin-bottom: 10px;
1338 1166 }
1339 1167
1340 -.pre-chat-message .close-pre-chat-message {
1168 +#pre-chat-message .close-pre-chat-message {
1341 1169 position: absolute;
1342 1170 top: -6px;
1343 1171 right: -6px;
1344 1172 background-color: #ccc;
@@ -1362,9 +1190,9 @@
1362 1190 VIEWPORT HEIGHT CONSTRAINTS
1363 1191 Handles bookmarks bar, browser zoom, and smaller screens
1364 1192 ======================================== */
1365 1193 @media screen and (max-height: 700px) {
1366 - .floating-chatbot {
1194 + #floating-chatbot {
1367 1195 bottom: 15px;
1368 1196 height: calc(100vh - 30px);
1369 1197 height: calc(100dvh - 30px);
1370 1198 max-height: calc(100vh - 30px);
@@ -1370,19 +1198,19 @@
1370 1198 max-height: calc(100vh - 30px);
1371 1199 max-height: calc(100dvh - 30px);
1372 1200 }
1373 1201
1374 - .floating-chatbot-button {
1202 + #floating-chatbot-button {
1375 1203 bottom: 20px;
1376 1204 }
1377 1205
1378 - .pre-chat-message {
1206 + #pre-chat-message {
1379 1207 bottom: 75px;
1380 1208 }
1381 1209 }
1382 1210
1383 1211 @media screen and (max-height: 550px) {
1384 - .floating-chatbot {
1212 + #floating-chatbot {
1385 1213 bottom: 10px;
1386 1214 height: calc(100vh - 20px);
1387 1215 height: calc(100dvh - 20px);
1388 1216 max-height: calc(100vh - 20px);
@@ -1389,9 +1217,9 @@
1389 1217 max-height: calc(100dvh - 20px);
1390 1218 }
1391 1219
1392 1220 /* Reduce padding in tight spaces */
1393 - .mxchat-popular-questions {
1221 + #mxchat-popular-questions {
1394 1222 padding: 0 8px 5px;
1395 1223 margin-bottom: 8px;
1396 1224 }
1397 1225
@@ -1400,13 +1228,13 @@
1400 1228 font-size: 13px;
1401 1229 line-height: 20px;
1402 1230 }
1403 1231
1404 - .mxchat-chatbot .chat-container .input-container {
1232 + #mxchat-chatbot #chat-container #input-container {
1405 1233 margin: 0 8px 8px;
1406 1234 }
1407 1235
1408 - .mxchat-chatbot-wrapper .chatbot-footer {
1236 + #mxchat-chatbot-wrapper .chatbot-footer {
1409 1237 padding-bottom: 5px;
1410 1238 }
1411 1239 }
1412 1240
@@ -1443,14 +1271,14 @@
1443 1271 width: 22px;
1444 1272 height: 22px;
1445 1273 }
1446 1274
1447 - .pre-chat-message {
1275 + #pre-chat-message {
1448 1276 bottom: 70px;
1449 1277 right: 15px;
1450 1278 }
1451 1279
1452 - .chat-input {
1280 + #chat-input {
1453 1281 width: calc(100% - 70px);
1454 1282 }
1455 1283
1456 1284 .bot-message,
@@ -1458,41 +1286,35 @@
1458 1286 padding: 10px;
1459 1287 max-width: 95%;
1460 1288 }
1461 1289
1462 - .floating-chatbot-button {
1290 + #floating-chatbot-button {
1463 1291 bottom: 15px;
1464 1292 right: 10px;
1465 1293 }
1466 1294
1467 - .floating-chatbot {
1468 - width: calc(100vw - 16px);
1295 + #floating-chatbot {
1296 + width: 100vw;
1469 1297 /* 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);
1298 + height: 100vh; /* Fallback */
1299 + height: calc(var(--vh, 1vh) * 100); /* JS-set custom property fallback */
1300 + height: 100dvh; /* Modern dynamic viewport height */
1301 + max-height: 100vh;
1302 + max-height: 100dvh;
1475 1303 margin: 0;
1476 1304 padding: 0;
1477 1305 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);
1306 + bottom: 0;
1307 + top: 0;
1308 + left: 0;
1309 + right: 0;
1310 + border-radius: 0;
1484 1311 }
1485 1312
1486 - .floating-chatbot .mxchat-chatbot-wrapper {
1487 - border-radius: 16px;
1488 - overflow: hidden;
1313 + #mxchat-chatbot-wrapper .chatbot-top-bar {
1314 + border-top-left-radius: 0;
1315 + border-top-right-radius: 0;
1489 1316 }
1490 -
1491 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1492 - border-top-left-radius: 16px;
1493 - border-top-right-radius: 16px;
1494 - }
1495 1317 }
1496 1318
1497 1319
1498 1320
@@ -1626,106 +1448,8 @@
1626 1448 height: auto;
1627 1449 border-radius: 0 0 8px 8px;
1628 1450 }
1629 1451
1630 -/* Consent-safe YouTube embed (click-to-load facade → nocookie iframe).
1631 - Caption colors INHERIT from the message bubble (same idiom as
1632 - .mxchat-product-card) so the embed reads correctly on any widget theme —
1633 - bot bubbles commonly force their own text color. */
1634 -.mxchat-youtube-embed {
1635 - max-width: 340px;
1636 - margin-top: 8px;
1637 -}
1638 -
1639 -.mxchat-youtube-facade {
1640 - position: relative;
1641 - display: block;
1642 - width: 100%;
1643 - padding: 0;
1644 - margin: 0;
1645 - border: none;
1646 - background: #000;
1647 - cursor: pointer;
1648 - aspect-ratio: 16 / 9;
1649 - border-radius: 10px;
1650 - overflow: hidden;
1651 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1652 -}
1653 -
1654 -.mxchat-youtube-thumb {
1655 - width: 100%;
1656 - height: 100%;
1657 - object-fit: cover;
1658 - display: block;
1659 - opacity: 0.92;
1660 - transition: opacity 0.2s;
1661 -}
1662 -
1663 -.mxchat-youtube-facade:hover .mxchat-youtube-thumb {
1664 - opacity: 1;
1665 -}
1666 -
1667 -.mxchat-youtube-play {
1668 - position: absolute;
1669 - top: 50%;
1670 - left: 50%;
1671 - transform: translate(-50%, -50%);
1672 - display: flex;
1673 - align-items: center;
1674 - justify-content: center;
1675 - width: 52px;
1676 - height: 52px;
1677 - border-radius: 50%;
1678 - background: rgba(0, 0, 0, 0.72);
1679 - color: #fff;
1680 - transition: transform 0.2s, background 0.2s;
1681 -}
1682 -
1683 -.mxchat-youtube-play svg {
1684 - margin-left: 3px;
1685 -}
1686 -
1687 -.mxchat-youtube-facade:hover .mxchat-youtube-play {
1688 - transform: translate(-50%, -50%) scale(1.08);
1689 - background: rgba(0, 0, 0, 0.85);
1690 -}
1691 -
1692 -.mxchat-youtube-iframe {
1693 - width: 100%;
1694 - aspect-ratio: 16 / 9;
1695 - border: none;
1696 - display: block;
1697 - border-radius: 10px;
1698 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1699 -}
1700 -
1701 -.mxchat-youtube-caption {
1702 - display: flex;
1703 - align-items: baseline;
1704 - justify-content: space-between;
1705 - gap: 10px;
1706 - padding: 8px 2px 0;
1707 - background: transparent;
1708 - color: inherit;
1709 -}
1710 -
1711 -.mxchat-youtube-title {
1712 - font-size: 13px;
1713 - font-weight: 600;
1714 - color: inherit;
1715 - overflow: hidden;
1716 - white-space: nowrap;
1717 - text-overflow: ellipsis;
1718 -}
1719 -
1720 -.mxchat-youtube-link {
1721 - font-size: 12px;
1722 - white-space: nowrap;
1723 - color: inherit;
1724 - opacity: 0.85;
1725 - text-decoration: underline;
1726 -}
1727 -
1728 1452 #widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1729 1453 padding: 10px;
1730 1454 }
1731 1455
@@ -1734,9 +1458,9 @@
1734 1458 }
1735 1459
1736 1460
1737 1461 /* This selector with more context - showing the collapse button in certain states */
1738 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1462 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1739 1463 background: none;
1740 1464 border: none;
1741 1465 padding: 0;
1742 1466 margin: 0px;
@@ -1754,15 +1478,15 @@
1754 1478 order: -1; /* THIS IS MISSING */
1755 1479 }
1756 1480
1757 1481 /* ALL hover states - these are MISSING from your new CSS */
1758 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1482 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1759 1483 background: none;
1760 1484 border: none;
1761 1485 box-shadow: none;
1762 1486 }
1763 1487
1764 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1488 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1765 1489 outline: none;
1766 1490 background: none;
1767 1491 border: none;
1768 1492 box-shadow: none;
@@ -1767,9 +1491,9 @@
1767 1491 border: none;
1768 1492 box-shadow: none;
1769 1493 }
1770 1494
1771 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1495 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1772 1496 background: none;
1773 1497 border: none;
1774 1498 box-shadow: none;
1775 1499 }
@@ -1774,361 +1498,24 @@
1774 1498 box-shadow: none;
1775 1499 }
1776 1500
1777 1501 /* SVG styles - these are MISSING */
1778 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1502 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1779 1503 fill: none;
1780 - stroke: #212121;
1781 1504 transition: transform 0.2s ease;
1782 1505 width: 25px;
1783 1506 height: 25px;
1784 1507 }
1785 1508
1786 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1509 +#mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1787 1510 opacity: 0.7;
1788 1511 }
1789 1512
1790 1513 /* THE CRITICAL DISPLAY RULE - this shows when it's been collapsed before */
1791 -.mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1514 +#mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1792 1515 display: flex;
1793 1516 }
1794 1517
1795 1518 /* Hide when actually collapsed */
1796 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1519 +#mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1797 1520 display: none;
1798 -}
1799 -
1800 -/* ============================================================
1801 - Header overflow menu — 3-dot kebab + dropdown (v3.2.9 / v3.2.10)
1802 - Lives in .chatbot-top-bar to the LEFT of .exit-chat. Visual treatment
1803 - mirrors .exit-chat: transparent, white-on-dark, 0.8 opacity, 5px pad.
1804 -
1805 - v3.2.10: explicit `order` rules pin the visual order
1806 - title (0) | kebab (1) | down-arrow (2)
1807 - so the down-arrow is always the rightmost icon regardless of source
1808 - order or which sibling has margin-left:auto.
1809 - ============================================================ */
1810 -.mxchat-chatbot-wrapper .chatbot-top-bar > .chatbot-title-container { order: 0; }
1811 -.mxchat-chatbot-wrapper .chatbot-top-bar > .mxchat-header-menu-wrap { order: 1; }
1812 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat { order: 2; }
1813 -
1814 -.mxchat-header-menu-wrap {
1815 - position: relative;
1816 - display: inline-flex;
1817 - align-items: center;
1818 - margin-left: auto; /* push kebab + arrow group to the right edge */
1819 -}
1820 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap ~ .exit-chat,
1821 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap + .exit-chat {
1822 - margin-left: 4px; /* even, snug gap between kebab and close */
1823 -}
1824 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat:focus {
1825 - background: rgba(255, 255, 255, 0.12);
1826 - opacity: 1;
1827 - outline: none;
1828 -}
1829 -.mxchat-header-btn {
1830 - border: none;
1831 - background: transparent;
1832 - cursor: pointer;
1833 - display: inline-flex;
1834 - align-items: center;
1835 - justify-content: center;
1836 - padding: 0;
1837 - opacity: 0.8;
1838 - color: #fff;
1839 - transition: opacity 0.15s ease, background 0.15s ease;
1840 - border-radius: 6px;
1841 - line-height: 0;
1842 - width: 32px;
1843 - height: 32px;
1844 - min-width: 32px;
1845 - flex: 0 0 auto;
1846 -}
1847 -.mxchat-header-btn:hover,
1848 -.mxchat-header-btn:focus {
1849 - opacity: 1;
1850 - background: rgba(255, 255, 255, 0.12);
1851 - outline: none;
1852 -}
1853 -.mxchat-header-btn[aria-expanded="true"] {
1854 - opacity: 1;
1855 - background: rgba(255, 255, 255, 0.12);
1856 -}
1857 -.mxchat-menu-trigger svg {
1858 - width: 18px;
1859 - height: 18px;
1860 -}
1861 -
1862 -.mxchat-header-menu {
1863 - position: absolute;
1864 - top: calc(100% + 6px);
1865 - right: 0;
1866 - min-width: 220px;
1867 - background: var(--mxchat-menu-bg, #ffffff);
1868 - color: var(--mxchat-menu-fg, #1a1a1a);
1869 - border: 1px solid rgba(127, 127, 127, 0.20);
1870 - border-radius: 10px;
1871 - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.10);
1872 - padding: 4px;
1873 - z-index: 5;
1874 - opacity: 0;
1875 - transform: translateY(-4px);
1876 - pointer-events: none;
1877 - transition: opacity 0.12s ease, transform 0.12s ease;
1878 -}
1879 -.mxchat-header-menu.is-open {
1880 - opacity: 1;
1881 - transform: translateY(0);
1882 - pointer-events: auto;
1883 -}
1884 -.mxchat-header-menu[hidden] {
1885 - display: none;
1886 -}
1887 -.mxchat-menu-item {
1888 - display: flex;
1889 - align-items: center;
1890 - gap: 10px;
1891 - width: 100%;
1892 - padding: 8px 12px;
1893 - min-height: 40px;
1894 - border: none;
1895 - background: transparent;
1896 - color: inherit;
1897 - font-size: 14px;
1898 - line-height: 1.3;
1899 - text-align: left;
1900 - cursor: pointer;
1901 - border-radius: 6px;
1902 - transition: background 0.12s ease;
1903 - text-decoration: none;
1904 - box-sizing: border-box;
1905 -}
1906 -.mxchat-menu-item:hover,
1907 -.mxchat-menu-item:focus {
1908 - background: rgba(127, 127, 127, 0.18);
1909 - outline: none;
1910 -}
1911 -.mxchat-menu-item-icon {
1912 - display: inline-flex;
1913 - align-items: center;
1914 - justify-content: center;
1915 - width: 16px;
1916 - height: 16px;
1917 - color: inherit;
1918 - opacity: 0.85;
1919 - flex-shrink: 0;
1920 -}
1921 -.mxchat-menu-item-icon svg {
1922 - width: 16px;
1923 - height: 16px;
1924 - display: block;
1925 -}
1926 -.mxchat-menu-item-label {
1927 - flex: 1;
1928 - color: inherit;
1929 -}
1930 -
1931 -/* RTL — flip the dropdown anchor edge */
1932 -[dir="rtl"] .mxchat-header-menu,
1933 -.mxchat-chatbot-wrapper[dir="rtl"] .mxchat-header-menu {
1934 - right: auto;
1935 - left: 0;
1936 -}
1937 -
1938 -/* ============================================================================
1939 - Satisfaction rating (v3.2.6 — polished per plan-141a12)
1940 - Theme-adaptive via currentColor + inherit. Clean slate — old rules removed.
1941 - ========================================================================= */
1942 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-prompt,
1943 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-feedback,
1944 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-saved {
1945 - clear: both;
1946 - float: left;
1947 - max-width: 92%;
1948 - box-sizing: border-box;
1949 -}
1950 -
1951 -/* Theme-adaptive wrapper — .bot-message carries the user's custom bg/color via
1952 - inline style; the inner rating component supplies its own padding + layout. */
1953 -.mxchat-rating-bot-bubble {
1954 - padding: 0;
1955 - overflow: visible;
1956 -}
1957 -
1958 -.mxchat-rating-prompt {
1959 - display: flex;
1960 - flex-direction: column;
1961 - align-items: stretch;
1962 - gap: 10px;
1963 - padding: 10px 14px;
1964 - margin: 10px 0;
1965 - font-size: 14px;
1966 - color: inherit;
1967 -}
1968 -
1969 -.mxchat-rating-question {
1970 - color: inherit;
1971 - opacity: 0.85;
1972 - font-weight: 500;
1973 -}
1974 -
1975 -.mxchat-rating-actions {
1976 - display: flex;
1977 - align-items: center;
1978 - gap: 8px;
1979 -}
1980 -
1981 -.mxchat-rating-buttons {
1982 - display: inline-flex;
1983 - gap: 6px;
1984 -}
1985 -
1986 -.mxchat-rating-btn {
1987 - display: inline-flex;
1988 - align-items: center;
1989 - justify-content: center;
1990 - width: 32px;
1991 - height: 32px;
1992 - border-radius: 8px;
1993 - background: transparent;
1994 - border: none;
1995 - color: inherit;
1996 - opacity: 0.6;
1997 - cursor: pointer;
1998 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
1999 - padding: 0;
2000 -}
2001 -
2002 -.mxchat-rating-btn:hover {
2003 - opacity: 1;
2004 - transform: scale(1.12);
2005 - background: rgba(255, 255, 255, 0.08);
2006 -}
2007 -
2008 -.mxchat-rating-btn:focus-visible {
2009 - opacity: 1;
2010 - outline: 2px solid currentColor;
2011 - outline-offset: 2px;
2012 -}
2013 -
2014 -.mxchat-rating-btn svg {
2015 - pointer-events: none;
2016 -}
2017 -
2018 -.mxchat-rating-dismiss {
2019 - width: 24px;
2020 - height: 24px;
2021 - border-radius: 6px;
2022 - background: transparent;
2023 - border: none;
2024 - color: inherit;
2025 - opacity: 0.45;
2026 - cursor: pointer;
2027 - font-size: 18px;
2028 - line-height: 1;
2029 - transition: opacity 0.18s ease, background-color 0.18s ease;
2030 -}
2031 -
2032 -.mxchat-rating-dismiss:hover {
2033 - opacity: 0.9;
2034 - background: rgba(255, 255, 255, 0.08);
2035 -}
2036 -
2037 -/* Feedback panel that replaces the prompt after a rating is clicked */
2038 -.mxchat-rating-feedback {
2039 - padding: 12px 14px;
2040 - margin: 10px 0;
2041 - display: flex;
2042 - flex-direction: column;
2043 - gap: 10px;
2044 - color: inherit;
2045 - animation: mxchat-rating-fade-in 0.22s ease;
2046 -}
2047 -
2048 -.mxchat-rating-feedback-label {
2049 - font-size: 13px;
2050 - opacity: 0.85;
2051 - font-weight: 500;
2052 -}
2053 -
2054 -.mxchat-rating-feedback-input {
2055 - width: 100%;
2056 - box-sizing: border-box;
2057 - padding: 8px 10px;
2058 - border: 1px solid rgba(255, 255, 255, 0.25);
2059 - border-radius: 8px;
2060 - font-size: 14px;
2061 - font-family: inherit;
2062 - resize: vertical;
2063 - background: rgba(255, 255, 255, 0.08);
2064 - color: inherit;
2065 -}
2066 -
2067 -.mxchat-rating-feedback-input:focus {
2068 - outline: none;
2069 - border-color: rgba(255, 255, 255, 0.45);
2070 - background: rgba(255, 255, 255, 0.15);
2071 -}
2072 -
2073 -.mxchat-rating-feedback-actions {
2074 - display: flex;
2075 - justify-content: flex-end;
2076 - gap: 8px;
2077 -}
2078 -
2079 -.mxchat-rating-skip,
2080 -.mxchat-rating-submit {
2081 - padding: 6px 14px;
2082 - border-radius: 8px;
2083 - font-size: 13px;
2084 - font-weight: 500;
2085 - cursor: pointer;
2086 - border: none;
2087 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
2088 -}
2089 -
2090 -.mxchat-rating-skip {
2091 - background: transparent;
2092 - color: inherit;
2093 - opacity: 0.6;
2094 -}
2095 -
2096 -.mxchat-rating-skip:hover {
2097 - opacity: 1;
2098 - background: rgba(255, 255, 255, 0.08);
2099 -}
2100 -
2101 -.mxchat-rating-submit {
2102 - /* Filled "primary" pill: fill = the bot font color, label = the bubble bg.
2103 - syncRatingBubbleColors() in chat-script.js paints the real bot colors
2104 - straight onto this button (inline) from the bubble's COMPUTED style, so
2105 - it adapts to both the inline color pickers AND the mxchat-theme AI
2106 - customizer. These var()/literal values are the no-JS safety net — the
2107 - literal fallbacks (#212121 fill / #ffffff label) stay legible on their
2108 - own (no white-on-white). Longhand background-color (not the `background`
2109 - shorthand) because Chromium resolves inherited custom properties
2110 - unreliably inside the shorthand. Do NOT use currentColor here — setting
2111 - `color` would re-poison the background to the same value. */
2112 - background-color: var(--mxchat-bot-fg, #212121);
2113 - color: var(--mxchat-bot-bg, #ffffff);
2114 -}
2115 -
2116 -.mxchat-rating-submit:hover {
2117 - transform: translateY(-1px);
2118 - opacity: 0.9;
2119 -}
2120 -
2121 -.mxchat-rating-saved {
2122 - padding: 10px 14px;
2123 - margin: 10px 0;
2124 - font-size: 13px;
2125 - font-weight: 500;
2126 - text-align: center;
2127 - color: inherit;
2128 - animation: mxchat-rating-fade-in 0.22s ease;
2129 -}
2130 -
2131 -@keyframes mxchat-rating-fade-in {
2132 - from { opacity: 0; transform: translateY(4px); }
2133 - to { opacity: 1; transform: translateY(0); }
2134 1521 }