PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / trunk
MxChat – AI Chatbot & Content Generation for WordPress vtrunk
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
← All changes | css/chat-transcripts.css +2828 -81 2.0.6trunk View file →
@@ -1,131 +1,2878 @@
1 +/* ==========================================================================
2 + MxChat Transcripts Page Styles - v2.0
3 + Uses admin-sidebar.css for core layout/navigation styles
4 + ========================================================================== */
1 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 +}
2 15
3 -/* Core Styles */
4 -#wpcontent {
5 - padding-left: 0;
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);
6 25 }
7 -.stat-sublabel {
8 - font-size: 0.8rem;
9 - color: #666;
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 {
10 716 display: block;
11 - margin-top: 0.5rem;
12 717 }
13 -body.wp-admin .wrap.mxchat-transcripts-wrapper {
14 - max-width: 100%;
15 - margin: 0 auto;
16 - padding: 0;
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;
17 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; }
18 761
19 -/* Hero Section */
20 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-transcripts-hero {
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;
21 848 text-align: center;
22 - padding: 3.5rem 2rem;
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 {
23 1093 position: relative;
24 - background: #212121;
25 - border-bottom: 4px solid transparent;
26 - border-image: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
27 - border-image-slice: 1;
28 1094 }
29 1095
30 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-transcripts-hero::before {
1096 +.mxch-message-bubble.translated::after {
31 1097 content: '';
32 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;
33 1599 top: 0;
34 1600 left: 0;
35 - width: 100%;
36 - height: 100%;
37 - background: radial-gradient(
38 - circle at center,
39 - rgba(250, 115, 230, 0.08) 0%,
40 - rgba(120, 115, 245, 0.08) 50%,
41 - rgba(58, 201, 209, 0.08) 100%
42 - );
43 - z-index: 1;
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;
44 1609 }
45 1610
46 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-main-title {
47 - font-size: 3.5rem;
48 - margin: 0 0 1.5rem;
49 - line-height: 1.2;
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);
50 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 {
51 1907 position: relative;
52 - z-index: 2;
1908 + height: 6px;
1909 + background: #e2e8f0;
1910 + border-radius: 3px;
1911 + margin-top: var(--mxch-spacing-sm);
1912 + overflow: visible;
53 1913 }
54 1914
55 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-gradient-text {
56 - background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
57 - -webkit-background-clip: text;
58 - -webkit-text-fill-color: transparent;
59 - display: inline-block;
60 - font-weight: 700;
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;
61 1923 }
62 1924
63 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-hero-subtitle {
64 - font-size: 1.25rem;
65 - color: rgba(255, 255, 255, 0.9);
66 - max-width: 800px;
67 - margin: 0 auto;
68 - position: relative;
69 - z-index: 2;
70 - line-height: 1.6;
1925 +.mxch-action-triggered .mxch-action-score-fill {
1926 + background: linear-gradient(90deg, #f59e0b, #fbbf24);
71 1927 }
72 1928
73 -/* Content Area */
74 -body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-content {
75 - padding: 2rem;
76 - max-width: 1400px;
77 - margin: 0 auto;
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%);
78 1937 }
79 1938
80 -/* Responsive Design */
81 -@media (max-width: 768px) {
82 - body.wp-admin .wrap.mxchat-transcripts-wrapper {
83 - padding: 0;
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 +/* AI Tools trace (plan-mxchat-20260813-470f68)
1953 + One card per tool EXECUTION, rendered above the trigger-phrase scores. The box
1954 + itself reuses .mxch-rag-match-card / .mxch-rag-match-used; the rules below are
1955 + only the states the trigger-phrase cards have no equivalent of — a failed run,
1956 + a duration chip, and the argument excerpt. */
1957 +.mxch-tool-failed {
1958 + border-color: rgba(239, 68, 68, 0.35);
1959 + background: rgba(239, 68, 68, 0.05);
1960 +}
1961 +
1962 +.mxch-rag-match-status.status-failed {
1963 + color: var(--mxch-error);
1964 + font-weight: 600;
1965 +}
1966 +
1967 +.mxch-tool-duration {
1968 + font-size: 11px;
1969 + padding: 2px 8px;
1970 + background: rgba(100, 116, 139, 0.1);
1971 + color: var(--mxch-text-secondary);
1972 + border-radius: 10px;
1973 +}
1974 +
1975 +.mxch-tool-error {
1976 + margin-top: var(--mxch-spacing-sm);
1977 + font-size: 12px;
1978 + color: var(--mxch-error);
1979 + word-break: break-word;
1980 +}
1981 +
1982 +.mxch-tool-args {
1983 + margin-top: var(--mxch-spacing-sm);
1984 +}
1985 +
1986 +.mxch-tool-args > summary {
1987 + font-size: 12px;
1988 + color: var(--mxch-text-secondary);
1989 + cursor: pointer;
1990 + list-style: revert;
1991 +}
1992 +
1993 +.mxch-tool-args-body {
1994 + margin-top: 6px;
1995 + padding: var(--mxch-spacing-sm);
1996 + background: #f8fafc;
1997 + border: 1px solid var(--mxch-card-border);
1998 + border-radius: var(--mxch-radius-sm);
1999 + font-size: 12px;
2000 + font-family: 'SF Mono', Monaco, 'Cascadia Code', monospace;
2001 + color: var(--mxch-text-secondary);
2002 + white-space: pre-wrap;
2003 + word-break: break-word;
2004 +}
2005 +
2006 +.mxch-tool-redacted {
2007 + margin-top: var(--mxch-spacing-sm);
2008 + font-size: 12px;
2009 + color: var(--mxch-text-muted);
2010 + font-style: italic;
2011 +}
2012 +
2013 +/* No Results State */
2014 +.mxch-no-results {
2015 + text-align: center;
2016 + padding: var(--mxch-spacing-xl);
2017 + color: var(--mxch-text-secondary);
2018 +}
2019 +
2020 +.mxch-no-results p {
2021 + margin: 0;
2022 +}
2023 +
2024 +/* ==========================================================================
2025 + Responsive Adjustments
2026 + ========================================================================== */
2027 +@media screen and (max-width: 768px) {
2028 + .mxch-stats-grid {
2029 + grid-template-columns: repeat(2, 1fr);
84 2030 }
85 -
86 - body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-main-title {
87 - font-size: 2.5rem;
2031 +
2032 + .mxch-stat-card {
2033 + padding: var(--mxch-spacing-md);
88 2034 }
89 -
90 - body.wp-admin .wrap.mxchat-transcripts-wrapper .mxchat-transcripts-hero {
91 - padding: 2.5rem 1.5rem;
2035 +
2036 + .mxch-stat-value {
2037 + font-size: 22px;
92 2038 }
93 -
94 - .auto-fold #wpcontent {
95 - margin-left: 0;
96 - padding-left: 0px;
2039 +
2040 + .mxch-cards-row {
2041 + grid-template-columns: 1fr;
97 2042 }
98 - .mxchat-action-button {
2043 +
2044 + .mxch-transcripts-controls {
2045 + flex-direction: column;
2046 + align-items: stretch;
2047 + }
2048 +
2049 + .mxch-search-wrapper {
2050 + max-width: none;
2051 + }
2052 +
2053 + .mxch-controls-actions {
2054 + justify-content: flex-end;
2055 + }
2056 +
2057 + .mxch-session-header {
2058 + flex-direction: column;
2059 + gap: var(--mxch-spacing-sm);
2060 + }
2061 +
2062 + .mxch-session-actions {
2063 + opacity: 1;
2064 + align-self: flex-end;
2065 + }
2066 +
2067 + .mxch-pagination {
2068 + flex-direction: column;
2069 + gap: var(--mxch-spacing-md);
2070 + align-items: flex-start;
2071 + }
2072 +
2073 + .mxch-quick-actions {
2074 + flex-direction: column;
2075 + }
2076 +
2077 + .mxch-quick-action-btn {
99 2078 width: 100%;
2079 + justify-content: center;
100 2080 }
2081 +
2082 + /* Chart responsive */
2083 + .mxch-activity-chart-card .mxch-card-header {
2084 + flex-direction: column;
2085 + align-items: flex-start;
2086 + }
2087 +
2088 + .mxch-chart-legend {
2089 + margin-top: var(--mxch-spacing-xs);
2090 + }
2091 +
2092 + #mxchat-activity-chart {
2093 + height: 220px !important;
2094 + }
101 2095 }
102 2096
103 -.mxchat-action-button {
104 - background: linear-gradient(135deg, #fa73e6, #7873f5);
105 - color: white;
2097 +@media screen and (max-width: 480px) {
2098 + .mxch-stats-grid {
2099 + grid-template-columns: 1fr;
2100 + }
2101 +
2102 + .mxch-controls-actions {
2103 + flex-direction: column;
2104 + width: 100%;
2105 + }
2106 +
2107 + .mxch-controls-actions .mxch-btn {
2108 + width: 100%;
2109 + justify-content: center;
2110 + }
2111 +
2112 + .mxch-controls-actions form {
2113 + width: 100%;
2114 + }
2115 +}
2116 +
2117 +/* Product Card in Transcripts */
2118 +.mxch-message-bubble .mxchat-product-card {
2119 + display: flex;
2120 + flex-direction: column;
2121 + align-items: center;
2122 + margin: 8px 0;
2123 + padding: 12px;
2124 + border-radius: 8px;
2125 + background: #f9f9f9;
2126 + border: 1px solid #e5e5e5;
2127 + max-width: 280px;
2128 +}
2129 +
2130 +.mxch-message-bubble .mxchat-product-card a.mxchat-product-link {
2131 + text-decoration: none;
2132 + color: inherit;
2133 + display: flex;
2134 + flex-direction: column;
2135 + align-items: center;
2136 +}
2137 +
2138 +.mxch-message-bubble .mxchat-product-card img.mxchat-product-image {
2139 + max-width: 100%;
2140 + height: auto;
2141 + max-height: 180px;
2142 + object-fit: contain;
2143 + margin-bottom: 8px;
2144 + border-radius: 6px;
2145 +}
2146 +
2147 +.mxch-message-bubble .mxchat-product-card h3.mxchat-product-name {
2148 + font-size: 14px;
2149 + font-weight: 600;
2150 + margin: 4px 0;
2151 + text-align: center;
2152 + color: #1a1a1a;
2153 +}
2154 +
2155 +.mxch-message-bubble .mxchat-product-card .mxchat-product-price {
2156 + color: #2e7d32;
2157 + font-weight: 600;
2158 + font-size: 15px;
2159 + margin: 4px 0 8px;
2160 +}
2161 +
2162 +.mxch-message-bubble .mxchat-product-card .mxchat-add-to-cart-button {
2163 + background-color: #212121;
2164 + color: #fff;
2165 + padding: 7px 16px;
106 2166 border: none;
107 - padding: 8px 16px;
2167 + border-radius: 6px;
2168 + font-size: 13px;
2169 + cursor: default;
2170 + opacity: 0.6;
2171 +}
2172 +
2173 +.mxch-message-bubble .mxchat-product-card select {
2174 + width: 100%;
2175 + padding: 6px 8px;
2176 + margin: 4px 0;
2177 + border: 1px solid #ddd;
2178 + border-radius: 4px;
2179 + font-size: 13px;
2180 +}
2181 +
2182 +/* Featured Products in Transcripts */
2183 +.mxch-message-bubble .mxchat-featured-products {
2184 + margin: 8px 0;
2185 + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2186 + line-height: 1.4;
2187 + display: flex;
2188 + flex-direction: column;
2189 + gap: 0;
2190 + padding: 0;
2191 +}
2192 +
2193 +.mxch-message-bubble .mxchat-featured-item {
2194 + padding: 10px 0;
2195 + border-bottom: 1px solid #e5e5e5;
2196 + margin: 0;
2197 +}
2198 +
2199 +.mxch-message-bubble .mxchat-featured-item:last-child {
2200 + border-bottom: none;
2201 + padding-bottom: 0;
2202 +}
2203 +
2204 +.mxch-message-bubble .mxchat-featured-item:first-child {
2205 + padding-top: 0;
2206 +}
2207 +
2208 +.mxch-message-bubble .mxchat-featured-item-top {
2209 + display: flex;
2210 + flex-direction: row;
2211 + align-items: center;
2212 + gap: 12px;
2213 + margin-bottom: 8px;
2214 +}
2215 +
2216 +.mxch-message-bubble .mxchat-featured-item-image {
2217 + flex-shrink: 0;
2218 + width: 70px;
2219 + height: 70px;
2220 + overflow: hidden;
108 2221 border-radius: 8px;
2222 + background: #f1f1f1;
2223 +}
2224 +
2225 +.mxch-message-bubble .mxchat-featured-item-image a {
2226 + display: block;
2227 + width: 70px;
2228 + height: 70px;
2229 + text-decoration: none;
2230 +}
2231 +
2232 +.mxch-message-bubble .mxchat-featured-item-image img {
2233 + width: 70px;
2234 + height: 70px;
2235 + object-fit: cover;
2236 + border-radius: 8px;
2237 + display: block;
2238 +}
2239 +
2240 +.mxch-message-bubble .mxchat-featured-item-info {
2241 + flex: 1;
2242 + min-width: 0;
2243 + display: flex;
2244 + flex-direction: column;
2245 + gap: 2px;
2246 + justify-content: center;
2247 +}
2248 +
2249 +.mxch-message-bubble .mxchat-featured-item-title,
2250 +.mxch-message-bubble a.mxchat-featured-item-title {
2251 + font-size: 13px;
2252 + font-weight: 600;
2253 + color: #1a1a1a;
2254 + text-decoration: none;
2255 + line-height: 1.3;
2256 + display: -webkit-box;
2257 + -webkit-line-clamp: 2;
2258 + -webkit-box-orient: vertical;
2259 + overflow: hidden;
2260 + margin: 0;
2261 + padding: 0;
2262 +}
2263 +
2264 +.mxch-message-bubble a.mxchat-featured-item-title:hover {
2265 + opacity: 0.8;
2266 +}
2267 +
2268 +.mxch-message-bubble .mxchat-featured-item-price {
2269 + font-weight: 700;
2270 + font-size: 13px;
2271 + color: #2e7d32;
2272 + margin: 0;
2273 +}
2274 +
2275 +.mxch-message-bubble .mxchat-featured-item-price del {
2276 + opacity: 0.6;
2277 + font-weight: 400;
2278 + font-size: 0.85em;
2279 + margin-right: 4px;
2280 +}
2281 +
2282 +.mxch-message-bubble .mxchat-featured-item-price ins {
2283 + text-decoration: none;
2284 + background: none;
2285 +}
2286 +
2287 +.mxch-message-bubble .mxchat-featured-item-actions {
2288 + display: flex;
2289 + flex-direction: row;
2290 + gap: 8px;
2291 + margin: 0;
2292 + padding: 0;
2293 +}
2294 +
2295 +.mxch-message-bubble .mxchat-featured-btn-details,
2296 +.mxch-message-bubble a.mxchat-featured-btn-details {
2297 + display: flex;
2298 + align-items: center;
2299 + justify-content: center;
2300 + flex: 1;
2301 + padding: 7px 10px;
2302 + font-size: 12px;
2303 + font-weight: 500;
2304 + border-radius: 6px;
2305 + text-decoration: none;
2306 + border: 1px solid #ddd;
2307 + background: transparent;
2308 + color: #1a1a1a;
2309 + text-align: center;
2310 + line-height: 1.2;
2311 +}
2312 +
2313 +.mxch-message-bubble .mxchat-featured-btn-cart,
2314 +.mxch-message-bubble button.mxchat-featured-btn-cart {
2315 + display: flex;
2316 + align-items: center;
2317 + justify-content: center;
2318 + flex: 1;
2319 + padding: 7px 10px;
2320 + font-size: 12px;
2321 + font-weight: 500;
2322 + border-radius: 6px;
2323 + border: none;
2324 + background: #212121;
2325 + color: #fff;
2326 + cursor: default;
2327 + opacity: 0.6;
2328 + line-height: 1.2;
2329 +}
2330 +
2331 +/* ==========================================================================
2332 + Leads Tab
2333 + ========================================================================== */
2334 +
2335 +.mxch-leads-stats {
2336 + display: grid;
2337 + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
2338 + gap: var(--mxch-spacing-lg);
2339 + margin-bottom: var(--mxch-spacing-xl);
2340 +}
2341 +
2342 +.mxch-leads-toppages {
2343 + margin-bottom: var(--mxch-spacing-xl);
2344 +}
2345 +
2346 +.mxch-leads-toppages-hint {
2347 + margin-left: auto;
2348 + font-size: 12px;
2349 + color: var(--mxch-text-muted);
2350 + font-weight: 400;
2351 +}
2352 +
2353 +.mxch-leads-toppages-list {
2354 + display: grid;
2355 + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
2356 + gap: var(--mxch-spacing-sm);
2357 +}
2358 +
2359 +.mxch-leads-toppage-row {
2360 + display: flex;
2361 + align-items: center;
2362 + justify-content: space-between;
2363 + gap: var(--mxch-spacing-sm);
2364 + padding: 10px 14px;
2365 + background: var(--mxch-card-bg);
2366 + border: 1px solid var(--mxch-card-border);
2367 + border-radius: var(--mxch-radius-md);
2368 + text-align: left;
109 2369 cursor: pointer;
2370 + transition: all var(--mxch-transition);
2371 + color: var(--mxch-text-primary);
2372 + font-size: 13px;
2373 +}
2374 +
2375 +.mxch-leads-toppage-row:hover {
2376 + border-color: var(--mxch-primary);
2377 + box-shadow: var(--mxch-card-shadow-hover);
2378 +}
2379 +
2380 +.mxch-leads-toppage-row.is-active {
2381 + border-color: var(--mxch-primary);
2382 + background: rgba(99, 102, 241, 0.06);
2383 +}
2384 +
2385 +.mxch-leads-toppage-title {
2386 + flex: 1 1 auto;
2387 + min-width: 0;
2388 + overflow: hidden;
2389 + text-overflow: ellipsis;
2390 + white-space: nowrap;
2391 +}
2392 +
2393 +.mxch-leads-toppage-count {
2394 + flex: 0 0 auto;
2395 + display: inline-flex;
2396 + align-items: center;
2397 + justify-content: center;
2398 + min-width: 28px;
2399 + height: 22px;
2400 + padding: 0 8px;
2401 + border-radius: 999px;
2402 + background: var(--mxch-primary);
2403 + color: #fff;
2404 + font-size: 11px;
110 2405 font-weight: 600;
2406 +}
2407 +
2408 +.mxch-leads-empty-mini {
2409 + padding: 12px;
2410 + text-align: center;
2411 + color: var(--mxch-text-muted);
2412 + font-size: 13px;
2413 +}
2414 +
2415 +/* Toolbar + card */
2416 +.mxch-leads-card {
2417 + padding: 0;
2418 + overflow: hidden;
2419 +}
2420 +
2421 +.mxch-leads-toolbar {
111 2422 display: flex;
112 2423 align-items: center;
113 - gap: 8px;
114 - transition: transform 0.2s ease, box-shadow 0.2s ease;
2424 + justify-content: space-between;
2425 + gap: var(--mxch-spacing-md);
2426 + padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2427 + border-bottom: 1px solid var(--mxch-card-border);
2428 + flex-wrap: wrap;
115 2429 }
116 2430
117 -.mxchat-action-button:hover {
118 - transform: translateY(-1px);
119 - box-shadow: 0 4px 12px rgba(120, 115, 245, 0.2);
2431 +.mxch-leads-toolbar-left,
2432 +.mxch-leads-toolbar-right {
2433 + display: flex;
2434 + align-items: center;
2435 + gap: var(--mxch-spacing-sm);
120 2436 }
121 2437
122 -.mxchat-action-button.loading {
123 - opacity: 0.7;
2438 +.mxch-leads-export {
2439 + position: relative;
2440 +}
2441 +
2442 +.mxch-leads-export-menu {
2443 + position: absolute;
2444 + right: 0;
2445 + top: calc(100% + 6px);
2446 + min-width: 240px;
2447 + background: var(--mxch-card-bg);
2448 + border: 1px solid var(--mxch-card-border);
2449 + border-radius: var(--mxch-radius-md);
2450 + box-shadow: var(--mxch-card-shadow-hover);
2451 + padding: 4px;
2452 + z-index: 20;
2453 + display: none;
2454 +}
2455 +
2456 +.mxch-leads-export-menu.is-open { display: block; }
2457 +
2458 +.mxch-leads-export-menu button {
2459 + display: block;
2460 + width: 100%;
2461 + padding: 8px 12px;
2462 + background: transparent;
2463 + border: none;
2464 + border-radius: 6px;
2465 + text-align: left;
2466 + color: var(--mxch-text-primary);
2467 + font-size: 13px;
2468 + cursor: pointer;
2469 +}
2470 +
2471 +.mxch-leads-export-menu button:hover:not(:disabled) {
2472 + background: rgba(99, 102, 241, 0.08);
2473 +}
2474 +
2475 +.mxch-leads-export-menu button:disabled {
2476 + color: var(--mxch-text-muted);
124 2477 cursor: not-allowed;
125 2478 }
126 2479
127 -.mxchat-action-button .dashicons {
2480 +/* Filters row */
2481 +.mxch-leads-filters {
2482 + display: flex;
2483 + align-items: center;
2484 + gap: var(--mxch-spacing-sm);
2485 + padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2486 + border-bottom: 1px solid var(--mxch-card-border);
2487 + flex-wrap: wrap;
2488 +}
2489 +
2490 +.mxch-leads-filters .mxch-search-wrapper {
2491 + flex: 1 1 260px;
2492 + min-width: 180px;
2493 +}
2494 +
2495 +.mxch-leads-filters .mxch-select {
2496 + height: 36px;
2497 + min-width: 160px;
2498 +}
2499 +
2500 +.mxch-leads-active-page-filter {
2501 + display: inline-flex;
2502 + align-items: center;
2503 + gap: 6px;
2504 + padding: 4px 6px 4px 10px;
2505 + background: rgba(99, 102, 241, 0.08);
2506 + border: 1px solid rgba(99, 102, 241, 0.28);
2507 + border-radius: 999px;
2508 + font-size: 12px;
2509 + color: var(--mxch-text-primary);
2510 + max-width: 280px;
2511 +}
2512 +
2513 +.mxch-leads-page-chip-label {
2514 + overflow: hidden;
2515 + text-overflow: ellipsis;
2516 + white-space: nowrap;
2517 +}
2518 +
2519 +.mxch-leads-page-chip-remove {
2520 + border: none;
2521 + background: transparent;
128 2522 font-size: 16px;
129 - width: 16px;
130 - height: 16px;
2523 + line-height: 1;
2524 + cursor: pointer;
2525 + padding: 0 4px;
2526 + color: var(--mxch-text-muted);
2527 +}
2528 +
2529 +.mxch-leads-page-chip-remove:hover {
2530 + color: var(--mxch-text-primary);
2531 +}
2532 +
2533 +/* Table */
2534 +.mxch-leads-table-wrap {
2535 + overflow-x: auto;
2536 +}
2537 +
2538 +.mxch-leads-table {
2539 + width: 100%;
2540 + border-collapse: separate;
2541 + border-spacing: 0;
2542 + font-size: 13px;
2543 +}
2544 +
2545 +.mxch-leads-table thead th {
2546 + padding: 10px 14px;
2547 + text-align: left;
2548 + background: var(--mxch-card-bg);
2549 + border-bottom: 1px solid var(--mxch-card-border);
2550 + color: var(--mxch-text-secondary);
2551 + font-weight: 600;
2552 + font-size: 11px;
2553 + text-transform: uppercase;
2554 + letter-spacing: 0.04em;
2555 + position: sticky;
2556 + top: 0;
2557 +}
2558 +
2559 +.mxch-leads-table tbody td {
2560 + padding: 12px 14px;
2561 + border-bottom: 1px solid var(--mxch-card-border);
2562 + vertical-align: middle;
2563 + color: var(--mxch-text-primary);
2564 +}
2565 +
2566 +.mxch-leads-table tbody tr:last-child td {
2567 + border-bottom: none;
2568 +}
2569 +
2570 +.mxch-leads-table tbody tr:hover {
2571 + background: rgba(99, 102, 241, 0.04);
2572 +}
2573 +
2574 +.mxch-leads-row.is-orphan .mxch-leads-lead-email {
2575 + font-style: italic;
2576 + color: var(--mxch-text-secondary);
2577 +}
2578 +
2579 +.mxch-leads-table { table-layout: fixed; }
2580 +
2581 +.mxch-leads-col-check { width: 40px; }
2582 +.mxch-leads-col-lead { width: auto; min-width: 280px; }
2583 +.mxch-leads-col-count { width: 130px; text-align: left; }
2584 +.mxch-leads-col-last { width: 110px; white-space: nowrap; }
2585 +.mxch-leads-col-page { width: 180px; max-width: 180px; }
2586 +.mxch-leads-col-actions { width: 170px; white-space: nowrap; text-align: right; }
2587 +
2588 +.mxch-leads-lead-cell {
2589 + display: flex;
2590 + flex-direction: column;
2591 + min-width: 0;
2592 + gap: 2px;
2593 +}
2594 +
2595 +.mxch-leads-lead-email {
2596 + font-weight: 500;
2597 + color: var(--mxch-text-primary);
2598 + overflow: hidden;
2599 + text-overflow: ellipsis;
2600 + white-space: nowrap;
2601 +}
2602 +
2603 +.mxch-leads-lead-name {
2604 + font-size: 11px;
2605 + color: var(--mxch-text-muted);
2606 + overflow: hidden;
2607 + text-overflow: ellipsis;
2608 + white-space: nowrap;
2609 +}
2610 +
2611 +.mxch-leads-muted { color: var(--mxch-text-muted); }
2612 +
2613 +.mxch-leads-pill {
2614 + display: inline-flex;
2615 + align-items: center;
2616 + justify-content: center;
2617 + min-width: 28px;
2618 + height: 22px;
2619 + padding: 0 8px;
2620 + border-radius: 999px;
2621 + background: rgba(99, 102, 241, 0.12);
2622 + color: var(--mxch-primary);
2623 + font-weight: 600;
2624 + font-size: 11px;
2625 +}
2626 +
2627 +.mxch-leads-pill-orphan {
2628 + background: rgba(245, 158, 11, 0.14);
2629 + color: var(--mxch-warning);
2630 +}
2631 +
2632 +.mxch-leads-pill-deleted {
2633 + background: rgba(100, 116, 139, 0.12);
2634 + color: var(--mxch-text-secondary);
2635 + border: 1px solid rgba(100, 116, 139, 0.22);
2636 + padding: 0 10px;
2637 +}
2638 +
2639 +/* Consent column (b062c4). Yes/No are recorded decisions; "not recorded"
2640 + renders via .mxch-leads-muted (different fact, different look). */
2641 +.mxch-leads-pill-consent-yes {
2642 + background: rgba(16, 185, 129, 0.14);
2643 + color: var(--mxch-success, #059669);
2644 +}
2645 +
2646 +.mxch-leads-pill-consent-no {
2647 + background: rgba(239, 68, 68, 0.12);
2648 + color: var(--mxch-danger, #dc2626);
2649 +}
2650 +
2651 +.mxch-leads-row.is-chat-deleted .mxch-leads-lead-email {
2652 + color: var(--mxch-text-secondary);
2653 +}
2654 +
2655 +.mxch-transcript-confirm-check {
2656 + display: flex;
2657 + gap: 10px;
2658 + align-items: flex-start;
2659 + padding: 10px 12px;
2660 + margin: 12px 0 4px;
2661 + background: rgba(99, 102, 241, 0.04);
2662 + border: 1px solid var(--mxch-card-border);
2663 + border-radius: var(--mxch-radius-md);
2664 + cursor: pointer;
2665 +}
2666 +
2667 +.mxch-transcript-confirm-check input[type="checkbox"] {
2668 + margin-top: 3px;
2669 + flex: 0 0 auto;
2670 +}
2671 +
2672 +.mxch-transcript-confirm-check strong {
2673 + display: block;
2674 + color: var(--mxch-text-primary);
2675 + font-weight: 600;
2676 + font-size: 13px;
2677 +}
2678 +
2679 +.mxch-transcript-confirm-sublabel {
2680 + display: block;
2681 + margin-top: 2px;
2682 + font-size: 12px;
2683 + color: var(--mxch-text-muted);
2684 + font-style: normal;
2685 +}
2686 +
2687 +.mxch-leads-page-link {
2688 + display: inline-block;
2689 + max-width: 100%;
2690 + overflow: hidden;
2691 + text-overflow: ellipsis;
2692 + white-space: nowrap;
2693 + vertical-align: middle;
2694 + color: var(--mxch-primary);
2695 + text-decoration: none;
2696 +}
2697 +
2698 +.mxch-leads-page-link:hover { text-decoration: underline; }
2699 +
2700 +.mxch-leads-col-actions .mxch-btn {
2701 + margin-left: 6px;
2702 +}
2703 +
2704 +.mxch-btn-danger-ghost {
2705 + color: #b91c1c;
2706 +}
2707 +
2708 +.mxch-btn-danger-ghost:hover {
2709 + background: rgba(185, 28, 28, 0.08);
2710 + color: #991b1b;
2711 +}
2712 +
2713 +.mxch-leads-empty,
2714 +.mxch-leads-loading {
2715 + padding: 40px 16px;
2716 + text-align: center;
2717 + color: var(--mxch-text-muted);
2718 +}
2719 +
2720 +.mxch-leads-empty-wrap {
2721 + display: flex;
2722 + flex-direction: column;
2723 + align-items: center;
2724 + gap: var(--mxch-spacing-sm);
2725 + color: var(--mxch-text-muted);
2726 +}
2727 +
2728 +.mxch-leads-empty-wrap svg { opacity: 0.6; }
2729 +
2730 +.mxch-leads-count {
2731 + font-size: 12px;
2732 + color: var(--mxch-text-muted);
2733 +}
2734 +
2735 +/* Confirm modal */
2736 +.mxch-leads-confirm-box {
2737 + max-width: 440px;
2738 +}
2739 +
2740 +.mxch-leads-confirm-warning {
2741 + color: var(--mxch-text-muted);
2742 + font-size: 12px;
2743 + margin-top: 8px;
2744 +}
2745 +
2746 +.mxch-leads-confirm-actions {
2747 + display: flex;
2748 + justify-content: flex-end;
2749 + gap: 8px;
2750 + padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
2751 + border-top: 1px solid var(--mxch-card-border);
2752 +}
2753 +
2754 +/* Responsive: tablet */
2755 +@media (max-width: 1024px) {
2756 + .mxch-leads-col-page { width: 140px; max-width: 140px; }
2757 + .mxch-leads-col-actions { width: 140px; }
2758 + .mxch-leads-col-actions .mxch-leads-view span { display: none; }
2759 +}
2760 +
2761 +/* Responsive: phone */
2762 +@media (max-width: 768px) {
2763 + .mxch-leads-col-page,
2764 + .mxch-leads-col-last {
2765 + display: none;
2766 + }
2767 + .mxch-leads-filters {
2768 + padding: var(--mxch-spacing-sm);
2769 + }
2770 + .mxch-leads-filters .mxch-select {
2771 + flex: 1 1 48%;
2772 + min-width: 0;
2773 + }
2774 + .mxch-leads-toolbar {
2775 + padding: var(--mxch-spacing-sm);
2776 + }
2777 + .mxch-leads-table thead th { padding: 8px 10px; font-size: 10px; }
2778 + .mxch-leads-table tbody td { padding: 10px; font-size: 12px; }
2779 +}
2780 +
2781 +@media (max-width: 480px) {
2782 + .mxch-leads-col-count { display: none; }
2783 + .mxch-leads-toppages-list { grid-template-columns: 1fr; }
2784 +}
2785 +
2786 +/* Satisfaction card on Transcripts dashboard (plan-a5b006). */
2787 +.mxch-satisfaction-card .mxch-card-body {
2788 + padding: var(--mxch-spacing-md);
2789 +}
2790 +.mxch-satisfaction-empty {
2791 + margin: 0;
2792 + padding: var(--mxch-spacing-sm) 0;
2793 + color: #6b7280;
2794 + font-size: 13px;
2795 + line-height: 1.5;
2796 +}
2797 +.mxch-satisfaction-list {
2798 + list-style: none;
2799 + margin: 0;
2800 + padding: 0;
2801 + display: flex;
2802 + flex-direction: column;
2803 + gap: 8px;
2804 +}
2805 +.mxch-satisfaction-row {
2806 + display: flex;
2807 + align-items: center;
2808 + gap: var(--mxch-spacing-md);
2809 + padding: 10px 12px;
2810 + background: #f9fafb;
2811 + border: 1px solid #f3f4f6;
2812 + border-radius: var(--mxch-radius-md, 8px);
2813 +}
2814 +.mxch-satisfaction-bot {
2815 + flex: 0 0 28%;
2816 + min-width: 0;
2817 + font-weight: 600;
2818 + font-size: 13px;
2819 + color: #1a1a2e;
2820 + overflow: hidden;
2821 + text-overflow: ellipsis;
2822 + white-space: nowrap;
2823 +}
2824 +.mxch-satisfaction-meta {
2825 + flex: 1;
2826 + display: flex;
2827 + align-items: center;
2828 + gap: 10px;
2829 + font-size: 12px;
2830 + color: #4b5563;
2831 + flex-wrap: wrap;
2832 +}
2833 +.mxch-satisfaction-total {
2834 + color: #6b7280;
2835 + white-space: nowrap;
2836 +}
2837 +.mxch-satisfaction-bar {
2838 + flex: 1;
2839 + min-width: 80px;
2840 + height: 6px;
2841 + background: #e5e7eb;
2842 + border-radius: 999px;
2843 + overflow: hidden;
2844 + display: flex;
2845 +}
2846 +.mxch-satisfaction-bar-up {
2847 + background: #10b981;
2848 + height: 100%;
2849 +}
2850 +.mxch-satisfaction-bar-down {
2851 + background: #ef4444;
2852 + height: 100%;
2853 +}
2854 +.mxch-satisfaction-pct {
2855 + display: inline-flex;
2856 + align-items: center;
2857 + gap: 4px;
2858 + font-weight: 600;
2859 + white-space: nowrap;
2860 +}
2861 +.mxch-satisfaction-pct-up { color: #047857; }
2862 +.mxch-satisfaction-pct-down { color: #b91c1c; }
2863 +@media (max-width: 600px) {
2864 + .mxch-satisfaction-row { flex-direction: column; align-items: flex-start; gap: 8px; }
2865 + .mxch-satisfaction-bot { flex: 1 1 100%; }
2866 + .mxch-satisfaction-meta { width: 100%; }
2867 +}
2868 +
2869 +/* Details drawer — Feedback row value (user-submitted rating feedback). */
2870 +.mxch-detail-feedback-value {
2871 + white-space: pre-wrap;
2872 + word-break: break-word;
2873 + max-width: 100%;
2874 + display: block;
2875 + margin-top: 4px;
2876 + opacity: 0.9;
2877 + font-style: italic;
131 2878 }