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