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