PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.0.5
MxChat – AI Chatbot & Content Generation for WordPress v3.0.5
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
mxchat-basic / css / actions.css

actions.css in MxChat – AI Chatbot & Content Generation for WordPress 3.0.5, at css/actions.css

1,730 lines 35.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ==========================================================================
2 MxChat Actions Page Styles - v2.0
3 Uses admin-sidebar.css for core layout/navigation styles
4 ========================================================================== */
5
6 /* ==========================================================================
7 Override parent content padding for split panel view
8 ========================================================================== */
9 .mxch-content:has(#all-actions.mxch-section.active) {
10 padding: 0 !important;
11 overflow: hidden;
12 }
13
14 #all-actions.mxch-section {
15 padding: 0;
16 margin: 0;
17 height: calc(100vh - 32px); /* Account for WP admin bar */
18 overflow: hidden;
19 }
20
21 /* Ensure the admin wrapper fills the viewport */
22 .mxch-actions-wrapper .mxch-content {
23 height: calc(100vh - 32px);
24 overflow: hidden;
25 }
26
27 .mxch-actions-wrapper {
28 height: calc(100vh - 32px);
29 }
30
31 /* ==========================================================================
32 Stats Grid
33 ========================================================================== */
34 .mxch-stats-grid {
35 display: grid;
36 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
37 gap: var(--mxch-spacing-lg);
38 margin-bottom: var(--mxch-spacing-xl);
39 }
40
41 .mxch-stat-card {
42 background: var(--mxch-card-bg);
43 border: 1px solid var(--mxch-card-border);
44 border-radius: var(--mxch-radius-lg);
45 padding: var(--mxch-spacing-lg);
46 display: flex;
47 align-items: center;
48 gap: var(--mxch-spacing-md);
49 transition: all var(--mxch-transition);
50 }
51
52 .mxch-stat-card:hover {
53 box-shadow: var(--mxch-card-shadow-hover);
54 transform: translateY(-2px);
55 }
56
57 .mxch-stat-icon {
58 width: 48px;
59 height: 48px;
60 border-radius: var(--mxch-radius-md);
61 display: flex;
62 align-items: center;
63 justify-content: center;
64 flex-shrink: 0;
65 }
66
67 .mxch-stat-icon svg {
68 width: 24px;
69 height: 24px;
70 }
71
72 .mxch-stat-icon-primary {
73 background: rgba(120, 115, 245, 0.1);
74 color: var(--mxch-primary);
75 }
76
77 .mxch-stat-icon-success {
78 background: rgba(16, 185, 129, 0.1);
79 color: var(--mxch-success);
80 }
81
82 .mxch-stat-icon-info {
83 background: rgba(59, 130, 246, 0.1);
84 color: var(--mxch-info);
85 }
86
87 .mxch-stat-icon-warning {
88 background: rgba(245, 158, 11, 0.1);
89 color: var(--mxch-warning);
90 }
91
92 .mxch-stat-content {
93 display: flex;
94 flex-direction: column;
95 }
96
97 .mxch-stat-value {
98 font-size: 28px;
99 font-weight: 700;
100 color: var(--mxch-text-primary);
101 line-height: 1.2;
102 }
103
104 .mxch-stat-label {
105 font-size: 13px;
106 color: var(--mxch-text-secondary);
107 margin-top: 2px;
108 }
109
110 /* ==========================================================================
111 Quick Actions
112 ========================================================================== */
113 .mxch-quick-actions {
114 display: flex;
115 flex-wrap: wrap;
116 gap: var(--mxch-spacing-md);
117 }
118
119 .mxch-quick-action-btn {
120 display: flex;
121 align-items: center;
122 gap: var(--mxch-spacing-sm);
123 padding: var(--mxch-spacing-md) var(--mxch-spacing-lg);
124 background: #f8fafc;
125 border: 1px solid var(--mxch-card-border);
126 border-radius: var(--mxch-radius-md);
127 color: var(--mxch-text-primary);
128 font-size: 14px;
129 font-weight: 500;
130 cursor: pointer;
131 transition: all var(--mxch-transition-fast);
132 }
133
134 .mxch-quick-action-btn:hover {
135 background: var(--mxch-primary);
136 border-color: var(--mxch-primary);
137 color: white;
138 }
139
140 .mxch-quick-action-btn svg {
141 flex-shrink: 0;
142 }
143
144 /* ==========================================================================
145 Info Section - What are Actions
146 ========================================================================== */
147 .mxch-info-section {
148 background: var(--mxch-card-bg);
149 border: 1px solid var(--mxch-card-border);
150 border-radius: var(--mxch-radius-lg);
151 padding: var(--mxch-spacing-lg);
152 margin-top: var(--mxch-spacing-lg);
153 }
154
155 .mxch-info-section-header {
156 display: flex;
157 align-items: center;
158 gap: var(--mxch-spacing-sm);
159 margin-bottom: var(--mxch-spacing-md);
160 }
161
162 .mxch-info-section-icon {
163 display: flex;
164 align-items: center;
165 justify-content: center;
166 width: 40px;
167 height: 40px;
168 background: var(--mxch-primary);
169 border-radius: 10px;
170 color: white;
171 flex-shrink: 0;
172 }
173
174 .mxch-info-section-title {
175 font-size: 18px;
176 font-weight: 600;
177 color: var(--mxch-text-primary);
178 margin: 0;
179 }
180
181 .mxch-info-section-desc {
182 font-size: 14px;
183 line-height: 1.7;
184 color: var(--mxch-text-secondary);
185 margin: 0 0 var(--mxch-spacing-lg) 0;
186 }
187
188 .mxch-info-features {
189 display: grid;
190 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
191 gap: var(--mxch-spacing-md);
192 }
193
194 .mxch-info-feature {
195 display: flex;
196 gap: var(--mxch-spacing-sm);
197 padding: var(--mxch-spacing-md);
198 background: #f9fafb;
199 border: 1px solid var(--mxch-card-border);
200 border-radius: var(--mxch-radius-md);
201 }
202
203 .mxch-info-feature-icon {
204 display: flex;
205 align-items: center;
206 justify-content: center;
207 width: 36px;
208 height: 36px;
209 background: var(--mxch-primary);
210 border-radius: 8px;
211 color: white;
212 flex-shrink: 0;
213 }
214
215 .mxch-info-feature-content {
216 display: flex;
217 flex-direction: column;
218 gap: 2px;
219 }
220
221 .mxch-info-feature-title {
222 font-size: 14px;
223 font-weight: 600;
224 color: var(--mxch-text-primary);
225 }
226
227 .mxch-info-feature-desc {
228 font-size: 12px;
229 color: var(--mxch-text-secondary);
230 line-height: 1.5;
231 }
232
233 /* ==========================================================================
234 Empty Text
235 ========================================================================== */
236 .mxch-empty-text {
237 font-size: 13px;
238 color: var(--mxch-text-secondary);
239 text-align: center;
240 padding: var(--mxch-spacing-md);
241 margin: 0;
242 background: rgba(120, 115, 245, 0.1);
243 padding: 2px 10px;
244 border-radius: 12px;
245 }
246
247 .mxch-empty-text {
248 color: #9ca3af;
249 font-size: 13px;
250 text-align: center;
251 padding: 20px;
252 }
253
254 /* ==========================================================================
255 Split Panel Layout - Action List + Editor
256 ========================================================================== */
257 .mxch-split-panel {
258 display: flex;
259 height: 100%;
260 background: #fff;
261 border: none;
262 border-radius: 0;
263 overflow: hidden;
264 }
265
266 /* Left Panel - Action List */
267 .mxch-action-list-panel {
268 width: 360px;
269 min-width: 300px;
270 max-width: 440px;
271 display: flex;
272 height: 100%;
273 overflow: hidden;
274 flex-direction: column;
275 border-right: 1px solid #e5e7eb;
276 background: #fff;
277 }
278
279 /* Bulk Actions Toolbar */
280 .mxch-bulk-toolbar {
281 display: flex;
282 align-items: center;
283 gap: 8px;
284 padding: 10px 12px;
285 background: #f8fafc;
286 border-bottom: 1px solid #e5e7eb;
287 }
288
289 .mxch-bulk-select-all {
290 display: flex;
291 align-items: center;
292 gap: 6px;
293 font-size: 12px;
294 color: #6b7280;
295 cursor: pointer;
296 }
297
298 .mxch-bulk-select-all input[type="checkbox"] {
299 width: 16px;
300 height: 16px;
301 cursor: pointer;
302 accent-color: #3b82f6;
303 }
304
305 .mxch-bulk-actions {
306 display: flex;
307 align-items: center;
308 gap: 4px;
309 margin-left: auto;
310 }
311
312 .mxch-bulk-btn {
313 display: flex;
314 align-items: center;
315 gap: 4px;
316 padding: 6px 10px;
317 font-size: 12px;
318 font-weight: 500;
319 background: #fff;
320 border: 1px solid #e5e7eb;
321 border-radius: 6px;
322 color: #374151;
323 cursor: pointer;
324 transition: all 0.15s;
325 }
326
327 .mxch-bulk-btn:hover {
328 background: #f3f4f6;
329 border-color: #d1d5db;
330 }
331
332 .mxch-bulk-btn.mxch-bulk-delete {
333 color: #dc2626;
334 border-color: #fecaca;
335 }
336
337 .mxch-bulk-btn.mxch-bulk-delete:hover {
338 background: #fef2f2;
339 border-color: #fca5a5;
340 }
341
342 .mxch-bulk-btn:disabled {
343 opacity: 0.5;
344 cursor: not-allowed;
345 }
346
347 .mxch-filter-select {
348 padding: 6px 10px;
349 font-size: 12px;
350 border: 1px solid #e5e7eb;
351 border-radius: 6px;
352 background: #fff;
353 color: #374151;
354 cursor: pointer;
355 max-width: 140px;
356 }
357
358 .mxch-selected-count {
359 font-size: 11px;
360 color: #3b82f6;
361 font-weight: 600;
362 padding: 2px 8px;
363 background: #eff6ff;
364 border-radius: 10px;
365 display: none;
366 }
367
368 .mxch-selected-count.has-selection {
369 display: inline-block;
370 }
371
372 .mxch-panel-header {
373 padding: 0;
374 border-bottom: 1px solid #e5e7eb;
375 }
376
377 .mxch-panel-title-row {
378 display: flex;
379 align-items: center;
380 justify-content: space-between;
381 padding: 10px 12px;
382 border-bottom: 1px solid #f3f4f6;
383 }
384
385 .mxch-panel-count {
386 font-size: 12px;
387 font-weight: 600;
388 color: #374151;
389 }
390
391 .mxch-panel-actions {
392 display: flex;
393 gap: 4px;
394 }
395
396 .mxch-icon-btn {
397 width: 32px;
398 height: 32px;
399 border: none;
400 background: transparent;
401 color: #6b7280;
402 border-radius: 6px;
403 cursor: pointer;
404 display: flex;
405 align-items: center;
406 justify-content: center;
407 transition: all 0.15s;
408 }
409
410 .mxch-icon-btn:hover {
411 background: #f3f4f6;
412 color: #374151;
413 }
414
415 .mxch-btn-danger-icon:hover {
416 background: #fef2f2;
417 color: #dc2626;
418 }
419
420 .mxch-icon-btn.spinning svg {
421 animation: spin 0.5s linear;
422 }
423
424 @keyframes spin {
425 from { transform: rotate(0deg); }
426 to { transform: rotate(360deg); }
427 }
428
429 /* Search */
430 .mxch-search-wrapper {
431 position: relative;
432 background: #fff;
433 }
434
435 .mxch-search-wrapper svg {
436 position: absolute;
437 left: 12px;
438 top: 50%;
439 transform: translateY(-50%);
440 color: #9ca3af;
441 pointer-events: none;
442 width: 14px;
443 height: 14px;
444 z-index: 1;
445 }
446
447 .mxch-search-input {
448 width: 100%;
449 padding: 10px 12px 10px 34px;
450 border: none;
451 border-radius: 0;
452 font-size: 13px;
453 background: #fff;
454 transition: all 0.15s;
455 box-sizing: border-box;
456 }
457
458 .mxch-search-input:focus {
459 outline: none;
460 background: #fff;
461 box-shadow: none;
462 }
463
464 .mxch-search-input::placeholder {
465 color: #9ca3af;
466 }
467
468 /* Action List */
469 .mxch-action-list {
470 flex: 1;
471 overflow-y: auto;
472 overflow-x: hidden;
473 min-height: 0; /* Important for flex children to allow scroll */
474 }
475
476 .mxch-action-item {
477 display: flex;
478 align-items: center;
479 gap: 10px;
480 padding: 12px;
481 cursor: pointer;
482 border-bottom: 1px solid #f3f4f6;
483 transition: background 0.15s;
484 position: relative;
485 }
486
487 .mxch-action-item:hover {
488 background: #f9fafb;
489 }
490
491 .mxch-action-item.active {
492 background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
493 border-left: 3px solid var(--mxch-primary);
494 padding-left: 9px;
495 }
496
497 .mxch-action-item.selected {
498 background: #f5f3ff;
499 }
500
501 .mxch-action-item.disabled {
502 opacity: 0.6;
503 }
504
505 /* Checkbox for action items */
506 .mxch-action-checkbox {
507 width: 16px;
508 height: 16px;
509 flex-shrink: 0;
510 cursor: pointer;
511 accent-color: var(--mxch-primary);
512 opacity: 0;
513 transition: opacity 0.15s;
514 }
515
516 .mxch-action-item:hover .mxch-action-checkbox,
517 .mxch-action-item.selected .mxch-action-checkbox,
518 .mxch-action-list.selection-mode .mxch-action-checkbox {
519 opacity: 1;
520 }
521
522 .mxch-action-icon {
523 width: 36px;
524 height: 36px;
525 border-radius: 8px;
526 background: rgba(120, 115, 245, 0.1);
527 display: flex;
528 align-items: center;
529 justify-content: center;
530 flex-shrink: 0;
531 }
532
533 .mxch-action-icon .dashicons {
534 color: var(--mxch-primary);
535 font-size: 18px;
536 width: 18px;
537 height: 18px;
538 }
539
540 .mxch-action-info {
541 flex: 1;
542 min-width: 0;
543 }
544
545 .mxch-action-name {
546 font-size: 14px;
547 font-weight: 600;
548 color: #111827;
549 white-space: nowrap;
550 overflow: hidden;
551 text-overflow: ellipsis;
552 }
553
554 .mxch-action-type-label {
555 font-size: 12px;
556 color: #6b7280;
557 white-space: nowrap;
558 overflow: hidden;
559 text-overflow: ellipsis;
560 margin-top: 2px;
561 }
562
563 .mxch-action-meta {
564 display: flex;
565 flex-direction: column;
566 align-items: flex-end;
567 gap: 4px;
568 flex-shrink: 0;
569 }
570
571 .mxch-action-status {
572 display: inline-flex;
573 align-items: center;
574 padding: 2px 8px;
575 border-radius: 10px;
576 font-size: 10px;
577 font-weight: 600;
578 text-transform: uppercase;
579 }
580
581 .mxch-action-status.enabled {
582 background: rgba(16, 185, 129, 0.1);
583 color: #059669;
584 }
585
586 .mxch-action-status.disabled {
587 background: rgba(100, 116, 139, 0.1);
588 color: #64748b;
589 }
590
591 .mxch-list-loading,
592 .mxch-list-empty {
593 display: flex;
594 align-items: center;
595 justify-content: center;
596 padding: 40px 20px;
597 color: #9ca3af;
598 font-size: 13px;
599 }
600
601 .mxch-panel-footer {
602 padding: 8px 12px;
603 border-top: 1px solid #e5e7eb;
604 background: #f9fafb;
605 }
606
607 .mxch-pagination-btns {
608 display: flex;
609 align-items: center;
610 justify-content: center;
611 gap: 8px;
612 }
613
614 .mxch-page-btn {
615 width: 32px;
616 height: 32px;
617 border: 1px solid #e5e7eb;
618 background: #fff;
619 border-radius: 6px;
620 cursor: pointer;
621 display: flex;
622 align-items: center;
623 justify-content: center;
624 font-size: 14px;
625 color: #374151;
626 transition: all 0.15s;
627 }
628
629 .mxch-page-btn:hover {
630 background: #f3f4f6;
631 border-color: #d1d5db;
632 }
633
634 .mxch-page-info {
635 font-size: 12px;
636 color: #6b7280;
637 }
638
639 /* ==========================================================================
640 Right Panel - Action Details/Editor
641 ========================================================================== */
642 .mxch-action-detail-panel {
643 flex: 1;
644 display: flex;
645 flex-direction: column;
646 background: #f9fafb;
647 overflow: hidden;
648 height: 100%;
649 min-height: 0;
650 }
651
652 /* Empty State */
653 .mxch-action-empty {
654 flex: 1;
655 display: flex;
656 flex-direction: column;
657 align-items: center;
658 justify-content: center;
659 color: #9ca3af;
660 text-align: center;
661 padding: 40px;
662 }
663
664 .mxch-empty-icon {
665 margin-bottom: 16px;
666 opacity: 0.5;
667 }
668
669 .mxch-action-empty h3 {
670 font-size: 16px;
671 font-weight: 600;
672 color: #6b7280;
673 margin: 0 0 8px 0;
674 }
675
676 .mxch-action-empty p {
677 font-size: 13px;
678 margin: 0 0 20px 0;
679 }
680
681 /* ==========================================================================
682 Editor Steps
683 ========================================================================== */
684 .mxch-action-editor {
685 display: flex;
686 flex-direction: column;
687 height: 100%;
688 overflow: hidden;
689 min-height: 0;
690 }
691
692 .mxch-editor-step {
693 display: none;
694 flex-direction: column;
695 height: 100%;
696 overflow: hidden;
697 min-height: 0;
698 }
699
700 .mxch-editor-step.active {
701 display: flex;
702 }
703
704 .mxch-editor-header {
705 display: flex;
706 align-items: center;
707 gap: 12px;
708 padding: 16px 20px;
709 background: #fff;
710 border-bottom: 1px solid #e5e7eb;
711 flex-shrink: 0;
712 }
713
714 .mxch-editor-title {
715 flex: 1;
716 font-size: 16px;
717 font-weight: 600;
718 color: #111827;
719 margin: 0;
720 }
721
722 .mxch-header-actions {
723 display: flex;
724 align-items: center;
725 gap: 8px;
726 }
727
728 .mxch-editor-close {
729 width: 32px;
730 height: 32px;
731 border: none;
732 background: transparent;
733 color: #6b7280;
734 border-radius: 6px;
735 cursor: pointer;
736 display: flex;
737 align-items: center;
738 justify-content: center;
739 transition: all 0.15s;
740 }
741
742 .mxch-editor-close:hover {
743 background: #f3f4f6;
744 color: #111827;
745 }
746
747 .mxch-back-btn {
748 display: flex;
749 align-items: center;
750 gap: 6px;
751 padding: 6px 12px;
752 font-size: 13px;
753 font-weight: 500;
754 background: transparent;
755 border: none;
756 color: var(--mxch-primary);
757 cursor: pointer;
758 transition: all 0.15s;
759 }
760
761 .mxch-back-btn:hover {
762 color: #6366f1;
763 }
764
765 /* Type Search & Categories */
766 .mxch-type-search {
767 position: relative;
768 padding: 16px 20px;
769 background: #fff;
770 border-bottom: 1px solid #e5e7eb;
771 }
772
773 .mxch-type-search svg {
774 position: absolute;
775 left: 32px;
776 top: 50%;
777 transform: translateY(-50%);
778 color: #9ca3af;
779 pointer-events: none;
780 }
781
782 .mxch-type-search input {
783 width: 100%;
784 padding: 10px 12px 10px 40px;
785 border: 1px solid #e5e7eb;
786 border-radius: 8px;
787 font-size: 14px;
788 background: #f9fafb;
789 transition: all 0.15s;
790 }
791
792 .mxch-type-search input:focus {
793 outline: none;
794 border-color: var(--mxch-primary);
795 background: #fff;
796 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
797 }
798
799 .mxch-type-categories {
800 display: flex;
801 gap: 8px;
802 padding: 12px 20px;
803 background: #fff;
804 border-bottom: 1px solid #e5e7eb;
805 flex-wrap: wrap;
806 }
807
808 .mxch-category-btn {
809 padding: 6px 14px;
810 font-size: 13px;
811 font-weight: 500;
812 background: #f3f4f6;
813 border: 1px solid transparent;
814 border-radius: 20px;
815 color: #6b7280;
816 cursor: pointer;
817 transition: all 0.15s;
818 }
819
820 .mxch-category-btn:hover {
821 background: #e5e7eb;
822 color: #374151;
823 }
824
825 .mxch-category-btn.active {
826 background: var(--mxch-primary);
827 color: #fff;
828 }
829
830 /* Types Grid */
831 .mxch-types-grid {
832 display: grid;
833 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
834 gap: 12px;
835 padding: 20px;
836 flex: 1;
837 overflow-y: auto;
838 overflow-x: hidden;
839 align-content: start;
840 min-height: 0;
841 }
842
843 .mxch-type-card {
844 display: flex;
845 align-items: center;
846 gap: 14px;
847 padding: 14px;
848 background: #fff;
849 border: 1px solid #e5e7eb;
850 border-radius: 10px;
851 cursor: pointer;
852 transition: all 0.15s;
853 }
854
855 .mxch-type-card:hover {
856 border-color: var(--mxch-primary);
857 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.1);
858 transform: translateY(-2px);
859 }
860
861 .mxch-type-card.selected {
862 border-color: var(--mxch-primary);
863 background: #f5f3ff;
864 }
865
866 .mxch-type-card.mxch-type-pro {
867 opacity: 0.7;
868 }
869
870 .mxch-type-card.mxch-type-addon {
871 opacity: 0.7;
872 }
873
874 .mxch-type-icon {
875 width: 44px;
876 height: 44px;
877 border-radius: 10px;
878 background: rgba(120, 115, 245, 0.1);
879 display: flex;
880 align-items: center;
881 justify-content: center;
882 flex-shrink: 0;
883 }
884
885 .mxch-type-icon .dashicons {
886 color: var(--mxch-primary);
887 font-size: 22px;
888 width: 22px;
889 height: 22px;
890 }
891
892 .mxch-type-pro .mxch-type-icon {
893 background: linear-gradient(135deg, #7873f5, #fa73e6);
894 }
895
896 .mxch-type-pro .mxch-type-icon .dashicons {
897 color: #fff;
898 }
899
900 .mxch-type-info {
901 flex: 1;
902 min-width: 0;
903 }
904
905 .mxch-type-info h4 {
906 font-size: 14px;
907 font-weight: 600;
908 color: #111827;
909 margin: 0 0 4px 0;
910 }
911
912 .mxch-type-info p {
913 font-size: 12px;
914 color: #6b7280;
915 margin: 0;
916 line-height: 1.4;
917 }
918
919 .mxch-badge {
920 display: inline-block;
921 padding: 2px 8px;
922 border-radius: 10px;
923 font-size: 10px;
924 font-weight: 600;
925 margin-top: 6px;
926 }
927
928 .mxch-badge-pro {
929 background: linear-gradient(135deg, #7873f5, #fa73e6);
930 color: #fff;
931 }
932
933 .mxch-badge-addon {
934 background: rgba(245, 158, 11, 0.1);
935 color: #b45309;
936 }
937
938 /* ==========================================================================
939 Step 2 - Configure Action
940 ========================================================================== */
941 .mxch-selected-type {
942 display: flex;
943 align-items: center;
944 gap: 14px;
945 padding: 16px 20px;
946 background: #f5f3ff;
947 border-bottom: 1px solid #e5e7eb;
948 }
949
950 .mxch-selected-type-icon {
951 width: 44px;
952 height: 44px;
953 border-radius: 10px;
954 background: rgba(120, 115, 245, 0.2);
955 display: flex;
956 align-items: center;
957 justify-content: center;
958 flex-shrink: 0;
959 }
960
961 .mxch-selected-type-icon .dashicons {
962 color: var(--mxch-primary);
963 font-size: 22px;
964 width: 22px;
965 height: 22px;
966 }
967
968 .mxch-selected-type-info {
969 flex: 1;
970 }
971
972 .mxch-selected-type-info h4 {
973 font-size: 15px;
974 font-weight: 600;
975 color: #111827;
976 margin: 0 0 4px 0;
977 }
978
979 .mxch-selected-type-info p {
980 font-size: 13px;
981 color: #6b7280;
982 margin: 0;
983 }
984
985 /* Form Styles */
986 #mxch-action-form {
987 flex: 1;
988 display: flex;
989 flex-direction: column;
990 padding: 20px;
991 overflow-y: auto;
992 overflow-x: hidden;
993 background: #fff;
994 min-height: 0;
995 }
996
997 .mxch-form-group {
998 margin-bottom: 20px;
999 }
1000
1001 .mxch-form-group label {
1002 display: flex;
1003 align-items: center;
1004 justify-content: space-between;
1005 margin-bottom: 8px;
1006 font-size: 14px;
1007 font-weight: 600;
1008 color: #374151;
1009 }
1010
1011 .mxch-form-group input[type="text"],
1012 .mxch-form-group textarea {
1013 width: 100%;
1014 padding: 12px 14px;
1015 border: 1px solid #e5e7eb;
1016 border-radius: 8px;
1017 font-size: 14px;
1018 background: #f9fafb;
1019 transition: all 0.15s;
1020 box-sizing: border-box;
1021 }
1022
1023 .mxch-form-group input[type="text"]:focus,
1024 .mxch-form-group textarea:focus {
1025 outline: none;
1026 border-color: var(--mxch-primary);
1027 background: #fff;
1028 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
1029 }
1030
1031 .mxch-form-group textarea {
1032 resize: vertical;
1033 min-height: 100px;
1034 }
1035
1036 .mxch-form-hint {
1037 font-size: 12px;
1038 color: #9ca3af;
1039 margin-top: 6px;
1040 }
1041
1042 /* Threshold Slider */
1043 .mxch-threshold-value {
1044 font-size: 14px;
1045 font-weight: 600;
1046 color: var(--mxch-primary);
1047 background: rgba(120, 115, 245, 0.1);
1048 padding: 2px 8px;
1049 border-radius: 6px;
1050 }
1051
1052 .mxch-form-group input[type="range"] {
1053 width: 100%;
1054 height: 6px;
1055 border-radius: 3px;
1056 background: rgba(120, 115, 245, 0.2);
1057 outline: none;
1058 -webkit-appearance: none;
1059 margin: 10px 0;
1060 }
1061
1062 .mxch-form-group input[type="range"]::-webkit-slider-thumb {
1063 -webkit-appearance: none;
1064 width: 18px;
1065 height: 18px;
1066 border-radius: 50%;
1067 background: linear-gradient(135deg, #7873f5, #fa73e6);
1068 cursor: pointer;
1069 border: 2px solid #fff;
1070 box-shadow: 0 2px 6px rgba(120, 115, 245, 0.3);
1071 }
1072
1073 .mxch-form-group input[type="range"]::-moz-range-thumb {
1074 width: 18px;
1075 height: 18px;
1076 border-radius: 50%;
1077 background: linear-gradient(135deg, #7873f5, #fa73e6);
1078 cursor: pointer;
1079 border: 2px solid #fff;
1080 box-shadow: 0 2px 6px rgba(120, 115, 245, 0.3);
1081 }
1082
1083 /* Bot Selector */
1084 .mxch-bot-selector {
1085 display: flex;
1086 flex-direction: column;
1087 gap: 10px;
1088 }
1089
1090 .mxch-checkbox-label {
1091 display: flex;
1092 align-items: center;
1093 gap: 10px;
1094 font-size: 14px;
1095 color: #374151;
1096 cursor: pointer;
1097 padding: 10px 14px;
1098 background: #f9fafb;
1099 border-radius: 8px;
1100 border: 1px solid #e5e7eb;
1101 transition: all 0.15s;
1102 }
1103
1104 .mxch-checkbox-label:hover {
1105 background: #f3f4f6;
1106 border-color: #d1d5db;
1107 }
1108
1109 .mxch-checkbox-label input[type="checkbox"] {
1110 width: 18px;
1111 height: 18px;
1112 accent-color: var(--mxch-primary);
1113 cursor: pointer;
1114 }
1115
1116 /* Form Actions */
1117 .mxch-form-actions {
1118 display: flex;
1119 justify-content: flex-end;
1120 gap: 10px;
1121 padding-top: 20px;
1122 margin-top: auto;
1123 border-top: 1px solid #e5e7eb;
1124 }
1125
1126 /* ==========================================================================
1127 Action View (Viewing Details)
1128 ========================================================================== */
1129 .mxch-header-actions {
1130 display: flex;
1131 align-items: center;
1132 gap: 8px;
1133 }
1134
1135 .mxch-toggle-switch {
1136 position: relative;
1137 display: inline-block;
1138 width: 44px;
1139 height: 24px;
1140 }
1141
1142 .mxch-toggle-switch input {
1143 opacity: 0;
1144 width: 0;
1145 height: 0;
1146 }
1147
1148 .mxch-toggle-slider {
1149 position: absolute;
1150 cursor: pointer;
1151 top: 0;
1152 left: 0;
1153 right: 0;
1154 bottom: 0;
1155 background-color: #d1d5db;
1156 transition: 0.3s;
1157 border-radius: 24px;
1158 }
1159
1160 .mxch-toggle-slider:before {
1161 position: absolute;
1162 content: "";
1163 height: 18px;
1164 width: 18px;
1165 left: 3px;
1166 bottom: 3px;
1167 background-color: white;
1168 transition: 0.3s;
1169 border-radius: 50%;
1170 }
1171
1172 .mxch-toggle-switch input:checked + .mxch-toggle-slider {
1173 background: linear-gradient(135deg, #7873f5, #fa73e6);
1174 }
1175
1176 .mxch-toggle-switch input:checked + .mxch-toggle-slider:before {
1177 transform: translateX(20px);
1178 }
1179
1180 .mxch-action-details {
1181 padding: 20px;
1182 flex: 1;
1183 overflow-y: auto;
1184 overflow-x: hidden;
1185 min-height: 0;
1186 }
1187
1188 .mxch-detail-card {
1189 display: flex;
1190 align-items: center;
1191 gap: 16px;
1192 padding: 16px;
1193 background: #fff;
1194 border: 1px solid #e5e7eb;
1195 border-radius: 12px;
1196 margin-bottom: 20px;
1197 }
1198
1199 .mxch-detail-icon {
1200 width: 52px;
1201 height: 52px;
1202 border-radius: 12px;
1203 background: rgba(120, 115, 245, 0.1);
1204 display: flex;
1205 align-items: center;
1206 justify-content: center;
1207 flex-shrink: 0;
1208 }
1209
1210 .mxch-detail-icon .dashicons {
1211 color: var(--mxch-primary);
1212 font-size: 26px;
1213 width: 26px;
1214 height: 26px;
1215 }
1216
1217 .mxch-detail-content h4 {
1218 font-size: 18px;
1219 font-weight: 600;
1220 color: #111827;
1221 margin: 0 0 4px 0;
1222 }
1223
1224 .mxch-detail-type {
1225 font-size: 13px;
1226 color: #6b7280;
1227 margin: 0;
1228 }
1229
1230 .mxch-detail-section {
1231 background: #fff;
1232 border: 1px solid #e5e7eb;
1233 border-radius: 12px;
1234 padding: 16px;
1235 margin-bottom: 16px;
1236 }
1237
1238 .mxch-detail-section h5 {
1239 font-size: 13px;
1240 font-weight: 600;
1241 color: #6b7280;
1242 text-transform: uppercase;
1243 letter-spacing: 0.5px;
1244 margin: 0 0 12px 0;
1245 }
1246
1247 .mxch-phrases-list {
1248 display: flex;
1249 flex-wrap: wrap;
1250 gap: 8px;
1251 }
1252
1253 .mxch-phrase-tag {
1254 display: inline-block;
1255 padding: 6px 12px;
1256 background: #f3f4f6;
1257 border-radius: 6px;
1258 font-size: 13px;
1259 color: #374151;
1260 }
1261
1262 .mxch-settings-grid {
1263 display: grid;
1264 grid-template-columns: repeat(2, 1fr);
1265 gap: 12px;
1266 }
1267
1268 .mxch-setting-item {
1269 display: flex;
1270 flex-direction: column;
1271 gap: 4px;
1272 }
1273
1274 .mxch-setting-label {
1275 font-size: 12px;
1276 color: #9ca3af;
1277 }
1278
1279 .mxch-setting-value {
1280 font-size: 14px;
1281 font-weight: 600;
1282 color: #111827;
1283 }
1284
1285 .mxch-setting-value.mxch-status-badge {
1286 display: inline-block;
1287 padding: 4px 10px;
1288 border-radius: 6px;
1289 font-size: 12px;
1290 width: fit-content;
1291 }
1292
1293 .mxch-setting-value.mxch-status-enabled {
1294 background: rgba(16, 185, 129, 0.1);
1295 color: #059669;
1296 }
1297
1298 .mxch-setting-value.mxch-status-disabled {
1299 background: rgba(100, 116, 139, 0.1);
1300 color: #64748b;
1301 }
1302
1303 .mxch-bots-list {
1304 display: flex;
1305 flex-wrap: wrap;
1306 gap: 8px;
1307 }
1308
1309 .mxch-bot-tag {
1310 display: inline-flex;
1311 align-items: center;
1312 gap: 6px;
1313 padding: 6px 12px;
1314 background: rgba(120, 115, 245, 0.1);
1315 border-radius: 6px;
1316 font-size: 13px;
1317 color: var(--mxch-primary);
1318 font-weight: 500;
1319 }
1320
1321 /* ==========================================================================
1322 Buttons
1323 ========================================================================== */
1324 .mxch-btn {
1325 display: inline-flex;
1326 align-items: center;
1327 justify-content: center;
1328 gap: 8px;
1329 padding: 10px 18px;
1330 font-size: 14px;
1331 font-weight: 500;
1332 border-radius: 8px;
1333 cursor: pointer;
1334 transition: all 0.15s;
1335 border: none;
1336 }
1337
1338 .mxch-btn-sm {
1339 padding: 8px 14px;
1340 font-size: 13px;
1341 }
1342
1343 .mxch-btn-primary {
1344 background: linear-gradient(135deg, #7873f5, #8b5cf6);
1345 color: #fff;
1346 }
1347
1348 .mxch-btn-primary:hover {
1349 background: linear-gradient(135deg, #6366f1, #7c3aed);
1350 transform: translateY(-1px);
1351 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.3);
1352 }
1353
1354 .mxch-btn-secondary {
1355 background: #f3f4f6;
1356 color: #374151;
1357 border: 1px solid #e5e7eb;
1358 }
1359
1360 .mxch-btn-secondary:hover {
1361 background: #e5e7eb;
1362 }
1363
1364 .mxch-btn-danger {
1365 background: #dc2626;
1366 color: #fff;
1367 }
1368
1369 .mxch-btn-danger:hover {
1370 background: #b91c1c;
1371 }
1372
1373 /* ==========================================================================
1374 Loading & Modal
1375 ========================================================================== */
1376 .mxch-loading-overlay {
1377 position: fixed;
1378 top: 0;
1379 left: 0;
1380 right: 0;
1381 bottom: 0;
1382 background: rgba(0, 0, 0, 0.5);
1383 display: flex;
1384 flex-direction: column;
1385 align-items: center;
1386 justify-content: center;
1387 z-index: 100001;
1388 }
1389
1390 .mxch-loading-spinner {
1391 width: 40px;
1392 height: 40px;
1393 border-radius: 50%;
1394 border: 3px solid transparent;
1395 border-top-color: var(--mxch-primary);
1396 border-right-color: var(--mxch-primary);
1397 animation: spin 0.8s linear infinite;
1398 margin-bottom: 16px;
1399 }
1400
1401 .mxch-loading-text {
1402 color: #fff;
1403 font-size: 14px;
1404 font-weight: 500;
1405 }
1406
1407 .mxch-modal-overlay {
1408 position: fixed;
1409 top: 0;
1410 left: 0;
1411 right: 0;
1412 bottom: 0;
1413 background: rgba(0, 0, 0, 0.5);
1414 display: flex;
1415 align-items: center;
1416 justify-content: center;
1417 z-index: 100000;
1418 }
1419
1420 .mxch-modal-content {
1421 background: #fff;
1422 border-radius: 12px;
1423 width: 90%;
1424 max-width: 500px;
1425 box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
1426 }
1427
1428 .mxch-modal-sm {
1429 max-width: 400px;
1430 }
1431
1432 .mxch-modal-header {
1433 display: flex;
1434 align-items: center;
1435 justify-content: space-between;
1436 padding: 16px 20px;
1437 border-bottom: 1px solid #e5e7eb;
1438 }
1439
1440 .mxch-modal-header h2 {
1441 font-size: 16px;
1442 font-weight: 600;
1443 color: #111827;
1444 margin: 0;
1445 }
1446
1447 .mxch-modal-close {
1448 width: 32px;
1449 height: 32px;
1450 border: none;
1451 background: transparent;
1452 color: #6b7280;
1453 font-size: 24px;
1454 cursor: pointer;
1455 display: flex;
1456 align-items: center;
1457 justify-content: center;
1458 border-radius: 6px;
1459 transition: all 0.15s;
1460 }
1461
1462 .mxch-modal-close:hover {
1463 background: #f3f4f6;
1464 color: #111827;
1465 }
1466
1467 .mxch-modal-body {
1468 padding: 20px;
1469 }
1470
1471 .mxch-modal-body p {
1472 font-size: 14px;
1473 color: #6b7280;
1474 margin: 0;
1475 }
1476
1477 .mxch-modal-footer {
1478 display: flex;
1479 justify-content: flex-end;
1480 gap: 10px;
1481 padding: 16px 20px;
1482 border-top: 1px solid #e5e7eb;
1483 }
1484
1485 /* ==========================================================================
1486 Responsive
1487 ========================================================================== */
1488
1489 /* Mobile-first: Show list by default, hide detail panel until action selected */
1490 @media screen and (max-width: 782px) {
1491 /* Remove viewport height constraints on mobile */
1492 #all-actions.mxch-section {
1493 height: auto;
1494 min-height: calc(100vh - 46px); /* WP admin bar is 46px on mobile */
1495 overflow: visible;
1496 }
1497
1498 .mxch-actions-wrapper .mxch-content,
1499 .mxch-actions-wrapper {
1500 height: auto;
1501 overflow: visible;
1502 }
1503
1504 .mxch-split-panel {
1505 flex-direction: column;
1506 height: auto;
1507 min-height: calc(100vh - 46px);
1508 overflow: visible;
1509 }
1510
1511 /* List panel takes full width and reasonable height */
1512 .mxch-action-list-panel {
1513 width: 100%;
1514 max-width: none;
1515 min-width: 0;
1516 height: auto;
1517 max-height: none;
1518 border-right: none;
1519 border-bottom: 1px solid #e5e7eb;
1520 overflow: visible;
1521 }
1522
1523 /* Action list scrolls within container */
1524 .mxch-action-list {
1525 max-height: 50vh;
1526 min-height: 200px;
1527 overflow-y: auto;
1528 }
1529
1530 /* Detail panel hidden by default on mobile */
1531 .mxch-action-detail-panel {
1532 display: none;
1533 min-height: auto;
1534 height: auto;
1535 }
1536
1537 /* When an action is selected, show detail panel */
1538 .mxch-action-detail-panel.mobile-active {
1539 display: flex;
1540 flex-direction: column;
1541 position: fixed;
1542 top: 46px; /* Below WP admin bar */
1543 left: 0;
1544 right: 0;
1545 bottom: 0;
1546 z-index: 1000;
1547 background: #f9fafb;
1548 height: auto;
1549 }
1550
1551 /* Mobile back button */
1552 .mxch-mobile-back-btn {
1553 display: flex !important;
1554 align-items: center;
1555 gap: 6px;
1556 padding: 8px 12px;
1557 background: transparent;
1558 border: none;
1559 color: var(--mxch-primary);
1560 font-size: 14px;
1561 font-weight: 500;
1562 cursor: pointer;
1563 }
1564
1565 .mxch-mobile-back-btn:hover {
1566 background: rgba(120, 115, 245, 0.1);
1567 }
1568
1569 /* Adjust editor header for mobile */
1570 .mxch-editor-header {
1571 flex-wrap: wrap;
1572 gap: 8px;
1573 }
1574
1575 .mxch-view-header {
1576 flex-wrap: wrap;
1577 gap: 8px;
1578 padding: 12px;
1579 }
1580
1581 .mxch-view-header-actions {
1582 width: 100%;
1583 justify-content: flex-end;
1584 }
1585
1586 /* Stats grid */
1587 .mxch-stats-grid {
1588 grid-template-columns: repeat(2, 1fr);
1589 gap: var(--mxch-spacing-md);
1590 }
1591
1592 /* Type cards grid */
1593 .mxch-types-grid {
1594 grid-template-columns: 1fr;
1595 padding: 12px;
1596 }
1597
1598 .mxch-type-card {
1599 padding: 12px;
1600 }
1601
1602 /* Settings grid */
1603 .mxch-settings-grid {
1604 grid-template-columns: 1fr;
1605 }
1606
1607 /* Form actions */
1608 .mxch-form-actions {
1609 flex-direction: column-reverse;
1610 gap: 8px;
1611 }
1612
1613 .mxch-form-actions .mxch-btn {
1614 width: 100%;
1615 }
1616
1617 /* Bulk toolbar adjustments */
1618 .mxch-bulk-toolbar {
1619 flex-wrap: wrap;
1620 padding: 8px;
1621 }
1622
1623 .mxch-bulk-btn span {
1624 display: none;
1625 }
1626
1627 .mxch-filter-select {
1628 flex: 1;
1629 min-width: 120px;
1630 }
1631
1632 /* Action items tighter on mobile */
1633 .mxch-action-item {
1634 padding: 10px;
1635 }
1636
1637 .mxch-action-icon {
1638 width: 36px;
1639 height: 36px;
1640 }
1641
1642 .mxch-action-name {
1643 font-size: 13px;
1644 }
1645
1646 .mxch-action-type-label {
1647 font-size: 11px;
1648 }
1649
1650 /* Panel header adjustments */
1651 .mxch-panel-header {
1652 padding: 0;
1653 }
1654
1655 .mxch-panel-title-row {
1656 padding: 8px 10px;
1657 }
1658
1659 .mxch-search-input {
1660 padding: 8px 10px 8px 34px;
1661 }
1662
1663 /* Form padding on mobile */
1664 #mxch-action-form {
1665 padding: 12px;
1666 }
1667
1668 .mxch-action-details {
1669 padding: 12px;
1670 }
1671
1672 /* Editor step content scrollable */
1673 .mxch-editor-step.active {
1674 overflow-y: auto;
1675 }
1676
1677 /* Category buttons scroll horizontally */
1678 .mxch-category-btns {
1679 overflow-x: auto;
1680 padding: 12px;
1681 gap: 6px;
1682 flex-wrap: nowrap;
1683 }
1684
1685 .mxch-category-btn {
1686 flex-shrink: 0;
1687 padding: 6px 12px;
1688 font-size: 12px;
1689 }
1690
1691 /* Hide close button on mobile (use back button instead) */
1692 .mxch-editor-close {
1693 display: none;
1694 }
1695 }
1696
1697 /* Hide mobile back button on desktop */
1698 .mxch-mobile-back-btn {
1699 display: none;
1700 }
1701
1702 /* Prevent body scroll when mobile panel is open */
1703 body.mxch-mobile-panel-open {
1704 overflow: hidden;
1705 }
1706
1707 /* Tablet adjustments */
1708 @media screen and (min-width: 783px) and (max-width: 1024px) {
1709 .mxch-split-panel {
1710 flex-direction: column;
1711 }
1712
1713 .mxch-action-list-panel {
1714 width: 100%;
1715 max-width: none;
1716 border-right: none;
1717 border-bottom: 1px solid #e5e7eb;
1718 max-height: 350px;
1719 }
1720
1721 .mxch-action-detail-panel {
1722 flex: 1;
1723 min-height: 400px;
1724 }
1725
1726 .mxch-types-grid {
1727 grid-template-columns: repeat(2, 1fr);
1728 }
1729 }
1730