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