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