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

1,939 lines 40.5 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 .mxch-list-loading,
691 .mxch-list-empty {
692 display: flex;
693 align-items: center;
694 justify-content: center;
695 padding: 40px 20px;
696 color: #9ca3af;
697 font-size: 13px;
698 }
699
700 .mxch-panel-footer {
701 padding: 8px 12px;
702 border-top: 1px solid #e5e7eb;
703 background: #f9fafb;
704 }
705
706 .mxch-pagination-btns {
707 display: flex;
708 align-items: center;
709 justify-content: center;
710 gap: 8px;
711 }
712
713 .mxch-page-btn {
714 width: 32px;
715 height: 32px;
716 border: 1px solid #e5e7eb;
717 background: #fff;
718 border-radius: 6px;
719 cursor: pointer;
720 display: flex;
721 align-items: center;
722 justify-content: center;
723 font-size: 14px;
724 color: #374151;
725 transition: all 0.15s;
726 }
727
728 .mxch-page-btn:hover {
729 background: #f3f4f6;
730 border-color: #d1d5db;
731 }
732
733 .mxch-page-info {
734 font-size: 12px;
735 color: #6b7280;
736 }
737
738 /* Expand Button */
739 .mxch-panel-expand {
740 width: 24px;
741 background: #f9fafb;
742 border: none;
743 border-left: 1px solid #e5e7eb;
744 border-right: 1px solid #e5e7eb;
745 cursor: pointer;
746 display: flex;
747 align-items: center;
748 justify-content: center;
749 color: #9ca3af;
750 transition: all 0.15s;
751 }
752
753 .mxch-panel-expand:hover {
754 background: #f3f4f6;
755 color: #374151;
756 }
757
758 /* Right Panel - Conversation View */
759 .mxch-conversation-panel {
760 flex: 1;
761 display: flex;
762 flex-direction: column;
763 background: #f9fafb;
764 min-height: 0; /* Important: allows flex child to shrink below content size */
765 overflow: hidden;
766 }
767
768 /* Empty State */
769 .mxch-conversation-empty {
770 flex: 1;
771 display: flex;
772 flex-direction: column;
773 align-items: center;
774 justify-content: center;
775 color: #9ca3af;
776 text-align: center;
777 padding: 40px;
778 }
779
780 .mxch-empty-icon {
781 margin-bottom: 16px;
782 opacity: 0.5;
783 }
784
785 .mxch-conversation-empty h3 {
786 font-size: 16px;
787 font-weight: 600;
788 color: #6b7280;
789 margin: 0 0 8px 0;
790 }
791
792 .mxch-conversation-empty p {
793 font-size: 13px;
794 margin: 0;
795 }
796
797 /* Conversation Content */
798 .mxch-conversation-content {
799 display: flex;
800 flex-direction: column;
801 height: 100%;
802 min-height: 0; /* Important: allows flex child to shrink below content size */
803 overflow: hidden;
804 }
805
806 .mxch-conversation-header {
807 display: flex;
808 align-items: center;
809 gap: 12px;
810 padding: 16px 20px;
811 background: #fff;
812 border-bottom: 1px solid #e5e7eb;
813 }
814
815 .mxch-user-avatar {
816 width: 44px;
817 height: 44px;
818 border-radius: 50%;
819 background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
820 display: flex;
821 align-items: center;
822 justify-content: center;
823 flex-shrink: 0;
824 }
825
826 .mxch-user-avatar span {
827 color: #fff;
828 font-size: 15px;
829 font-weight: 600;
830 }
831
832 .mxch-user-info {
833 flex: 1;
834 }
835
836 .mxch-user-name {
837 font-size: 15px;
838 font-weight: 600;
839 color: #111827;
840 }
841
842 .mxch-user-meta {
843 font-size: 12px;
844 color: #6b7280;
845 margin-top: 2px;
846 }
847
848 .mxch-details-toggle {
849 width: 36px;
850 height: 36px;
851 border: 1px solid #e5e7eb;
852 background: #fff;
853 border-radius: 8px;
854 cursor: pointer;
855 display: flex;
856 align-items: center;
857 justify-content: center;
858 color: #6b7280;
859 transition: all 0.15s;
860 }
861
862 .mxch-details-toggle:hover,
863 .mxch-details-toggle.active {
864 background: #f3f4f6;
865 color: #374151;
866 }
867
868 /* Details Drawer */
869 .mxch-details-drawer {
870 background: #fff;
871 border-bottom: 1px solid #e5e7eb;
872 padding: 16px 20px;
873 }
874
875 .mxch-details-section {
876 margin-bottom: 16px;
877 }
878
879 .mxch-details-section:last-child {
880 margin-bottom: 0;
881 }
882
883 .mxch-details-section h4 {
884 font-size: 11px;
885 font-weight: 600;
886 color: #9ca3af;
887 text-transform: uppercase;
888 letter-spacing: 0.5px;
889 margin: 0 0 10px 0;
890 }
891
892 .mxch-detail-row {
893 display: flex;
894 justify-content: space-between;
895 align-items: center;
896 padding: 6px 0;
897 font-size: 13px;
898 }
899
900 .mxch-detail-label {
901 color: #6b7280;
902 }
903
904 .mxch-detail-value {
905 color: #111827;
906 font-weight: 500;
907 }
908
909 .mxch-detail-value a {
910 color: #3b82f6;
911 text-decoration: none;
912 }
913
914 .mxch-detail-value a:hover {
915 text-decoration: underline;
916 }
917
918 .mxch-clicked-links {
919 display: flex;
920 flex-direction: column;
921 gap: 6px;
922 }
923
924 .mxch-clicked-link {
925 font-size: 12px;
926 color: #3b82f6;
927 text-decoration: none;
928 padding: 6px 10px;
929 background: #eff6ff;
930 border-radius: 6px;
931 white-space: nowrap;
932 overflow: hidden;
933 text-overflow: ellipsis;
934 }
935
936 .mxch-clicked-link:hover {
937 background: #dbeafe;
938 }
939
940 .mxch-details-actions {
941 display: flex;
942 gap: 8px;
943 margin-top: 16px;
944 padding-top: 16px;
945 border-top: 1px solid #f3f4f6;
946 }
947
948 .mxch-btn-sm {
949 padding: 8px 12px;
950 font-size: 12px;
951 }
952
953 /* Translate Controls */
954 .mxch-translate-section {
955 margin-top: 12px;
956 padding-top: 12px;
957 border-top: 1px solid #f3f4f6;
958 }
959
960 .mxch-translate-controls {
961 display: flex;
962 align-items: center;
963 gap: 8px;
964 }
965
966 .mxch-translate-select {
967 padding: 6px 10px;
968 font-size: 12px;
969 border: 1px solid #e5e7eb;
970 border-radius: 6px;
971 background: #fff;
972 color: #374151;
973 cursor: pointer;
974 min-width: 100px;
975 }
976
977 .mxch-translate-select:focus {
978 outline: none;
979 border-color: #3b82f6;
980 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
981 }
982
983 #mxch-translate-btn,
984 #mxch-show-original-btn {
985 display: inline-flex;
986 align-items: center;
987 gap: 6px;
988 }
989
990 #mxch-translate-btn svg,
991 #mxch-show-original-btn svg {
992 width: 14px;
993 height: 14px;
994 flex-shrink: 0;
995 }
996
997 #mxch-translate-btn:disabled {
998 opacity: 0.6;
999 cursor: not-allowed;
1000 }
1001
1002 .mxch-translate-spinner {
1003 animation: spin 1s linear infinite;
1004 }
1005
1006 @keyframes mxch-translate-spin {
1007 from { transform: rotate(0deg); }
1008 to { transform: rotate(360deg); }
1009 }
1010
1011 /* Translated message indicator */
1012 .mxch-message-bubble.translated {
1013 position: relative;
1014 }
1015
1016 .mxch-message-bubble.translated::after {
1017 content: '';
1018 position: absolute;
1019 top: 6px;
1020 right: 6px;
1021 width: 6px;
1022 height: 6px;
1023 background: #3b82f6;
1024 border-radius: 50%;
1025 opacity: 0.6;
1026 }
1027
1028 /* Messages Area */
1029 .mxch-messages-area {
1030 flex: 1;
1031 overflow-y: auto;
1032 padding: 20px;
1033 }
1034
1035 /* Mobile back button - hidden by default on desktop */
1036 .mxch-mobile-back-btn {
1037 display: none;
1038 }
1039
1040 .mxch-messages-loading,
1041 .mxch-messages-error {
1042 display: flex;
1043 align-items: center;
1044 justify-content: center;
1045 padding: 40px;
1046 color: #9ca3af;
1047 font-size: 13px;
1048 }
1049
1050 /* Message Styles */
1051 .mxch-message {
1052 margin-bottom: 20px;
1053 }
1054
1055 .mxch-message:last-child {
1056 margin-bottom: 0;
1057 }
1058
1059 /* User Message */
1060 .mxch-message-user {
1061 display: flex;
1062 flex-direction: column;
1063 align-items: flex-end;
1064 }
1065
1066 .mxch-message-user .mxch-message-row {
1067 max-width: 70%;
1068 min-width: 120px;
1069 }
1070
1071 .mxch-message-user .mxch-message-bubble {
1072 background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
1073 color: #fff;
1074 padding: 12px 16px;
1075 border-radius: 18px 18px 4px 18px;
1076 font-size: 14px;
1077 line-height: 1.5;
1078 min-width: 80px;
1079 }
1080
1081 .mxch-message-user .mxch-message-bubble a {
1082 color: #bfdbfe;
1083 text-decoration: underline;
1084 }
1085
1086 .mxch-message-user .mxch-message-time {
1087 font-size: 11px;
1088 color: #9ca3af;
1089 margin-top: 4px;
1090 }
1091
1092 /* Bot Message */
1093 .mxch-message-bot {
1094 display: flex;
1095 flex-direction: column;
1096 align-items: flex-start;
1097 }
1098
1099 .mxch-message-header {
1100 display: flex;
1101 align-items: center;
1102 gap: 10px;
1103 margin-bottom: 6px;
1104 }
1105
1106 .mxch-bot-label {
1107 font-size: 11px;
1108 font-weight: 600;
1109 color: #059669;
1110 text-transform: uppercase;
1111 letter-spacing: 0.5px;
1112 }
1113
1114 .mxch-rag-link {
1115 font-size: 11px;
1116 color: #3b82f6;
1117 text-decoration: none;
1118 font-weight: 500;
1119 padding: 2px 8px;
1120 background: #eff6ff;
1121 border-radius: 4px;
1122 transition: all 0.15s;
1123 }
1124
1125 .mxch-rag-link:hover {
1126 background: #dbeafe;
1127 }
1128
1129 .mxch-message-bot .mxch-message-row {
1130 max-width: 80%;
1131 min-width: 150px;
1132 }
1133
1134 .mxch-message-bot .mxch-message-bubble {
1135 background: #fff;
1136 border: 1px solid #e5e7eb;
1137 color: #374151;
1138 padding: 12px 16px;
1139 border-radius: 18px 18px 18px 4px;
1140 font-size: 14px;
1141 line-height: 1.5;
1142 min-width: 100px;
1143 }
1144
1145 .mxch-message-bot .mxch-message-bubble a {
1146 color: #3b82f6;
1147 }
1148
1149 .mxch-message-bot .mxch-message-time {
1150 font-size: 11px;
1151 color: #9ca3af;
1152 margin-top: 4px;
1153 }
1154
1155 /* Message Content Styles */
1156 .mxch-message-bubble p {
1157 margin: 0 0 10px 0;
1158 }
1159
1160 .mxch-message-bubble p:last-child {
1161 margin-bottom: 0;
1162 }
1163
1164 .mxch-message-bubble ul,
1165 .mxch-message-bubble ol {
1166 margin: 10px 0;
1167 padding-left: 20px;
1168 }
1169
1170 .mxch-message-bubble li {
1171 margin: 4px 0;
1172 }
1173
1174 .mxch-message-bubble code {
1175 background: rgba(0, 0, 0, 0.08);
1176 padding: 2px 6px;
1177 border-radius: 4px;
1178 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
1179 font-size: 0.9em;
1180 }
1181
1182 .mxch-message-user .mxch-message-bubble code {
1183 background: rgba(255, 255, 255, 0.2);
1184 }
1185
1186 .mxch-message-bubble pre {
1187 background: #1e293b;
1188 color: #e2e8f0;
1189 padding: 12px 14px;
1190 border-radius: 8px;
1191 overflow-x: auto;
1192 margin: 10px 0;
1193 font-size: 13px;
1194 }
1195
1196 .mxch-message-bubble pre code {
1197 background: none;
1198 padding: 0;
1199 color: inherit;
1200 }
1201
1202 /* Scrollbar Styling */
1203 .mxch-chat-list::-webkit-scrollbar,
1204 .mxch-messages-area::-webkit-scrollbar {
1205 width: 6px;
1206 }
1207
1208 .mxch-chat-list::-webkit-scrollbar-track,
1209 .mxch-messages-area::-webkit-scrollbar-track {
1210 background: transparent;
1211 }
1212
1213 .mxch-chat-list::-webkit-scrollbar-thumb,
1214 .mxch-messages-area::-webkit-scrollbar-thumb {
1215 background: #d1d5db;
1216 border-radius: 3px;
1217 }
1218
1219 .mxch-chat-list::-webkit-scrollbar-thumb:hover,
1220 .mxch-messages-area::-webkit-scrollbar-thumb:hover {
1221 background: #9ca3af;
1222 }
1223
1224 /* Responsive Split Panel - Tablet */
1225 @media screen and (max-width: 900px) and (min-width: 783px) {
1226 #all-chats.mxch-section {
1227 padding: 0;
1228 }
1229
1230 .mxch-split-panel {
1231 flex-direction: column;
1232 height: auto;
1233 }
1234
1235 .mxch-chat-list-panel {
1236 width: 100%;
1237 max-width: none;
1238 height: 350px;
1239 border-right: none;
1240 border-bottom: 1px solid #e5e7eb;
1241 }
1242
1243 .mxch-panel-expand {
1244 display: none;
1245 }
1246
1247 .mxch-conversation-panel {
1248 min-height: 400px;
1249 }
1250
1251 .mxch-bulk-toolbar {
1252 flex-wrap: wrap;
1253 }
1254
1255 .mxch-bulk-btn span {
1256 display: none;
1257 }
1258 }
1259
1260 /* ==========================================================================
1261 Mobile Split Panel - Full Screen Panels
1262 ========================================================================== */
1263 @media screen and (max-width: 782px) {
1264 #all-chats.mxch-section {
1265 padding: 0;
1266 /* Mobile viewport height with fallbacks for browser address bar */
1267 /* 1. Fallback: standard vh (may be cut off by browser chrome) */
1268 height: calc(100vh - 46px - 32px);
1269 /* 2. Better: dvh (dynamic viewport height) for modern browsers */
1270 height: calc(100dvh - 46px - 32px);
1271 /* 3. Best: JS-calculated actual viewport via CSS custom property */
1272 height: calc(var(--mxch-mobile-vh, 100vh) - 46px - 32px);
1273 overflow: hidden;
1274 }
1275
1276 .mxch-split-panel {
1277 height: 100%;
1278 position: relative;
1279 }
1280
1281 /* Chat List - Full screen on mobile */
1282 .mxch-chat-list-panel {
1283 width: 100%;
1284 max-width: none;
1285 height: 100%;
1286 border-right: none;
1287 position: absolute;
1288 top: 0;
1289 left: 0;
1290 right: 0;
1291 bottom: 0;
1292 z-index: 10;
1293 transition: transform 0.3s ease;
1294 }
1295
1296 .mxch-chat-list-panel.panel-hidden {
1297 transform: translateX(-100%);
1298 }
1299
1300 .mxch-chat-list {
1301 flex: 1;
1302 overflow-y: auto;
1303 -webkit-overflow-scrolling: touch;
1304 }
1305
1306 /* Conversation Panel - Slide over from right */
1307 .mxch-conversation-panel {
1308 position: absolute;
1309 top: 0;
1310 left: 0;
1311 right: 0;
1312 bottom: 0;
1313 z-index: 20;
1314 transform: translateX(100%);
1315 transition: transform 0.3s ease;
1316 min-height: 0;
1317 height: 100%;
1318 display: flex;
1319 flex-direction: column;
1320 }
1321
1322 .mxch-conversation-panel.panel-active {
1323 transform: translateX(0);
1324 }
1325
1326 /* Mobile back button in conversation header */
1327 .mxch-mobile-back-btn {
1328 display: flex !important;
1329 align-items: center;
1330 justify-content: center;
1331 width: 36px;
1332 height: 36px;
1333 background: #f3f4f6;
1334 border: none;
1335 border-radius: 8px;
1336 color: #374151;
1337 cursor: pointer;
1338 margin-right: 8px;
1339 flex-shrink: 0;
1340 }
1341
1342 .mxch-mobile-back-btn:hover {
1343 background: #e5e7eb;
1344 }
1345
1346 /* Ensure conversation content scrolls properly */
1347 .mxch-conversation-content {
1348 flex: 1;
1349 display: flex;
1350 flex-direction: column;
1351 min-height: 0;
1352 overflow: hidden;
1353 }
1354
1355 /* Messages area scroll fix for mobile */
1356 .mxch-messages-area {
1357 flex: 1;
1358 overflow-y: auto;
1359 -webkit-overflow-scrolling: touch;
1360 padding: 16px;
1361 padding-bottom: 24px; /* Extra padding at bottom for visibility */
1362 }
1363
1364 /* Hide expand button on mobile */
1365 .mxch-panel-expand {
1366 display: none;
1367 }
1368
1369 /* Adjust bulk toolbar for mobile */
1370 .mxch-bulk-toolbar {
1371 flex-wrap: wrap;
1372 gap: 6px;
1373 padding: 8px 10px;
1374 }
1375
1376 .mxch-bulk-btn span {
1377 display: none;
1378 }
1379
1380 /* Make chat items more tappable */
1381 .mxch-chat-item {
1382 padding: 14px 12px;
1383 }
1384
1385 /* Adjust conversation header for mobile */
1386 .mxch-conversation-header {
1387 padding: 12px 16px;
1388 flex-shrink: 0;
1389 }
1390
1391 /* Details drawer adjustments */
1392 .mxch-details-drawer {
1393 max-height: 200px;
1394 overflow-y: auto;
1395 flex-shrink: 0;
1396 }
1397
1398 /* Conversation empty state on mobile */
1399 .mxch-conversation-empty {
1400 display: none;
1401 }
1402 }
1403
1404 /* ==========================================================================
1405 Pagination
1406 ========================================================================== */
1407 .mxch-pagination {
1408 display: flex;
1409 flex-wrap: wrap;
1410 justify-content: space-between;
1411 align-items: center;
1412 margin-top: var(--mxch-spacing-lg);
1413 padding: var(--mxch-spacing-md);
1414 background: var(--mxch-card-bg);
1415 border: 1px solid var(--mxch-card-border);
1416 border-radius: var(--mxch-radius-md);
1417 }
1418
1419 .mxch-pagination-info {
1420 font-size: 13px;
1421 color: var(--mxch-text-secondary);
1422 }
1423
1424 .mxch-pagination-controls {
1425 display: flex;
1426 flex-wrap: wrap;
1427 gap: 4px;
1428 }
1429
1430 .mxch-pagination-btn {
1431 padding: 6px 12px;
1432 background: #f8fafc;
1433 border: 1px solid var(--mxch-card-border);
1434 border-radius: var(--mxch-radius-sm);
1435 color: var(--mxch-text-primary);
1436 font-size: 13px;
1437 cursor: pointer;
1438 transition: all var(--mxch-transition-fast);
1439 }
1440
1441 .mxch-pagination-btn:hover {
1442 background: #e2e8f0;
1443 }
1444
1445 .mxch-pagination-btn.active {
1446 background: var(--mxch-primary);
1447 border-color: var(--mxch-primary);
1448 color: white;
1449 }
1450
1451 .mxch-pagination-ellipsis {
1452 padding: 6px 8px;
1453 color: var(--mxch-text-muted);
1454 }
1455
1456 /* ==========================================================================
1457 No Results
1458 ========================================================================== */
1459 .mxch-no-results {
1460 text-align: center;
1461 padding: var(--mxch-spacing-xl) var(--mxch-spacing-lg);
1462 color: var(--mxch-text-muted);
1463 background: #f9fafb;
1464 border: 2px dashed var(--mxch-card-border);
1465 border-radius: var(--mxch-radius-lg);
1466 }
1467
1468 .mxch-no-results svg {
1469 width: 48px;
1470 height: 48px;
1471 margin-bottom: var(--mxch-spacing-md);
1472 opacity: 0.5;
1473 }
1474
1475 .mxch-no-results h3 {
1476 font-size: 16px;
1477 font-weight: 600;
1478 color: var(--mxch-text-secondary);
1479 margin: 0 0 var(--mxch-spacing-xs) 0;
1480 }
1481
1482 .mxch-no-results p {
1483 font-size: 14px;
1484 margin: 0;
1485 }
1486
1487 /* ==========================================================================
1488 Toggle Row
1489 ========================================================================== */
1490 .mxch-toggle-row {
1491 display: flex;
1492 align-items: center;
1493 gap: var(--mxch-spacing-sm);
1494 }
1495
1496 .mxch-toggle-label {
1497 font-size: 14px;
1498 font-weight: 500;
1499 color: var(--mxch-text-primary);
1500 }
1501
1502 /* ==========================================================================
1503 Modal Styles
1504 ========================================================================== */
1505 .mxch-modal-overlay {
1506 position: fixed;
1507 top: 0;
1508 left: 0;
1509 right: 0;
1510 bottom: 0;
1511 background: rgba(0, 0, 0, 0.5);
1512 display: flex;
1513 align-items: center;
1514 justify-content: center;
1515 z-index: 100000;
1516 animation: mxchFadeIn 0.2s ease;
1517 }
1518
1519 .mxch-modal-content {
1520 background: white;
1521 border-radius: var(--mxch-radius-lg);
1522 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
1523 width: 90%;
1524 max-width: 600px;
1525 max-height: 80vh;
1526 display: flex;
1527 flex-direction: column;
1528 animation: mxchSlideIn 0.2s ease;
1529 }
1530
1531 @keyframes mxchSlideIn {
1532 from {
1533 transform: translateY(-20px);
1534 opacity: 0;
1535 }
1536 to {
1537 transform: translateY(0);
1538 opacity: 1;
1539 }
1540 }
1541
1542 .mxch-modal-header {
1543 display: flex;
1544 align-items: center;
1545 justify-content: space-between;
1546 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
1547 border-bottom: 1px solid var(--mxch-card-border);
1548 }
1549
1550 .mxch-modal-header h2 {
1551 font-size: 18px;
1552 font-weight: 600;
1553 color: var(--mxch-text-primary);
1554 margin: 0;
1555 }
1556
1557 .mxch-modal-close {
1558 width: 32px;
1559 height: 32px;
1560 display: flex;
1561 align-items: center;
1562 justify-content: center;
1563 background: none;
1564 border: none;
1565 font-size: 24px;
1566 color: var(--mxch-text-muted);
1567 cursor: pointer;
1568 border-radius: var(--mxch-radius-sm);
1569 transition: all var(--mxch-transition-fast);
1570 }
1571
1572 .mxch-modal-close:hover {
1573 background: #f1f5f9;
1574 color: var(--mxch-text-primary);
1575 }
1576
1577 .mxch-modal-body {
1578 flex: 1;
1579 padding: var(--mxch-spacing-lg);
1580 overflow-y: auto;
1581 }
1582
1583 /* RAG Context Styles */
1584 .mxch-rag-summary {
1585 display: flex;
1586 flex-wrap: wrap;
1587 gap: var(--mxch-spacing-md);
1588 padding: var(--mxch-spacing-md);
1589 background: #f8fafc;
1590 border-radius: var(--mxch-radius-md);
1591 margin-bottom: var(--mxch-spacing-lg);
1592 }
1593
1594 .mxch-rag-summary-item {
1595 font-size: 13px;
1596 }
1597
1598 .mxch-rag-label {
1599 color: var(--mxch-text-secondary);
1600 }
1601
1602 .mxch-rag-value {
1603 font-weight: 600;
1604 color: var(--mxch-text-primary);
1605 }
1606
1607 .mxch-rag-matches h3 {
1608 font-size: 14px;
1609 font-weight: 600;
1610 color: var(--mxch-text-primary);
1611 margin: 0 0 var(--mxch-spacing-md) 0;
1612 }
1613
1614 .mxch-rag-match-card {
1615 border: 1px solid var(--mxch-card-border);
1616 border-radius: var(--mxch-radius-md);
1617 padding: var(--mxch-spacing-md);
1618 margin-bottom: var(--mxch-spacing-sm);
1619 }
1620
1621 .mxch-rag-match-used {
1622 border-color: rgba(16, 185, 129, 0.3);
1623 background: rgba(16, 185, 129, 0.05);
1624 }
1625
1626 .mxch-rag-match-below {
1627 border-color: var(--mxch-card-border);
1628 background: #fafafa;
1629 }
1630
1631 .mxch-rag-match-header {
1632 display: flex;
1633 align-items: center;
1634 gap: var(--mxch-spacing-sm);
1635 margin-bottom: var(--mxch-spacing-sm);
1636 }
1637
1638 .mxch-rag-match-score {
1639 font-size: 14px;
1640 font-weight: 700;
1641 color: var(--mxch-primary);
1642 }
1643
1644 .mxch-rag-chunk-badge {
1645 font-size: 11px;
1646 padding: 2px 8px;
1647 background: rgba(120, 115, 245, 0.1);
1648 color: var(--mxch-primary);
1649 border-radius: 10px;
1650 }
1651
1652 .mxch-rag-match-status {
1653 margin-left: auto;
1654 font-size: 12px;
1655 font-weight: 500;
1656 }
1657
1658 .mxch-rag-match-status.status-used {
1659 color: var(--mxch-success);
1660 }
1661
1662 .mxch-rag-match-status.status-below {
1663 color: var(--mxch-text-muted);
1664 }
1665
1666 .mxch-rag-match-source {
1667 font-size: 13px;
1668 color: var(--mxch-text-secondary);
1669 word-break: break-all;
1670 }
1671
1672 .mxch-rag-match-source a {
1673 color: var(--mxch-primary);
1674 text-decoration: none;
1675 }
1676
1677 .mxch-rag-match-source a:hover {
1678 text-decoration: underline;
1679 }
1680
1681 /* Context Modal Tabs */
1682 .mxch-context-tabs {
1683 display: flex;
1684 gap: 4px;
1685 padding: 4px;
1686 background: #f1f5f9;
1687 border-radius: var(--mxch-radius-md);
1688 margin-bottom: var(--mxch-spacing-md);
1689 }
1690
1691 .mxch-context-tab {
1692 flex: 1;
1693 display: flex;
1694 align-items: center;
1695 justify-content: center;
1696 gap: 8px;
1697 padding: 10px 16px;
1698 border: none;
1699 background: transparent;
1700 border-radius: var(--mxch-radius-sm);
1701 font-size: 13px;
1702 font-weight: 500;
1703 color: var(--mxch-text-secondary);
1704 cursor: pointer;
1705 transition: all var(--mxch-transition-fast);
1706 }
1707
1708 .mxch-context-tab:hover {
1709 color: var(--mxch-text-primary);
1710 background: rgba(255, 255, 255, 0.5);
1711 }
1712
1713 .mxch-context-tab.active {
1714 background: white;
1715 color: var(--mxch-primary);
1716 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1717 }
1718
1719 .mxch-context-tab svg {
1720 width: 16px;
1721 height: 16px;
1722 flex-shrink: 0;
1723 }
1724
1725 .mxch-tab-badge {
1726 display: inline-flex;
1727 align-items: center;
1728 justify-content: center;
1729 min-width: 20px;
1730 height: 20px;
1731 padding: 0 6px;
1732 background: rgba(120, 115, 245, 0.1);
1733 color: var(--mxch-primary);
1734 font-size: 11px;
1735 font-weight: 600;
1736 border-radius: 10px;
1737 }
1738
1739 .mxch-context-tab.active .mxch-tab-badge {
1740 background: var(--mxch-primary);
1741 color: white;
1742 }
1743
1744 .mxch-tab-content {
1745 min-height: 200px;
1746 }
1747
1748 /* Action Specific Styles */
1749 .mxch-action-triggered {
1750 border-color: rgba(245, 158, 11, 0.4);
1751 background: rgba(245, 158, 11, 0.08);
1752 }
1753
1754 .mxch-action-threshold-badge {
1755 font-size: 11px;
1756 padding: 2px 8px;
1757 background: rgba(100, 116, 139, 0.1);
1758 color: var(--mxch-text-secondary);
1759 border-radius: 10px;
1760 }
1761
1762 .mxch-rag-match-status.status-triggered {
1763 color: #f59e0b;
1764 font-weight: 600;
1765 }
1766
1767 .mxch-action-details {
1768 margin-top: var(--mxch-spacing-sm);
1769 }
1770
1771 .mxch-action-label {
1772 font-size: 14px;
1773 font-weight: 600;
1774 color: var(--mxch-text-primary);
1775 margin-bottom: 4px;
1776 }
1777
1778 .mxch-action-callback {
1779 font-size: 12px;
1780 color: var(--mxch-text-muted);
1781 font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
1782 }
1783
1784 .mxch-action-callback-label {
1785 color: var(--mxch-text-secondary);
1786 font-family: inherit;
1787 }
1788
1789 /* Action Score Bar Visualization */
1790 .mxch-action-score-bar {
1791 position: relative;
1792 height: 6px;
1793 background: #e2e8f0;
1794 border-radius: 3px;
1795 margin-top: var(--mxch-spacing-sm);
1796 overflow: visible;
1797 }
1798
1799 .mxch-action-score-fill {
1800 position: absolute;
1801 left: 0;
1802 top: 0;
1803 height: 100%;
1804 background: linear-gradient(90deg, #7873f5, #a5a1fa);
1805 border-radius: 3px;
1806 transition: width 0.3s ease;
1807 }
1808
1809 .mxch-action-triggered .mxch-action-score-fill {
1810 background: linear-gradient(90deg, #f59e0b, #fbbf24);
1811 }
1812
1813 .mxch-action-threshold-marker {
1814 position: absolute;
1815 top: -4px;
1816 width: 2px;
1817 height: 14px;
1818 background: #ef4444;
1819 border-radius: 1px;
1820 transform: translateX(-50%);
1821 }
1822
1823 .mxch-action-threshold-marker::after {
1824 content: '';
1825 position: absolute;
1826 top: -3px;
1827 left: 50%;
1828 transform: translateX(-50%);
1829 width: 0;
1830 height: 0;
1831 border-left: 4px solid transparent;
1832 border-right: 4px solid transparent;
1833 border-top: 4px solid #ef4444;
1834 }
1835
1836 /* No Results State */
1837 .mxch-no-results {
1838 text-align: center;
1839 padding: var(--mxch-spacing-xl);
1840 color: var(--mxch-text-secondary);
1841 }
1842
1843 .mxch-no-results p {
1844 margin: 0;
1845 }
1846
1847 /* ==========================================================================
1848 Responsive Adjustments
1849 ========================================================================== */
1850 @media screen and (max-width: 768px) {
1851 .mxch-stats-grid {
1852 grid-template-columns: repeat(2, 1fr);
1853 }
1854
1855 .mxch-stat-card {
1856 padding: var(--mxch-spacing-md);
1857 }
1858
1859 .mxch-stat-value {
1860 font-size: 22px;
1861 }
1862
1863 .mxch-cards-row {
1864 grid-template-columns: 1fr;
1865 }
1866
1867 .mxch-transcripts-controls {
1868 flex-direction: column;
1869 align-items: stretch;
1870 }
1871
1872 .mxch-search-wrapper {
1873 max-width: none;
1874 }
1875
1876 .mxch-controls-actions {
1877 justify-content: flex-end;
1878 }
1879
1880 .mxch-session-header {
1881 flex-direction: column;
1882 gap: var(--mxch-spacing-sm);
1883 }
1884
1885 .mxch-session-actions {
1886 opacity: 1;
1887 align-self: flex-end;
1888 }
1889
1890 .mxch-pagination {
1891 flex-direction: column;
1892 gap: var(--mxch-spacing-md);
1893 align-items: flex-start;
1894 }
1895
1896 .mxch-quick-actions {
1897 flex-direction: column;
1898 }
1899
1900 .mxch-quick-action-btn {
1901 width: 100%;
1902 justify-content: center;
1903 }
1904
1905 /* Chart responsive */
1906 .mxch-activity-chart-card .mxch-card-header {
1907 flex-direction: column;
1908 align-items: flex-start;
1909 }
1910
1911 .mxch-chart-legend {
1912 margin-top: var(--mxch-spacing-xs);
1913 }
1914
1915 #mxchat-activity-chart {
1916 height: 220px !important;
1917 }
1918 }
1919
1920 @media screen and (max-width: 480px) {
1921 .mxch-stats-grid {
1922 grid-template-columns: 1fr;
1923 }
1924
1925 .mxch-controls-actions {
1926 flex-direction: column;
1927 width: 100%;
1928 }
1929
1930 .mxch-controls-actions .mxch-btn {
1931 width: 100%;
1932 justify-content: center;
1933 }
1934
1935 .mxch-controls-actions form {
1936 width: 100%;
1937 }
1938 }
1939