PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 1.1.7
MxChat – AI Chatbot & Content Generation for WordPress v1.1.7
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
← All changes | css/chat-style.css +188 -1966 3.2.161.1.7 View file →
@@ -1,1005 +1,128 @@
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;
1 +#widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
2 + padding: 10px;
23 3 }
24 4
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 -/* ========================================
43 - NOTIFICATION SYSTEM
44 - ======================================== */
45 -.chat-notification-badge {
46 - animation: notification-pulse 2s infinite;
47 - box-shadow: 0 0 0 rgba(255, 68, 68, 0.4);
48 - transition: all 0.3s ease;
49 -}
50 -
51 -@keyframes notification-pulse {
52 - 0% {
53 - transform: scale(1);
54 - box-shadow: 0 0 0 0 rgba(255, 68, 68, 0.4);
55 - }
56 - 70% {
57 - transform: scale(1.1);
58 - box-shadow: 0 0 0 10px rgba(255, 68, 68, 0);
59 - }
60 - 100% {
61 - transform: scale(1);
62 - box-shadow: 0 0 0 0 rgba(255, 68, 68, 0);
63 - }
64 -}
65 -
66 -/* ========================================
67 - EMAIL COLLECTION SYSTEM
68 - ======================================== */
69 -.email-blocker {
70 - display: flex;
71 - flex-direction: column;
72 - align-items: center;
73 - justify-content: center;
74 - border-radius: 12px;
75 - padding: 30px 20px;
76 - max-width: 100%;
77 - margin: auto;
78 - text-align: center;
79 - animation: fadeIn 0.5s ease-in-out;
80 -}
81 -
82 -.email-blocker-header {
83 - margin-bottom: 20px;
84 -}
85 -
86 -.email-blocker-logo {
87 - max-width: 80px;
88 - margin-bottom: 10px;
89 -}
90 -
91 -.email-blocker h2 {
92 - font-size: 24px;
93 - font-weight: bold;
94 - color: #333333;
95 - margin-bottom: 10px;
96 -}
97 -
98 -.email-blocker p {
99 - font-size: 16px;
100 - color: #555555;
101 - margin-bottom: 20px;
102 -}
103 -
104 -.email-blocker input[type="email"],
105 -.email-blocker .mxchat-name-input {
106 - width: 100%;
107 - padding: 12px;
108 - margin-bottom: 15px;
109 - border: 1px solid #ddd;
110 - border-radius: 8px;
111 - font-size: 16px;
112 - color: #333333;
113 - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
114 - transition: border-color 0.3s, box-shadow 0.3s;
115 -}
116 -
117 -.email-blocker input[type="email"]:focus,
118 -.email-blocker .mxchat-name-input:focus {
119 - border-color: #0073aa;
120 - box-shadow: 0 0 8px rgba(0, 115, 170, 0.3);
121 - outline: none;
122 -}
123 -
124 -.email-blocker button {
125 - background-color: #0073aa;
126 - color: #ffffff;
127 - padding: 12px 20px;
128 - border: none;
129 - border-radius: 8px;
130 - font-size: 16px;
131 - font-weight: bold;
132 - cursor: pointer;
133 - width: 100%;
134 - transition: background-color 0.3s, transform 0.2s;
135 -}
136 -
137 -.email-blocker button:hover {
138 - background-color: #005177;
139 - transform: translateY(-2px);
140 -}
141 -
142 -.email-blocker-footer {
143 - margin-top: 20px;
144 - font-size: 12px;
145 - color: #888888;
146 -}
147 -
148 -.sr-only {
149 - position: absolute;
150 - width: 1px;
151 - height: 1px;
152 - padding: 0;
153 - margin: -1px;
154 - overflow: hidden;
155 - clip: rect(0, 0, 0, 0);
156 - white-space: nowrap;
157 - border: 0;
158 -}
159 -
160 -@keyframes fadeIn {
161 - from {
162 - opacity: 0;
163 - transform: translateY(-10px);
164 - }
165 - to {
166 - opacity: 1;
167 - transform: translateY(0);
168 - }
169 -}
170 -
171 -.mxchat-chatbot-wrapper {
5 +.invisible {
172 6 display: none;
7 + opacity: 0;
8 + pointer-events: none;
173 9 }
174 10
175 -/* ========================================
176 - SEARCH RESULTS SYSTEM
177 - ======================================== */
178 -.chatbot-title-icon {
179 - width: 24px;
180 - height: 24px;
181 - object-fit: contain;
182 -}
183 -
184 -.wp-admin .mxchat-search-results,
185 -.wp-content .mxchat-search-results,
186 -.site-content .mxchat-search-results,
187 -.mxchat-search-results {
188 - display: flex;
189 - flex-direction: column;
190 - gap: 20px;
191 - margin: 15px 0;
192 - font-size: 14px !important;
193 -}
194 -
195 -.mxchat-search-intro {
196 - font-size: 16px !important;
197 - margin: 0 0 15px 0 !important;
198 - line-height: 1.4 !important;
199 - font-weight: normal !important;
200 -}
201 -
202 -.mxchat-search-item {
203 - padding: 15px !important;
204 - border-radius: 8px !important;
205 - background: #ffffff !important;
206 - border: 1px solid rgba(0, 0, 0, 0.1) !important;
207 -}
208 -
209 -.mxchat-search-header {
210 - display: flex !important;
211 - align-items: center !important;
212 - gap: 8px !important;
213 - margin-bottom: 8px !important;
214 -}
215 -
216 -.mxchat-site-icon {
217 - width: 16px !important;
218 - height: 16px !important;
219 - flex-shrink: 0 !important;
220 -}
221 -
222 -.mxchat-site-url {
223 - font-size: 13px !important;
224 - color: #555 !important;
225 - line-height: 1 !important;
226 -}
227 -
228 -.mxchat-search-content {
229 - display: flex !important;
230 - flex-direction: column !important;
231 - gap: 10px !important;
232 -}
233 -
234 -.mxchat-search-title {
235 - font-size: 16px !important;
236 - line-height: 1.4 !important;
237 - margin: 0 !important;
238 - padding: 0 !important;
239 - font-weight: 600 !important;
240 -}
241 -
242 -.mxchat-search-title a {
243 - text-decoration: none !important;
244 - color: #000 !important;
245 -}
246 -
247 -.mxchat-search-title a:hover {
248 - text-decoration: underline !important;
249 -}
250 -
251 -.mxchat-search-thumbnail {
252 - max-width: 200px !important;
253 - margin: 10px 0 !important;
254 -}
255 -
256 -.mxchat-search-thumbnail img {
257 - max-width: 100% !important;
258 - height: auto !important;
259 - border-radius: 4px !important;
260 -}
261 -
262 -.mxchat-search-description {
263 - font-size: 14px !important;
264 - line-height: 1.6 !important;
265 - color: #333 !important;
266 - margin: 0 !important;
267 - padding: 0 !important;
268 -}
269 -
270 -/* ========================================
271 - ENHANCED HEADINGS & TEXT STYLING
272 - ======================================== */
273 -.bot-message .chat-heading {
274 - color: inherit;
275 - margin: 16px 0 12px 0 !important;
276 - font-weight: bold !important;
277 - line-height: 1.3 !important;
278 -}
279 -
280 -.bot-message h1.chat-heading,
281 -.chat-heading-1 {
282 - font-size: 1.5em !important;
283 - border-bottom: 2px solid rgba(255, 255, 255, 0.3) !important;
284 - padding-bottom: 8px !important;
285 -}
286 -
287 -.bot-message h2.chat-heading,
288 -.chat-heading-2 {
289 - font-size: 1.25em !important;
290 - border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
291 - padding-bottom: 6px !important;
292 -}
293 -
294 -.bot-message h3.chat-heading,
295 -.chat-heading-3 {
296 - font-size: 1.125em !important;
297 -}
298 -
299 -.bot-message h4.chat-heading,
300 -.chat-heading-4 {
301 - font-size: 1em !important;
302 -}
303 -
304 -.bot-message h5.chat-heading,
305 -.chat-heading-5 {
306 - font-size: 0.875em !important;
307 - text-transform: uppercase !important;
308 - letter-spacing: 0.5px !important;
309 -}
310 -
311 -.bot-message h6.chat-heading,
312 -.chat-heading-6 {
313 - font-size: 0.75em !important;
314 - text-transform: uppercase !important;
315 - letter-spacing: 0.5px !important;
316 -}
317 -
318 -.bot-message strong {
319 - font-weight: bold !important;
320 -}
321 -
322 -.bot-message em {
323 - font-style: italic !important;
324 -}
325 -
326 -.bot-message del {
327 - text-decoration: line-through !important;
328 - opacity: 0.7;
329 -}
330 -
331 -/* ========================================
332 - CODE BLOCKS & INLINE CODE
333 - ======================================== */
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 -.mxchat-code-block-container {
364 - margin: 16px 0;
365 - border-radius: 8px;
366 - background: rgba(255, 255, 255, 0.1);
367 - border: 1px solid rgba(255, 255, 255, 0.2);
368 - overflow: hidden;
369 - font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace;
370 -}
371 -
372 -.mxchat-code-header {
373 - display: flex;
374 - justify-content: space-between;
375 - align-items: center;
376 - background: rgba(255, 255, 255, 0.15);
377 - padding: 8px 12px;
378 - border-bottom: 1px solid rgba(255, 255, 255, 0.2);
379 - font-size: 11px;
380 - min-height: 36px;
381 -}
382 -
383 -.mxchat-code-language {
384 - color: rgba(255, 255, 255, 0.8);
385 - font-weight: 600;
386 - text-transform: uppercase;
387 - letter-spacing: 0.5px;
388 - font-size: 10px;
389 -}
390 -
391 -.mxchat-copy-button {
392 - background: rgba(255, 255, 255, 0.2);
393 - color: white;
394 - border: 1px solid rgba(255, 255, 255, 0.3);
395 - padding: 4px 8px;
396 - border-radius: 4px;
397 - font-size: 10px;
398 - cursor: pointer;
399 - transition: all 0.2s ease;
400 - min-height: 24px;
401 - line-height: 1;
402 -}
403 -
404 -.mxchat-copy-button:hover {
405 - background: rgba(255, 255, 255, 0.3);
406 - border-color: rgba(255, 255, 255, 0.4);
407 -}
408 -
409 -.mxchat-copy-button:active {
410 - background: rgba(255, 255, 255, 0.4);
411 -}
412 -
413 -.mxchat-code-block {
11 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
12 + font-size: 0.75rem;
414 13 margin: 0;
415 - padding: 16px;
416 - background: rgba(0, 0, 0, 0.3);
417 - overflow-x: auto;
418 - font-size: 13px;
419 - line-height: 1.4;
420 - white-space: pre;
421 - border: none;
14 + color: #71717a;
422 15 }
423 16
424 -.mxchat-code-block code {
425 - font-family: inherit;
426 - font-size: inherit;
427 - background: none !important;
428 - padding: 0 !important;
429 - border: none !important;
430 - color: rgba(255, 255, 255, 0.95) !important;
431 - display: block;
432 -}
17 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
18 + color: #0073aa; /* You can specify the color for the link */
19 + text-decoration: underline;
20 + font-size: 0.75rem;
433 21
434 -.mxchat-inline-code {
435 - background: rgba(255, 255, 255, 0.2) !important;
436 - padding: 2px 6px !important;
437 - border-radius: 3px !important;
438 - font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace !important;
439 - font-size: 0.85em !important;
440 - color: #81c784 !important;
441 - border: 1px solid rgba(255, 255, 255, 0.3) !important;
442 22 }
443 23
444 -/* ========================================
445 - TOOLBAR SYSTEM
446 - ======================================== */
447 -.active-pdf-container,
448 -.active-word-container {
449 - display: inline-flex;
450 - align-items: center;
451 - max-width: 200px;
452 - margin: 0;
453 - padding: 0;
454 - line-height: 13px;
455 -}
456 -
457 -.active-pdf-name,
458 -.active-word-name {
459 - font-size: 11px;
460 - white-space: nowrap;
461 - overflow: hidden;
462 - text-overflow: ellipsis;
463 -}
464 -
465 -.remove-pdf-btn,
466 -.remove-word-btn,
467 -.toolbar-perplexity {
468 - background: none;
469 - border: none;
470 - padding: 2px;
471 - margin-left: 4px;
24 +#mxchat-chatbot #chat-container #input-container #send-button, .copy-btn {
25 + transition: background-color .3s;
26 + color: #fff;
27 + font-size: 1rem;
472 28 cursor: pointer;
473 - transition: opacity 0.2s;
474 - line-height: 13px;
29 + font-weight: 700;
475 30 }
476 31
477 -.remove-pdf-btn:hover,
478 -.remove-word-btn:hover,
479 -.toolbar-perplexity:hover {
480 - opacity: 1;
481 - background: none;
482 -}
483 -
484 -.mxchat-chatbot .chat-toolbar {
485 - display: flex;
486 - gap: 10px;
487 - padding: 8px;
488 - background: none;
489 - align-items: end;
490 -}
491 -
492 -.mxchat-chatbot .toolbar-btn {
493 - background: none;
494 - border: none;
495 - padding: 0;
496 - cursor: pointer;
497 - width: 16px;
498 - height: 16px;
499 - align-items: center;
500 - justify-content: center;
501 - opacity: 0.6;
502 - transition: opacity 0.2s;
503 - margin: 0;
504 - min-width: 0;
505 - box-shadow: none;
506 -}
507 -
508 -.mxchat-chatbot .toolbar-btn svg {
509 - width: 100%;
510 - height: 100%;
511 -}
512 -
513 -.mxchat-chatbot .toolbar-btn:hover {
514 - opacity: 1;
515 - background: none;
516 - border: none;
517 - box-shadow: none;
518 -}
519 -
520 -.mxchat-chatbot .toolbar-btn:disabled {
521 - opacity: 0.3;
522 - cursor: not-allowed;
523 - background: none;
524 - border: none;
525 -}
526 -
527 -.toolbar-btn.active {
528 - background-color: rgba(120, 115, 245, 0.2);
529 - box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.4);
530 -}
531 -
532 -.active-perplexity-container {
533 - display: flex;
534 - align-items: center;
535 - margin-left: 8px;
536 - font-size: 12px;
537 -}
538 -
539 -.perplexity-search-btn {
540 - display: none;
541 -}
542 -
543 -.perplexity-search-btn.active {
544 - opacity: 1;
545 -}
546 -
547 -/* ========================================
548 - POPULAR QUESTIONS SYSTEM
549 - ======================================== */
550 -.mxchat-popular-questions {
551 - padding: 0 10px 10px;
552 - transition: all 0.3s ease;
553 - margin-bottom: 12px;
554 - position: relative;
555 -}
556 -
557 -.mxchat-popular-questions-title {
558 - font-size: 14px;
559 - line-height: 24px;
560 - font-weight: bold;
561 - color: #212121;
562 - margin-bottom: 10px;
563 -}
564 -
565 -.mxchat-popular-questions-container {
566 - position: relative;
567 - display: flex;
568 - flex-direction: column;
569 - max-height: 200px;
570 - overflow-y: auto;
571 - padding: 0 10px 10px;
572 - scrollbar-width: thin;
573 - scrollbar-color: #212121 #f1f1f1;
574 - transition: all 0.3s ease;
575 - gap: 8px;
576 -}
577 -
578 -.mxchat-popular-questions.collapsed {
579 - padding: 0;
580 - margin: 0;
581 -}
582 -
583 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
584 - flex-direction: row;
585 - justify-content: center;
586 - align-items: center;
587 - padding: 0;
588 - max-height: 40px;
589 - overflow: visible;
590 -}
591 -
592 -.mxchat-popular-questions.collapsed .mxchat-popular-question {
593 - display: none;
594 -}
595 -
596 -.mxchat-popular-questions.collapsed .questions-collapse-btn {
597 - display: none;
598 -}
599 -
600 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
601 - background: none;
602 - border: none;
603 - padding: 0;
604 - margin: 0;
605 - cursor: pointer;
606 - transition: all 0.2s ease;
607 - color: #212121;
608 - display: none; /* Hidden by default when open */
609 - align-items: center;
610 - justify-content: center;
611 - width: 32px;
612 - height: 32px;
613 - box-shadow: none;
614 - outline: none;
615 -}
616 -
617 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
618 - background: none;
619 - border: none;
620 - padding: 0;
621 - margin: 0px; /* Center and add bottom margin */
622 - cursor: pointer;
623 - transition: all 0.2s ease;
624 - color: #212121;
625 - display: none; /* Hidden by default */
626 - align-items: center;
627 - justify-content: center;
628 - width: 32px;
629 - height: 32px;
630 - box-shadow: none;
631 - outline: none;
632 - align-self: center; /* Center in flex container */
633 - order: -1; /* Make sure it appears first */
634 - flex-shrink: 0; /* same flex auto-minimum caveat as .mxchat-popular-question */
635 -}
636 -
637 -.questions-toggle-btn:hover,
638 -.questions-collapse-btn:hover,
639 -.questions-toggle-btn:focus,
640 -.questions-collapse-btn:focus,
641 -.questions-toggle-btn:active,
642 -.questions-collapse-btn:active {
643 - background: none;
644 - border: none;
645 - box-shadow: none;
646 - outline: none;
647 -}
648 -
649 -.questions-toggle-btn svg,
650 -.questions-collapse-btn svg {
651 - transition: transform 0.2s ease;
652 - fill: none;
653 - stroke: #212121;
654 - width: 25px;
655 - height: 25px;
656 -}
657 -
658 -.questions-toggle-btn:hover svg,
659 -.questions-collapse-btn:hover svg {
660 - opacity: 0.7;
661 -}
662 -
663 -.mxchat-popular-questions.collapsed .questions-toggle-btn {
664 - display: flex;
665 -}
666 -
667 -.mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
668 - display: flex;
669 - align-self: center;
670 - order: -1;
671 -}
672 -
673 -.mxchat-popular-question {
674 - padding: 12px 20px;
675 - background-color: #f5f5f5;
676 - border: 1px solid #bbb;
677 - border-radius: 8px;
678 - color: #212121;
679 - font-size: 14px;
680 - line-height: 24px;
681 - cursor: pointer;
682 - text-align: initial;
683 - transition: all 0.3s ease;
684 - margin-bottom: 0;
685 - 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 -}
692 -
693 -.mxchat-popular-question:hover {
694 - background-color: #eaeaea;
695 - border-color: #999;
696 - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
697 - transform: translateY(-1px);
698 -}
699 -
700 -.mxchat-popular-question:focus {
701 - outline: none;
702 - background-color: #e0e0e0;
703 - border-color: #777;
704 - box-shadow: 0 0 0 3px rgba(100, 149, 237, 0.5);
705 -}
706 -
707 -.mxchat-popular-question:active {
708 - background-color: #d8d8d8;
709 - border-color: #666;
710 - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
711 - transform: translateY(0);
712 -}
713 -
714 -.mxchat-popular-questions-container::-webkit-scrollbar {
715 - width: 8px;
716 -}
717 -
718 -.mxchat-popular-questions-container::-webkit-scrollbar-track {
719 - background: #f1f1f1;
720 - border-radius: 4px;
721 -}
722 -
723 -.mxchat-popular-questions-container::-webkit-scrollbar-thumb {
724 - background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
725 - border-radius: 4px;
726 -}
727 -
728 -.mxchat-popular-questions-container::-webkit-scrollbar-thumb:hover {
729 - background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
730 -}
731 -
732 -/* ========================================
733 - CORE CHATBOT UI
734 - ======================================== */
735 -.invisible {
736 - display: none;
737 - opacity: 0;
738 - pointer-events: none;
739 -}
740 -
741 -.mxchat-chatbot{
742 - background: #fff;
32 +#mxchat-chatbot {
33 + max-width: 800px;
743 34 overflow: hidden;
744 35 position: relative;
745 36 display: flex;
746 37 flex-direction: column;
38 + height: 500px;
39 + box-sizing: border-box;
747 40 flex-grow: 1;
748 - min-height: 0; /* Allow flex shrinking */
749 - box-sizing: border-box;
750 41 }
751 42
752 -.chat-container {
43 +#chat-container {
753 44 display: flex;
754 45 flex-direction: column;
755 - flex-grow: 1;
756 - min-height: 0; /* Critical for flex overflow scrolling */
757 46 height: 100%;
758 47 }
759 48
760 -.chat-box {
49 +#chat-box {
761 50 flex-grow: 1;
762 51 overflow-y: auto;
763 52 padding: 10px;
764 53 margin-bottom: 0;
765 54 font-size: 1rem;
766 - min-height: 0; /* Critical for flex overflow scrolling */
767 55 }
768 56
769 -.chat-box::-webkit-scrollbar {
57 +#chat-box::-webkit-scrollbar {
770 58 width: 5px;
771 59 }
772 60
773 -.chat-box::-webkit-scrollbar-thumb {
774 - background-color: #212121;
61 +#chat-box::-webkit-scrollbar-thumb {
62 + background-color: #333;
775 63 border-radius: 20px;
776 64 }
777 65
778 -.bot-message,
779 -.user-message {
66 +.bot-message, .user-message {
780 67 margin-bottom: 15px;
781 68 padding: 10px;
782 69 display: inline-block;
783 70 max-width: 85%;
784 - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
785 - font-size: 14px;
786 - line-height: 24px;
71 + box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
787 72 }
788 73
789 74 .user-message {
790 - background: #fff;
791 - color: #212121;
792 - text-align: left;
793 - float: right;
794 - clear: both;
795 - border-radius: 18px 0 18px 18px;
796 - word-wrap: break-word;
797 - border: 1px solid rgba(226, 232, 255, 0.2);
75 + background: #fff;
76 + color: #212121;
77 + text-align: left;
78 + float: right;
79 + clear: both;
80 + border-radius: 18px 0 18px 18px;
81 + border: solid 1px #212121;
798 82 }
799 83
800 -.user-message p {
801 - margin: 0;
84 +#mxchat-chatbot #chat-container #chat-box .bot-message {
85 + text-align: left;
86 + float: left;
87 + clear: both;
88 + border: 1px solid rgba(226, 232, 255, .2);
89 + border-radius: 0 18px 18px;
90 + background: #212121;
91 + color: #fff;
802 92 }
803 93
804 -.mxchat-chatbot .chat-container .chat-box .bot-message {
805 - float: left;
806 - clear: both;
807 - border: 1px solid rgba(226, 232, 255, 0.2);
808 - border-radius: 0 18px 18px;
809 - background: #212121;
810 - color: #fff;
811 - overflow-x: hidden;
812 -}
813 -
814 -.mxchat-chatbot .chat-container .chat-box .agent-message {
815 - text-align: left;
816 - float: left;
817 - clear: both;
818 - border: 1px solid rgba(226, 232, 255, 0.2);
819 - border-radius: 0 18px 18px;
820 - background: #212121;
821 - color: #fff;
822 - overflow-x: hidden;
823 - margin-bottom: 15px;
824 - padding: 10px;
825 - display: inline-block;
826 - max-width: 85%;
827 - font-size: 14px;
828 - line-height: 24px;
829 - box-shadow: -2px 2px rgba(250, 115, 230, 0.6), -4px 4px rgba(120, 115, 245, 0.6);
830 -}
831 -
832 -.bot-message p {
833 - margin: 0 0 1em 0;
834 -}
835 -
836 -.bot-message p:last-child {
837 - margin-bottom: 0;
838 -}
839 -
840 -.bot-message {
841 - white-space: pre-line;
842 -}
843 -
844 -.bot-message a {
845 - color: #ffffff;
846 - text-decoration: underline !important;
847 -}
848 -
849 -.bot-message a:hover {
850 - color: #e0e0e0;
851 - text-decoration: underline;
852 -}
853 -
854 -.bot-message a:visited {
855 - color: #ffffff;
856 -}
857 -
858 -.system-message {
859 - padding: 8px 12px;
860 - margin: 8px 0;
861 - background-color: rgba(120, 115, 245, 0.1);
862 - border-radius: 8px;
863 - color: #555;
864 - font-style: italic;
865 - font-size: 14px;
866 - text-align: center;
867 -}
868 -
869 -.mxchat-chatbot-wrapper {
870 - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
94 +#mxchat-chatbot-wrapper {
95 + box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
871 96 border-radius: 10px;
872 97 display: flex;
873 98 flex-direction: column;
874 99 height: 100%;
875 100 width: 100%;
876 - min-height: 0; /* Allow flex shrinking */
877 - overflow: hidden;
878 101 }
879 102
880 -/* ========================================
881 - INPUT & CONTROLS
882 - ======================================== */
883 -.mxchat-chatbot .chat-container .input-container {
103 +#mxchat-chatbot #chat-container #input-container {
884 104 position: relative;
885 105 display: flex;
886 106 align-items: center;
887 - padding-right: 40px;
888 - border: 1px solid #ccc;
889 - border-radius: 10px;
890 - margin: 0 10px 10px;
107 + padding: 10px;
891 108 }
892 109
893 -.mxchat-chatbot .chat-container .input-container .chat-input {
110 +#mxchat-chatbot #chat-container #input-container #chat-input {
894 111 flex-grow: 1;
112 + padding: .5rem 2.5rem .5rem .5rem;
113 + border-radius: 10px;
114 + border: 1px solid #212121;
895 115 color: #212121;
896 - line-height: 24px;
897 - background: transparent;
898 - margin-bottom: 0;
899 - width: 100%;
900 - min-height: 20px;
901 - max-height: 65px;
902 - resize: none;
903 - overflow-y: auto;
904 - font-size: 16px;
905 - border: none;
906 - border-radius: 5px;
907 - box-sizing: border-box;
908 - padding: 0.4em 0.5em;
909 - outline: none;
910 - border-radius: 10px;
116 + font-size: 1rem;
117 + background: 0 0;
118 + width: calc(100% - 30px);
119 + margin-bottom: 0px;
120 + height: 100%;
911 121 }
912 122
913 -.chat-input::-webkit-scrollbar {
914 - width: 8px;
915 -}
916 -
917 -.chat-input::-webkit-scrollbar-track {
918 - background: #f1f1f1;
919 - border-radius: 4px;
920 -}
921 -
922 -.chat-input::-webkit-scrollbar-thumb {
923 - background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
924 - border-radius: 4px;
925 -}
926 -
927 -.chat-input::-webkit-scrollbar-thumb:hover {
928 - background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
929 -}
930 -
931 -.chat-input {
932 - scrollbar-width: thin;
933 - scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
934 -}
935 -
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 {
942 - 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;
123 +#mxchat-chatbot #chat-container #input-container #send-button {
124 + position:absolute;
1002 125 right: 10px;
1003 126 top: 50%;
1004 127 transform: translateY(-50%);
1005 128 border: none;
@@ -1008,364 +131,225 @@
1008 131 height: 30px;
1009 132 display: flex;
1010 133 align-items: center;
1011 134 justify-content: center;
1012 - background: transparent !important;
135 + background: 0 0!important;
1013 136 padding: 5px;
1014 - margin: 0;
1015 - transition: background-color 0.3s;
1016 - color: #fff;
1017 - font-size: 1rem;
1018 - cursor: pointer;
1019 - font-weight: 700;
137 + margin: 0px 0px 0px 0px;
1020 138 }
1021 139
1022 -.send-button svg {
1023 - width: 25px;
1024 - height: 25px;
1025 - pointer-events: none;
140 +#mxchat-chatbot #chat-container #input-container #send-button .fa-paper-plane {
141 + font-size: 1.3rem;
1026 142 }
1027 143
1028 -.send-button:hover {
1029 - opacity: 0.8;
144 +#send-button:hover, .copy-btn:hover {
145 + opacity: .8;
1030 146 }
1031 147
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;
148 +#mxchat-chatbot:after {
149 + content: "";
150 + display: table;
151 + clear: both;
1037 152 }
1038 153
1039 -.mxchat-chatbot .spinner {
1040 - animation: rotate 2s linear infinite;
1041 - width: 20px;
1042 - height: 20px;
154 +pre {
155 + background-color: #000;
156 + border: 1px solid #ddd;
157 + border-radius: 20px;
158 + border-left: 3px solid #9e7aff;
159 + color: #fff;
160 + page-break-inside: avoid;
161 + font-family: monospace;
162 + font-size: 15px;
163 + line-height: 1.6;
164 + margin-bottom: 1.6em;
165 + max-width: 100%;
166 + overflow: auto;
167 + padding: 1em 1.5em;
168 + display: block;
169 + word-wrap: break-word;
1043 170 }
1044 171
1045 -.mxchat-chatbot .spinner circle {
1046 - stroke: #212121;
1047 - stroke-linecap: round;
1048 - animation: dash 1.5s ease-in-out infinite;
172 +.copy-btn {
173 + padding: 10px 20px;
174 + border: none;
175 + border-radius: 4px;
176 + background-color: #9e7aff;
1049 177 }
1050 178
1051 -@keyframes rotate {
1052 - 100% {
1053 - transform: rotate(360deg);
1054 - }
1055 -}
1056 -
1057 -@keyframes dash {
1058 - 0% {
1059 - stroke-dasharray: 1, 150;
1060 - stroke-dashoffset: 0;
1061 - }
1062 - 50% {
1063 - stroke-dasharray: 90, 150;
1064 - stroke-dashoffset: -35;
1065 - }
1066 - 100% {
1067 - stroke-dasharray: 90, 150;
1068 - stroke-dashoffset: -124;
1069 - }
1070 -}
1071 -
1072 -/* ========================================
1073 - FLOATING CHATBOT & CONTROLS
1074 - ======================================== */
1075 -.chatbot-title-container {
1076 - display: flex;
1077 - align-items: center;
1078 - justify-content: space-between;
1079 - gap: 10px;
1080 - flex: 1 1 auto;
1081 - min-width: 0;
1082 -}
1083 -
1084 -.chatbot-title-group {
1085 - display: flex;
1086 - align-items: center;
1087 - gap: 8px;
1088 -}
1089 -
1090 -.chat-mode-indicator {
1091 - 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);
1097 - color: #ffffff;
1098 - display: inline-flex;
1099 - align-items: center;
1100 - height: 22px;
1101 - white-space: nowrap;
1102 - flex: 0 0 auto;
1103 -}
1104 -
1105 -.floating-chatbot {
179 +#floating-chatbot {
1106 180 position: fixed;
1107 181 bottom: 25px;
1108 182 right: 25px;
1109 183 width: 375px;
1110 - /* Use viewport-aware height with fallbacks */
1111 - height: min(625px, calc(100vh - 50px)); /* 50px = 25px top + 25px bottom margin */
1112 - height: min(625px, calc(100dvh - 50px)); /* Dynamic viewport height for mobile browsers */
1113 - max-height: calc(100vh - 50px);
1114 - max-height: calc(100dvh - 50px); /* Fallback for browsers supporting dvh */
1115 - box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
184 + height: 625px;
185 + box-shadow: 0 0 10px rgba(0, 0, 0, .25);
1116 186 border-radius: 20px;
1117 187 overflow: hidden;
1118 188 display: flex;
1119 - flex-direction: column;
1120 189 z-index: 100000;
1121 - transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
190 + transition: transform .3s ease-in-out, opacity .3s ease-in-out;
1122 191 transform: translateY(20%);
1123 192 opacity: 0;
1124 193 pointer-events: none;
1125 194 }
1126 195
1127 -.floating-chatbot.visible {
196 +#floating-chatbot.visible {
1128 197 transform: translateY(0);
1129 198 opacity: 1;
1130 199 pointer-events: auto;
1131 200 }
1132 201
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;
202 +#floating-chatbot-button.hidden, .exit-chat span {
203 + display: none!important;
1141 204 }
1142 205
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,
1149 -.exit-chat span {
1150 - display: none !important;
1151 -}
1152 -
1153 -.chatbot-top-bar button.exit-chat:hover {
1154 - background: rgba(255, 255, 255, 0.12);
1155 -}
1156 206 .visible {
1157 207 display: flex;
1158 208 }
1159 209
1160 -.floating-chatbot-button {
210 +#floating-chatbot-button {
1161 211 transition: opacity 1s ease-in-out;
1162 212 font-size: 1.25rem;
1163 213 position: fixed;
1164 214 bottom: 30px;
1165 215 right: 25px;
1166 - background-color: #212121;
216 + background-color: #d63638;
1167 217 color: #fff;
1168 218 width: 60px;
1169 219 height: 60px;
1170 220 border-radius: 50%;
1171 - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
221 + box-shadow: 0 4px 8px rgba(0, 0, 0, .2)!important;
1172 222 justify-content: center;
1173 223 align-items: center;
1174 224 cursor: pointer;
1175 - transition: 0.3s;
225 + transition: .3s;
1176 226 z-index: 100000;
1177 - display: flex;
227 + display: flex;
1178 228 }
1179 229
1180 -.floating-chatbot-button:focus-visible {
1181 - outline: 3px solid #7873f5;
1182 - outline-offset: 3px;
1183 -}
1184 -
1185 -.floating-chatbot-button img {
230 +#floating-chatbot-button img {
1186 231 max-width: 100%;
1187 232 max-height: 100%;
233 + padding: 10px;
1188 234 width: auto;
1189 235 height: auto;
1190 236 }
1191 237
1192 -.chatbot-top-bar {
1193 - background: #212121;
238 +#mxchat-chatbot-wrapper.active+#floating-chatbot-button {
239 + bottom: 530px;
240 + width: 100%;
1194 241 }
1195 242
1196 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1197 - 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;
243 +.chatbot-close-button {
244 + position: absolute;
245 + top: 5px;
246 + right: 5px;
1201 247 border: none;
1202 - opacity: 0.8;
1203 - 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;
248 + background: 0 0;
249 + cursor: pointer;
250 + font-size: 20px;
251 + color: #f0f0f1;
1217 252 }
1218 253
1219 -.mxchat-chatbot-wrapper .chatbot-top-bar {
254 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1220 255 cursor: pointer;
1221 256 color: #fff;
1222 - padding: 8px 12px;
1223 - min-height: 48px;
1224 - gap: 8px;
257 + padding: 10px;
1225 258 border-top-left-radius: 10px;
1226 259 border-top-right-radius: 10px;
1227 260 display: flex;
1228 261 justify-content: space-between;
1229 - align-items: center;
262 + align-items: baseline;
1230 263 }
1231 264
1232 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1233 - font-size: 15px;
1234 - line-height: 1.2;
1235 - padding: 0;
265 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
266 + font-size: 1rem;
267 + line-height: 25px;
268 + padding: 10px;
1236 269 margin: 0;
1237 270 font-family: 'Plus Jakarta Sans', sans-serif;
1238 - font-weight: 600;
271 + font-weight: bold;
1239 272 }
1240 273
274 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title span {
275 + font-weight: 700;
276 +}
277 +
278 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
279 + background: 0 0;
280 + border: none;
281 + opacity: .8;
282 +}
283 +
1241 284 .exit-chat {
1242 285 border: none;
1243 - background: transparent;
286 + background: 0 0;
1244 287 cursor: pointer;
1245 - display: inline-flex;
288 + display: flex;
1246 289 align-items: center;
1247 290 justify-content: center;
1248 - padding: 0;
291 + padding: 5px;
1249 292 margin-left: auto;
1250 - opacity: 0.8;
1251 - width: 32px;
1252 - height: 32px;
1253 - min-width: 32px;
1254 - flex: 0 0 auto;
1255 293 }
1256 294
1257 295 .exit-chat svg {
1258 - width: 18px;
1259 - height: 18px;
1260 - fill: none;
1261 - stroke: currentColor;
296 + fill: white;
297 + width: 24px;
298 + height: 24px;
299 + transform: rotate(270deg);
1262 300 }
1263 301
1264 -.mxchat-chatbot-wrapper .chatbot-footer {
302 +#mxchat-chatbot-wrapper .chatbot-footer {
1265 303 text-align: center;
1266 304 padding-bottom: 10px;
1267 - font-size: 0.85em;
305 + font-size: .85em;
1268 306 }
1269 307
1270 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1271 - font-size: 12px;
1272 - margin: 0;
1273 - color: #71717a;
1274 -}
1275 -
1276 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1277 - color: #0073aa;
1278 - text-decoration: underline;
1279 - font-size: 12px;
1280 -}
1281 -
1282 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
308 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1283 309 text-decoration: none;
1284 310 color: inherit;
1285 311 font-weight: 700;
1286 312 }
1287 313
1288 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
314 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1289 315 text-decoration: underline;
1290 316 }
1291 317
1292 -/* ========================================
1293 - INIT LOADER (shown while chat initializes)
1294 - ======================================== */
1295 -.mxchat-init-loader {
318 +.thinking-dots-container {
1296 319 display: flex;
1297 - align-items: center;
1298 320 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 - THINKING DOTS ANIMATION
1327 - ======================================== */
1328 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1329 - display: flex;
1330 - justify-content: center;
1331 321 align-items: center;
1332 322 overflow: hidden;
1333 - height: 20px;
1334 - position: relative;
1335 - z-index: 1;
1336 - flex-shrink: 0;
323 + height: 20px; /* Adjust as needed */
1337 324 }
1338 325
1339 -.chat-box .bot-message.temporary-message .thinking-dots {
326 +.thinking-dots {
1340 327 display: flex;
1341 328 justify-content: center;
1342 329 align-items: center;
1343 330 height: 90%;
1344 - gap: 5px;
1345 - flex-shrink: 0;
1346 331 }
1347 332
1348 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1349 - height: 6px;
1350 - width: 6px;
333 +.dot {
334 + height: 8px;
335 + width: 8px;
1351 336 margin: 0 3px;
1352 337 background-color: #fff;
1353 338 border-radius: 50%;
1354 339 display: inline-block;
1355 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1356 - vertical-align: middle;
340 + animation: bounce 1.4s ease-in-out infinite both;
1357 341 }
1358 342
1359 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1360 - animation-delay: -0.32s;
343 +.dot:first-child {
344 + animation-delay: -.32s;
1361 345 }
1362 346
1363 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1364 - animation-delay: -0.16s;
347 +.dot:nth-child(2) {
348 + animation-delay: -.16s;
1365 349 }
1366 350
1367 -@keyframes mxchat-dot-bounce {
351 +@keyframes bounce {
1368 352 0%, 100%, 80% {
1369 353 transform: scale(1);
1370 354 }
1371 355 40% {
@@ -1372,41 +356,39 @@
1372 356 transform: scale(1.5);
1373 357 }
1374 358 }
1375 359
1376 -/* ========================================
1377 - PRE-CHAT MESSAGE
1378 - ======================================== */
1379 -.pre-chat-message {
360 +
361 +
362 +#pre-chat-message {
1380 363 position: fixed;
1381 - bottom: 85px;
1382 - right: 30px;
364 + bottom: 85px;
365 + right: 30px;
1383 366 background-color: #fff;
1384 - color: #212121;
367 + color: #333;
1385 368 padding: 10px;
1386 - box-shadow: 0px 0px 10px rgba(150, 150, 150, 0.3);
369 + box-shadow: rgba(150, 150, 150, 0.2) 0px 10px 30px 0px, rgba(150, 150, 150, 0.2) 0px 0px 0px 1px;
1387 370 border-radius: 5px;
1388 371 z-index: 1000;
1389 - cursor: pointer;
1390 - max-width: 325px;
372 + cursor: pointer;
373 + max-width: 70vw;
1391 374 font-size: 14px;
1392 - display: none;
375 + display: none;
376 + background: #fff;
1393 377 margin-bottom: 10px;
1394 378 }
1395 379
1396 -.pre-chat-message .close-pre-chat-message {
380 +#pre-chat-message .close-pre-chat-message {
1397 381 position: absolute;
1398 382 top: -6px;
1399 383 right: -6px;
1400 384 background-color: #ccc;
1401 385 border: none;
1402 - color: #212121;
386 + color: #333;
1403 387 font-size: 14px;
1404 388 cursor: pointer;
1405 389 border-radius: 50%;
1406 390 width: 20px;
1407 - min-width: 20px;
1408 - min-height: 20px;
1409 391 height: 20px;
1410 392 display: flex;
1411 393 align-items: center;
1412 394 justify-content: center;
@@ -1411,804 +393,44 @@
1411 393 align-items: center;
1412 394 justify-content: center;
1413 395 padding: 0;
1414 396 line-height: 1;
397 + display: flex; /* Show the close button on hover */
1415 398 }
1416 399
1417 -/* ========================================
1418 - VIEWPORT HEIGHT CONSTRAINTS
1419 - Handles bookmarks bar, browser zoom, and smaller screens
1420 - ======================================== */
1421 -@media screen and (max-height: 700px) {
1422 - .floating-chatbot {
1423 - bottom: 15px;
1424 - height: calc(100vh - 30px);
1425 - height: calc(100dvh - 30px);
1426 - max-height: calc(100vh - 30px);
1427 - max-height: calc(100dvh - 30px);
1428 - }
1429 400
1430 - .floating-chatbot-button {
1431 - bottom: 20px;
1432 - }
1433 401
1434 - .pre-chat-message {
1435 - bottom: 75px;
1436 - }
1437 -}
1438 -
1439 -@media screen and (max-height: 550px) {
1440 - .floating-chatbot {
1441 - bottom: 10px;
1442 - height: calc(100vh - 20px);
1443 - height: calc(100dvh - 20px);
1444 - max-height: calc(100vh - 20px);
1445 - max-height: calc(100dvh - 20px);
1446 - }
1447 -
1448 - /* Reduce padding in tight spaces */
1449 - .mxchat-popular-questions {
1450 - padding: 0 8px 5px;
1451 - margin-bottom: 8px;
1452 - }
1453 -
1454 - .mxchat-popular-question {
1455 - padding: 8px 12px;
1456 - font-size: 13px;
1457 - line-height: 20px;
1458 - }
1459 -
1460 - .mxchat-chatbot .chat-container .input-container {
1461 - margin: 0 8px 8px;
1462 - }
1463 -
1464 - .mxchat-chatbot-wrapper .chatbot-footer {
1465 - padding-bottom: 5px;
1466 - }
1467 -}
1468 -
1469 -/* ========================================
1470 - MOBILE RESPONSIVE
1471 - ======================================== */
1472 -@media screen and (max-width: 782px) {
1473 - .mxchat-search-results {
1474 - gap: 15px !important;
1475 - }
1476 -
1477 - .mxchat-search-intro {
1478 - font-size: 15px !important;
1479 - }
1480 -
1481 - .mxchat-search-title {
1482 - font-size: 15px !important;
1483 - }
1484 -
1485 - .mxchat-search-description {
1486 - font-size: 13px !important;
1487 - }
1488 -}
1489 -
1490 402 @media (max-width: 550px) {
1491 - .questions-toggle-btn,
1492 - .questions-collapse-btn {
1493 - width: 28px;
1494 - height: 28px;
403 +
404 + #pre-chat-message {
405 + bottom: 70px; /* Adjust this value as needed */
406 + right: 15px; /* Adjust this value as needed */
1495 407 }
1496 -
1497 - .questions-toggle-btn svg,
1498 - .questions-collapse-btn svg {
1499 - width: 22px;
1500 - height: 22px;
1501 - }
1502 -
1503 - .pre-chat-message {
1504 - bottom: 70px;
1505 - right: 15px;
1506 - }
1507 -
1508 - .chat-input {
408 +
409 + #chat-input {
1509 410 width: calc(100% - 70px);
1510 411 }
1511 -
1512 - .bot-message,
1513 - .user-message {
412 + .bot-message, .user-message {
1514 413 padding: 10px;
1515 414 max-width: 95%;
1516 415 }
1517 -
1518 - .floating-chatbot-button {
416 + #floating-chatbot-button {
1519 417 bottom: 15px;
1520 418 right: 10px;
1521 419 }
1522 -
1523 - .floating-chatbot {
1524 - width: calc(100vw - 16px);
1525 - /* 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);
420 + #floating-chatbot {
421 + width: 100vw;
422 + height: calc(var(--vh, 1vh) * 100);
1531 423 margin: 0;
1532 424 padding: 0;
1533 425 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);
426 + bottom: 0;
427 + top: 0;
428 + left: 0;
429 + right: 0;
430 + border-radius: 0;
1540 431 }
1541 -
1542 - .floating-chatbot .mxchat-chatbot-wrapper {
1543 - border-radius: 16px;
1544 - overflow: hidden;
432 + #mxchat-chatbot-wrapper .chatbot-top-bar {
433 + border-top-left-radius: 0;
434 + border-top-right-radius: 0;
1545 435 }
1546 -
1547 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1548 - border-top-left-radius: 16px;
1549 - border-top-right-radius: 16px;
1550 - }
1551 436 }
1552 -
1553 -
1554 -
1555 -pre {
1556 - background-color: #000;
1557 - border: 1px solid #ddd;
1558 - border-radius: 20px;
1559 - border-left: 3px solid #9e7aff;
1560 - color: #fff;
1561 - page-break-inside: avoid;
1562 - font-family: monospace;
1563 - font-size: 15px;
1564 - line-height: 1.6;
1565 - margin-bottom: 1.6em;
1566 - max-width: 100%;
1567 - overflow: auto;
1568 - padding: 1em 1.5em;
1569 - display: block;
1570 - word-wrap: break-word;
1571 -}
1572 -
1573 -.copy-btn {
1574 - padding: 10px 20px;
1575 - border: none;
1576 - border-radius: 4px;
1577 - background-color: #9e7aff;
1578 - transition: background-color 0.3s;
1579 - color: #fff;
1580 - font-size: 1rem;
1581 - cursor: pointer;
1582 - font-weight: 700;
1583 - margin-bottom: 10px;
1584 -}
1585 -
1586 -.copy-btn:hover {
1587 - opacity: 0.8;
1588 -}
1589 -
1590 -.mxchat-product-card {
1591 - display: flex;
1592 - flex-direction: column;
1593 - align-items: center;
1594 - margin: 10px 0;
1595 - padding: 10px;
1596 - border-radius: 5px;
1597 - background-color: inherit;
1598 -}
1599 -
1600 -.mxchat-product-card img.mxchat-product-image {
1601 - max-width: 100%;
1602 - height: auto;
1603 - margin-bottom: 5px;
1604 - border-radius: 4px;
1605 -}
1606 -
1607 -.mxchat-product-card h3.mxchat-product-name {
1608 - font-size: 16px;
1609 - font-weight: bold;
1610 - margin: 5px 0;
1611 - text-align: center;
1612 - color: inherit;
1613 -}
1614 -
1615 -.mxchat-product-card .mxchat-product-price {
1616 - color: inherit;
1617 - font-weight: bold;
1618 - margin-bottom: 5px;
1619 -}
1620 -
1621 -.mxchat-product-card .mxchat-product-description {
1622 - font-size: 14px;
1623 - text-align: center;
1624 - margin-bottom: 10px;
1625 - color: inherit;
1626 -}
1627 -
1628 -.mxchat-product-card .mxchat-add-to-cart-button {
1629 - background-color: #212121;
1630 - color: #fff;
1631 - padding: 8px 12px;
1632 - border: none;
1633 - cursor: pointer;
1634 - border-radius: 12px;
1635 - transition: background-color 0.3s ease;
1636 -}
1637 -
1638 -.mxchat-product-card .mxchat-add-to-cart-button:hover {
1639 - background-color: #212121;
1640 -}
1641 -
1642 -.mxchat-image-gallery {
1643 - display: flex;
1644 - flex-wrap: wrap;
1645 - gap: 10px;
1646 - justify-content: center;
1647 -}
1648 -
1649 -.mxchat-image-item {
1650 - text-align: center;
1651 - overflow: hidden;
1652 - word-wrap: break-word;
1653 -}
1654 -
1655 -.mxchat-image-title {
1656 - display: block;
1657 - font-size: 14px;
1658 - color: inherit;
1659 - white-space: nowrap;
1660 - overflow: hidden;
1661 - text-overflow: ellipsis;
1662 - max-width: 100%;
1663 -}
1664 -
1665 -.mxchat-image-link {
1666 - text-decoration: none;
1667 -}
1668 -
1669 -.mxchat-image-thumbnail {
1670 - max-width: 100%;
1671 - height: auto;
1672 - border-radius: 5px;
1673 - transition: transform 0.3s;
1674 -}
1675 -
1676 -.mxchat-image-thumbnail:hover {
1677 - transform: scale(1.05);
1678 -}
1679 -
1680 -.mxchat-generated-image {
1681 - max-width: 100%;
1682 - height: auto;
1683 - border-radius: 0 0 8px 8px;
1684 -}
1685 -
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 -#widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1785 - padding: 10px;
1786 -}
1787 -
1788 -#widget_icon_10 {
1789 - fill: #fff;
1790 -}
1791 -
1792 -
1793 -/* This selector with more context - showing the collapse button in certain states */
1794 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1795 - background: none;
1796 - border: none;
1797 - padding: 0;
1798 - margin: 0px;
1799 - cursor: pointer;
1800 - transition: all 0.2s ease;
1801 - color: #212121;
1802 - display: none; /* Hidden by default */
1803 - align-items: center;
1804 - justify-content: center;
1805 - width: 32px;
1806 - height: 32px;
1807 - box-shadow: none;
1808 - outline: none;
1809 - align-self: center; /* THIS IS MISSING */
1810 - order: -1; /* THIS IS MISSING */
1811 -}
1812 -
1813 -/* ALL hover states - these are MISSING from your new CSS */
1814 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1815 - background: none;
1816 - border: none;
1817 - box-shadow: none;
1818 -}
1819 -
1820 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1821 - outline: none;
1822 - background: none;
1823 - border: none;
1824 - box-shadow: none;
1825 -}
1826 -
1827 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1828 - background: none;
1829 - border: none;
1830 - box-shadow: none;
1831 -}
1832 -
1833 -/* SVG styles - these are MISSING */
1834 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1835 - fill: none;
1836 - stroke: #212121;
1837 - transition: transform 0.2s ease;
1838 - width: 25px;
1839 - height: 25px;
1840 -}
1841 -
1842 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1843 - opacity: 0.7;
1844 -}
1845 -
1846 -/* 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 {
1848 - display: flex;
1849 -}
1850 -
1851 -/* Hide when actually collapsed */
1852 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1853 - 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 -}