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