PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.0.7
MxChat – AI Chatbot & Content Generation for WordPress v3.0.7
3.2.21 3.2.20 3.2.19 3.2.18 3.2.17 3.2.16 3.2.15 3.2.14 3.2.12 3.2.13 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 3.2.6 3.2.5 3.2.4 3.2.3 3.2.2 3.2.1 2.0.3 2.0.4 2.0.5 2.0.6 All 152 releases
← All changes | css/knowledge-style.css +3152 -87 2.0.63.0.7 View file →
@@ -1,15 +1,28 @@
1 -/* Core Layout */
1 +/*
2 + * MxChat Knowledge Base Styles
3 + * Consolidated stylesheet for the Knowledge Base Manager
4 + */
2 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 ===== */
3 16 .mxchat-wrapper, .mxchat-admin-activation {
4 - width: calc(100% + 40px); /* Add 40px to account for left and right padding */
5 - margin: 0 -20px; /* Negative margin to counteract the padding */
17 + width: 100%;
18 + margin: 0px;
6 19 padding: 0;
7 20 background-color: #f8f9ff;
8 21 min-height: 100vh;
9 22 }
10 23
11 -/* Hero Section */
24 +/* ===== Hero Section ===== */
12 25 .mxchat-hero {
13 26 text-align: center;
14 27 padding: 3.5rem 2rem;
15 28 position: relative;
@@ -61,9 +74,9 @@
61 74 z-index: 2;
62 75 line-height: 1.6;
63 76 }
64 77
65 -/* Content Area */
78 +/* ===== Content Area ===== */
66 79 .mxchat-content {
67 80 padding: 2rem;
68 81 max-width: 1400px;
69 82 margin: 0 auto;
@@ -70,9 +83,9 @@
70 83 width: 100%;
71 84 box-sizing: border-box;
72 85 }
73 86
74 -/* Card Styles */
87 +/* ===== Card Styles ===== */
75 88 .mxchat-card {
76 89 background: #fff;
77 90 border-radius: 16px;
78 91 box-shadow: 0 4px 20px rgba(120, 115, 245, 0.08);
@@ -91,9 +104,320 @@
91 104 color: #333;
92 105 font-size: 1.5rem;
93 106 }
94 107
95 -/* Import Methods */
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 ===== */
96 420 .mxchat-import-methods {
97 421 display: grid;
98 422 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
99 423 gap: 20px;
@@ -100,26 +424,85 @@
100 424 margin: 30px 0;
101 425 }
102 426
103 427 .mxchat-method-card {
104 - background: #f8f9ff;
105 - padding: 20px;
106 - border-radius: 10px;
107 - border: 1px solid rgba(120, 115, 245, 0.1);
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%;
108 434 }
109 435
110 -.mxchat-method-card h4 {
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;
111 490 color: #333;
112 - margin: 0 0 10px;
491 + font-size: 1.3rem;
113 492 }
114 493
115 -.mxchat-method-card p {
494 +.mxchat-description {
116 495 color: #666;
117 - margin: 0;
118 - font-size: 0.9rem;
496 + font-size: 14px;
497 + margin-bottom: 20px;
119 498 }
120 499
121 -/* Tabs */
500 +.mxchat-section-content {
501 + margin-top: 15px;
502 +}
503 +
504 +/* ===== Tabs ===== */
122 505 .mxchat-tabs {
123 506 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
124 507 margin-bottom: 20px;
125 508 display: flex;
@@ -145,9 +528,21 @@
145 528 color: #7873f5;
146 529 border-bottom-color: #7873f5;
147 530 }
148 531
149 -/* Toggle Switches */
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 ===== */
150 545 .mxchat-toggle-group {
151 546 display: flex;
152 547 flex-direction: column;
153 548 gap: 15px;
@@ -204,9 +599,32 @@
204 599 input:checked + .mxchat-toggle-slider:before {
205 600 transform: translateX(26px);
206 601 }
207 602
208 -/* Form Elements */
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 ===== */
209 627 .mxchat-form-group {
210 628 margin-bottom: 20px;
211 629 }
212 630
@@ -218,8 +636,9 @@
218 636 }
219 637
220 638 .mxchat-form-group input[type="text"],
221 639 .mxchat-form-group input[type="url"],
640 +.mxchat-form-group input[type="search"],
222 641 .mxchat-form-group textarea {
223 642 width: 100%;
224 643 padding: 12px 15px;
225 644 border: 2px solid rgba(120, 115, 245, 0.2);
@@ -239,19 +658,65 @@
239 658 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
240 659 outline: none;
241 660 }
242 661
243 -/* URL Input Group */
244 -.mxchat-url-input-group {
662 +/* ===== Search ===== */
663 +.mxchat-search-form {
245 664 display: flex;
246 - gap: 10px;
247 665 }
248 666
249 -.mxchat-url-input-group input {
250 - flex: 1;
667 +.mxchat-search-group {
668 + position: relative;
669 + display: flex;
670 + align-items: center;
251 671 }
252 672
253 -/* Buttons */
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 ===== */
254 719 .mxchat-button-primary {
255 720 background: linear-gradient(135deg, #fa73e6, #7873f5);
256 721 border: none;
257 722 color: white;
@@ -266,8 +731,15 @@
266 731 transform: translateY(-1px);
267 732 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.2);
268 733 }
269 734
735 +.mxchat-button-primary:disabled {
736 + background: #a7a7a7;
737 + cursor: not-allowed;
738 + transform: none;
739 + box-shadow: none;
740 +}
741 +
270 742 .mxchat-button-secondary {
271 743 background: #f8f9ff;
272 744 border: 1px solid rgba(120, 115, 245, 0.2);
273 745 color: #666;
@@ -312,9 +784,89 @@
312 784 background: #f8f9ff;
313 785 color: #7873f5;
314 786 }
315 787
316 -/* Table Styles */
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 ===== */
317 869 .mxchat-table-wrapper {
318 870 overflow-x: auto;
319 871 margin: 20px 0;
320 872 }
@@ -333,8 +885,14 @@
333 885 text-align: left;
334 886 border-bottom: 2px solid rgba(120, 115, 245, 0.1);
335 887 }
336 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 +
337 895 .mxchat-records-table td {
338 896 padding: 15px;
339 897 border-top: 1px solid rgba(120, 115, 245, 0.1);
340 898 vertical-align: top;
@@ -344,11 +902,110 @@
344 902 background: rgba(120, 115, 245, 0.03);
345 903 }
346 904
347 905 .mxchat-content-cell {
348 - max-width: 400px;
906 + max-width: 600px;
349 907 }
350 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 +
351 1008 .mxchat-url-cell a {
352 1009 color: #7873f5;
353 1010 text-decoration: none;
354 1011 display: flex;
@@ -365,111 +1022,777 @@
365 1022 display: flex;
366 1023 gap: 8px;
367 1024 }
368 1025
369 -/* Progress Bar */
370 -.mxchat-progress-bar {
371 - height: 8px;
372 - background: rgba(120, 115, 245, 0.1);
1026 +/* Legacy content-view styling (now within accordion) */
1027 +.content-edit {
1028 + width: 100%;
1029 + min-height: 100px;
1030 + border: 1px solid #ddd;
373 1031 border-radius: 4px;
374 - overflow: hidden;
375 - margin: 10px 0;
1032 + padding: 10px;
376 1033 }
377 1034
378 -.mxchat-progress-fill {
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%;
379 1258 height: 100%;
380 - background: linear-gradient(135deg, #fa73e6, #7873f5);
381 - transition: width 0.3s ease;
1259 + background-color: rgba(0, 0, 0, 0.7);
1260 + z-index: 999999;
1261 + overflow: auto;
1262 + justify-content: center;
1263 + align-items: center;
382 1264 }
383 1265
384 -/* Status Card */
385 -.mxchat-status-card {
386 - background: #f8f9ff;
387 - border-radius: 10px;
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;
388 1300 padding: 20px;
389 - margin-top: 20px;
1301 + border-bottom: 1px solid #e5e5e5;
1302 + background-color: #f8f9fa;
1303 + border-radius: 8px 8px 0 0;
390 1304 }
391 1305
392 -.mxchat-status-header {
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;
393 1329 display: flex;
1330 + align-items: center;
394 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;
395 1409 align-items: center;
396 - margin-bottom: 15px;
1410 + padding: 15px 20px;
1411 + background-color: #f8f9fa;
1412 + border-bottom: 1px solid #eee;
1413 + position: sticky;
1414 + top: 0;
1415 + z-index: 10;
397 1416 }
398 1417
399 -.mxchat-status-details {
400 - margin-top: 10px;
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;
401 1427 color: #666;
1428 + font-weight: 500;
402 1429 }
403 1430
404 -/* Search */
405 -.mxchat-search-form {
406 - position: relative;
1431 +.mxchat-kb-content-list {
1432 + padding: 0;
407 1433 }
408 1434
409 -.mxchat-search-group {
410 - position: relative;
1435 +.mxchat-kb-content-item {
411 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;
412 1485 align-items: center;
1486 + flex-wrap: wrap;
1487 + gap: 8px;
413 1488 }
414 1489
415 -.mxchat-search-group .dashicons {
416 - position: absolute;
417 - left: 12px;
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;
418 1525 color: #666;
1526 + font-style: italic;
1527 + margin-left: 8px;
419 1528 }
420 1529
421 -.mxchat-search-group input {
422 - padding-left: 40px;
423 - width: 300px;
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;
424 1537 }
425 1538
426 -/* Header Actions */
427 -.mxchat-card-header {
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;
428 1548 display: flex;
429 1549 justify-content: space-between;
430 1550 align-items: center;
431 - margin-bottom: 20px;
1551 + gap: 15px;
1552 + background-color: #f8f9fa;
1553 + border-radius: 0 0 8px 8px;
432 1554 }
433 1555
434 -.mxchat-header-actions {
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 {
435 1564 display: flex;
436 - gap: 16px;
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;
437 1633 align-items: center;
1634 + gap: 5px;
1635 + flex-wrap: wrap;
438 1636 }
439 1637
440 -/* Pagination */
441 -.mxchat-pagination {
442 - margin-top: 20px;
443 - padding-top: 20px;
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;
444 1665 text-align: center;
445 - border-top: 1px solid rgba(120, 115, 245, 0.1);
1666 + color: #666;
1667 + font-size: 14px;
446 1668 }
447 1669
448 -.mxchat-pagination .page-numbers {
449 - display: inline-flex;
1670 +.mxchat-kb-error {
1671 + color: #d63638;
1672 +}
1673 +
1674 +.mxchat-kb-loading {
1675 + display: flex;
1676 + flex-direction: column;
450 1677 align-items: center;
451 1678 justify-content: center;
452 - min-width: 32px;
453 - height: 32px;
454 - padding: 0 8px;
455 - margin: 0 4px;
456 - border-radius: 6px;
457 - background: white;
458 - border: 1px solid rgba(120, 115, 245, 0.2);
459 - color: #333;
460 - text-decoration: none;
461 - transition: all 0.2s ease;
1679 + padding: 50px;
1680 + color: #666;
462 1681 }
463 1682
464 -.mxchat-pagination .page-numbers.current {
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%;
465 1709 background: linear-gradient(135deg, #fa73e6, #7873f5);
466 - color: white;
467 - border: none;
1710 + transition: width 0.3s ease;
468 1711 }
469 1712
470 -/* Responsive Design */
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 ===== */
471 1793 @media screen and (max-width: 782px) {
1794 + /* Hero section */
472 1795 div.mxchat-hero h1.mxchat-main-title {
473 1796 font-size: 2.5rem;
474 1797 }
475 1798
@@ -493,9 +1816,19 @@
493 1816
494 1817 .mxchat-search-group input {
495 1818 width: 100%;
496 1819 }
497 -
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 +
498 1831 .mxchat-url-input-group {
499 1832 flex-direction: column;
500 1833 }
501 1834
@@ -506,18 +1839,1750 @@
506 1839
507 1840 .mxchat-content-cell {
508 1841 max-width: 200px;
509 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 + }
510 1903 }
511 1904
512 -/* Utility Classes */
513 -.mxchat-na {
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 {
514 3152 color: #999;
3153 + font-size: 12px;
515 3154 font-style: italic;
516 3155 }
517 3156
518 -.mxchat-no-records {
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;
519 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;
520 3274 color: #666;
521 - padding: 40px !important;
522 3275 }
523 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 +}