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

2,806 lines 60.2 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 /* Hybrid retrieval matched-via chips (38ffa1): Vector / Keyword / Both */
1745 .mxch-rag-via-chip {
1746 font-size: 11px;
1747 font-weight: 500;
1748 padding: 2px 8px;
1749 border-radius: 10px;
1750 white-space: nowrap;
1751 }
1752
1753 .mxch-rag-via-vector {
1754 background: rgba(120, 115, 245, 0.1);
1755 color: var(--mxch-primary);
1756 }
1757
1758 .mxch-rag-via-keyword {
1759 background: rgba(16, 185, 129, 0.12);
1760 color: #059669;
1761 }
1762
1763 .mxch-rag-via-both {
1764 background: rgba(245, 158, 11, 0.12);
1765 color: #b45309;
1766 }
1767
1768 .mxch-rag-match-status {
1769 margin-left: auto;
1770 font-size: 12px;
1771 font-weight: 500;
1772 }
1773
1774 .mxch-rag-match-status.status-used {
1775 color: var(--mxch-success);
1776 }
1777
1778 .mxch-rag-match-status.status-below {
1779 color: var(--mxch-text-muted);
1780 }
1781
1782 .mxch-rag-match-source {
1783 font-size: 13px;
1784 color: var(--mxch-text-secondary);
1785 word-break: break-all;
1786 }
1787
1788 .mxch-rag-match-source a {
1789 color: var(--mxch-primary);
1790 text-decoration: none;
1791 }
1792
1793 .mxch-rag-match-source a:hover {
1794 text-decoration: underline;
1795 }
1796
1797 /* Context Modal Tabs */
1798 .mxch-context-tabs {
1799 display: flex;
1800 gap: 4px;
1801 padding: 4px;
1802 background: #f1f5f9;
1803 border-radius: var(--mxch-radius-md);
1804 margin-bottom: var(--mxch-spacing-md);
1805 }
1806
1807 .mxch-context-tab {
1808 flex: 1;
1809 display: flex;
1810 align-items: center;
1811 justify-content: center;
1812 gap: 8px;
1813 padding: 10px 16px;
1814 border: none;
1815 background: transparent;
1816 border-radius: var(--mxch-radius-sm);
1817 font-size: 13px;
1818 font-weight: 500;
1819 color: var(--mxch-text-secondary);
1820 cursor: pointer;
1821 transition: all var(--mxch-transition-fast);
1822 }
1823
1824 .mxch-context-tab:hover {
1825 color: var(--mxch-text-primary);
1826 background: rgba(255, 255, 255, 0.5);
1827 }
1828
1829 .mxch-context-tab.active {
1830 background: white;
1831 color: var(--mxch-primary);
1832 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1833 }
1834
1835 .mxch-context-tab svg {
1836 width: 16px;
1837 height: 16px;
1838 flex-shrink: 0;
1839 }
1840
1841 .mxch-tab-badge {
1842 display: inline-flex;
1843 align-items: center;
1844 justify-content: center;
1845 min-width: 20px;
1846 height: 20px;
1847 padding: 0 6px;
1848 background: rgba(120, 115, 245, 0.1);
1849 color: var(--mxch-primary);
1850 font-size: 11px;
1851 font-weight: 600;
1852 border-radius: 10px;
1853 }
1854
1855 .mxch-context-tab.active .mxch-tab-badge {
1856 background: var(--mxch-primary);
1857 color: white;
1858 }
1859
1860 .mxch-tab-content {
1861 min-height: 200px;
1862 }
1863
1864 /* Action Specific Styles */
1865 .mxch-action-triggered {
1866 border-color: rgba(245, 158, 11, 0.4);
1867 background: rgba(245, 158, 11, 0.08);
1868 }
1869
1870 .mxch-action-threshold-badge {
1871 font-size: 11px;
1872 padding: 2px 8px;
1873 background: rgba(100, 116, 139, 0.1);
1874 color: var(--mxch-text-secondary);
1875 border-radius: 10px;
1876 }
1877
1878 .mxch-rag-match-status.status-triggered {
1879 color: #f59e0b;
1880 font-weight: 600;
1881 }
1882
1883 .mxch-action-details {
1884 margin-top: var(--mxch-spacing-sm);
1885 }
1886
1887 .mxch-action-label {
1888 font-size: 14px;
1889 font-weight: 600;
1890 color: var(--mxch-text-primary);
1891 margin-bottom: 4px;
1892 }
1893
1894 .mxch-action-callback {
1895 font-size: 12px;
1896 color: var(--mxch-text-muted);
1897 font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1898 }
1899
1900 .mxch-action-callback-label {
1901 color: var(--mxch-text-secondary);
1902 font-family: inherit;
1903 }
1904
1905 /* Action Score Bar Visualization */
1906 .mxch-action-score-bar {
1907 position: relative;
1908 height: 6px;
1909 background: #e2e8f0;
1910 border-radius: 3px;
1911 margin-top: var(--mxch-spacing-sm);
1912 overflow: visible;
1913 }
1914
1915 .mxch-action-score-fill {
1916 position: absolute;
1917 left: 0;
1918 top: 0;
1919 height: 100%;
1920 background: linear-gradient(90deg, #7873f5, #a5a1fa);
1921 border-radius: 3px;
1922 transition: width 0.3s ease;
1923 }
1924
1925 .mxch-action-triggered .mxch-action-score-fill {
1926 background: linear-gradient(90deg, #f59e0b, #fbbf24);
1927 }
1928
1929 .mxch-action-threshold-marker {
1930 position: absolute;
1931 top: -4px;
1932 width: 2px;
1933 height: 14px;
1934 background: #ef4444;
1935 border-radius: 1px;
1936 transform: translateX(-50%);
1937 }
1938
1939 .mxch-action-threshold-marker::after {
1940 content: '';
1941 position: absolute;
1942 top: -3px;
1943 left: 50%;
1944 transform: translateX(-50%);
1945 width: 0;
1946 height: 0;
1947 border-left: 4px solid transparent;
1948 border-right: 4px solid transparent;
1949 border-top: 4px solid #ef4444;
1950 }
1951
1952 /* No Results State */
1953 .mxch-no-results {
1954 text-align: center;
1955 padding: var(--mxch-spacing-xl);
1956 color: var(--mxch-text-secondary);
1957 }
1958
1959 .mxch-no-results p {
1960 margin: 0;
1961 }
1962
1963 /* ==========================================================================
1964 Responsive Adjustments
1965 ========================================================================== */
1966 @media screen and (max-width: 768px) {
1967 .mxch-stats-grid {
1968 grid-template-columns: repeat(2, 1fr);
1969 }
1970
1971 .mxch-stat-card {
1972 padding: var(--mxch-spacing-md);
1973 }
1974
1975 .mxch-stat-value {
1976 font-size: 22px;
1977 }
1978
1979 .mxch-cards-row {
1980 grid-template-columns: 1fr;
1981 }
1982
1983 .mxch-transcripts-controls {
1984 flex-direction: column;
1985 align-items: stretch;
1986 }
1987
1988 .mxch-search-wrapper {
1989 max-width: none;
1990 }
1991
1992 .mxch-controls-actions {
1993 justify-content: flex-end;
1994 }
1995
1996 .mxch-session-header {
1997 flex-direction: column;
1998 gap: var(--mxch-spacing-sm);
1999 }
2000
2001 .mxch-session-actions {
2002 opacity: 1;
2003 align-self: flex-end;
2004 }
2005
2006 .mxch-pagination {
2007 flex-direction: column;
2008 gap: var(--mxch-spacing-md);
2009 align-items: flex-start;
2010 }
2011
2012 .mxch-quick-actions {
2013 flex-direction: column;
2014 }
2015
2016 .mxch-quick-action-btn {
2017 width: 100%;
2018 justify-content: center;
2019 }
2020
2021 /* Chart responsive */
2022 .mxch-activity-chart-card .mxch-card-header {
2023 flex-direction: column;
2024 align-items: flex-start;
2025 }
2026
2027 .mxch-chart-legend {
2028 margin-top: var(--mxch-spacing-xs);
2029 }
2030
2031 #mxchat-activity-chart {
2032 height: 220px !important;
2033 }
2034 }
2035
2036 @media screen and (max-width: 480px) {
2037 .mxch-stats-grid {
2038 grid-template-columns: 1fr;
2039 }
2040
2041 .mxch-controls-actions {
2042 flex-direction: column;
2043 width: 100%;
2044 }
2045
2046 .mxch-controls-actions .mxch-btn {
2047 width: 100%;
2048 justify-content: center;
2049 }
2050
2051 .mxch-controls-actions form {
2052 width: 100%;
2053 }
2054 }
2055
2056 /* Product Card in Transcripts */
2057 .mxch-message-bubble .mxchat-product-card {
2058 display: flex;
2059 flex-direction: column;
2060 align-items: center;
2061 margin: 8px 0;
2062 padding: 12px;
2063 border-radius: 8px;
2064 background: #f9f9f9;
2065 border: 1px solid #e5e5e5;
2066 max-width: 280px;
2067 }
2068
2069 .mxch-message-bubble .mxchat-product-card a.mxchat-product-link {
2070 text-decoration: none;
2071 color: inherit;
2072 display: flex;
2073 flex-direction: column;
2074 align-items: center;
2075 }
2076
2077 .mxch-message-bubble .mxchat-product-card img.mxchat-product-image {
2078 max-width: 100%;
2079 height: auto;
2080 max-height: 180px;
2081 object-fit: contain;
2082 margin-bottom: 8px;
2083 border-radius: 6px;
2084 }
2085
2086 .mxch-message-bubble .mxchat-product-card h3.mxchat-product-name {
2087 font-size: 14px;
2088 font-weight: 600;
2089 margin: 4px 0;
2090 text-align: center;
2091 color: #1a1a1a;
2092 }
2093
2094 .mxch-message-bubble .mxchat-product-card .mxchat-product-price {
2095 color: #2e7d32;
2096 font-weight: 600;
2097 font-size: 15px;
2098 margin: 4px 0 8px;
2099 }
2100
2101 .mxch-message-bubble .mxchat-product-card .mxchat-add-to-cart-button {
2102 background-color: #212121;
2103 color: #fff;
2104 padding: 7px 16px;
2105 border: none;
2106 border-radius: 6px;
2107 font-size: 13px;
2108 cursor: default;
2109 opacity: 0.6;
2110 }
2111
2112 .mxch-message-bubble .mxchat-product-card select {
2113 width: 100%;
2114 padding: 6px 8px;
2115 margin: 4px 0;
2116 border: 1px solid #ddd;
2117 border-radius: 4px;
2118 font-size: 13px;
2119 }
2120
2121 /* Featured Products in Transcripts */
2122 .mxch-message-bubble .mxchat-featured-products {
2123 margin: 8px 0;
2124 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2125 line-height: 1.4;
2126 display: flex;
2127 flex-direction: column;
2128 gap: 0;
2129 padding: 0;
2130 }
2131
2132 .mxch-message-bubble .mxchat-featured-item {
2133 padding: 10px 0;
2134 border-bottom: 1px solid #e5e5e5;
2135 margin: 0;
2136 }
2137
2138 .mxch-message-bubble .mxchat-featured-item:last-child {
2139 border-bottom: none;
2140 padding-bottom: 0;
2141 }
2142
2143 .mxch-message-bubble .mxchat-featured-item:first-child {
2144 padding-top: 0;
2145 }
2146
2147 .mxch-message-bubble .mxchat-featured-item-top {
2148 display: flex;
2149 flex-direction: row;
2150 align-items: center;
2151 gap: 12px;
2152 margin-bottom: 8px;
2153 }
2154
2155 .mxch-message-bubble .mxchat-featured-item-image {
2156 flex-shrink: 0;
2157 width: 70px;
2158 height: 70px;
2159 overflow: hidden;
2160 border-radius: 8px;
2161 background: #f1f1f1;
2162 }
2163
2164 .mxch-message-bubble .mxchat-featured-item-image a {
2165 display: block;
2166 width: 70px;
2167 height: 70px;
2168 text-decoration: none;
2169 }
2170
2171 .mxch-message-bubble .mxchat-featured-item-image img {
2172 width: 70px;
2173 height: 70px;
2174 object-fit: cover;
2175 border-radius: 8px;
2176 display: block;
2177 }
2178
2179 .mxch-message-bubble .mxchat-featured-item-info {
2180 flex: 1;
2181 min-width: 0;
2182 display: flex;
2183 flex-direction: column;
2184 gap: 2px;
2185 justify-content: center;
2186 }
2187
2188 .mxch-message-bubble .mxchat-featured-item-title,
2189 .mxch-message-bubble a.mxchat-featured-item-title {
2190 font-size: 13px;
2191 font-weight: 600;
2192 color: #1a1a1a;
2193 text-decoration: none;
2194 line-height: 1.3;
2195 display: -webkit-box;
2196 -webkit-line-clamp: 2;
2197 -webkit-box-orient: vertical;
2198 overflow: hidden;
2199 margin: 0;
2200 padding: 0;
2201 }
2202
2203 .mxch-message-bubble a.mxchat-featured-item-title:hover {
2204 opacity: 0.8;
2205 }
2206
2207 .mxch-message-bubble .mxchat-featured-item-price {
2208 font-weight: 700;
2209 font-size: 13px;
2210 color: #2e7d32;
2211 margin: 0;
2212 }
2213
2214 .mxch-message-bubble .mxchat-featured-item-price del {
2215 opacity: 0.6;
2216 font-weight: 400;
2217 font-size: 0.85em;
2218 margin-right: 4px;
2219 }
2220
2221 .mxch-message-bubble .mxchat-featured-item-price ins {
2222 text-decoration: none;
2223 background: none;
2224 }
2225
2226 .mxch-message-bubble .mxchat-featured-item-actions {
2227 display: flex;
2228 flex-direction: row;
2229 gap: 8px;
2230 margin: 0;
2231 padding: 0;
2232 }
2233
2234 .mxch-message-bubble .mxchat-featured-btn-details,
2235 .mxch-message-bubble a.mxchat-featured-btn-details {
2236 display: flex;
2237 align-items: center;
2238 justify-content: center;
2239 flex: 1;
2240 padding: 7px 10px;
2241 font-size: 12px;
2242 font-weight: 500;
2243 border-radius: 6px;
2244 text-decoration: none;
2245 border: 1px solid #ddd;
2246 background: transparent;
2247 color: #1a1a1a;
2248 text-align: center;
2249 line-height: 1.2;
2250 }
2251
2252 .mxch-message-bubble .mxchat-featured-btn-cart,
2253 .mxch-message-bubble button.mxchat-featured-btn-cart {
2254 display: flex;
2255 align-items: center;
2256 justify-content: center;
2257 flex: 1;
2258 padding: 7px 10px;
2259 font-size: 12px;
2260 font-weight: 500;
2261 border-radius: 6px;
2262 border: none;
2263 background: #212121;
2264 color: #fff;
2265 cursor: default;
2266 opacity: 0.6;
2267 line-height: 1.2;
2268 }
2269
2270 /* ==========================================================================
2271 Leads Tab
2272 ========================================================================== */
2273
2274 .mxch-leads-stats {
2275 display: grid;
2276 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
2277 gap: var(--mxch-spacing-lg);
2278 margin-bottom: var(--mxch-spacing-xl);
2279 }
2280
2281 .mxch-leads-toppages {
2282 margin-bottom: var(--mxch-spacing-xl);
2283 }
2284
2285 .mxch-leads-toppages-hint {
2286 margin-left: auto;
2287 font-size: 12px;
2288 color: var(--mxch-text-muted);
2289 font-weight: 400;
2290 }
2291
2292 .mxch-leads-toppages-list {
2293 display: grid;
2294 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
2295 gap: var(--mxch-spacing-sm);
2296 }
2297
2298 .mxch-leads-toppage-row {
2299 display: flex;
2300 align-items: center;
2301 justify-content: space-between;
2302 gap: var(--mxch-spacing-sm);
2303 padding: 10px 14px;
2304 background: var(--mxch-card-bg);
2305 border: 1px solid var(--mxch-card-border);
2306 border-radius: var(--mxch-radius-md);
2307 text-align: left;
2308 cursor: pointer;
2309 transition: all var(--mxch-transition);
2310 color: var(--mxch-text-primary);
2311 font-size: 13px;
2312 }
2313
2314 .mxch-leads-toppage-row:hover {
2315 border-color: var(--mxch-primary);
2316 box-shadow: var(--mxch-card-shadow-hover);
2317 }
2318
2319 .mxch-leads-toppage-row.is-active {
2320 border-color: var(--mxch-primary);
2321 background: rgba(99, 102, 241, 0.06);
2322 }
2323
2324 .mxch-leads-toppage-title {
2325 flex: 1 1 auto;
2326 min-width: 0;
2327 overflow: hidden;
2328 text-overflow: ellipsis;
2329 white-space: nowrap;
2330 }
2331
2332 .mxch-leads-toppage-count {
2333 flex: 0 0 auto;
2334 display: inline-flex;
2335 align-items: center;
2336 justify-content: center;
2337 min-width: 28px;
2338 height: 22px;
2339 padding: 0 8px;
2340 border-radius: 999px;
2341 background: var(--mxch-primary);
2342 color: #fff;
2343 font-size: 11px;
2344 font-weight: 600;
2345 }
2346
2347 .mxch-leads-empty-mini {
2348 padding: 12px;
2349 text-align: center;
2350 color: var(--mxch-text-muted);
2351 font-size: 13px;
2352 }
2353
2354 /* Toolbar + card */
2355 .mxch-leads-card {
2356 padding: 0;
2357 overflow: hidden;
2358 }
2359
2360 .mxch-leads-toolbar {
2361 display: flex;
2362 align-items: center;
2363 justify-content: space-between;
2364 gap: var(--mxch-spacing-md);
2365 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2366 border-bottom: 1px solid var(--mxch-card-border);
2367 flex-wrap: wrap;
2368 }
2369
2370 .mxch-leads-toolbar-left,
2371 .mxch-leads-toolbar-right {
2372 display: flex;
2373 align-items: center;
2374 gap: var(--mxch-spacing-sm);
2375 }
2376
2377 .mxch-leads-export {
2378 position: relative;
2379 }
2380
2381 .mxch-leads-export-menu {
2382 position: absolute;
2383 right: 0;
2384 top: calc(100% + 6px);
2385 min-width: 240px;
2386 background: var(--mxch-card-bg);
2387 border: 1px solid var(--mxch-card-border);
2388 border-radius: var(--mxch-radius-md);
2389 box-shadow: var(--mxch-card-shadow-hover);
2390 padding: 4px;
2391 z-index: 20;
2392 display: none;
2393 }
2394
2395 .mxch-leads-export-menu.is-open { display: block; }
2396
2397 .mxch-leads-export-menu button {
2398 display: block;
2399 width: 100%;
2400 padding: 8px 12px;
2401 background: transparent;
2402 border: none;
2403 border-radius: 6px;
2404 text-align: left;
2405 color: var(--mxch-text-primary);
2406 font-size: 13px;
2407 cursor: pointer;
2408 }
2409
2410 .mxch-leads-export-menu button:hover:not(:disabled) {
2411 background: rgba(99, 102, 241, 0.08);
2412 }
2413
2414 .mxch-leads-export-menu button:disabled {
2415 color: var(--mxch-text-muted);
2416 cursor: not-allowed;
2417 }
2418
2419 /* Filters row */
2420 .mxch-leads-filters {
2421 display: flex;
2422 align-items: center;
2423 gap: var(--mxch-spacing-sm);
2424 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2425 border-bottom: 1px solid var(--mxch-card-border);
2426 flex-wrap: wrap;
2427 }
2428
2429 .mxch-leads-filters .mxch-search-wrapper {
2430 flex: 1 1 260px;
2431 min-width: 180px;
2432 }
2433
2434 .mxch-leads-filters .mxch-select {
2435 height: 36px;
2436 min-width: 160px;
2437 }
2438
2439 .mxch-leads-active-page-filter {
2440 display: inline-flex;
2441 align-items: center;
2442 gap: 6px;
2443 padding: 4px 6px 4px 10px;
2444 background: rgba(99, 102, 241, 0.08);
2445 border: 1px solid rgba(99, 102, 241, 0.28);
2446 border-radius: 999px;
2447 font-size: 12px;
2448 color: var(--mxch-text-primary);
2449 max-width: 280px;
2450 }
2451
2452 .mxch-leads-page-chip-label {
2453 overflow: hidden;
2454 text-overflow: ellipsis;
2455 white-space: nowrap;
2456 }
2457
2458 .mxch-leads-page-chip-remove {
2459 border: none;
2460 background: transparent;
2461 font-size: 16px;
2462 line-height: 1;
2463 cursor: pointer;
2464 padding: 0 4px;
2465 color: var(--mxch-text-muted);
2466 }
2467
2468 .mxch-leads-page-chip-remove:hover {
2469 color: var(--mxch-text-primary);
2470 }
2471
2472 /* Table */
2473 .mxch-leads-table-wrap {
2474 overflow-x: auto;
2475 }
2476
2477 .mxch-leads-table {
2478 width: 100%;
2479 border-collapse: separate;
2480 border-spacing: 0;
2481 font-size: 13px;
2482 }
2483
2484 .mxch-leads-table thead th {
2485 padding: 10px 14px;
2486 text-align: left;
2487 background: var(--mxch-card-bg);
2488 border-bottom: 1px solid var(--mxch-card-border);
2489 color: var(--mxch-text-secondary);
2490 font-weight: 600;
2491 font-size: 11px;
2492 text-transform: uppercase;
2493 letter-spacing: 0.04em;
2494 position: sticky;
2495 top: 0;
2496 }
2497
2498 .mxch-leads-table tbody td {
2499 padding: 12px 14px;
2500 border-bottom: 1px solid var(--mxch-card-border);
2501 vertical-align: middle;
2502 color: var(--mxch-text-primary);
2503 }
2504
2505 .mxch-leads-table tbody tr:last-child td {
2506 border-bottom: none;
2507 }
2508
2509 .mxch-leads-table tbody tr:hover {
2510 background: rgba(99, 102, 241, 0.04);
2511 }
2512
2513 .mxch-leads-row.is-orphan .mxch-leads-lead-email {
2514 font-style: italic;
2515 color: var(--mxch-text-secondary);
2516 }
2517
2518 .mxch-leads-table { table-layout: fixed; }
2519
2520 .mxch-leads-col-check { width: 40px; }
2521 .mxch-leads-col-lead { width: auto; min-width: 280px; }
2522 .mxch-leads-col-count { width: 130px; text-align: left; }
2523 .mxch-leads-col-last { width: 110px; white-space: nowrap; }
2524 .mxch-leads-col-page { width: 180px; max-width: 180px; }
2525 .mxch-leads-col-actions { width: 170px; white-space: nowrap; text-align: right; }
2526
2527 .mxch-leads-lead-cell {
2528 display: flex;
2529 flex-direction: column;
2530 min-width: 0;
2531 gap: 2px;
2532 }
2533
2534 .mxch-leads-lead-email {
2535 font-weight: 500;
2536 color: var(--mxch-text-primary);
2537 overflow: hidden;
2538 text-overflow: ellipsis;
2539 white-space: nowrap;
2540 }
2541
2542 .mxch-leads-lead-name {
2543 font-size: 11px;
2544 color: var(--mxch-text-muted);
2545 overflow: hidden;
2546 text-overflow: ellipsis;
2547 white-space: nowrap;
2548 }
2549
2550 .mxch-leads-muted { color: var(--mxch-text-muted); }
2551
2552 .mxch-leads-pill {
2553 display: inline-flex;
2554 align-items: center;
2555 justify-content: center;
2556 min-width: 28px;
2557 height: 22px;
2558 padding: 0 8px;
2559 border-radius: 999px;
2560 background: rgba(99, 102, 241, 0.12);
2561 color: var(--mxch-primary);
2562 font-weight: 600;
2563 font-size: 11px;
2564 }
2565
2566 .mxch-leads-pill-orphan {
2567 background: rgba(245, 158, 11, 0.14);
2568 color: var(--mxch-warning);
2569 }
2570
2571 .mxch-leads-pill-deleted {
2572 background: rgba(100, 116, 139, 0.12);
2573 color: var(--mxch-text-secondary);
2574 border: 1px solid rgba(100, 116, 139, 0.22);
2575 padding: 0 10px;
2576 }
2577
2578 .mxch-leads-row.is-chat-deleted .mxch-leads-lead-email {
2579 color: var(--mxch-text-secondary);
2580 }
2581
2582 .mxch-transcript-confirm-check {
2583 display: flex;
2584 gap: 10px;
2585 align-items: flex-start;
2586 padding: 10px 12px;
2587 margin: 12px 0 4px;
2588 background: rgba(99, 102, 241, 0.04);
2589 border: 1px solid var(--mxch-card-border);
2590 border-radius: var(--mxch-radius-md);
2591 cursor: pointer;
2592 }
2593
2594 .mxch-transcript-confirm-check input[type="checkbox"] {
2595 margin-top: 3px;
2596 flex: 0 0 auto;
2597 }
2598
2599 .mxch-transcript-confirm-check strong {
2600 display: block;
2601 color: var(--mxch-text-primary);
2602 font-weight: 600;
2603 font-size: 13px;
2604 }
2605
2606 .mxch-transcript-confirm-sublabel {
2607 display: block;
2608 margin-top: 2px;
2609 font-size: 12px;
2610 color: var(--mxch-text-muted);
2611 font-style: normal;
2612 }
2613
2614 .mxch-leads-page-link {
2615 display: inline-block;
2616 max-width: 100%;
2617 overflow: hidden;
2618 text-overflow: ellipsis;
2619 white-space: nowrap;
2620 vertical-align: middle;
2621 color: var(--mxch-primary);
2622 text-decoration: none;
2623 }
2624
2625 .mxch-leads-page-link:hover { text-decoration: underline; }
2626
2627 .mxch-leads-col-actions .mxch-btn {
2628 margin-left: 6px;
2629 }
2630
2631 .mxch-btn-danger-ghost {
2632 color: #b91c1c;
2633 }
2634
2635 .mxch-btn-danger-ghost:hover {
2636 background: rgba(185, 28, 28, 0.08);
2637 color: #991b1b;
2638 }
2639
2640 .mxch-leads-empty,
2641 .mxch-leads-loading {
2642 padding: 40px 16px;
2643 text-align: center;
2644 color: var(--mxch-text-muted);
2645 }
2646
2647 .mxch-leads-empty-wrap {
2648 display: flex;
2649 flex-direction: column;
2650 align-items: center;
2651 gap: var(--mxch-spacing-sm);
2652 color: var(--mxch-text-muted);
2653 }
2654
2655 .mxch-leads-empty-wrap svg { opacity: 0.6; }
2656
2657 .mxch-leads-count {
2658 font-size: 12px;
2659 color: var(--mxch-text-muted);
2660 }
2661
2662 /* Confirm modal */
2663 .mxch-leads-confirm-box {
2664 max-width: 440px;
2665 }
2666
2667 .mxch-leads-confirm-warning {
2668 color: var(--mxch-text-muted);
2669 font-size: 12px;
2670 margin-top: 8px;
2671 }
2672
2673 .mxch-leads-confirm-actions {
2674 display: flex;
2675 justify-content: flex-end;
2676 gap: 8px;
2677 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2678 border-top: 1px solid var(--mxch-card-border);
2679 }
2680
2681 /* Responsive: tablet */
2682 @media (max-width: 1024px) {
2683 .mxch-leads-col-page { width: 140px; max-width: 140px; }
2684 .mxch-leads-col-actions { width: 140px; }
2685 .mxch-leads-col-actions .mxch-leads-view span { display: none; }
2686 }
2687
2688 /* Responsive: phone */
2689 @media (max-width: 768px) {
2690 .mxch-leads-col-page,
2691 .mxch-leads-col-last {
2692 display: none;
2693 }
2694 .mxch-leads-filters {
2695 padding: var(--mxch-spacing-sm);
2696 }
2697 .mxch-leads-filters .mxch-select {
2698 flex: 1 1 48%;
2699 min-width: 0;
2700 }
2701 .mxch-leads-toolbar {
2702 padding: var(--mxch-spacing-sm);
2703 }
2704 .mxch-leads-table thead th { padding: 8px 10px; font-size: 10px; }
2705 .mxch-leads-table tbody td { padding: 10px; font-size: 12px; }
2706 }
2707
2708 @media (max-width: 480px) {
2709 .mxch-leads-col-count { display: none; }
2710 .mxch-leads-toppages-list { grid-template-columns: 1fr; }
2711 }
2712
2713 /* Satisfaction card on Transcripts dashboard (plan-a5b006). */
2714 .mxch-satisfaction-card .mxch-card-body {
2715 padding: var(--mxch-spacing-md);
2716 }
2717 .mxch-satisfaction-empty {
2718 margin: 0;
2719 padding: var(--mxch-spacing-sm) 0;
2720 color: #6b7280;
2721 font-size: 13px;
2722 line-height: 1.5;
2723 }
2724 .mxch-satisfaction-list {
2725 list-style: none;
2726 margin: 0;
2727 padding: 0;
2728 display: flex;
2729 flex-direction: column;
2730 gap: 8px;
2731 }
2732 .mxch-satisfaction-row {
2733 display: flex;
2734 align-items: center;
2735 gap: var(--mxch-spacing-md);
2736 padding: 10px 12px;
2737 background: #f9fafb;
2738 border: 1px solid #f3f4f6;
2739 border-radius: var(--mxch-radius-md, 8px);
2740 }
2741 .mxch-satisfaction-bot {
2742 flex: 0 0 28%;
2743 min-width: 0;
2744 font-weight: 600;
2745 font-size: 13px;
2746 color: #1a1a2e;
2747 overflow: hidden;
2748 text-overflow: ellipsis;
2749 white-space: nowrap;
2750 }
2751 .mxch-satisfaction-meta {
2752 flex: 1;
2753 display: flex;
2754 align-items: center;
2755 gap: 10px;
2756 font-size: 12px;
2757 color: #4b5563;
2758 flex-wrap: wrap;
2759 }
2760 .mxch-satisfaction-total {
2761 color: #6b7280;
2762 white-space: nowrap;
2763 }
2764 .mxch-satisfaction-bar {
2765 flex: 1;
2766 min-width: 80px;
2767 height: 6px;
2768 background: #e5e7eb;
2769 border-radius: 999px;
2770 overflow: hidden;
2771 display: flex;
2772 }
2773 .mxch-satisfaction-bar-up {
2774 background: #10b981;
2775 height: 100%;
2776 }
2777 .mxch-satisfaction-bar-down {
2778 background: #ef4444;
2779 height: 100%;
2780 }
2781 .mxch-satisfaction-pct {
2782 display: inline-flex;
2783 align-items: center;
2784 gap: 4px;
2785 font-weight: 600;
2786 white-space: nowrap;
2787 }
2788 .mxch-satisfaction-pct-up { color: #047857; }
2789 .mxch-satisfaction-pct-down { color: #b91c1c; }
2790 @media (max-width: 600px) {
2791 .mxch-satisfaction-row { flex-direction: column; align-items: flex-start; gap: 8px; }
2792 .mxch-satisfaction-bot { flex: 1 1 100%; }
2793 .mxch-satisfaction-meta { width: 100%; }
2794 }
2795
2796 /* Details drawer — Feedback row value (user-submitted rating feedback). */
2797 .mxch-detail-feedback-value {
2798 white-space: pre-wrap;
2799 word-break: break-word;
2800 max-width: 100%;
2801 display: block;
2802 margin-top: 4px;
2803 opacity: 0.9;
2804 font-style: italic;
2805 }
2806