PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.2.15
MxChat – AI Chatbot & Content Generation for WordPress v3.2.15
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.15, at css/chat-transcripts.css

2,782 lines 59.7 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-agent-label {
1195 font-size: 11px;
1196 font-weight: 600;
1197 color: #7c3aed;
1198 text-transform: uppercase;
1199 letter-spacing: 0.5px;
1200 }
1201
1202 .mxch-message-agent .mxch-message-bubble {
1203 border-color: #ddd6fe;
1204 }
1205
1206 .mxch-rag-link {
1207 font-size: 11px;
1208 color: #3b82f6;
1209 text-decoration: none;
1210 font-weight: 500;
1211 padding: 2px 8px;
1212 background: #eff6ff;
1213 border-radius: 4px;
1214 transition: all 0.15s;
1215 }
1216
1217 .mxch-rag-link:hover {
1218 background: #dbeafe;
1219 }
1220
1221 .mxch-message-bot .mxch-message-row {
1222 max-width: 80%;
1223 min-width: 150px;
1224 }
1225
1226 .mxch-message-bot .mxch-message-bubble {
1227 background: #fff;
1228 border: 1px solid #e5e7eb;
1229 color: #374151;
1230 padding: 12px 16px;
1231 border-radius: 18px 18px 18px 4px;
1232 font-size: 14px;
1233 line-height: 1.5;
1234 min-width: 100px;
1235 }
1236
1237 .mxch-message-bot .mxch-message-bubble a {
1238 color: #3b82f6;
1239 }
1240
1241 .mxch-message-bot .mxch-message-time {
1242 font-size: 11px;
1243 color: #9ca3af;
1244 margin-top: 4px;
1245 }
1246
1247 /* Message Content Styles */
1248 .mxch-message-bubble p {
1249 margin: 0 0 10px 0;
1250 }
1251
1252 .mxch-message-bubble p:last-child {
1253 margin-bottom: 0;
1254 }
1255
1256 .mxch-message-bubble ul,
1257 .mxch-message-bubble ol {
1258 margin: 10px 0;
1259 padding-left: 20px;
1260 }
1261
1262 .mxch-message-bubble li {
1263 margin: 4px 0;
1264 }
1265
1266 .mxch-message-bubble code {
1267 background: rgba(0, 0, 0, 0.08);
1268 padding: 2px 6px;
1269 border-radius: 4px;
1270 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1271 font-size: 0.9em;
1272 }
1273
1274 .mxch-message-user .mxch-message-bubble code {
1275 background: rgba(255, 255, 255, 0.2);
1276 }
1277
1278 .mxch-message-bubble pre {
1279 background: #1e293b;
1280 color: #e2e8f0;
1281 padding: 12px 14px;
1282 border-radius: 8px;
1283 overflow-x: auto;
1284 margin: 10px 0;
1285 font-size: 13px;
1286 }
1287
1288 .mxch-message-bubble pre code {
1289 background: none;
1290 padding: 0;
1291 color: inherit;
1292 }
1293
1294 /* Scrollbar Styling */
1295 .mxch-chat-list::-webkit-scrollbar,
1296 .mxch-messages-area::-webkit-scrollbar {
1297 width: 6px;
1298 }
1299
1300 .mxch-chat-list::-webkit-scrollbar-track,
1301 .mxch-messages-area::-webkit-scrollbar-track {
1302 background: transparent;
1303 }
1304
1305 .mxch-chat-list::-webkit-scrollbar-thumb,
1306 .mxch-messages-area::-webkit-scrollbar-thumb {
1307 background: #d1d5db;
1308 border-radius: 3px;
1309 }
1310
1311 .mxch-chat-list::-webkit-scrollbar-thumb:hover,
1312 .mxch-messages-area::-webkit-scrollbar-thumb:hover {
1313 background: #9ca3af;
1314 }
1315
1316 /* Responsive Split Panel - Tablet */
1317 @media screen and (max-width: 900px) and (min-width: 783px) {
1318 #all-chats.mxch-section {
1319 padding: 0;
1320 }
1321
1322 .mxch-split-panel {
1323 flex-direction: column;
1324 height: auto;
1325 }
1326
1327 .mxch-chat-list-panel {
1328 width: 100%;
1329 max-width: none;
1330 height: 350px;
1331 border-right: none;
1332 border-bottom: 1px solid #e5e7eb;
1333 }
1334
1335 .mxch-panel-expand {
1336 display: none;
1337 }
1338
1339 .mxch-conversation-panel {
1340 min-height: 400px;
1341 }
1342
1343 .mxch-bulk-toolbar {
1344 flex-wrap: wrap;
1345 }
1346
1347 .mxch-bulk-btn span {
1348 display: none;
1349 }
1350 }
1351
1352 /* ==========================================================================
1353 Mobile Split Panel - Full Screen Panels
1354 ========================================================================== */
1355 @media screen and (max-width: 782px) {
1356 #all-chats.mxch-section {
1357 padding: 0;
1358 /* Mobile viewport height with fallbacks for browser address bar */
1359 /* 1. Fallback: standard vh (may be cut off by browser chrome) */
1360 height: calc(100vh - 46px - 32px);
1361 /* 2. Better: dvh (dynamic viewport height) for modern browsers */
1362 height: calc(100dvh - 46px - 32px);
1363 /* 3. Best: JS-calculated actual viewport via CSS custom property */
1364 height: calc(var(--mxch-mobile-vh, 100vh) - 46px - 32px);
1365 overflow: hidden;
1366 }
1367
1368 .mxch-split-panel {
1369 height: 100%;
1370 position: relative;
1371 }
1372
1373 /* Chat List - Full screen on mobile */
1374 .mxch-chat-list-panel {
1375 width: 100%;
1376 max-width: none;
1377 height: 100%;
1378 border-right: none;
1379 position: absolute;
1380 top: 0;
1381 left: 0;
1382 right: 0;
1383 bottom: 0;
1384 z-index: 10;
1385 transition: transform 0.3s ease;
1386 }
1387
1388 .mxch-chat-list-panel.panel-hidden {
1389 transform: translateX(-100%);
1390 }
1391
1392 .mxch-chat-list {
1393 flex: 1;
1394 overflow-y: auto;
1395 -webkit-overflow-scrolling: touch;
1396 }
1397
1398 /* Conversation Panel - Slide over from right */
1399 .mxch-conversation-panel {
1400 position: absolute;
1401 top: 0;
1402 left: 0;
1403 right: 0;
1404 bottom: 0;
1405 z-index: 20;
1406 transform: translateX(100%);
1407 transition: transform 0.3s ease;
1408 min-height: 0;
1409 height: 100%;
1410 display: flex;
1411 flex-direction: column;
1412 }
1413
1414 .mxch-conversation-panel.panel-active {
1415 transform: translateX(0);
1416 }
1417
1418 /* Mobile back button in conversation header */
1419 .mxch-mobile-back-btn {
1420 display: flex !important;
1421 align-items: center;
1422 justify-content: center;
1423 width: 36px;
1424 height: 36px;
1425 background: #f3f4f6;
1426 border: none;
1427 border-radius: 8px;
1428 color: #374151;
1429 cursor: pointer;
1430 margin-right: 8px;
1431 flex-shrink: 0;
1432 }
1433
1434 .mxch-mobile-back-btn:hover {
1435 background: #e5e7eb;
1436 }
1437
1438 /* Ensure conversation content scrolls properly */
1439 .mxch-conversation-content {
1440 flex: 1;
1441 display: flex;
1442 flex-direction: column;
1443 min-height: 0;
1444 overflow: hidden;
1445 }
1446
1447 /* Messages area scroll fix for mobile */
1448 .mxch-messages-area {
1449 flex: 1;
1450 overflow-y: auto;
1451 -webkit-overflow-scrolling: touch;
1452 padding: 16px;
1453 padding-bottom: 24px; /* Extra padding at bottom for visibility */
1454 }
1455
1456 /* Hide expand button on mobile */
1457 .mxch-panel-expand {
1458 display: none;
1459 }
1460
1461 /* Adjust bulk toolbar for mobile */
1462 .mxch-bulk-toolbar {
1463 flex-wrap: wrap;
1464 gap: 6px;
1465 padding: 8px 10px;
1466 }
1467
1468 .mxch-bulk-btn span {
1469 display: none;
1470 }
1471
1472 /* Make chat items more tappable */
1473 .mxch-chat-item {
1474 padding: 14px 12px;
1475 }
1476
1477 /* Adjust conversation header for mobile */
1478 .mxch-conversation-header {
1479 padding: 12px 16px;
1480 flex-shrink: 0;
1481 }
1482
1483 /* Details drawer adjustments */
1484 .mxch-details-drawer {
1485 max-height: 200px;
1486 overflow-y: auto;
1487 flex-shrink: 0;
1488 }
1489
1490 /* Conversation empty state on mobile */
1491 .mxch-conversation-empty {
1492 display: none;
1493 }
1494 }
1495
1496 /* ==========================================================================
1497 Pagination
1498 ========================================================================== */
1499 .mxch-pagination {
1500 display: flex;
1501 flex-wrap: wrap;
1502 justify-content: space-between;
1503 align-items: center;
1504 margin-top: var(--mxch-spacing-lg);
1505 padding: var(--mxch-spacing-md);
1506 background: var(--mxch-card-bg);
1507 border: 1px solid var(--mxch-card-border);
1508 border-radius: var(--mxch-radius-md);
1509 }
1510
1511 .mxch-pagination-info {
1512 font-size: 13px;
1513 color: var(--mxch-text-secondary);
1514 }
1515
1516 .mxch-pagination-controls {
1517 display: flex;
1518 flex-wrap: wrap;
1519 gap: 4px;
1520 }
1521
1522 .mxch-pagination-btn {
1523 padding: 6px 12px;
1524 background: #f8fafc;
1525 border: 1px solid var(--mxch-card-border);
1526 border-radius: var(--mxch-radius-sm);
1527 color: var(--mxch-text-primary);
1528 font-size: 13px;
1529 cursor: pointer;
1530 transition: all var(--mxch-transition-fast);
1531 }
1532
1533 .mxch-pagination-btn:hover {
1534 background: #e2e8f0;
1535 }
1536
1537 .mxch-pagination-btn.active {
1538 background: var(--mxch-primary);
1539 border-color: var(--mxch-primary);
1540 color: white;
1541 }
1542
1543 .mxch-pagination-ellipsis {
1544 padding: 6px 8px;
1545 color: var(--mxch-text-muted);
1546 }
1547
1548 /* ==========================================================================
1549 No Results
1550 ========================================================================== */
1551 .mxch-no-results {
1552 text-align: center;
1553 padding: var(--mxch-spacing-xl) var(--mxch-spacing-lg);
1554 color: var(--mxch-text-muted);
1555 background: #f9fafb;
1556 border: 2px dashed var(--mxch-card-border);
1557 border-radius: var(--mxch-radius-lg);
1558 }
1559
1560 .mxch-no-results svg {
1561 width: 48px;
1562 height: 48px;
1563 margin-bottom: var(--mxch-spacing-md);
1564 opacity: 0.5;
1565 }
1566
1567 .mxch-no-results h3 {
1568 font-size: 16px;
1569 font-weight: 600;
1570 color: var(--mxch-text-secondary);
1571 margin: 0 0 var(--mxch-spacing-xs) 0;
1572 }
1573
1574 .mxch-no-results p {
1575 font-size: 14px;
1576 margin: 0;
1577 }
1578
1579 /* ==========================================================================
1580 Toggle Row
1581 ========================================================================== */
1582 .mxch-toggle-row {
1583 display: flex;
1584 align-items: center;
1585 gap: var(--mxch-spacing-sm);
1586 }
1587
1588 .mxch-toggle-label {
1589 font-size: 14px;
1590 font-weight: 500;
1591 color: var(--mxch-text-primary);
1592 }
1593
1594 /* ==========================================================================
1595 Modal Styles
1596 ========================================================================== */
1597 .mxch-modal-overlay {
1598 position: fixed;
1599 top: 0;
1600 left: 0;
1601 right: 0;
1602 bottom: 0;
1603 background: rgba(0, 0, 0, 0.5);
1604 display: flex;
1605 align-items: center;
1606 justify-content: center;
1607 z-index: 100000;
1608 animation: mxchFadeIn 0.2s ease;
1609 }
1610
1611 .mxch-modal-content {
1612 background: white;
1613 border-radius: var(--mxch-radius-lg);
1614 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
1615 width: 90%;
1616 max-width: 600px;
1617 max-height: 80vh;
1618 display: flex;
1619 flex-direction: column;
1620 animation: mxchSlideIn 0.2s ease;
1621 }
1622
1623 @keyframes mxchSlideIn {
1624 from {
1625 transform: translateY(-20px);
1626 opacity: 0;
1627 }
1628 to {
1629 transform: translateY(0);
1630 opacity: 1;
1631 }
1632 }
1633
1634 .mxch-modal-header {
1635 display: flex;
1636 align-items: center;
1637 justify-content: space-between;
1638 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
1639 border-bottom: 1px solid var(--mxch-card-border);
1640 }
1641
1642 .mxch-modal-header h2 {
1643 font-size: 18px;
1644 font-weight: 600;
1645 color: var(--mxch-text-primary);
1646 margin: 0;
1647 }
1648
1649 .mxch-modal-close {
1650 width: 32px;
1651 height: 32px;
1652 display: flex;
1653 align-items: center;
1654 justify-content: center;
1655 background: none;
1656 border: none;
1657 font-size: 24px;
1658 color: var(--mxch-text-muted);
1659 cursor: pointer;
1660 border-radius: var(--mxch-radius-sm);
1661 transition: all var(--mxch-transition-fast);
1662 }
1663
1664 .mxch-modal-close:hover {
1665 background: #f1f5f9;
1666 color: var(--mxch-text-primary);
1667 }
1668
1669 .mxch-modal-body {
1670 flex: 1;
1671 padding: var(--mxch-spacing-lg);
1672 overflow-y: auto;
1673 }
1674
1675 /* RAG Context Styles */
1676 .mxch-rag-summary {
1677 display: flex;
1678 flex-wrap: wrap;
1679 gap: var(--mxch-spacing-md);
1680 padding: var(--mxch-spacing-md);
1681 background: #f8fafc;
1682 border-radius: var(--mxch-radius-md);
1683 margin-bottom: var(--mxch-spacing-lg);
1684 }
1685
1686 .mxch-rag-summary-item {
1687 font-size: 13px;
1688 }
1689
1690 .mxch-rag-label {
1691 color: var(--mxch-text-secondary);
1692 }
1693
1694 .mxch-rag-value {
1695 font-weight: 600;
1696 color: var(--mxch-text-primary);
1697 }
1698
1699 .mxch-rag-matches h3 {
1700 font-size: 14px;
1701 font-weight: 600;
1702 color: var(--mxch-text-primary);
1703 margin: 0 0 var(--mxch-spacing-md) 0;
1704 }
1705
1706 .mxch-rag-match-card {
1707 border: 1px solid var(--mxch-card-border);
1708 border-radius: var(--mxch-radius-md);
1709 padding: var(--mxch-spacing-md);
1710 margin-bottom: var(--mxch-spacing-sm);
1711 }
1712
1713 .mxch-rag-match-used {
1714 border-color: rgba(16, 185, 129, 0.3);
1715 background: rgba(16, 185, 129, 0.05);
1716 }
1717
1718 .mxch-rag-match-below {
1719 border-color: var(--mxch-card-border);
1720 background: #fafafa;
1721 }
1722
1723 .mxch-rag-match-header {
1724 display: flex;
1725 align-items: center;
1726 gap: var(--mxch-spacing-sm);
1727 margin-bottom: var(--mxch-spacing-sm);
1728 }
1729
1730 .mxch-rag-match-score {
1731 font-size: 14px;
1732 font-weight: 700;
1733 color: var(--mxch-primary);
1734 }
1735
1736 .mxch-rag-chunk-badge {
1737 font-size: 11px;
1738 padding: 2px 8px;
1739 background: rgba(120, 115, 245, 0.1);
1740 color: var(--mxch-primary);
1741 border-radius: 10px;
1742 }
1743
1744 .mxch-rag-match-status {
1745 margin-left: auto;
1746 font-size: 12px;
1747 font-weight: 500;
1748 }
1749
1750 .mxch-rag-match-status.status-used {
1751 color: var(--mxch-success);
1752 }
1753
1754 .mxch-rag-match-status.status-below {
1755 color: var(--mxch-text-muted);
1756 }
1757
1758 .mxch-rag-match-source {
1759 font-size: 13px;
1760 color: var(--mxch-text-secondary);
1761 word-break: break-all;
1762 }
1763
1764 .mxch-rag-match-source a {
1765 color: var(--mxch-primary);
1766 text-decoration: none;
1767 }
1768
1769 .mxch-rag-match-source a:hover {
1770 text-decoration: underline;
1771 }
1772
1773 /* Context Modal Tabs */
1774 .mxch-context-tabs {
1775 display: flex;
1776 gap: 4px;
1777 padding: 4px;
1778 background: #f1f5f9;
1779 border-radius: var(--mxch-radius-md);
1780 margin-bottom: var(--mxch-spacing-md);
1781 }
1782
1783 .mxch-context-tab {
1784 flex: 1;
1785 display: flex;
1786 align-items: center;
1787 justify-content: center;
1788 gap: 8px;
1789 padding: 10px 16px;
1790 border: none;
1791 background: transparent;
1792 border-radius: var(--mxch-radius-sm);
1793 font-size: 13px;
1794 font-weight: 500;
1795 color: var(--mxch-text-secondary);
1796 cursor: pointer;
1797 transition: all var(--mxch-transition-fast);
1798 }
1799
1800 .mxch-context-tab:hover {
1801 color: var(--mxch-text-primary);
1802 background: rgba(255, 255, 255, 0.5);
1803 }
1804
1805 .mxch-context-tab.active {
1806 background: white;
1807 color: var(--mxch-primary);
1808 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1809 }
1810
1811 .mxch-context-tab svg {
1812 width: 16px;
1813 height: 16px;
1814 flex-shrink: 0;
1815 }
1816
1817 .mxch-tab-badge {
1818 display: inline-flex;
1819 align-items: center;
1820 justify-content: center;
1821 min-width: 20px;
1822 height: 20px;
1823 padding: 0 6px;
1824 background: rgba(120, 115, 245, 0.1);
1825 color: var(--mxch-primary);
1826 font-size: 11px;
1827 font-weight: 600;
1828 border-radius: 10px;
1829 }
1830
1831 .mxch-context-tab.active .mxch-tab-badge {
1832 background: var(--mxch-primary);
1833 color: white;
1834 }
1835
1836 .mxch-tab-content {
1837 min-height: 200px;
1838 }
1839
1840 /* Action Specific Styles */
1841 .mxch-action-triggered {
1842 border-color: rgba(245, 158, 11, 0.4);
1843 background: rgba(245, 158, 11, 0.08);
1844 }
1845
1846 .mxch-action-threshold-badge {
1847 font-size: 11px;
1848 padding: 2px 8px;
1849 background: rgba(100, 116, 139, 0.1);
1850 color: var(--mxch-text-secondary);
1851 border-radius: 10px;
1852 }
1853
1854 .mxch-rag-match-status.status-triggered {
1855 color: #f59e0b;
1856 font-weight: 600;
1857 }
1858
1859 .mxch-action-details {
1860 margin-top: var(--mxch-spacing-sm);
1861 }
1862
1863 .mxch-action-label {
1864 font-size: 14px;
1865 font-weight: 600;
1866 color: var(--mxch-text-primary);
1867 margin-bottom: 4px;
1868 }
1869
1870 .mxch-action-callback {
1871 font-size: 12px;
1872 color: var(--mxch-text-muted);
1873 font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1874 }
1875
1876 .mxch-action-callback-label {
1877 color: var(--mxch-text-secondary);
1878 font-family: inherit;
1879 }
1880
1881 /* Action Score Bar Visualization */
1882 .mxch-action-score-bar {
1883 position: relative;
1884 height: 6px;
1885 background: #e2e8f0;
1886 border-radius: 3px;
1887 margin-top: var(--mxch-spacing-sm);
1888 overflow: visible;
1889 }
1890
1891 .mxch-action-score-fill {
1892 position: absolute;
1893 left: 0;
1894 top: 0;
1895 height: 100%;
1896 background: linear-gradient(90deg, #7873f5, #a5a1fa);
1897 border-radius: 3px;
1898 transition: width 0.3s ease;
1899 }
1900
1901 .mxch-action-triggered .mxch-action-score-fill {
1902 background: linear-gradient(90deg, #f59e0b, #fbbf24);
1903 }
1904
1905 .mxch-action-threshold-marker {
1906 position: absolute;
1907 top: -4px;
1908 width: 2px;
1909 height: 14px;
1910 background: #ef4444;
1911 border-radius: 1px;
1912 transform: translateX(-50%);
1913 }
1914
1915 .mxch-action-threshold-marker::after {
1916 content: '';
1917 position: absolute;
1918 top: -3px;
1919 left: 50%;
1920 transform: translateX(-50%);
1921 width: 0;
1922 height: 0;
1923 border-left: 4px solid transparent;
1924 border-right: 4px solid transparent;
1925 border-top: 4px solid #ef4444;
1926 }
1927
1928 /* No Results State */
1929 .mxch-no-results {
1930 text-align: center;
1931 padding: var(--mxch-spacing-xl);
1932 color: var(--mxch-text-secondary);
1933 }
1934
1935 .mxch-no-results p {
1936 margin: 0;
1937 }
1938
1939 /* ==========================================================================
1940 Responsive Adjustments
1941 ========================================================================== */
1942 @media screen and (max-width: 768px) {
1943 .mxch-stats-grid {
1944 grid-template-columns: repeat(2, 1fr);
1945 }
1946
1947 .mxch-stat-card {
1948 padding: var(--mxch-spacing-md);
1949 }
1950
1951 .mxch-stat-value {
1952 font-size: 22px;
1953 }
1954
1955 .mxch-cards-row {
1956 grid-template-columns: 1fr;
1957 }
1958
1959 .mxch-transcripts-controls {
1960 flex-direction: column;
1961 align-items: stretch;
1962 }
1963
1964 .mxch-search-wrapper {
1965 max-width: none;
1966 }
1967
1968 .mxch-controls-actions {
1969 justify-content: flex-end;
1970 }
1971
1972 .mxch-session-header {
1973 flex-direction: column;
1974 gap: var(--mxch-spacing-sm);
1975 }
1976
1977 .mxch-session-actions {
1978 opacity: 1;
1979 align-self: flex-end;
1980 }
1981
1982 .mxch-pagination {
1983 flex-direction: column;
1984 gap: var(--mxch-spacing-md);
1985 align-items: flex-start;
1986 }
1987
1988 .mxch-quick-actions {
1989 flex-direction: column;
1990 }
1991
1992 .mxch-quick-action-btn {
1993 width: 100%;
1994 justify-content: center;
1995 }
1996
1997 /* Chart responsive */
1998 .mxch-activity-chart-card .mxch-card-header {
1999 flex-direction: column;
2000 align-items: flex-start;
2001 }
2002
2003 .mxch-chart-legend {
2004 margin-top: var(--mxch-spacing-xs);
2005 }
2006
2007 #mxchat-activity-chart {
2008 height: 220px !important;
2009 }
2010 }
2011
2012 @media screen and (max-width: 480px) {
2013 .mxch-stats-grid {
2014 grid-template-columns: 1fr;
2015 }
2016
2017 .mxch-controls-actions {
2018 flex-direction: column;
2019 width: 100%;
2020 }
2021
2022 .mxch-controls-actions .mxch-btn {
2023 width: 100%;
2024 justify-content: center;
2025 }
2026
2027 .mxch-controls-actions form {
2028 width: 100%;
2029 }
2030 }
2031
2032 /* Product Card in Transcripts */
2033 .mxch-message-bubble .mxchat-product-card {
2034 display: flex;
2035 flex-direction: column;
2036 align-items: center;
2037 margin: 8px 0;
2038 padding: 12px;
2039 border-radius: 8px;
2040 background: #f9f9f9;
2041 border: 1px solid #e5e5e5;
2042 max-width: 280px;
2043 }
2044
2045 .mxch-message-bubble .mxchat-product-card a.mxchat-product-link {
2046 text-decoration: none;
2047 color: inherit;
2048 display: flex;
2049 flex-direction: column;
2050 align-items: center;
2051 }
2052
2053 .mxch-message-bubble .mxchat-product-card img.mxchat-product-image {
2054 max-width: 100%;
2055 height: auto;
2056 max-height: 180px;
2057 object-fit: contain;
2058 margin-bottom: 8px;
2059 border-radius: 6px;
2060 }
2061
2062 .mxch-message-bubble .mxchat-product-card h3.mxchat-product-name {
2063 font-size: 14px;
2064 font-weight: 600;
2065 margin: 4px 0;
2066 text-align: center;
2067 color: #1a1a1a;
2068 }
2069
2070 .mxch-message-bubble .mxchat-product-card .mxchat-product-price {
2071 color: #2e7d32;
2072 font-weight: 600;
2073 font-size: 15px;
2074 margin: 4px 0 8px;
2075 }
2076
2077 .mxch-message-bubble .mxchat-product-card .mxchat-add-to-cart-button {
2078 background-color: #212121;
2079 color: #fff;
2080 padding: 7px 16px;
2081 border: none;
2082 border-radius: 6px;
2083 font-size: 13px;
2084 cursor: default;
2085 opacity: 0.6;
2086 }
2087
2088 .mxch-message-bubble .mxchat-product-card select {
2089 width: 100%;
2090 padding: 6px 8px;
2091 margin: 4px 0;
2092 border: 1px solid #ddd;
2093 border-radius: 4px;
2094 font-size: 13px;
2095 }
2096
2097 /* Featured Products in Transcripts */
2098 .mxch-message-bubble .mxchat-featured-products {
2099 margin: 8px 0;
2100 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2101 line-height: 1.4;
2102 display: flex;
2103 flex-direction: column;
2104 gap: 0;
2105 padding: 0;
2106 }
2107
2108 .mxch-message-bubble .mxchat-featured-item {
2109 padding: 10px 0;
2110 border-bottom: 1px solid #e5e5e5;
2111 margin: 0;
2112 }
2113
2114 .mxch-message-bubble .mxchat-featured-item:last-child {
2115 border-bottom: none;
2116 padding-bottom: 0;
2117 }
2118
2119 .mxch-message-bubble .mxchat-featured-item:first-child {
2120 padding-top: 0;
2121 }
2122
2123 .mxch-message-bubble .mxchat-featured-item-top {
2124 display: flex;
2125 flex-direction: row;
2126 align-items: center;
2127 gap: 12px;
2128 margin-bottom: 8px;
2129 }
2130
2131 .mxch-message-bubble .mxchat-featured-item-image {
2132 flex-shrink: 0;
2133 width: 70px;
2134 height: 70px;
2135 overflow: hidden;
2136 border-radius: 8px;
2137 background: #f1f1f1;
2138 }
2139
2140 .mxch-message-bubble .mxchat-featured-item-image a {
2141 display: block;
2142 width: 70px;
2143 height: 70px;
2144 text-decoration: none;
2145 }
2146
2147 .mxch-message-bubble .mxchat-featured-item-image img {
2148 width: 70px;
2149 height: 70px;
2150 object-fit: cover;
2151 border-radius: 8px;
2152 display: block;
2153 }
2154
2155 .mxch-message-bubble .mxchat-featured-item-info {
2156 flex: 1;
2157 min-width: 0;
2158 display: flex;
2159 flex-direction: column;
2160 gap: 2px;
2161 justify-content: center;
2162 }
2163
2164 .mxch-message-bubble .mxchat-featured-item-title,
2165 .mxch-message-bubble a.mxchat-featured-item-title {
2166 font-size: 13px;
2167 font-weight: 600;
2168 color: #1a1a1a;
2169 text-decoration: none;
2170 line-height: 1.3;
2171 display: -webkit-box;
2172 -webkit-line-clamp: 2;
2173 -webkit-box-orient: vertical;
2174 overflow: hidden;
2175 margin: 0;
2176 padding: 0;
2177 }
2178
2179 .mxch-message-bubble a.mxchat-featured-item-title:hover {
2180 opacity: 0.8;
2181 }
2182
2183 .mxch-message-bubble .mxchat-featured-item-price {
2184 font-weight: 700;
2185 font-size: 13px;
2186 color: #2e7d32;
2187 margin: 0;
2188 }
2189
2190 .mxch-message-bubble .mxchat-featured-item-price del {
2191 opacity: 0.6;
2192 font-weight: 400;
2193 font-size: 0.85em;
2194 margin-right: 4px;
2195 }
2196
2197 .mxch-message-bubble .mxchat-featured-item-price ins {
2198 text-decoration: none;
2199 background: none;
2200 }
2201
2202 .mxch-message-bubble .mxchat-featured-item-actions {
2203 display: flex;
2204 flex-direction: row;
2205 gap: 8px;
2206 margin: 0;
2207 padding: 0;
2208 }
2209
2210 .mxch-message-bubble .mxchat-featured-btn-details,
2211 .mxch-message-bubble a.mxchat-featured-btn-details {
2212 display: flex;
2213 align-items: center;
2214 justify-content: center;
2215 flex: 1;
2216 padding: 7px 10px;
2217 font-size: 12px;
2218 font-weight: 500;
2219 border-radius: 6px;
2220 text-decoration: none;
2221 border: 1px solid #ddd;
2222 background: transparent;
2223 color: #1a1a1a;
2224 text-align: center;
2225 line-height: 1.2;
2226 }
2227
2228 .mxch-message-bubble .mxchat-featured-btn-cart,
2229 .mxch-message-bubble button.mxchat-featured-btn-cart {
2230 display: flex;
2231 align-items: center;
2232 justify-content: center;
2233 flex: 1;
2234 padding: 7px 10px;
2235 font-size: 12px;
2236 font-weight: 500;
2237 border-radius: 6px;
2238 border: none;
2239 background: #212121;
2240 color: #fff;
2241 cursor: default;
2242 opacity: 0.6;
2243 line-height: 1.2;
2244 }
2245
2246 /* ==========================================================================
2247 Leads Tab
2248 ========================================================================== */
2249
2250 .mxch-leads-stats {
2251 display: grid;
2252 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
2253 gap: var(--mxch-spacing-lg);
2254 margin-bottom: var(--mxch-spacing-xl);
2255 }
2256
2257 .mxch-leads-toppages {
2258 margin-bottom: var(--mxch-spacing-xl);
2259 }
2260
2261 .mxch-leads-toppages-hint {
2262 margin-left: auto;
2263 font-size: 12px;
2264 color: var(--mxch-text-muted);
2265 font-weight: 400;
2266 }
2267
2268 .mxch-leads-toppages-list {
2269 display: grid;
2270 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
2271 gap: var(--mxch-spacing-sm);
2272 }
2273
2274 .mxch-leads-toppage-row {
2275 display: flex;
2276 align-items: center;
2277 justify-content: space-between;
2278 gap: var(--mxch-spacing-sm);
2279 padding: 10px 14px;
2280 background: var(--mxch-card-bg);
2281 border: 1px solid var(--mxch-card-border);
2282 border-radius: var(--mxch-radius-md);
2283 text-align: left;
2284 cursor: pointer;
2285 transition: all var(--mxch-transition);
2286 color: var(--mxch-text-primary);
2287 font-size: 13px;
2288 }
2289
2290 .mxch-leads-toppage-row:hover {
2291 border-color: var(--mxch-primary);
2292 box-shadow: var(--mxch-card-shadow-hover);
2293 }
2294
2295 .mxch-leads-toppage-row.is-active {
2296 border-color: var(--mxch-primary);
2297 background: rgba(99, 102, 241, 0.06);
2298 }
2299
2300 .mxch-leads-toppage-title {
2301 flex: 1 1 auto;
2302 min-width: 0;
2303 overflow: hidden;
2304 text-overflow: ellipsis;
2305 white-space: nowrap;
2306 }
2307
2308 .mxch-leads-toppage-count {
2309 flex: 0 0 auto;
2310 display: inline-flex;
2311 align-items: center;
2312 justify-content: center;
2313 min-width: 28px;
2314 height: 22px;
2315 padding: 0 8px;
2316 border-radius: 999px;
2317 background: var(--mxch-primary);
2318 color: #fff;
2319 font-size: 11px;
2320 font-weight: 600;
2321 }
2322
2323 .mxch-leads-empty-mini {
2324 padding: 12px;
2325 text-align: center;
2326 color: var(--mxch-text-muted);
2327 font-size: 13px;
2328 }
2329
2330 /* Toolbar + card */
2331 .mxch-leads-card {
2332 padding: 0;
2333 overflow: hidden;
2334 }
2335
2336 .mxch-leads-toolbar {
2337 display: flex;
2338 align-items: center;
2339 justify-content: space-between;
2340 gap: var(--mxch-spacing-md);
2341 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2342 border-bottom: 1px solid var(--mxch-card-border);
2343 flex-wrap: wrap;
2344 }
2345
2346 .mxch-leads-toolbar-left,
2347 .mxch-leads-toolbar-right {
2348 display: flex;
2349 align-items: center;
2350 gap: var(--mxch-spacing-sm);
2351 }
2352
2353 .mxch-leads-export {
2354 position: relative;
2355 }
2356
2357 .mxch-leads-export-menu {
2358 position: absolute;
2359 right: 0;
2360 top: calc(100% + 6px);
2361 min-width: 240px;
2362 background: var(--mxch-card-bg);
2363 border: 1px solid var(--mxch-card-border);
2364 border-radius: var(--mxch-radius-md);
2365 box-shadow: var(--mxch-card-shadow-hover);
2366 padding: 4px;
2367 z-index: 20;
2368 display: none;
2369 }
2370
2371 .mxch-leads-export-menu.is-open { display: block; }
2372
2373 .mxch-leads-export-menu button {
2374 display: block;
2375 width: 100%;
2376 padding: 8px 12px;
2377 background: transparent;
2378 border: none;
2379 border-radius: 6px;
2380 text-align: left;
2381 color: var(--mxch-text-primary);
2382 font-size: 13px;
2383 cursor: pointer;
2384 }
2385
2386 .mxch-leads-export-menu button:hover:not(:disabled) {
2387 background: rgba(99, 102, 241, 0.08);
2388 }
2389
2390 .mxch-leads-export-menu button:disabled {
2391 color: var(--mxch-text-muted);
2392 cursor: not-allowed;
2393 }
2394
2395 /* Filters row */
2396 .mxch-leads-filters {
2397 display: flex;
2398 align-items: center;
2399 gap: var(--mxch-spacing-sm);
2400 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2401 border-bottom: 1px solid var(--mxch-card-border);
2402 flex-wrap: wrap;
2403 }
2404
2405 .mxch-leads-filters .mxch-search-wrapper {
2406 flex: 1 1 260px;
2407 min-width: 180px;
2408 }
2409
2410 .mxch-leads-filters .mxch-select {
2411 height: 36px;
2412 min-width: 160px;
2413 }
2414
2415 .mxch-leads-active-page-filter {
2416 display: inline-flex;
2417 align-items: center;
2418 gap: 6px;
2419 padding: 4px 6px 4px 10px;
2420 background: rgba(99, 102, 241, 0.08);
2421 border: 1px solid rgba(99, 102, 241, 0.28);
2422 border-radius: 999px;
2423 font-size: 12px;
2424 color: var(--mxch-text-primary);
2425 max-width: 280px;
2426 }
2427
2428 .mxch-leads-page-chip-label {
2429 overflow: hidden;
2430 text-overflow: ellipsis;
2431 white-space: nowrap;
2432 }
2433
2434 .mxch-leads-page-chip-remove {
2435 border: none;
2436 background: transparent;
2437 font-size: 16px;
2438 line-height: 1;
2439 cursor: pointer;
2440 padding: 0 4px;
2441 color: var(--mxch-text-muted);
2442 }
2443
2444 .mxch-leads-page-chip-remove:hover {
2445 color: var(--mxch-text-primary);
2446 }
2447
2448 /* Table */
2449 .mxch-leads-table-wrap {
2450 overflow-x: auto;
2451 }
2452
2453 .mxch-leads-table {
2454 width: 100%;
2455 border-collapse: separate;
2456 border-spacing: 0;
2457 font-size: 13px;
2458 }
2459
2460 .mxch-leads-table thead th {
2461 padding: 10px 14px;
2462 text-align: left;
2463 background: var(--mxch-card-bg);
2464 border-bottom: 1px solid var(--mxch-card-border);
2465 color: var(--mxch-text-secondary);
2466 font-weight: 600;
2467 font-size: 11px;
2468 text-transform: uppercase;
2469 letter-spacing: 0.04em;
2470 position: sticky;
2471 top: 0;
2472 }
2473
2474 .mxch-leads-table tbody td {
2475 padding: 12px 14px;
2476 border-bottom: 1px solid var(--mxch-card-border);
2477 vertical-align: middle;
2478 color: var(--mxch-text-primary);
2479 }
2480
2481 .mxch-leads-table tbody tr:last-child td {
2482 border-bottom: none;
2483 }
2484
2485 .mxch-leads-table tbody tr:hover {
2486 background: rgba(99, 102, 241, 0.04);
2487 }
2488
2489 .mxch-leads-row.is-orphan .mxch-leads-lead-email {
2490 font-style: italic;
2491 color: var(--mxch-text-secondary);
2492 }
2493
2494 .mxch-leads-table { table-layout: fixed; }
2495
2496 .mxch-leads-col-check { width: 40px; }
2497 .mxch-leads-col-lead { width: auto; min-width: 280px; }
2498 .mxch-leads-col-count { width: 130px; text-align: left; }
2499 .mxch-leads-col-last { width: 110px; white-space: nowrap; }
2500 .mxch-leads-col-page { width: 180px; max-width: 180px; }
2501 .mxch-leads-col-actions { width: 170px; white-space: nowrap; text-align: right; }
2502
2503 .mxch-leads-lead-cell {
2504 display: flex;
2505 flex-direction: column;
2506 min-width: 0;
2507 gap: 2px;
2508 }
2509
2510 .mxch-leads-lead-email {
2511 font-weight: 500;
2512 color: var(--mxch-text-primary);
2513 overflow: hidden;
2514 text-overflow: ellipsis;
2515 white-space: nowrap;
2516 }
2517
2518 .mxch-leads-lead-name {
2519 font-size: 11px;
2520 color: var(--mxch-text-muted);
2521 overflow: hidden;
2522 text-overflow: ellipsis;
2523 white-space: nowrap;
2524 }
2525
2526 .mxch-leads-muted { color: var(--mxch-text-muted); }
2527
2528 .mxch-leads-pill {
2529 display: inline-flex;
2530 align-items: center;
2531 justify-content: center;
2532 min-width: 28px;
2533 height: 22px;
2534 padding: 0 8px;
2535 border-radius: 999px;
2536 background: rgba(99, 102, 241, 0.12);
2537 color: var(--mxch-primary);
2538 font-weight: 600;
2539 font-size: 11px;
2540 }
2541
2542 .mxch-leads-pill-orphan {
2543 background: rgba(245, 158, 11, 0.14);
2544 color: var(--mxch-warning);
2545 }
2546
2547 .mxch-leads-pill-deleted {
2548 background: rgba(100, 116, 139, 0.12);
2549 color: var(--mxch-text-secondary);
2550 border: 1px solid rgba(100, 116, 139, 0.22);
2551 padding: 0 10px;
2552 }
2553
2554 .mxch-leads-row.is-chat-deleted .mxch-leads-lead-email {
2555 color: var(--mxch-text-secondary);
2556 }
2557
2558 .mxch-transcript-confirm-check {
2559 display: flex;
2560 gap: 10px;
2561 align-items: flex-start;
2562 padding: 10px 12px;
2563 margin: 12px 0 4px;
2564 background: rgba(99, 102, 241, 0.04);
2565 border: 1px solid var(--mxch-card-border);
2566 border-radius: var(--mxch-radius-md);
2567 cursor: pointer;
2568 }
2569
2570 .mxch-transcript-confirm-check input[type="checkbox"] {
2571 margin-top: 3px;
2572 flex: 0 0 auto;
2573 }
2574
2575 .mxch-transcript-confirm-check strong {
2576 display: block;
2577 color: var(--mxch-text-primary);
2578 font-weight: 600;
2579 font-size: 13px;
2580 }
2581
2582 .mxch-transcript-confirm-sublabel {
2583 display: block;
2584 margin-top: 2px;
2585 font-size: 12px;
2586 color: var(--mxch-text-muted);
2587 font-style: normal;
2588 }
2589
2590 .mxch-leads-page-link {
2591 display: inline-block;
2592 max-width: 100%;
2593 overflow: hidden;
2594 text-overflow: ellipsis;
2595 white-space: nowrap;
2596 vertical-align: middle;
2597 color: var(--mxch-primary);
2598 text-decoration: none;
2599 }
2600
2601 .mxch-leads-page-link:hover { text-decoration: underline; }
2602
2603 .mxch-leads-col-actions .mxch-btn {
2604 margin-left: 6px;
2605 }
2606
2607 .mxch-btn-danger-ghost {
2608 color: #b91c1c;
2609 }
2610
2611 .mxch-btn-danger-ghost:hover {
2612 background: rgba(185, 28, 28, 0.08);
2613 color: #991b1b;
2614 }
2615
2616 .mxch-leads-empty,
2617 .mxch-leads-loading {
2618 padding: 40px 16px;
2619 text-align: center;
2620 color: var(--mxch-text-muted);
2621 }
2622
2623 .mxch-leads-empty-wrap {
2624 display: flex;
2625 flex-direction: column;
2626 align-items: center;
2627 gap: var(--mxch-spacing-sm);
2628 color: var(--mxch-text-muted);
2629 }
2630
2631 .mxch-leads-empty-wrap svg { opacity: 0.6; }
2632
2633 .mxch-leads-count {
2634 font-size: 12px;
2635 color: var(--mxch-text-muted);
2636 }
2637
2638 /* Confirm modal */
2639 .mxch-leads-confirm-box {
2640 max-width: 440px;
2641 }
2642
2643 .mxch-leads-confirm-warning {
2644 color: var(--mxch-text-muted);
2645 font-size: 12px;
2646 margin-top: 8px;
2647 }
2648
2649 .mxch-leads-confirm-actions {
2650 display: flex;
2651 justify-content: flex-end;
2652 gap: 8px;
2653 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2654 border-top: 1px solid var(--mxch-card-border);
2655 }
2656
2657 /* Responsive: tablet */
2658 @media (max-width: 1024px) {
2659 .mxch-leads-col-page { width: 140px; max-width: 140px; }
2660 .mxch-leads-col-actions { width: 140px; }
2661 .mxch-leads-col-actions .mxch-leads-view span { display: none; }
2662 }
2663
2664 /* Responsive: phone */
2665 @media (max-width: 768px) {
2666 .mxch-leads-col-page,
2667 .mxch-leads-col-last {
2668 display: none;
2669 }
2670 .mxch-leads-filters {
2671 padding: var(--mxch-spacing-sm);
2672 }
2673 .mxch-leads-filters .mxch-select {
2674 flex: 1 1 48%;
2675 min-width: 0;
2676 }
2677 .mxch-leads-toolbar {
2678 padding: var(--mxch-spacing-sm);
2679 }
2680 .mxch-leads-table thead th { padding: 8px 10px; font-size: 10px; }
2681 .mxch-leads-table tbody td { padding: 10px; font-size: 12px; }
2682 }
2683
2684 @media (max-width: 480px) {
2685 .mxch-leads-col-count { display: none; }
2686 .mxch-leads-toppages-list { grid-template-columns: 1fr; }
2687 }
2688
2689 /* Satisfaction card on Transcripts dashboard (plan-a5b006). */
2690 .mxch-satisfaction-card .mxch-card-body {
2691 padding: var(--mxch-spacing-md);
2692 }
2693 .mxch-satisfaction-empty {
2694 margin: 0;
2695 padding: var(--mxch-spacing-sm) 0;
2696 color: #6b7280;
2697 font-size: 13px;
2698 line-height: 1.5;
2699 }
2700 .mxch-satisfaction-list {
2701 list-style: none;
2702 margin: 0;
2703 padding: 0;
2704 display: flex;
2705 flex-direction: column;
2706 gap: 8px;
2707 }
2708 .mxch-satisfaction-row {
2709 display: flex;
2710 align-items: center;
2711 gap: var(--mxch-spacing-md);
2712 padding: 10px 12px;
2713 background: #f9fafb;
2714 border: 1px solid #f3f4f6;
2715 border-radius: var(--mxch-radius-md, 8px);
2716 }
2717 .mxch-satisfaction-bot {
2718 flex: 0 0 28%;
2719 min-width: 0;
2720 font-weight: 600;
2721 font-size: 13px;
2722 color: #1a1a2e;
2723 overflow: hidden;
2724 text-overflow: ellipsis;
2725 white-space: nowrap;
2726 }
2727 .mxch-satisfaction-meta {
2728 flex: 1;
2729 display: flex;
2730 align-items: center;
2731 gap: 10px;
2732 font-size: 12px;
2733 color: #4b5563;
2734 flex-wrap: wrap;
2735 }
2736 .mxch-satisfaction-total {
2737 color: #6b7280;
2738 white-space: nowrap;
2739 }
2740 .mxch-satisfaction-bar {
2741 flex: 1;
2742 min-width: 80px;
2743 height: 6px;
2744 background: #e5e7eb;
2745 border-radius: 999px;
2746 overflow: hidden;
2747 display: flex;
2748 }
2749 .mxch-satisfaction-bar-up {
2750 background: #10b981;
2751 height: 100%;
2752 }
2753 .mxch-satisfaction-bar-down {
2754 background: #ef4444;
2755 height: 100%;
2756 }
2757 .mxch-satisfaction-pct {
2758 display: inline-flex;
2759 align-items: center;
2760 gap: 4px;
2761 font-weight: 600;
2762 white-space: nowrap;
2763 }
2764 .mxch-satisfaction-pct-up { color: #047857; }
2765 .mxch-satisfaction-pct-down { color: #b91c1c; }
2766 @media (max-width: 600px) {
2767 .mxch-satisfaction-row { flex-direction: column; align-items: flex-start; gap: 8px; }
2768 .mxch-satisfaction-bot { flex: 1 1 100%; }
2769 .mxch-satisfaction-meta { width: 100%; }
2770 }
2771
2772 /* Details drawer — Feedback row value (user-submitted rating feedback). */
2773 .mxch-detail-feedback-value {
2774 white-space: pre-wrap;
2775 word-break: break-word;
2776 max-width: 100%;
2777 display: block;
2778 margin-top: 4px;
2779 opacity: 0.9;
2780 font-style: italic;
2781 }
2782