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