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