PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 1.0.9
MxChat – AI Chatbot & Content Generation for WordPress v1.0.9
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 +184 -2023 3.2.211.0.9 View file →
@@ -1,1057 +1,121 @@
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;
11 +.privacy-notice {
12 + font-size: .75rem;
13 + margin: 0px;
14 + color: #71717a;
234 15 }
235 16
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;
17 +#mxchat-chatbot #chat-container #input-container #send-button, .copy-btn {
18 + transition: background-color .3s;
19 + color: #fff;
20 + font-size: 1rem;
450 21 cursor: pointer;
451 - transition: all 0.2s ease;
452 - min-height: 24px;
453 - line-height: 1;
22 + font-weight: 700;
454 23 }
455 24
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 {
466 - 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;
474 -}
475 -
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 -}
485 -
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 -}
495 -
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;
25 +#mxchat-chatbot {
26 + max-width: 800px;
513 27 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;
524 - cursor: pointer;
525 - transition: opacity 0.2s;
526 - line-height: 13px;
527 -}
528 -
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 28 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 29 display: flex;
620 30 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;
795 - overflow: hidden;
796 - position: relative;
797 - display: flex;
798 - flex-direction: column;
31 + height: 500px;
32 + box-sizing: border-box;
799 33 flex-grow: 1;
800 - min-height: 0; /* Allow flex shrinking */
801 - box-sizing: border-box;
802 34 }
803 35
804 -.chat-container {
36 +#chat-container {
805 37 display: flex;
806 38 flex-direction: column;
807 - flex-grow: 1;
808 - min-height: 0; /* Critical for flex overflow scrolling */
809 39 height: 100%;
810 40 }
811 41
812 -.chat-box {
42 +#chat-box {
813 43 flex-grow: 1;
814 44 overflow-y: auto;
815 45 padding: 10px;
816 46 margin-bottom: 0;
817 47 font-size: 1rem;
818 - min-height: 0; /* Critical for flex overflow scrolling */
819 48 }
820 49
821 -.chat-box::-webkit-scrollbar {
50 +#chat-box::-webkit-scrollbar {
822 51 width: 5px;
823 52 }
824 53
825 -.chat-box::-webkit-scrollbar-thumb {
826 - background-color: #212121;
54 +#chat-box::-webkit-scrollbar-thumb {
55 + background-color: #333;
827 56 border-radius: 20px;
828 57 }
829 58
830 -.bot-message,
831 -.user-message {
59 +.bot-message, .user-message {
832 60 margin-bottom: 15px;
833 61 padding: 10px;
834 62 display: inline-block;
835 63 max-width: 85%;
836 - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
837 - font-size: 14px;
838 - line-height: 24px;
64 + box-shadow: 0 1px 1px rgba(0, 0, 0, .1);
839 65 }
840 66
841 67 .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);
68 + background: #fff;
69 + color: #212121;
70 + text-align: left;
71 + float: right;
72 + clear: both;
73 + border-radius: 18px 0 18px 18px;
74 + border: solid 1px #212121;
850 75 }
851 76
852 -.user-message p {
853 - margin: 0;
77 +#mxchat-chatbot #chat-container #chat-box .bot-message {
78 + text-align: left;
79 + float: left;
80 + clear: both;
81 + border: 1px solid rgba(226, 232, 255, .2);
82 + border-radius: 0 18px 18px;
83 + background: #212121;
84 + color: #fff;
854 85 }
855 86
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);
87 +#mxchat-chatbot-wrapper {
88 + box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
923 89 border-radius: 10px;
924 90 display: flex;
925 91 flex-direction: column;
926 92 height: 100%;
927 93 width: 100%;
928 - min-height: 0; /* Allow flex shrinking */
929 - overflow: hidden;
930 94 }
931 95
932 -/* ========================================
933 - INPUT & CONTROLS
934 - ======================================== */
935 -.mxchat-chatbot .chat-container .input-container {
96 +#mxchat-chatbot #chat-container #input-container {
936 97 position: relative;
937 98 display: flex;
938 99 align-items: center;
939 - padding-right: 40px;
940 - border: 1px solid #ccc;
941 - border-radius: 10px;
942 - margin: 0 10px 10px;
100 + padding: 10px;
943 101 }
944 102
945 -.mxchat-chatbot .chat-container .input-container .chat-input {
103 +#mxchat-chatbot #chat-container #input-container #chat-input {
946 104 flex-grow: 1;
105 + padding: .5rem 2.5rem .5rem .5rem;
106 + border-radius: 10px;
107 + border: 1px solid #212121;
947 108 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;
109 + font-size: 1rem;
110 + background: 0 0;
111 + width: calc(100% - 30px);
112 + margin-bottom: 0px;
113 + height: 100%;
963 114 }
964 115
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;
116 +#mxchat-chatbot #chat-container #input-container #send-button {
117 + position:absolute;
1054 118 right: 10px;
1055 119 top: 50%;
1056 120 transform: translateY(-50%);
1057 121 border: none;
@@ -1060,364 +124,223 @@
1060 124 height: 30px;
1061 125 display: flex;
1062 126 align-items: center;
1063 127 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;
128 + background: 0 0!important;
1072 129 }
1073 130
1074 -.send-button svg {
1075 - width: 25px;
1076 - height: 25px;
1077 - pointer-events: none;
131 +#mxchat-chatbot #chat-container #input-container #send-button .fa-paper-plane {
132 + font-size: 1.3rem;
1078 133 }
1079 134
1080 -.send-button:hover {
1081 - opacity: 0.8;
135 +#send-button:hover, .copy-btn:hover {
136 + opacity: .8;
1082 137 }
1083 138
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;
139 +#mxchat-chatbot:after {
140 + content: "";
141 + display: table;
142 + clear: both;
1089 143 }
1090 144
1091 -.mxchat-chatbot .spinner {
1092 - animation: rotate 2s linear infinite;
1093 - width: 20px;
1094 - height: 20px;
145 +pre {
146 + background-color: #000;
147 + border: 1px solid #ddd;
148 + border-radius: 20px;
149 + border-left: 3px solid #9e7aff;
150 + color: #fff;
151 + page-break-inside: avoid;
152 + font-family: monospace;
153 + font-size: 15px;
154 + line-height: 1.6;
155 + margin-bottom: 1.6em;
156 + max-width: 100%;
157 + overflow: auto;
158 + padding: 1em 1.5em;
159 + display: block;
160 + word-wrap: break-word;
1095 161 }
1096 162
1097 -.mxchat-chatbot .spinner circle {
1098 - stroke: #212121;
1099 - stroke-linecap: round;
1100 - animation: dash 1.5s ease-in-out infinite;
163 +.copy-btn {
164 + padding: 10px 20px;
165 + border: none;
166 + border-radius: 4px;
167 + background-color: #9e7aff;
1101 168 }
1102 169
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 {
170 +#floating-chatbot {
1158 171 position: fixed;
1159 172 bottom: 25px;
1160 173 right: 25px;
1161 174 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);
175 + height: 625px;
176 + box-shadow: 0 0 10px rgba(0, 0, 0, .25);
1168 177 border-radius: 20px;
1169 178 overflow: hidden;
1170 179 display: flex;
1171 - flex-direction: column;
1172 180 z-index: 100000;
1173 - transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
181 + transition: transform .3s ease-in-out, opacity .3s ease-in-out;
1174 182 transform: translateY(20%);
1175 183 opacity: 0;
1176 184 pointer-events: none;
1177 185 }
1178 186
1179 -.floating-chatbot.visible {
187 +#floating-chatbot.visible {
1180 188 transform: translateY(0);
1181 189 opacity: 1;
1182 190 pointer-events: auto;
1183 191 }
1184 192
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;
193 +#floating-chatbot-button.hidden, .exit-chat span {
194 + display: none!important;
1193 195 }
1194 196
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 197 .visible {
1209 198 display: flex;
1210 199 }
1211 200
1212 -.floating-chatbot-button {
201 +#floating-chatbot-button {
1213 202 transition: opacity 1s ease-in-out;
1214 203 font-size: 1.25rem;
1215 204 position: fixed;
1216 205 bottom: 30px;
1217 206 right: 25px;
1218 - background-color: #212121;
207 + background-color: #d63638;
1219 208 color: #fff;
1220 209 width: 60px;
1221 210 height: 60px;
1222 211 border-radius: 50%;
1223 - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
212 + box-shadow: 0 4px 8px rgba(0, 0, 0, .2)!important;
1224 213 justify-content: center;
1225 214 align-items: center;
1226 215 cursor: pointer;
1227 - transition: 0.3s;
216 + transition: .3s;
1228 217 z-index: 100000;
1229 - display: flex;
218 + display: flex;
1230 219 }
1231 220
1232 -.floating-chatbot-button:focus-visible {
1233 - outline: 3px solid #7873f5;
1234 - outline-offset: 3px;
1235 -}
1236 -
1237 -.floating-chatbot-button img {
221 +#floating-chatbot-button img {
1238 222 max-width: 100%;
1239 223 max-height: 100%;
224 + padding: 10px;
1240 225 width: auto;
1241 226 height: auto;
1242 227 }
1243 228
1244 -.chatbot-top-bar {
1245 - background: #212121;
229 +#mxchat-chatbot-wrapper.active+#floating-chatbot-button {
230 + bottom: 530px;
231 + width: 100%;
1246 232 }
1247 233
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;
234 +.chatbot-close-button {
235 + position: absolute;
236 + top: 5px;
237 + right: 5px;
1253 238 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;
239 + background: 0 0;
240 + cursor: pointer;
241 + font-size: 20px;
242 + color: #f0f0f1;
1269 243 }
1270 244
1271 -.mxchat-chatbot-wrapper .chatbot-top-bar {
245 +#mxchat-chatbot-wrapper .chatbot-top-bar {
1272 246 cursor: pointer;
1273 247 color: #fff;
1274 - padding: 8px 12px;
1275 - min-height: 48px;
1276 - gap: 8px;
248 + padding: 10px;
1277 249 border-top-left-radius: 10px;
1278 250 border-top-right-radius: 10px;
1279 251 display: flex;
1280 252 justify-content: space-between;
1281 - align-items: center;
253 + align-items: baseline;
1282 254 }
1283 255
1284 -.mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
1285 - font-size: 15px;
1286 - line-height: 1.2;
1287 - padding: 0;
256 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title {
257 + font-size: 1rem;
258 + line-height: 25px;
259 + padding: 10px;
1288 260 margin: 0;
1289 261 font-family: 'Plus Jakarta Sans', sans-serif;
1290 - font-weight: 600;
262 + font-weight: bold;
1291 263 }
1292 264
265 +#mxchat-chatbot-wrapper .chatbot-top-bar .chatbot-title span {
266 + font-weight: 700;
267 +}
268 +
269 +#mxchat-chatbot-wrapper .chatbot-top-bar button.exit-chat {
270 + background: 0 0;
271 + border: none;
272 + opacity: .8;
273 +}
274 +
1293 275 .exit-chat {
1294 276 border: none;
1295 - background: transparent;
277 + background: 0 0;
1296 278 cursor: pointer;
1297 - display: inline-flex;
279 + display: flex;
1298 280 align-items: center;
1299 281 justify-content: center;
1300 - padding: 0;
282 + padding: 5px;
1301 283 margin-left: auto;
1302 - opacity: 0.8;
1303 - width: 32px;
1304 - height: 32px;
1305 - min-width: 32px;
1306 - flex: 0 0 auto;
1307 284 }
1308 285
1309 286 .exit-chat svg {
1310 - width: 18px;
1311 - height: 18px;
1312 - fill: none;
1313 - stroke: currentColor;
287 + fill: white;
288 + width: 24px;
289 + height: 24px;
290 + transform: rotate(270deg);
1314 291 }
1315 292
1316 -.mxchat-chatbot-wrapper .chatbot-footer {
293 +#mxchat-chatbot-wrapper .chatbot-footer {
1317 294 text-align: center;
1318 295 padding-bottom: 10px;
1319 - font-size: 0.85em;
296 + font-size: .85em;
1320 297 }
1321 298
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 {
299 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by {
1335 300 text-decoration: none;
1336 301 color: inherit;
1337 302 font-weight: 700;
1338 303 }
1339 304
1340 -.mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
305 +#mxchat-chatbot-wrapper .chatbot-footer .powered-by span {
1341 306 text-decoration: underline;
1342 307 }
1343 308
1344 -/* ========================================
1345 - INIT LOADER (shown while chat initializes)
1346 - ======================================== */
1347 -.mxchat-init-loader {
309 +.thinking-dots-container {
1348 310 display: flex;
1349 - align-items: center;
1350 311 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 312 align-items: center;
1384 313 overflow: hidden;
1385 - height: 20px;
1386 - position: relative;
1387 - z-index: 1;
1388 - flex-shrink: 0;
314 + height: 20px; /* Adjust as needed */
1389 315 }
1390 316
1391 -.chat-box .bot-message.temporary-message .thinking-dots {
317 +.thinking-dots {
1392 318 display: flex;
1393 319 justify-content: center;
1394 320 align-items: center;
1395 321 height: 90%;
1396 - gap: 5px;
1397 - flex-shrink: 0;
1398 322 }
1399 323
1400 -.chat-box .bot-message.temporary-message .thinking-dots .dot {
1401 - height: 6px;
1402 - width: 6px;
324 +.dot {
325 + height: 8px;
326 + width: 8px;
1403 327 margin: 0 3px;
1404 328 background-color: #fff;
1405 329 border-radius: 50%;
1406 330 display: inline-block;
1407 - animation: mxchat-dot-bounce 1.4s ease-in-out infinite both;
1408 - vertical-align: middle;
331 + animation: bounce 1.4s ease-in-out infinite both;
1409 332 }
1410 333
1411 -.chat-box .bot-message.temporary-message .thinking-dots .dot:first-child {
1412 - animation-delay: -0.32s;
334 +.dot:first-child {
335 + animation-delay: -.32s;
1413 336 }
1414 337
1415 -.chat-box .bot-message.temporary-message .thinking-dots .dot:nth-child(2) {
1416 - animation-delay: -0.16s;
338 +.dot:nth-child(2) {
339 + animation-delay: -.16s;
1417 340 }
1418 341
1419 -@keyframes mxchat-dot-bounce {
342 +@keyframes bounce {
1420 343 0%, 100%, 80% {
1421 344 transform: scale(1);
1422 345 }
1423 346 40% {
@@ -1424,41 +347,39 @@
1424 347 transform: scale(1.5);
1425 348 }
1426 349 }
1427 350
1428 -/* ========================================
1429 - PRE-CHAT MESSAGE
1430 - ======================================== */
1431 -.pre-chat-message {
351 +
352 +
353 +#pre-chat-message {
1432 354 position: fixed;
1433 - bottom: 85px;
1434 - right: 30px;
355 + bottom: 85px;
356 + right: 30px;
1435 357 background-color: #fff;
1436 - color: #212121;
358 + color: #333;
1437 359 padding: 10px;
1438 - box-shadow: 0px 0px 10px rgba(150, 150, 150, 0.3);
360 + box-shadow: rgba(150, 150, 150, 0.2) 0px 10px 30px 0px, rgba(150, 150, 150, 0.2) 0px 0px 0px 1px;
1439 361 border-radius: 5px;
1440 362 z-index: 1000;
1441 - cursor: pointer;
1442 - max-width: 325px;
363 + cursor: pointer;
364 + max-width: 70vw;
1443 365 font-size: 14px;
1444 - display: none;
366 + display: none;
367 + background: #fff;
1445 368 margin-bottom: 10px;
1446 369 }
1447 370
1448 -.pre-chat-message .close-pre-chat-message {
371 +#pre-chat-message .close-pre-chat-message {
1449 372 position: absolute;
1450 373 top: -6px;
1451 374 right: -6px;
1452 375 background-color: #ccc;
1453 376 border: none;
1454 - color: #212121;
377 + color: #333;
1455 378 font-size: 14px;
1456 379 cursor: pointer;
1457 380 border-radius: 50%;
1458 381 width: 20px;
1459 - min-width: 20px;
1460 - min-height: 20px;
1461 382 height: 20px;
1462 383 display: flex;
1463 384 align-items: center;
1464 385 justify-content: center;
@@ -1463,804 +384,44 @@
1463 384 align-items: center;
1464 385 justify-content: center;
1465 386 padding: 0;
1466 387 line-height: 1;
388 + display: flex; /* Show the close button on hover */
1467 389 }
1468 390
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 391
1482 - .floating-chatbot-button {
1483 - bottom: 20px;
1484 - }
1485 392
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 393 @media (max-width: 550px) {
1543 - .questions-toggle-btn,
1544 - .questions-collapse-btn {
1545 - width: 28px;
1546 - height: 28px;
394 +
395 + #pre-chat-message {
396 + bottom: 70px; /* Adjust this value as needed */
397 + right: 15px; /* Adjust this value as needed */
1547 398 }
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 {
399 +
400 + #chat-input {
1561 401 width: calc(100% - 70px);
1562 402 }
1563 -
1564 - .bot-message,
1565 - .user-message {
403 + .bot-message, .user-message {
1566 404 padding: 10px;
1567 405 max-width: 95%;
1568 406 }
1569 -
1570 - .floating-chatbot-button {
407 + #floating-chatbot-button {
1571 408 bottom: 15px;
1572 409 right: 10px;
1573 410 }
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);
411 + #floating-chatbot {
412 + width: 100vw;
413 + height: calc(var(--vh, 1vh) * 100);
1583 414 margin: 0;
1584 415 padding: 0;
1585 416 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);
417 + bottom: 0;
418 + top: 0;
419 + left: 0;
420 + right: 0;
421 + border-radius: 0;
1592 422 }
1593 -
1594 - .floating-chatbot .mxchat-chatbot-wrapper {
1595 - border-radius: 16px;
1596 - overflow: hidden;
423 + #mxchat-chatbot-wrapper .chatbot-top-bar {
424 + border-top-left-radius: 0;
425 + border-top-right-radius: 0;
1597 426 }
1598 -
1599 - .mxchat-chatbot-wrapper .chatbot-top-bar {
1600 - border-top-left-radius: 16px;
1601 - border-top-right-radius: 16px;
1602 - }
1603 427 }
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 -}