PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.12
MxChat – AI Chatbot & Content Generation for WordPress v3.2.12
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
mxchat-basic / css / chat-transcripts.css

chat-transcripts.css in MxChat – AI Chatbot & Content Generation for WordPress 3.2.12, at css/chat-transcripts.css

2,770 lines 59.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ==========================================================================
2 MxChat Transcripts Page Styles - v2.0
3 Uses admin-sidebar.css for core layout/navigation styles
4 ========================================================================== */
5
6 /* ==========================================================================
7 Stats Grid
8 ========================================================================== */
9 .mxch-stats-grid {
10 display: grid;
11 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
12 gap: var(--mxch-spacing-lg);
13 margin-bottom: var(--mxch-spacing-xl);
14 }
15
16 .mxch-stat-card {
17 background: var(--mxch-card-bg);
18 border: 1px solid var(--mxch-card-border);
19 border-radius: var(--mxch-radius-lg);
20 padding: var(--mxch-spacing-lg);
21 display: flex;
22 align-items: center;
23 gap: var(--mxch-spacing-md);
24 transition: all var(--mxch-transition);
25 }
26
27 .mxch-stat-card:hover {
28 box-shadow: var(--mxch-card-shadow-hover);
29 transform: translateY(-2px);
30 }
31
32 .mxch-stat-icon {
33 width: 48px;
34 height: 48px;
35 border-radius: var(--mxch-radius-md);
36 display: flex;
37 align-items: center;
38 justify-content: center;
39 flex-shrink: 0;
40 }
41
42 .mxch-stat-icon svg {
43 width: 24px;
44 height: 24px;
45 }
46
47 .mxch-stat-icon-primary {
48 background: rgba(120, 115, 245, 0.1);
49 color: var(--mxch-primary);
50 }
51
52 .mxch-stat-icon-success {
53 background: rgba(16, 185, 129, 0.1);
54 color: var(--mxch-success);
55 }
56
57 .mxch-stat-icon-info {
58 background: rgba(59, 130, 246, 0.1);
59 color: var(--mxch-info);
60 }
61
62 .mxch-stat-icon-warning {
63 background: rgba(245, 158, 11, 0.1);
64 color: var(--mxch-warning);
65 }
66
67 .mxch-stat-content {
68 display: flex;
69 flex-direction: column;
70 }
71
72 .mxch-stat-value {
73 font-size: 28px;
74 font-weight: 700;
75 color: var(--mxch-text-primary);
76 line-height: 1.2;
77 }
78
79 .mxch-stat-label {
80 font-size: 13px;
81 color: var(--mxch-text-secondary);
82 margin-top: 2px;
83 }
84
85 .mxch-stat-sublabel {
86 font-size: 11px;
87 color: var(--mxch-text-muted);
88 margin-top: 4px;
89 }
90
91 /* ==========================================================================
92 Cards Row Layout
93 ========================================================================== */
94 .mxch-cards-row {
95 display: grid;
96 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
97 gap: var(--mxch-spacing-lg);
98 margin-bottom: var(--mxch-spacing-xl);
99 }
100
101 .mxch-card-flex {
102 display: flex;
103 flex-direction: column;
104 }
105
106 /* ==========================================================================
107 Activity Stats
108 ========================================================================== */
109 .mxch-activity-stats {
110 display: flex;
111 flex-direction: column;
112 gap: var(--mxch-spacing-md);
113 }
114
115 .mxch-activity-item {
116 display: flex;
117 align-items: center;
118 gap: var(--mxch-spacing-md);
119 padding: var(--mxch-spacing-sm);
120 background: #f8fafc;
121 border-radius: var(--mxch-radius-md);
122 }
123
124 .mxch-activity-icon {
125 width: 36px;
126 height: 36px;
127 border-radius: var(--mxch-radius-sm);
128 display: flex;
129 align-items: center;
130 justify-content: center;
131 flex-shrink: 0;
132 }
133
134 .mxch-activity-today {
135 background: rgba(16, 185, 129, 0.1);
136 color: var(--mxch-success);
137 }
138
139 .mxch-activity-week {
140 background: rgba(59, 130, 246, 0.1);
141 color: var(--mxch-info);
142 }
143
144 .mxch-activity-month {
145 background: rgba(120, 115, 245, 0.1);
146 color: var(--mxch-primary);
147 }
148
149 .mxch-activity-content {
150 display: flex;
151 flex-direction: column;
152 }
153
154 .mxch-activity-value {
155 font-size: 20px;
156 font-weight: 700;
157 color: var(--mxch-text-primary);
158 }
159
160 .mxch-activity-label {
161 font-size: 12px;
162 color: var(--mxch-text-secondary);
163 }
164
165 /* ==========================================================================
166 Insights List
167 ========================================================================== */
168 .mxch-insights-list {
169 display: flex;
170 flex-direction: column;
171 gap: var(--mxch-spacing-sm);
172 }
173
174 .mxch-insight-item {
175 display: flex;
176 justify-content: space-between;
177 align-items: center;
178 padding: var(--mxch-spacing-sm) 0;
179 border-bottom: 1px solid var(--mxch-card-border);
180 }
181
182 .mxch-insight-item:last-child {
183 border-bottom: none;
184 }
185
186 .mxch-insight-label {
187 font-size: 13px;
188 color: var(--mxch-text-secondary);
189 }
190
191 .mxch-insight-value {
192 font-size: 14px;
193 font-weight: 600;
194 color: var(--mxch-text-primary);
195 }
196
197 /* Status Badges */
198 .mxch-status-badge {
199 display: inline-flex;
200 align-items: center;
201 padding: 4px 10px;
202 border-radius: 20px;
203 font-size: 12px;
204 font-weight: 600;
205 }
206
207 .mxch-status-active {
208 background: rgba(16, 185, 129, 0.1);
209 color: var(--mxch-success);
210 }
211
212 .mxch-status-moderate {
213 background: rgba(245, 158, 11, 0.1);
214 color: var(--mxch-warning);
215 }
216
217 .mxch-status-quiet {
218 background: rgba(100, 116, 139, 0.1);
219 color: var(--mxch-text-muted);
220 }
221
222 /* ==========================================================================
223 Activity Chart
224 ========================================================================== */
225 .mxch-activity-chart-card .mxch-card-header {
226 display: flex;
227 align-items: center;
228 justify-content: space-between;
229 flex-wrap: wrap;
230 gap: var(--mxch-spacing-sm);
231 }
232
233 .mxch-chart-legend {
234 display: flex;
235 align-items: center;
236 gap: var(--mxch-spacing-lg);
237 }
238
239 .mxch-legend-item {
240 display: flex;
241 align-items: center;
242 gap: 6px;
243 font-size: 12px;
244 font-weight: 500;
245 color: var(--mxch-text-secondary);
246 }
247
248 .mxch-legend-dot {
249 width: 10px;
250 height: 10px;
251 border-radius: 50%;
252 }
253
254 .mxch-legend-chats .mxch-legend-dot {
255 background: #667eea;
256 }
257
258 .mxch-legend-messages .mxch-legend-dot {
259 background: #764ba2;
260 }
261
262 .mxch-chart-container {
263 background: #f9fafb;
264 border-radius: var(--mxch-radius-md);
265 padding: var(--mxch-spacing-lg);
266 border: 1px solid #e5e7eb;
267 }
268
269 #mxchat-activity-chart {
270 max-height: 280px;
271 width: 100% !important;
272 height: 280px !important;
273 }
274
275 /* ==========================================================================
276 Quick Actions
277 ========================================================================== */
278 .mxch-quick-actions {
279 display: flex;
280 flex-wrap: wrap;
281 gap: var(--mxch-spacing-md);
282 }
283
284 .mxch-quick-action-btn {
285 display: flex;
286 align-items: center;
287 gap: var(--mxch-spacing-sm);
288 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
289 background: #f8fafc;
290 border: 1px solid var(--mxch-card-border);
291 border-radius: var(--mxch-radius-md);
292 color: var(--mxch-text-primary);
293 font-size: 14px;
294 font-weight: 500;
295 cursor: pointer;
296 transition: all var(--mxch-transition-fast);
297 }
298
299 .mxch-quick-action-btn:hover {
300 background: var(--mxch-primary);
301 border-color: var(--mxch-primary);
302 color: white;
303 }
304
305 .mxch-quick-action-btn svg {
306 flex-shrink: 0;
307 }
308
309 /* ==========================================================================
310 Transcripts Controls
311 ========================================================================== */
312 .mxch-transcripts-controls {
313 display: flex;
314 flex-wrap: wrap;
315 gap: var(--mxch-spacing-md);
316 align-items: center;
317 justify-content: space-between;
318 }
319
320 .mxch-search-wrapper {
321 display: flex;
322 align-items: center;
323 gap: var(--mxch-spacing-sm);
324 flex: 1;
325 max-width: 400px;
326 position: relative;
327 }
328
329 .mxch-search-wrapper svg {
330 position: absolute;
331 left: 12px;
332 color: var(--mxch-text-muted);
333 pointer-events: none;
334 }
335
336 .mxch-search-wrapper .mxch-input {
337 padding-left: 40px;
338 }
339
340 .mxch-controls-actions {
341 display: flex;
342 flex-wrap: wrap;
343 gap: var(--mxch-spacing-sm);
344 }
345
346 /* Danger Button */
347 .mxch-btn-danger {
348 background: white;
349 color: var(--mxch-error);
350 border: 1px solid var(--mxch-error);
351 }
352
353 .mxch-btn-danger:hover:not(:disabled) {
354 background: var(--mxch-error);
355 color: white;
356 }
357
358 .mxch-btn-danger:disabled {
359 opacity: 0.5;
360 cursor: not-allowed;
361 }
362
363 /* ==========================================================================
364 Split Panel Layout - Chat List + Conversation View
365 ========================================================================== */
366
367 /* Override parent content padding and scrolling for split panel view */
368 .mxch-content:has(#all-chats.mxch-section.active) {
369 padding: 0 !important;
370 overflow: hidden !important; /* Prevent content area from scrolling */
371 height: 100%;
372 }
373
374 #all-chats.mxch-section {
375 padding: 0;
376 margin: 0;
377 height: 100%;
378 overflow: hidden;
379 }
380
381 .mxch-split-panel {
382 display: flex;
383 height: 100%;
384 background: #fff;
385 border: none;
386 border-radius: 0;
387 overflow: hidden;
388 }
389
390 /* Hide the expand button - not needed */
391 .mxch-panel-expand {
392 display: none;
393 }
394
395 /* Left Panel - Chat List */
396 .mxch-chat-list-panel {
397 width: 340px;
398 min-width: 280px;
399 max-width: 400px;
400 display: flex;
401 flex-direction: column;
402 border-right: 1px solid #e5e7eb;
403 background: #fff;
404 min-height: 0; /* Important: allows flex child to shrink below content size */
405 overflow: hidden;
406 }
407
408 /* Bulk Actions Toolbar */
409 .mxch-bulk-toolbar {
410 display: flex;
411 align-items: center;
412 gap: 8px;
413 padding: 10px 12px;
414 background: #f8fafc;
415 border-bottom: 1px solid #e5e7eb;
416 }
417
418 .mxch-bulk-select-all {
419 display: flex;
420 align-items: center;
421 gap: 6px;
422 font-size: 12px;
423 color: #6b7280;
424 cursor: pointer;
425 }
426
427 .mxch-bulk-select-all input[type="checkbox"] {
428 width: 16px;
429 height: 16px;
430 cursor: pointer;
431 accent-color: #3b82f6;
432 }
433
434 .mxch-bulk-actions {
435 display: flex;
436 align-items: center;
437 gap: 4px;
438 margin-left: auto;
439 }
440
441 .mxch-bulk-btn {
442 display: flex;
443 align-items: center;
444 gap: 4px;
445 padding: 6px 10px;
446 font-size: 12px;
447 font-weight: 500;
448 background: #fff;
449 border: 1px solid #e5e7eb;
450 border-radius: 6px;
451 color: #374151;
452 cursor: pointer;
453 transition: all 0.15s;
454 }
455
456 .mxch-bulk-btn:hover {
457 background: #f3f4f6;
458 border-color: #d1d5db;
459 }
460
461 .mxch-bulk-btn.mxch-bulk-delete {
462 color: #dc2626;
463 border-color: #fecaca;
464 }
465
466 .mxch-bulk-btn.mxch-bulk-delete:hover {
467 background: #fef2f2;
468 border-color: #fca5a5;
469 }
470
471 .mxch-bulk-btn:disabled {
472 opacity: 0.5;
473 cursor: not-allowed;
474 }
475
476 .mxch-selected-count {
477 font-size: 11px;
478 color: #3b82f6;
479 font-weight: 600;
480 padding: 2px 8px;
481 background: #eff6ff;
482 border-radius: 10px;
483 display: none;
484 }
485
486 .mxch-selected-count.has-selection {
487 display: inline-block;
488 }
489
490 .mxch-panel-header {
491 padding: 0;
492 border-bottom: 1px solid #e5e7eb;
493 }
494
495 .mxch-panel-title-row {
496 display: flex;
497 align-items: center;
498 justify-content: space-between;
499 padding: 10px 12px;
500 border-bottom: 1px solid #f3f4f6;
501 }
502
503 .mxch-panel-count {
504 font-size: 12px;
505 font-weight: 600;
506 color: #374151;
507 }
508
509 .mxch-panel-actions {
510 display: flex;
511 gap: 4px;
512 }
513
514 .mxch-icon-btn {
515 width: 32px;
516 height: 32px;
517 border: none;
518 background: transparent;
519 color: #6b7280;
520 border-radius: 6px;
521 cursor: pointer;
522 display: flex;
523 align-items: center;
524 justify-content: center;
525 transition: all 0.15s;
526 }
527
528 .mxch-icon-btn:hover {
529 background: #f3f4f6;
530 color: #374151;
531 }
532
533 .mxch-icon-btn.spinning svg {
534 animation: spin 0.5s linear;
535 }
536
537 @keyframes spin {
538 from { transform: rotate(0deg); }
539 to { transform: rotate(360deg); }
540 }
541
542 .mxch-search-wrapper {
543 position: relative;
544 background: #fff;
545 }
546
547 .mxch-search-wrapper svg {
548 position: absolute;
549 left: 10px;
550 top: 50%;
551 transform: translateY(-50%);
552 color: #9ca3af;
553 pointer-events: none;
554 width: 14px;
555 height: 14px;
556 z-index: 1;
557 }
558
559 .mxch-search-input {
560 width: 100%;
561 padding: 10px 12px 10px 32px;
562 border: none;
563 border-radius: 0;
564 font-size: 13px;
565 background: #fff;
566 transition: all 0.15s;
567 box-sizing: border-box;
568 }
569
570 .mxch-search-input:focus {
571 outline: none;
572 background: #fff;
573 box-shadow: none;
574 }
575
576 .mxch-search-input::placeholder {
577 color: #9ca3af;
578 }
579
580 /* Chat List */
581 .mxch-chat-list {
582 flex: 1;
583 overflow-y: auto;
584 }
585
586 .mxch-chat-item {
587 display: flex;
588 align-items: center;
589 gap: 10px;
590 padding: 12px;
591 cursor: pointer;
592 border-bottom: 1px solid #f3f4f6;
593 transition: background 0.15s;
594 position: relative;
595 }
596
597 .mxch-chat-item:hover {
598 background: #f9fafb;
599 }
600
601 .mxch-chat-item.active {
602 background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
603 border-left: 3px solid #3b82f6;
604 padding-left: 9px;
605 }
606
607 .mxch-chat-item.selected {
608 background: #eff6ff;
609 }
610
611 /* Checkbox for chat items */
612 .mxch-chat-checkbox {
613 width: 16px;
614 height: 16px;
615 flex-shrink: 0;
616 cursor: pointer;
617 accent-color: #3b82f6;
618 opacity: 0;
619 transition: opacity 0.15s;
620 }
621
622 .mxch-chat-item:hover .mxch-chat-checkbox,
623 .mxch-chat-item.selected .mxch-chat-checkbox,
624 .mxch-chat-list.selection-mode .mxch-chat-checkbox {
625 opacity: 1;
626 }
627
628 /* Always show checkboxes on mobile/touch devices since hover doesn't work */
629 @media screen and (max-width: 782px) {
630 .mxch-chat-checkbox {
631 opacity: 0.4; /* Subtle but visible */
632 }
633
634 .mxch-chat-item.selected .mxch-chat-checkbox,
635 .mxch-chat-list.selection-mode .mxch-chat-checkbox {
636 opacity: 1;
637 }
638 }
639
640 /* Avatar hidden - cleaner look */
641 .mxch-chat-avatar {
642 display: none;
643 }
644
645 .mxch-chat-info {
646 flex: 1;
647 min-width: 0;
648 }
649
650 .mxch-chat-name {
651 font-size: 14px;
652 font-weight: 600;
653 color: #111827;
654 white-space: nowrap;
655 overflow: hidden;
656 text-overflow: ellipsis;
657 }
658
659 .mxch-chat-preview {
660 font-size: 12px;
661 color: #6b7280;
662 white-space: nowrap;
663 overflow: hidden;
664 text-overflow: ellipsis;
665 margin-top: 2px;
666 }
667
668 .mxch-chat-meta {
669 display: flex;
670 flex-direction: column;
671 align-items: flex-end;
672 gap: 4px;
673 flex-shrink: 0;
674 }
675
676 .mxch-chat-time {
677 font-size: 11px;
678 color: #9ca3af;
679 }
680
681 .mxch-chat-count {
682 font-size: 11px;
683 font-weight: 600;
684 color: #6b7280;
685 background: #f3f4f6;
686 padding: 2px 8px;
687 border-radius: 10px;
688 }
689
690 /* Satisfaction rating badge on chat-list rows (plan-a5b006). */
691 .mxch-chat-rating {
692 display: inline-flex;
693 align-items: center;
694 justify-content: center;
695 font-size: 11px;
696 line-height: 1;
697 min-width: 18px;
698 height: 18px;
699 border-radius: 999px;
700 padding: 0 4px;
701 cursor: default;
702 }
703 .mxch-chat-rating-up {
704 background: #ecfdf5;
705 color: #047857;
706 }
707 .mxch-chat-rating-down {
708 background: #fef2f2;
709 color: #b91c1c;
710 }
711 .mxch-chat-rating-empty {
712 color: #cbd5e1;
713 background: transparent;
714 }
715 .mxch-chat-rating svg {
716 display: block;
717 }
718
719 /* Sort dropdown menu — appended to <body> from JS. */
720 .mxch-sort-menu {
721 display: none;
722 background: #ffffff;
723 border: 1px solid #e5e7eb;
724 border-radius: 8px;
725 box-shadow: 0 6px 20px rgba(15, 23, 42, 0.12);
726 padding: 4px;
727 min-width: 200px;
728 z-index: 9999;
729 }
730 .mxch-sort-option {
731 display: flex;
732 align-items: center;
733 gap: 8px;
734 width: 100%;
735 padding: 8px 10px;
736 background: transparent;
737 border: none;
738 border-radius: 6px;
739 text-align: left;
740 font-size: 13px;
741 color: #1a1a2e;
742 cursor: pointer;
743 }
744 .mxch-sort-option:hover {
745 background: #f3f4f6;
746 }
747 .mxch-sort-option.active {
748 background: #eff6ff;
749 color: #1d4ed8;
750 font-weight: 600;
751 }
752 .mxch-sort-option-icon {
753 display: inline-flex;
754 align-items: center;
755 justify-content: center;
756 width: 16px;
757 height: 16px;
758 }
759 .mxch-sort-option-icon.mxch-rating-thumb-up { color: #047857; }
760 .mxch-sort-option-icon.mxch-rating-thumb-down { color: #b91c1c; }
761
762 .mxch-list-loading,
763 .mxch-list-empty {
764 display: flex;
765 align-items: center;
766 justify-content: center;
767 padding: 40px 20px;
768 color: #9ca3af;
769 font-size: 13px;
770 }
771
772 .mxch-panel-footer {
773 padding: 8px 12px;
774 border-top: 1px solid #e5e7eb;
775 background: #f9fafb;
776 }
777
778 .mxch-pagination-btns {
779 display: flex;
780 align-items: center;
781 justify-content: center;
782 gap: 8px;
783 }
784
785 .mxch-page-btn {
786 width: 32px;
787 height: 32px;
788 border: 1px solid #e5e7eb;
789 background: #fff;
790 border-radius: 6px;
791 cursor: pointer;
792 display: flex;
793 align-items: center;
794 justify-content: center;
795 font-size: 14px;
796 color: #374151;
797 transition: all 0.15s;
798 }
799
800 .mxch-page-btn:hover {
801 background: #f3f4f6;
802 border-color: #d1d5db;
803 }
804
805 .mxch-page-info {
806 font-size: 12px;
807 color: #6b7280;
808 }
809
810 /* Expand Button */
811 .mxch-panel-expand {
812 width: 24px;
813 background: #f9fafb;
814 border: none;
815 border-left: 1px solid #e5e7eb;
816 border-right: 1px solid #e5e7eb;
817 cursor: pointer;
818 display: flex;
819 align-items: center;
820 justify-content: center;
821 color: #9ca3af;
822 transition: all 0.15s;
823 }
824
825 .mxch-panel-expand:hover {
826 background: #f3f4f6;
827 color: #374151;
828 }
829
830 /* Right Panel - Conversation View */
831 .mxch-conversation-panel {
832 flex: 1;
833 display: flex;
834 flex-direction: column;
835 background: #f9fafb;
836 min-height: 0; /* Important: allows flex child to shrink below content size */
837 overflow: hidden;
838 }
839
840 /* Empty State */
841 .mxch-conversation-empty {
842 flex: 1;
843 display: flex;
844 flex-direction: column;
845 align-items: center;
846 justify-content: center;
847 color: #9ca3af;
848 text-align: center;
849 padding: 40px;
850 }
851
852 .mxch-empty-icon {
853 margin-bottom: 16px;
854 opacity: 0.5;
855 }
856
857 .mxch-conversation-empty h3 {
858 font-size: 16px;
859 font-weight: 600;
860 color: #6b7280;
861 margin: 0 0 8px 0;
862 }
863
864 .mxch-conversation-empty p {
865 font-size: 13px;
866 margin: 0;
867 }
868
869 /* Conversation Content */
870 .mxch-conversation-content {
871 display: flex;
872 flex-direction: column;
873 height: 100%;
874 min-height: 0; /* Important: allows flex child to shrink below content size */
875 overflow: hidden;
876 }
877
878 .mxch-conversation-header {
879 display: flex;
880 align-items: center;
881 gap: 12px;
882 padding: 16px 20px;
883 background: #fff;
884 border-bottom: 1px solid #e5e7eb;
885 }
886
887 .mxch-user-avatar {
888 width: 44px;
889 height: 44px;
890 border-radius: 50%;
891 background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
892 display: flex;
893 align-items: center;
894 justify-content: center;
895 flex-shrink: 0;
896 }
897
898 .mxch-user-avatar span {
899 color: #fff;
900 font-size: 15px;
901 font-weight: 600;
902 }
903
904 .mxch-user-info {
905 flex: 1;
906 min-width: 0; /* Allow flex item to shrink below content size */
907 overflow: hidden;
908 }
909
910 .mxch-user-name {
911 font-size: 15px;
912 font-weight: 600;
913 color: #111827;
914 overflow: hidden;
915 text-overflow: ellipsis;
916 white-space: nowrap;
917 }
918
919 .mxch-user-meta {
920 font-size: 12px;
921 color: #6b7280;
922 margin-top: 2px;
923 overflow: hidden;
924 text-overflow: ellipsis;
925 white-space: nowrap;
926 }
927
928 .mxch-details-toggle {
929 width: 36px;
930 height: 36px;
931 border: 1px solid #e5e7eb;
932 background: #fff;
933 border-radius: 8px;
934 cursor: pointer;
935 display: flex;
936 align-items: center;
937 justify-content: center;
938 color: #6b7280;
939 transition: all 0.15s;
940 }
941
942 .mxch-details-toggle:hover,
943 .mxch-details-toggle.active {
944 background: #f3f4f6;
945 color: #374151;
946 }
947
948 /* Details Drawer */
949 .mxch-details-drawer {
950 background: #fff;
951 border-bottom: 1px solid #e5e7eb;
952 padding: 16px 20px;
953 }
954
955 .mxch-details-section {
956 margin-bottom: 16px;
957 }
958
959 .mxch-details-section:last-child {
960 margin-bottom: 0;
961 }
962
963 .mxch-details-section h4 {
964 font-size: 11px;
965 font-weight: 600;
966 color: #9ca3af;
967 text-transform: uppercase;
968 letter-spacing: 0.5px;
969 margin: 0 0 10px 0;
970 }
971
972 .mxch-detail-row {
973 display: flex;
974 justify-content: space-between;
975 align-items: center;
976 padding: 6px 0;
977 font-size: 13px;
978 }
979
980 .mxch-detail-label {
981 color: #6b7280;
982 }
983
984 .mxch-detail-value {
985 color: #111827;
986 font-weight: 500;
987 }
988
989 .mxch-detail-value a {
990 color: #3b82f6;
991 text-decoration: none;
992 }
993
994 .mxch-detail-value a:hover {
995 text-decoration: underline;
996 }
997
998 .mxch-clicked-links {
999 display: flex;
1000 flex-direction: column;
1001 gap: 6px;
1002 }
1003
1004 .mxch-clicked-link {
1005 font-size: 12px;
1006 color: #3b82f6;
1007 text-decoration: none;
1008 padding: 6px 10px;
1009 background: #eff6ff;
1010 border-radius: 6px;
1011 white-space: nowrap;
1012 overflow: hidden;
1013 text-overflow: ellipsis;
1014 }
1015
1016 .mxch-clicked-link:hover {
1017 background: #dbeafe;
1018 }
1019
1020 .mxch-details-actions {
1021 display: flex;
1022 gap: 8px;
1023 margin-top: 16px;
1024 padding-top: 16px;
1025 border-top: 1px solid #f3f4f6;
1026 }
1027
1028 .mxch-btn-sm {
1029 padding: 8px 12px;
1030 font-size: 12px;
1031 }
1032
1033 /* Translate Controls */
1034 .mxch-translate-section {
1035 margin-top: 12px;
1036 padding-top: 12px;
1037 border-top: 1px solid #f3f4f6;
1038 }
1039
1040 .mxch-translate-controls {
1041 display: flex;
1042 align-items: center;
1043 gap: 8px;
1044 }
1045
1046 .mxch-translate-select {
1047 padding: 6px 10px;
1048 font-size: 12px;
1049 border: 1px solid #e5e7eb;
1050 border-radius: 6px;
1051 background: #fff;
1052 color: #374151;
1053 cursor: pointer;
1054 min-width: 100px;
1055 }
1056
1057 .mxch-translate-select:focus {
1058 outline: none;
1059 border-color: #3b82f6;
1060 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
1061 }
1062
1063 #mxch-translate-btn,
1064 #mxch-show-original-btn {
1065 display: inline-flex;
1066 align-items: center;
1067 gap: 6px;
1068 }
1069
1070 #mxch-translate-btn svg,
1071 #mxch-show-original-btn svg {
1072 width: 14px;
1073 height: 14px;
1074 flex-shrink: 0;
1075 }
1076
1077 #mxch-translate-btn:disabled {
1078 opacity: 0.6;
1079 cursor: not-allowed;
1080 }
1081
1082 .mxch-translate-spinner {
1083 animation: spin 1s linear infinite;
1084 }
1085
1086 @keyframes mxch-translate-spin {
1087 from { transform: rotate(0deg); }
1088 to { transform: rotate(360deg); }
1089 }
1090
1091 /* Translated message indicator */
1092 .mxch-message-bubble.translated {
1093 position: relative;
1094 }
1095
1096 .mxch-message-bubble.translated::after {
1097 content: '';
1098 position: absolute;
1099 top: 6px;
1100 right: 6px;
1101 width: 6px;
1102 height: 6px;
1103 background: #3b82f6;
1104 border-radius: 50%;
1105 opacity: 0.6;
1106 }
1107
1108 /* Messages Area */
1109 .mxch-messages-area {
1110 flex: 1;
1111 overflow-y: auto;
1112 padding: 20px;
1113 }
1114
1115 /* Mobile back button - hidden by default on desktop */
1116 .mxch-mobile-back-btn {
1117 display: none;
1118 }
1119
1120 .mxch-messages-loading,
1121 .mxch-messages-error {
1122 display: flex;
1123 align-items: center;
1124 justify-content: center;
1125 padding: 40px;
1126 color: #9ca3af;
1127 font-size: 13px;
1128 }
1129
1130 /* Message Styles */
1131 .mxch-message {
1132 margin-bottom: 20px;
1133 }
1134
1135 .mxch-message:last-child {
1136 margin-bottom: 0;
1137 }
1138
1139 /* User Message */
1140 .mxch-message-user {
1141 display: flex;
1142 flex-direction: column;
1143 align-items: flex-end;
1144 }
1145
1146 .mxch-message-user .mxch-message-row {
1147 max-width: 70%;
1148 min-width: 120px;
1149 }
1150
1151 .mxch-message-user .mxch-message-bubble {
1152 background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
1153 color: #fff;
1154 padding: 12px 16px;
1155 border-radius: 18px 18px 4px 18px;
1156 font-size: 14px;
1157 line-height: 1.5;
1158 min-width: 80px;
1159 }
1160
1161 .mxch-message-user .mxch-message-bubble a {
1162 color: #bfdbfe;
1163 text-decoration: underline;
1164 }
1165
1166 .mxch-message-user .mxch-message-time {
1167 font-size: 11px;
1168 color: #9ca3af;
1169 margin-top: 4px;
1170 }
1171
1172 /* Bot Message */
1173 .mxch-message-bot {
1174 display: flex;
1175 flex-direction: column;
1176 align-items: flex-start;
1177 }
1178
1179 .mxch-message-header {
1180 display: flex;
1181 align-items: center;
1182 gap: 10px;
1183 margin-bottom: 6px;
1184 }
1185
1186 .mxch-bot-label {
1187 font-size: 11px;
1188 font-weight: 600;
1189 color: #059669;
1190 text-transform: uppercase;
1191 letter-spacing: 0.5px;
1192 }
1193
1194 .mxch-rag-link {
1195 font-size: 11px;
1196 color: #3b82f6;
1197 text-decoration: none;
1198 font-weight: 500;
1199 padding: 2px 8px;
1200 background: #eff6ff;
1201 border-radius: 4px;
1202 transition: all 0.15s;
1203 }
1204
1205 .mxch-rag-link:hover {
1206 background: #dbeafe;
1207 }
1208
1209 .mxch-message-bot .mxch-message-row {
1210 max-width: 80%;
1211 min-width: 150px;
1212 }
1213
1214 .mxch-message-bot .mxch-message-bubble {
1215 background: #fff;
1216 border: 1px solid #e5e7eb;
1217 color: #374151;
1218 padding: 12px 16px;
1219 border-radius: 18px 18px 18px 4px;
1220 font-size: 14px;
1221 line-height: 1.5;
1222 min-width: 100px;
1223 }
1224
1225 .mxch-message-bot .mxch-message-bubble a {
1226 color: #3b82f6;
1227 }
1228
1229 .mxch-message-bot .mxch-message-time {
1230 font-size: 11px;
1231 color: #9ca3af;
1232 margin-top: 4px;
1233 }
1234
1235 /* Message Content Styles */
1236 .mxch-message-bubble p {
1237 margin: 0 0 10px 0;
1238 }
1239
1240 .mxch-message-bubble p:last-child {
1241 margin-bottom: 0;
1242 }
1243
1244 .mxch-message-bubble ul,
1245 .mxch-message-bubble ol {
1246 margin: 10px 0;
1247 padding-left: 20px;
1248 }
1249
1250 .mxch-message-bubble li {
1251 margin: 4px 0;
1252 }
1253
1254 .mxch-message-bubble code {
1255 background: rgba(0, 0, 0, 0.08);
1256 padding: 2px 6px;
1257 border-radius: 4px;
1258 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1259 font-size: 0.9em;
1260 }
1261
1262 .mxch-message-user .mxch-message-bubble code {
1263 background: rgba(255, 255, 255, 0.2);
1264 }
1265
1266 .mxch-message-bubble pre {
1267 background: #1e293b;
1268 color: #e2e8f0;
1269 padding: 12px 14px;
1270 border-radius: 8px;
1271 overflow-x: auto;
1272 margin: 10px 0;
1273 font-size: 13px;
1274 }
1275
1276 .mxch-message-bubble pre code {
1277 background: none;
1278 padding: 0;
1279 color: inherit;
1280 }
1281
1282 /* Scrollbar Styling */
1283 .mxch-chat-list::-webkit-scrollbar,
1284 .mxch-messages-area::-webkit-scrollbar {
1285 width: 6px;
1286 }
1287
1288 .mxch-chat-list::-webkit-scrollbar-track,
1289 .mxch-messages-area::-webkit-scrollbar-track {
1290 background: transparent;
1291 }
1292
1293 .mxch-chat-list::-webkit-scrollbar-thumb,
1294 .mxch-messages-area::-webkit-scrollbar-thumb {
1295 background: #d1d5db;
1296 border-radius: 3px;
1297 }
1298
1299 .mxch-chat-list::-webkit-scrollbar-thumb:hover,
1300 .mxch-messages-area::-webkit-scrollbar-thumb:hover {
1301 background: #9ca3af;
1302 }
1303
1304 /* Responsive Split Panel - Tablet */
1305 @media screen and (max-width: 900px) and (min-width: 783px) {
1306 #all-chats.mxch-section {
1307 padding: 0;
1308 }
1309
1310 .mxch-split-panel {
1311 flex-direction: column;
1312 height: auto;
1313 }
1314
1315 .mxch-chat-list-panel {
1316 width: 100%;
1317 max-width: none;
1318 height: 350px;
1319 border-right: none;
1320 border-bottom: 1px solid #e5e7eb;
1321 }
1322
1323 .mxch-panel-expand {
1324 display: none;
1325 }
1326
1327 .mxch-conversation-panel {
1328 min-height: 400px;
1329 }
1330
1331 .mxch-bulk-toolbar {
1332 flex-wrap: wrap;
1333 }
1334
1335 .mxch-bulk-btn span {
1336 display: none;
1337 }
1338 }
1339
1340 /* ==========================================================================
1341 Mobile Split Panel - Full Screen Panels
1342 ========================================================================== */
1343 @media screen and (max-width: 782px) {
1344 #all-chats.mxch-section {
1345 padding: 0;
1346 /* Mobile viewport height with fallbacks for browser address bar */
1347 /* 1. Fallback: standard vh (may be cut off by browser chrome) */
1348 height: calc(100vh - 46px - 32px);
1349 /* 2. Better: dvh (dynamic viewport height) for modern browsers */
1350 height: calc(100dvh - 46px - 32px);
1351 /* 3. Best: JS-calculated actual viewport via CSS custom property */
1352 height: calc(var(--mxch-mobile-vh, 100vh) - 46px - 32px);
1353 overflow: hidden;
1354 }
1355
1356 .mxch-split-panel {
1357 height: 100%;
1358 position: relative;
1359 }
1360
1361 /* Chat List - Full screen on mobile */
1362 .mxch-chat-list-panel {
1363 width: 100%;
1364 max-width: none;
1365 height: 100%;
1366 border-right: none;
1367 position: absolute;
1368 top: 0;
1369 left: 0;
1370 right: 0;
1371 bottom: 0;
1372 z-index: 10;
1373 transition: transform 0.3s ease;
1374 }
1375
1376 .mxch-chat-list-panel.panel-hidden {
1377 transform: translateX(-100%);
1378 }
1379
1380 .mxch-chat-list {
1381 flex: 1;
1382 overflow-y: auto;
1383 -webkit-overflow-scrolling: touch;
1384 }
1385
1386 /* Conversation Panel - Slide over from right */
1387 .mxch-conversation-panel {
1388 position: absolute;
1389 top: 0;
1390 left: 0;
1391 right: 0;
1392 bottom: 0;
1393 z-index: 20;
1394 transform: translateX(100%);
1395 transition: transform 0.3s ease;
1396 min-height: 0;
1397 height: 100%;
1398 display: flex;
1399 flex-direction: column;
1400 }
1401
1402 .mxch-conversation-panel.panel-active {
1403 transform: translateX(0);
1404 }
1405
1406 /* Mobile back button in conversation header */
1407 .mxch-mobile-back-btn {
1408 display: flex !important;
1409 align-items: center;
1410 justify-content: center;
1411 width: 36px;
1412 height: 36px;
1413 background: #f3f4f6;
1414 border: none;
1415 border-radius: 8px;
1416 color: #374151;
1417 cursor: pointer;
1418 margin-right: 8px;
1419 flex-shrink: 0;
1420 }
1421
1422 .mxch-mobile-back-btn:hover {
1423 background: #e5e7eb;
1424 }
1425
1426 /* Ensure conversation content scrolls properly */
1427 .mxch-conversation-content {
1428 flex: 1;
1429 display: flex;
1430 flex-direction: column;
1431 min-height: 0;
1432 overflow: hidden;
1433 }
1434
1435 /* Messages area scroll fix for mobile */
1436 .mxch-messages-area {
1437 flex: 1;
1438 overflow-y: auto;
1439 -webkit-overflow-scrolling: touch;
1440 padding: 16px;
1441 padding-bottom: 24px; /* Extra padding at bottom for visibility */
1442 }
1443
1444 /* Hide expand button on mobile */
1445 .mxch-panel-expand {
1446 display: none;
1447 }
1448
1449 /* Adjust bulk toolbar for mobile */
1450 .mxch-bulk-toolbar {
1451 flex-wrap: wrap;
1452 gap: 6px;
1453 padding: 8px 10px;
1454 }
1455
1456 .mxch-bulk-btn span {
1457 display: none;
1458 }
1459
1460 /* Make chat items more tappable */
1461 .mxch-chat-item {
1462 padding: 14px 12px;
1463 }
1464
1465 /* Adjust conversation header for mobile */
1466 .mxch-conversation-header {
1467 padding: 12px 16px;
1468 flex-shrink: 0;
1469 }
1470
1471 /* Details drawer adjustments */
1472 .mxch-details-drawer {
1473 max-height: 200px;
1474 overflow-y: auto;
1475 flex-shrink: 0;
1476 }
1477
1478 /* Conversation empty state on mobile */
1479 .mxch-conversation-empty {
1480 display: none;
1481 }
1482 }
1483
1484 /* ==========================================================================
1485 Pagination
1486 ========================================================================== */
1487 .mxch-pagination {
1488 display: flex;
1489 flex-wrap: wrap;
1490 justify-content: space-between;
1491 align-items: center;
1492 margin-top: var(--mxch-spacing-lg);
1493 padding: var(--mxch-spacing-md);
1494 background: var(--mxch-card-bg);
1495 border: 1px solid var(--mxch-card-border);
1496 border-radius: var(--mxch-radius-md);
1497 }
1498
1499 .mxch-pagination-info {
1500 font-size: 13px;
1501 color: var(--mxch-text-secondary);
1502 }
1503
1504 .mxch-pagination-controls {
1505 display: flex;
1506 flex-wrap: wrap;
1507 gap: 4px;
1508 }
1509
1510 .mxch-pagination-btn {
1511 padding: 6px 12px;
1512 background: #f8fafc;
1513 border: 1px solid var(--mxch-card-border);
1514 border-radius: var(--mxch-radius-sm);
1515 color: var(--mxch-text-primary);
1516 font-size: 13px;
1517 cursor: pointer;
1518 transition: all var(--mxch-transition-fast);
1519 }
1520
1521 .mxch-pagination-btn:hover {
1522 background: #e2e8f0;
1523 }
1524
1525 .mxch-pagination-btn.active {
1526 background: var(--mxch-primary);
1527 border-color: var(--mxch-primary);
1528 color: white;
1529 }
1530
1531 .mxch-pagination-ellipsis {
1532 padding: 6px 8px;
1533 color: var(--mxch-text-muted);
1534 }
1535
1536 /* ==========================================================================
1537 No Results
1538 ========================================================================== */
1539 .mxch-no-results {
1540 text-align: center;
1541 padding: var(--mxch-spacing-xl) var(--mxch-spacing-lg);
1542 color: var(--mxch-text-muted);
1543 background: #f9fafb;
1544 border: 2px dashed var(--mxch-card-border);
1545 border-radius: var(--mxch-radius-lg);
1546 }
1547
1548 .mxch-no-results svg {
1549 width: 48px;
1550 height: 48px;
1551 margin-bottom: var(--mxch-spacing-md);
1552 opacity: 0.5;
1553 }
1554
1555 .mxch-no-results h3 {
1556 font-size: 16px;
1557 font-weight: 600;
1558 color: var(--mxch-text-secondary);
1559 margin: 0 0 var(--mxch-spacing-xs) 0;
1560 }
1561
1562 .mxch-no-results p {
1563 font-size: 14px;
1564 margin: 0;
1565 }
1566
1567 /* ==========================================================================
1568 Toggle Row
1569 ========================================================================== */
1570 .mxch-toggle-row {
1571 display: flex;
1572 align-items: center;
1573 gap: var(--mxch-spacing-sm);
1574 }
1575
1576 .mxch-toggle-label {
1577 font-size: 14px;
1578 font-weight: 500;
1579 color: var(--mxch-text-primary);
1580 }
1581
1582 /* ==========================================================================
1583 Modal Styles
1584 ========================================================================== */
1585 .mxch-modal-overlay {
1586 position: fixed;
1587 top: 0;
1588 left: 0;
1589 right: 0;
1590 bottom: 0;
1591 background: rgba(0, 0, 0, 0.5);
1592 display: flex;
1593 align-items: center;
1594 justify-content: center;
1595 z-index: 100000;
1596 animation: mxchFadeIn 0.2s ease;
1597 }
1598
1599 .mxch-modal-content {
1600 background: white;
1601 border-radius: var(--mxch-radius-lg);
1602 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
1603 width: 90%;
1604 max-width: 600px;
1605 max-height: 80vh;
1606 display: flex;
1607 flex-direction: column;
1608 animation: mxchSlideIn 0.2s ease;
1609 }
1610
1611 @keyframes mxchSlideIn {
1612 from {
1613 transform: translateY(-20px);
1614 opacity: 0;
1615 }
1616 to {
1617 transform: translateY(0);
1618 opacity: 1;
1619 }
1620 }
1621
1622 .mxch-modal-header {
1623 display: flex;
1624 align-items: center;
1625 justify-content: space-between;
1626 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
1627 border-bottom: 1px solid var(--mxch-card-border);
1628 }
1629
1630 .mxch-modal-header h2 {
1631 font-size: 18px;
1632 font-weight: 600;
1633 color: var(--mxch-text-primary);
1634 margin: 0;
1635 }
1636
1637 .mxch-modal-close {
1638 width: 32px;
1639 height: 32px;
1640 display: flex;
1641 align-items: center;
1642 justify-content: center;
1643 background: none;
1644 border: none;
1645 font-size: 24px;
1646 color: var(--mxch-text-muted);
1647 cursor: pointer;
1648 border-radius: var(--mxch-radius-sm);
1649 transition: all var(--mxch-transition-fast);
1650 }
1651
1652 .mxch-modal-close:hover {
1653 background: #f1f5f9;
1654 color: var(--mxch-text-primary);
1655 }
1656
1657 .mxch-modal-body {
1658 flex: 1;
1659 padding: var(--mxch-spacing-lg);
1660 overflow-y: auto;
1661 }
1662
1663 /* RAG Context Styles */
1664 .mxch-rag-summary {
1665 display: flex;
1666 flex-wrap: wrap;
1667 gap: var(--mxch-spacing-md);
1668 padding: var(--mxch-spacing-md);
1669 background: #f8fafc;
1670 border-radius: var(--mxch-radius-md);
1671 margin-bottom: var(--mxch-spacing-lg);
1672 }
1673
1674 .mxch-rag-summary-item {
1675 font-size: 13px;
1676 }
1677
1678 .mxch-rag-label {
1679 color: var(--mxch-text-secondary);
1680 }
1681
1682 .mxch-rag-value {
1683 font-weight: 600;
1684 color: var(--mxch-text-primary);
1685 }
1686
1687 .mxch-rag-matches h3 {
1688 font-size: 14px;
1689 font-weight: 600;
1690 color: var(--mxch-text-primary);
1691 margin: 0 0 var(--mxch-spacing-md) 0;
1692 }
1693
1694 .mxch-rag-match-card {
1695 border: 1px solid var(--mxch-card-border);
1696 border-radius: var(--mxch-radius-md);
1697 padding: var(--mxch-spacing-md);
1698 margin-bottom: var(--mxch-spacing-sm);
1699 }
1700
1701 .mxch-rag-match-used {
1702 border-color: rgba(16, 185, 129, 0.3);
1703 background: rgba(16, 185, 129, 0.05);
1704 }
1705
1706 .mxch-rag-match-below {
1707 border-color: var(--mxch-card-border);
1708 background: #fafafa;
1709 }
1710
1711 .mxch-rag-match-header {
1712 display: flex;
1713 align-items: center;
1714 gap: var(--mxch-spacing-sm);
1715 margin-bottom: var(--mxch-spacing-sm);
1716 }
1717
1718 .mxch-rag-match-score {
1719 font-size: 14px;
1720 font-weight: 700;
1721 color: var(--mxch-primary);
1722 }
1723
1724 .mxch-rag-chunk-badge {
1725 font-size: 11px;
1726 padding: 2px 8px;
1727 background: rgba(120, 115, 245, 0.1);
1728 color: var(--mxch-primary);
1729 border-radius: 10px;
1730 }
1731
1732 .mxch-rag-match-status {
1733 margin-left: auto;
1734 font-size: 12px;
1735 font-weight: 500;
1736 }
1737
1738 .mxch-rag-match-status.status-used {
1739 color: var(--mxch-success);
1740 }
1741
1742 .mxch-rag-match-status.status-below {
1743 color: var(--mxch-text-muted);
1744 }
1745
1746 .mxch-rag-match-source {
1747 font-size: 13px;
1748 color: var(--mxch-text-secondary);
1749 word-break: break-all;
1750 }
1751
1752 .mxch-rag-match-source a {
1753 color: var(--mxch-primary);
1754 text-decoration: none;
1755 }
1756
1757 .mxch-rag-match-source a:hover {
1758 text-decoration: underline;
1759 }
1760
1761 /* Context Modal Tabs */
1762 .mxch-context-tabs {
1763 display: flex;
1764 gap: 4px;
1765 padding: 4px;
1766 background: #f1f5f9;
1767 border-radius: var(--mxch-radius-md);
1768 margin-bottom: var(--mxch-spacing-md);
1769 }
1770
1771 .mxch-context-tab {
1772 flex: 1;
1773 display: flex;
1774 align-items: center;
1775 justify-content: center;
1776 gap: 8px;
1777 padding: 10px 16px;
1778 border: none;
1779 background: transparent;
1780 border-radius: var(--mxch-radius-sm);
1781 font-size: 13px;
1782 font-weight: 500;
1783 color: var(--mxch-text-secondary);
1784 cursor: pointer;
1785 transition: all var(--mxch-transition-fast);
1786 }
1787
1788 .mxch-context-tab:hover {
1789 color: var(--mxch-text-primary);
1790 background: rgba(255, 255, 255, 0.5);
1791 }
1792
1793 .mxch-context-tab.active {
1794 background: white;
1795 color: var(--mxch-primary);
1796 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1797 }
1798
1799 .mxch-context-tab svg {
1800 width: 16px;
1801 height: 16px;
1802 flex-shrink: 0;
1803 }
1804
1805 .mxch-tab-badge {
1806 display: inline-flex;
1807 align-items: center;
1808 justify-content: center;
1809 min-width: 20px;
1810 height: 20px;
1811 padding: 0 6px;
1812 background: rgba(120, 115, 245, 0.1);
1813 color: var(--mxch-primary);
1814 font-size: 11px;
1815 font-weight: 600;
1816 border-radius: 10px;
1817 }
1818
1819 .mxch-context-tab.active .mxch-tab-badge {
1820 background: var(--mxch-primary);
1821 color: white;
1822 }
1823
1824 .mxch-tab-content {
1825 min-height: 200px;
1826 }
1827
1828 /* Action Specific Styles */
1829 .mxch-action-triggered {
1830 border-color: rgba(245, 158, 11, 0.4);
1831 background: rgba(245, 158, 11, 0.08);
1832 }
1833
1834 .mxch-action-threshold-badge {
1835 font-size: 11px;
1836 padding: 2px 8px;
1837 background: rgba(100, 116, 139, 0.1);
1838 color: var(--mxch-text-secondary);
1839 border-radius: 10px;
1840 }
1841
1842 .mxch-rag-match-status.status-triggered {
1843 color: #f59e0b;
1844 font-weight: 600;
1845 }
1846
1847 .mxch-action-details {
1848 margin-top: var(--mxch-spacing-sm);
1849 }
1850
1851 .mxch-action-label {
1852 font-size: 14px;
1853 font-weight: 600;
1854 color: var(--mxch-text-primary);
1855 margin-bottom: 4px;
1856 }
1857
1858 .mxch-action-callback {
1859 font-size: 12px;
1860 color: var(--mxch-text-muted);
1861 font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1862 }
1863
1864 .mxch-action-callback-label {
1865 color: var(--mxch-text-secondary);
1866 font-family: inherit;
1867 }
1868
1869 /* Action Score Bar Visualization */
1870 .mxch-action-score-bar {
1871 position: relative;
1872 height: 6px;
1873 background: #e2e8f0;
1874 border-radius: 3px;
1875 margin-top: var(--mxch-spacing-sm);
1876 overflow: visible;
1877 }
1878
1879 .mxch-action-score-fill {
1880 position: absolute;
1881 left: 0;
1882 top: 0;
1883 height: 100%;
1884 background: linear-gradient(90deg, #7873f5, #a5a1fa);
1885 border-radius: 3px;
1886 transition: width 0.3s ease;
1887 }
1888
1889 .mxch-action-triggered .mxch-action-score-fill {
1890 background: linear-gradient(90deg, #f59e0b, #fbbf24);
1891 }
1892
1893 .mxch-action-threshold-marker {
1894 position: absolute;
1895 top: -4px;
1896 width: 2px;
1897 height: 14px;
1898 background: #ef4444;
1899 border-radius: 1px;
1900 transform: translateX(-50%);
1901 }
1902
1903 .mxch-action-threshold-marker::after {
1904 content: '';
1905 position: absolute;
1906 top: -3px;
1907 left: 50%;
1908 transform: translateX(-50%);
1909 width: 0;
1910 height: 0;
1911 border-left: 4px solid transparent;
1912 border-right: 4px solid transparent;
1913 border-top: 4px solid #ef4444;
1914 }
1915
1916 /* No Results State */
1917 .mxch-no-results {
1918 text-align: center;
1919 padding: var(--mxch-spacing-xl);
1920 color: var(--mxch-text-secondary);
1921 }
1922
1923 .mxch-no-results p {
1924 margin: 0;
1925 }
1926
1927 /* ==========================================================================
1928 Responsive Adjustments
1929 ========================================================================== */
1930 @media screen and (max-width: 768px) {
1931 .mxch-stats-grid {
1932 grid-template-columns: repeat(2, 1fr);
1933 }
1934
1935 .mxch-stat-card {
1936 padding: var(--mxch-spacing-md);
1937 }
1938
1939 .mxch-stat-value {
1940 font-size: 22px;
1941 }
1942
1943 .mxch-cards-row {
1944 grid-template-columns: 1fr;
1945 }
1946
1947 .mxch-transcripts-controls {
1948 flex-direction: column;
1949 align-items: stretch;
1950 }
1951
1952 .mxch-search-wrapper {
1953 max-width: none;
1954 }
1955
1956 .mxch-controls-actions {
1957 justify-content: flex-end;
1958 }
1959
1960 .mxch-session-header {
1961 flex-direction: column;
1962 gap: var(--mxch-spacing-sm);
1963 }
1964
1965 .mxch-session-actions {
1966 opacity: 1;
1967 align-self: flex-end;
1968 }
1969
1970 .mxch-pagination {
1971 flex-direction: column;
1972 gap: var(--mxch-spacing-md);
1973 align-items: flex-start;
1974 }
1975
1976 .mxch-quick-actions {
1977 flex-direction: column;
1978 }
1979
1980 .mxch-quick-action-btn {
1981 width: 100%;
1982 justify-content: center;
1983 }
1984
1985 /* Chart responsive */
1986 .mxch-activity-chart-card .mxch-card-header {
1987 flex-direction: column;
1988 align-items: flex-start;
1989 }
1990
1991 .mxch-chart-legend {
1992 margin-top: var(--mxch-spacing-xs);
1993 }
1994
1995 #mxchat-activity-chart {
1996 height: 220px !important;
1997 }
1998 }
1999
2000 @media screen and (max-width: 480px) {
2001 .mxch-stats-grid {
2002 grid-template-columns: 1fr;
2003 }
2004
2005 .mxch-controls-actions {
2006 flex-direction: column;
2007 width: 100%;
2008 }
2009
2010 .mxch-controls-actions .mxch-btn {
2011 width: 100%;
2012 justify-content: center;
2013 }
2014
2015 .mxch-controls-actions form {
2016 width: 100%;
2017 }
2018 }
2019
2020 /* Product Card in Transcripts */
2021 .mxch-message-bubble .mxchat-product-card {
2022 display: flex;
2023 flex-direction: column;
2024 align-items: center;
2025 margin: 8px 0;
2026 padding: 12px;
2027 border-radius: 8px;
2028 background: #f9f9f9;
2029 border: 1px solid #e5e5e5;
2030 max-width: 280px;
2031 }
2032
2033 .mxch-message-bubble .mxchat-product-card a.mxchat-product-link {
2034 text-decoration: none;
2035 color: inherit;
2036 display: flex;
2037 flex-direction: column;
2038 align-items: center;
2039 }
2040
2041 .mxch-message-bubble .mxchat-product-card img.mxchat-product-image {
2042 max-width: 100%;
2043 height: auto;
2044 max-height: 180px;
2045 object-fit: contain;
2046 margin-bottom: 8px;
2047 border-radius: 6px;
2048 }
2049
2050 .mxch-message-bubble .mxchat-product-card h3.mxchat-product-name {
2051 font-size: 14px;
2052 font-weight: 600;
2053 margin: 4px 0;
2054 text-align: center;
2055 color: #1a1a1a;
2056 }
2057
2058 .mxch-message-bubble .mxchat-product-card .mxchat-product-price {
2059 color: #2e7d32;
2060 font-weight: 600;
2061 font-size: 15px;
2062 margin: 4px 0 8px;
2063 }
2064
2065 .mxch-message-bubble .mxchat-product-card .mxchat-add-to-cart-button {
2066 background-color: #212121;
2067 color: #fff;
2068 padding: 7px 16px;
2069 border: none;
2070 border-radius: 6px;
2071 font-size: 13px;
2072 cursor: default;
2073 opacity: 0.6;
2074 }
2075
2076 .mxch-message-bubble .mxchat-product-card select {
2077 width: 100%;
2078 padding: 6px 8px;
2079 margin: 4px 0;
2080 border: 1px solid #ddd;
2081 border-radius: 4px;
2082 font-size: 13px;
2083 }
2084
2085 /* Featured Products in Transcripts */
2086 .mxch-message-bubble .mxchat-featured-products {
2087 margin: 8px 0;
2088 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2089 line-height: 1.4;
2090 display: flex;
2091 flex-direction: column;
2092 gap: 0;
2093 padding: 0;
2094 }
2095
2096 .mxch-message-bubble .mxchat-featured-item {
2097 padding: 10px 0;
2098 border-bottom: 1px solid #e5e5e5;
2099 margin: 0;
2100 }
2101
2102 .mxch-message-bubble .mxchat-featured-item:last-child {
2103 border-bottom: none;
2104 padding-bottom: 0;
2105 }
2106
2107 .mxch-message-bubble .mxchat-featured-item:first-child {
2108 padding-top: 0;
2109 }
2110
2111 .mxch-message-bubble .mxchat-featured-item-top {
2112 display: flex;
2113 flex-direction: row;
2114 align-items: center;
2115 gap: 12px;
2116 margin-bottom: 8px;
2117 }
2118
2119 .mxch-message-bubble .mxchat-featured-item-image {
2120 flex-shrink: 0;
2121 width: 70px;
2122 height: 70px;
2123 overflow: hidden;
2124 border-radius: 8px;
2125 background: #f1f1f1;
2126 }
2127
2128 .mxch-message-bubble .mxchat-featured-item-image a {
2129 display: block;
2130 width: 70px;
2131 height: 70px;
2132 text-decoration: none;
2133 }
2134
2135 .mxch-message-bubble .mxchat-featured-item-image img {
2136 width: 70px;
2137 height: 70px;
2138 object-fit: cover;
2139 border-radius: 8px;
2140 display: block;
2141 }
2142
2143 .mxch-message-bubble .mxchat-featured-item-info {
2144 flex: 1;
2145 min-width: 0;
2146 display: flex;
2147 flex-direction: column;
2148 gap: 2px;
2149 justify-content: center;
2150 }
2151
2152 .mxch-message-bubble .mxchat-featured-item-title,
2153 .mxch-message-bubble a.mxchat-featured-item-title {
2154 font-size: 13px;
2155 font-weight: 600;
2156 color: #1a1a1a;
2157 text-decoration: none;
2158 line-height: 1.3;
2159 display: -webkit-box;
2160 -webkit-line-clamp: 2;
2161 -webkit-box-orient: vertical;
2162 overflow: hidden;
2163 margin: 0;
2164 padding: 0;
2165 }
2166
2167 .mxch-message-bubble a.mxchat-featured-item-title:hover {
2168 opacity: 0.8;
2169 }
2170
2171 .mxch-message-bubble .mxchat-featured-item-price {
2172 font-weight: 700;
2173 font-size: 13px;
2174 color: #2e7d32;
2175 margin: 0;
2176 }
2177
2178 .mxch-message-bubble .mxchat-featured-item-price del {
2179 opacity: 0.6;
2180 font-weight: 400;
2181 font-size: 0.85em;
2182 margin-right: 4px;
2183 }
2184
2185 .mxch-message-bubble .mxchat-featured-item-price ins {
2186 text-decoration: none;
2187 background: none;
2188 }
2189
2190 .mxch-message-bubble .mxchat-featured-item-actions {
2191 display: flex;
2192 flex-direction: row;
2193 gap: 8px;
2194 margin: 0;
2195 padding: 0;
2196 }
2197
2198 .mxch-message-bubble .mxchat-featured-btn-details,
2199 .mxch-message-bubble a.mxchat-featured-btn-details {
2200 display: flex;
2201 align-items: center;
2202 justify-content: center;
2203 flex: 1;
2204 padding: 7px 10px;
2205 font-size: 12px;
2206 font-weight: 500;
2207 border-radius: 6px;
2208 text-decoration: none;
2209 border: 1px solid #ddd;
2210 background: transparent;
2211 color: #1a1a1a;
2212 text-align: center;
2213 line-height: 1.2;
2214 }
2215
2216 .mxch-message-bubble .mxchat-featured-btn-cart,
2217 .mxch-message-bubble button.mxchat-featured-btn-cart {
2218 display: flex;
2219 align-items: center;
2220 justify-content: center;
2221 flex: 1;
2222 padding: 7px 10px;
2223 font-size: 12px;
2224 font-weight: 500;
2225 border-radius: 6px;
2226 border: none;
2227 background: #212121;
2228 color: #fff;
2229 cursor: default;
2230 opacity: 0.6;
2231 line-height: 1.2;
2232 }
2233
2234 /* ==========================================================================
2235 Leads Tab
2236 ========================================================================== */
2237
2238 .mxch-leads-stats {
2239 display: grid;
2240 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
2241 gap: var(--mxch-spacing-lg);
2242 margin-bottom: var(--mxch-spacing-xl);
2243 }
2244
2245 .mxch-leads-toppages {
2246 margin-bottom: var(--mxch-spacing-xl);
2247 }
2248
2249 .mxch-leads-toppages-hint {
2250 margin-left: auto;
2251 font-size: 12px;
2252 color: var(--mxch-text-muted);
2253 font-weight: 400;
2254 }
2255
2256 .mxch-leads-toppages-list {
2257 display: grid;
2258 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
2259 gap: var(--mxch-spacing-sm);
2260 }
2261
2262 .mxch-leads-toppage-row {
2263 display: flex;
2264 align-items: center;
2265 justify-content: space-between;
2266 gap: var(--mxch-spacing-sm);
2267 padding: 10px 14px;
2268 background: var(--mxch-card-bg);
2269 border: 1px solid var(--mxch-card-border);
2270 border-radius: var(--mxch-radius-md);
2271 text-align: left;
2272 cursor: pointer;
2273 transition: all var(--mxch-transition);
2274 color: var(--mxch-text-primary);
2275 font-size: 13px;
2276 }
2277
2278 .mxch-leads-toppage-row:hover {
2279 border-color: var(--mxch-primary);
2280 box-shadow: var(--mxch-card-shadow-hover);
2281 }
2282
2283 .mxch-leads-toppage-row.is-active {
2284 border-color: var(--mxch-primary);
2285 background: rgba(99, 102, 241, 0.06);
2286 }
2287
2288 .mxch-leads-toppage-title {
2289 flex: 1 1 auto;
2290 min-width: 0;
2291 overflow: hidden;
2292 text-overflow: ellipsis;
2293 white-space: nowrap;
2294 }
2295
2296 .mxch-leads-toppage-count {
2297 flex: 0 0 auto;
2298 display: inline-flex;
2299 align-items: center;
2300 justify-content: center;
2301 min-width: 28px;
2302 height: 22px;
2303 padding: 0 8px;
2304 border-radius: 999px;
2305 background: var(--mxch-primary);
2306 color: #fff;
2307 font-size: 11px;
2308 font-weight: 600;
2309 }
2310
2311 .mxch-leads-empty-mini {
2312 padding: 12px;
2313 text-align: center;
2314 color: var(--mxch-text-muted);
2315 font-size: 13px;
2316 }
2317
2318 /* Toolbar + card */
2319 .mxch-leads-card {
2320 padding: 0;
2321 overflow: hidden;
2322 }
2323
2324 .mxch-leads-toolbar {
2325 display: flex;
2326 align-items: center;
2327 justify-content: space-between;
2328 gap: var(--mxch-spacing-md);
2329 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2330 border-bottom: 1px solid var(--mxch-card-border);
2331 flex-wrap: wrap;
2332 }
2333
2334 .mxch-leads-toolbar-left,
2335 .mxch-leads-toolbar-right {
2336 display: flex;
2337 align-items: center;
2338 gap: var(--mxch-spacing-sm);
2339 }
2340
2341 .mxch-leads-export {
2342 position: relative;
2343 }
2344
2345 .mxch-leads-export-menu {
2346 position: absolute;
2347 right: 0;
2348 top: calc(100% + 6px);
2349 min-width: 240px;
2350 background: var(--mxch-card-bg);
2351 border: 1px solid var(--mxch-card-border);
2352 border-radius: var(--mxch-radius-md);
2353 box-shadow: var(--mxch-card-shadow-hover);
2354 padding: 4px;
2355 z-index: 20;
2356 display: none;
2357 }
2358
2359 .mxch-leads-export-menu.is-open { display: block; }
2360
2361 .mxch-leads-export-menu button {
2362 display: block;
2363 width: 100%;
2364 padding: 8px 12px;
2365 background: transparent;
2366 border: none;
2367 border-radius: 6px;
2368 text-align: left;
2369 color: var(--mxch-text-primary);
2370 font-size: 13px;
2371 cursor: pointer;
2372 }
2373
2374 .mxch-leads-export-menu button:hover:not(:disabled) {
2375 background: rgba(99, 102, 241, 0.08);
2376 }
2377
2378 .mxch-leads-export-menu button:disabled {
2379 color: var(--mxch-text-muted);
2380 cursor: not-allowed;
2381 }
2382
2383 /* Filters row */
2384 .mxch-leads-filters {
2385 display: flex;
2386 align-items: center;
2387 gap: var(--mxch-spacing-sm);
2388 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2389 border-bottom: 1px solid var(--mxch-card-border);
2390 flex-wrap: wrap;
2391 }
2392
2393 .mxch-leads-filters .mxch-search-wrapper {
2394 flex: 1 1 260px;
2395 min-width: 180px;
2396 }
2397
2398 .mxch-leads-filters .mxch-select {
2399 height: 36px;
2400 min-width: 160px;
2401 }
2402
2403 .mxch-leads-active-page-filter {
2404 display: inline-flex;
2405 align-items: center;
2406 gap: 6px;
2407 padding: 4px 6px 4px 10px;
2408 background: rgba(99, 102, 241, 0.08);
2409 border: 1px solid rgba(99, 102, 241, 0.28);
2410 border-radius: 999px;
2411 font-size: 12px;
2412 color: var(--mxch-text-primary);
2413 max-width: 280px;
2414 }
2415
2416 .mxch-leads-page-chip-label {
2417 overflow: hidden;
2418 text-overflow: ellipsis;
2419 white-space: nowrap;
2420 }
2421
2422 .mxch-leads-page-chip-remove {
2423 border: none;
2424 background: transparent;
2425 font-size: 16px;
2426 line-height: 1;
2427 cursor: pointer;
2428 padding: 0 4px;
2429 color: var(--mxch-text-muted);
2430 }
2431
2432 .mxch-leads-page-chip-remove:hover {
2433 color: var(--mxch-text-primary);
2434 }
2435
2436 /* Table */
2437 .mxch-leads-table-wrap {
2438 overflow-x: auto;
2439 }
2440
2441 .mxch-leads-table {
2442 width: 100%;
2443 border-collapse: separate;
2444 border-spacing: 0;
2445 font-size: 13px;
2446 }
2447
2448 .mxch-leads-table thead th {
2449 padding: 10px 14px;
2450 text-align: left;
2451 background: var(--mxch-card-bg);
2452 border-bottom: 1px solid var(--mxch-card-border);
2453 color: var(--mxch-text-secondary);
2454 font-weight: 600;
2455 font-size: 11px;
2456 text-transform: uppercase;
2457 letter-spacing: 0.04em;
2458 position: sticky;
2459 top: 0;
2460 }
2461
2462 .mxch-leads-table tbody td {
2463 padding: 12px 14px;
2464 border-bottom: 1px solid var(--mxch-card-border);
2465 vertical-align: middle;
2466 color: var(--mxch-text-primary);
2467 }
2468
2469 .mxch-leads-table tbody tr:last-child td {
2470 border-bottom: none;
2471 }
2472
2473 .mxch-leads-table tbody tr:hover {
2474 background: rgba(99, 102, 241, 0.04);
2475 }
2476
2477 .mxch-leads-row.is-orphan .mxch-leads-lead-email {
2478 font-style: italic;
2479 color: var(--mxch-text-secondary);
2480 }
2481
2482 .mxch-leads-table { table-layout: fixed; }
2483
2484 .mxch-leads-col-check { width: 40px; }
2485 .mxch-leads-col-lead { width: auto; min-width: 280px; }
2486 .mxch-leads-col-count { width: 130px; text-align: left; }
2487 .mxch-leads-col-last { width: 110px; white-space: nowrap; }
2488 .mxch-leads-col-page { width: 180px; max-width: 180px; }
2489 .mxch-leads-col-actions { width: 170px; white-space: nowrap; text-align: right; }
2490
2491 .mxch-leads-lead-cell {
2492 display: flex;
2493 flex-direction: column;
2494 min-width: 0;
2495 gap: 2px;
2496 }
2497
2498 .mxch-leads-lead-email {
2499 font-weight: 500;
2500 color: var(--mxch-text-primary);
2501 overflow: hidden;
2502 text-overflow: ellipsis;
2503 white-space: nowrap;
2504 }
2505
2506 .mxch-leads-lead-name {
2507 font-size: 11px;
2508 color: var(--mxch-text-muted);
2509 overflow: hidden;
2510 text-overflow: ellipsis;
2511 white-space: nowrap;
2512 }
2513
2514 .mxch-leads-muted { color: var(--mxch-text-muted); }
2515
2516 .mxch-leads-pill {
2517 display: inline-flex;
2518 align-items: center;
2519 justify-content: center;
2520 min-width: 28px;
2521 height: 22px;
2522 padding: 0 8px;
2523 border-radius: 999px;
2524 background: rgba(99, 102, 241, 0.12);
2525 color: var(--mxch-primary);
2526 font-weight: 600;
2527 font-size: 11px;
2528 }
2529
2530 .mxch-leads-pill-orphan {
2531 background: rgba(245, 158, 11, 0.14);
2532 color: var(--mxch-warning);
2533 }
2534
2535 .mxch-leads-pill-deleted {
2536 background: rgba(100, 116, 139, 0.12);
2537 color: var(--mxch-text-secondary);
2538 border: 1px solid rgba(100, 116, 139, 0.22);
2539 padding: 0 10px;
2540 }
2541
2542 .mxch-leads-row.is-chat-deleted .mxch-leads-lead-email {
2543 color: var(--mxch-text-secondary);
2544 }
2545
2546 .mxch-transcript-confirm-check {
2547 display: flex;
2548 gap: 10px;
2549 align-items: flex-start;
2550 padding: 10px 12px;
2551 margin: 12px 0 4px;
2552 background: rgba(99, 102, 241, 0.04);
2553 border: 1px solid var(--mxch-card-border);
2554 border-radius: var(--mxch-radius-md);
2555 cursor: pointer;
2556 }
2557
2558 .mxch-transcript-confirm-check input[type="checkbox"] {
2559 margin-top: 3px;
2560 flex: 0 0 auto;
2561 }
2562
2563 .mxch-transcript-confirm-check strong {
2564 display: block;
2565 color: var(--mxch-text-primary);
2566 font-weight: 600;
2567 font-size: 13px;
2568 }
2569
2570 .mxch-transcript-confirm-sublabel {
2571 display: block;
2572 margin-top: 2px;
2573 font-size: 12px;
2574 color: var(--mxch-text-muted);
2575 font-style: normal;
2576 }
2577
2578 .mxch-leads-page-link {
2579 display: inline-block;
2580 max-width: 100%;
2581 overflow: hidden;
2582 text-overflow: ellipsis;
2583 white-space: nowrap;
2584 vertical-align: middle;
2585 color: var(--mxch-primary);
2586 text-decoration: none;
2587 }
2588
2589 .mxch-leads-page-link:hover { text-decoration: underline; }
2590
2591 .mxch-leads-col-actions .mxch-btn {
2592 margin-left: 6px;
2593 }
2594
2595 .mxch-btn-danger-ghost {
2596 color: #b91c1c;
2597 }
2598
2599 .mxch-btn-danger-ghost:hover {
2600 background: rgba(185, 28, 28, 0.08);
2601 color: #991b1b;
2602 }
2603
2604 .mxch-leads-empty,
2605 .mxch-leads-loading {
2606 padding: 40px 16px;
2607 text-align: center;
2608 color: var(--mxch-text-muted);
2609 }
2610
2611 .mxch-leads-empty-wrap {
2612 display: flex;
2613 flex-direction: column;
2614 align-items: center;
2615 gap: var(--mxch-spacing-sm);
2616 color: var(--mxch-text-muted);
2617 }
2618
2619 .mxch-leads-empty-wrap svg { opacity: 0.6; }
2620
2621 .mxch-leads-count {
2622 font-size: 12px;
2623 color: var(--mxch-text-muted);
2624 }
2625
2626 /* Confirm modal */
2627 .mxch-leads-confirm-box {
2628 max-width: 440px;
2629 }
2630
2631 .mxch-leads-confirm-warning {
2632 color: var(--mxch-text-muted);
2633 font-size: 12px;
2634 margin-top: 8px;
2635 }
2636
2637 .mxch-leads-confirm-actions {
2638 display: flex;
2639 justify-content: flex-end;
2640 gap: 8px;
2641 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2642 border-top: 1px solid var(--mxch-card-border);
2643 }
2644
2645 /* Responsive: tablet */
2646 @media (max-width: 1024px) {
2647 .mxch-leads-col-page { width: 140px; max-width: 140px; }
2648 .mxch-leads-col-actions { width: 140px; }
2649 .mxch-leads-col-actions .mxch-leads-view span { display: none; }
2650 }
2651
2652 /* Responsive: phone */
2653 @media (max-width: 768px) {
2654 .mxch-leads-col-page,
2655 .mxch-leads-col-last {
2656 display: none;
2657 }
2658 .mxch-leads-filters {
2659 padding: var(--mxch-spacing-sm);
2660 }
2661 .mxch-leads-filters .mxch-select {
2662 flex: 1 1 48%;
2663 min-width: 0;
2664 }
2665 .mxch-leads-toolbar {
2666 padding: var(--mxch-spacing-sm);
2667 }
2668 .mxch-leads-table thead th { padding: 8px 10px; font-size: 10px; }
2669 .mxch-leads-table tbody td { padding: 10px; font-size: 12px; }
2670 }
2671
2672 @media (max-width: 480px) {
2673 .mxch-leads-col-count { display: none; }
2674 .mxch-leads-toppages-list { grid-template-columns: 1fr; }
2675 }
2676
2677 /* Satisfaction card on Transcripts dashboard (plan-a5b006). */
2678 .mxch-satisfaction-card .mxch-card-body {
2679 padding: var(--mxch-spacing-md);
2680 }
2681 .mxch-satisfaction-empty {
2682 margin: 0;
2683 padding: var(--mxch-spacing-sm) 0;
2684 color: #6b7280;
2685 font-size: 13px;
2686 line-height: 1.5;
2687 }
2688 .mxch-satisfaction-list {
2689 list-style: none;
2690 margin: 0;
2691 padding: 0;
2692 display: flex;
2693 flex-direction: column;
2694 gap: 8px;
2695 }
2696 .mxch-satisfaction-row {
2697 display: flex;
2698 align-items: center;
2699 gap: var(--mxch-spacing-md);
2700 padding: 10px 12px;
2701 background: #f9fafb;
2702 border: 1px solid #f3f4f6;
2703 border-radius: var(--mxch-radius-md, 8px);
2704 }
2705 .mxch-satisfaction-bot {
2706 flex: 0 0 28%;
2707 min-width: 0;
2708 font-weight: 600;
2709 font-size: 13px;
2710 color: #1a1a2e;
2711 overflow: hidden;
2712 text-overflow: ellipsis;
2713 white-space: nowrap;
2714 }
2715 .mxch-satisfaction-meta {
2716 flex: 1;
2717 display: flex;
2718 align-items: center;
2719 gap: 10px;
2720 font-size: 12px;
2721 color: #4b5563;
2722 flex-wrap: wrap;
2723 }
2724 .mxch-satisfaction-total {
2725 color: #6b7280;
2726 white-space: nowrap;
2727 }
2728 .mxch-satisfaction-bar {
2729 flex: 1;
2730 min-width: 80px;
2731 height: 6px;
2732 background: #e5e7eb;
2733 border-radius: 999px;
2734 overflow: hidden;
2735 display: flex;
2736 }
2737 .mxch-satisfaction-bar-up {
2738 background: #10b981;
2739 height: 100%;
2740 }
2741 .mxch-satisfaction-bar-down {
2742 background: #ef4444;
2743 height: 100%;
2744 }
2745 .mxch-satisfaction-pct {
2746 display: inline-flex;
2747 align-items: center;
2748 gap: 4px;
2749 font-weight: 600;
2750 white-space: nowrap;
2751 }
2752 .mxch-satisfaction-pct-up { color: #047857; }
2753 .mxch-satisfaction-pct-down { color: #b91c1c; }
2754 @media (max-width: 600px) {
2755 .mxch-satisfaction-row { flex-direction: column; align-items: flex-start; gap: 8px; }
2756 .mxch-satisfaction-bot { flex: 1 1 100%; }
2757 .mxch-satisfaction-meta { width: 100%; }
2758 }
2759
2760 /* Details drawer — Feedback row value (user-submitted rating feedback). */
2761 .mxch-detail-feedback-value {
2762 white-space: pre-wrap;
2763 word-break: break-word;
2764 max-width: 100%;
2765 display: block;
2766 margin-top: 4px;
2767 opacity: 0.9;
2768 font-style: italic;
2769 }
2770