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