PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.5.4
MxChat – AI Chatbot & Content Generation for WordPress v2.5.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
mxchat-basic / css / knowledge-style.css

knowledge-style.css in MxChat – AI Chatbot & Content Generation for WordPress 2.5.4, at css/knowledge-style.css

2,993 lines 57.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2 * MxChat Knowledge Base Styles
3 * Consolidated stylesheet for the Knowledge Base Manager
4 */
5
6 #wpcontent, .auto-fold #wpcontent {
7 padding: 0px;
8 }
9 .mxchat-kb-header-note {
10 font-size: 12px;
11 font-weight: normal;
12 color: #666;
13 font-style: italic;
14 }
15 /* ===== Core Layout ===== */
16 .mxchat-wrapper, .mxchat-admin-activation {
17 width: 100%;
18 margin: 0px;
19 padding: 0;
20 background-color: #f8f9ff;
21 min-height: 100vh;
22 }
23
24 /* ===== Hero Section ===== */
25 .mxchat-hero {
26 text-align: center;
27 padding: 3.5rem 2rem;
28 position: relative;
29 background: #212121;
30 border-bottom: 4px solid transparent;
31 border-image: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
32 border-image-slice: 1;
33 }
34
35 .mxchat-hero::before {
36 content: '';
37 position: absolute;
38 top: 0;
39 left: 0;
40 width: 100%;
41 height: 100%;
42 background: radial-gradient(
43 circle at center,
44 rgba(250, 115, 230, 0.08) 0%,
45 rgba(120, 115, 245, 0.08) 50%,
46 rgba(58, 201, 209, 0.08) 100%
47 );
48 z-index: 1;
49 }
50
51 div.mxchat-hero h1.mxchat-main-title {
52 font-size: 3.5rem;
53 margin: 0 0 1.5rem;
54 line-height: 1.2;
55 color: white;
56 position: relative;
57 z-index: 2;
58 }
59
60 .mxchat-gradient-text {
61 background: linear-gradient(135deg, #fa73e6, #7873f5, #3ac9d1);
62 -webkit-background-clip: text;
63 -webkit-text-fill-color: transparent;
64 display: inline-block;
65 font-weight: 700;
66 }
67
68 .mxchat-hero-subtitle {
69 font-size: 1.25rem;
70 color: rgba(255, 255, 255, 0.9);
71 max-width: 800px;
72 margin: 0 auto;
73 position: relative;
74 z-index: 2;
75 line-height: 1.6;
76 }
77
78 /* ===== Content Area ===== */
79 .mxchat-content {
80 padding: 2rem;
81 max-width: 1400px;
82 margin: 0 auto;
83 width: 100%;
84 box-sizing: border-box;
85 }
86
87 /* ===== Card Styles ===== */
88 .mxchat-card {
89 background: #fff;
90 border-radius: 16px;
91 box-shadow: 0 4px 20px rgba(120, 115, 245, 0.08);
92 padding: 30px;
93 margin: 30px auto;
94 transition: all 0.3s ease;
95 }
96
97 .mxchat-card:hover {
98 transform: translateY(-2px);
99 box-shadow: 0 6px 25px rgba(120, 115, 245, 0.12);
100 }
101
102 .mxchat-card h2 {
103 margin: 0 0 1.5rem;
104 color: #333;
105 font-size: 1.5rem;
106 }
107
108 .mxchat-card-header {
109 display: flex;
110 justify-content: space-between;
111 align-items: center;
112 margin-bottom: 20px;
113 }
114
115 .mxchat-header-actions {
116 display: flex;
117 gap: 16px;
118 align-items: center;
119 }
120
121 /* ===== Knowledge Warning ===== */
122 .mxchat-knowledge-warning {
123 padding: 15px;
124 border-radius: 8px;
125 margin-bottom: 20px;
126 }
127
128 .mxchat-knowledge-warning.success {
129 background-color: #eefbe8;
130 border-left: 4px solid #4caf50;
131 }
132
133 .mxchat-knowledge-warning.warning {
134 background-color: #fff9e6;
135 border-left: 4px solid #ff9800;
136 }
137
138 .mxchat-knowledge-warning p {
139 align-items: center;
140 margin: 0;
141 color: #333;
142 }
143
144 .mxchat-knowledge-warning .dashicons {
145 margin-right: 10px;
146 font-size: 20px;
147 }
148
149 .mxchat-knowledge-warning .dashicons-yes-alt {
150 color: #4caf50;
151 }
152
153 .mxchat-knowledge-warning .dashicons-warning {
154 color: #ff9800;
155 }
156
157 /* ===== Import Section ===== */
158 .mxchat-import-section {
159 margin-top: 30px;
160 }
161
162 .mxchat-import-section h3 {
163 margin-top: 0;
164 margin-bottom: 20px;
165 font-size: 18px;
166 color: #333;
167 }
168
169 /* Import Options */
170 .mxchat-import-options {
171 display: grid;
172 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
173 gap: 16px;
174 margin-bottom: 24px;
175 }
176
177 /* Import Box Styling */
178 .mxchat-import-box {
179 display: flex;
180 align-items: flex-start;
181 padding: 0;
182 background: #fff;
183 border: 1px solid #e5e5e5;
184 border-radius: 10px;
185 cursor: pointer;
186 transition: all 0.2s ease;
187 position: relative;
188 overflow: hidden;
189 text-align: left;
190 width: 100%;
191 }
192
193 .mxchat-import-box:hover {
194 border-color: #7873f5;
195 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.1);
196 transform: translateY(-4px);
197 }
198
199 .mxchat-import-box.active {
200 border-color: #7873f5;
201 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.1);
202 transform: translateY(-4px);
203 }
204
205 .mxchat-import-wordpress {
206 border: 2px solid #7873f5;
207 background-color: #f8f9ff;
208 }
209
210 .mxchat-import-icon {
211 width: 48px;
212 height: 48px;
213 display: flex;
214 align-items: center;
215 justify-content: center;
216 background-color: #f0f0f0;
217 border-radius: 8px;
218 margin: 16px;
219 flex-shrink: 0;
220 }
221
222 .mxchat-import-wordpress .mxchat-import-icon {
223 background-color: #f0e6ff;
224 }
225
226 .mxchat-import-icon .dashicons {
227 font-size: 24px;
228 color: #7873f5;
229 }
230
231 .mxchat-import-content {
232 flex: 1;
233 padding: 18px 18px 18px 0;
234 }
235
236 .mxchat-import-content h4 {
237 margin: 0 0 8px;
238 font-size: 16px;
239 color: #333;
240 }
241
242 .mxchat-import-content p {
243 margin: 0;
244 font-size: 14px;
245 color: #666;
246 line-height: 1.5;
247 }
248
249 .mxchat-recommended-tag {
250 position: absolute;
251 top: 0;
252 right: 0;
253 background-color: #7873f5;
254 color: white;
255 padding: 4px 10px;
256 font-size: 10px;
257 border-bottom-left-radius: 8px;
258 }
259
260 /* Import Input Areas */
261 .mxchat-import-input-area {
262 background-color: #f9f9fd;
263 border-radius: 10px;
264 padding: 24px;
265 margin-bottom: 24px;
266 border: 1px solid #e5e5e5;
267 text-align: center;
268 }
269
270 .mxchat-url-input-group {
271 display: flex;
272 gap: 12px;
273 max-width: 800px;
274 margin: 0 auto;
275 }
276
277 .mxchat-url-input-group input {
278 flex: 1;
279 padding: 12px 16px;
280 border: 1px solid #ddd;
281 border-radius: 8px;
282 font-size: 14px;
283 }
284
285 .mxchat-url-input-group input:focus {
286 border-color: #7873f5;
287 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
288 outline: none;
289 }
290
291 .mxchat-url-description {
292 font-size: 14px;
293 color: #666;
294 margin-top: 16px;
295 font-style: italic;
296 }
297
298 .mxchat-content-input-group {
299 max-width: 800px;
300 margin: 0 auto;
301 }
302
303 .mxchat-content-input-group textarea {
304 width: 100%;
305 min-height: 150px;
306 padding: 12px 16px;
307 border: 1px solid #ddd;
308 border-radius: 8px;
309 margin-bottom: 16px;
310 font-size: 14px;
311 resize: vertical;
312 }
313
314 .mxchat-content-input-group textarea:focus {
315 border-color: #7873f5;
316 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
317 outline: none;
318 }
319
320 /* Primary Import Card */
321 .mxchat-primary-import-card {
322 background-color: #fff;
323 border: 2px solid #7873f5;
324 border-radius: 8px;
325 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.1);
326 margin-bottom: 30px;
327 overflow: hidden;
328 transition: all 0.3s ease;
329 }
330
331 .mxchat-primary-import-card:hover {
332 box-shadow: 0 6px 16px rgba(120, 115, 245, 0.2);
333 transform: translateY(-2px);
334 }
335
336 .mxchat-card-header {
337 padding: 15px 20px;
338 display: flex;
339 align-items: center;
340 justify-content: space-between;
341 border-bottom: 1px solid #e2d9ff;
342 }
343
344 .mxchat-card-header h3 {
345 margin: 0;
346 color: #7873f5;
347 font-size: 18px;
348 font-weight: 600;
349 }
350
351 .mxchat-recommended-badge {
352 background-color: #7873f5;
353 color: white;
354 font-size: 12px;
355 padding: 4px 10px;
356 border-radius: 12px;
357 font-weight: 500;
358 }
359
360 .mxchat-card-content {
361 padding: 20px;
362 }
363
364 .mxchat-method-description {
365 font-size: 15px;
366 line-height: 1.5;
367 color: #555;
368 margin-bottom: 20px;
369 }
370
371 .mxchat-card-actions {
372 text-align: center;
373 }
374
375 .mxchat-featured-button {
376 background: linear-gradient(135deg, #fa73e6, #7873f5) !important;
377 color: white !important;
378 font-size: 15px !important;
379 padding: 10px 20px !important;
380 border: none !important;
381 box-shadow: 0 4px 8px rgba(120, 115, 245, 0.2) !important;
382 transition: all 0.3s ease !important;
383 display: inline-flex !important;
384 align-items: center !important;
385 gap: 8px !important;
386 }
387
388 .mxchat-featured-button:hover {
389 background: linear-gradient(135deg, #e56dd6, #6b67db) !important;
390 box-shadow: 0 6px 12px rgba(120, 115, 245, 0.3) !important;
391 transform: translateY(-2px) !important;
392 }
393
394 /* Alternative Import Methods */
395 .mxchat-alternative-imports {
396 background-color: #fff;
397 border: 1px solid #e5e5e5;
398 border-radius: 8px;
399 padding: 20px;
400 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
401 }
402
403 .mxchat-alt-header {
404 font-size: 16px;
405 color: #666;
406 margin-top: 0;
407 margin-bottom: 15px;
408 padding-bottom: 10px;
409 border-bottom: 1px solid #eee;
410 }
411
412 .mxchat-import-methods-grid {
413 display: grid;
414 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
415 gap: 20px;
416 margin-bottom: 25px;
417 }
418
419 /* ===== Import Methods ===== */
420 .mxchat-import-methods {
421 display: grid;
422 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
423 gap: 20px;
424 margin: 30px 0;
425 }
426
427 .mxchat-method-card {
428 background-color: #f9f9f9;
429 border: 1px solid #eee;
430 border-radius: 8px;
431 padding: 15px;
432 transition: all 0.2s ease;
433 height: 100%;
434 }
435
436 .mxchat-method-card:hover {
437 background-color: #f5f5f5;
438 border-color: #ddd;
439 }
440
441 .mxchat-method-icon {
442 display: flex;
443 justify-content: center;
444 margin-bottom: 10px;
445 }
446
447 .mxchat-method-icon .dashicons {
448 font-size: 24px;
449 width: 24px;
450 height: 24px;
451 color: #666;
452 }
453
454 .mxchat-method-card h4,
455 .mxchat-method-card h5 {
456 margin: 0 0 10px 0;
457 font-size: 15px;
458 text-align: center;
459 color: #444;
460 }
461
462 .mxchat-method-card p {
463 margin: 0;
464 font-size: 13px;
465 color: #666;
466 text-align: center;
467 }
468
469 .mxchat-note,
470 .red-warning {
471 color: #ff5722;
472 font-weight: 500;
473 }
474
475 /* Legacy Import Form */
476 .mxchat-legacy-import-form {
477 margin-top: 20px;
478 padding-top: 20px;
479 border-top: 1px dashed #ddd;
480 }
481
482 /* ===== Settings Section ===== */
483 .mxchat-settings-section {
484 margin-bottom: 30px;
485 }
486
487 .mxchat-settings-section h3 {
488 margin-top: 0;
489 margin-bottom: 12px;
490 color: #333;
491 font-size: 1.3rem;
492 }
493
494 .mxchat-description {
495 color: #666;
496 font-size: 14px;
497 margin-bottom: 20px;
498 }
499
500 .mxchat-section-content {
501 margin-top: 15px;
502 }
503
504 /* ===== Tabs ===== */
505 .mxchat-tabs {
506 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
507 margin-bottom: 20px;
508 display: flex;
509 gap: 2px;
510 }
511
512 .mxchat-tab-button {
513 padding: 12px 24px;
514 background: none;
515 border: none;
516 border-bottom: 2px solid transparent;
517 color: #666;
518 cursor: pointer;
519 font-size: 14px;
520 transition: all 0.2s ease;
521 }
522
523 .mxchat-tab-button:hover {
524 color: #7873f5;
525 }
526
527 .mxchat-tab-button.active {
528 color: #7873f5;
529 border-bottom-color: #7873f5;
530 }
531
532 .mxchat-tab-contents {
533 margin-top: 20px;
534 }
535
536 .mxchat-tab-content {
537 display: none;
538 }
539
540 .mxchat-tab-content.active {
541 display: block;
542 }
543
544 /* ===== Toggle Switches ===== */
545 .mxchat-toggle-group {
546 display: flex;
547 flex-direction: column;
548 gap: 15px;
549 margin: 20px 0;
550 }
551
552 .mxchat-toggle-container {
553 display: flex;
554 align-items: center;
555 gap: 12px;
556 }
557
558 .mxchat-toggle-switch {
559 position: relative;
560 display: inline-block;
561 width: 50px;
562 height: 24px;
563 }
564
565 .mxchat-toggle-switch input {
566 opacity: 0;
567 width: 0;
568 height: 0;
569 }
570
571 .mxchat-toggle-slider {
572 position: absolute;
573 cursor: pointer;
574 top: 0;
575 left: 0;
576 right: 0;
577 bottom: 0;
578 background-color: #ccc;
579 transition: .4s;
580 border-radius: 34px;
581 }
582
583 .mxchat-toggle-slider:before {
584 position: absolute;
585 content: "";
586 height: 20px;
587 width: 20px;
588 left: 2px;
589 bottom: 2px;
590 background-color: white;
591 transition: .4s;
592 border-radius: 50%;
593 }
594
595 input:checked + .mxchat-toggle-slider {
596 background: linear-gradient(135deg, #fa73e6, #7873f5);
597 }
598
599 input:checked + .mxchat-toggle-slider:before {
600 transform: translateX(26px);
601 }
602
603 .mxchat-toggle-label {
604 font-size: 14px;
605 color: #333;
606 }
607
608 /* ===== Custom Post Types ===== */
609 .mxchat-custom-post-types-header {
610 margin-top: 20px;
611 }
612
613 .mxchat-custom-post-types-container {
614 margin-top: 15px;
615 padding: 15px;
616 background-color: #f8f9ff;
617 border-radius: 8px;
618 border: 1px solid rgba(120, 115, 245, 0.1);
619 }
620
621 .mxchat-toggle-icon {
622 margin-left: 5px;
623 font-size: 12px;
624 }
625
626 /* ===== Form Elements ===== */
627 .mxchat-form-group {
628 margin-bottom: 20px;
629 }
630
631 .mxchat-form-group label {
632 display: block;
633 margin-bottom: 8px;
634 font-weight: 500;
635 color: #333;
636 }
637
638 .mxchat-form-group input[type="text"],
639 .mxchat-form-group input[type="url"],
640 .mxchat-form-group input[type="search"],
641 .mxchat-form-group textarea {
642 width: 100%;
643 padding: 12px 15px;
644 border: 2px solid rgba(120, 115, 245, 0.2);
645 border-radius: 8px;
646 font-size: 14px;
647 transition: all 0.3s ease;
648 }
649
650 .mxchat-form-group textarea {
651 min-height: 120px;
652 resize: vertical;
653 }
654
655 .mxchat-form-group input:focus,
656 .mxchat-form-group textarea:focus {
657 border-color: #7873f5;
658 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
659 outline: none;
660 }
661
662 /* ===== Search ===== */
663 .mxchat-search-form {
664 position: relative;
665 }
666
667 .mxchat-search-group {
668 position: relative;
669 display: flex;
670 align-items: center;
671 }
672
673 .mxchat-search-group .dashicons {
674 position: absolute;
675 left: 12px;
676 color: #666;
677 }
678
679 .mxchat-search-group input {
680 padding-left: 40px;
681 width: 300px;
682 }
683
684 /* ===== Buttons ===== */
685 .mxchat-button-primary {
686 background: linear-gradient(135deg, #fa73e6, #7873f5);
687 border: none;
688 color: white;
689 padding: 10px 20px;
690 border-radius: 8px;
691 font-weight: 600;
692 cursor: pointer;
693 transition: all 0.3s ease;
694 }
695
696 .mxchat-button-primary:hover {
697 transform: translateY(-1px);
698 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.2);
699 }
700
701 .mxchat-button-primary:disabled {
702 background: #a7a7a7;
703 cursor: not-allowed;
704 transform: none;
705 box-shadow: none;
706 }
707
708 .mxchat-button-secondary {
709 background: #f8f9ff;
710 border: 1px solid rgba(120, 115, 245, 0.2);
711 color: #666;
712 padding: 10px 20px;
713 border-radius: 8px;
714 cursor: pointer;
715 transition: all 0.2s ease;
716 }
717
718 .mxchat-button-secondary:hover {
719 background: #eef0ff;
720 }
721
722 .mxchat-button-danger {
723 color: #ff4d4d;
724 background: transparent;
725 border: none;
726 padding: 10px 20px;
727 border-radius: 8px;
728 cursor: pointer;
729 transition: all 0.2s ease;
730 display: flex;
731 align-items: center;
732 gap: 8px;
733 }
734
735 .mxchat-button-danger:hover {
736 background: #fff5f5;
737 }
738
739 .mxchat-button-icon {
740 padding: 8px;
741 border: none;
742 background: transparent;
743 border-radius: 6px;
744 cursor: pointer;
745 transition: all 0.2s ease;
746 color: #666;
747 }
748
749 .mxchat-button-icon:hover {
750 background: #f8f9ff;
751 color: #7873f5;
752 }
753
754 /* ===== Status Cards ===== */
755 .mxchat-status-card {
756 background: #f8f9ff;
757 border-radius: 10px;
758 padding: 20px;
759 margin-top: 20px;
760 border: 1px solid rgba(120, 115, 245, 0.1);
761 }
762
763 .mxchat-status-header {
764 display: flex;
765 justify-content: space-between;
766 align-items: center;
767 margin-bottom: 15px;
768 }
769
770 .mxchat-status-details {
771 margin-top: 10px;
772 color: #666;
773 }
774
775 .mxchat-status-badge {
776 display: inline-block;
777 padding: 3px 8px;
778 border-radius: 3px;
779 font-size: 12px;
780 font-weight: 500;
781 text-transform: uppercase;
782 margin-left: 10px;
783 }
784
785 .mxchat-status-failed {
786 background-color: #f44336;
787 color: white;
788 }
789
790 .mxchat-status-success {
791 background-color: #4caf50;
792 color: white;
793 }
794
795 .mxchat-error-notice {
796 margin-top: 15px;
797 padding: 10px;
798 background-color: #fff5f5;
799 border-left: 3px solid #f44336;
800 color: #d32f2f;
801 border-radius: 4px;
802 }
803
804 .mxchat-failed-urls {
805 margin-top: 15px;
806 }
807
808 .mxchat-failed-urls h5 {
809 margin-top: 0;
810 margin-bottom: 10px;
811 color: #333;
812 }
813
814 .mxchat-failed-urls-list {
815 max-height: 200px;
816 overflow-y: auto;
817 }
818
819 /* ===== Progress Bar ===== */
820 .mxchat-progress-bar {
821 height: 8px;
822 background: rgba(120, 115, 245, 0.1);
823 border-radius: 4px;
824 overflow: hidden;
825 margin: 15px 0;
826 }
827
828 .mxchat-progress-fill {
829 height: 100%;
830 background: linear-gradient(135deg, #fa73e6, #7873f5);
831 transition: width 0.3s ease;
832 }
833
834 /* ===== Table Styles ===== */
835 .mxchat-table-wrapper {
836 overflow-x: auto;
837 margin: 20px 0;
838 }
839
840 .mxchat-records-table {
841 width: 100%;
842 border-collapse: separate;
843 border-spacing: 0;
844 }
845
846 .mxchat-records-table th {
847 background: #f8f9ff;
848 padding: 15px;
849 font-weight: 600;
850 color: #333;
851 text-align: left;
852 border-bottom: 2px solid rgba(120, 115, 245, 0.1);
853 }
854
855 /* Hide ID column */
856 .mxchat-records-table th:first-child,
857 .mxchat-records-table td:first-child {
858 display: none;
859 }
860
861 .mxchat-records-table td {
862 padding: 15px;
863 border-top: 1px solid rgba(120, 115, 245, 0.1);
864 vertical-align: top;
865 }
866
867 .mxchat-records-table tr:hover {
868 background: rgba(120, 115, 245, 0.03);
869 }
870
871 .mxchat-content-cell {
872 max-width: 600px;
873 }
874
875 /* ===== Accordion Styles ===== */
876 .mxchat-accordion-wrapper {
877 width: 100%;
878 }
879
880 .mxchat-content-preview {
881 display: flex;
882 align-items: center;
883 gap: 12px;
884 padding: 8px 12px;
885 border-radius: 6px;
886 transition: all 0.2s ease;
887 }
888
889 /* Only make it look clickable if there's an expand button */
890 .mxchat-content-preview:has(.mxchat-expand-toggle) {
891 cursor: pointer;
892 }
893
894 .mxchat-content-preview:has(.mxchat-expand-toggle):hover {
895 background: rgba(120, 115, 245, 0.04);
896 }
897
898 .mxchat-content-preview .preview-text {
899 flex: 1;
900 font-size: 14px;
901 line-height: 1.6;
902 color: #333;
903 }
904
905 .mxchat-expand-toggle {
906 flex-shrink: 0;
907 width: 28px;
908 height: 28px;
909 border: none;
910 background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
911 border-radius: 6px;
912 cursor: pointer;
913 display: inline-flex;
914 align-items: center;
915 justify-content: center;
916 transition: all 0.3s ease;
917 padding: 0;
918 }
919
920 .mxchat-expand-toggle:hover {
921 background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
922 transform: scale(1.05);
923 }
924
925 .mxchat-expand-toggle .dashicons {
926 font-size: 18px;
927 width: 18px;
928 height: 18px;
929 color: #7873f5;
930 transition: transform 0.3s ease;
931 }
932
933 .mxchat-expand-toggle.expanded .dashicons {
934 transform: rotate(180deg);
935 }
936
937 .mxchat-content-full {
938 margin-top: 12px;
939 padding: 16px;
940 background: rgba(120, 115, 245, 0.03);
941 border-radius: 8px;
942 border-left: 3px solid #7873f5;
943 animation: slideDown 0.3s ease;
944 }
945
946 @keyframes slideDown {
947 from {
948 opacity: 0;
949 max-height: 0;
950 transform: translateY(-10px);
951 }
952 to {
953 opacity: 1;
954 max-height: 1000px;
955 transform: translateY(0);
956 }
957 }
958
959 .mxchat-content-full .content-view {
960 font-size: 14px;
961 line-height: 1.6;
962 color: #333;
963 }
964
965 .mxchat-content-full .content-view p {
966 margin: 0 0 12px 0;
967 }
968
969 .mxchat-content-full .content-view p:last-child {
970 margin-bottom: 0;
971 }
972
973 .mxchat-url-cell a {
974 color: #7873f5;
975 text-decoration: none;
976 display: flex;
977 align-items: center;
978 gap: 4px;
979 }
980
981 .mxchat-url-cell a:hover {
982 color: #fa73e6;
983 }
984
985 .mxchat-actions-cell {
986 white-space: nowrap;
987 display: flex;
988 gap: 8px;
989 }
990
991 /* Legacy content-view styling (now within accordion) */
992 .content-edit {
993 width: 100%;
994 min-height: 100px;
995 border: 1px solid #ddd;
996 border-radius: 4px;
997 padding: 10px;
998 }
999
1000 .url-view a {
1001 color: #7873f5;
1002 text-decoration: none;
1003 }
1004
1005 .url-edit {
1006 width: 100%;
1007 }
1008
1009 /* ===== Pagination ===== */
1010 .mxchat-pagination {
1011 margin-top: 20px;
1012 padding-top: 20px;
1013 text-align: center;
1014 border-top: 1px solid rgba(120, 115, 245, 0.1);
1015 }
1016
1017 .mxchat-pagination .page-numbers {
1018 display: inline-flex;
1019 align-items: center;
1020 justify-content: center;
1021 min-width: 32px;
1022 height: 32px;
1023 padding: 0 8px;
1024 margin: 0 4px;
1025 border-radius: 6px;
1026 background: white;
1027 border: 1px solid rgba(120, 115, 245, 0.2);
1028 color: #333;
1029 text-decoration: none;
1030 transition: all 0.2s ease;
1031 }
1032
1033 .mxchat-pagination .page-numbers.current {
1034 background: linear-gradient(135deg, #fa73e6, #7873f5);
1035 color: white;
1036 border: none;
1037 }
1038
1039 /* ===== Notifications ===== */
1040 .mxchat-notification {
1041 margin: 15px 20px 0;
1042 padding: 10px 15px;
1043 border-radius: 4px;
1044 font-size: 14px;
1045 }
1046
1047 .mxchat-notification.success {
1048 background-color: #d4edda;
1049 color: #155724;
1050 border: 1px solid #c3e6cb;
1051 }
1052
1053 .mxchat-notification.error {
1054 background-color: #f8d7da;
1055 color: #721c24;
1056 border: 1px solid #f5c6cb;
1057 }
1058
1059 /* ===== Responsive Design ===== */
1060 @media (max-width: 768px) {
1061 .mxchat-hero h1.mxchat-main-title {
1062 font-size: 2.5rem;
1063 }
1064
1065 .mxchat-card {
1066 padding: 20px;
1067 }
1068
1069 .mxchat-import-options {
1070 grid-template-columns: 1fr;
1071 }
1072
1073 .mxchat-url-input-group {
1074 flex-direction: column;
1075 }
1076
1077 .mxchat-url-input-group input,
1078 .mxchat-url-input-group button {
1079 width: 100%;
1080 }
1081
1082 .mxchat-content-input-group textarea {
1083 min-height: 120px;
1084 }
1085
1086 .mxchat-status-header {
1087 flex-direction: column;
1088 align-items: flex-start;
1089 gap: 10px;
1090 }
1091
1092 .mxchat-records-table {
1093 display: block;
1094 overflow-x: auto;
1095 }
1096
1097 .mxchat-stop-form button {
1098 width: 100%;
1099 }
1100 }
1101
1102 @media (max-width: 480px) {
1103 .mxchat-card {
1104 padding: 15px;
1105 }
1106
1107 .mxchat-import-box {
1108 flex-direction: column;
1109 align-items: center;
1110 text-align: center;
1111 }
1112
1113 .mxchat-import-icon {
1114 margin: 16px 16px 0 16px;
1115 }
1116
1117 .mxchat-import-content {
1118 padding: 16px;
1119 }
1120
1121 .mxchat-recommended-tag {
1122 border-radius: 0 0 0 8px;
1123 }
1124 }
1125
1126 /* RTL Support */
1127 .rtl .mxchat-knowledge-warning {
1128 border-left: none;
1129 border-right: 4px solid;
1130 }
1131
1132 .rtl .mxchat-knowledge-warning .dashicons {
1133 margin-right: 0;
1134 margin-left: 10px;
1135 }
1136
1137 .rtl .mxchat-import-box {
1138 flex-direction: row-reverse;
1139 }
1140
1141 .rtl .mxchat-import-content {
1142 padding: 16px 0 16px 16px;
1143 }
1144
1145 .rtl .mxchat-import-icon {
1146 margin: 16px;
1147 }
1148
1149 .rtl .mxchat-recommended-tag {
1150 right: auto;
1151 left: 0;
1152 border-bottom-left-radius: 0;
1153 border-bottom-right-radius: 8px;
1154 }
1155
1156 .rtl .mxchat-toggle-container {
1157 flex-direction: row-reverse;
1158 }
1159
1160 .rtl .mxchat-toggle-slider:before {
1161 left: auto;
1162 right: 2px;
1163 }
1164
1165 .rtl input:checked + .mxchat-toggle-slider:before {
1166 transform: translateX(-26px);
1167 }
1168
1169 .rtl .mxchat-error-notice {
1170 border-left: none;
1171 border-right: 3px solid #f44336;
1172 }
1173
1174 .rtl .mxchat-records-table th,
1175 .rtl .mxchat-records-table td {
1176 text-align: right;
1177 }
1178
1179 .rtl .mxchat-search-group .dashicons {
1180 left: auto;
1181 right: 12px;
1182 }
1183
1184 .rtl .mxchat-search-group input {
1185 padding-left: 12px;
1186 padding-right: 40px;
1187 }
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216 /* ===== Modal Styles ===== */
1217 .mxchat-kb-modal {
1218 display: none;
1219 position: fixed;
1220 top: 0;
1221 left: 0;
1222 width: 100%;
1223 height: 100%;
1224 background-color: rgba(0, 0, 0, 0.7);
1225 z-index: 999999;
1226 overflow: auto;
1227 justify-content: center;
1228 align-items: center;
1229 }
1230
1231 .mxchat-kb-modal.active {
1232 display: flex;
1233 }
1234
1235 .mxchat-kb-modal-content {
1236 position: relative;
1237 background-color: #fff;
1238 margin: 50px auto;
1239 padding: 0;
1240 border-radius: 8px;
1241 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1242 width: 90%;
1243 max-width: 1000px;
1244 max-height: 85vh;
1245 display: flex;
1246 flex-direction: column;
1247 animation: mxchat-kb-modal-appear 0.3s ease-out;
1248 }
1249
1250 @keyframes mxchat-kb-modal-appear {
1251 from {
1252 opacity: 0;
1253 transform: translateY(-30px);
1254 }
1255 to {
1256 opacity: 1;
1257 transform: translateY(0);
1258 }
1259 }
1260
1261 .mxchat-kb-modal-header {
1262 display: flex;
1263 align-items: center;
1264 justify-content: space-between;
1265 padding: 20px;
1266 border-bottom: 1px solid #e5e5e5;
1267 background-color: #f8f9fa;
1268 border-radius: 8px 8px 0 0;
1269 }
1270
1271 .mxchat-kb-modal-header h3 {
1272 margin: 0;
1273 font-size: 20px;
1274 font-weight: 600;
1275 color: #23282d;
1276 }
1277
1278 .mxchat-kb-modal-close {
1279 font-size: 28px;
1280 font-weight: bold;
1281 cursor: pointer;
1282 color: #666;
1283 line-height: 1;
1284 transition: color 0.2s;
1285 }
1286
1287 .mxchat-kb-modal-close:hover {
1288 color: #d63638;
1289 }
1290
1291 .mxchat-kb-modal-filters {
1292 padding: 15px 20px;
1293 background-color: #f8f9fa;
1294 display: flex;
1295 align-items: center;
1296 justify-content: space-between;
1297 border-bottom: 1px solid #e5e5e5;
1298 flex-wrap: wrap;
1299 gap: 10px;
1300 }
1301
1302 .mxchat-kb-search-group {
1303 position: relative;
1304 flex: 1;
1305 min-width: 200px;
1306 max-width: 400px;
1307 }
1308
1309 .mxchat-kb-search-group input {
1310 width: 100%;
1311 padding: 8px 12px 8px 35px;
1312 border-radius: 4px;
1313 border: 1px solid #ddd;
1314 font-size: 14px;
1315 transition: border-color 0.2s;
1316 }
1317
1318 .mxchat-kb-search-group input:focus {
1319 border-color: #7873f5;
1320 outline: none;
1321 box-shadow: 0 0 0 1px #7873f5;
1322 }
1323
1324 .mxchat-kb-search-group::before {
1325 content: "\f179";
1326 font-family: dashicons;
1327 position: absolute;
1328 left: 10px;
1329 top: 50%;
1330 transform: translateY(-50%);
1331 color: #666;
1332 }
1333
1334 .mxchat-kb-filter-group {
1335 display: flex;
1336 gap: 10px;
1337 flex-wrap: wrap;
1338 }
1339
1340 .mxchat-kb-filter-group select {
1341 padding: 8px 12px;
1342 border-radius: 4px;
1343 border: 1px solid #ddd;
1344 font-size: 14px;
1345 background-color: white;
1346 min-width: 150px;
1347 appearance: none;
1348 background-repeat: no-repeat;
1349 background-position: right 10px center;
1350 padding-right: 30px;
1351 }
1352
1353 .mxchat-kb-filter-group select:focus {
1354 border-color: #7873f5;
1355 outline: none;
1356 box-shadow: 0 0 0 1px #7873f5;
1357 }
1358
1359 /* Special style for the "processed" filter */
1360 #mxchat-kb-processed-filter {
1361 border-left: 3px solid #1e88e5;
1362 }
1363
1364 .mxchat-kb-content-selection {
1365 overflow-y: auto;
1366 flex: 1;
1367 min-height: 300px;
1368 max-height: calc(85vh - 200px);
1369 }
1370
1371 .mxchat-kb-selection-header {
1372 display: flex;
1373 justify-content: space-between;
1374 align-items: center;
1375 padding: 15px 20px;
1376 background-color: #f8f9fa;
1377 border-bottom: 1px solid #eee;
1378 position: sticky;
1379 top: 0;
1380 z-index: 10;
1381 }
1382
1383 .mxchat-kb-selection-header label {
1384 display: flex;
1385 align-items: center;
1386 gap: 8px;
1387 font-weight: 500;
1388 }
1389
1390 .mxchat-kb-selection-count {
1391 font-size: 14px;
1392 color: #666;
1393 font-weight: 500;
1394 }
1395
1396 .mxchat-kb-content-list {
1397 padding: 0;
1398 }
1399
1400 .mxchat-kb-content-item {
1401 display: flex;
1402 padding: 15px 20px;
1403 border-bottom: 1px solid #eee;
1404 transition: background-color 0.2s;
1405 }
1406
1407 .mxchat-kb-content-item:hover {
1408 background-color: #f0f7ff;
1409 }
1410
1411 /* Improved visibility for processed items */
1412 .mxchat-kb-content-item.processed {
1413 background-color: #f0f8ff;
1414 border-left: 3px solid #1e88e5;
1415 }
1416
1417 .mxchat-kb-content-item.processed:hover {
1418 background-color: #e3f2fd;
1419 }
1420
1421 .mxchat-kb-content-checkbox {
1422 margin-right: 15px;
1423 display: flex;
1424 align-items: flex-start;
1425 padding-top: 3px;
1426 }
1427
1428 .mxchat-kb-content-checkbox input[type="checkbox"] {
1429 width: 18px;
1430 height: 18px;
1431 border: 1px solid #8c8f94;
1432 border-radius: 3px;
1433 background: #fff;
1434 margin: 0;
1435 }
1436
1437 .mxchat-kb-content-checkbox input[type="checkbox"]:checked {
1438 border-color: #7873f5;
1439 }
1440
1441 .mxchat-kb-content-details {
1442 flex: 1;
1443 }
1444
1445 .mxchat-kb-content-title {
1446 font-size: 16px;
1447 font-weight: 600;
1448 margin-bottom: 8px;
1449 display: flex;
1450 align-items: center;
1451 flex-wrap: wrap;
1452 gap: 8px;
1453 }
1454
1455 .mxchat-kb-content-title a {
1456 color: #7873f5;
1457 text-decoration: none;
1458 }
1459
1460 .mxchat-kb-content-title a:hover {
1461 color: #fa73e6;
1462 text-decoration: underline;
1463 }
1464
1465 /* Style for processed badge */
1466 .mxchat-kb-processed-badge {
1467 display: inline-block;
1468 background-color: #1e88e5;
1469 color: white;
1470 font-size: 11px;
1471 padding: 2px 8px;
1472 border-radius: 10px;
1473 font-weight: normal;
1474 }
1475
1476 /* Style for unprocessed badge */
1477 .mxchat-kb-unprocessed-badge {
1478 display: inline-block;
1479 background-color: #607d8b;
1480 color: white;
1481 font-size: 11px;
1482 padding: 2px 8px;
1483 border-radius: 10px;
1484 font-weight: normal;
1485 }
1486
1487 /* Last updated timestamp */
1488 .mxchat-kb-last-updated {
1489 font-size: 11px;
1490 color: #666;
1491 font-style: italic;
1492 margin-left: 8px;
1493 }
1494
1495 .mxchat-kb-content-meta {
1496 display: flex;
1497 flex-wrap: wrap;
1498 gap: 15px;
1499 color: #666;
1500 font-size: 13px;
1501 margin-bottom: 8px;
1502 }
1503
1504 .mxchat-kb-content-excerpt {
1505 color: #555;
1506 font-size: 14px;
1507 line-height: 1.5;
1508 }
1509
1510 .mxchat-kb-modal-footer {
1511 padding: 15px 20px;
1512 border-top: 1px solid #e5e5e5;
1513 display: flex;
1514 justify-content: flex-end;
1515 gap: 10px;
1516 background-color: #f8f9fa;
1517 border-radius: 0 0 8px 8px;
1518 }
1519
1520 .mxchat-kb-button-primary,
1521 .mxchat-kb-button-secondary {
1522 padding: 8px 15px;
1523 border-radius: 4px;
1524 font-size: 14px;
1525 cursor: pointer;
1526 font-weight: 500;
1527 text-align: center;
1528 transition: all 0.2s;
1529 }
1530
1531 .mxchat-kb-button-primary {
1532 background: linear-gradient(135deg, #fa73e6, #7873f5);
1533 color: white;
1534 border: none;
1535 }
1536
1537 .mxchat-kb-button-primary:hover {
1538 background: linear-gradient(135deg, #e56dd6, #6b67db);
1539 }
1540
1541 .mxchat-kb-button-primary:disabled {
1542 background-color: #a7a7a7;
1543 cursor: not-allowed;
1544 }
1545
1546 /* Update mode for the process button */
1547 #mxchat-kb-process-selected.update-mode {
1548 background-color: #ff9800;
1549 }
1550
1551 #mxchat-kb-process-selected.update-mode:hover {
1552 background-color: #f57c00;
1553 }
1554
1555 /* Mixed mode for the process button */
1556 #mxchat-kb-process-selected.mixed-mode {
1557 background-color: #9c27b0;
1558 }
1559
1560 #mxchat-kb-process-selected.mixed-mode:hover {
1561 background-color: #7b1fa2;
1562 }
1563
1564 .mxchat-kb-button-secondary {
1565 background-color: #f6f7f7;
1566 color: #2c3338;
1567 border: 1px solid #ddd;
1568 }
1569
1570 .mxchat-kb-button-secondary:hover {
1571 background-color: #f0f0f0;
1572 border-color: #c3c4c7;
1573 }
1574
1575 .mxchat-kb-pagination {
1576 padding: 15px 20px;
1577 border-top: 1px solid #eee;
1578 text-align: center;
1579 }
1580
1581 .mxchat-kb-pagination-links {
1582 display: flex;
1583 justify-content: center;
1584 align-items: center;
1585 gap: 5px;
1586 flex-wrap: wrap;
1587 }
1588
1589 .mxchat-kb-page-link {
1590 padding: 5px 10px;
1591 text-decoration: none;
1592 border: 1px solid #ddd;
1593 color: #7873f5;
1594 border-radius: 3px;
1595 transition: all 0.2s;
1596 }
1597
1598 .mxchat-kb-page-link:hover {
1599 background-color: #f0f0f0;
1600 color: #fa73e6;
1601 border-color: #c3c4c7;
1602 }
1603
1604 .mxchat-kb-page-current {
1605 padding: 5px 10px;
1606 background: linear-gradient(135deg, #fa73e6, #7873f5);
1607 color: white;
1608 border-radius: 3px;
1609 font-weight: 500;
1610 }
1611
1612 /* ===== Loading and Error States ===== */
1613 .mxchat-kb-no-results,
1614 .mxchat-kb-error {
1615 padding: 30px;
1616 text-align: center;
1617 color: #666;
1618 font-size: 14px;
1619 }
1620
1621 .mxchat-kb-error {
1622 color: #d63638;
1623 }
1624
1625 .mxchat-kb-loading {
1626 display: flex;
1627 flex-direction: column;
1628 align-items: center;
1629 justify-content: center;
1630 padding: 50px;
1631 color: #666;
1632 }
1633
1634 .mxchat-kb-spinner {
1635 display: inline-block;
1636 width: 50px;
1637 height: 50px;
1638 border: 5px solid #f3f3f3;
1639 border-top: 5px solid #7873f5;
1640 border-radius: 50%;
1641 animation: mxchat-kb-spin 1s linear infinite;
1642 margin: 0 0 10px 0;
1643 }
1644
1645 @keyframes mxchat-kb-spin {
1646 0% { transform: rotate(0deg); }
1647 100% { transform: rotate(360deg); }
1648 }
1649
1650 .mxchat-kb-progress-bar {
1651 height: 8px;
1652 background-color: #f0f0f0;
1653 border-radius: 4px;
1654 margin: 10px 0 15px;
1655 overflow: hidden;
1656 }
1657
1658 .mxchat-kb-progress-fill {
1659 height: 100%;
1660 background: linear-gradient(135deg, #fa73e6, #7873f5);
1661 transition: width 0.3s ease;
1662 }
1663
1664 .mxchat-kb-current-item {
1665 font-size: 14px;
1666 color: #555;
1667 margin: 10px 0 0;
1668 font-style: italic;
1669 }
1670
1671 .mxchat-kb-results-details {
1672 margin-top: 15px;
1673 text-align: left;
1674 max-height: 200px;
1675 overflow-y: auto;
1676 padding: 10px;
1677 border-radius: 4px;
1678 }
1679
1680 .mxchat-kb-results-details h5 {
1681 margin-top: 0;
1682 margin-bottom: 10px;
1683 color: #d63638;
1684 }
1685
1686 .mxchat-kb-results-details ul {
1687 margin: 0;
1688 padding-left: 20px;
1689 }
1690
1691 .mxchat-kb-results-details li {
1692 margin-bottom: 5px;
1693 }
1694
1695 /* ===== Processing Overlay ===== */
1696 .mxchat-kb-processing-overlay {
1697 position: fixed;
1698 top: 0;
1699 left: 0;
1700 width: 100%;
1701 height: 100%;
1702 background-color: rgba(0, 0, 0, 0.7);
1703 z-index: 9999999;
1704 display: flex;
1705 justify-content: center;
1706 align-items: center;
1707 }
1708
1709 .mxchat-kb-processing-content {
1710 background-color: white;
1711 padding: 30px;
1712 border-radius: 8px;
1713 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1714 text-align: center;
1715 max-width: 500px;
1716 width: 90%;
1717 }
1718
1719 .mxchat-kb-processing-content h3 {
1720 margin-top: 0;
1721 margin-bottom: 15px;
1722 font-size: 20px;
1723 color: #7873f5;
1724 }
1725
1726 .mxchat-kb-processing-status {
1727 color: #555;
1728 margin-bottom: 20px;
1729 }
1730
1731 /* ===== Utility Classes ===== */
1732 .mxchat-na {
1733 color: #999;
1734 font-style: italic;
1735 }
1736
1737 .mxchat-no-records {
1738 text-align: center;
1739 color: #666;
1740 padding: 40px !important;
1741 }
1742
1743 /* ===== Responsive Design ===== */
1744 @media screen and (max-width: 782px) {
1745 /* Hero section */
1746 div.mxchat-hero h1.mxchat-main-title {
1747 font-size: 2.5rem;
1748 }
1749
1750 .mxchat-content {
1751 padding: 1rem;
1752 }
1753
1754 .mxchat-card {
1755 padding: 20px;
1756 }
1757
1758 .mxchat-card-header {
1759 flex-direction: column;
1760 gap: 16px;
1761 }
1762
1763 .mxchat-header-actions {
1764 flex-direction: column;
1765 width: 100%;
1766 }
1767
1768 .mxchat-search-group input {
1769 width: 100%;
1770 }
1771
1772 .mxchat-url-input-group {
1773 flex-direction: column;
1774 }
1775
1776 .mxchat-records-table {
1777 display: block;
1778 overflow-x: auto;
1779 }
1780
1781 .mxchat-content-cell {
1782 max-width: 200px;
1783 }
1784
1785 /* Modal responsive adjustments */
1786 .mxchat-kb-modal-content {
1787 width: 95%;
1788 max-height: 90vh;
1789 margin: 20px auto;
1790 }
1791
1792 .mxchat-kb-modal-filters {
1793 flex-direction: column;
1794 align-items: stretch;
1795 }
1796
1797 .mxchat-kb-search-group {
1798 max-width: none;
1799 }
1800
1801 .mxchat-kb-filter-group {
1802 flex-direction: column;
1803 }
1804
1805 .mxchat-kb-content-selection {
1806 max-height: calc(90vh - 250px);
1807 }
1808
1809 .mxchat-kb-selection-header {
1810 flex-direction: column;
1811 align-items: flex-start;
1812 gap: 10px;
1813 }
1814
1815 .mxchat-kb-modal-footer {
1816 flex-direction: column;
1817 }
1818
1819 .mxchat-kb-button-primary,
1820 .mxchat-kb-button-secondary {
1821 width: 100%;
1822 }
1823
1824 /* Import methods grid */
1825 .mxchat-import-methods-grid {
1826 grid-template-columns: 1fr;
1827 }
1828
1829 /* Primary import card */
1830 .mxchat-featured-button {
1831 width: 100%;
1832 }
1833 }
1834
1835 /* ===== Notification Styles ===== */
1836
1837 /* Base notification style */
1838 .mxchat-kb-notification {
1839 margin: 15px 20px 15px;
1840 padding: 15px;
1841 border-radius: 6px;
1842 border-left: 4px solid;
1843 position: relative;
1844 animation: mxchat-kb-notification-appear 0.3s ease-out;
1845 }
1846
1847 @keyframes mxchat-kb-notification-appear {
1848 from {
1849 opacity: 0;
1850 transform: translateY(-10px);
1851 }
1852 to {
1853 opacity: 1;
1854 transform: translateY(0);
1855 }
1856 }
1857
1858 /* Success notification */
1859 .mxchat-kb-notification.success {
1860 background-color: #f0f9eb;
1861 border-color: #67c23a;
1862 color: #3c763d;
1863 }
1864
1865 .mxchat-kb-notification.success h4 {
1866 color: #67c23a;
1867 margin: 0 0 5px;
1868 font-size: 16px;
1869 font-weight: 600;
1870 }
1871
1872 .mxchat-kb-notification.success::before {
1873 content: "\f147";
1874 font-family: dashicons;
1875 position: absolute;
1876 right: 15px;
1877 top: 15px;
1878 color: #67c23a;
1879 font-size: 20px;
1880 }
1881
1882 /* Error notification */
1883 .mxchat-kb-notification.error {
1884 background-color: #fef0f0;
1885 border-color: #d63638;
1886 color: #a94442;
1887 }
1888
1889 .mxchat-kb-notification.error h4 {
1890 color: #d63638;
1891 margin: 0 0 5px;
1892 font-size: 16px;
1893 font-weight: 600;
1894 }
1895
1896 .mxchat-kb-notification.error::before {
1897 content: "\f335";
1898 font-family: dashicons;
1899 position: absolute;
1900 right: 15px;
1901 top: 15px;
1902 color: #d63638;
1903 font-size: 20px;
1904 }
1905
1906 /* Warning notification */
1907 .mxchat-kb-notification.warning {
1908 background-color: #fdf6ec;
1909 border-color: #ff9800;
1910 color: #8a6d3b;
1911 }
1912
1913 .mxchat-kb-notification.warning h4 {
1914 color: #ff9800;
1915 margin: 0 0 5px;
1916 font-size: 16px;
1917 font-weight: 600;
1918 }
1919
1920 .mxchat-kb-notification.warning::before {
1921 content: "\f534";
1922 font-family: dashicons;
1923 position: absolute;
1924 right: 15px;
1925 top: 15px;
1926 color: #ff9800;
1927 font-size: 20px;
1928 }
1929
1930 /* Info notification */
1931 .mxchat-kb-notification.info {
1932 background-color: #f4f4fd;
1933 border-color: #7873f5;
1934 color: #31708f;
1935 }
1936
1937 .mxchat-kb-notification.info h4 {
1938 color: #7873f5;
1939 margin: 0 0 5px;
1940 font-size: 16px;
1941 font-weight: 600;
1942 }
1943
1944 .mxchat-kb-notification.info::before {
1945 content: "\f348";
1946 font-family: dashicons;
1947 position: absolute;
1948 right: 15px;
1949 top: 15px;
1950 color: #7873f5;
1951 font-size: 20px;
1952 }
1953
1954 /* Close button for notifications */
1955 .mxchat-kb-notification-close {
1956 position: absolute;
1957 top: 10px;
1958 right: 10px;
1959 cursor: pointer;
1960 color: inherit;
1961 opacity: 0.7;
1962 font-size: 16px;
1963 line-height: 1;
1964 transition: opacity 0.2s;
1965 }
1966
1967 .mxchat-kb-notification-close:hover {
1968 opacity: 1;
1969 }
1970
1971 /* Results details section */
1972 .mxchat-kb-results-details {
1973 margin-top: 12px;
1974 padding: 12px;
1975 border-radius: 4px;
1976 font-size: 13px;
1977 line-height: 1.5;
1978 }
1979
1980 .mxchat-kb-notification.success .mxchat-kb-results-details {
1981 background-color: rgba(103, 194, 58, 0.05);
1982 border: 1px solid rgba(103, 194, 58, 0.2);
1983 }
1984
1985 .mxchat-kb-notification.error .mxchat-kb-results-details {
1986
1987 }
1988
1989 .mxchat-kb-notification.warning .mxchat-kb-results-details {
1990 background-color: rgba(255, 152, 0, 0.05);
1991 border: 1px solid rgba(255, 152, 0, 0.2);
1992 }
1993
1994 .mxchat-kb-notification.info .mxchat-kb-results-details {
1995 background-color: rgba(120, 115, 245, 0.05);
1996 border: 1px solid rgba(120, 115, 245, 0.2);
1997 }
1998
1999 /* Results details title */
2000 .mxchat-kb-results-details h5 {
2001 margin: 0 0 10px;
2002 font-size: 14px;
2003 font-weight: 600;
2004 }
2005
2006 .mxchat-kb-notification.success .mxchat-kb-results-details h5 {
2007 color: #3c763d;
2008 }
2009
2010 .mxchat-kb-notification.error .mxchat-kb-results-details h5 {
2011 color: #a94442;
2012 }
2013
2014 .mxchat-kb-notification.warning .mxchat-kb-results-details h5 {
2015 color: #8a6d3b;
2016 }
2017
2018 .mxchat-kb-notification.info .mxchat-kb-results-details h5 {
2019 color: #31708f;
2020 }
2021
2022 /* List items in results details */
2023 .mxchat-kb-results-details ul {
2024 margin: 0;
2025 padding-left: 20px;
2026 list-style-type: disc;
2027 }
2028
2029 .mxchat-kb-results-details li {
2030 margin-bottom: 8px;
2031 padding-left: 3px;
2032 }
2033
2034 .mxchat-kb-results-details li:last-child {
2035 margin-bottom: 0;
2036 }
2037
2038 .mxchat-kb-results-details li strong {
2039 font-weight: 600;
2040 }
2041
2042 /* Failed items specific styling */
2043 .mxchat-kb-results-details li.failed-item {
2044 color: #d63638;
2045 }
2046
2047 /* Success items specific styling */
2048 .mxchat-kb-results-details li.success-item {
2049 color: #67c23a;
2050 }
2051
2052 /* Updated items specific styling */
2053 .mxchat-kb-results-details li.updated-item {
2054 color: #1e88e5;
2055 }
2056
2057 /* Processing summary information */
2058 .mxchat-kb-processing-summary {
2059 display: flex;
2060 flex-wrap: wrap;
2061 gap: 15px;
2062 margin-top: 10px;
2063 font-size: 14px;
2064 }
2065
2066 .mxchat-kb-summary-item {
2067 display: flex;
2068 align-items: center;
2069 gap: 5px;
2070 }
2071
2072 .mxchat-kb-summary-item .dashicons {
2073 font-size: 18px;
2074 }
2075
2076 .mxchat-kb-summary-item.processed .dashicons {
2077 color: #67c23a;
2078 }
2079
2080 .mxchat-kb-summary-item.updated .dashicons {
2081 color: #1e88e5;
2082 }
2083
2084 .mxchat-kb-summary-item.failed .dashicons {
2085 color: #d63638;
2086 }
2087
2088 /* Show more/less toggle for details */
2089 .mxchat-kb-show-details {
2090 display: inline-block;
2091 margin-top: 8px;
2092 color: #7873f5;
2093 cursor: pointer;
2094 font-size: 13px;
2095 font-weight: 500;
2096 }
2097
2098 .mxchat-kb-show-details:hover {
2099 text-decoration: underline;
2100 }
2101
2102 .mxchat-kb-show-details .dashicons {
2103 font-size: 16px;
2104 vertical-align: middle;
2105 margin-right: 2px;
2106 }
2107
2108 /* Collapsible details section */
2109 .mxchat-kb-results-details.collapsed {
2110 display: none;
2111 }
2112
2113 /* Responsive styles for notifications */
2114 @media screen and (max-width: 782px) {
2115 .mxchat-kb-notification {
2116 margin: 10px 15px 0;
2117 padding: 12px;
2118 }
2119
2120 .mxchat-kb-notification::before {
2121 display: none;
2122 }
2123
2124 .mxchat-kb-processing-summary {
2125 flex-direction: column;
2126 gap: 8px;
2127 }
2128 }
2129
2130
2131
2132
2133
2134 /* Tab Navigation */
2135 .mxchat-kb-tabs-nav {
2136 display: flex;
2137 margin-bottom: 20px;
2138 border-bottom: 1px solid #ccc;
2139 }
2140
2141 .mxchat-kb-tab-button {
2142 padding: 10px 15px;
2143 background: #f1f1f1;
2144 border: 1px solid #ccc;
2145 border-bottom: none;
2146 margin-right: 5px;
2147 cursor: pointer;
2148 font-weight: 500;
2149 border-radius: 5px 5px 0 0;
2150 }
2151
2152 .mxchat-kb-tab-button.active {
2153 background: #fff;
2154 border-bottom: 2px solid #fff;
2155 position: relative;
2156 bottom: -1px;
2157 color: #2271b1;
2158 }
2159
2160 /* Tab Content */
2161 .mxchat-kb-tab-content {
2162 display: none;
2163 }
2164
2165 .mxchat-kb-tab-content.active {
2166 display: block;
2167 }
2168
2169 /* Make the first card in tabs not have top margin */
2170 .mxchat-kb-tab-content .mxchat-card:first-child {
2171 margin-top: 0;
2172 }
2173
2174
2175
2176
2177
2178
2179 /* Pinecone Settings Tab Styles */
2180 .mxchat-pinecone-info-box {
2181 background: #f8f9ff;
2182 border: 1px solid rgba(120, 115, 245, 0.2);
2183 border-radius: 10px;
2184 padding: 20px;
2185 margin: 20px 0;
2186 display: flex;
2187 align-items: flex-start;
2188 gap: 15px;
2189 }
2190
2191 .mxchat-info-icon {
2192 flex-shrink: 0;
2193 }
2194
2195 .mxchat-info-icon .dashicons {
2196 color: #7873f5;
2197 font-size: 24px;
2198 width: 24px;
2199 height: 24px;
2200 }
2201
2202 .mxchat-info-content {
2203 flex: 1;
2204 }
2205
2206 .mxchat-info-content h4 {
2207 margin: 0 0 10px 0;
2208 color: #333;
2209 font-size: 16px;
2210 }
2211
2212 .mxchat-info-content p {
2213 margin: 0 0 8px 0;
2214 color: #666;
2215 font-size: 14px;
2216 line-height: 1.5;
2217 }
2218
2219 .mxchat-info-content p:last-child {
2220 margin-bottom: 0;
2221 }
2222
2223 .mxchat-info-content a {
2224 color: #7873f5;
2225 text-decoration: none;
2226 font-weight: 500;
2227 }
2228
2229 .mxchat-info-content a:hover {
2230 text-decoration: underline;
2231 }
2232
2233 /* Database Settings Form */
2234 .mxchat-database-settings-form {
2235 margin-top: 25px;
2236 }
2237
2238 /* Toggle Container */
2239 .mxchat-toggle-container {
2240 display: flex;
2241 align-items: center;
2242 gap: 12px;
2243 margin: 20px 0;
2244 padding: 15px 0;
2245 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2246 }
2247
2248 .mxchat-toggle-switch {
2249 position: relative;
2250 display: inline-block;
2251 width: 50px;
2252 height: 26px;
2253 }
2254
2255 .mxchat-toggle-switch input {
2256 opacity: 0;
2257 width: 0;
2258 height: 0;
2259 }
2260
2261 .mxchat-toggle-slider {
2262 position: absolute;
2263 cursor: pointer;
2264 top: 0;
2265 left: 0;
2266 right: 0;
2267 bottom: 0;
2268 background-color: #ddd;
2269 transition: 0.3s;
2270 border-radius: 26px;
2271 }
2272
2273 .mxchat-toggle-slider:before {
2274 position: absolute;
2275 content: "";
2276 height: 20px;
2277 width: 20px;
2278 left: 3px;
2279 bottom: 3px;
2280 background-color: white;
2281 transition: 0.3s;
2282 border-radius: 50%;
2283 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
2284 }
2285
2286 input:checked + .mxchat-toggle-slider {
2287 background: linear-gradient(135deg, #fa73e6, #7873f5);
2288 }
2289
2290 input:checked + .mxchat-toggle-slider:before {
2291 transform: translateX(24px);
2292 }
2293
2294 .mxchat-toggle-label {
2295 font-weight: 500;
2296 color: #333;
2297 font-size: 15px;
2298 }
2299
2300 /* Pinecone Settings Section */
2301 .mxchat-pinecone-settings {
2302 background: #f8f9ff;
2303 border: 1px solid rgba(120, 115, 245, 0.2);
2304 border-radius: 10px;
2305 padding: 25px;
2306 margin: 20px 0;
2307 }
2308
2309 /* Knowledge Warning (Success State) */
2310 .mxchat-knowledge-warning.success {
2311 background: #edfaef;
2312 border-left: 4px solid #46b450;
2313 padding: 15px;
2314 margin: 0 0 20px 0;
2315 border-radius: 4px;
2316 }
2317
2318 .mxchat-knowledge-warning.success p {
2319 margin: 0;
2320 color: #2a4f30;
2321 align-items: center;
2322 gap: 8px;
2323 }
2324
2325 .mxchat-knowledge-warning.success .dashicons {
2326 color: #46b450;
2327 }
2328
2329 /* Form Groups */
2330 .mxchat-form-group {
2331 margin-bottom: 20px;
2332 }
2333
2334 .mxchat-form-group label {
2335 display: block;
2336 margin-bottom: 8px;
2337 color: #333;
2338 font-weight: 500;
2339 font-size: 14px;
2340 }
2341
2342 .mxchat-form-group label .required {
2343 color: #dc3232;
2344 margin-left: 4px;
2345 }
2346
2347 .mxchat-form-group input[type="text"],
2348 .mxchat-form-group input[type="password"] {
2349 width: 100%;
2350 max-width: 400px;
2351 padding: 10px 12px;
2352 border: 1px solid rgba(120, 115, 245, 0.2);
2353 border-radius: 6px;
2354 background: white;
2355 font-size: 14px;
2356 transition: border-color 0.2s ease, box-shadow 0.2s ease;
2357 }
2358
2359 .mxchat-form-group input[type="text"]:focus,
2360 .mxchat-form-group input[type="password"]:focus {
2361 border-color: #7873f5;
2362 outline: none;
2363 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
2364 }
2365
2366 .mxchat-form-group .description {
2367 margin: 8px 0 0 0;
2368 color: #666;
2369 font-size: 13px;
2370 line-height: 1.4;
2371 }
2372
2373 .mxchat-form-group .description a {
2374 color: #7873f5;
2375 text-decoration: none;
2376 font-weight: 500;
2377 }
2378
2379 .mxchat-form-group .description a:hover {
2380 text-decoration: underline;
2381 }
2382
2383 /* Setup Help Section */
2384 .mxchat-pinecone-setup-help {
2385 background: white;
2386 border: 1px solid rgba(120, 115, 245, 0.1);
2387 border-radius: 8px;
2388 padding: 20px;
2389 margin-top: 25px;
2390 }
2391
2392 .mxchat-pinecone-setup-help h3 {
2393 margin: 0 0 15px 0;
2394 color: #333;
2395 font-size: 16px;
2396 }
2397
2398 .mxchat-pinecone-setup-help ol {
2399 margin: 0;
2400 padding-left: 20px;
2401 }
2402
2403 .mxchat-pinecone-setup-help li {
2404 margin-bottom: 12px;
2405 color: #666;
2406 line-height: 1.5;
2407 }
2408
2409 .mxchat-pinecone-setup-help li:last-child {
2410 margin-bottom: 0;
2411 }
2412
2413 .mxchat-pinecone-setup-help ul {
2414 margin: 8px 0;
2415 padding-left: 20px;
2416 }
2417
2418 .mxchat-pinecone-setup-help ul li {
2419 margin-bottom: 6px;
2420 font-size: 13px;
2421 }
2422
2423 .mxchat-pinecone-setup-help a {
2424 color: #7873f5;
2425 text-decoration: none;
2426 font-weight: 500;
2427 }
2428
2429 .mxchat-pinecone-setup-help a:hover {
2430 text-decoration: underline;
2431 }
2432
2433 /* Connection Status Section */
2434 .mxchat-pinecone-status-section {
2435 background: white;
2436 border: 1px solid rgba(120, 115, 245, 0.1);
2437 border-radius: 8px;
2438 padding: 20px;
2439 margin-top: 25px;
2440 }
2441
2442 .mxchat-pinecone-status-section h3 {
2443 margin: 0 0 15px 0;
2444 color: #333;
2445 font-size: 16px;
2446 }
2447
2448 #mxchat-pinecone-test-connection {
2449 margin-bottom: 15px;
2450 }
2451
2452 #test-pinecone-connection {
2453 background: linear-gradient(135deg, #fa73e6, #7873f5);
2454 color: white;
2455 border: none;
2456 padding: 10px 20px;
2457 border-radius: 6px;
2458 cursor: pointer;
2459 font-size: 14px;
2460 font-weight: 500;
2461 transition: all 0.2s ease;
2462 }
2463
2464 #test-pinecone-connection:hover:not(:disabled) {
2465 transform: translateY(-1px);
2466 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.3);
2467 }
2468
2469 #test-pinecone-connection:disabled {
2470 opacity: 0.6;
2471 cursor: not-allowed;
2472 transform: none;
2473 }
2474
2475 /* Test Result Styles */
2476 .mxchat-test-result {
2477 margin-top: 15px;
2478 }
2479
2480 .mxchat-test-result .notice {
2481 margin: 0;
2482 padding: 12px 15px;
2483 border-radius: 6px;
2484 display: flex;
2485 align-items: center;
2486 gap: 8px;
2487 }
2488
2489 .mxchat-test-result .notice-success {
2490 background: #edfaef;
2491 border-left: 4px solid #46b450;
2492 color: #2a4f30;
2493 }
2494
2495 .mxchat-test-result .notice-error {
2496 background: #fbeaea;
2497 border-left: 4px solid #dc3232;
2498 color: #721c24;
2499 }
2500
2501 .mxchat-test-result .notice .dashicons {
2502 flex-shrink: 0;
2503 }
2504
2505 .mxchat-test-result .notice p {
2506 margin: 0;
2507 font-size: 14px;
2508 }
2509
2510 /* Compatibility Notice */
2511 .mxchat-pinecone-compatibility-notice {
2512 background: #e8f4ff;
2513 border-left: 4px solid #2196f3;
2514 padding: 15px;
2515 margin: 0 0 20px 0;
2516 border-radius: 4px;
2517 }
2518
2519 .mxchat-pinecone-compatibility-notice p {
2520 margin: 0;
2521 color: #1565c0;
2522 font-size: 14px;
2523 line-height: 1.5;
2524 }
2525
2526 /* Responsive Design */
2527 @media screen and (max-width: 782px) {
2528 .mxchat-pinecone-info-box {
2529 flex-direction: column;
2530 gap: 10px;
2531 }
2532
2533 .mxchat-toggle-container {
2534 flex-direction: column;
2535 align-items: flex-start;
2536 gap: 8px;
2537 }
2538
2539 .mxchat-form-group input[type="text"],
2540 .mxchat-form-group input[type="password"] {
2541 max-width: 100%;
2542 }
2543
2544 .mxchat-pinecone-settings {
2545 padding: 15px;
2546 }
2547
2548 .mxchat-pinecone-setup-help,
2549 .mxchat-pinecone-status-section {
2550 padding: 15px;
2551 }
2552 }
2553
2554
2555 /* Setup Steps */
2556 .mxchat-setup-steps {
2557 margin: 30px 0;
2558 padding: 20px;
2559 background: #fff;
2560 border-radius: 10px;
2561 }
2562
2563 .mxchat-setup-step {
2564 display: flex;
2565 align-items: flex-start;
2566 margin-bottom: 20px;
2567 }
2568
2569 .step-number {
2570 background: linear-gradient(135deg, #fa73e6, #7873f5);
2571 color: white;
2572 width: 28px;
2573 height: 28px;
2574 border-radius: 50%;
2575 display: flex;
2576 align-items: center;
2577 justify-content: center;
2578 font-weight: bold;
2579 margin-right: 15px;
2580 flex-shrink: 0;
2581 }
2582
2583 .step-content {
2584 flex: 1;
2585 }
2586
2587 .step-content h4 {
2588 margin: 0 0 5px 0;
2589 }
2590
2591 .step-content p {
2592 margin: 0;
2593 color: #666;
2594 }
2595
2596 .step-content ul {
2597 margin-top: 5px;
2598 margin-bottom: 0;
2599 color: #666;
2600 }
2601
2602
2603
2604 /* ===== Role-Based Content Restrictions Styles ===== */
2605
2606 /* Role mapping form */
2607 .mxchat-role-mapping-form {
2608 margin-top: 20px;
2609 padding: 20px;
2610 background-color: #f8f9ff;
2611 border-radius: 8px;
2612 border: 1px solid rgba(120, 115, 245, 0.1);
2613 }
2614
2615 .mxchat-role-mapping-form h4 {
2616 margin-top: 0;
2617 margin-bottom: 15px;
2618 font-size: 16px;
2619 color: #333;
2620 }
2621
2622 .mxchat-form-row {
2623 display: flex;
2624 gap: 15px;
2625 align-items: flex-end;
2626 margin-bottom: 20px;
2627 }
2628
2629 /* Role mappings table */
2630 .mxchat-mappings-table {
2631 width: 100%;
2632 border-collapse: collapse;
2633 margin-top: 15px;
2634 background: #fff;
2635 box-shadow: 0 1px 3px rgba(120, 115, 245, 0.08);
2636 border-radius: 8px;
2637 overflow: hidden;
2638 }
2639
2640 .mxchat-mappings-table th,
2641 .mxchat-mappings-table td {
2642 padding: 15px;
2643 text-align: left;
2644 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2645 }
2646
2647 .mxchat-mappings-table th {
2648 background: #f8f9ff;
2649 font-weight: 600;
2650 color: #333;
2651 font-size: 14px;
2652 }
2653
2654 .mxchat-mappings-table tbody tr {
2655 transition: background-color 0.2s ease;
2656 }
2657
2658 .mxchat-mappings-table tbody tr:hover {
2659 background: rgba(120, 115, 245, 0.03);
2660 }
2661
2662 .mxchat-mappings-table tbody tr:last-child td {
2663 border-bottom: none;
2664 }
2665
2666 /* Tag and role badges */
2667 .mxchat-tag-badge {
2668 display: inline-flex;
2669 align-items: center;
2670 gap: 5px;
2671 padding: 5px 12px;
2672 background: linear-gradient(135deg, #fa73e6, #7873f5);
2673 color: #fff;
2674 border-radius: 4px;
2675 font-size: 13px;
2676 font-weight: 500;
2677 }
2678
2679 .mxchat-tag-badge .dashicons {
2680 font-size: 16px;
2681 width: 16px;
2682 height: 16px;
2683 }
2684
2685 .mxchat-role-badge {
2686 display: inline-block;
2687 padding: 5px 12px;
2688 background: #f0f0f1;
2689 color: #2c3338;
2690 border-radius: 4px;
2691 font-size: 13px;
2692 font-weight: 500;
2693 }
2694
2695 /* Role-specific badge colors */
2696 .mxchat-role-badge.public {
2697 background: #e8f5e9;
2698 color: #2e7d32;
2699 }
2700
2701 .mxchat-role-badge.logged_in {
2702 background: #e3f2fd;
2703 color: #1565c0;
2704 }
2705
2706 .mxchat-role-badge.subscriber {
2707 background: #f3e5f5;
2708 color: #7b1fa2;
2709 }
2710
2711 .mxchat-role-badge.contributor {
2712 background: #fff3e0;
2713 color: #e65100;
2714 }
2715
2716 .mxchat-role-badge.author {
2717 background: #fff9c4;
2718 color: #f57f17;
2719 }
2720
2721 .mxchat-role-badge.editor {
2722 background: #fce4ec;
2723 color: #c2185b;
2724 }
2725
2726 .mxchat-role-badge.administrator {
2727 background: #ffebee;
2728 color: #c62828;
2729 }
2730
2731 /* Mapping actions */
2732 .mxchat-mapping-actions {
2733 display: flex;
2734 gap: 8px;
2735 align-items: center;
2736 }
2737
2738 .mxchat-delete-mapping {
2739 color: #d63638;
2740 cursor: pointer;
2741 padding: 6px 10px;
2742 border-radius: 4px;
2743 transition: all 0.2s ease;
2744 display: inline-flex;
2745 align-items: center;
2746 gap: 4px;
2747 background: transparent;
2748 border: none;
2749 font-size: 13px;
2750 }
2751
2752 .mxchat-delete-mapping:hover {
2753 background: #fef0f0;
2754 color: #b32d2e;
2755 }
2756
2757 .mxchat-delete-mapping .dashicons {
2758 font-size: 18px;
2759 width: 18px;
2760 height: 18px;
2761 }
2762
2763 /* Post count display */
2764 .mxchat-post-count {
2765 color: #666;
2766 font-size: 13px;
2767 display: flex;
2768 align-items: center;
2769 gap: 4px;
2770 }
2771
2772 .mxchat-post-count .dashicons {
2773 font-size: 16px;
2774 width: 16px;
2775 height: 16px;
2776 color: #7873f5;
2777 }
2778
2779 /* Loading state for mappings */
2780 .mxchat-loading-mappings {
2781 text-align: center;
2782 padding: 40px;
2783 color: #666;
2784 }
2785
2786 .mxchat-role-spinner {
2787 display: inline-block;
2788 width: 20px;
2789 height: 20px;
2790 border: 2px solid rgba(120, 115, 245, 0.2);
2791 border-top: 2px solid #7873f5;
2792 border-radius: 50%;
2793 animation: mxchat-role-spin 1s linear infinite;
2794 margin-right: 10px;
2795 }
2796
2797 .mxchat-role-spinner.is-active {
2798 display: inline-block;
2799 }
2800
2801 @keyframes mxchat-role-spin {
2802 0% { transform: rotate(0deg); }
2803 100% { transform: rotate(360deg); }
2804 }
2805
2806 /* Empty state */
2807 #mxchat-no-mappings {
2808 text-align: center;
2809 padding: 40px;
2810 color: #666;
2811 }
2812
2813 #mxchat-no-mappings .dashicons {
2814 font-size: 48px;
2815 opacity: 0.3;
2816 margin-bottom: 15px;
2817 display: block;
2818 }
2819
2820 #mxchat-no-mappings p {
2821 margin: 0;
2822 font-size: 14px;
2823 }
2824
2825 /* Bulk update section */
2826 .mxchat-bulk-update-section {
2827 margin-top: 30px;
2828 padding-top: 30px;
2829 border-top: 1px solid rgba(120, 115, 245, 0.1);
2830 }
2831
2832 .mxchat-bulk-update-section h4 {
2833 margin-top: 0;
2834 margin-bottom: 10px;
2835 font-size: 16px;
2836 color: #333;
2837 }
2838
2839 .mxchat-bulk-update-controls {
2840 margin-top: 15px;
2841 }
2842
2843 #mxchat-bulk-update-roles {
2844 display: inline-flex;
2845 align-items: center;
2846 gap: 8px;
2847 }
2848
2849 #mxchat-bulk-update-progress {
2850 max-width: 600px;
2851 }
2852
2853 #mxchat-bulk-update-progress .mxchat-progress-bar {
2854 height: 10px;
2855 background: rgba(120, 115, 245, 0.1);
2856 border-radius: 5px;
2857 overflow: hidden;
2858 }
2859
2860 #mxchat-bulk-update-progress .mxchat-progress-fill {
2861 height: 100%;
2862 background: linear-gradient(135deg, #fa73e6, #7873f5);
2863 transition: width 0.3s ease;
2864 }
2865
2866 .mxchat-progress-text {
2867 margin-top: 10px;
2868 color: #666;
2869 font-size: 14px;
2870 }
2871
2872 /* Bulk update results */
2873 #mxchat-bulk-update-result {
2874 margin-top: 15px;
2875 padding: 15px;
2876 border-radius: 8px;
2877 }
2878
2879 #mxchat-bulk-update-result.success {
2880 background-color: #f0f9eb;
2881 border-left: 4px solid #67c23a;
2882 color: #3c763d;
2883 }
2884
2885 #mxchat-bulk-update-result.error {
2886 background-color: #fef0f0;
2887 border-left: 4px solid #d63638;
2888 color: #a94442;
2889 }
2890
2891 #mxchat-bulk-update-result h5 {
2892 margin: 0 0 10px;
2893 font-size: 15px;
2894 font-weight: 600;
2895 }
2896
2897 #mxchat-bulk-update-result p {
2898 margin: 5px 0;
2899 font-size: 14px;
2900 }
2901
2902 /* Role mappings list container */
2903 .mxchat-role-mappings-list {
2904 margin-top: 25px;
2905 }
2906
2907 .mxchat-role-mappings-list h4 {
2908 margin-top: 0;
2909 margin-bottom: 15px;
2910 font-size: 16px;
2911 color: #333;
2912 }
2913
2914 /* Info banner styling (reuse existing pattern) */
2915 .mxchat-role-info-banner {
2916 display: flex;
2917 align-items: center;
2918 gap: 10px;
2919 padding: 12px 16px;
2920 margin-bottom: 20px;
2921 border-radius: 6px;
2922 font-size: 14px;
2923 background: #f8f9ff;
2924 border-left: 4px solid #7873f5;
2925 color: #333;
2926 }
2927
2928 .mxchat-role-info-banner .dashicons {
2929 color: #7873f5;
2930 font-size: 18px;
2931 }
2932
2933 /* Responsive adjustments */
2934 @media screen and (max-width: 782px) {
2935 .mxchat-form-row {
2936 flex-direction: column;
2937 align-items: stretch;
2938 }
2939
2940 .mxchat-form-row .mxchat-form-group {
2941 flex: 1;
2942 max-width: none;
2943 }
2944
2945 .mxchat-form-row > div {
2946 padding-bottom: 0;
2947 }
2948
2949 .mxchat-mappings-table {
2950 display: block;
2951 overflow-x: auto;
2952 }
2953
2954 .mxchat-mappings-table th,
2955 .mxchat-mappings-table td {
2956 padding: 10px;
2957 font-size: 13px;
2958 }
2959
2960 .mxchat-mapping-actions {
2961 flex-direction: column;
2962 align-items: flex-start;
2963 }
2964 }
2965
2966 /* RTL Support */
2967 .rtl .mxchat-mappings-table th,
2968 .rtl .mxchat-mappings-table td {
2969 text-align: right;
2970 }
2971
2972 .rtl .mxchat-tag-badge {
2973 flex-direction: row-reverse;
2974 }
2975
2976 .rtl .mxchat-role-info-banner {
2977 border-left: none;
2978 border-right: 4px solid #7873f5;
2979 }
2980
2981 .rtl .mxchat-bulk-update-section {
2982 border-right: none;
2983 }
2984
2985 .rtl #mxchat-bulk-update-result {
2986 border-left: none;
2987 border-right: 4px solid;
2988 }
2989
2990 .rtl .mxchat-role-spinner {
2991 margin-right: 0;
2992 margin-left: 10px;
2993 }