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

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

3,588 lines 69.9 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 display: flex;
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 /* ADDED 2.5.6: Content Type Filter Styles */
685 .mxchat-filter-group {
686 position: relative;
687 display: flex;
688 align-items: center;
689 margin-left: 12px;
690 }
691
692 .mxchat-filter-group select {
693 padding: 8px 32px 8px 12px;
694 border: 1px solid #ddd;
695 border-radius: 8px;
696 background: white;
697 color: #333;
698 font-size: 14px;
699 cursor: pointer;
700 transition: all 0.2s ease;
701 appearance: none;
702 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
703 background-repeat: no-repeat;
704 background-position: right 12px center;
705 }
706
707 .mxchat-filter-group select:hover {
708 border-color: #7873f5;
709 box-shadow: 0 2px 8px rgba(120, 115, 245, 0.1);
710 }
711
712 .mxchat-filter-group select:focus {
713 outline: none;
714 border-color: #7873f5;
715 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
716 }
717
718 /* ===== Buttons ===== */
719 .mxchat-button-primary {
720 background: linear-gradient(135deg, #fa73e6, #7873f5);
721 border: none;
722 color: white;
723 padding: 10px 20px;
724 border-radius: 8px;
725 font-weight: 600;
726 cursor: pointer;
727 transition: all 0.3s ease;
728 }
729
730 .mxchat-button-primary:hover {
731 transform: translateY(-1px);
732 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.2);
733 }
734
735 .mxchat-button-primary:disabled {
736 background: #a7a7a7;
737 cursor: not-allowed;
738 transform: none;
739 box-shadow: none;
740 }
741
742 .mxchat-button-secondary {
743 background: #f8f9ff;
744 border: 1px solid rgba(120, 115, 245, 0.2);
745 color: #666;
746 padding: 10px 20px;
747 border-radius: 8px;
748 cursor: pointer;
749 transition: all 0.2s ease;
750 }
751
752 .mxchat-button-secondary:hover {
753 background: #eef0ff;
754 }
755
756 .mxchat-button-danger {
757 color: #ff4d4d;
758 background: transparent;
759 border: none;
760 padding: 10px 20px;
761 border-radius: 8px;
762 cursor: pointer;
763 transition: all 0.2s ease;
764 display: flex;
765 align-items: center;
766 gap: 8px;
767 }
768
769 .mxchat-button-danger:hover {
770 background: #fff5f5;
771 }
772
773 .mxchat-button-icon {
774 padding: 8px;
775 border: none;
776 background: transparent;
777 border-radius: 6px;
778 cursor: pointer;
779 transition: all 0.2s ease;
780 color: #666;
781 }
782
783 .mxchat-button-icon:hover {
784 background: #f8f9ff;
785 color: #7873f5;
786 }
787
788 /* ===== Status Cards ===== */
789 .mxchat-status-card {
790 background: #f8f9ff;
791 border-radius: 10px;
792 padding: 20px;
793 margin-top: 20px;
794 border: 1px solid rgba(120, 115, 245, 0.1);
795 }
796
797 .mxchat-status-header {
798 display: flex;
799 justify-content: space-between;
800 align-items: center;
801 margin-bottom: 15px;
802 }
803
804 .mxchat-status-details {
805 margin-top: 10px;
806 color: #666;
807 }
808
809 .mxchat-status-badge {
810 display: inline-block;
811 padding: 3px 8px;
812 border-radius: 3px;
813 font-size: 12px;
814 font-weight: 500;
815 text-transform: uppercase;
816 margin-left: 10px;
817 }
818
819 .mxchat-status-failed {
820 background-color: #f44336;
821 color: white;
822 }
823
824 .mxchat-status-success {
825 background-color: #4caf50;
826 color: white;
827 }
828
829 .mxchat-error-notice {
830 margin-top: 15px;
831 padding: 10px;
832 background-color: #fff5f5;
833 border-left: 3px solid #f44336;
834 color: #d32f2f;
835 border-radius: 4px;
836 }
837
838 .mxchat-failed-urls {
839 margin-top: 15px;
840 }
841
842 .mxchat-failed-urls h5 {
843 margin-top: 0;
844 margin-bottom: 10px;
845 color: #333;
846 }
847
848 .mxchat-failed-urls-list {
849 max-height: 200px;
850 overflow-y: auto;
851 }
852
853 /* ===== Progress Bar ===== */
854 .mxchat-progress-bar {
855 height: 8px;
856 background: rgba(120, 115, 245, 0.1);
857 border-radius: 4px;
858 overflow: hidden;
859 margin: 15px 0;
860 }
861
862 .mxchat-progress-fill {
863 height: 100%;
864 background: linear-gradient(135deg, #fa73e6, #7873f5);
865 transition: width 0.3s ease;
866 }
867
868 /* ===== Table Styles ===== */
869 .mxchat-table-wrapper {
870 overflow-x: auto;
871 margin: 20px 0;
872 }
873
874 .mxchat-records-table {
875 width: 100%;
876 border-collapse: separate;
877 border-spacing: 0;
878 }
879
880 .mxchat-records-table th {
881 background: #f8f9ff;
882 padding: 15px;
883 font-weight: 600;
884 color: #333;
885 text-align: left;
886 border-bottom: 2px solid rgba(120, 115, 245, 0.1);
887 }
888
889 /* Hide ID column (now second column, after checkbox column) */
890 .mxchat-records-table th:nth-child(2),
891 .mxchat-records-table td:nth-child(2) {
892 display: none;
893 }
894
895 .mxchat-records-table td {
896 padding: 15px;
897 border-top: 1px solid rgba(120, 115, 245, 0.1);
898 vertical-align: top;
899 }
900
901 .mxchat-records-table tr:hover {
902 background: rgba(120, 115, 245, 0.03);
903 }
904
905 .mxchat-content-cell {
906 max-width: 600px;
907 }
908
909 /* ===== Accordion Styles ===== */
910 .mxchat-accordion-wrapper {
911 width: 100%;
912 }
913
914 .mxchat-content-preview {
915 display: flex;
916 align-items: center;
917 gap: 12px;
918 padding: 8px 12px;
919 border-radius: 6px;
920 transition: all 0.2s ease;
921 }
922
923 /* Only make it look clickable if there's an expand button */
924 .mxchat-content-preview:has(.mxchat-expand-toggle) {
925 cursor: pointer;
926 }
927
928 .mxchat-content-preview:has(.mxchat-expand-toggle):hover {
929 background: rgba(120, 115, 245, 0.04);
930 }
931
932 .mxchat-content-preview .preview-text {
933 flex: 1;
934 font-size: 14px;
935 line-height: 1.6;
936 color: #333;
937 overflow: hidden;
938 }
939
940 .mxchat-expand-toggle {
941 flex-shrink: 0;
942 width: 28px;
943 height: 28px;
944 border: none;
945 background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
946 border-radius: 6px;
947 cursor: pointer;
948 display: inline-flex;
949 align-items: center;
950 justify-content: center;
951 transition: all 0.3s ease;
952 padding: 0;
953 }
954
955 .mxchat-expand-toggle:hover {
956 background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
957 transform: scale(1.05);
958 }
959
960 .mxchat-expand-toggle .dashicons {
961 font-size: 18px;
962 width: 18px;
963 height: 18px;
964 color: #7873f5;
965 transition: transform 0.3s ease;
966 }
967
968 .mxchat-expand-toggle.expanded .dashicons {
969 transform: rotate(180deg);
970 }
971
972 .mxchat-content-full {
973 margin-top: 12px;
974 padding: 16px;
975 background: rgba(120, 115, 245, 0.03);
976 border-radius: 8px;
977 border-left: 3px solid #7873f5;
978 animation: slideDown 0.3s ease;
979 }
980
981 @keyframes slideDown {
982 from {
983 opacity: 0;
984 max-height: 0;
985 transform: translateY(-10px);
986 }
987 to {
988 opacity: 1;
989 max-height: 1000px;
990 transform: translateY(0);
991 }
992 }
993
994 .mxchat-content-full .content-view {
995 font-size: 14px;
996 line-height: 1.6;
997 color: #333;
998 }
999
1000 .mxchat-content-full .content-view p {
1001 margin: 0 0 12px 0;
1002 }
1003
1004 .mxchat-content-full .content-view p:last-child {
1005 margin-bottom: 0;
1006 }
1007
1008 .mxchat-url-cell a {
1009 color: #7873f5;
1010 text-decoration: none;
1011 display: flex;
1012 align-items: center;
1013 gap: 4px;
1014 }
1015
1016 .mxchat-url-cell a:hover {
1017 color: #fa73e6;
1018 }
1019
1020 .mxchat-actions-cell {
1021 white-space: nowrap;
1022 display: flex;
1023 gap: 8px;
1024 }
1025
1026 /* Legacy content-view styling (now within accordion) */
1027 .content-edit {
1028 width: 100%;
1029 min-height: 100px;
1030 border: 1px solid #ddd;
1031 border-radius: 4px;
1032 padding: 10px;
1033 }
1034
1035 .url-view a {
1036 color: #7873f5;
1037 text-decoration: none;
1038 }
1039
1040 .url-edit {
1041 width: 100%;
1042 }
1043
1044 /* ===== Pagination ===== */
1045 .mxchat-pagination {
1046 margin-top: 20px;
1047 padding-top: 20px;
1048 text-align: center;
1049 border-top: 1px solid rgba(120, 115, 245, 0.1);
1050 }
1051
1052 .mxchat-pagination .page-numbers {
1053 display: inline-flex;
1054 align-items: center;
1055 justify-content: center;
1056 min-width: 32px;
1057 height: 32px;
1058 padding: 0 8px;
1059 margin: 0 4px;
1060 border-radius: 6px;
1061 background: white;
1062 border: 1px solid rgba(120, 115, 245, 0.2);
1063 color: #333;
1064 text-decoration: none;
1065 transition: all 0.2s ease;
1066 }
1067
1068 .mxchat-pagination .page-numbers.current {
1069 background: linear-gradient(135deg, #fa73e6, #7873f5);
1070 color: white;
1071 border: none;
1072 }
1073
1074 /* ===== Notifications ===== */
1075 .mxchat-notification {
1076 margin: 15px 20px 0;
1077 padding: 10px 15px;
1078 border-radius: 4px;
1079 font-size: 14px;
1080 }
1081
1082 .mxchat-notification.success {
1083 background-color: #d4edda;
1084 color: #155724;
1085 border: 1px solid #c3e6cb;
1086 }
1087
1088 .mxchat-notification.error {
1089 background-color: #f8d7da;
1090 color: #721c24;
1091 border: 1px solid #f5c6cb;
1092 }
1093
1094 /* ===== Responsive Design ===== */
1095 @media (max-width: 768px) {
1096 .mxchat-hero h1.mxchat-main-title {
1097 font-size: 2.5rem;
1098 }
1099
1100 .mxchat-card {
1101 padding: 20px;
1102 }
1103
1104 .mxchat-import-options {
1105 grid-template-columns: 1fr;
1106 }
1107
1108 .mxchat-url-input-group {
1109 flex-direction: column;
1110 }
1111
1112 .mxchat-url-input-group input,
1113 .mxchat-url-input-group button {
1114 width: 100%;
1115 }
1116
1117 .mxchat-content-input-group textarea {
1118 min-height: 120px;
1119 }
1120
1121 .mxchat-status-header {
1122 flex-direction: column;
1123 align-items: flex-start;
1124 gap: 10px;
1125 }
1126
1127 .mxchat-records-table {
1128 display: block;
1129 overflow-x: auto;
1130 }
1131
1132 .mxchat-stop-form button {
1133 width: 100%;
1134 }
1135 }
1136
1137 @media (max-width: 480px) {
1138 .mxchat-card {
1139 padding: 15px;
1140 }
1141
1142 .mxchat-import-box {
1143 flex-direction: column;
1144 align-items: center;
1145 text-align: center;
1146 }
1147
1148 .mxchat-import-icon {
1149 margin: 16px 16px 0 16px;
1150 }
1151
1152 .mxchat-import-content {
1153 padding: 16px;
1154 }
1155
1156 .mxchat-recommended-tag {
1157 border-radius: 0 0 0 8px;
1158 }
1159 }
1160
1161 /* RTL Support */
1162 .rtl .mxchat-knowledge-warning {
1163 border-left: none;
1164 border-right: 4px solid;
1165 }
1166
1167 .rtl .mxchat-knowledge-warning .dashicons {
1168 margin-right: 0;
1169 margin-left: 10px;
1170 }
1171
1172 .rtl .mxchat-import-box {
1173 flex-direction: row-reverse;
1174 }
1175
1176 .rtl .mxchat-import-content {
1177 padding: 16px 0 16px 16px;
1178 }
1179
1180 .rtl .mxchat-import-icon {
1181 margin: 16px;
1182 }
1183
1184 .rtl .mxchat-recommended-tag {
1185 right: auto;
1186 left: 0;
1187 border-bottom-left-radius: 0;
1188 border-bottom-right-radius: 8px;
1189 }
1190
1191 .rtl .mxchat-toggle-container {
1192 flex-direction: row-reverse;
1193 }
1194
1195 .rtl .mxchat-toggle-slider:before {
1196 left: auto;
1197 right: 2px;
1198 }
1199
1200 .rtl input:checked + .mxchat-toggle-slider:before {
1201 transform: translateX(-26px);
1202 }
1203
1204 .rtl .mxchat-error-notice {
1205 border-left: none;
1206 border-right: 3px solid #f44336;
1207 }
1208
1209 .rtl .mxchat-records-table th,
1210 .rtl .mxchat-records-table td {
1211 text-align: right;
1212 }
1213
1214 .rtl .mxchat-search-group .dashicons {
1215 left: auto;
1216 right: 12px;
1217 }
1218
1219 .rtl .mxchat-search-group input {
1220 padding-left: 12px;
1221 padding-right: 40px;
1222 }
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251 /* ===== Modal Styles ===== */
1252 .mxchat-kb-modal {
1253 display: none;
1254 position: fixed;
1255 top: 0;
1256 left: 0;
1257 width: 100%;
1258 height: 100%;
1259 background-color: rgba(0, 0, 0, 0.7);
1260 z-index: 999999;
1261 overflow: auto;
1262 justify-content: center;
1263 align-items: center;
1264 }
1265
1266 .mxchat-kb-modal.active {
1267 display: flex;
1268 }
1269
1270 .mxchat-kb-modal-content {
1271 position: relative;
1272 background-color: #fff;
1273 margin: 50px auto;
1274 padding: 0;
1275 border-radius: 8px;
1276 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1277 width: 90%;
1278 max-width: 1000px;
1279 max-height: 85vh;
1280 display: flex;
1281 flex-direction: column;
1282 animation: mxchat-kb-modal-appear 0.3s ease-out;
1283 }
1284
1285 @keyframes mxchat-kb-modal-appear {
1286 from {
1287 opacity: 0;
1288 transform: translateY(-30px);
1289 }
1290 to {
1291 opacity: 1;
1292 transform: translateY(0);
1293 }
1294 }
1295
1296 .mxchat-kb-modal-header {
1297 display: flex;
1298 align-items: center;
1299 justify-content: space-between;
1300 padding: 20px;
1301 border-bottom: 1px solid #e5e5e5;
1302 background-color: #f8f9fa;
1303 border-radius: 8px 8px 0 0;
1304 }
1305
1306 .mxchat-kb-modal-header h3 {
1307 margin: 0;
1308 font-size: 20px;
1309 font-weight: 600;
1310 color: #23282d;
1311 }
1312
1313 .mxchat-kb-modal-close {
1314 font-size: 28px;
1315 font-weight: bold;
1316 cursor: pointer;
1317 color: #666;
1318 line-height: 1;
1319 transition: color 0.2s;
1320 }
1321
1322 .mxchat-kb-modal-close:hover {
1323 color: #d63638;
1324 }
1325
1326 .mxchat-kb-modal-filters {
1327 padding: 15px 20px;
1328 background-color: #f8f9fa;
1329 display: flex;
1330 align-items: center;
1331 justify-content: space-between;
1332 border-bottom: 1px solid #e5e5e5;
1333 flex-wrap: wrap;
1334 gap: 10px;
1335 }
1336
1337 .mxchat-kb-search-group {
1338 position: relative;
1339 flex: 1;
1340 min-width: 200px;
1341 max-width: 400px;
1342 }
1343
1344 .mxchat-kb-search-group input {
1345 width: 100%;
1346 padding: 8px 12px 8px 35px;
1347 border-radius: 4px;
1348 border: 1px solid #ddd;
1349 font-size: 14px;
1350 transition: border-color 0.2s;
1351 }
1352
1353 .mxchat-kb-search-group input:focus {
1354 border-color: #7873f5;
1355 outline: none;
1356 box-shadow: 0 0 0 1px #7873f5;
1357 }
1358
1359 .mxchat-kb-search-group::before {
1360 content: "\f179";
1361 font-family: dashicons;
1362 position: absolute;
1363 left: 10px;
1364 top: 50%;
1365 transform: translateY(-50%);
1366 color: #666;
1367 }
1368
1369 .mxchat-kb-filter-group {
1370 display: flex;
1371 gap: 10px;
1372 flex-wrap: wrap;
1373 }
1374
1375 .mxchat-kb-filter-group select {
1376 padding: 8px 12px;
1377 border-radius: 4px;
1378 border: 1px solid #ddd;
1379 font-size: 14px;
1380 background-color: white;
1381 min-width: 150px;
1382 appearance: none;
1383 background-repeat: no-repeat;
1384 background-position: right 10px center;
1385 padding-right: 30px;
1386 }
1387
1388 .mxchat-kb-filter-group select:focus {
1389 border-color: #7873f5;
1390 outline: none;
1391 box-shadow: 0 0 0 1px #7873f5;
1392 }
1393
1394 /* Special style for the "processed" filter */
1395 #mxchat-kb-processed-filter {
1396 border-left: 3px solid #1e88e5;
1397 }
1398
1399 .mxchat-kb-content-selection {
1400 overflow-y: auto;
1401 flex: 1;
1402 min-height: 300px;
1403 max-height: calc(85vh - 200px);
1404 }
1405
1406 .mxchat-kb-selection-header {
1407 display: flex;
1408 justify-content: space-between;
1409 align-items: center;
1410 padding: 15px 20px;
1411 background-color: #f8f9fa;
1412 border-bottom: 1px solid #eee;
1413 position: sticky;
1414 top: 0;
1415 z-index: 10;
1416 }
1417
1418 .mxchat-kb-selection-header label {
1419 display: flex;
1420 align-items: center;
1421 gap: 8px;
1422 font-weight: 500;
1423 }
1424
1425 .mxchat-kb-selection-count {
1426 font-size: 14px;
1427 color: #666;
1428 font-weight: 500;
1429 }
1430
1431 .mxchat-kb-content-list {
1432 padding: 0;
1433 }
1434
1435 .mxchat-kb-content-item {
1436 display: flex;
1437 padding: 15px 20px;
1438 border-bottom: 1px solid #eee;
1439 transition: background-color 0.2s;
1440 }
1441
1442 .mxchat-kb-content-item:hover {
1443 background-color: #f0f7ff;
1444 }
1445
1446 /* Improved visibility for processed items */
1447 .mxchat-kb-content-item.processed {
1448 background-color: #f0f8ff;
1449 border-left: 3px solid #1e88e5;
1450 }
1451
1452 .mxchat-kb-content-item.processed:hover {
1453 background-color: #e3f2fd;
1454 }
1455
1456 .mxchat-kb-content-checkbox {
1457 margin-right: 15px;
1458 display: flex;
1459 align-items: flex-start;
1460 padding-top: 3px;
1461 }
1462
1463 .mxchat-kb-content-checkbox input[type="checkbox"] {
1464 width: 18px;
1465 height: 18px;
1466 border: 1px solid #8c8f94;
1467 border-radius: 3px;
1468 background: #fff;
1469 margin: 0;
1470 }
1471
1472 .mxchat-kb-content-checkbox input[type="checkbox"]:checked {
1473 border-color: #7873f5;
1474 }
1475
1476 .mxchat-kb-content-details {
1477 flex: 1;
1478 }
1479
1480 .mxchat-kb-content-title {
1481 font-size: 16px;
1482 font-weight: 600;
1483 margin-bottom: 8px;
1484 display: flex;
1485 align-items: center;
1486 flex-wrap: wrap;
1487 gap: 8px;
1488 }
1489
1490 .mxchat-kb-content-title a {
1491 color: #7873f5;
1492 text-decoration: none;
1493 }
1494
1495 .mxchat-kb-content-title a:hover {
1496 color: #fa73e6;
1497 text-decoration: underline;
1498 }
1499
1500 /* Style for processed badge */
1501 .mxchat-kb-processed-badge {
1502 display: inline-block;
1503 background-color: #1e88e5;
1504 color: white;
1505 font-size: 11px;
1506 padding: 2px 8px;
1507 border-radius: 10px;
1508 font-weight: normal;
1509 }
1510
1511 /* Style for unprocessed badge */
1512 .mxchat-kb-unprocessed-badge {
1513 display: inline-block;
1514 background-color: #607d8b;
1515 color: white;
1516 font-size: 11px;
1517 padding: 2px 8px;
1518 border-radius: 10px;
1519 font-weight: normal;
1520 }
1521
1522 /* Last updated timestamp */
1523 .mxchat-kb-last-updated {
1524 font-size: 11px;
1525 color: #666;
1526 font-style: italic;
1527 margin-left: 8px;
1528 }
1529
1530 .mxchat-kb-content-meta {
1531 display: flex;
1532 flex-wrap: wrap;
1533 gap: 15px;
1534 color: #666;
1535 font-size: 13px;
1536 margin-bottom: 8px;
1537 }
1538
1539 .mxchat-kb-content-excerpt {
1540 color: #555;
1541 font-size: 14px;
1542 line-height: 1.5;
1543 }
1544
1545 .mxchat-kb-modal-footer {
1546 padding: 15px 20px;
1547 border-top: 1px solid #e5e5e5;
1548 display: flex;
1549 justify-content: space-between;
1550 align-items: center;
1551 gap: 15px;
1552 background-color: #f8f9fa;
1553 border-radius: 0 0 8px 8px;
1554 }
1555
1556 .mxchat-kb-modal-footer .mxchat-kb-pagination {
1557 flex: 1;
1558 margin: 0;
1559 padding: 0;
1560 text-align: left;
1561 }
1562
1563 .mxchat-kb-footer-actions {
1564 display: flex;
1565 gap: 10px;
1566 flex-shrink: 0;
1567 }
1568
1569 .mxchat-kb-button-primary,
1570 .mxchat-kb-button-secondary {
1571 padding: 8px 15px;
1572 border-radius: 4px;
1573 font-size: 14px;
1574 cursor: pointer;
1575 font-weight: 500;
1576 text-align: center;
1577 transition: all 0.2s;
1578 }
1579
1580 .mxchat-kb-button-primary {
1581 background: linear-gradient(135deg, #fa73e6, #7873f5);
1582 color: white;
1583 border: none;
1584 }
1585
1586 .mxchat-kb-button-primary:hover {
1587 background: linear-gradient(135deg, #e56dd6, #6b67db);
1588 }
1589
1590 .mxchat-kb-button-primary:disabled {
1591 background-color: #a7a7a7;
1592 cursor: not-allowed;
1593 }
1594
1595 /* Update mode for the process button */
1596 #mxchat-kb-process-selected.update-mode {
1597 background-color: #ff9800;
1598 }
1599
1600 #mxchat-kb-process-selected.update-mode:hover {
1601 background-color: #f57c00;
1602 }
1603
1604 /* Mixed mode for the process button */
1605 #mxchat-kb-process-selected.mixed-mode {
1606 background-color: #9c27b0;
1607 }
1608
1609 #mxchat-kb-process-selected.mixed-mode:hover {
1610 background-color: #7b1fa2;
1611 }
1612
1613 .mxchat-kb-button-secondary {
1614 background-color: #f6f7f7;
1615 color: #2c3338;
1616 border: 1px solid #ddd;
1617 }
1618
1619 .mxchat-kb-button-secondary:hover {
1620 background-color: #f0f0f0;
1621 border-color: #c3c4c7;
1622 }
1623
1624 .mxchat-kb-pagination {
1625 padding: 15px 20px;
1626 border-top: 1px solid #eee;
1627 text-align: center;
1628 }
1629
1630 .mxchat-kb-pagination-links {
1631 display: flex;
1632 justify-content: center;
1633 align-items: center;
1634 gap: 5px;
1635 flex-wrap: wrap;
1636 }
1637
1638 .mxchat-kb-page-link {
1639 padding: 5px 10px;
1640 text-decoration: none;
1641 border: 1px solid #ddd;
1642 color: #7873f5;
1643 border-radius: 3px;
1644 transition: all 0.2s;
1645 }
1646
1647 .mxchat-kb-page-link:hover {
1648 background-color: #f0f0f0;
1649 color: #fa73e6;
1650 border-color: #c3c4c7;
1651 }
1652
1653 .mxchat-kb-page-current {
1654 padding: 5px 10px;
1655 background: linear-gradient(135deg, #fa73e6, #7873f5);
1656 color: white;
1657 border-radius: 3px;
1658 font-weight: 500;
1659 }
1660
1661 /* ===== Loading and Error States ===== */
1662 .mxchat-kb-no-results,
1663 .mxchat-kb-error {
1664 padding: 30px;
1665 text-align: center;
1666 color: #666;
1667 font-size: 14px;
1668 }
1669
1670 .mxchat-kb-error {
1671 color: #d63638;
1672 }
1673
1674 .mxchat-kb-loading {
1675 display: flex;
1676 flex-direction: column;
1677 align-items: center;
1678 justify-content: center;
1679 padding: 50px;
1680 color: #666;
1681 }
1682
1683 .mxchat-kb-spinner {
1684 display: inline-block;
1685 width: 50px;
1686 height: 50px;
1687 border: 5px solid #f3f3f3;
1688 border-top: 5px solid #7873f5;
1689 border-radius: 50%;
1690 animation: mxchat-kb-spin 1s linear infinite;
1691 margin: 0 0 10px 0;
1692 }
1693
1694 @keyframes mxchat-kb-spin {
1695 0% { transform: rotate(0deg); }
1696 100% { transform: rotate(360deg); }
1697 }
1698
1699 .mxchat-kb-progress-bar {
1700 height: 8px;
1701 background-color: #f0f0f0;
1702 border-radius: 4px;
1703 margin: 10px 0 15px;
1704 overflow: hidden;
1705 }
1706
1707 .mxchat-kb-progress-fill {
1708 height: 100%;
1709 background: linear-gradient(135deg, #fa73e6, #7873f5);
1710 transition: width 0.3s ease;
1711 }
1712
1713 .mxchat-kb-current-item {
1714 font-size: 14px;
1715 color: #555;
1716 margin: 10px 0 0;
1717 font-style: italic;
1718 }
1719
1720 .mxchat-kb-results-details {
1721 margin-top: 15px;
1722 text-align: left;
1723 max-height: 200px;
1724 overflow-y: auto;
1725 padding: 10px;
1726 border-radius: 4px;
1727 }
1728
1729 .mxchat-kb-results-details h5 {
1730 margin-top: 0;
1731 margin-bottom: 10px;
1732 color: #d63638;
1733 }
1734
1735 .mxchat-kb-results-details ul {
1736 margin: 0;
1737 padding-left: 20px;
1738 }
1739
1740 .mxchat-kb-results-details li {
1741 margin-bottom: 5px;
1742 }
1743
1744 /* ===== Processing Overlay ===== */
1745 .mxchat-kb-processing-overlay {
1746 position: fixed;
1747 top: 0;
1748 left: 0;
1749 width: 100%;
1750 height: 100%;
1751 background-color: rgba(0, 0, 0, 0.7);
1752 z-index: 9999999;
1753 display: flex;
1754 justify-content: center;
1755 align-items: center;
1756 }
1757
1758 .mxchat-kb-processing-content {
1759 background-color: white;
1760 padding: 30px;
1761 border-radius: 8px;
1762 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1763 text-align: center;
1764 max-width: 500px;
1765 width: 90%;
1766 }
1767
1768 .mxchat-kb-processing-content h3 {
1769 margin-top: 0;
1770 margin-bottom: 15px;
1771 font-size: 20px;
1772 color: #7873f5;
1773 }
1774
1775 .mxchat-kb-processing-status {
1776 color: #555;
1777 margin-bottom: 20px;
1778 }
1779
1780 /* ===== Utility Classes ===== */
1781 .mxchat-na {
1782 color: #999;
1783 font-style: italic;
1784 }
1785
1786 .mxchat-no-records {
1787 text-align: center;
1788 color: #666;
1789 padding: 40px !important;
1790 }
1791
1792 /* ===== Responsive Design ===== */
1793 @media screen and (max-width: 782px) {
1794 /* Hero section */
1795 div.mxchat-hero h1.mxchat-main-title {
1796 font-size: 2.5rem;
1797 }
1798
1799 .mxchat-content {
1800 padding: 1rem;
1801 }
1802
1803 .mxchat-card {
1804 padding: 20px;
1805 }
1806
1807 .mxchat-card-header {
1808 flex-direction: column;
1809 gap: 16px;
1810 }
1811
1812 .mxchat-header-actions {
1813 flex-direction: column;
1814 width: 100%;
1815 }
1816
1817 .mxchat-search-group input {
1818 width: 100%;
1819 }
1820
1821 /* ADDED 2.5.6: Responsive filter dropdown */
1822 .mxchat-filter-group {
1823 margin-left: 0;
1824 width: 100%;
1825 }
1826
1827 .mxchat-filter-group select {
1828 width: 100%;
1829 }
1830
1831 .mxchat-url-input-group {
1832 flex-direction: column;
1833 }
1834
1835 .mxchat-records-table {
1836 display: block;
1837 overflow-x: auto;
1838 }
1839
1840 .mxchat-content-cell {
1841 max-width: 200px;
1842 }
1843
1844 /* Modal responsive adjustments */
1845 .mxchat-kb-modal-content {
1846 width: 95%;
1847 max-height: 90vh;
1848 margin: 20px auto;
1849 }
1850
1851 .mxchat-kb-modal-filters {
1852 flex-direction: column;
1853 align-items: stretch;
1854 }
1855
1856 .mxchat-kb-search-group {
1857 max-width: none;
1858 }
1859
1860 .mxchat-kb-filter-group {
1861 flex-direction: column;
1862 }
1863
1864 .mxchat-kb-content-selection {
1865 max-height: calc(90vh - 250px);
1866 }
1867
1868 .mxchat-kb-selection-header {
1869 flex-direction: column;
1870 align-items: flex-start;
1871 gap: 10px;
1872 }
1873
1874 .mxchat-kb-modal-footer {
1875 flex-direction: column;
1876 gap: 10px;
1877 }
1878
1879 .mxchat-kb-modal-footer .mxchat-kb-pagination {
1880 width: 100%;
1881 text-align: center;
1882 }
1883
1884 .mxchat-kb-footer-actions {
1885 width: 100%;
1886 flex-direction: column;
1887 }
1888
1889 .mxchat-kb-button-primary,
1890 .mxchat-kb-button-secondary {
1891 width: 100%;
1892 }
1893
1894 /* Import methods grid */
1895 .mxchat-import-methods-grid {
1896 grid-template-columns: 1fr;
1897 }
1898
1899 /* Primary import card */
1900 .mxchat-featured-button {
1901 width: 100%;
1902 }
1903 }
1904
1905 /* ===== Notification Styles ===== */
1906
1907 /* Base notification style */
1908 .mxchat-kb-notification {
1909 margin: 15px 20px 15px;
1910 padding: 15px;
1911 border-radius: 6px;
1912 border-left: 4px solid;
1913 position: relative;
1914 animation: mxchat-kb-notification-appear 0.3s ease-out;
1915 }
1916
1917 @keyframes mxchat-kb-notification-appear {
1918 from {
1919 opacity: 0;
1920 transform: translateY(-10px);
1921 }
1922 to {
1923 opacity: 1;
1924 transform: translateY(0);
1925 }
1926 }
1927
1928 /* Success notification */
1929 .mxchat-kb-notification.success {
1930 background-color: #f0f9eb;
1931 border-color: #67c23a;
1932 color: #3c763d;
1933 }
1934
1935 .mxchat-kb-notification.success h4 {
1936 color: #67c23a;
1937 margin: 0 0 5px;
1938 font-size: 16px;
1939 font-weight: 600;
1940 }
1941
1942 .mxchat-kb-notification.success::before {
1943 content: "\f147";
1944 font-family: dashicons;
1945 position: absolute;
1946 right: 15px;
1947 top: 15px;
1948 color: #67c23a;
1949 font-size: 20px;
1950 }
1951
1952 /* Error notification */
1953 .mxchat-kb-notification.error {
1954 background-color: #fef0f0;
1955 border-color: #d63638;
1956 color: #a94442;
1957 }
1958
1959 .mxchat-kb-notification.error h4 {
1960 color: #d63638;
1961 margin: 0 0 5px;
1962 font-size: 16px;
1963 font-weight: 600;
1964 }
1965
1966 .mxchat-kb-notification.error::before {
1967 content: "\f335";
1968 font-family: dashicons;
1969 position: absolute;
1970 right: 15px;
1971 top: 15px;
1972 color: #d63638;
1973 font-size: 20px;
1974 }
1975
1976 /* Warning notification */
1977 .mxchat-kb-notification.warning {
1978 background-color: #fdf6ec;
1979 border-color: #ff9800;
1980 color: #8a6d3b;
1981 }
1982
1983 .mxchat-kb-notification.warning h4 {
1984 color: #ff9800;
1985 margin: 0 0 5px;
1986 font-size: 16px;
1987 font-weight: 600;
1988 }
1989
1990 .mxchat-kb-notification.warning::before {
1991 content: "\f534";
1992 font-family: dashicons;
1993 position: absolute;
1994 right: 15px;
1995 top: 15px;
1996 color: #ff9800;
1997 font-size: 20px;
1998 }
1999
2000 /* Info notification */
2001 .mxchat-kb-notification.info {
2002 background-color: #f4f4fd;
2003 border-color: #7873f5;
2004 color: #31708f;
2005 }
2006
2007 .mxchat-kb-notification.info h4 {
2008 color: #7873f5;
2009 margin: 0 0 5px;
2010 font-size: 16px;
2011 font-weight: 600;
2012 }
2013
2014 .mxchat-kb-notification.info::before {
2015 content: "\f348";
2016 font-family: dashicons;
2017 position: absolute;
2018 right: 15px;
2019 top: 15px;
2020 color: #7873f5;
2021 font-size: 20px;
2022 }
2023
2024 /* Close button for notifications */
2025 .mxchat-kb-notification-close {
2026 position: absolute;
2027 top: 10px;
2028 right: 10px;
2029 cursor: pointer;
2030 color: inherit;
2031 opacity: 0.7;
2032 font-size: 16px;
2033 line-height: 1;
2034 transition: opacity 0.2s;
2035 }
2036
2037 .mxchat-kb-notification-close:hover {
2038 opacity: 1;
2039 }
2040
2041 /* Results details section */
2042 .mxchat-kb-results-details {
2043 margin-top: 12px;
2044 padding: 12px;
2045 border-radius: 4px;
2046 font-size: 13px;
2047 line-height: 1.5;
2048 }
2049
2050 .mxchat-kb-notification.success .mxchat-kb-results-details {
2051 background-color: rgba(103, 194, 58, 0.05);
2052 border: 1px solid rgba(103, 194, 58, 0.2);
2053 }
2054
2055 .mxchat-kb-notification.error .mxchat-kb-results-details {
2056
2057 }
2058
2059 .mxchat-kb-notification.warning .mxchat-kb-results-details {
2060 background-color: rgba(255, 152, 0, 0.05);
2061 border: 1px solid rgba(255, 152, 0, 0.2);
2062 }
2063
2064 .mxchat-kb-notification.info .mxchat-kb-results-details {
2065 background-color: rgba(120, 115, 245, 0.05);
2066 border: 1px solid rgba(120, 115, 245, 0.2);
2067 }
2068
2069 /* Results details title */
2070 .mxchat-kb-results-details h5 {
2071 margin: 0 0 10px;
2072 font-size: 14px;
2073 font-weight: 600;
2074 }
2075
2076 .mxchat-kb-notification.success .mxchat-kb-results-details h5 {
2077 color: #3c763d;
2078 }
2079
2080 .mxchat-kb-notification.error .mxchat-kb-results-details h5 {
2081 color: #a94442;
2082 }
2083
2084 .mxchat-kb-notification.warning .mxchat-kb-results-details h5 {
2085 color: #8a6d3b;
2086 }
2087
2088 .mxchat-kb-notification.info .mxchat-kb-results-details h5 {
2089 color: #31708f;
2090 }
2091
2092 /* List items in results details */
2093 .mxchat-kb-results-details ul {
2094 margin: 0;
2095 padding-left: 20px;
2096 list-style-type: disc;
2097 }
2098
2099 .mxchat-kb-results-details li {
2100 margin-bottom: 8px;
2101 padding-left: 3px;
2102 }
2103
2104 .mxchat-kb-results-details li:last-child {
2105 margin-bottom: 0;
2106 }
2107
2108 .mxchat-kb-results-details li strong {
2109 font-weight: 600;
2110 }
2111
2112 /* Failed items specific styling */
2113 .mxchat-kb-results-details li.failed-item {
2114 color: #d63638;
2115 }
2116
2117 /* Success items specific styling */
2118 .mxchat-kb-results-details li.success-item {
2119 color: #67c23a;
2120 }
2121
2122 /* Updated items specific styling */
2123 .mxchat-kb-results-details li.updated-item {
2124 color: #1e88e5;
2125 }
2126
2127 /* Processing summary information */
2128 .mxchat-kb-processing-summary {
2129 display: flex;
2130 flex-wrap: wrap;
2131 gap: 15px;
2132 margin-top: 10px;
2133 font-size: 14px;
2134 }
2135
2136 .mxchat-kb-summary-item {
2137 display: flex;
2138 align-items: center;
2139 gap: 5px;
2140 }
2141
2142 .mxchat-kb-summary-item .dashicons {
2143 font-size: 18px;
2144 }
2145
2146 .mxchat-kb-summary-item.processed .dashicons {
2147 color: #67c23a;
2148 }
2149
2150 .mxchat-kb-summary-item.updated .dashicons {
2151 color: #1e88e5;
2152 }
2153
2154 .mxchat-kb-summary-item.failed .dashicons {
2155 color: #d63638;
2156 }
2157
2158 /* Show more/less toggle for details */
2159 .mxchat-kb-show-details {
2160 display: inline-block;
2161 margin-top: 8px;
2162 color: #7873f5;
2163 cursor: pointer;
2164 font-size: 13px;
2165 font-weight: 500;
2166 }
2167
2168 .mxchat-kb-show-details:hover {
2169 text-decoration: underline;
2170 }
2171
2172 .mxchat-kb-show-details .dashicons {
2173 font-size: 16px;
2174 vertical-align: middle;
2175 margin-right: 2px;
2176 }
2177
2178 /* Collapsible details section */
2179 .mxchat-kb-results-details.collapsed {
2180 display: none;
2181 }
2182
2183 /* Responsive styles for notifications */
2184 @media screen and (max-width: 782px) {
2185 .mxchat-kb-notification {
2186 margin: 10px 15px 0;
2187 padding: 12px;
2188 }
2189
2190 .mxchat-kb-notification::before {
2191 display: none;
2192 }
2193
2194 .mxchat-kb-processing-summary {
2195 flex-direction: column;
2196 gap: 8px;
2197 }
2198 }
2199
2200
2201
2202
2203
2204 /* Tab Navigation */
2205 .mxchat-kb-tabs-nav {
2206 display: flex;
2207 margin-bottom: 20px;
2208 border-bottom: 1px solid #ccc;
2209 }
2210
2211 .mxchat-kb-tab-button {
2212 padding: 10px 15px;
2213 background: #f1f1f1;
2214 border: 1px solid #ccc;
2215 border-bottom: none;
2216 margin-right: 5px;
2217 cursor: pointer;
2218 font-weight: 500;
2219 border-radius: 5px 5px 0 0;
2220 }
2221
2222 .mxchat-kb-tab-button.active {
2223 background: #fff;
2224 border-bottom: 2px solid #fff;
2225 position: relative;
2226 bottom: -1px;
2227 color: #2271b1;
2228 }
2229
2230 /* Tab Content */
2231 .mxchat-kb-tab-content {
2232 display: none;
2233 }
2234
2235 .mxchat-kb-tab-content.active {
2236 display: block;
2237 }
2238
2239 /* Make the first card in tabs not have top margin */
2240 .mxchat-kb-tab-content .mxchat-card:first-child {
2241 margin-top: 0;
2242 }
2243
2244
2245
2246
2247
2248
2249 /* Pinecone Settings Tab Styles */
2250 .mxchat-pinecone-info-box {
2251 background: #f8f9ff;
2252 border: 1px solid rgba(120, 115, 245, 0.2);
2253 border-radius: 10px;
2254 padding: 20px;
2255 margin: 20px 0;
2256 display: flex;
2257 align-items: flex-start;
2258 gap: 15px;
2259 }
2260
2261 .mxchat-info-icon {
2262 flex-shrink: 0;
2263 }
2264
2265 .mxchat-info-icon .dashicons {
2266 color: #7873f5;
2267 font-size: 24px;
2268 width: 24px;
2269 height: 24px;
2270 }
2271
2272 .mxchat-info-content {
2273 flex: 1;
2274 }
2275
2276 .mxchat-info-content h4 {
2277 margin: 0 0 10px 0;
2278 color: #333;
2279 font-size: 16px;
2280 }
2281
2282 .mxchat-info-content p {
2283 margin: 0 0 8px 0;
2284 color: #666;
2285 font-size: 14px;
2286 line-height: 1.5;
2287 }
2288
2289 .mxchat-info-content p:last-child {
2290 margin-bottom: 0;
2291 }
2292
2293 .mxchat-info-content a {
2294 color: #7873f5;
2295 text-decoration: none;
2296 font-weight: 500;
2297 }
2298
2299 .mxchat-info-content a:hover {
2300 text-decoration: underline;
2301 }
2302
2303 /* Database Settings Form */
2304 .mxchat-database-settings-form {
2305 margin-top: 25px;
2306 }
2307
2308 /* Toggle Container */
2309 .mxchat-toggle-container {
2310 display: flex;
2311 align-items: center;
2312 gap: 12px;
2313 margin: 20px 0;
2314 padding: 15px 0;
2315 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2316 }
2317
2318 .mxchat-toggle-switch {
2319 position: relative;
2320 display: inline-block;
2321 width: 50px;
2322 height: 26px;
2323 }
2324
2325 .mxchat-toggle-switch input {
2326 opacity: 0;
2327 width: 0;
2328 height: 0;
2329 }
2330
2331 .mxchat-toggle-slider {
2332 position: absolute;
2333 cursor: pointer;
2334 top: 0;
2335 left: 0;
2336 right: 0;
2337 bottom: 0;
2338 background-color: #ddd;
2339 transition: 0.3s;
2340 border-radius: 26px;
2341 }
2342
2343 .mxchat-toggle-slider:before {
2344 position: absolute;
2345 content: "";
2346 height: 20px;
2347 width: 20px;
2348 left: 3px;
2349 bottom: 3px;
2350 background-color: white;
2351 transition: 0.3s;
2352 border-radius: 50%;
2353 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
2354 }
2355
2356 input:checked + .mxchat-toggle-slider {
2357 background: linear-gradient(135deg, #fa73e6, #7873f5);
2358 }
2359
2360 input:checked + .mxchat-toggle-slider:before {
2361 transform: translateX(24px);
2362 }
2363
2364 .mxchat-toggle-label {
2365 font-weight: 500;
2366 color: #333;
2367 font-size: 15px;
2368 }
2369
2370 /* Pinecone Settings Section */
2371 .mxchat-pinecone-settings {
2372 background: #f8f9ff;
2373 border: 1px solid rgba(120, 115, 245, 0.2);
2374 border-radius: 10px;
2375 padding: 25px;
2376 margin: 20px 0;
2377 }
2378
2379 /* Knowledge Warning (Success State) */
2380 .mxchat-knowledge-warning.success {
2381 background: #edfaef;
2382 border-left: 4px solid #46b450;
2383 padding: 15px;
2384 margin: 0 0 20px 0;
2385 border-radius: 4px;
2386 }
2387
2388 .mxchat-knowledge-warning.success p {
2389 margin: 0;
2390 color: #2a4f30;
2391 align-items: center;
2392 gap: 8px;
2393 }
2394
2395 .mxchat-knowledge-warning.success .dashicons {
2396 color: #46b450;
2397 }
2398
2399 /* Form Groups */
2400 .mxchat-form-group {
2401 margin-bottom: 20px;
2402 }
2403
2404 .mxchat-form-group label {
2405 display: block;
2406 margin-bottom: 8px;
2407 color: #333;
2408 font-weight: 500;
2409 font-size: 14px;
2410 }
2411
2412 .mxchat-form-group label .required {
2413 color: #dc3232;
2414 margin-left: 4px;
2415 }
2416
2417 .mxchat-form-group input[type="text"],
2418 .mxchat-form-group input[type="password"] {
2419 width: 100%;
2420 max-width: 400px;
2421 padding: 10px 12px;
2422 border: 1px solid rgba(120, 115, 245, 0.2);
2423 border-radius: 6px;
2424 background: white;
2425 font-size: 14px;
2426 transition: border-color 0.2s ease, box-shadow 0.2s ease;
2427 }
2428
2429 .mxchat-form-group input[type="text"]:focus,
2430 .mxchat-form-group input[type="password"]:focus {
2431 border-color: #7873f5;
2432 outline: none;
2433 box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
2434 }
2435
2436 .mxchat-form-group .description {
2437 margin: 8px 0 0 0;
2438 color: #666;
2439 font-size: 13px;
2440 line-height: 1.4;
2441 }
2442
2443 .mxchat-form-group .description a {
2444 color: #7873f5;
2445 text-decoration: none;
2446 font-weight: 500;
2447 }
2448
2449 .mxchat-form-group .description a:hover {
2450 text-decoration: underline;
2451 }
2452
2453 /* Setup Help Section */
2454 .mxchat-pinecone-setup-help {
2455 background: white;
2456 border: 1px solid rgba(120, 115, 245, 0.1);
2457 border-radius: 8px;
2458 padding: 20px;
2459 margin-top: 25px;
2460 }
2461
2462 .mxchat-pinecone-setup-help h3 {
2463 margin: 0 0 15px 0;
2464 color: #333;
2465 font-size: 16px;
2466 }
2467
2468 .mxchat-pinecone-setup-help ol {
2469 margin: 0;
2470 padding-left: 20px;
2471 }
2472
2473 .mxchat-pinecone-setup-help li {
2474 margin-bottom: 12px;
2475 color: #666;
2476 line-height: 1.5;
2477 }
2478
2479 .mxchat-pinecone-setup-help li:last-child {
2480 margin-bottom: 0;
2481 }
2482
2483 .mxchat-pinecone-setup-help ul {
2484 margin: 8px 0;
2485 padding-left: 20px;
2486 }
2487
2488 .mxchat-pinecone-setup-help ul li {
2489 margin-bottom: 6px;
2490 font-size: 13px;
2491 }
2492
2493 .mxchat-pinecone-setup-help a {
2494 color: #7873f5;
2495 text-decoration: none;
2496 font-weight: 500;
2497 }
2498
2499 .mxchat-pinecone-setup-help a:hover {
2500 text-decoration: underline;
2501 }
2502
2503 /* Connection Status Section */
2504 .mxchat-pinecone-status-section {
2505 background: white;
2506 border: 1px solid rgba(120, 115, 245, 0.1);
2507 border-radius: 8px;
2508 padding: 20px;
2509 margin-top: 25px;
2510 }
2511
2512 .mxchat-pinecone-status-section h3 {
2513 margin: 0 0 15px 0;
2514 color: #333;
2515 font-size: 16px;
2516 }
2517
2518 #mxchat-pinecone-test-connection {
2519 margin-bottom: 15px;
2520 }
2521
2522 #test-pinecone-connection {
2523 background: linear-gradient(135deg, #fa73e6, #7873f5);
2524 color: white;
2525 border: none;
2526 padding: 10px 20px;
2527 border-radius: 6px;
2528 cursor: pointer;
2529 font-size: 14px;
2530 font-weight: 500;
2531 transition: all 0.2s ease;
2532 }
2533
2534 #test-pinecone-connection:hover:not(:disabled) {
2535 transform: translateY(-1px);
2536 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.3);
2537 }
2538
2539 #test-pinecone-connection:disabled {
2540 opacity: 0.6;
2541 cursor: not-allowed;
2542 transform: none;
2543 }
2544
2545 /* Test Result Styles */
2546 .mxchat-test-result {
2547 margin-top: 15px;
2548 }
2549
2550 .mxchat-test-result .notice {
2551 margin: 0;
2552 padding: 12px 15px;
2553 border-radius: 6px;
2554 display: flex;
2555 align-items: center;
2556 gap: 8px;
2557 }
2558
2559 .mxchat-test-result .notice-success {
2560 background: #edfaef;
2561 border-left: 4px solid #46b450;
2562 color: #2a4f30;
2563 }
2564
2565 .mxchat-test-result .notice-error {
2566 background: #fbeaea;
2567 border-left: 4px solid #dc3232;
2568 color: #721c24;
2569 }
2570
2571 .mxchat-test-result .notice .dashicons {
2572 flex-shrink: 0;
2573 }
2574
2575 .mxchat-test-result .notice p {
2576 margin: 0;
2577 font-size: 14px;
2578 }
2579
2580 /* Compatibility Notice */
2581 .mxchat-pinecone-compatibility-notice {
2582 background: #e8f4ff;
2583 border-left: 4px solid #2196f3;
2584 padding: 15px;
2585 margin: 0 0 20px 0;
2586 border-radius: 4px;
2587 }
2588
2589 .mxchat-pinecone-compatibility-notice p {
2590 margin: 0;
2591 color: #1565c0;
2592 font-size: 14px;
2593 line-height: 1.5;
2594 }
2595
2596 /* Responsive Design */
2597 @media screen and (max-width: 782px) {
2598 .mxchat-pinecone-info-box {
2599 flex-direction: column;
2600 gap: 10px;
2601 }
2602
2603 .mxchat-toggle-container {
2604 flex-direction: column;
2605 align-items: flex-start;
2606 gap: 8px;
2607 }
2608
2609 .mxchat-form-group input[type="text"],
2610 .mxchat-form-group input[type="password"] {
2611 max-width: 100%;
2612 }
2613
2614 .mxchat-pinecone-settings {
2615 padding: 15px;
2616 }
2617
2618 .mxchat-pinecone-setup-help,
2619 .mxchat-pinecone-status-section {
2620 padding: 15px;
2621 }
2622 }
2623
2624
2625 /* Setup Steps */
2626 .mxchat-setup-steps {
2627 margin: 30px 0;
2628 padding: 20px;
2629 background: #fff;
2630 border-radius: 10px;
2631 }
2632
2633 .mxchat-setup-step {
2634 display: flex;
2635 align-items: flex-start;
2636 margin-bottom: 20px;
2637 }
2638
2639 .step-number {
2640 background: linear-gradient(135deg, #fa73e6, #7873f5);
2641 color: white;
2642 width: 28px;
2643 height: 28px;
2644 border-radius: 50%;
2645 display: flex;
2646 align-items: center;
2647 justify-content: center;
2648 font-weight: bold;
2649 margin-right: 15px;
2650 flex-shrink: 0;
2651 }
2652
2653 .step-content {
2654 flex: 1;
2655 }
2656
2657 .step-content h4 {
2658 margin: 0 0 5px 0;
2659 }
2660
2661 .step-content p {
2662 margin: 0;
2663 color: #666;
2664 }
2665
2666 .step-content ul {
2667 margin-top: 5px;
2668 margin-bottom: 0;
2669 color: #666;
2670 }
2671
2672
2673
2674 /* ===== Role-Based Content Restrictions Styles ===== */
2675
2676 /* Role mapping form */
2677 .mxchat-role-mapping-form {
2678 margin-top: 20px;
2679 padding: 20px;
2680 background-color: #f8f9ff;
2681 border-radius: 8px;
2682 border: 1px solid rgba(120, 115, 245, 0.1);
2683 }
2684
2685 .mxchat-role-mapping-form h4 {
2686 margin-top: 0;
2687 margin-bottom: 15px;
2688 font-size: 16px;
2689 color: #333;
2690 }
2691
2692 .mxchat-form-row {
2693 display: flex;
2694 gap: 15px;
2695 align-items: flex-end;
2696 margin-bottom: 20px;
2697 }
2698
2699 /* Role mappings table */
2700 .mxchat-mappings-table {
2701 width: 100%;
2702 border-collapse: collapse;
2703 margin-top: 15px;
2704 background: #fff;
2705 box-shadow: 0 1px 3px rgba(120, 115, 245, 0.08);
2706 border-radius: 8px;
2707 overflow: hidden;
2708 }
2709
2710 .mxchat-mappings-table th,
2711 .mxchat-mappings-table td {
2712 padding: 15px;
2713 text-align: left;
2714 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2715 }
2716
2717 .mxchat-mappings-table th {
2718 background: #f8f9ff;
2719 font-weight: 600;
2720 color: #333;
2721 font-size: 14px;
2722 }
2723
2724 .mxchat-mappings-table tbody tr {
2725 transition: background-color 0.2s ease;
2726 }
2727
2728 .mxchat-mappings-table tbody tr:hover {
2729 background: rgba(120, 115, 245, 0.03);
2730 }
2731
2732 .mxchat-mappings-table tbody tr:last-child td {
2733 border-bottom: none;
2734 }
2735
2736 /* Tag and role badges */
2737 .mxchat-tag-badge {
2738 display: inline-flex;
2739 align-items: center;
2740 gap: 5px;
2741 padding: 5px 12px;
2742 background: linear-gradient(135deg, #fa73e6, #7873f5);
2743 color: #fff;
2744 border-radius: 4px;
2745 font-size: 13px;
2746 font-weight: 500;
2747 }
2748
2749 .mxchat-tag-badge .dashicons {
2750 font-size: 16px;
2751 width: 16px;
2752 height: 16px;
2753 }
2754
2755 .mxchat-role-badge {
2756 display: inline-block;
2757 padding: 5px 12px;
2758 background: #f0f0f1;
2759 color: #2c3338;
2760 border-radius: 4px;
2761 font-size: 13px;
2762 font-weight: 500;
2763 }
2764
2765 /* Role-specific badge colors */
2766 .mxchat-role-badge.public {
2767 background: #e8f5e9;
2768 color: #2e7d32;
2769 }
2770
2771 .mxchat-role-badge.logged_in {
2772 background: #e3f2fd;
2773 color: #1565c0;
2774 }
2775
2776 .mxchat-role-badge.subscriber {
2777 background: #f3e5f5;
2778 color: #7b1fa2;
2779 }
2780
2781 .mxchat-role-badge.contributor {
2782 background: #fff3e0;
2783 color: #e65100;
2784 }
2785
2786 .mxchat-role-badge.author {
2787 background: #fff9c4;
2788 color: #f57f17;
2789 }
2790
2791 .mxchat-role-badge.editor {
2792 background: #fce4ec;
2793 color: #c2185b;
2794 }
2795
2796 .mxchat-role-badge.administrator {
2797 background: #ffebee;
2798 color: #c62828;
2799 }
2800
2801 /* Mapping actions */
2802 .mxchat-mapping-actions {
2803 display: flex;
2804 gap: 8px;
2805 align-items: center;
2806 }
2807
2808 .mxchat-delete-mapping {
2809 color: #d63638;
2810 cursor: pointer;
2811 padding: 6px 10px;
2812 border-radius: 4px;
2813 transition: all 0.2s ease;
2814 display: inline-flex;
2815 align-items: center;
2816 gap: 4px;
2817 background: transparent;
2818 border: none;
2819 font-size: 13px;
2820 }
2821
2822 .mxchat-delete-mapping:hover {
2823 background: #fef0f0;
2824 color: #b32d2e;
2825 }
2826
2827 .mxchat-delete-mapping .dashicons {
2828 font-size: 18px;
2829 width: 18px;
2830 height: 18px;
2831 }
2832
2833 /* Post count display */
2834 .mxchat-post-count {
2835 color: #666;
2836 font-size: 13px;
2837 display: flex;
2838 align-items: center;
2839 gap: 4px;
2840 }
2841
2842 .mxchat-post-count .dashicons {
2843 font-size: 16px;
2844 width: 16px;
2845 height: 16px;
2846 color: #7873f5;
2847 }
2848
2849 /* Loading state for mappings */
2850 .mxchat-loading-mappings {
2851 text-align: center;
2852 padding: 40px;
2853 color: #666;
2854 }
2855
2856 .mxchat-role-spinner {
2857 display: inline-block;
2858 width: 20px;
2859 height: 20px;
2860 border: 2px solid rgba(120, 115, 245, 0.2);
2861 border-top: 2px solid #7873f5;
2862 border-radius: 50%;
2863 animation: mxchat-role-spin 1s linear infinite;
2864 margin-right: 10px;
2865 }
2866
2867 .mxchat-role-spinner.is-active {
2868 display: inline-block;
2869 }
2870
2871 @keyframes mxchat-role-spin {
2872 0% { transform: rotate(0deg); }
2873 100% { transform: rotate(360deg); }
2874 }
2875
2876 /* Empty state */
2877 #mxchat-no-mappings {
2878 text-align: center;
2879 padding: 40px;
2880 color: #666;
2881 }
2882
2883 #mxchat-no-mappings .dashicons {
2884 font-size: 48px;
2885 opacity: 0.3;
2886 margin-bottom: 15px;
2887 display: block;
2888 }
2889
2890 #mxchat-no-mappings p {
2891 margin: 0;
2892 font-size: 14px;
2893 }
2894
2895 /* Bulk update section */
2896 .mxchat-bulk-update-section {
2897 margin-top: 30px;
2898 padding-top: 30px;
2899 border-top: 1px solid rgba(120, 115, 245, 0.1);
2900 }
2901
2902 .mxchat-bulk-update-section h4 {
2903 margin-top: 0;
2904 margin-bottom: 10px;
2905 font-size: 16px;
2906 color: #333;
2907 }
2908
2909 .mxchat-bulk-update-controls {
2910 margin-top: 15px;
2911 }
2912
2913 #mxchat-bulk-update-roles {
2914 display: inline-flex;
2915 align-items: center;
2916 gap: 8px;
2917 }
2918
2919 #mxchat-bulk-update-progress {
2920 max-width: 600px;
2921 }
2922
2923 #mxchat-bulk-update-progress .mxchat-progress-bar {
2924 height: 10px;
2925 background: rgba(120, 115, 245, 0.1);
2926 border-radius: 5px;
2927 overflow: hidden;
2928 }
2929
2930 #mxchat-bulk-update-progress .mxchat-progress-fill {
2931 height: 100%;
2932 background: linear-gradient(135deg, #fa73e6, #7873f5);
2933 transition: width 0.3s ease;
2934 }
2935
2936 .mxchat-progress-text {
2937 margin-top: 10px;
2938 color: #666;
2939 font-size: 14px;
2940 }
2941
2942 /* Bulk update results */
2943 #mxchat-bulk-update-result {
2944 margin-top: 15px;
2945 padding: 15px;
2946 border-radius: 8px;
2947 }
2948
2949 #mxchat-bulk-update-result.success {
2950 background-color: #f0f9eb;
2951 border-left: 4px solid #67c23a;
2952 color: #3c763d;
2953 }
2954
2955 #mxchat-bulk-update-result.error {
2956 background-color: #fef0f0;
2957 border-left: 4px solid #d63638;
2958 color: #a94442;
2959 }
2960
2961 #mxchat-bulk-update-result h5 {
2962 margin: 0 0 10px;
2963 font-size: 15px;
2964 font-weight: 600;
2965 }
2966
2967 #mxchat-bulk-update-result p {
2968 margin: 5px 0;
2969 font-size: 14px;
2970 }
2971
2972 /* Role mappings list container */
2973 .mxchat-role-mappings-list {
2974 margin-top: 25px;
2975 }
2976
2977 .mxchat-role-mappings-list h4 {
2978 margin-top: 0;
2979 margin-bottom: 15px;
2980 font-size: 16px;
2981 color: #333;
2982 }
2983
2984 /* Info banner styling (reuse existing pattern) */
2985 .mxchat-role-info-banner {
2986 display: flex;
2987 align-items: center;
2988 gap: 10px;
2989 padding: 12px 16px;
2990 margin-bottom: 20px;
2991 border-radius: 6px;
2992 font-size: 14px;
2993 background: #f8f9ff;
2994 border-left: 4px solid #7873f5;
2995 color: #333;
2996 }
2997
2998 .mxchat-role-info-banner .dashicons {
2999 color: #7873f5;
3000 font-size: 18px;
3001 }
3002
3003 /* Responsive adjustments */
3004 @media screen and (max-width: 782px) {
3005 .mxchat-form-row {
3006 flex-direction: column;
3007 align-items: stretch;
3008 }
3009
3010 .mxchat-form-row .mxchat-form-group {
3011 flex: 1;
3012 max-width: none;
3013 }
3014
3015 .mxchat-form-row > div {
3016 padding-bottom: 0;
3017 }
3018
3019 .mxchat-mappings-table {
3020 display: block;
3021 overflow-x: auto;
3022 }
3023
3024 .mxchat-mappings-table th,
3025 .mxchat-mappings-table td {
3026 padding: 10px;
3027 font-size: 13px;
3028 }
3029
3030 .mxchat-mapping-actions {
3031 flex-direction: column;
3032 align-items: flex-start;
3033 }
3034 }
3035
3036 /* RTL Support */
3037 .rtl .mxchat-mappings-table th,
3038 .rtl .mxchat-mappings-table td {
3039 text-align: right;
3040 }
3041
3042 .rtl .mxchat-tag-badge {
3043 flex-direction: row-reverse;
3044 }
3045
3046 .rtl .mxchat-role-info-banner {
3047 border-left: none;
3048 border-right: 4px solid #7873f5;
3049 }
3050
3051 .rtl .mxchat-bulk-update-section {
3052 border-right: none;
3053 }
3054
3055 .rtl #mxchat-bulk-update-result {
3056 border-left: none;
3057 border-right: 4px solid;
3058 }
3059
3060 .rtl .mxchat-role-spinner {
3061 margin-right: 0;
3062 margin-left: 10px;
3063 }
3064
3065 /* ===== Chunk Grouping Styles ===== */
3066 .mxchat-chunk-group-header {
3067 background: rgba(120, 115, 245, 0.04) !important;
3068 border-left: 3px solid #7873f5;
3069 }
3070
3071 .mxchat-chunk-group-header:hover {
3072 background: rgba(120, 115, 245, 0.08) !important;
3073 }
3074
3075 .mxchat-chunk-group-info {
3076 display: flex;
3077 align-items: center;
3078 gap: 12px;
3079 }
3080
3081 .mxchat-chunk-toggle {
3082 flex-shrink: 0;
3083 width: 28px;
3084 height: 28px;
3085 border: none;
3086 background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
3087 border-radius: 6px;
3088 cursor: pointer;
3089 display: inline-flex;
3090 align-items: center;
3091 justify-content: center;
3092 transition: all 0.3s ease;
3093 padding: 0;
3094 }
3095
3096 .mxchat-chunk-toggle:hover {
3097 background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
3098 transform: scale(1.05);
3099 }
3100
3101 .mxchat-chunk-toggle .dashicons {
3102 font-size: 16px;
3103 color: #7873f5;
3104 transition: transform 0.3s ease;
3105 }
3106
3107 .mxchat-chunk-toggle.expanded .dashicons {
3108 transform: rotate(90deg);
3109 }
3110
3111 .mxchat-chunk-badge {
3112 display: inline-flex;
3113 align-items: center;
3114 padding: 4px 10px;
3115 background: linear-gradient(135deg, #7873f5, #3ac9d1);
3116 color: white;
3117 border-radius: 12px;
3118 font-size: 12px;
3119 font-weight: 600;
3120 white-space: nowrap;
3121 }
3122
3123 .mxchat-chunk-preview {
3124 flex: 1;
3125 color: #666;
3126 font-size: 13px;
3127 overflow: hidden;
3128 text-overflow: ellipsis;
3129 white-space: nowrap;
3130 }
3131
3132 .mxchat-chunk-row {
3133 border-left: 3px solid #e0e0e0;
3134 }
3135
3136 .mxchat-chunk-row td:first-child {
3137 padding-left: 30px !important;
3138 }
3139
3140 .mxchat-chunk-indicator {
3141 display: inline-flex;
3142 align-items: center;
3143 padding: 2px 8px;
3144 background: #f0f0f0;
3145 color: #666;
3146 border-radius: 4px;
3147 font-size: 11px;
3148 font-weight: 500;
3149 }
3150
3151 .mxchat-chunk-label {
3152 color: #999;
3153 font-size: 12px;
3154 font-style: italic;
3155 }
3156
3157 /* Delete button for chunk groups */
3158 .delete-button-group {
3159 background: none;
3160 border: none;
3161 cursor: pointer;
3162 padding: 4px;
3163 border-radius: 4px;
3164 transition: all 0.2s ease;
3165 }
3166
3167 .delete-button-group:hover {
3168 background: rgba(255, 0, 0, 0.1);
3169 }
3170
3171 .delete-button-group .dashicons {
3172 color: #dc3545;
3173 }
3174
3175 .delete-button-group .dashicons.spin {
3176 animation: mxchat-spin 1s linear infinite;
3177 }
3178
3179 @keyframes mxchat-spin {
3180 from { transform: rotate(0deg); }
3181 to { transform: rotate(360deg); }
3182 }
3183
3184 /* ===== Sitemap Detection Styles ===== */
3185 .dashicons.spin {
3186 animation: mxchat-spin 1s linear infinite;
3187 }
3188
3189 .mxchat-sitemap-group.expanded .mxchat-sitemap-sub-list {
3190 display: block !important;
3191 }
3192
3193 .mxchat-sitemap-group.expanded .dashicons-arrow-right-alt2 {
3194 transform: rotate(90deg) !important;
3195 }
3196
3197 .mxchat-sitemap-row:last-child {
3198 border-bottom: none !important;
3199 }
3200
3201 .mxchat-detected-sitemaps {
3202 margin-top: 24px;
3203 }
3204
3205 .mxchat-sitemaps-header {
3206 display: flex;
3207 align-items: center;
3208 justify-content: space-between;
3209 margin-bottom: 16px;
3210 }
3211
3212 .mxchat-sitemaps-header h4 {
3213 margin: 0;
3214 display: flex;
3215 align-items: center;
3216 gap: 8px;
3217 }
3218
3219 .mxchat-sitemaps-header h4 .dashicons {
3220 color: #7873f5;
3221 }
3222
3223 .mxchat-sitemap-group {
3224 margin-bottom: 16px;
3225 border: 1px solid rgba(120, 115, 245, 0.2);
3226 border-radius: 8px;
3227 overflow: hidden;
3228 }
3229
3230 .mxchat-sitemap-group-header {
3231 padding: 12px 16px;
3232 background: #f8fafc;
3233 display: flex;
3234 align-items: center;
3235 justify-content: space-between;
3236 cursor: pointer;
3237 transition: background-color 0.2s ease;
3238 }
3239
3240 .mxchat-sitemap-group-header:hover {
3241 background: #f0f4f8;
3242 }
3243
3244 .mxchat-sitemap-sub-list {
3245 display: none;
3246 border-top: 1px solid rgba(120, 115, 245, 0.2);
3247 }
3248
3249 .mxchat-sitemap-row {
3250 padding: 12px 16px;
3251 display: flex;
3252 align-items: center;
3253 justify-content: space-between;
3254 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
3255 }
3256
3257 .mxchat-sitemap-row.sub-item {
3258 padding-left: 40px;
3259 }
3260
3261 .mxchat-sitemaps-loading {
3262 margin-top: 24px;
3263 padding: 20px;
3264 text-align: center;
3265 }
3266
3267 .mxchat-sitemaps-loading .dashicons {
3268 font-size: 20px;
3269 color: #7873f5;
3270 }
3271
3272 .mxchat-sitemaps-loading p {
3273 margin: 8px 0 0;
3274 color: #666;
3275 }
3276
3277 .mxchat-no-sitemaps {
3278 margin-top: 24px;
3279 padding: 20px;
3280 background: #f8fafc;
3281 border-radius: 8px;
3282 text-align: center;
3283 }
3284
3285 .mxchat-no-sitemaps .dashicons {
3286 font-size: 24px;
3287 color: #999;
3288 margin-bottom: 8px;
3289 }
3290
3291 .mxchat-no-sitemaps p {
3292 margin: 0;
3293 color: #666;
3294 }
3295
3296 /* ===== Admin Notice Dismiss Button Styles ===== */
3297 .notice.is-dismissible {
3298 position: relative;
3299 padding-right: 38px;
3300 }
3301
3302 .notice-dismiss {
3303 position: absolute;
3304 top: 50%;
3305 right: 8px;
3306 transform: translateY(-50%);
3307 padding: 0;
3308 background: none;
3309 border: none;
3310 cursor: pointer;
3311 color: #787c82;
3312 width: 24px;
3313 height: 24px;
3314 display: flex;
3315 align-items: center;
3316 justify-content: center;
3317 transition: color 0.2s ease;
3318 }
3319
3320 .notice-dismiss:hover {
3321 color: #d63638;
3322 }
3323
3324 .notice-dismiss:before {
3325 content: "\f153";
3326 font-family: dashicons;
3327 font-size: 16px;
3328 line-height: 1;
3329 }
3330
3331 .notice-dismiss .screen-reader-text {
3332 position: absolute;
3333 width: 1px;
3334 height: 1px;
3335 padding: 0;
3336 margin: -1px;
3337 overflow: hidden;
3338 clip: rect(0, 0, 0, 0);
3339 white-space: nowrap;
3340 border: 0;
3341 }
3342
3343 /* ===== AJAX Pagination Styles ===== */
3344 .mxchat-kb-pagination-wrapper {
3345 background: #f8fafc;
3346 }
3347
3348 .mxchat-ajax-pagination {
3349 display: flex;
3350 align-items: center;
3351 justify-content: center;
3352 gap: 8px;
3353 flex-wrap: wrap;
3354 }
3355
3356 .mxchat-page-link {
3357 display: inline-flex;
3358 align-items: center;
3359 justify-content: center;
3360 min-width: 36px;
3361 height: 36px;
3362 padding: 0 12px;
3363 background: #fff;
3364 border: 1px solid var(--mxch-card-border, #e5e7eb);
3365 border-radius: 6px;
3366 color: var(--mxch-text-primary, #1f2937);
3367 text-decoration: none;
3368 font-size: 13px;
3369 font-weight: 500;
3370 transition: all 0.2s ease;
3371 cursor: pointer;
3372 }
3373
3374 .mxchat-page-link:hover {
3375 background: var(--mxch-primary, #7873f5);
3376 border-color: var(--mxch-primary, #7873f5);
3377 color: #fff;
3378 text-decoration: none;
3379 }
3380
3381 .mxchat-page-link.loading {
3382 opacity: 0.6;
3383 pointer-events: none;
3384 }
3385
3386 .mxchat-page-current {
3387 display: inline-flex;
3388 align-items: center;
3389 justify-content: center;
3390 min-width: 36px;
3391 height: 36px;
3392 padding: 0 12px;
3393 background: var(--mxch-primary, #7873f5);
3394 border: 1px solid var(--mxch-primary, #7873f5);
3395 border-radius: 6px;
3396 color: #fff;
3397 font-size: 13px;
3398 font-weight: 600;
3399 }
3400
3401 .mxchat-page-dots {
3402 display: inline-flex;
3403 align-items: center;
3404 justify-content: center;
3405 min-width: 24px;
3406 height: 36px;
3407 color: var(--mxch-text-muted, #9ca3af);
3408 font-size: 14px;
3409 }
3410
3411 .mxchat-pagination-loading {
3412 margin-left: 12px;
3413 }
3414
3415 .mxchat-pagination-loading .dashicons {
3416 color: var(--mxch-primary, #7873f5);
3417 }
3418
3419 /* Spin animation for loading indicator */
3420 @keyframes mxchat-spin {
3421 from { transform: rotate(0deg); }
3422 to { transform: rotate(360deg); }
3423 }
3424
3425 .mxchat-pagination-loading .spin,
3426 .mxchat-ajax-pagination .spin {
3427 animation: mxchat-spin 1s linear infinite;
3428 }
3429
3430 /* Mobile responsive pagination */
3431 @media (max-width: 600px) {
3432 .mxchat-ajax-pagination {
3433 gap: 4px;
3434 }
3435
3436 .mxchat-page-link,
3437 .mxchat-page-current {
3438 min-width: 32px;
3439 height: 32px;
3440 padding: 0 8px;
3441 font-size: 12px;
3442 }
3443
3444 .mxchat-page-dots {
3445 min-width: 20px;
3446 }
3447 }
3448
3449 /* ========================================
3450 BULK SELECTION STYLES
3451 ======================================== */
3452
3453 /* Bulk Actions Toolbar */
3454 .mxchat-bulk-toolbar {
3455 display: flex;
3456 align-items: center;
3457 gap: 12px;
3458 padding: 12px 16px;
3459 background: #f8fafc;
3460 border: 1px solid var(--mxch-card-border);
3461 border-bottom: none;
3462 border-radius: var(--mxch-radius-md) var(--mxch-radius-md) 0 0;
3463 }
3464
3465 .mxchat-bulk-select-label {
3466 display: flex;
3467 align-items: center;
3468 gap: 6px;
3469 font-size: 13px;
3470 color: var(--mxch-text-secondary);
3471 cursor: pointer;
3472 }
3473
3474 .mxchat-bulk-select-label:hover {
3475 color: var(--mxch-text-primary);
3476 }
3477
3478 .mxchat-entry-checkbox,
3479 .mxchat-entry-checkbox-all {
3480 width: 16px;
3481 height: 16px;
3482 cursor: pointer;
3483 accent-color: var(--mxch-primary, #7873f5);
3484 }
3485
3486 .mxchat-bulk-actions {
3487 display: flex;
3488 align-items: center;
3489 gap: 8px;
3490 margin-left: auto;
3491 }
3492
3493 .mxchat-bulk-delete {
3494 display: flex;
3495 align-items: center;
3496 gap: 6px;
3497 color: var(--mxch-error, #dc2626) !important;
3498 border-color: #fecaca !important;
3499 background: transparent !important;
3500 }
3501
3502 .mxchat-bulk-delete:hover:not(:disabled) {
3503 background: #fef2f2 !important;
3504 border-color: #fca5a5 !important;
3505 }
3506
3507 .mxchat-bulk-delete:disabled {
3508 opacity: 0.5;
3509 cursor: not-allowed;
3510 }
3511
3512 .mxchat-selected-count {
3513 font-size: 12px;
3514 color: var(--mxch-primary, #7873f5);
3515 font-weight: 600;
3516 margin-left: 4px;
3517 }
3518
3519 /* Delete container - holds Delete All form and Delete Selected button */
3520 .mxchat-delete-container {
3521 display: flex;
3522 align-items: center;
3523 }
3524
3525 /* Selected row highlighting */
3526 #mxchat-records-table tr.selected {
3527 background-color: rgba(120, 115, 245, 0.05) !important;
3528 }
3529
3530 #mxchat-records-table tr.selected td:first-child {
3531 position: relative;
3532 }
3533
3534 #mxchat-records-table tr.selected td:first-child::before {
3535 content: '';
3536 position: absolute;
3537 left: 0;
3538 top: 0;
3539 bottom: 0;
3540 width: 3px;
3541 background: var(--mxch-primary, #7873f5);
3542 }
3543
3544 /* Deleting state */
3545 tr.mxchat-row-deleting {
3546 opacity: 0.5;
3547 pointer-events: none;
3548 }
3549
3550 /* Error state for failed deletions */
3551 tr.mxchat-row-error {
3552 background-color: rgba(220, 38, 38, 0.05) !important;
3553 }
3554
3555 tr.mxchat-row-error td:first-child {
3556 position: relative;
3557 }
3558
3559 tr.mxchat-row-error td:first-child::before {
3560 content: '';
3561 position: absolute;
3562 left: 0;
3563 top: 0;
3564 bottom: 0;
3565 width: 3px;
3566 background: var(--mxch-error, #dc2626);
3567 }
3568
3569 /* Spin animation for loading states */
3570 .spin {
3571 animation: mxchat-spin 1s linear infinite;
3572 }
3573
3574 /* Responsive adjustments for bulk toolbar */
3575 @media (max-width: 768px) {
3576 .mxchat-bulk-toolbar {
3577 flex-wrap: wrap;
3578 gap: 8px;
3579 }
3580
3581 .mxchat-bulk-delete-text {
3582 display: none;
3583 }
3584
3585 .mxchat-bulk-actions {
3586 margin-left: 0;
3587 }
3588 }