PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.4.4
MxChat – AI Chatbot & Content Generation for WordPress v2.4.4
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 +95 -911 3.2.132.4.4 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 -/* MISSING - These need to be inside the container context: */
560 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
530 +.questions-toggle-btn,
531 +.questions-collapse-btn {
561 532 background: none;
562 533 border: none;
563 534 padding: 0;
564 535 margin: 0;
@@ -564,9 +535,9 @@
564 535 margin: 0;
565 536 cursor: pointer;
566 537 transition: all 0.2s ease;
567 538 color: #212121;
568 - display: none; /* Hidden by default when open */
539 + display: none;
569 540 align-items: center;
570 541 justify-content: center;
571 542 width: 32px;
572 543 height: 32px;
@@ -573,27 +544,8 @@
573 544 box-shadow: none;
574 545 outline: none;
575 546 }
576 547
577 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
578 - background: none;
579 - border: none;
580 - padding: 0;
581 - margin: 0px; /* Center and add bottom margin */
582 - cursor: pointer;
583 - transition: all 0.2s ease;
584 - color: #212121;
585 - display: none; /* Hidden by default */
586 - align-items: center;
587 - justify-content: center;
588 - width: 32px;
589 - height: 32px;
590 - box-shadow: none;
591 - outline: none;
592 - align-self: center; /* Center in flex container */
593 - order: -1; /* Make sure it appears first */
594 -}
595 -
596 548 .questions-toggle-btn:hover,
597 549 .questions-collapse-btn:hover,
598 550 .questions-toggle-btn:focus,
599 551 .questions-collapse-btn:focus,
@@ -608,9 +560,8 @@
608 560 .questions-toggle-btn svg,
609 561 .questions-collapse-btn svg {
610 562 transition: transform 0.2s ease;
611 563 fill: none;
612 - stroke: #212121;
613 564 width: 25px;
614 565 height: 25px;
615 566 }
616 567
@@ -618,13 +569,13 @@
618 569 .questions-collapse-btn:hover svg {
619 570 opacity: 0.7;
620 571 }
621 572
622 -.mxchat-popular-questions.collapsed .questions-toggle-btn {
573 +#mxchat-popular-questions.collapsed .questions-toggle-btn {
623 574 display: flex;
624 575 }
625 576
626 -.mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
577 +#mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
627 578 display: flex;
628 579 align-self: center;
629 580 order: -1;
630 581 }
@@ -691,41 +642,38 @@
691 642 opacity: 0;
692 643 pointer-events: none;
693 644 }
694 645
695 -.mxchat-chatbot{
646 +#mxchat-chatbot {
696 647 background: #fff;
697 648 overflow: hidden;
698 649 position: relative;
699 650 display: flex;
700 651 flex-direction: column;
652 + height: 500px;
653 + box-sizing: border-box;
701 654 flex-grow: 1;
702 - min-height: 0; /* Allow flex shrinking */
703 - box-sizing: border-box;
704 655 }
705 656
706 -.chat-container {
657 +#chat-container {
707 658 display: flex;
708 659 flex-direction: column;
709 - flex-grow: 1;
710 - min-height: 0; /* Critical for flex overflow scrolling */
711 660 height: 100%;
712 661 }
713 662
714 -.chat-box {
663 +#chat-box {
715 664 flex-grow: 1;
716 665 overflow-y: auto;
717 666 padding: 10px;
718 667 margin-bottom: 0;
719 668 font-size: 1rem;
720 - min-height: 0; /* Critical for flex overflow scrolling */
721 669 }
722 670
723 -.chat-box::-webkit-scrollbar {
671 +#chat-box::-webkit-scrollbar {
724 672 width: 5px;
725 673 }
726 674
727 -.chat-box::-webkit-scrollbar-thumb {
675 +#chat-box::-webkit-scrollbar-thumb {
728 676 background-color: #212121;
729 677 border-radius: 20px;
730 678 }
731 679
@@ -754,9 +702,9 @@
754 702 .user-message p {
755 703 margin: 0;
756 704 }
757 705
758 -.mxchat-chatbot .chat-container .chat-box .bot-message {
706 +#mxchat-chatbot #chat-container #chat-box .bot-message {
759 707 float: left;
760 708 clear: both;
761 709 border: 1px solid rgba(226, 232, 255, 0.2);
762 710 border-radius: 0 18px 18px;
@@ -764,9 +712,9 @@
764 712 color: #fff;
765 713 overflow-x: hidden;
766 714 }
767 715
768 -.mxchat-chatbot .chat-container .chat-box .agent-message {
716 +#mxchat-chatbot #chat-container #chat-box .agent-message {
769 717 text-align: left;
770 718 float: left;
771 719 clear: both;
772 720 border: 1px solid rgba(226, 232, 255, 0.2);
@@ -819,9 +767,9 @@
819 767 font-size: 14px;
820 768 text-align: center;
821 769 }
822 770
823 -.mxchat-chatbot-wrapper {
771 +#mxchat-chatbot-wrapper {
824 772 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
825 773 border-radius: 10px;
826 774 display: flex;
827 775 flex-direction: column;
@@ -826,16 +774,14 @@
826 774 display: flex;
827 775 flex-direction: column;
828 776 height: 100%;
829 777 width: 100%;
830 - min-height: 0; /* Allow flex shrinking */
831 - overflow: hidden;
832 778 }
833 779
834 780 /* ========================================
835 781 INPUT & CONTROLS
836 782 ======================================== */
837 -.mxchat-chatbot .chat-container .input-container {
783 +#mxchat-chatbot #chat-container #input-container {
838 784 position: relative;
839 785 display: flex;
840 786 align-items: center;
841 787 padding-right: 40px;
@@ -843,9 +789,9 @@
843 789 border-radius: 10px;
844 790 margin: 0 10px 10px;
845 791 }
846 792
847 -.mxchat-chatbot .chat-container .input-container .chat-input {
793 +#mxchat-chatbot #chat-container #input-container #chat-input {
848 794 flex-grow: 1;
849 795 color: #212121;
850 796 line-height: 24px;
851 797 background: transparent;
@@ -863,97 +809,33 @@
863 809 outline: none;
864 810 border-radius: 10px;
865 811 }
866 812
867 -.chat-input::-webkit-scrollbar {
813 +#chat-input::-webkit-scrollbar {
868 814 width: 8px;
869 815 }
870 816
871 -.chat-input::-webkit-scrollbar-track {
817 +#chat-input::-webkit-scrollbar-track {
872 818 background: #f1f1f1;
873 819 border-radius: 4px;
874 820 }
875 821
876 -.chat-input::-webkit-scrollbar-thumb {
822 +#chat-input::-webkit-scrollbar-thumb {
877 823 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
878 824 border-radius: 4px;
879 825 }
880 826
881 -.chat-input::-webkit-scrollbar-thumb:hover {
827 +#chat-input::-webkit-scrollbar-thumb:hover {
882 828 background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
883 829 }
884 830
885 -.chat-input {
831 +#chat-input {
886 832 scrollbar-width: thin;
887 833 scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
888 834 }
889 835
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 {
836 +#mxchat-chatbot #chat-container #input-container #send-button {
896 837 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 838 right: 10px;
957 839 top: 50%;
958 840 transform: translateY(-50%);
959 841 border: none;
@@ -972,32 +854,25 @@
972 854 cursor: pointer;
973 855 font-weight: 700;
974 856 }
975 857
976 -.send-button svg {
858 +#send-button svg {
977 859 width: 25px;
978 860 height: 25px;
979 861 pointer-events: none;
980 862 }
981 863
982 -.send-button:hover {
864 +#send-button:hover {
983 865 opacity: 0.8;
984 866 }
985 867
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 {
868 +#mxchat-chatbot .spinner {
994 869 animation: rotate 2s linear infinite;
995 870 width: 20px;
996 871 height: 20px;
997 872 }
998 873
999 -.mxchat-chatbot .spinner circle {
874 +#mxchat-chatbot .spinner circle {
1000 875 stroke: #212121;
1001 876 stroke-linecap: round;
1002 877 animation: dash 1.5s ease-in-out infinite;
1003 878 }
@@ -1029,11 +904,9 @@
1029 904 .chatbot-title-container {
1030 905 display: flex;
1031 906 align-items: center;
1032 907 justify-content: space-between;
1033 - gap: 10px;
1034 - flex: 1 1 auto;
1035 - min-width: 0;
908 + width: 100%;
1036 909 }
1037 910
1038 911 .chatbot-title-group {
1039 912 display: flex;
@@ -1042,36 +915,25 @@
1042 915 }
1043 916
1044 917 .chat-mode-indicator {
1045 918 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);
919 + margin-right: 8px;
920 + padding: 4px 8px;
921 + border-radius: 12px;
922 + background: rgba(255, 255, 255, 0.2);
1051 923 color: #ffffff;
1052 - display: inline-flex;
1053 - align-items: center;
1054 - height: 22px;
1055 - white-space: nowrap;
1056 - flex: 0 0 auto;
1057 924 }
1058 925
1059 -.floating-chatbot {
926 +#floating-chatbot {
1060 927 position: fixed;
1061 928 bottom: 25px;
1062 929 right: 25px;
1063 930 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 */
931 + height: 625px;
1069 932 box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
1070 933 border-radius: 20px;
1071 934 overflow: hidden;
1072 935 display: flex;
1073 - flex-direction: column;
1074 936 z-index: 100000;
1075 937 transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
1076 938 transform: translateY(20%);
1077 939 opacity: 0;
@@ -1077,42 +939,24 @@
1077 939 opacity: 0;
1078 940 pointer-events: none;
1079 941 }
1080 942
1081 -.floating-chatbot.visible {
943 +#floating-chatbot.visible {
1082 944 transform: translateY(0);
1083 945 opacity: 1;
1084 946 pointer-events: auto;
1085 947 }
1086 948
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,
949 +#floating-chatbot-button.hidden,
1103 950 .exit-chat span {
1104 951 display: none !important;
1105 952 }
1106 953
1107 -.chatbot-top-bar button.exit-chat:hover {
1108 - background: rgba(255, 255, 255, 0.12);
1109 -}
1110 954 .visible {
1111 955 display: flex;
1112 956 }
1113 957
1114 -.floating-chatbot-button {
958 +#floating-chatbot-button {
1115 959 transition: opacity 1s ease-in-out;
1116 960 font-size: 1.25rem;
1117 961 position: fixed;
1118 962 bottom: 30px;
@@ -1130,14 +974,9 @@
1130 974 z-index: 100000;
1131 975 display: flex;
1132 976 }
1133 977
1134 -.floating-chatbot-button:focus-visible {
1135 - outline: 3px solid #7873f5;
1136 - outline-offset: 3px;
1137 -}
1138 -
1139 -.floating-chatbot-button img {
978 +#floating-chatbot-button img {
1140 979 max-width: 100%;
1141 980 max-height: 100%;
1142 981 width: auto;
1143 982 height: auto;
@@ -1146,41 +985,26 @@
1146 985 .chatbot-top-bar {
1147 986 background: #212121;
1148 987 }
1149 988
1150 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1151 - background: transparent;
1152 - border: none;
1153 - opacity: 0.8;
1154 - 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;
1161 -}
1162 -
1163 -.mxchat-chatbot-wrapper .chatbot-top-bar {
989 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1164 990 cursor: pointer;
1165 991 color: #fff;
1166 - padding: 8px 12px;
1167 - min-height: 48px;
1168 - gap: 8px;
992 + padding: 10px;
1169 993 border-top-left-radius: 10px;
1170 994 border-top-right-radius: 10px;
1171 995 display: flex;
1172 996 justify-content: space-between;
1173 - align-items: center;
997 + align-items: start;
1174 998 }
1175 999
1176 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1177 - font-size: 15px;
1178 - line-height: 1.2;
1179 - padding: 0;
1000 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1001 + font-size: 16px;
1002 + line-height: 25px;
1003 + padding: 10px;
1180 1004 margin: 0;
1181 1005 font-family: 'Plus Jakarta Sans', sans-serif;
1182 - font-weight: 600;
1006 + font-weight: bold;
1183 1007 }
1184 1008
1185 1009 .exit-chat {
1186 1010 border: none;
@@ -1185,92 +1009,56 @@
1185 1009 .exit-chat {
1186 1010 border: none;
1187 1011 background: transparent;
1188 1012 cursor: pointer;
1189 - display: inline-flex;
1013 + display: flex;
1190 1014 align-items: center;
1191 1015 justify-content: center;
1192 - padding: 0;
1016 + padding: 5px;
1193 1017 margin-left: auto;
1194 1018 opacity: 0.8;
1195 - width: 32px;
1196 - height: 32px;
1197 - min-width: 32px;
1198 - flex: 0 0 auto;
1019 + min-width: 20px;
1199 1020 }
1200 1021
1201 1022 .exit-chat svg {
1202 - width: 18px;
1203 - height: 18px;
1204 - fill: none;
1205 - stroke: currentColor;
1023 + fill: white;
1024 + width: 24px;
1025 + height: 24px;
1026 + transform: rotate(270deg);
1206 1027 }
1207 1028
1208 -.mxchat-chatbot-wrapper .chatbot-footer {
1029 +#mxchat-chatbot-wrapper .chatbot-footer {
1209 1030 text-align: center;
1210 1031 padding-bottom: 10px;
1211 1032 font-size: 0.85em;
1212 1033 }
1213 1034
1214 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1035 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1215 1036 font-size: 12px;
1216 1037 margin: 0;
1217 1038 color: #71717a;
1218 1039 }
1219 1040
1220 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1041 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1221 1042 color: #0073aa;
1222 1043 text-decoration: underline;
1223 1044 font-size: 12px;
1224 1045 }
1225 1046
1226 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1047 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1227 1048 text-decoration: none;
1228 1049 color: inherit;
1229 1050 font-weight: 700;
1230 1051 }
1231 1052
1232 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1053 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1233 1054 text-decoration: underline;
1234 1055 }
1235 1056
1236 1057 /* ========================================
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 1058 THINKING DOTS ANIMATION
1271 1059 ======================================== */
1272 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1060 +#chat-box .bot-message.temporary-message .thinking-dots-container {
1273 1061 display: flex;
1274 1062 justify-content: center;
1275 1063 align-items: center;
1276 1064 overflow: hidden;
@@ -1279,9 +1067,9 @@
1279 1067 z-index: 1;
1280 1068 flex-shrink: 0;
1281 1069 }
1282 1070
1283 -.chat-box .bot-message.temporary-message .thinking-dots {
1071 +#chat-box .bot-message.temporary-message .thinking-dots {
1284 1072 display: flex;
1285 1073 justify-content: center;
1286 1074 align-items: center;
1287 1075 height: 90%;
@@ -1288,9 +1076,9 @@
1288 1076 gap: 5px;
1289 1077 flex-shrink: 0;
1290 1078 }
1291 1079
1292 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1080 +#chat-box .bot-message.temporary-message .thinking-dots .dot {
1293 1081 height: 6px;
1294 1082 width: 6px;
1295 1083 margin: 0 3px;
1296 1084 background-color: #fff;
@@ -1295,21 +1083,21 @@
1295 1083 margin: 0 3px;
1296 1084 background-color: #fff;
1297 1085 border-radius: 50%;
1298 1086 display: inline-block;
1299 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1087 + animation: bounce 1.4s ease-in-out infinite both;
1300 1088 vertical-align: middle;
1301 1089 }
1302 1090
1303 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1091 +#chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1304 1092 animation-delay: -0.32s;
1305 1093 }
1306 1094
1307 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1095 +#chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1308 1096 animation-delay: -0.16s;
1309 1097 }
1310 1098
1311 -@keyframes mxchat-dot-bounce {
1099 +@keyframes bounce {
1312 1100 0%, 100%, 80% {
1313 1101 transform: scale(1);
1314 1102 }
1315 1103 40% {
@@ -1319,9 +1107,9 @@
1319 1107
1320 1108 /* ========================================
1321 1109 PRE-CHAT MESSAGE
1322 1110 ======================================== */
1323 -.pre-chat-message {
1111 +#pre-chat-message {
1324 1112 position: fixed;
1325 1113 bottom: 85px;
1326 1114 right: 30px;
1327 1115 background-color: #fff;
@@ -1336,9 +1124,9 @@
1336 1124 display: none;
1337 1125 margin-bottom: 10px;
1338 1126 }
1339 1127
1340 -.pre-chat-message .close-pre-chat-message {
1128 +#pre-chat-message .close-pre-chat-message {
1341 1129 position: absolute;
1342 1130 top: -6px;
1343 1131 right: -6px;
1344 1132 background-color: #ccc;
@@ -1358,60 +1146,8 @@
1358 1146 line-height: 1;
1359 1147 }
1360 1148
1361 1149 /* ========================================
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 1150 MOBILE RESPONSIVE
1415 1151 ======================================== */
1416 1152 @media screen and (max-width: 782px) {
1417 1153 .mxchat-search-results {
@@ -1443,14 +1179,14 @@
1443 1179 width: 22px;
1444 1180 height: 22px;
1445 1181 }
1446 1182
1447 - .pre-chat-message {
1183 + #pre-chat-message {
1448 1184 bottom: 70px;
1449 1185 right: 15px;
1450 1186 }
1451 1187
1452 - .chat-input {
1188 + #chat-input {
1453 1189 width: calc(100% - 70px);
1454 1190 }
1455 1191
1456 1192 .bot-message,
@@ -1458,579 +1194,27 @@
1458 1194 padding: 10px;
1459 1195 max-width: 95%;
1460 1196 }
1461 1197
1462 - .floating-chatbot-button {
1198 + #floating-chatbot-button {
1463 1199 bottom: 15px;
1464 1200 right: 10px;
1465 1201 }
1466 1202
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);
1203 + #floating-chatbot {
1204 + width: 100vw;
1205 + height: calc(var(--vh, 1vh) * 100);
1475 1206 margin: 0;
1476 1207 padding: 0;
1477 1208 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);
1209 + bottom: 0;
1210 + top: 0;
1211 + left: 0;
1212 + right: 0;
1213 + border-radius: 0;
1484 1214 }
1485 1215
1486 - .floating-chatbot .mxchat-chatbot-wrapper {
1487 - border-radius: 16px;
1488 - overflow: hidden;
1216 + #mxchat-chatbot-wrapper .chatbot-top-bar {
1217 + border-top-left-radius: 0;
1218 + border-top-right-radius: 0;
1489 1219 }
1490 -
1491 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1492 - border-top-left-radius: 16px;
1493 - border-top-right-radius: 16px;
1494 - }
1495 1220 }
1496 -
1497 -
1498 -
1499 -pre {
1500 - background-color: #000;
1501 - border: 1px solid #ddd;
1502 - border-radius: 20px;
1503 - border-left: 3px solid #9e7aff;
1504 - color: #fff;
1505 - page-break-inside: avoid;
1506 - font-family: monospace;
1507 - font-size: 15px;
1508 - line-height: 1.6;
1509 - margin-bottom: 1.6em;
1510 - max-width: 100%;
1511 - overflow: auto;
1512 - padding: 1em 1.5em;
1513 - display: block;
1514 - word-wrap: break-word;
1515 -}
1516 -
1517 -.copy-btn {
1518 - padding: 10px 20px;
1519 - border: none;
1520 - border-radius: 4px;
1521 - background-color: #9e7aff;
1522 - transition: background-color 0.3s;
1523 - color: #fff;
1524 - font-size: 1rem;
1525 - cursor: pointer;
1526 - font-weight: 700;
1527 - margin-bottom: 10px;
1528 -}
1529 -
1530 -.copy-btn:hover {
1531 - opacity: 0.8;
1532 -}
1533 -
1534 -.mxchat-product-card {
1535 - display: flex;
1536 - flex-direction: column;
1537 - align-items: center;
1538 - margin: 10px 0;
1539 - padding: 10px;
1540 - border-radius: 5px;
1541 - background-color: inherit;
1542 -}
1543 -
1544 -.mxchat-product-card img.mxchat-product-image {
1545 - max-width: 100%;
1546 - height: auto;
1547 - margin-bottom: 5px;
1548 - border-radius: 4px;
1549 -}
1550 -
1551 -.mxchat-product-card h3.mxchat-product-name {
1552 - font-size: 16px;
1553 - font-weight: bold;
1554 - margin: 5px 0;
1555 - text-align: center;
1556 - color: inherit;
1557 -}
1558 -
1559 -.mxchat-product-card .mxchat-product-price {
1560 - color: inherit;
1561 - font-weight: bold;
1562 - margin-bottom: 5px;
1563 -}
1564 -
1565 -.mxchat-product-card .mxchat-product-description {
1566 - font-size: 14px;
1567 - text-align: center;
1568 - margin-bottom: 10px;
1569 - color: inherit;
1570 -}
1571 -
1572 -.mxchat-product-card .mxchat-add-to-cart-button {
1573 - background-color: #212121;
1574 - color: #fff;
1575 - padding: 8px 12px;
1576 - border: none;
1577 - cursor: pointer;
1578 - border-radius: 12px;
1579 - transition: background-color 0.3s ease;
1580 -}
1581 -
1582 -.mxchat-product-card .mxchat-add-to-cart-button:hover {
1583 - background-color: #212121;
1584 -}
1585 -
1586 -.mxchat-image-gallery {
1587 - display: flex;
1588 - flex-wrap: wrap;
1589 - gap: 10px;
1590 - justify-content: center;
1591 -}
1592 -
1593 -.mxchat-image-item {
1594 - text-align: center;
1595 - overflow: hidden;
1596 - word-wrap: break-word;
1597 -}
1598 -
1599 -.mxchat-image-title {
1600 - display: block;
1601 - font-size: 14px;
1602 - color: inherit;
1603 - white-space: nowrap;
1604 - overflow: hidden;
1605 - text-overflow: ellipsis;
1606 - max-width: 100%;
1607 -}
1608 -
1609 -.mxchat-image-link {
1610 - text-decoration: none;
1611 -}
1612 -
1613 -.mxchat-image-thumbnail {
1614 - max-width: 100%;
1615 - height: auto;
1616 - border-radius: 5px;
1617 - transition: transform 0.3s;
1618 -}
1619 -
1620 -.mxchat-image-thumbnail:hover {
1621 - transform: scale(1.05);
1622 -}
1623 -
1624 -.mxchat-generated-image {
1625 - max-width: 100%;
1626 - height: auto;
1627 - border-radius: 0 0 8px 8px;
1628 -}
1629 -
1630 -#widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1631 - padding: 10px;
1632 -}
1633 -
1634 -#widget_icon_10 {
1635 - fill: #fff;
1636 -}
1637 -
1638 -
1639 -/* This selector with more context - showing the collapse button in certain states */
1640 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1641 - background: none;
1642 - border: none;
1643 - padding: 0;
1644 - margin: 0px;
1645 - cursor: pointer;
1646 - transition: all 0.2s ease;
1647 - color: #212121;
1648 - display: none; /* Hidden by default */
1649 - align-items: center;
1650 - justify-content: center;
1651 - width: 32px;
1652 - height: 32px;
1653 - box-shadow: none;
1654 - outline: none;
1655 - align-self: center; /* THIS IS MISSING */
1656 - order: -1; /* THIS IS MISSING */
1657 -}
1658 -
1659 -/* ALL hover states - these are MISSING from your new CSS */
1660 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1661 - background: none;
1662 - border: none;
1663 - box-shadow: none;
1664 -}
1665 -
1666 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1667 - outline: none;
1668 - background: none;
1669 - border: none;
1670 - box-shadow: none;
1671 -}
1672 -
1673 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1674 - background: none;
1675 - border: none;
1676 - box-shadow: none;
1677 -}
1678 -
1679 -/* SVG styles - these are MISSING */
1680 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1681 - fill: none;
1682 - stroke: #212121;
1683 - transition: transform 0.2s ease;
1684 - width: 25px;
1685 - height: 25px;
1686 -}
1687 -
1688 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1689 - opacity: 0.7;
1690 -}
1691 -
1692 -/* 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 {
1694 - display: flex;
1695 -}
1696 -
1697 -/* Hide when actually collapsed */
1698 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1699 - 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 -}