PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 1.0.11
MxChat – AI Chatbot & Content Generation for WordPress v1.0.11
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 +187 -2019 3.2.211.0.11 View file →
@@ -1,1057 +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 - /* No justify-content: center here — on an overflowing flex container it
74 - pushes content past BOTH edges, making the top unreachable by scroll.
75 - The auto margins on the first/last children below center the content
76 - when there is room and collapse to flex-start when there is not. */
77 - border-radius: 12px;
78 - padding: 30px 20px;
79 - max-width: 100%;
80 - max-height: 100%;
81 - overflow-y: auto;
82 - scrollbar-width: thin;
83 - margin: auto;
84 - text-align: center;
85 - animation: fadeIn 0.5s ease-in-out;
86 -}
87 -
88 -.email-blocker::-webkit-scrollbar {
89 - width: 5px;
90 -}
91 -
92 -.email-blocker::-webkit-scrollbar-thumb {
93 - background-color: #212121;
94 - border-radius: 20px;
95 -}
96 -
97 -.email-blocker-header {
98 - margin-top: auto;
99 - margin-bottom: 20px;
100 -}
101 -
102 -.email-blocker .email-collection-form {
103 - margin-bottom: auto;
104 -}
105 -
106 -.email-blocker-logo {
107 - max-width: 80px;
108 - margin-bottom: 10px;
109 -}
110 -
111 -.email-blocker h2 {
112 - font-size: 24px;
113 - font-weight: bold;
114 - color: #333333;
115 - margin-bottom: 10px;
116 -}
117 -
118 -.email-blocker p {
119 - font-size: 16px;
120 - color: #555555;
121 - margin-bottom: 20px;
122 -}
123 -
124 -.email-blocker input[type="email"],
125 -.email-blocker .mxchat-name-input {
126 - width: 100%;
127 - padding: 12px;
128 - margin-bottom: 15px;
129 - border: 1px solid #ddd;
130 - border-radius: 8px;
131 - font-size: 16px;
132 - color: #333333;
133 - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
134 - transition: border-color 0.3s, box-shadow 0.3s;
135 -}
136 -
137 -.email-blocker input[type="email"]:focus,
138 -.email-blocker .mxchat-name-input:focus {
139 - border-color: #0073aa;
140 - box-shadow: 0 0 8px rgba(0, 115, 170, 0.3);
141 - outline: none;
142 -}
143 -
144 -/* Consent checkbox row (b062c4). Left-aligned inside the centered form so a
145 - multi-line label reads naturally; sized to stay compact on 320-390px. */
146 -.email-blocker .mxchat-consent-row {
147 - display: flex;
148 - align-items: flex-start;
149 - gap: 8px;
150 - width: 100%;
151 - margin-bottom: 15px;
152 - text-align: left;
153 -}
154 -
155 -.email-blocker .mxchat-consent-checkbox {
156 - flex-shrink: 0;
157 - width: 16px;
158 - height: 16px;
159 - margin: 2px 0 0;
160 - accent-color: #0073aa;
161 - cursor: pointer;
162 -}
163 -
164 -.email-blocker .mxchat-consent-label {
165 - font-size: 13px;
166 - line-height: 1.45;
167 - color: #555555;
168 - cursor: pointer;
169 -}
170 -
171 -.email-blocker .mxchat-consent-label a {
172 - color: #0073aa;
173 - text-decoration: underline;
174 -}
175 -
176 -.email-blocker button {
177 - background-color: #0073aa;
178 - color: #ffffff;
179 - padding: 12px 20px;
180 - border: none;
181 - border-radius: 8px;
182 - font-size: 16px;
183 - font-weight: bold;
184 - cursor: pointer;
185 - width: 100%;
186 - transition: background-color 0.3s, transform 0.2s;
187 -}
188 -
189 -.email-blocker button:hover {
190 - background-color: #005177;
191 - transform: translateY(-2px);
192 -}
193 -
194 -.email-blocker-footer {
195 - margin-top: 20px;
196 - font-size: 12px;
197 - color: #888888;
198 -}
199 -
200 -.sr-only {
201 - position: absolute;
202 - width: 1px;
203 - height: 1px;
204 - padding: 0;
205 - margin: -1px;
206 - overflow: hidden;
207 - clip: rect(0, 0, 0, 0);
208 - white-space: nowrap;
209 - border: 0;
210 -}
211 -
212 -@keyframes fadeIn {
213 - from {
214 - opacity: 0;
215 - transform: translateY(-10px);
216 - }
217 - to {
218 - opacity: 1;
219 - transform: translateY(0);
220 - }
221 -}
222 -
223 -.mxchat-chatbot-wrapper {
5 +.invisible {
224 6 display: none;
7 + opacity: 0;
8 + pointer-events: none;
225 9 }
226 10
227 -/* ========================================
228 - SEARCH RESULTS SYSTEM
229 - ======================================== */
230 -.chatbot-title-icon {
231 - width: 24px;
232 - height: 24px;
233 - object-fit: contain;
234 -}
235 -
236 -.wp-admin .mxchat-search-results,
237 -.wp-content .mxchat-search-results,
238 -.site-content .mxchat-search-results,
239 -.mxchat-search-results {
240 - display: flex;
241 - flex-direction: column;
242 - gap: 20px;
243 - margin: 15px 0;
244 - font-size: 14px !important;
245 -}
246 -
247 -.mxchat-search-intro {
248 - font-size: 16px !important;
249 - margin: 0 0 15px 0 !important;
250 - line-height: 1.4 !important;
251 - font-weight: normal !important;
252 -}
253 -
254 -.mxchat-search-item {
255 - padding: 15px !important;
256 - border-radius: 8px !important;
257 - background: #ffffff !important;
258 - border: 1px solid rgba(0, 0, 0, 0.1) !important;
259 -}
260 -
261 -.mxchat-search-header {
262 - display: flex !important;
263 - align-items: center !important;
264 - gap: 8px !important;
265 - margin-bottom: 8px !important;
266 -}
267 -
268 -.mxchat-site-icon {
269 - width: 16px !important;
270 - height: 16px !important;
271 - flex-shrink: 0 !important;
272 -}
273 -
274 -.mxchat-site-url {
275 - font-size: 13px !important;
276 - color: #555 !important;
277 - line-height: 1 !important;
278 -}
279 -
280 -.mxchat-search-content {
281 - display: flex !important;
282 - flex-direction: column !important;
283 - gap: 10px !important;
284 -}
285 -
286 -.mxchat-search-title {
287 - font-size: 16px !important;
288 - line-height: 1.4 !important;
289 - margin: 0 !important;
290 - padding: 0 !important;
291 - font-weight: 600 !important;
292 -}
293 -
294 -.mxchat-search-title a {
295 - text-decoration: none !important;
296 - color: #000 !important;
297 -}
298 -
299 -.mxchat-search-title a:hover {
300 - text-decoration: underline !important;
301 -}
302 -
303 -.mxchat-search-thumbnail {
304 - max-width: 200px !important;
305 - margin: 10px 0 !important;
306 -}
307 -
308 -.mxchat-search-thumbnail img {
309 - max-width: 100% !important;
310 - height: auto !important;
311 - border-radius: 4px !important;
312 -}
313 -
314 -.mxchat-search-description {
315 - font-size: 14px !important;
316 - line-height: 1.6 !important;
317 - color: #333 !important;
318 - margin: 0 !important;
319 - padding: 0 !important;
320 -}
321 -
322 -/* ========================================
323 - ENHANCED HEADINGS & TEXT STYLING
324 - ======================================== */
325 -.bot-message .chat-heading {
326 - color: inherit;
327 - margin: 16px 0 12px 0 !important;
328 - font-weight: bold !important;
329 - line-height: 1.3 !important;
330 -}
331 -
332 -.bot-message h1.chat-heading,
333 -.chat-heading-1 {
334 - font-size: 1.5em !important;
335 - border-bottom: 2px solid rgba(255, 255, 255, 0.3) !important;
336 - padding-bottom: 8px !important;
337 -}
338 -
339 -.bot-message h2.chat-heading,
340 -.chat-heading-2 {
341 - font-size: 1.25em !important;
342 - border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
343 - padding-bottom: 6px !important;
344 -}
345 -
346 -.bot-message h3.chat-heading,
347 -.chat-heading-3 {
348 - font-size: 1.125em !important;
349 -}
350 -
351 -.bot-message h4.chat-heading,
352 -.chat-heading-4 {
353 - font-size: 1em !important;
354 -}
355 -
356 -.bot-message h5.chat-heading,
357 -.chat-heading-5 {
358 - font-size: 0.875em !important;
359 - text-transform: uppercase !important;
360 - letter-spacing: 0.5px !important;
361 -}
362 -
363 -.bot-message h6.chat-heading,
364 -.chat-heading-6 {
365 - font-size: 0.75em !important;
366 - text-transform: uppercase !important;
367 - letter-spacing: 0.5px !important;
368 -}
369 -
370 -.bot-message strong {
371 - font-weight: bold !important;
372 -}
373 -
374 -.bot-message em {
375 - font-style: italic !important;
376 -}
377 -
378 -.bot-message del {
379 - text-decoration: line-through !important;
380 - opacity: 0.7;
381 -}
382 -
383 -/* ========================================
384 - CODE BLOCKS & INLINE CODE
385 - ======================================== */
386 -.mxchat-table-wrapper {
387 - overflow-x: auto;
388 - margin: 12px 0;
389 - -webkit-overflow-scrolling: touch;
390 -}
391 -
392 -.mxchat-table {
393 - width: 100%;
394 - border-collapse: collapse;
395 - font-size: 0.9em;
396 - line-height: 1.4;
397 -}
398 -
399 -.mxchat-table th,
400 -.mxchat-table td {
401 - padding: 8px 12px;
402 - border: 1px solid rgba(128, 128, 128, 0.3);
403 - word-break: break-word;
404 -}
405 -
406 -.mxchat-table thead th {
407 - font-weight: 600;
408 - background: rgba(128, 128, 128, 0.15);
409 -}
410 -
411 -.mxchat-table tbody tr:nth-child(even) {
412 - background: rgba(128, 128, 128, 0.05);
413 -}
414 -
415 -.mxchat-code-block-container {
416 - margin: 16px 0;
417 - border-radius: 8px;
418 - background: rgba(255, 255, 255, 0.1);
419 - border: 1px solid rgba(255, 255, 255, 0.2);
420 - overflow: hidden;
421 - font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace;
422 -}
423 -
424 -.mxchat-code-header {
425 - display: flex;
426 - justify-content: space-between;
427 - align-items: center;
428 - background: rgba(255, 255, 255, 0.15);
429 - padding: 8px 12px;
430 - border-bottom: 1px solid rgba(255, 255, 255, 0.2);
431 - font-size: 11px;
432 - min-height: 36px;
433 -}
434 -
435 -.mxchat-code-language {
436 - color: rgba(255, 255, 255, 0.8);
437 - font-weight: 600;
438 - text-transform: uppercase;
439 - letter-spacing: 0.5px;
440 - font-size: 10px;
441 -}
442 -
443 -.mxchat-copy-button {
444 - background: rgba(255, 255, 255, 0.2);
445 - color: white;
446 - border: 1px solid rgba(255, 255, 255, 0.3);
447 - padding: 4px 8px;
448 - border-radius: 4px;
449 - font-size: 10px;
450 - cursor: pointer;
451 - transition: all 0.2s ease;
452 - min-height: 24px;
453 - line-height: 1;
454 -}
455 -
456 -.mxchat-copy-button:hover {
457 - background: rgba(255, 255, 255, 0.3);
458 - border-color: rgba(255, 255, 255, 0.4);
459 -}
460 -
461 -.mxchat-copy-button:active {
462 - background: rgba(255, 255, 255, 0.4);
463 -}
464 -
465 -.mxchat-code-block {
11 +#mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
12 + font-size: 0.75rem;
466 13 margin: 0;
467 - padding: 16px;
468 - background: rgba(0, 0, 0, 0.3);
469 - overflow-x: auto;
470 - font-size: 13px;
471 - line-height: 1.4;
472 - white-space: pre;
473 - border: none;
14 + color: #71717a;
474 15 }
475 16
476 -.mxchat-code-block code {
477 - font-family: inherit;
478 - font-size: inherit;
479 - background: none !important;
480 - padding: 0 !important;
481 - border: none !important;
482 - color: rgba(255, 255, 255, 0.95) !important;
483 - display: block;
484 -}
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;
485 21
486 -.mxchat-inline-code {
487 - background: rgba(255, 255, 255, 0.2) !important;
488 - padding: 2px 6px !important;
489 - border-radius: 3px !important;
490 - font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Courier New', monospace !important;
491 - font-size: 0.85em !important;
492 - color: #81c784 !important;
493 - border: 1px solid rgba(255, 255, 255, 0.3) !important;
494 22 }
495 23
496 -/* ========================================
497 - TOOLBAR SYSTEM
498 - ======================================== */
499 -.active-pdf-container,
500 -.active-word-container {
501 - display: inline-flex;
502 - align-items: center;
503 - max-width: 200px;
504 - margin: 0;
505 - padding: 0;
506 - line-height: 13px;
507 -}
508 -
509 -.active-pdf-name,
510 -.active-word-name {
511 - font-size: 11px;
512 - white-space: nowrap;
513 - overflow: hidden;
514 - text-overflow: ellipsis;
515 -}
516 -
517 -.remove-pdf-btn,
518 -.remove-word-btn,
519 -.toolbar-perplexity {
520 - background: none;
521 - border: none;
522 - padding: 2px;
523 - 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;
524 28 cursor: pointer;
525 - transition: opacity 0.2s;
526 - line-height: 13px;
29 + font-weight: 700;
527 30 }
528 31
529 -.remove-pdf-btn:hover,
530 -.remove-word-btn:hover,
531 -.toolbar-perplexity:hover {
532 - opacity: 1;
533 - background: none;
534 -}
535 -
536 -.mxchat-chatbot .chat-toolbar {
537 - display: flex;
538 - gap: 10px;
539 - padding: 8px;
540 - background: none;
541 - align-items: end;
542 -}
543 -
544 -.mxchat-chatbot .toolbar-btn {
545 - background: none;
546 - border: none;
547 - padding: 0;
548 - cursor: pointer;
549 - width: 16px;
550 - height: 16px;
551 - align-items: center;
552 - justify-content: center;
553 - opacity: 0.6;
554 - transition: opacity 0.2s;
555 - margin: 0;
556 - min-width: 0;
557 - box-shadow: none;
558 -}
559 -
560 -.mxchat-chatbot .toolbar-btn svg {
561 - width: 100%;
562 - height: 100%;
563 -}
564 -
565 -.mxchat-chatbot .toolbar-btn:hover {
566 - opacity: 1;
567 - background: none;
568 - border: none;
569 - box-shadow: none;
570 -}
571 -
572 -.mxchat-chatbot .toolbar-btn:disabled {
573 - opacity: 0.3;
574 - cursor: not-allowed;
575 - background: none;
576 - border: none;
577 -}
578 -
579 -.toolbar-btn.active {
580 - background-color: rgba(120, 115, 245, 0.2);
581 - box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.4);
582 -}
583 -
584 -.active-perplexity-container {
585 - display: flex;
586 - align-items: center;
587 - margin-left: 8px;
588 - font-size: 12px;
589 -}
590 -
591 -.perplexity-search-btn {
592 - display: none;
593 -}
594 -
595 -.perplexity-search-btn.active {
596 - opacity: 1;
597 -}
598 -
599 -/* ========================================
600 - POPULAR QUESTIONS SYSTEM
601 - ======================================== */
602 -.mxchat-popular-questions {
603 - padding: 0 10px 10px;
604 - transition: all 0.3s ease;
605 - margin-bottom: 12px;
606 - position: relative;
607 -}
608 -
609 -.mxchat-popular-questions-title {
610 - font-size: 14px;
611 - line-height: 24px;
612 - font-weight: bold;
613 - color: #212121;
614 - margin-bottom: 10px;
615 -}
616 -
617 -.mxchat-popular-questions-container {
618 - position: relative;
619 - display: flex;
620 - flex-direction: column;
621 - max-height: 200px;
622 - overflow-y: auto;
623 - padding: 0 10px 10px;
624 - scrollbar-width: thin;
625 - scrollbar-color: #212121 #f1f1f1;
626 - transition: all 0.3s ease;
627 - gap: 8px;
628 -}
629 -
630 -.mxchat-popular-questions.collapsed {
631 - padding: 0;
632 - margin: 0;
633 -}
634 -
635 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container {
636 - flex-direction: row;
637 - justify-content: center;
638 - align-items: center;
639 - padding: 0;
640 - max-height: 40px;
641 - overflow: visible;
642 -}
643 -
644 -.mxchat-popular-questions.collapsed .mxchat-popular-question {
645 - display: none;
646 -}
647 -
648 -.mxchat-popular-questions.collapsed .questions-collapse-btn {
649 - display: none;
650 -}
651 -
652 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-toggle-btn {
653 - background: none;
654 - border: none;
655 - padding: 0;
656 - margin: 0;
657 - cursor: pointer;
658 - transition: all 0.2s ease;
659 - color: #212121;
660 - display: none; /* Hidden by default when open */
661 - align-items: center;
662 - justify-content: center;
663 - width: 32px;
664 - height: 32px;
665 - box-shadow: none;
666 - outline: none;
667 -}
668 -
669 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
670 - background: none;
671 - border: none;
672 - padding: 0;
673 - margin: 0px; /* Center and add bottom margin */
674 - cursor: pointer;
675 - transition: all 0.2s ease;
676 - color: #212121;
677 - display: none; /* Hidden by default */
678 - align-items: center;
679 - justify-content: center;
680 - width: 32px;
681 - height: 32px;
682 - box-shadow: none;
683 - outline: none;
684 - align-self: center; /* Center in flex container */
685 - order: -1; /* Make sure it appears first */
686 - flex-shrink: 0; /* same flex auto-minimum caveat as .mxchat-popular-question */
687 -}
688 -
689 -.questions-toggle-btn:hover,
690 -.questions-collapse-btn:hover,
691 -.questions-toggle-btn:focus,
692 -.questions-collapse-btn:focus,
693 -.questions-toggle-btn:active,
694 -.questions-collapse-btn:active {
695 - background: none;
696 - border: none;
697 - box-shadow: none;
698 - outline: none;
699 -}
700 -
701 -.questions-toggle-btn svg,
702 -.questions-collapse-btn svg {
703 - transition: transform 0.2s ease;
704 - fill: none;
705 - stroke: #212121;
706 - width: 25px;
707 - height: 25px;
708 -}
709 -
710 -.questions-toggle-btn:hover svg,
711 -.questions-collapse-btn:hover svg {
712 - opacity: 0.7;
713 -}
714 -
715 -.mxchat-popular-questions.collapsed .questions-toggle-btn {
716 - display: flex;
717 -}
718 -
719 -.mxchat-popular-questions.has-been-collapsed .questions-collapse-btn {
720 - display: flex;
721 - align-self: center;
722 - order: -1;
723 -}
724 -
725 -.mxchat-popular-question {
726 - padding: 12px 20px;
727 - background-color: #f5f5f5;
728 - border: 1px solid #bbb;
729 - border-radius: 8px;
730 - color: #212121;
731 - font-size: 14px;
732 - line-height: 24px;
733 - cursor: pointer;
734 - text-align: initial;
735 - transition: all 0.3s ease;
736 - margin-bottom: 0;
737 - box-shadow: none;
738 - /* The defensive baseline's min-height:0 on :where(button) removes the
739 - flex automatic minimum size, so without this the column-flex scroll
740 - container compresses all questions to fit 200px and the scrollbox
741 - never appears (plan d51560). */
742 - flex-shrink: 0;
743 -}
744 -
745 -.mxchat-popular-question:hover {
746 - background-color: #eaeaea;
747 - border-color: #999;
748 - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
749 - transform: translateY(-1px);
750 -}
751 -
752 -.mxchat-popular-question:focus {
753 - outline: none;
754 - background-color: #e0e0e0;
755 - border-color: #777;
756 - box-shadow: 0 0 0 3px rgba(100, 149, 237, 0.5);
757 -}
758 -
759 -.mxchat-popular-question:active {
760 - background-color: #d8d8d8;
761 - border-color: #666;
762 - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
763 - transform: translateY(0);
764 -}
765 -
766 -.mxchat-popular-questions-container::-webkit-scrollbar {
767 - width: 8px;
768 -}
769 -
770 -.mxchat-popular-questions-container::-webkit-scrollbar-track {
771 - background: #f1f1f1;
772 - border-radius: 4px;
773 -}
774 -
775 -.mxchat-popular-questions-container::-webkit-scrollbar-thumb {
776 - background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
777 - border-radius: 4px;
778 -}
779 -
780 -.mxchat-popular-questions-container::-webkit-scrollbar-thumb:hover {
781 - background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
782 -}
783 -
784 -/* ========================================
785 - CORE CHATBOT UI
786 - ======================================== */
787 -.invisible {
788 - display: none;
789 - opacity: 0;
790 - pointer-events: none;
791 -}
792 -
793 -.mxchat-chatbot{
794 - background: #fff;
32 +#mxchat-chatbot {
33 + max-width: 800px;
795 34 overflow: hidden;
796 35 position: relative;
797 36 display: flex;
798 37 flex-direction: column;
38 + height: 500px;
39 + box-sizing: border-box;
799 40 flex-grow: 1;
800 - min-height: 0; /* Allow flex shrinking */
801 - box-sizing: border-box;
802 41 }
803 42
804 -.chat-container {
43 +#chat-container {
805 44 display: flex;
806 45 flex-direction: column;
807 - flex-grow: 1;
808 - min-height: 0; /* Critical for flex overflow scrolling */
809 46 height: 100%;
810 47 }
811 48
812 -.chat-box {
49 +#chat-box {
813 50 flex-grow: 1;
814 51 overflow-y: auto;
815 52 padding: 10px;
816 53 margin-bottom: 0;
817 54 font-size: 1rem;
818 - min-height: 0; /* Critical for flex overflow scrolling */
819 55 }
820 56
821 -.chat-box::-webkit-scrollbar {
57 +#chat-box::-webkit-scrollbar {
822 58 width: 5px;
823 59 }
824 60
825 -.chat-box::-webkit-scrollbar-thumb {
826 - background-color: #212121;
61 +#chat-box::-webkit-scrollbar-thumb {
62 + background-color: #333;
827 63 border-radius: 20px;
828 64 }
829 65
830 -.bot-message,
831 -.user-message {
66 +.bot-message, .user-message {
832 67 margin-bottom: 15px;
833 68 padding: 10px;
834 69 display: inline-block;
835 70 max-width: 85%;
836 - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
837 - font-size: 14px;
838 - line-height: 24px;
71 + box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
839 72 }
840 73
841 74 .user-message {
842 - background: #fff;
843 - color: #212121;
844 - text-align: left;
845 - float: right;
846 - clear: both;
847 - border-radius: 18px 0 18px 18px;
848 - word-wrap: break-word;
849 - 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;
850 82 }
851 83
852 -.user-message p {
853 - 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;
854 92 }
855 93
856 -.mxchat-chatbot .chat-container .chat-box .bot-message {
857 - float: left;
858 - clear: both;
859 - border: 1px solid rgba(226, 232, 255, 0.2);
860 - border-radius: 0 18px 18px;
861 - background: #212121;
862 - color: #fff;
863 - overflow-x: hidden;
864 -}
865 -
866 -.mxchat-chatbot .chat-container .chat-box .agent-message {
867 - text-align: left;
868 - float: left;
869 - clear: both;
870 - border: 1px solid rgba(226, 232, 255, 0.2);
871 - border-radius: 0 18px 18px;
872 - background: #212121;
873 - color: #fff;
874 - overflow-x: hidden;
875 - margin-bottom: 15px;
876 - padding: 10px;
877 - display: inline-block;
878 - max-width: 85%;
879 - font-size: 14px;
880 - line-height: 24px;
881 - box-shadow: -2px 2px rgba(250, 115, 230, 0.6), -4px 4px rgba(120, 115, 245, 0.6);
882 -}
883 -
884 -.bot-message p {
885 - margin: 0 0 1em 0;
886 -}
887 -
888 -.bot-message p:last-child {
889 - margin-bottom: 0;
890 -}
891 -
892 -.bot-message {
893 - white-space: pre-line;
894 -}
895 -
896 -.bot-message a {
897 - color: #ffffff;
898 - text-decoration: underline !important;
899 -}
900 -
901 -.bot-message a:hover {
902 - color: #e0e0e0;
903 - text-decoration: underline;
904 -}
905 -
906 -.bot-message a:visited {
907 - color: #ffffff;
908 -}
909 -
910 -.system-message {
911 - padding: 8px 12px;
912 - margin: 8px 0;
913 - background-color: rgba(120, 115, 245, 0.1);
914 - border-radius: 8px;
915 - color: #555;
916 - font-style: italic;
917 - font-size: 14px;
918 - text-align: center;
919 -}
920 -
921 -.mxchat-chatbot-wrapper {
922 - 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);
923 96 border-radius: 10px;
924 97 display: flex;
925 98 flex-direction: column;
926 99 height: 100%;
927 100 width: 100%;
928 - min-height: 0; /* Allow flex shrinking */
929 - overflow: hidden;
930 101 }
931 102
932 -/* ========================================
933 - INPUT & CONTROLS
934 - ======================================== */
935 -.mxchat-chatbot .chat-container .input-container {
103 +#mxchat-chatbot #chat-container #input-container {
936 104 position: relative;
937 105 display: flex;
938 106 align-items: center;
939 - padding-right: 40px;
940 - border: 1px solid #ccc;
941 - border-radius: 10px;
942 - margin: 0 10px 10px;
107 + padding: 10px;
943 108 }
944 109
945 -.mxchat-chatbot .chat-container .input-container .chat-input {
110 +#mxchat-chatbot #chat-container #input-container #chat-input {
946 111 flex-grow: 1;
112 + padding: .5rem 2.5rem .5rem .5rem;
113 + border-radius: 10px;
114 + border: 1px solid #212121;
947 115 color: #212121;
948 - line-height: 24px;
949 - background: transparent;
950 - margin-bottom: 0;
951 - width: 100%;
952 - min-height: 20px;
953 - max-height: 65px;
954 - resize: none;
955 - overflow-y: auto;
956 - font-size: 16px;
957 - border: none;
958 - border-radius: 5px;
959 - box-sizing: border-box;
960 - padding: 0.4em 0.5em;
961 - outline: none;
962 - border-radius: 10px;
116 + font-size: 1rem;
117 + background: 0 0;
118 + width: calc(100% - 30px);
119 + margin-bottom: 0px;
120 + height: 100%;
963 121 }
964 122
965 -.chat-input::-webkit-scrollbar {
966 - width: 8px;
967 -}
968 -
969 -.chat-input::-webkit-scrollbar-track {
970 - background: #f1f1f1;
971 - border-radius: 4px;
972 -}
973 -
974 -.chat-input::-webkit-scrollbar-thumb {
975 - background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
976 - border-radius: 4px;
977 -}
978 -
979 -.chat-input::-webkit-scrollbar-thumb:hover {
980 - background: linear-gradient(135deg, #d164ce, #6568d8, #2daeb8);
981 -}
982 -
983 -.chat-input {
984 - scrollbar-width: thin;
985 - scrollbar-color: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1) #f1f1f1;
986 -}
987 -
988 -/* Chat input character counter + soft limit feedback (plan 7091a2).
989 - Language-neutral: numbers + color only. Hidden until ~80% of the cap, then
990 - fades in and ramps neutral -> amber -> red. The input border mirrors the same
991 - cue, and an over-limit keystroke/paste triggers a brief shake so the hard
992 - maxlength cap (plan a3fae2) is never a silent "input jumps back". */
993 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
994 - position: absolute;
995 - bottom: 3px;
996 - right: 44px; /* clear the absolutely-positioned send button */
997 - font-size: 11px;
998 - line-height: 1;
999 - font-variant-numeric: tabular-nums;
1000 - color: #9aa0a6;
1001 - background: rgba(255, 255, 255, 0.85);
1002 - padding: 1px 5px;
1003 - border-radius: 8px;
1004 - pointer-events: none;
1005 - opacity: 0;
1006 - visibility: hidden;
1007 - transition: opacity 0.18s ease, color 0.18s ease;
1008 - z-index: 2;
1009 -}
1010 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-visible {
1011 - opacity: 1;
1012 - visibility: visible;
1013 -}
1014 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-warn {
1015 - color: #d98300; /* amber: approaching the cap */
1016 -}
1017 -.mxchat-chatbot .chat-container .input-container .mxchat-char-counter.is-full {
1018 - color: #d93025; /* red: at the cap */
1019 - font-weight: 600;
1020 -}
1021 -/* RTL widgets: counter on the opposite side. */
1022 -.mxchat-chatbot[dir="rtl"] .chat-container .input-container .mxchat-char-counter,
1023 -[dir="rtl"] .mxchat-chatbot .chat-container .input-container .mxchat-char-counter {
1024 - right: auto;
1025 - left: 44px;
1026 -}
1027 -/* Input border affordance mirrors the counter color. */
1028 -.mxchat-chatbot .chat-container .input-container.mxchat-input-near-limit {
1029 - border-color: #f0b048;
1030 -}
1031 -.mxchat-chatbot .chat-container .input-container.mxchat-input-at-limit {
1032 - border-color: #e5675c;
1033 -}
1034 -/* Soft "you hit the edge" bump when an over-limit keystroke/paste is rejected. */
1035 -.mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
1036 - animation: mxchat-input-bump 0.2s ease;
1037 -}
1038 -@keyframes mxchat-input-bump {
1039 - 0% { transform: translateX(0); }
1040 - 25% { transform: translateX(-3px); }
1041 - 50% { transform: translateX(3px); }
1042 - 75% { transform: translateX(-2px); }
1043 - 100% { transform: translateX(0); }
1044 -}
1045 -/* Respect reduced-motion: drop the shake; the red border/counter still signals the cap. */
1046 -@media (prefers-reduced-motion: reduce) {
1047 - .mxchat-chatbot .chat-container .input-container.mxchat-input-bump {
1048 - animation: none;
1049 - }
1050 -}
1051 -
1052 -.mxchat-chatbot .chat-container .input-container .send-button {
1053 - position: absolute;
123 +#mxchat-chatbot #chat-container #input-container #send-button {
124 + position:absolute;
1054 125 right: 10px;
1055 126 top: 50%;
1056 127 transform: translateY(-50%);
1057 128 border: none;
@@ -1060,364 +131,223 @@
1060 131 height: 30px;
1061 132 display: flex;
1062 133 align-items: center;
1063 134 justify-content: center;
1064 - background: transparent !important;
1065 - padding: 5px;
1066 - margin: 0;
1067 - transition: background-color 0.3s;
1068 - color: #fff;
1069 - font-size: 1rem;
1070 - cursor: pointer;
1071 - font-weight: 700;
135 + background: 0 0!important;
1072 136 }
1073 137
1074 -.send-button svg {
1075 - width: 25px;
1076 - height: 25px;
1077 - pointer-events: none;
138 +#mxchat-chatbot #chat-container #input-container #send-button .fa-paper-plane {
139 + font-size: 1.3rem;
1078 140 }
1079 141
1080 -.send-button:hover {
1081 - opacity: 0.8;
142 +#send-button:hover, .copy-btn:hover {
143 + opacity: .8;
1082 144 }
1083 145
1084 -/* Stop state while a response is streaming: the send button becomes a Stop
1085 - control in place — same chrome and position, swapped glyph. Themeable hook;
1086 - the glyph's size/color are mirrored from the send icon at runtime. */
1087 -.mxchat-chatbot .chat-container .input-container .send-button.mxchat-stop-mode {
1088 - cursor: pointer;
146 +#mxchat-chatbot:after {
147 + content: "";
148 + display: table;
149 + clear: both;
1089 150 }
1090 151
1091 -.mxchat-chatbot .spinner {
1092 - animation: rotate 2s linear infinite;
1093 - width: 20px;
1094 - height: 20px;
152 +pre {
153 + background-color: #000;
154 + border: 1px solid #ddd;
155 + border-radius: 20px;
156 + border-left: 3px solid #9e7aff;
157 + color: #fff;
158 + page-break-inside: avoid;
159 + font-family: monospace;
160 + font-size: 15px;
161 + line-height: 1.6;
162 + margin-bottom: 1.6em;
163 + max-width: 100%;
164 + overflow: auto;
165 + padding: 1em 1.5em;
166 + display: block;
167 + word-wrap: break-word;
1095 168 }
1096 169
1097 -.mxchat-chatbot .spinner circle {
1098 - stroke: #212121;
1099 - stroke-linecap: round;
1100 - animation: dash 1.5s ease-in-out infinite;
170 +.copy-btn {
171 + padding: 10px 20px;
172 + border: none;
173 + border-radius: 4px;
174 + background-color: #9e7aff;
1101 175 }
1102 176
1103 -@keyframes rotate {
1104 - 100% {
1105 - transform: rotate(360deg);
1106 - }
1107 -}
1108 -
1109 -@keyframes dash {
1110 - 0% {
1111 - stroke-dasharray: 1, 150;
1112 - stroke-dashoffset: 0;
1113 - }
1114 - 50% {
1115 - stroke-dasharray: 90, 150;
1116 - stroke-dashoffset: -35;
1117 - }
1118 - 100% {
1119 - stroke-dasharray: 90, 150;
1120 - stroke-dashoffset: -124;
1121 - }
1122 -}
1123 -
1124 -/* ========================================
1125 - FLOATING CHATBOT & CONTROLS
1126 - ======================================== */
1127 -.chatbot-title-container {
1128 - display: flex;
1129 - align-items: center;
1130 - justify-content: space-between;
1131 - gap: 10px;
1132 - flex: 1 1 auto;
1133 - min-width: 0;
1134 -}
1135 -
1136 -.chatbot-title-group {
1137 - display: flex;
1138 - align-items: center;
1139 - gap: 8px;
1140 -}
1141 -
1142 -.chat-mode-indicator {
1143 - font-size: 12px;
1144 - line-height: 1;
1145 - margin-right: 0;
1146 - padding: 4px 9px;
1147 - border-radius: 999px;
1148 - background: rgba(255, 255, 255, 0.18);
1149 - color: #ffffff;
1150 - display: inline-flex;
1151 - align-items: center;
1152 - height: 22px;
1153 - white-space: nowrap;
1154 - flex: 0 0 auto;
1155 -}
1156 -
1157 -.floating-chatbot {
177 +#floating-chatbot {
1158 178 position: fixed;
1159 179 bottom: 25px;
1160 180 right: 25px;
1161 181 width: 375px;
1162 - /* Use viewport-aware height with fallbacks */
1163 - height: min(625px, calc(100vh - 50px)); /* 50px = 25px top + 25px bottom margin */
1164 - height: min(625px, calc(100dvh - 50px)); /* Dynamic viewport height for mobile browsers */
1165 - max-height: calc(100vh - 50px);
1166 - max-height: calc(100dvh - 50px); /* Fallback for browsers supporting dvh */
1167 - box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
182 + height: 625px;
183 + box-shadow: 0 0 10px rgba(0, 0, 0, .25);
1168 184 border-radius: 20px;
1169 185 overflow: hidden;
1170 186 display: flex;
1171 - flex-direction: column;
1172 187 z-index: 100000;
1173 - transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
188 + transition: transform .3s ease-in-out, opacity .3s ease-in-out;
1174 189 transform: translateY(20%);
1175 190 opacity: 0;
1176 191 pointer-events: none;
1177 192 }
1178 193
1179 -.floating-chatbot.visible {
194 +#floating-chatbot.visible {
1180 195 transform: translateY(0);
1181 196 opacity: 1;
1182 197 pointer-events: auto;
1183 198 }
1184 199
1185 -/* ========================================
1186 - EMBEDDED CHATBOT (Shortcode)
1187 - ======================================== */
1188 -/* Embedded chatbots are NOT inside .floating-chatbot wrapper */
1189 -/* Apply fixed height like floating widget so quick questions overlay properly */
1190 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) {
1191 - height: 500px;
1192 - max-height: 500px;
200 +#floating-chatbot-button.hidden, .exit-chat span {
201 + display: none!important;
1193 202 }
1194 203
1195 -/* Hide the minimize/exit button for embedded chatbots - it doesn't make sense */
1196 -.mxchat-chatbot-wrapper:not(.floating-chatbot .mxchat-chatbot-wrapper) .exit-chat {
1197 - display: none !important;
1198 -}
1199 -
1200 -.floating-chatbot-button.hidden,
1201 -.exit-chat span {
1202 - display: none !important;
1203 -}
1204 -
1205 -.chatbot-top-bar button.exit-chat:hover {
1206 - background: rgba(255, 255, 255, 0.12);
1207 -}
1208 204 .visible {
1209 205 display: flex;
1210 206 }
1211 207
1212 -.floating-chatbot-button {
208 +#floating-chatbot-button {
1213 209 transition: opacity 1s ease-in-out;
1214 210 font-size: 1.25rem;
1215 211 position: fixed;
1216 212 bottom: 30px;
1217 213 right: 25px;
1218 - background-color: #212121;
214 + background-color: #d63638;
1219 215 color: #fff;
1220 216 width: 60px;
1221 217 height: 60px;
1222 218 border-radius: 50%;
1223 - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
219 + box-shadow: 0 4px 8px rgba(0, 0, 0, .2)!important;
1224 220 justify-content: center;
1225 221 align-items: center;
1226 222 cursor: pointer;
1227 - transition: 0.3s;
223 + transition: .3s;
1228 224 z-index: 100000;
1229 - display: flex;
225 + display: flex;
1230 226 }
1231 227
1232 -.floating-chatbot-button:focus-visible {
1233 - outline: 3px solid #7873f5;
1234 - outline-offset: 3px;
1235 -}
1236 -
1237 -.floating-chatbot-button img {
228 +#floating-chatbot-button img {
1238 229 max-width: 100%;
1239 230 max-height: 100%;
231 + padding: 10px;
1240 232 width: auto;
1241 233 height: auto;
1242 234 }
1243 235
1244 -.chatbot-top-bar {
1245 - background: #212121;
236 +#mxchat-chatbot-wrapper.active+#floating-chatbot-button {
237 + bottom: 530px;
238 + width: 100%;
1246 239 }
1247 240
1248 -.mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
1249 - background: transparent;
1250 - /* v3.2.15 (plan-52fd4c): explicit guards against host-theme button rules.
1251 - Margin deliberately untouched — .exit-chat relies on margin-left:auto. */
1252 - background-image: none;
241 +.chatbot-close-button {
242 + position: absolute;
243 + top: 5px;
244 + right: 5px;
1253 245 border: none;
1254 - opacity: 0.8;
1255 - padding: 0;
1256 - width: 32px;
1257 - height: 32px;
1258 - min-width: 32px;
1259 - min-height: 32px;
1260 - max-width: none;
1261 - flex: 0 0 auto;
1262 - border-radius: 6px;
1263 - font-family: inherit;
1264 - text-transform: none;
1265 - text-shadow: none;
1266 - appearance: none;
1267 - -webkit-appearance: none;
1268 - transition: opacity 0.15s ease, background 0.15s ease;
246 + background: 0 0;
247 + cursor: pointer;
248 + font-size: 20px;
249 + color: #f0f0f1;
1269 250 }
1270 251
1271 -.mxchat-chatbot-wrapper .chatbot-top-bar {
252 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1272 253 cursor: pointer;
1273 254 color: #fff;
1274 - padding: 8px 12px;
1275 - min-height: 48px;
1276 - gap: 8px;
255 + padding: 10px;
1277 256 border-top-left-radius: 10px;
1278 257 border-top-right-radius: 10px;
1279 258 display: flex;
1280 259 justify-content: space-between;
1281 - align-items: center;
260 + align-items: baseline;
1282 261 }
1283 262
1284 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1285 - font-size: 15px;
1286 - line-height: 1.2;
1287 - padding: 0;
263 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
264 + font-size: 1rem;
265 + line-height: 25px;
266 + padding: 10px;
1288 267 margin: 0;
1289 268 font-family: 'Plus Jakarta Sans', sans-serif;
1290 - font-weight: 600;
269 + font-weight: bold;
1291 270 }
1292 271
272 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title span {
273 + font-weight: 700;
274 +}
275 +
276 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
277 + background: 0 0;
278 + border: none;
279 + opacity: .8;
280 +}
281 +
1293 282 .exit-chat {
1294 283 border: none;
1295 - background: transparent;
284 + background: 0 0;
1296 285 cursor: pointer;
1297 - display: inline-flex;
286 + display: flex;
1298 287 align-items: center;
1299 288 justify-content: center;
1300 - padding: 0;
289 + padding: 5px;
1301 290 margin-left: auto;
1302 - opacity: 0.8;
1303 - width: 32px;
1304 - height: 32px;
1305 - min-width: 32px;
1306 - flex: 0 0 auto;
1307 291 }
1308 292
1309 293 .exit-chat svg {
1310 - width: 18px;
1311 - height: 18px;
1312 - fill: none;
1313 - stroke: currentColor;
294 + fill: white;
295 + width: 24px;
296 + height: 24px;
297 + transform: rotate(270deg);
1314 298 }
1315 299
1316 -.mxchat-chatbot-wrapper .chatbot-footer {
300 +#mxchat-chatbot-wrapper .chatbot-footer {
1317 301 text-align: center;
1318 302 padding-bottom: 10px;
1319 - font-size: 0.85em;
303 + font-size: .85em;
1320 304 }
1321 305
1322 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice {
1323 - font-size: 12px;
1324 - margin: 0;
1325 - color: #71717a;
1326 -}
1327 -
1328 -.mxchat-chatbot-wrapper .chatbot-footer .privacy-notice a {
1329 - color: #0073aa;
1330 - text-decoration: underline;
1331 - font-size: 12px;
1332 -}
1333 -
1334 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by {
306 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1335 307 text-decoration: none;
1336 308 color: inherit;
1337 309 font-weight: 700;
1338 310 }
1339 311
1340 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
312 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1341 313 text-decoration: underline;
1342 314 }
1343 315
1344 -/* ========================================
1345 - INIT LOADER (shown while chat initializes)
1346 - ======================================== */
1347 -.mxchat-init-loader {
316 +.thinking-dots-container {
1348 317 display: flex;
1349 - align-items: center;
1350 318 justify-content: center;
1351 - flex-grow: 1;
1352 - min-height: 0;
1353 - animation: fadeIn 0.3s ease-in-out;
1354 -}
1355 -
1356 -.mxchat-init-loader-dots {
1357 - display: flex;
1358 - gap: 8px;
1359 -}
1360 -
1361 -.mxchat-init-loader-dots .dot {
1362 - width: 8px;
1363 - height: 8px;
1364 - border-radius: 50%;
1365 - background-color: #888;
1366 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1367 -}
1368 -
1369 -.mxchat-init-loader-dots .dot:nth-child(1) {
1370 - animation-delay: -0.32s;
1371 -}
1372 -
1373 -.mxchat-init-loader-dots .dot:nth-child(2) {
1374 - animation-delay: -0.16s;
1375 -}
1376 -
1377 -/* ========================================
1378 - THINKING DOTS ANIMATION
1379 - ======================================== */
1380 -.chat-box .bot-message.temporary-message .thinking-dots-container {
1381 - display: flex;
1382 - justify-content: center;
1383 319 align-items: center;
1384 320 overflow: hidden;
1385 - height: 20px;
1386 - position: relative;
1387 - z-index: 1;
1388 - flex-shrink: 0;
321 + height: 20px; /* Adjust as needed */
1389 322 }
1390 323
1391 -.chat-box .bot-message.temporary-message .thinking-dots {
324 +.thinking-dots {
1392 325 display: flex;
1393 326 justify-content: center;
1394 327 align-items: center;
1395 328 height: 90%;
1396 - gap: 5px;
1397 - flex-shrink: 0;
1398 329 }
1399 330
1400 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1401 - height: 6px;
1402 - width: 6px;
331 +.dot {
332 + height: 8px;
333 + width: 8px;
1403 334 margin: 0 3px;
1404 335 background-color: #fff;
1405 336 border-radius: 50%;
1406 337 display: inline-block;
1407 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1408 - vertical-align: middle;
338 + animation: bounce 1.4s ease-in-out infinite both;
1409 339 }
1410 340
1411 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1412 - animation-delay: -0.32s;
341 +.dot:first-child {
342 + animation-delay: -.32s;
1413 343 }
1414 344
1415 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1416 - animation-delay: -0.16s;
345 +.dot:nth-child(2) {
346 + animation-delay: -.16s;
1417 347 }
1418 348
1419 -@keyframes mxchat-dot-bounce {
349 +@keyframes bounce {
1420 350 0%, 100%, 80% {
1421 351 transform: scale(1);
1422 352 }
1423 353 40% {
@@ -1424,41 +354,39 @@
1424 354 transform: scale(1.5);
1425 355 }
1426 356 }
1427 357
1428 -/* ========================================
1429 - PRE-CHAT MESSAGE
1430 - ======================================== */
1431 -.pre-chat-message {
358 +
359 +
360 +#pre-chat-message {
1432 361 position: fixed;
1433 - bottom: 85px;
1434 - right: 30px;
362 + bottom: 85px;
363 + right: 30px;
1435 364 background-color: #fff;
1436 - color: #212121;
365 + color: #333;
1437 366 padding: 10px;
1438 - box-shadow: 0px 0px 10px rgba(150, 150, 150, 0.3);
367 + box-shadow: rgba(150, 150, 150, 0.2) 0px 10px 30px 0px, rgba(150, 150, 150, 0.2) 0px 0px 0px 1px;
1439 368 border-radius: 5px;
1440 369 z-index: 1000;
1441 - cursor: pointer;
1442 - max-width: 325px;
370 + cursor: pointer;
371 + max-width: 70vw;
1443 372 font-size: 14px;
1444 - display: none;
373 + display: none;
374 + background: #fff;
1445 375 margin-bottom: 10px;
1446 376 }
1447 377
1448 -.pre-chat-message .close-pre-chat-message {
378 +#pre-chat-message .close-pre-chat-message {
1449 379 position: absolute;
1450 380 top: -6px;
1451 381 right: -6px;
1452 382 background-color: #ccc;
1453 383 border: none;
1454 - color: #212121;
384 + color: #333;
1455 385 font-size: 14px;
1456 386 cursor: pointer;
1457 387 border-radius: 50%;
1458 388 width: 20px;
1459 - min-width: 20px;
1460 - min-height: 20px;
1461 389 height: 20px;
1462 390 display: flex;
1463 391 align-items: center;
1464 392 justify-content: center;
@@ -1463,804 +391,44 @@
1463 391 align-items: center;
1464 392 justify-content: center;
1465 393 padding: 0;
1466 394 line-height: 1;
395 + display: flex; /* Show the close button on hover */
1467 396 }
1468 397
1469 -/* ========================================
1470 - VIEWPORT HEIGHT CONSTRAINTS
1471 - Handles bookmarks bar, browser zoom, and smaller screens
1472 - ======================================== */
1473 -@media screen and (max-height: 700px) {
1474 - .floating-chatbot {
1475 - bottom: 15px;
1476 - height: calc(100vh - 30px);
1477 - height: calc(100dvh - 30px);
1478 - max-height: calc(100vh - 30px);
1479 - max-height: calc(100dvh - 30px);
1480 - }
1481 398
1482 - .floating-chatbot-button {
1483 - bottom: 20px;
1484 - }
1485 399
1486 - .pre-chat-message {
1487 - bottom: 75px;
1488 - }
1489 -}
1490 -
1491 -@media screen and (max-height: 550px) {
1492 - .floating-chatbot {
1493 - bottom: 10px;
1494 - height: calc(100vh - 20px);
1495 - height: calc(100dvh - 20px);
1496 - max-height: calc(100vh - 20px);
1497 - max-height: calc(100dvh - 20px);
1498 - }
1499 -
1500 - /* Reduce padding in tight spaces */
1501 - .mxchat-popular-questions {
1502 - padding: 0 8px 5px;
1503 - margin-bottom: 8px;
1504 - }
1505 -
1506 - .mxchat-popular-question {
1507 - padding: 8px 12px;
1508 - font-size: 13px;
1509 - line-height: 20px;
1510 - }
1511 -
1512 - .mxchat-chatbot .chat-container .input-container {
1513 - margin: 0 8px 8px;
1514 - }
1515 -
1516 - .mxchat-chatbot-wrapper .chatbot-footer {
1517 - padding-bottom: 5px;
1518 - }
1519 -}
1520 -
1521 -/* ========================================
1522 - MOBILE RESPONSIVE
1523 - ======================================== */
1524 -@media screen and (max-width: 782px) {
1525 - .mxchat-search-results {
1526 - gap: 15px !important;
1527 - }
1528 -
1529 - .mxchat-search-intro {
1530 - font-size: 15px !important;
1531 - }
1532 -
1533 - .mxchat-search-title {
1534 - font-size: 15px !important;
1535 - }
1536 -
1537 - .mxchat-search-description {
1538 - font-size: 13px !important;
1539 - }
1540 -}
1541 -
1542 400 @media (max-width: 550px) {
1543 - .questions-toggle-btn,
1544 - .questions-collapse-btn {
1545 - width: 28px;
1546 - height: 28px;
401 +
402 + #pre-chat-message {
403 + bottom: 70px; /* Adjust this value as needed */
404 + right: 15px; /* Adjust this value as needed */
1547 405 }
1548 -
1549 - .questions-toggle-btn svg,
1550 - .questions-collapse-btn svg {
1551 - width: 22px;
1552 - height: 22px;
1553 - }
1554 -
1555 - .pre-chat-message {
1556 - bottom: 70px;
1557 - right: 15px;
1558 - }
1559 -
1560 - .chat-input {
406 +
407 + #chat-input {
1561 408 width: calc(100% - 70px);
1562 409 }
1563 -
1564 - .bot-message,
1565 - .user-message {
410 + .bot-message, .user-message {
1566 411 padding: 10px;
1567 412 max-width: 95%;
1568 413 }
1569 -
1570 - .floating-chatbot-button {
414 + #floating-chatbot-button {
1571 415 bottom: 15px;
1572 416 right: 10px;
1573 417 }
1574 -
1575 - .floating-chatbot {
1576 - width: calc(100vw - 16px);
1577 - /* Use multiple fallbacks for maximum browser compatibility */
1578 - height: calc(100vh - 16px); /* Fallback */
1579 - height: calc(var(--vh, 1vh) * 100 - 16px); /* JS-set custom property fallback */
1580 - height: calc(100dvh - 16px); /* Modern dynamic viewport height */
1581 - max-height: calc(100vh - 16px);
1582 - max-height: calc(100dvh - 16px);
418 + #floating-chatbot {
419 + width: 100vw;
420 + height: calc(var(--vh, 1vh) * 100);
1583 421 margin: 0;
1584 422 padding: 0;
1585 423 position: fixed;
1586 - bottom: 8px;
1587 - top: auto;
1588 - left: 8px;
1589 - right: 8px;
1590 - border-radius: 16px;
1591 - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
424 + bottom: 0;
425 + top: 0;
426 + left: 0;
427 + right: 0;
428 + border-radius: 0;
1592 429 }
1593 -
1594 - .floating-chatbot .mxchat-chatbot-wrapper {
1595 - border-radius: 16px;
1596 - overflow: hidden;
430 + #mxchat-chatbot-wrapper .chatbot-top-bar {
431 + border-top-left-radius: 0;
432 + border-top-right-radius: 0;
1597 433 }
1598 -
1599 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1600 - border-top-left-radius: 16px;
1601 - border-top-right-radius: 16px;
1602 - }
1603 434 }
1604 -
1605 -
1606 -
1607 -pre {
1608 - background-color: #000;
1609 - border: 1px solid #ddd;
1610 - border-radius: 20px;
1611 - border-left: 3px solid #9e7aff;
1612 - color: #fff;
1613 - page-break-inside: avoid;
1614 - font-family: monospace;
1615 - font-size: 15px;
1616 - line-height: 1.6;
1617 - margin-bottom: 1.6em;
1618 - max-width: 100%;
1619 - overflow: auto;
1620 - padding: 1em 1.5em;
1621 - display: block;
1622 - word-wrap: break-word;
1623 -}
1624 -
1625 -.copy-btn {
1626 - padding: 10px 20px;
1627 - border: none;
1628 - border-radius: 4px;
1629 - background-color: #9e7aff;
1630 - transition: background-color 0.3s;
1631 - color: #fff;
1632 - font-size: 1rem;
1633 - cursor: pointer;
1634 - font-weight: 700;
1635 - margin-bottom: 10px;
1636 -}
1637 -
1638 -.copy-btn:hover {
1639 - opacity: 0.8;
1640 -}
1641 -
1642 -.mxchat-product-card {
1643 - display: flex;
1644 - flex-direction: column;
1645 - align-items: center;
1646 - margin: 10px 0;
1647 - padding: 10px;
1648 - border-radius: 5px;
1649 - background-color: inherit;
1650 -}
1651 -
1652 -.mxchat-product-card img.mxchat-product-image {
1653 - max-width: 100%;
1654 - height: auto;
1655 - margin-bottom: 5px;
1656 - border-radius: 4px;
1657 -}
1658 -
1659 -.mxchat-product-card h3.mxchat-product-name {
1660 - font-size: 16px;
1661 - font-weight: bold;
1662 - margin: 5px 0;
1663 - text-align: center;
1664 - color: inherit;
1665 -}
1666 -
1667 -.mxchat-product-card .mxchat-product-price {
1668 - color: inherit;
1669 - font-weight: bold;
1670 - margin-bottom: 5px;
1671 -}
1672 -
1673 -.mxchat-product-card .mxchat-product-description {
1674 - font-size: 14px;
1675 - text-align: center;
1676 - margin-bottom: 10px;
1677 - color: inherit;
1678 -}
1679 -
1680 -.mxchat-product-card .mxchat-add-to-cart-button {
1681 - background-color: #212121;
1682 - color: #fff;
1683 - padding: 8px 12px;
1684 - border: none;
1685 - cursor: pointer;
1686 - border-radius: 12px;
1687 - transition: background-color 0.3s ease;
1688 -}
1689 -
1690 -.mxchat-product-card .mxchat-add-to-cart-button:hover {
1691 - background-color: #212121;
1692 -}
1693 -
1694 -.mxchat-image-gallery {
1695 - display: flex;
1696 - flex-wrap: wrap;
1697 - gap: 10px;
1698 - justify-content: center;
1699 -}
1700 -
1701 -.mxchat-image-item {
1702 - text-align: center;
1703 - overflow: hidden;
1704 - word-wrap: break-word;
1705 -}
1706 -
1707 -.mxchat-image-title {
1708 - display: block;
1709 - font-size: 14px;
1710 - color: inherit;
1711 - white-space: nowrap;
1712 - overflow: hidden;
1713 - text-overflow: ellipsis;
1714 - max-width: 100%;
1715 -}
1716 -
1717 -.mxchat-image-link {
1718 - text-decoration: none;
1719 -}
1720 -
1721 -.mxchat-image-thumbnail {
1722 - max-width: 100%;
1723 - height: auto;
1724 - border-radius: 5px;
1725 - transition: transform 0.3s;
1726 -}
1727 -
1728 -.mxchat-image-thumbnail:hover {
1729 - transform: scale(1.05);
1730 -}
1731 -
1732 -.mxchat-generated-image {
1733 - max-width: 100%;
1734 - height: auto;
1735 - border-radius: 0 0 8px 8px;
1736 -}
1737 -
1738 -/* Consent-safe YouTube embed (click-to-load facade → nocookie iframe).
1739 - Caption colors INHERIT from the message bubble (same idiom as
1740 - .mxchat-product-card) so the embed reads correctly on any widget theme —
1741 - bot bubbles commonly force their own text color. */
1742 -.mxchat-youtube-embed {
1743 - max-width: 340px;
1744 - margin-top: 8px;
1745 -}
1746 -
1747 -.mxchat-youtube-facade {
1748 - position: relative;
1749 - display: block;
1750 - width: 100%;
1751 - padding: 0;
1752 - margin: 0;
1753 - border: none;
1754 - background: #000;
1755 - cursor: pointer;
1756 - aspect-ratio: 16 / 9;
1757 - border-radius: 10px;
1758 - overflow: hidden;
1759 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1760 -}
1761 -
1762 -.mxchat-youtube-thumb {
1763 - width: 100%;
1764 - height: 100%;
1765 - object-fit: cover;
1766 - display: block;
1767 - opacity: 0.92;
1768 - transition: opacity 0.2s;
1769 -}
1770 -
1771 -.mxchat-youtube-facade:hover .mxchat-youtube-thumb {
1772 - opacity: 1;
1773 -}
1774 -
1775 -.mxchat-youtube-play {
1776 - position: absolute;
1777 - top: 50%;
1778 - left: 50%;
1779 - transform: translate(-50%, -50%);
1780 - display: flex;
1781 - align-items: center;
1782 - justify-content: center;
1783 - width: 52px;
1784 - height: 52px;
1785 - border-radius: 50%;
1786 - background: rgba(0, 0, 0, 0.72);
1787 - color: #fff;
1788 - transition: transform 0.2s, background 0.2s;
1789 -}
1790 -
1791 -.mxchat-youtube-play svg {
1792 - margin-left: 3px;
1793 -}
1794 -
1795 -.mxchat-youtube-facade:hover .mxchat-youtube-play {
1796 - transform: translate(-50%, -50%) scale(1.08);
1797 - background: rgba(0, 0, 0, 0.85);
1798 -}
1799 -
1800 -.mxchat-youtube-iframe {
1801 - width: 100%;
1802 - aspect-ratio: 16 / 9;
1803 - border: none;
1804 - display: block;
1805 - border-radius: 10px;
1806 - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
1807 -}
1808 -
1809 -.mxchat-youtube-caption {
1810 - display: flex;
1811 - align-items: baseline;
1812 - justify-content: space-between;
1813 - gap: 10px;
1814 - padding: 8px 2px 0;
1815 - background: transparent;
1816 - color: inherit;
1817 -}
1818 -
1819 -.mxchat-youtube-title {
1820 - font-size: 13px;
1821 - font-weight: 600;
1822 - color: inherit;
1823 - overflow: hidden;
1824 - white-space: nowrap;
1825 - text-overflow: ellipsis;
1826 -}
1827 -
1828 -.mxchat-youtube-link {
1829 - font-size: 12px;
1830 - white-space: nowrap;
1831 - color: inherit;
1832 - opacity: 0.85;
1833 - text-decoration: underline;
1834 -}
1835 -
1836 -#widget_icon, #widget_icon_2, #widget_icon_3, #widget_icon_5, #widget_icon_4, #widget_icon_6, #widget_icon_7 {
1837 - padding: 10px;
1838 -}
1839 -
1840 -#widget_icon_10 {
1841 - fill: #fff;
1842 -}
1843 -
1844 -
1845 -/* This selector with more context - showing the collapse button in certain states */
1846 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn {
1847 - background: none;
1848 - border: none;
1849 - padding: 0;
1850 - margin: 0px;
1851 - cursor: pointer;
1852 - transition: all 0.2s ease;
1853 - color: #212121;
1854 - display: none; /* Hidden by default */
1855 - align-items: center;
1856 - justify-content: center;
1857 - width: 32px;
1858 - height: 32px;
1859 - box-shadow: none;
1860 - outline: none;
1861 - align-self: center; /* THIS IS MISSING */
1862 - order: -1; /* THIS IS MISSING */
1863 -}
1864 -
1865 -/* ALL hover states - these are MISSING from your new CSS */
1866 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover {
1867 - background: none;
1868 - border: none;
1869 - box-shadow: none;
1870 -}
1871 -
1872 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:focus {
1873 - outline: none;
1874 - background: none;
1875 - border: none;
1876 - box-shadow: none;
1877 -}
1878 -
1879 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:active {
1880 - background: none;
1881 - border: none;
1882 - box-shadow: none;
1883 -}
1884 -
1885 -/* SVG styles - these are MISSING */
1886 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn svg {
1887 - fill: none;
1888 - stroke: #212121;
1889 - transition: transform 0.2s ease;
1890 - width: 25px;
1891 - height: 25px;
1892 -}
1893 -
1894 -.mxchat-popular-questions .mxchat-popular-questions-container .questions-collapse-btn:hover svg {
1895 - opacity: 0.7;
1896 -}
1897 -
1898 -/* THE CRITICAL DISPLAY RULE - this shows when it's been collapsed before */
1899 -.mxchat-popular-questions.has-been-collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1900 - display: flex;
1901 -}
1902 -
1903 -/* Hide when actually collapsed */
1904 -.mxchat-popular-questions.collapsed .mxchat-popular-questions-container .questions-collapse-btn {
1905 - display: none;
1906 -}
1907 -
1908 -/* ============================================================
1909 - Header overflow menu — 3-dot kebab + dropdown (v3.2.9 / v3.2.10)
1910 - Lives in .chatbot-top-bar to the LEFT of .exit-chat. Visual treatment
1911 - mirrors .exit-chat: transparent, white-on-dark, 0.8 opacity, 5px pad.
1912 -
1913 - v3.2.10: explicit `order` rules pin the visual order
1914 - title (0) | kebab (1) | down-arrow (2)
1915 - so the down-arrow is always the rightmost icon regardless of source
1916 - order or which sibling has margin-left:auto.
1917 - ============================================================ */
1918 -.mxchat-chatbot-wrapper .chatbot-top-bar > .chatbot-title-container { order: 0; }
1919 -.mxchat-chatbot-wrapper .chatbot-top-bar > .mxchat-header-menu-wrap { order: 1; }
1920 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat { order: 2; }
1921 -
1922 -.mxchat-header-menu-wrap {
1923 - position: relative;
1924 - display: inline-flex;
1925 - align-items: center;
1926 - margin-left: auto; /* push kebab + arrow group to the right edge */
1927 -}
1928 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap ~ .exit-chat,
1929 -.mxchat-chatbot-wrapper .chatbot-top-bar .mxchat-header-menu-wrap + .exit-chat {
1930 - margin-left: 4px; /* even, snug gap between kebab and close */
1931 -}
1932 -.mxchat-chatbot-wrapper .chatbot-top-bar > .exit-chat:focus {
1933 - background: rgba(255, 255, 255, 0.12);
1934 - opacity: 1;
1935 - outline: none;
1936 -}
1937 -/* v3.2.15 (plan-52fd4c): kebab rules scoped under the wrapper + explicit
1938 - guards on every property a theme's button/link rules commonly set
1939 - (font-family, margin, appearance, text-transform, background-image),
1940 - after a customer site's theme visibly mangled the dropdown. */
1941 -.mxchat-chatbot-wrapper .mxchat-header-btn {
1942 - border: none;
1943 - background: transparent;
1944 - background-image: none;
1945 - cursor: pointer;
1946 - display: inline-flex;
1947 - align-items: center;
1948 - justify-content: center;
1949 - padding: 0;
1950 - margin: 0;
1951 - opacity: 0.8;
1952 - color: #fff;
1953 - font-family: inherit;
1954 - text-transform: none;
1955 - text-shadow: none;
1956 - appearance: none;
1957 - -webkit-appearance: none;
1958 - transition: opacity 0.15s ease, background 0.15s ease;
1959 - border-radius: 6px;
1960 - line-height: 0;
1961 - width: 32px;
1962 - height: 32px;
1963 - min-width: 32px;
1964 - min-height: 32px;
1965 - max-width: none;
1966 - flex: 0 0 auto;
1967 -}
1968 -.mxchat-chatbot-wrapper .mxchat-header-btn:hover,
1969 -.mxchat-chatbot-wrapper .mxchat-header-btn:focus {
1970 - opacity: 1;
1971 - background: rgba(255, 255, 255, 0.12);
1972 - outline: none;
1973 -}
1974 -.mxchat-chatbot-wrapper .mxchat-header-btn[aria-expanded="true"] {
1975 - opacity: 1;
1976 - background: rgba(255, 255, 255, 0.12);
1977 -}
1978 -.mxchat-chatbot-wrapper .mxchat-menu-trigger svg {
1979 - width: 18px;
1980 - height: 18px;
1981 -}
1982 -
1983 -.mxchat-chatbot-wrapper .mxchat-header-menu {
1984 - position: absolute;
1985 - top: calc(100% + 6px);
1986 - right: 0;
1987 - min-width: 220px;
1988 - margin: 0;
1989 - background: var(--mxchat-menu-bg, #ffffff);
1990 - color: var(--mxchat-menu-fg, #1a1a1a);
1991 - border: 1px solid rgba(127, 127, 127, 0.20);
1992 - border-radius: 10px;
1993 - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.10);
1994 - padding: 4px;
1995 - font-family: inherit;
1996 - z-index: 99;
1997 - opacity: 0;
1998 - transform: translateY(-4px);
1999 - pointer-events: none;
2000 - transition: opacity 0.12s ease, transform 0.12s ease;
2001 -}
2002 -.mxchat-chatbot-wrapper .mxchat-header-menu.is-open {
2003 - opacity: 1;
2004 - transform: translateY(0);
2005 - pointer-events: auto;
2006 -}
2007 -.mxchat-chatbot-wrapper .mxchat-header-menu[hidden] {
2008 - display: none;
2009 -}
2010 -.mxchat-chatbot-wrapper .mxchat-menu-item {
2011 - display: flex;
2012 - align-items: center;
2013 - gap: 10px;
2014 - width: 100%;
2015 - padding: 8px 12px;
2016 - margin: 0;
2017 - min-height: 40px;
2018 - border: none;
2019 - background: transparent;
2020 - background-image: none;
2021 - color: inherit;
2022 - font-family: inherit;
2023 - font-size: 14px;
2024 - line-height: 1.3;
2025 - letter-spacing: normal;
2026 - text-align: left;
2027 - text-transform: none;
2028 - text-shadow: none;
2029 - white-space: nowrap;
2030 - appearance: none;
2031 - -webkit-appearance: none;
2032 - cursor: pointer;
2033 - border-radius: 6px;
2034 - transition: background 0.12s ease;
2035 - text-decoration: none;
2036 - box-sizing: border-box;
2037 -}
2038 -.mxchat-chatbot-wrapper .mxchat-menu-item:hover,
2039 -.mxchat-chatbot-wrapper .mxchat-menu-item:focus {
2040 - background: rgba(127, 127, 127, 0.18);
2041 - outline: none;
2042 -}
2043 -.mxchat-menu-item-icon {
2044 - display: inline-flex;
2045 - align-items: center;
2046 - justify-content: center;
2047 - width: 16px;
2048 - height: 16px;
2049 - color: inherit;
2050 - opacity: 0.85;
2051 - flex-shrink: 0;
2052 -}
2053 -.mxchat-menu-item-icon svg {
2054 - width: 16px;
2055 - height: 16px;
2056 - display: block;
2057 -}
2058 -.mxchat-menu-item-label {
2059 - flex: 1;
2060 - color: inherit;
2061 -}
2062 -
2063 -/* RTL — flip the dropdown anchor edge */
2064 -[dir="rtl"] .mxchat-header-menu,
2065 -.mxchat-chatbot-wrapper[dir="rtl"] .mxchat-header-menu {
2066 - right: auto;
2067 - left: 0;
2068 -}
2069 -
2070 -/* ============================================================================
2071 - Satisfaction rating (v3.2.6 — polished per plan-141a12)
2072 - Theme-adaptive via currentColor + inherit. Clean slate — old rules removed.
2073 - ========================================================================= */
2074 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-prompt,
2075 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-feedback,
2076 -.mxchat-chatbot .chat-container .chat-box .mxchat-rating-saved {
2077 - clear: both;
2078 - float: left;
2079 - max-width: 92%;
2080 - box-sizing: border-box;
2081 -}
2082 -
2083 -/* Theme-adaptive wrapper — .bot-message carries the user's custom bg/color via
2084 - inline style; the inner rating component supplies its own padding + layout. */
2085 -.mxchat-rating-bot-bubble {
2086 - padding: 0;
2087 - overflow: visible;
2088 -}
2089 -
2090 -.mxchat-rating-prompt {
2091 - display: flex;
2092 - flex-direction: column;
2093 - align-items: stretch;
2094 - gap: 10px;
2095 - padding: 10px 14px;
2096 - margin: 10px 0;
2097 - font-size: 14px;
2098 - color: inherit;
2099 -}
2100 -
2101 -.mxchat-rating-question {
2102 - color: inherit;
2103 - opacity: 0.85;
2104 - font-weight: 500;
2105 -}
2106 -
2107 -.mxchat-rating-actions {
2108 - display: flex;
2109 - align-items: center;
2110 - gap: 8px;
2111 -}
2112 -
2113 -.mxchat-rating-buttons {
2114 - display: inline-flex;
2115 - gap: 6px;
2116 -}
2117 -
2118 -.mxchat-rating-btn {
2119 - display: inline-flex;
2120 - align-items: center;
2121 - justify-content: center;
2122 - width: 32px;
2123 - height: 32px;
2124 - border-radius: 8px;
2125 - background: transparent;
2126 - border: none;
2127 - color: inherit;
2128 - opacity: 0.6;
2129 - cursor: pointer;
2130 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease, color 0.18s ease;
2131 - padding: 0;
2132 -}
2133 -
2134 -.mxchat-rating-btn:hover {
2135 - opacity: 1;
2136 - transform: scale(1.12);
2137 - background: rgba(255, 255, 255, 0.08);
2138 -}
2139 -
2140 -.mxchat-rating-btn:focus-visible {
2141 - opacity: 1;
2142 - outline: 2px solid currentColor;
2143 - outline-offset: 2px;
2144 -}
2145 -
2146 -.mxchat-rating-btn svg {
2147 - pointer-events: none;
2148 -}
2149 -
2150 -.mxchat-rating-dismiss {
2151 - width: 24px;
2152 - height: 24px;
2153 - border-radius: 6px;
2154 - background: transparent;
2155 - border: none;
2156 - color: inherit;
2157 - opacity: 0.45;
2158 - cursor: pointer;
2159 - font-size: 18px;
2160 - line-height: 1;
2161 - transition: opacity 0.18s ease, background-color 0.18s ease;
2162 -}
2163 -
2164 -.mxchat-rating-dismiss:hover {
2165 - opacity: 0.9;
2166 - background: rgba(255, 255, 255, 0.08);
2167 -}
2168 -
2169 -/* Feedback panel that replaces the prompt after a rating is clicked */
2170 -.mxchat-rating-feedback {
2171 - padding: 12px 14px;
2172 - margin: 10px 0;
2173 - display: flex;
2174 - flex-direction: column;
2175 - gap: 10px;
2176 - color: inherit;
2177 - animation: mxchat-rating-fade-in 0.22s ease;
2178 -}
2179 -
2180 -.mxchat-rating-feedback-label {
2181 - font-size: 13px;
2182 - opacity: 0.85;
2183 - font-weight: 500;
2184 -}
2185 -
2186 -.mxchat-rating-feedback-input {
2187 - width: 100%;
2188 - box-sizing: border-box;
2189 - padding: 8px 10px;
2190 - border: 1px solid rgba(255, 255, 255, 0.25);
2191 - border-radius: 8px;
2192 - font-size: 14px;
2193 - font-family: inherit;
2194 - resize: vertical;
2195 - background: rgba(255, 255, 255, 0.08);
2196 - color: inherit;
2197 -}
2198 -
2199 -.mxchat-rating-feedback-input:focus {
2200 - outline: none;
2201 - border-color: rgba(255, 255, 255, 0.45);
2202 - background: rgba(255, 255, 255, 0.15);
2203 -}
2204 -
2205 -.mxchat-rating-feedback-actions {
2206 - display: flex;
2207 - justify-content: flex-end;
2208 - gap: 8px;
2209 -}
2210 -
2211 -.mxchat-rating-skip,
2212 -.mxchat-rating-submit {
2213 - padding: 6px 14px;
2214 - border-radius: 8px;
2215 - font-size: 13px;
2216 - font-weight: 500;
2217 - cursor: pointer;
2218 - border: none;
2219 - transition: opacity 0.18s ease, transform 0.18s ease, background-color 0.18s ease;
2220 -}
2221 -
2222 -.mxchat-rating-skip {
2223 - background: transparent;
2224 - color: inherit;
2225 - opacity: 0.6;
2226 -}
2227 -
2228 -.mxchat-rating-skip:hover {
2229 - opacity: 1;
2230 - background: rgba(255, 255, 255, 0.08);
2231 -}
2232 -
2233 -.mxchat-rating-submit {
2234 - /* Filled "primary" pill: fill = the bot font color, label = the bubble bg.
2235 - syncRatingBubbleColors() in chat-script.js paints the real bot colors
2236 - straight onto this button (inline) from the bubble's COMPUTED style, so
2237 - it adapts to both the inline color pickers AND the mxchat-theme AI
2238 - customizer. These var()/literal values are the no-JS safety net — the
2239 - literal fallbacks (#212121 fill / #ffffff label) stay legible on their
2240 - own (no white-on-white). Longhand background-color (not the `background`
2241 - shorthand) because Chromium resolves inherited custom properties
2242 - unreliably inside the shorthand. Do NOT use currentColor here — setting
2243 - `color` would re-poison the background to the same value. */
2244 - background-color: var(--mxchat-bot-fg, #212121);
2245 - color: var(--mxchat-bot-bg, #ffffff);
2246 -}
2247 -
2248 -.mxchat-rating-submit:hover {
2249 - transform: translateY(-1px);
2250 - opacity: 0.9;
2251 -}
2252 -
2253 -.mxchat-rating-saved {
2254 - padding: 10px 14px;
2255 - margin: 10px 0;
2256 - font-size: 13px;
2257 - font-weight: 500;
2258 - text-align: center;
2259 - color: inherit;
2260 - animation: mxchat-rating-fade-in 0.22s ease;
2261 -}
2262 -
2263 -@keyframes mxchat-rating-fade-in {
2264 - from { opacity: 0; transform: translateY(4px); }
2265 - to { opacity: 1; transform: translateY(0); }
2266 -}