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