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