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