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