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