PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.1.3
MxChat – AI Chatbot & Content Generation for WordPress v2.1.3
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 +87 -3647 3.2.202.1.3 View file →
@@ -1,28 +1,15 @@
1 -/*
2 - * MxChat Knowledge Base Styles
3 - * Consolidated stylesheet for the Knowledge Base Manager
4 - */
1 +/* Core Layout */
5 2
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 3 .mxchat-wrapper, .mxchat-admin-activation {
17 - width: 100%;
18 - margin: 0px;
4 + width: calc(100% + 40px); /* Add 40px to account for left and right padding */
5 + margin: 0 -20px; /* Negative margin to counteract the padding */
19 6 padding: 0;
20 7 background-color: #f8f9ff;
21 8 min-height: 100vh;
22 9 }
23 10
24 -/* ===== Hero Section ===== */
11 +/* Hero Section */
25 12 .mxchat-hero {
26 13 text-align: center;
27 14 padding: 3.5rem 2rem;
28 15 position: relative;
@@ -74,9 +61,9 @@
74 61 z-index: 2;
75 62 line-height: 1.6;
76 63 }
77 64
78 -/* ===== Content Area ===== */
65 +/* Content Area */
79 66 .mxchat-content {
80 67 padding: 2rem;
81 68 max-width: 1400px;
82 69 margin: 0 auto;
@@ -83,9 +70,9 @@
83 70 width: 100%;
84 71 box-sizing: border-box;
85 72 }
86 73
87 -/* ===== Card Styles ===== */
74 +/* Card Styles */
88 75 .mxchat-card {
89 76 background: #fff;
90 77 border-radius: 16px;
91 78 box-shadow: 0 4px 20px rgba(120, 115, 245, 0.08);
@@ -104,331 +91,9 @@
104 91 color: #333;
105 92 font-size: 1.5rem;
106 93 }
107 94
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 -/* YouTube import: multi-line radio/description stack reads left-aligned,
271 - unlike the single-row URL forms the centered default was made for. */
272 -#mxchat-youtube-input-area {
273 - text-align: left;
274 -}
275 -
276 -/* PDF Upload Area */
277 -#mxchat-pdf-upload-area input[type="file"] {
278 - margin-bottom: 12px;
279 -}
280 -
281 -.mxchat-url-input-group {
282 - display: flex;
283 - gap: 12px;
284 - max-width: 800px;
285 - margin: 0 auto;
286 -}
287 -
288 -.mxchat-url-input-group input {
289 - flex: 1;
290 - padding: 12px 16px;
291 - border: 1px solid #ddd;
292 - border-radius: 8px;
293 - font-size: 14px;
294 -}
295 -
296 -.mxchat-url-input-group input:focus {
297 - border-color: #7873f5;
298 - box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
299 - outline: none;
300 -}
301 -
302 -.mxchat-url-description {
303 - font-size: 14px;
304 - color: #666;
305 - margin-top: 16px;
306 - font-style: italic;
307 -}
308 -
309 -.mxchat-content-input-group {
310 - max-width: 800px;
311 - margin: 0 auto;
312 -}
313 -
314 -.mxchat-content-input-group textarea {
315 - width: 100%;
316 - min-height: 150px;
317 - padding: 12px 16px;
318 - border: 1px solid #ddd;
319 - border-radius: 8px;
320 - margin-bottom: 16px;
321 - font-size: 14px;
322 - resize: vertical;
323 -}
324 -
325 -.mxchat-content-input-group textarea:focus {
326 - border-color: #7873f5;
327 - box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
328 - outline: none;
329 -}
330 -
331 -/* Primary Import Card */
332 -.mxchat-primary-import-card {
333 - background-color: #fff;
334 - border: 2px solid #7873f5;
335 - border-radius: 8px;
336 - box-shadow: 0 4px 12px rgba(120, 115, 245, 0.1);
337 - margin-bottom: 30px;
338 - overflow: hidden;
339 - transition: all 0.3s ease;
340 -}
341 -
342 -.mxchat-primary-import-card:hover {
343 - box-shadow: 0 6px 16px rgba(120, 115, 245, 0.2);
344 - transform: translateY(-2px);
345 -}
346 -
347 -.mxchat-card-header {
348 - padding: 15px 20px;
349 - display: flex;
350 - align-items: center;
351 - justify-content: space-between;
352 - border-bottom: 1px solid #e2d9ff;
353 -}
354 -
355 -.mxchat-card-header h3 {
356 - margin: 0;
357 - color: #7873f5;
358 - font-size: 18px;
359 - font-weight: 600;
360 -}
361 -
362 -.mxchat-recommended-badge {
363 - background-color: #7873f5;
364 - color: white;
365 - font-size: 12px;
366 - padding: 4px 10px;
367 - border-radius: 12px;
368 - font-weight: 500;
369 -}
370 -
371 -.mxchat-card-content {
372 - padding: 20px;
373 -}
374 -
375 -.mxchat-method-description {
376 - font-size: 15px;
377 - line-height: 1.5;
378 - color: #555;
379 - margin-bottom: 20px;
380 -}
381 -
382 -.mxchat-card-actions {
383 - text-align: center;
384 -}
385 -
386 -.mxchat-featured-button {
387 - background: linear-gradient(135deg, #fa73e6, #7873f5) !important;
388 - color: white !important;
389 - font-size: 15px !important;
390 - padding: 10px 20px !important;
391 - border: none !important;
392 - box-shadow: 0 4px 8px rgba(120, 115, 245, 0.2) !important;
393 - transition: all 0.3s ease !important;
394 - display: inline-flex !important;
395 - align-items: center !important;
396 - gap: 8px !important;
397 -}
398 -
399 -.mxchat-featured-button:hover {
400 - background: linear-gradient(135deg, #e56dd6, #6b67db) !important;
401 - box-shadow: 0 6px 12px rgba(120, 115, 245, 0.3) !important;
402 - transform: translateY(-2px) !important;
403 -}
404 -
405 -/* Alternative Import Methods */
406 -.mxchat-alternative-imports {
407 - background-color: #fff;
408 - border: 1px solid #e5e5e5;
409 - border-radius: 8px;
410 - padding: 20px;
411 - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
412 -}
413 -
414 -.mxchat-alt-header {
415 - font-size: 16px;
416 - color: #666;
417 - margin-top: 0;
418 - margin-bottom: 15px;
419 - padding-bottom: 10px;
420 - border-bottom: 1px solid #eee;
421 -}
422 -
423 -.mxchat-import-methods-grid {
424 - display: grid;
425 - grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
426 - gap: 20px;
427 - margin-bottom: 25px;
428 -}
429 -
430 -/* ===== Import Methods ===== */
95 +/* Import Methods */
431 96 .mxchat-import-methods {
432 97 display: grid;
433 98 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
434 99 gap: 20px;
@@ -435,85 +100,26 @@
435 100 margin: 30px 0;
436 101 }
437 102
438 103 .mxchat-method-card {
439 - background-color: #f9f9f9;
440 - border: 1px solid #eee;
441 - border-radius: 8px;
442 - padding: 15px;
443 - transition: all 0.2s ease;
444 - height: 100%;
104 + background: #f8f9ff;
105 + padding: 20px;
106 + border-radius: 10px;
107 + border: 1px solid rgba(120, 115, 245, 0.1);
445 108 }
446 109
447 -.mxchat-method-card:hover {
448 - background-color: #f5f5f5;
449 - border-color: #ddd;
110 +.mxchat-method-card h4 {
111 + color: #333;
112 + margin: 0 0 10px;
450 113 }
451 114
452 -.mxchat-method-icon {
453 - display: flex;
454 - justify-content: center;
455 - margin-bottom: 10px;
456 -}
457 -
458 -.mxchat-method-icon .dashicons {
459 - font-size: 24px;
460 - width: 24px;
461 - height: 24px;
115 +.mxchat-method-card p {
462 116 color: #666;
463 -}
464 -
465 -.mxchat-method-card h4,
466 -.mxchat-method-card h5 {
467 - margin: 0 0 10px 0;
468 - font-size: 15px;
469 - text-align: center;
470 - color: #444;
471 -}
472 -
473 -.mxchat-method-card p {
474 117 margin: 0;
475 - font-size: 13px;
476 - color: #666;
477 - text-align: center;
118 + font-size: 0.9rem;
478 119 }
479 120
480 -.mxchat-note,
481 -.red-warning {
482 - color: #ff5722;
483 - font-weight: 500;
484 -}
485 -
486 -/* Legacy Import Form */
487 -.mxchat-legacy-import-form {
488 - margin-top: 20px;
489 - padding-top: 20px;
490 - border-top: 1px dashed #ddd;
491 -}
492 -
493 -/* ===== Settings Section ===== */
494 -.mxchat-settings-section {
495 - margin-bottom: 30px;
496 -}
497 -
498 -.mxchat-settings-section h3 {
499 - margin-top: 0;
500 - margin-bottom: 12px;
501 - color: #333;
502 - font-size: 1.3rem;
503 -}
504 -
505 -.mxchat-description {
506 - color: #666;
507 - font-size: 14px;
508 - margin-bottom: 20px;
509 -}
510 -
511 -.mxchat-section-content {
512 - margin-top: 15px;
513 -}
514 -
515 -/* ===== Tabs ===== */
121 +/* Tabs */
516 122 .mxchat-tabs {
517 123 border-bottom: 1px solid rgba(120, 115, 245, 0.1);
518 124 margin-bottom: 20px;
519 125 display: flex;
@@ -539,21 +145,9 @@
539 145 color: #7873f5;
540 146 border-bottom-color: #7873f5;
541 147 }
542 148
543 -.mxchat-tab-contents {
544 - margin-top: 20px;
545 -}
546 -
547 -.mxchat-tab-content {
548 - display: none;
549 -}
550 -
551 -.mxchat-tab-content.active {
552 - display: block;
553 -}
554 -
555 -/* ===== Toggle Switches ===== */
149 +/* Toggle Switches */
556 150 .mxchat-toggle-group {
557 151 display: flex;
558 152 flex-direction: column;
559 153 gap: 15px;
@@ -610,43 +204,9 @@
610 204 input:checked + .mxchat-toggle-slider:before {
611 205 transform: translateX(26px);
612 206 }
613 207
614 -/* Group-level ACF toggle, mixed state: some fields in the group are excluded.
615 - Knob parks mid-track on a washed-out tint of the brand gradient until the
616 - owner picks a side (plan bf57e0). */
617 -input:indeterminate + .mxchat-toggle-slider {
618 - background: linear-gradient(135deg, #e3b8dd, #b9b6e8);
619 -}
620 -
621 -input:indeterminate + .mxchat-toggle-slider:before {
622 - transform: translateX(13px);
623 -}
624 -
625 -.mxchat-toggle-label {
626 - font-size: 14px;
627 - color: #333;
628 -}
629 -
630 -/* ===== Custom Post Types ===== */
631 -.mxchat-custom-post-types-header {
632 - margin-top: 20px;
633 -}
634 -
635 -.mxchat-custom-post-types-container {
636 - margin-top: 15px;
637 - padding: 15px;
638 - background-color: #f8f9ff;
639 - border-radius: 8px;
640 - border: 1px solid rgba(120, 115, 245, 0.1);
641 -}
642 -
643 -.mxchat-toggle-icon {
644 - margin-left: 5px;
645 - font-size: 12px;
646 -}
647 -
648 -/* ===== Form Elements ===== */
208 +/* Form Elements */
649 209 .mxchat-form-group {
650 210 margin-bottom: 20px;
651 211 }
652 212
@@ -658,9 +218,8 @@
658 218 }
659 219
660 220 .mxchat-form-group input[type="text"],
661 221 .mxchat-form-group input[type="url"],
662 -.mxchat-form-group input[type="search"],
663 222 .mxchat-form-group textarea {
664 223 width: 100%;
665 224 padding: 12px 15px;
666 225 border: 2px solid rgba(120, 115, 245, 0.2);
@@ -680,65 +239,19 @@
680 239 box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
681 240 outline: none;
682 241 }
683 242
684 -/* ===== Search ===== */
685 -.mxchat-search-form {
243 +/* URL Input Group */
244 +.mxchat-url-input-group {
686 245 display: flex;
246 + gap: 10px;
687 247 }
688 248
689 -.mxchat-search-group {
690 - position: relative;
691 - display: flex;
692 - align-items: center;
249 +.mxchat-url-input-group input {
250 + flex: 1;
693 251 }
694 252
695 -.mxchat-search-group .dashicons {
696 - position: absolute;
697 - left: 12px;
698 - color: #666;
699 -}
700 -
701 -.mxchat-search-group input {
702 - padding-left: 40px;
703 - width: 300px;
704 -}
705 -
706 -/* ADDED 2.5.6: Content Type Filter Styles */
707 -.mxchat-filter-group {
708 - position: relative;
709 - display: flex;
710 - align-items: center;
711 - margin-left: 12px;
712 -}
713 -
714 -.mxchat-filter-group select {
715 - padding: 8px 32px 8px 12px;
716 - border: 1px solid #ddd;
717 - border-radius: 8px;
718 - background: white;
719 - color: #333;
720 - font-size: 14px;
721 - cursor: pointer;
722 - transition: all 0.2s ease;
723 - appearance: none;
724 - 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");
725 - background-repeat: no-repeat;
726 - background-position: right 12px center;
727 -}
728 -
729 -.mxchat-filter-group select:hover {
730 - border-color: #7873f5;
731 - box-shadow: 0 2px 8px rgba(120, 115, 245, 0.1);
732 -}
733 -
734 -.mxchat-filter-group select:focus {
735 - outline: none;
736 - border-color: #7873f5;
737 - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
738 -}
739 -
740 -/* ===== Buttons ===== */
253 +/* Buttons */
741 254 .mxchat-button-primary {
742 255 background: linear-gradient(135deg, #fa73e6, #7873f5);
743 256 border: none;
744 257 color: white;
@@ -753,15 +266,8 @@
753 266 transform: translateY(-1px);
754 267 box-shadow: 0 4px 12px rgba(120, 115, 245, 0.2);
755 268 }
756 269
757 -.mxchat-button-primary:disabled {
758 - background: #a7a7a7;
759 - cursor: not-allowed;
760 - transform: none;
761 - box-shadow: none;
762 -}
763 -
764 270 .mxchat-button-secondary {
765 271 background: #f8f9ff;
766 272 border: 1px solid rgba(120, 115, 245, 0.2);
767 273 color: #666;
@@ -806,89 +312,9 @@
806 312 background: #f8f9ff;
807 313 color: #7873f5;
808 314 }
809 315
810 -/* ===== Status Cards ===== */
811 -.mxchat-status-card {
812 - background: #f8f9ff;
813 - border-radius: 10px;
814 - padding: 20px;
815 - margin-top: 20px;
816 - border: 1px solid rgba(120, 115, 245, 0.1);
817 -}
818 -
819 -.mxchat-status-header {
820 - display: flex;
821 - justify-content: space-between;
822 - align-items: center;
823 - margin-bottom: 15px;
824 -}
825 -
826 -.mxchat-status-details {
827 - margin-top: 10px;
828 - color: #666;
829 -}
830 -
831 -.mxchat-status-badge {
832 - display: inline-block;
833 - padding: 3px 8px;
834 - border-radius: 3px;
835 - font-size: 12px;
836 - font-weight: 500;
837 - text-transform: uppercase;
838 - margin-left: 10px;
839 -}
840 -
841 -.mxchat-status-failed {
842 - background-color: #f44336;
843 - color: white;
844 -}
845 -
846 -.mxchat-status-success {
847 - background-color: #4caf50;
848 - color: white;
849 -}
850 -
851 -.mxchat-error-notice {
852 - margin-top: 15px;
853 - padding: 10px;
854 - background-color: #fff5f5;
855 - border-left: 3px solid #f44336;
856 - color: #d32f2f;
857 - border-radius: 4px;
858 -}
859 -
860 -.mxchat-failed-urls {
861 - margin-top: 15px;
862 -}
863 -
864 -.mxchat-failed-urls h5 {
865 - margin-top: 0;
866 - margin-bottom: 10px;
867 - color: #333;
868 -}
869 -
870 -.mxchat-failed-urls-list {
871 - max-height: 200px;
872 - overflow-y: auto;
873 -}
874 -
875 -/* ===== Progress Bar ===== */
876 -.mxchat-progress-bar {
877 - height: 8px;
878 - background: rgba(120, 115, 245, 0.1);
879 - border-radius: 4px;
880 - overflow: hidden;
881 - margin: 15px 0;
882 -}
883 -
884 -.mxchat-progress-fill {
885 - height: 100%;
886 - background: linear-gradient(135deg, #fa73e6, #7873f5);
887 - transition: width 0.3s ease;
888 -}
889 -
890 -/* ===== Table Styles ===== */
316 +/* Table Styles */
891 317 .mxchat-table-wrapper {
892 318 overflow-x: auto;
893 319 margin: 20px 0;
894 320 }
@@ -907,14 +333,8 @@
907 333 text-align: left;
908 334 border-bottom: 2px solid rgba(120, 115, 245, 0.1);
909 335 }
910 336
911 -/* Hide ID column (now second column, after checkbox column) */
912 -.mxchat-records-table th:nth-child(2),
913 -.mxchat-records-table td:nth-child(2) {
914 - display: none;
915 -}
916 -
917 337 .mxchat-records-table td {
918 338 padding: 15px;
919 339 border-top: 1px solid rgba(120, 115, 245, 0.1);
920 340 vertical-align: top;
@@ -924,110 +344,11 @@
924 344 background: rgba(120, 115, 245, 0.03);
925 345 }
926 346
927 347 .mxchat-content-cell {
928 - max-width: 600px;
348 + max-width: 400px;
929 349 }
930 350
931 -/* ===== Accordion Styles ===== */
932 -.mxchat-accordion-wrapper {
933 - width: 100%;
934 -}
935 -
936 -.mxchat-content-preview {
937 - display: flex;
938 - align-items: center;
939 - gap: 12px;
940 - padding: 8px 12px;
941 - border-radius: 6px;
942 - transition: all 0.2s ease;
943 -}
944 -
945 -/* Only make it look clickable if there's an expand button */
946 -.mxchat-content-preview:has(.mxchat-expand-toggle) {
947 - cursor: pointer;
948 -}
949 -
950 -.mxchat-content-preview:has(.mxchat-expand-toggle):hover {
951 - background: rgba(120, 115, 245, 0.04);
952 -}
953 -
954 -.mxchat-content-preview .preview-text {
955 - flex: 1;
956 - font-size: 14px;
957 - line-height: 1.6;
958 - color: #333;
959 - overflow: hidden;
960 -}
961 -
962 -.mxchat-expand-toggle {
963 - flex-shrink: 0;
964 - width: 28px;
965 - height: 28px;
966 - border: none;
967 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
968 - border-radius: 6px;
969 - cursor: pointer;
970 - display: inline-flex;
971 - align-items: center;
972 - justify-content: center;
973 - transition: all 0.3s ease;
974 - padding: 0;
975 -}
976 -
977 -.mxchat-expand-toggle:hover {
978 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
979 - transform: scale(1.05);
980 -}
981 -
982 -.mxchat-expand-toggle .dashicons {
983 - font-size: 18px;
984 - width: 18px;
985 - height: 18px;
986 - color: #7873f5;
987 - transition: transform 0.3s ease;
988 -}
989 -
990 -.mxchat-expand-toggle.expanded .dashicons {
991 - transform: rotate(180deg);
992 -}
993 -
994 -.mxchat-content-full {
995 - margin-top: 12px;
996 - padding: 16px;
997 - background: rgba(120, 115, 245, 0.03);
998 - border-radius: 8px;
999 - border-left: 3px solid #7873f5;
1000 - animation: slideDown 0.3s ease;
1001 -}
1002 -
1003 -@keyframes slideDown {
1004 - from {
1005 - opacity: 0;
1006 - max-height: 0;
1007 - transform: translateY(-10px);
1008 - }
1009 - to {
1010 - opacity: 1;
1011 - max-height: 1000px;
1012 - transform: translateY(0);
1013 - }
1014 -}
1015 -
1016 -.mxchat-content-full .content-view {
1017 - font-size: 14px;
1018 - line-height: 1.6;
1019 - color: #333;
1020 -}
1021 -
1022 -.mxchat-content-full .content-view p {
1023 - margin: 0 0 12px 0;
1024 -}
1025 -
1026 -.mxchat-content-full .content-view p:last-child {
1027 - margin-bottom: 0;
1028 -}
1029 -
1030 351 .mxchat-url-cell a {
1031 352 color: #7873f5;
1032 353 text-decoration: none;
1033 354 display: flex;
@@ -1044,808 +365,111 @@
1044 365 display: flex;
1045 366 gap: 8px;
1046 367 }
1047 368
1048 -/* Legacy content-view styling (now within accordion) */
1049 -.content-edit {
1050 - width: 100%;
1051 - min-height: 100px;
1052 - border: 1px solid #ddd;
369 +/* Progress Bar */
370 +.mxchat-progress-bar {
371 + height: 8px;
372 + background: rgba(120, 115, 245, 0.1);
1053 373 border-radius: 4px;
1054 - padding: 10px;
374 + overflow: hidden;
375 + margin: 10px 0;
1055 376 }
1056 377
1057 -.url-view a {
1058 - color: #7873f5;
1059 - text-decoration: none;
378 +.mxchat-progress-fill {
379 + height: 100%;
380 + background: linear-gradient(135deg, #fa73e6, #7873f5);
381 + transition: width 0.3s ease;
1060 382 }
1061 383
1062 -.url-edit {
1063 - width: 100%;
1064 -}
1065 -
1066 -/* ===== Pagination ===== */
1067 -.mxchat-pagination {
384 +/* Status Card */
385 +.mxchat-status-card {
386 + background: #f8f9ff;
387 + border-radius: 10px;
388 + padding: 20px;
1068 389 margin-top: 20px;
1069 - padding-top: 20px;
1070 - text-align: center;
1071 - border-top: 1px solid rgba(120, 115, 245, 0.1);
1072 390 }
1073 391
1074 -.mxchat-pagination .page-numbers {
1075 - display: inline-flex;
1076 - align-items: center;
1077 - justify-content: center;
1078 - min-width: 32px;
1079 - height: 32px;
1080 - padding: 0 8px;
1081 - margin: 0 4px;
1082 - border-radius: 6px;
1083 - background: white;
1084 - border: 1px solid rgba(120, 115, 245, 0.2);
1085 - color: #333;
1086 - text-decoration: none;
1087 - transition: all 0.2s ease;
1088 -}
1089 -
1090 -.mxchat-pagination .page-numbers.current {
1091 - background: linear-gradient(135deg, #fa73e6, #7873f5);
1092 - color: white;
1093 - border: none;
1094 -}
1095 -
1096 -/* ===== Notifications ===== */
1097 -.mxchat-notification {
1098 - margin: 15px 20px 0;
1099 - padding: 10px 15px;
1100 - border-radius: 4px;
1101 - font-size: 14px;
1102 -}
1103 -
1104 -.mxchat-notification.success {
1105 - background-color: #d4edda;
1106 - color: #155724;
1107 - border: 1px solid #c3e6cb;
1108 -}
1109 -
1110 -.mxchat-notification.error {
1111 - background-color: #f8d7da;
1112 - color: #721c24;
1113 - border: 1px solid #f5c6cb;
1114 -}
1115 -
1116 -/* ===== Responsive Design ===== */
1117 -@media (max-width: 768px) {
1118 - .mxchat-hero h1.mxchat-main-title {
1119 - font-size: 2.5rem;
1120 - }
1121 -
1122 - .mxchat-card {
1123 - padding: 20px;
1124 - }
1125 -
1126 - .mxchat-import-options {
1127 - grid-template-columns: 1fr;
1128 - }
1129 -
1130 - .mxchat-url-input-group {
1131 - flex-direction: column;
1132 - }
1133 -
1134 - .mxchat-url-input-group input,
1135 - .mxchat-url-input-group button {
1136 - width: 100%;
1137 - }
1138 -
1139 - .mxchat-content-input-group textarea {
1140 - min-height: 120px;
1141 - }
1142 -
1143 - .mxchat-status-header {
1144 - flex-direction: column;
1145 - align-items: flex-start;
1146 - gap: 10px;
1147 - }
1148 -
1149 - .mxchat-records-table {
1150 - display: block;
1151 - overflow-x: auto;
1152 - }
1153 -
1154 - .mxchat-stop-form button {
1155 - width: 100%;
1156 - }
1157 -}
1158 -
1159 -@media (max-width: 480px) {
1160 - .mxchat-card {
1161 - padding: 15px;
1162 - }
1163 -
1164 - .mxchat-import-box {
1165 - flex-direction: column;
1166 - align-items: center;
1167 - text-align: center;
1168 - }
1169 -
1170 - .mxchat-import-icon {
1171 - margin: 16px 16px 0 16px;
1172 - }
1173 -
1174 - .mxchat-import-content {
1175 - padding: 16px;
1176 - }
1177 -
1178 - .mxchat-recommended-tag {
1179 - border-radius: 0 0 0 8px;
1180 - }
1181 -}
1182 -
1183 -/* RTL Support */
1184 -.rtl .mxchat-knowledge-warning {
1185 - border-left: none;
1186 - border-right: 4px solid;
1187 -}
1188 -
1189 -.rtl .mxchat-knowledge-warning .dashicons {
1190 - margin-right: 0;
1191 - margin-left: 10px;
1192 -}
1193 -
1194 -.rtl .mxchat-import-box {
1195 - flex-direction: row-reverse;
1196 -}
1197 -
1198 -.rtl .mxchat-import-content {
1199 - padding: 16px 0 16px 16px;
1200 -}
1201 -
1202 -.rtl .mxchat-import-icon {
1203 - margin: 16px;
1204 -}
1205 -
1206 -.rtl .mxchat-recommended-tag {
1207 - right: auto;
1208 - left: 0;
1209 - border-bottom-left-radius: 0;
1210 - border-bottom-right-radius: 8px;
1211 -}
1212 -
1213 -.rtl .mxchat-toggle-container {
1214 - flex-direction: row-reverse;
1215 -}
1216 -
1217 -.rtl .mxchat-toggle-slider:before {
1218 - left: auto;
1219 - right: 2px;
1220 -}
1221 -
1222 -.rtl input:checked + .mxchat-toggle-slider:before {
1223 - transform: translateX(-26px);
1224 -}
1225 -
1226 -.rtl input:indeterminate + .mxchat-toggle-slider:before {
1227 - transform: translateX(-13px);
1228 -}
1229 -
1230 -.rtl .mxchat-error-notice {
1231 - border-left: none;
1232 - border-right: 3px solid #f44336;
1233 -}
1234 -
1235 -.rtl .mxchat-records-table th,
1236 -.rtl .mxchat-records-table td {
1237 - text-align: right;
1238 -}
1239 -
1240 -.rtl .mxchat-search-group .dashicons {
1241 - left: auto;
1242 - right: 12px;
1243 -}
1244 -
1245 -.rtl .mxchat-search-group input {
1246 - padding-left: 12px;
1247 - padding-right: 40px;
1248 -}
1249 -
1250 -
1251 -
1252 -
1253 -
1254 -
1255 -
1256 -
1257 -
1258 -
1259 -
1260 -
1261 -
1262 -
1263 -
1264 -
1265 -
1266 -
1267 -
1268 -
1269 -
1270 -
1271 -
1272 -
1273 -
1274 -
1275 -
1276 -
1277 -/* ===== Modal Styles ===== */
1278 -.mxchat-kb-modal {
1279 - display: none;
1280 - position: fixed;
1281 - top: 0;
1282 - left: 0;
1283 - width: 100%;
1284 - height: 100%;
1285 - background-color: rgba(0, 0, 0, 0.7);
1286 - z-index: 999999;
1287 - overflow: auto;
1288 - justify-content: center;
1289 - align-items: center;
1290 -}
1291 -
1292 -.mxchat-kb-modal.active {
392 +.mxchat-status-header {
1293 393 display: flex;
1294 -}
1295 -
1296 -.mxchat-kb-modal-content {
1297 - position: relative;
1298 - background-color: #fff;
1299 - margin: 24px auto;
1300 - padding: 0;
1301 - border-radius: 8px;
1302 - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1303 - width: 90%;
1304 - max-width: 1000px;
1305 - /* The box is the ONLY place height is constrained; children flex within it.
1306 - dvh tracks the real visible viewport on mobile (vh line = older-browser fallback). */
1307 - max-height: 85vh;
1308 - max-height: min(85vh, calc(100dvh - 48px));
1309 - display: flex;
1310 - flex-direction: column;
1311 - animation: mxchat-kb-modal-appear 0.3s ease-out;
1312 -}
1313 -
1314 -/* Fixed chrome rows never grow or shrink — the results list is the only scroller. */
1315 -.mxchat-kb-modal-header,
1316 -.mxchat-kb-modal-filters,
1317 -.mxchat-kb-selection-header,
1318 -.mxchat-kb-modal-footer {
1319 - flex: 0 0 auto;
1320 -}
1321 -
1322 -/* The footer holds the primary actions — it can never be squeezed out of the box. */
1323 -.mxchat-kb-modal-footer {
1324 - flex-shrink: 0;
1325 -}
1326 -
1327 -@keyframes mxchat-kb-modal-appear {
1328 - from {
1329 - opacity: 0;
1330 - transform: translateY(-30px);
1331 - }
1332 - to {
1333 - opacity: 1;
1334 - transform: translateY(0);
1335 - }
1336 -}
1337 -
1338 -.mxchat-kb-modal-header {
1339 - display: flex;
394 + justify-content: space-between;
1340 395 align-items: center;
1341 - justify-content: space-between;
1342 - padding: 20px;
1343 - border-bottom: 1px solid #e5e5e5;
1344 - background-color: #f8f9fa;
1345 - border-radius: 8px 8px 0 0;
396 + margin-bottom: 15px;
1346 397 }
1347 398
1348 -.mxchat-kb-modal-header h3 {
1349 - margin: 0;
1350 - font-size: 20px;
1351 - font-weight: 600;
1352 - color: #23282d;
1353 -}
1354 -
1355 -.mxchat-kb-modal-close {
1356 - font-size: 28px;
1357 - font-weight: bold;
1358 - cursor: pointer;
399 +.mxchat-status-details {
400 + margin-top: 10px;
1359 401 color: #666;
1360 - line-height: 1;
1361 - transition: color 0.2s;
1362 402 }
1363 403
1364 -.mxchat-kb-modal-close:hover {
1365 - color: #d63638;
404 +/* Search */
405 +.mxchat-search-form {
406 + position: relative;
1366 407 }
1367 408
1368 -.mxchat-kb-modal-filters {
1369 - padding: 15px 20px;
1370 - background-color: #f8f9fa;
409 +.mxchat-search-group {
410 + position: relative;
1371 411 display: flex;
1372 412 align-items: center;
1373 - justify-content: space-between;
1374 - border-bottom: 1px solid #e5e5e5;
1375 - flex-wrap: wrap;
1376 - gap: 10px;
1377 413 }
1378 414
1379 -.mxchat-kb-search-group {
1380 - position: relative;
1381 - flex: 1;
1382 - min-width: 200px;
1383 - max-width: 400px;
1384 -}
1385 -
1386 -.mxchat-kb-search-group input {
1387 - width: 100%;
1388 - padding: 8px 12px 8px 35px;
1389 - border-radius: 4px;
1390 - border: 1px solid #ddd;
1391 - font-size: 14px;
1392 - transition: border-color 0.2s;
1393 -}
1394 -
1395 -.mxchat-kb-search-group input:focus {
1396 - border-color: #7873f5;
1397 - outline: none;
1398 - box-shadow: 0 0 0 1px #7873f5;
1399 -}
1400 -
1401 -.mxchat-kb-search-group::before {
1402 - content: "\f179";
1403 - font-family: dashicons;
415 +.mxchat-search-group .dashicons {
1404 416 position: absolute;
1405 - left: 10px;
1406 - top: 50%;
1407 - transform: translateY(-50%);
417 + left: 12px;
1408 418 color: #666;
1409 419 }
1410 420
1411 -.mxchat-kb-filter-group {
1412 - display: flex;
1413 - gap: 10px;
1414 - flex-wrap: wrap;
421 +.mxchat-search-group input {
422 + padding-left: 40px;
423 + width: 300px;
1415 424 }
1416 425
1417 -.mxchat-kb-filter-group select {
1418 - padding: 8px 12px;
1419 - border-radius: 4px;
1420 - border: 1px solid #ddd;
1421 - font-size: 14px;
1422 - background-color: white;
1423 - min-width: 150px;
1424 - appearance: none;
1425 - background-repeat: no-repeat;
1426 - background-position: right 10px center;
1427 - padding-right: 30px;
1428 -}
1429 -
1430 -.mxchat-kb-filter-group select:focus {
1431 - border-color: #7873f5;
1432 - outline: none;
1433 - box-shadow: 0 0 0 1px #7873f5;
1434 -}
1435 -
1436 -/* Special style for the "processed" filter */
1437 -#mxchat-kb-processed-filter {
1438 - border-left: 3px solid #1e88e5;
1439 -}
1440 -
1441 -.mxchat-kb-content-selection {
1442 - /* Flexible middle region: header row stays put, the list below scrolls.
1443 - min-height: 0 is load-bearing — without it flex refuses to shrink this
1444 - column and the footer gets pushed out of the box (the mobile bug). */
1445 - flex: 1 1 auto;
1446 - min-height: 0;
426 +/* Header Actions */
427 +.mxchat-card-header {
1447 428 display: flex;
1448 - flex-direction: column;
1449 -}
1450 -
1451 -.mxchat-kb-selection-header {
1452 - display: flex;
1453 429 justify-content: space-between;
1454 430 align-items: center;
1455 - padding: 15px 20px;
1456 - background-color: #f8f9fa;
1457 - border-bottom: 1px solid #eee;
1458 - position: sticky;
1459 - top: 0;
1460 - z-index: 10;
431 + margin-bottom: 20px;
1461 432 }
1462 433
1463 -.mxchat-kb-selection-header label {
434 +.mxchat-header-actions {
1464 435 display: flex;
436 + gap: 16px;
1465 437 align-items: center;
1466 - gap: 8px;
1467 - font-weight: 500;
1468 438 }
1469 439
1470 -.mxchat-kb-selection-count {
1471 - font-size: 14px;
1472 - color: #666;
1473 - font-weight: 500;
440 +/* Pagination */
441 +.mxchat-pagination {
442 + margin-top: 20px;
443 + padding-top: 20px;
444 + text-align: center;
445 + border-top: 1px solid rgba(120, 115, 245, 0.1);
1474 446 }
1475 447
1476 -.mxchat-kb-content-list {
1477 - padding: 0;
1478 - /* The one and only scroller inside the modal. */
1479 - flex: 1 1 auto;
1480 - min-height: 0;
1481 - overflow-y: auto;
1482 -}
1483 -
1484 -.mxchat-kb-content-item {
1485 - display: flex;
1486 - padding: 15px 20px;
1487 - border-bottom: 1px solid #eee;
1488 - transition: background-color 0.2s;
1489 -}
1490 -
1491 -.mxchat-kb-content-item:hover {
1492 - background-color: #f0f7ff;
1493 -}
1494 -
1495 -/* Improved visibility for processed items */
1496 -.mxchat-kb-content-item.processed {
1497 - background-color: #f0f8ff;
1498 - border-left: 3px solid #1e88e5;
1499 -}
1500 -
1501 -.mxchat-kb-content-item.processed:hover {
1502 - background-color: #e3f2fd;
1503 -}
1504 -
1505 -.mxchat-kb-content-checkbox {
1506 - margin-right: 15px;
1507 - display: flex;
1508 - align-items: flex-start;
1509 - padding-top: 3px;
1510 -}
1511 -
1512 -/* Native control, brand-tinted — identical to the "select all" checkbox above the
1513 - list, which carries no custom styling at all and renders correctly.
1514 - Do NOT re-add width / height / border / border-radius / background here. WP admin
1515 - draws the tick as a 21px dashicon positioned with negative margins for its OWN
1516 - default box, so forcing a custom box makes the tick overflow it. That mismatch
1517 - shipped for a long time but was invisible while the tick was white-on-white. */
1518 -.mxchat-kb-content-checkbox input[type="checkbox"] {
1519 - margin: 0;
1520 - cursor: pointer;
1521 - accent-color: var(--mxch-primary, #7873f5);
1522 -}
1523 -
1524 -.mxchat-kb-content-checkbox input[type="checkbox"]:focus-visible {
1525 - outline: 2px solid var(--mxch-primary, #7873f5);
1526 - outline-offset: 2px;
1527 -}
1528 -
1529 -.mxchat-kb-content-details {
1530 - flex: 1;
1531 -}
1532 -
1533 -.mxchat-kb-content-title {
1534 - font-size: 16px;
1535 - font-weight: 600;
1536 - margin-bottom: 8px;
1537 - display: flex;
448 +.mxchat-pagination .page-numbers {
449 + display: inline-flex;
1538 450 align-items: center;
1539 - flex-wrap: wrap;
1540 - gap: 8px;
1541 -}
1542 -
1543 -.mxchat-kb-content-title a {
1544 - color: #7873f5;
451 + 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;
1545 460 text-decoration: none;
461 + transition: all 0.2s ease;
1546 462 }
1547 463
1548 -.mxchat-kb-content-title a:hover {
1549 - color: #fa73e6;
1550 - text-decoration: underline;
1551 -}
1552 -
1553 -/* Style for processed badge */
1554 -.mxchat-kb-processed-badge {
1555 - display: inline-block;
1556 - background-color: #1e88e5;
1557 - color: white;
1558 - font-size: 11px;
1559 - padding: 2px 8px;
1560 - border-radius: 10px;
1561 - font-weight: normal;
1562 -}
1563 -
1564 -/* Style for unprocessed badge */
1565 -.mxchat-kb-unprocessed-badge {
1566 - display: inline-block;
1567 - background-color: #607d8b;
1568 - color: white;
1569 - font-size: 11px;
1570 - padding: 2px 8px;
1571 - border-radius: 10px;
1572 - font-weight: normal;
1573 -}
1574 -
1575 -/* Last updated timestamp */
1576 -.mxchat-kb-last-updated {
1577 - font-size: 11px;
1578 - color: #666;
1579 - font-style: italic;
1580 - margin-left: 8px;
1581 -}
1582 -
1583 -.mxchat-kb-content-meta {
1584 - display: flex;
1585 - flex-wrap: wrap;
1586 - gap: 15px;
1587 - color: #666;
1588 - font-size: 13px;
1589 - margin-bottom: 8px;
1590 -}
1591 -
1592 -.mxchat-kb-content-excerpt {
1593 - color: #555;
1594 - font-size: 14px;
1595 - line-height: 1.5;
1596 -}
1597 -
1598 -.mxchat-kb-modal-footer {
1599 - padding: 15px 20px;
1600 - border-top: 1px solid #e5e5e5;
1601 - display: flex;
1602 - justify-content: space-between;
1603 - align-items: center;
1604 - gap: 15px;
1605 - background-color: #f8f9fa;
1606 - border-radius: 0 0 8px 8px;
1607 -}
1608 -
1609 -.mxchat-kb-modal-footer .mxchat-kb-pagination {
1610 - flex: 1;
1611 - margin: 0;
1612 - padding: 0;
1613 - text-align: left;
1614 -}
1615 -
1616 -.mxchat-kb-footer-actions {
1617 - display: flex;
1618 - gap: 10px;
1619 - flex-shrink: 0;
1620 -}
1621 -
1622 -.mxchat-kb-button-primary,
1623 -.mxchat-kb-button-secondary {
1624 - padding: 8px 15px;
1625 - border-radius: 4px;
1626 - font-size: 14px;
1627 - cursor: pointer;
1628 - font-weight: 500;
1629 - text-align: center;
1630 - transition: all 0.2s;
1631 -}
1632 -
1633 -.mxchat-kb-button-primary {
464 +.mxchat-pagination .page-numbers.current {
1634 465 background: linear-gradient(135deg, #fa73e6, #7873f5);
1635 466 color: white;
1636 467 border: none;
1637 468 }
1638 469
1639 -.mxchat-kb-button-primary:hover {
1640 - background: linear-gradient(135deg, #e56dd6, #6b67db);
1641 -}
1642 -
1643 -.mxchat-kb-button-primary:disabled {
1644 - background-color: #a7a7a7;
1645 - cursor: not-allowed;
1646 -}
1647 -
1648 -/* Update mode for the process button */
1649 -#mxchat-kb-process-selected.update-mode {
1650 - background-color: #ff9800;
1651 -}
1652 -
1653 -#mxchat-kb-process-selected.update-mode:hover {
1654 - background-color: #f57c00;
1655 -}
1656 -
1657 -/* Mixed mode for the process button */
1658 -#mxchat-kb-process-selected.mixed-mode {
1659 - background-color: #9c27b0;
1660 -}
1661 -
1662 -#mxchat-kb-process-selected.mixed-mode:hover {
1663 - background-color: #7b1fa2;
1664 -}
1665 -
1666 -.mxchat-kb-button-secondary {
1667 - background-color: #f6f7f7;
1668 - color: #2c3338;
1669 - border: 1px solid #ddd;
1670 -}
1671 -
1672 -.mxchat-kb-button-secondary:hover {
1673 - background-color: #f0f0f0;
1674 - border-color: #c3c4c7;
1675 -}
1676 -
1677 -.mxchat-kb-pagination {
1678 - padding: 15px 20px;
1679 - border-top: 1px solid #eee;
1680 - text-align: center;
1681 -}
1682 -
1683 -.mxchat-kb-pagination-links {
1684 - display: flex;
1685 - justify-content: center;
1686 - align-items: center;
1687 - gap: 5px;
1688 - flex-wrap: wrap;
1689 -}
1690 -
1691 -.mxchat-kb-page-link {
1692 - padding: 5px 10px;
1693 - text-decoration: none;
1694 - border: 1px solid #ddd;
1695 - color: #7873f5;
1696 - border-radius: 3px;
1697 - transition: all 0.2s;
1698 -}
1699 -
1700 -.mxchat-kb-page-link:hover {
1701 - background-color: #f0f0f0;
1702 - color: #fa73e6;
1703 - border-color: #c3c4c7;
1704 -}
1705 -
1706 -.mxchat-kb-page-current {
1707 - padding: 5px 10px;
1708 - background: linear-gradient(135deg, #fa73e6, #7873f5);
1709 - color: white;
1710 - border-radius: 3px;
1711 - font-weight: 500;
1712 -}
1713 -
1714 -/* ===== Loading and Error States ===== */
1715 -.mxchat-kb-no-results,
1716 -.mxchat-kb-error {
1717 - padding: 30px;
1718 - text-align: center;
1719 - color: #666;
1720 - font-size: 14px;
1721 -}
1722 -
1723 -.mxchat-kb-error {
1724 - color: #d63638;
1725 -}
1726 -
1727 -.mxchat-kb-loading {
1728 - display: flex;
1729 - flex-direction: column;
1730 - align-items: center;
1731 - justify-content: center;
1732 - padding: 50px;
1733 - color: #666;
1734 -}
1735 -
1736 -.mxchat-kb-spinner {
1737 - display: inline-block;
1738 - width: 50px;
1739 - height: 50px;
1740 - border: 5px solid #f3f3f3;
1741 - border-top: 5px solid #7873f5;
1742 - border-radius: 50%;
1743 - animation: mxchat-kb-spin 1s linear infinite;
1744 - margin: 0 0 10px 0;
1745 -}
1746 -
1747 -@keyframes mxchat-kb-spin {
1748 - 0% { transform: rotate(0deg); }
1749 - 100% { transform: rotate(360deg); }
1750 -}
1751 -
1752 -.mxchat-kb-progress-bar {
1753 - height: 8px;
1754 - background-color: #f0f0f0;
1755 - border-radius: 4px;
1756 - margin: 10px 0 15px;
1757 - overflow: hidden;
1758 -}
1759 -
1760 -.mxchat-kb-progress-fill {
1761 - height: 100%;
1762 - background: linear-gradient(135deg, #fa73e6, #7873f5);
1763 - transition: width 0.3s ease;
1764 -}
1765 -
1766 -.mxchat-kb-current-item {
1767 - font-size: 14px;
1768 - color: #555;
1769 - margin: 10px 0 0;
1770 - font-style: italic;
1771 -}
1772 -
1773 -.mxchat-kb-results-details {
1774 - margin-top: 15px;
1775 - text-align: left;
1776 - max-height: 200px;
1777 - overflow-y: auto;
1778 - padding: 10px;
1779 - border-radius: 4px;
1780 -}
1781 -
1782 -.mxchat-kb-results-details h5 {
1783 - margin-top: 0;
1784 - margin-bottom: 10px;
1785 - color: #d63638;
1786 -}
1787 -
1788 -.mxchat-kb-results-details ul {
1789 - margin: 0;
1790 - padding-left: 20px;
1791 -}
1792 -
1793 -.mxchat-kb-results-details li {
1794 - margin-bottom: 5px;
1795 -}
1796 -
1797 -/* ===== Processing Overlay ===== */
1798 -.mxchat-kb-processing-overlay {
1799 - position: fixed;
1800 - top: 0;
1801 - left: 0;
1802 - width: 100%;
1803 - height: 100%;
1804 - background-color: rgba(0, 0, 0, 0.7);
1805 - z-index: 9999999;
1806 - display: flex;
1807 - justify-content: center;
1808 - align-items: center;
1809 -}
1810 -
1811 -.mxchat-kb-processing-content {
1812 - background-color: white;
1813 - padding: 30px;
1814 - border-radius: 8px;
1815 - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
1816 - text-align: center;
1817 - max-width: 500px;
1818 - width: 90%;
1819 -}
1820 -
1821 -.mxchat-kb-processing-content h3 {
1822 - margin-top: 0;
1823 - margin-bottom: 15px;
1824 - font-size: 20px;
1825 - color: #7873f5;
1826 -}
1827 -
1828 -.mxchat-kb-processing-status {
1829 - color: #555;
1830 - margin-bottom: 20px;
1831 -}
1832 -
1833 -/* ===== Utility Classes ===== */
1834 -.mxchat-na {
1835 - color: #999;
1836 - font-style: italic;
1837 -}
1838 -
1839 -.mxchat-no-records {
1840 - text-align: center;
1841 - color: #666;
1842 - padding: 40px !important;
1843 -}
1844 -
1845 -/* ===== Responsive Design ===== */
470 +/* Responsive Design */
1846 471 @media screen and (max-width: 782px) {
1847 - /* Hero section */
1848 472 div.mxchat-hero h1.mxchat-main-title {
1849 473 font-size: 2.5rem;
1850 474 }
1851 475
@@ -1869,19 +493,9 @@
1869 493
1870 494 .mxchat-search-group input {
1871 495 width: 100%;
1872 496 }
1873 -
1874 - /* ADDED 2.5.6: Responsive filter dropdown */
1875 - .mxchat-filter-group {
1876 - margin-left: 0;
1877 - width: 100%;
1878 - }
1879 -
1880 - .mxchat-filter-group select {
1881 - width: 100%;
1882 - }
1883 -
497 +
1884 498 .mxchat-url-input-group {
1885 499 flex-direction: column;
1886 500 }
1887 501
@@ -1892,2192 +506,18 @@
1892 506
1893 507 .mxchat-content-cell {
1894 508 max-width: 200px;
1895 509 }
1896 -
1897 - /* Modal responsive adjustments */
1898 - .mxchat-kb-modal-content {
1899 - width: 95%;
1900 - /* dvh = real visible viewport (mobile vh includes the URL-bar region);
1901 - vh line is the older-browser fallback. */
1902 - max-height: calc(100vh - 24px);
1903 - max-height: calc(100dvh - 24px);
1904 - margin: 12px auto;
1905 - /* Last-resort scroll: on extreme-short viewports (landscape phones)
1906 - the compacted chrome + the list's floor can still exceed the box —
1907 - scroll inside the box rather than clipping the footer. */
1908 - overflow-y: auto;
1909 - }
1910 -
1911 - /* Compact the fixed chrome on mobile — stacked filters + a stacked footer
1912 - are tall, and every saved pixel goes to the content list. */
1913 - .mxchat-kb-modal-header {
1914 - padding: 12px 16px;
1915 - }
1916 -
1917 - .mxchat-kb-modal-header h3 {
1918 - font-size: 16px;
1919 - }
1920 -
1921 - .mxchat-kb-modal-filters {
1922 - flex-direction: column;
1923 - align-items: stretch;
1924 - padding: 10px 16px;
1925 - gap: 8px;
1926 - }
1927 -
1928 - .mxchat-kb-search-group {
1929 - max-width: none;
1930 - }
1931 -
1932 - .mxchat-kb-filter-group {
1933 - flex-direction: column;
1934 - gap: 8px;
1935 - }
1936 -
1937 - .mxchat-kb-filter-group select {
1938 - padding: 6px 30px 6px 10px;
1939 - }
1940 -
1941 - .mxchat-kb-selection-header {
1942 - flex-direction: column;
1943 - align-items: flex-start;
1944 - gap: 6px;
1945 - padding: 10px 16px;
1946 - }
1947 -
1948 - /* Guarantee a usable slice of visible rows — reachable buttons are no
1949 - help if there is nothing to select above them. */
1950 - .mxchat-kb-content-list {
1951 - min-height: 96px;
1952 - }
1953 -
1954 - .mxchat-kb-content-item {
1955 - padding: 10px 16px;
1956 - }
1957 -
1958 - .mxchat-kb-modal-footer {
1959 - flex-direction: column;
1960 - gap: 8px;
1961 - padding: 10px 16px;
1962 - }
1963 -
1964 - .mxchat-kb-modal-footer .mxchat-kb-pagination {
1965 - width: 100%;
1966 - text-align: center;
1967 - }
1968 -
1969 - .mxchat-kb-footer-actions {
1970 - width: 100%;
1971 - flex-direction: column;
1972 - }
1973 -
1974 - .mxchat-kb-button-primary,
1975 - .mxchat-kb-button-secondary {
1976 - width: 100%;
1977 - }
1978 -
1979 - /* Import methods grid */
1980 - .mxchat-import-methods-grid {
1981 - grid-template-columns: 1fr;
1982 - }
1983 -
1984 - /* Primary import card */
1985 - .mxchat-featured-button {
1986 - width: 100%;
1987 - }
1988 510 }
1989 511
1990 -/* ===== Notification Styles ===== */
1991 -
1992 -/* Base notification style */
1993 -.mxchat-kb-notification {
1994 - margin: 15px 20px 15px;
1995 - padding: 15px;
1996 - border-radius: 6px;
1997 - border-left: 4px solid;
1998 - position: relative;
1999 - animation: mxchat-kb-notification-appear 0.3s ease-out;
2000 -}
2001 -
2002 -@keyframes mxchat-kb-notification-appear {
2003 - from {
2004 - opacity: 0;
2005 - transform: translateY(-10px);
2006 - }
2007 - to {
2008 - opacity: 1;
2009 - transform: translateY(0);
2010 - }
2011 -}
2012 -
2013 -/* Success notification */
2014 -.mxchat-kb-notification.success {
2015 - background-color: #f0f9eb;
2016 - border-color: #67c23a;
2017 - color: #3c763d;
2018 -}
2019 -
2020 -.mxchat-kb-notification.success h4 {
2021 - color: #67c23a;
2022 - margin: 0 0 5px;
2023 - font-size: 16px;
2024 - font-weight: 600;
2025 -}
2026 -
2027 -.mxchat-kb-notification.success::before {
2028 - content: "\f147";
2029 - font-family: dashicons;
2030 - position: absolute;
2031 - right: 15px;
2032 - top: 15px;
2033 - color: #67c23a;
2034 - font-size: 20px;
2035 -}
2036 -
2037 -/* Error notification */
2038 -.mxchat-kb-notification.error {
2039 - background-color: #fef0f0;
2040 - border-color: #d63638;
2041 - color: #a94442;
2042 -}
2043 -
2044 -.mxchat-kb-notification.error h4 {
2045 - color: #d63638;
2046 - margin: 0 0 5px;
2047 - font-size: 16px;
2048 - font-weight: 600;
2049 -}
2050 -
2051 -.mxchat-kb-notification.error::before {
2052 - content: "\f335";
2053 - font-family: dashicons;
2054 - position: absolute;
2055 - right: 15px;
2056 - top: 15px;
2057 - color: #d63638;
2058 - font-size: 20px;
2059 -}
2060 -
2061 -/* Warning notification */
2062 -.mxchat-kb-notification.warning {
2063 - background-color: #fdf6ec;
2064 - border-color: #ff9800;
2065 - color: #8a6d3b;
2066 -}
2067 -
2068 -.mxchat-kb-notification.warning h4 {
2069 - color: #ff9800;
2070 - margin: 0 0 5px;
2071 - font-size: 16px;
2072 - font-weight: 600;
2073 -}
2074 -
2075 -.mxchat-kb-notification.warning::before {
2076 - content: "\f534";
2077 - font-family: dashicons;
2078 - position: absolute;
2079 - right: 15px;
2080 - top: 15px;
2081 - color: #ff9800;
2082 - font-size: 20px;
2083 -}
2084 -
2085 -/* Info notification */
2086 -.mxchat-kb-notification.info {
2087 - background-color: #f4f4fd;
2088 - border-color: #7873f5;
2089 - color: #31708f;
2090 -}
2091 -
2092 -.mxchat-kb-notification.info h4 {
2093 - color: #7873f5;
2094 - margin: 0 0 5px;
2095 - font-size: 16px;
2096 - font-weight: 600;
2097 -}
2098 -
2099 -.mxchat-kb-notification.info::before {
2100 - content: "\f348";
2101 - font-family: dashicons;
2102 - position: absolute;
2103 - right: 15px;
2104 - top: 15px;
2105 - color: #7873f5;
2106 - font-size: 20px;
2107 -}
2108 -
2109 -/* Close button for notifications */
2110 -.mxchat-kb-notification-close {
2111 - position: absolute;
2112 - top: 10px;
2113 - right: 10px;
2114 - cursor: pointer;
2115 - color: inherit;
2116 - opacity: 0.7;
2117 - font-size: 16px;
2118 - line-height: 1;
2119 - transition: opacity 0.2s;
2120 -}
2121 -
2122 -.mxchat-kb-notification-close:hover {
2123 - opacity: 1;
2124 -}
2125 -
2126 -/* Results details section */
2127 -.mxchat-kb-results-details {
2128 - margin-top: 12px;
2129 - padding: 12px;
2130 - border-radius: 4px;
2131 - font-size: 13px;
2132 - line-height: 1.5;
2133 -}
2134 -
2135 -.mxchat-kb-notification.success .mxchat-kb-results-details {
2136 - background-color: rgba(103, 194, 58, 0.05);
2137 - border: 1px solid rgba(103, 194, 58, 0.2);
2138 -}
2139 -
2140 -.mxchat-kb-notification.error .mxchat-kb-results-details {
2141 -
2142 -}
2143 -
2144 -.mxchat-kb-notification.warning .mxchat-kb-results-details {
2145 - background-color: rgba(255, 152, 0, 0.05);
2146 - border: 1px solid rgba(255, 152, 0, 0.2);
2147 -}
2148 -
2149 -.mxchat-kb-notification.info .mxchat-kb-results-details {
2150 - background-color: rgba(120, 115, 245, 0.05);
2151 - border: 1px solid rgba(120, 115, 245, 0.2);
2152 -}
2153 -
2154 -/* Results details title */
2155 -.mxchat-kb-results-details h5 {
2156 - margin: 0 0 10px;
2157 - font-size: 14px;
2158 - font-weight: 600;
2159 -}
2160 -
2161 -.mxchat-kb-notification.success .mxchat-kb-results-details h5 {
2162 - color: #3c763d;
2163 -}
2164 -
2165 -.mxchat-kb-notification.error .mxchat-kb-results-details h5 {
2166 - color: #a94442;
2167 -}
2168 -
2169 -.mxchat-kb-notification.warning .mxchat-kb-results-details h5 {
2170 - color: #8a6d3b;
2171 -}
2172 -
2173 -.mxchat-kb-notification.info .mxchat-kb-results-details h5 {
2174 - color: #31708f;
2175 -}
2176 -
2177 -/* List items in results details */
2178 -.mxchat-kb-results-details ul {
2179 - margin: 0;
2180 - padding-left: 20px;
2181 - list-style-type: disc;
2182 -}
2183 -
2184 -.mxchat-kb-results-details li {
2185 - margin-bottom: 8px;
2186 - padding-left: 3px;
2187 -}
2188 -
2189 -.mxchat-kb-results-details li:last-child {
2190 - margin-bottom: 0;
2191 -}
2192 -
2193 -.mxchat-kb-results-details li strong {
2194 - font-weight: 600;
2195 -}
2196 -
2197 -/* Failed items specific styling */
2198 -.mxchat-kb-results-details li.failed-item {
2199 - color: #d63638;
2200 -}
2201 -
2202 -/* Success items specific styling */
2203 -.mxchat-kb-results-details li.success-item {
2204 - color: #67c23a;
2205 -}
2206 -
2207 -/* Updated items specific styling */
2208 -.mxchat-kb-results-details li.updated-item {
2209 - color: #1e88e5;
2210 -}
2211 -
2212 -/* Processing summary information */
2213 -.mxchat-kb-processing-summary {
2214 - display: flex;
2215 - flex-wrap: wrap;
2216 - gap: 15px;
2217 - margin-top: 10px;
2218 - font-size: 14px;
2219 -}
2220 -
2221 -.mxchat-kb-summary-item {
2222 - display: flex;
2223 - align-items: center;
2224 - gap: 5px;
2225 -}
2226 -
2227 -.mxchat-kb-summary-item .dashicons {
2228 - font-size: 18px;
2229 -}
2230 -
2231 -.mxchat-kb-summary-item.processed .dashicons {
2232 - color: #67c23a;
2233 -}
2234 -
2235 -.mxchat-kb-summary-item.updated .dashicons {
2236 - color: #1e88e5;
2237 -}
2238 -
2239 -.mxchat-kb-summary-item.failed .dashicons {
2240 - color: #d63638;
2241 -}
2242 -
2243 -/* Show more/less toggle for details */
2244 -.mxchat-kb-show-details {
2245 - display: inline-block;
2246 - margin-top: 8px;
2247 - color: #7873f5;
2248 - cursor: pointer;
2249 - font-size: 13px;
2250 - font-weight: 500;
2251 -}
2252 -
2253 -.mxchat-kb-show-details:hover {
2254 - text-decoration: underline;
2255 -}
2256 -
2257 -.mxchat-kb-show-details .dashicons {
2258 - font-size: 16px;
2259 - vertical-align: middle;
2260 - margin-right: 2px;
2261 -}
2262 -
2263 -/* Collapsible details section */
2264 -.mxchat-kb-results-details.collapsed {
2265 - display: none;
2266 -}
2267 -
2268 -/* Responsive styles for notifications */
2269 -@media screen and (max-width: 782px) {
2270 - .mxchat-kb-notification {
2271 - margin: 10px 15px 0;
2272 - padding: 12px;
2273 - }
2274 -
2275 - .mxchat-kb-notification::before {
2276 - display: none;
2277 - }
2278 -
2279 - .mxchat-kb-processing-summary {
2280 - flex-direction: column;
2281 - gap: 8px;
2282 - }
2283 -}
2284 -
2285 -
2286 -
2287 -
2288 -
2289 -/* Tab Navigation */
2290 -.mxchat-kb-tabs-nav {
2291 - display: flex;
2292 - margin-bottom: 20px;
2293 - border-bottom: 1px solid #ccc;
2294 -}
2295 -
2296 -.mxchat-kb-tab-button {
2297 - padding: 10px 15px;
2298 - background: #f1f1f1;
2299 - border: 1px solid #ccc;
2300 - border-bottom: none;
2301 - margin-right: 5px;
2302 - cursor: pointer;
2303 - font-weight: 500;
2304 - border-radius: 5px 5px 0 0;
2305 -}
2306 -
2307 -.mxchat-kb-tab-button.active {
2308 - background: #fff;
2309 - border-bottom: 2px solid #fff;
2310 - position: relative;
2311 - bottom: -1px;
2312 - color: #2271b1;
2313 -}
2314 -
2315 -/* Tab Content */
2316 -.mxchat-kb-tab-content {
2317 - display: none;
2318 -}
2319 -
2320 -.mxchat-kb-tab-content.active {
2321 - display: block;
2322 -}
2323 -
2324 -/* Make the first card in tabs not have top margin */
2325 -.mxchat-kb-tab-content .mxchat-card:first-child {
2326 - margin-top: 0;
2327 -}
2328 -
2329 -
2330 -
2331 -
2332 -
2333 -
2334 -/* Pinecone Settings Tab Styles */
2335 -.mxchat-pinecone-info-box {
2336 - background: #f8f9ff;
2337 - border: 1px solid rgba(120, 115, 245, 0.2);
2338 - border-radius: 10px;
2339 - padding: 20px;
2340 - margin: 20px 0;
2341 - display: flex;
2342 - align-items: flex-start;
2343 - gap: 15px;
2344 -}
2345 -
2346 -.mxchat-info-icon {
2347 - flex-shrink: 0;
2348 -}
2349 -
2350 -.mxchat-info-icon .dashicons {
2351 - color: #7873f5;
2352 - font-size: 24px;
2353 - width: 24px;
2354 - height: 24px;
2355 -}
2356 -
2357 -.mxchat-info-content {
2358 - flex: 1;
2359 -}
2360 -
2361 -.mxchat-info-content h4 {
2362 - margin: 0 0 10px 0;
2363 - color: #333;
2364 - font-size: 16px;
2365 -}
2366 -
2367 -.mxchat-info-content p {
2368 - margin: 0 0 8px 0;
2369 - color: #666;
2370 - font-size: 14px;
2371 - line-height: 1.5;
2372 -}
2373 -
2374 -.mxchat-info-content p:last-child {
2375 - margin-bottom: 0;
2376 -}
2377 -
2378 -.mxchat-info-content a {
2379 - color: #7873f5;
2380 - text-decoration: none;
2381 - font-weight: 500;
2382 -}
2383 -
2384 -.mxchat-info-content a:hover {
2385 - text-decoration: underline;
2386 -}
2387 -
2388 -/* Database Settings Form */
2389 -.mxchat-database-settings-form {
2390 - margin-top: 25px;
2391 -}
2392 -
2393 -/* Toggle Container */
2394 -.mxchat-toggle-container {
2395 - display: flex;
2396 - align-items: center;
2397 - gap: 12px;
2398 - margin: 20px 0;
2399 - padding: 15px 0;
2400 - border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2401 -}
2402 -
2403 -.mxchat-toggle-switch {
2404 - position: relative;
2405 - display: inline-block;
2406 - width: 50px;
2407 - height: 26px;
2408 -}
2409 -
2410 -.mxchat-toggle-switch input {
2411 - opacity: 0;
2412 - width: 0;
2413 - height: 0;
2414 -}
2415 -
2416 -.mxchat-toggle-slider {
2417 - position: absolute;
2418 - cursor: pointer;
2419 - top: 0;
2420 - left: 0;
2421 - right: 0;
2422 - bottom: 0;
2423 - background-color: #ddd;
2424 - transition: 0.3s;
2425 - border-radius: 26px;
2426 -}
2427 -
2428 -.mxchat-toggle-slider:before {
2429 - position: absolute;
2430 - content: "";
2431 - height: 20px;
2432 - width: 20px;
2433 - left: 3px;
2434 - bottom: 3px;
2435 - background-color: white;
2436 - transition: 0.3s;
2437 - border-radius: 50%;
2438 - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
2439 -}
2440 -
2441 -input:checked + .mxchat-toggle-slider {
2442 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2443 -}
2444 -
2445 -input:checked + .mxchat-toggle-slider:before {
2446 - transform: translateX(24px);
2447 -}
2448 -
2449 -.mxchat-toggle-label {
2450 - font-weight: 500;
2451 - color: #333;
2452 - font-size: 15px;
2453 -}
2454 -
2455 -/* Pinecone Settings Section */
2456 -.mxchat-pinecone-settings {
2457 - background: #f8f9ff;
2458 - border: 1px solid rgba(120, 115, 245, 0.2);
2459 - border-radius: 10px;
2460 - padding: 25px;
2461 - margin: 20px 0;
2462 -}
2463 -
2464 -/* Knowledge Warning (Success State) */
2465 -.mxchat-knowledge-warning.success {
2466 - background: #edfaef;
2467 - border-left: 4px solid #46b450;
2468 - padding: 15px;
2469 - margin: 0 0 20px 0;
2470 - border-radius: 4px;
2471 -}
2472 -
2473 -.mxchat-knowledge-warning.success p {
2474 - margin: 0;
2475 - color: #2a4f30;
2476 - align-items: center;
2477 - gap: 8px;
2478 -}
2479 -
2480 -.mxchat-knowledge-warning.success .dashicons {
2481 - color: #46b450;
2482 -}
2483 -
2484 -/* Form Groups */
2485 -.mxchat-form-group {
2486 - margin-bottom: 20px;
2487 -}
2488 -
2489 -.mxchat-form-group label {
2490 - display: block;
2491 - margin-bottom: 8px;
2492 - color: #333;
2493 - font-weight: 500;
2494 - font-size: 14px;
2495 -}
2496 -
2497 -.mxchat-form-group label .required {
2498 - color: #dc3232;
2499 - margin-left: 4px;
2500 -}
2501 -
2502 -.mxchat-form-group input[type="text"],
2503 -.mxchat-form-group input[type="password"] {
2504 - width: 100%;
2505 - max-width: 400px;
2506 - padding: 10px 12px;
2507 - border: 1px solid rgba(120, 115, 245, 0.2);
2508 - border-radius: 6px;
2509 - background: white;
2510 - font-size: 14px;
2511 - transition: border-color 0.2s ease, box-shadow 0.2s ease;
2512 -}
2513 -
2514 -.mxchat-form-group input[type="text"]:focus,
2515 -.mxchat-form-group input[type="password"]:focus {
2516 - border-color: #7873f5;
2517 - outline: none;
2518 - box-shadow: 0 0 0 2px rgba(120, 115, 245, 0.1);
2519 -}
2520 -
2521 -.mxchat-form-group .description {
2522 - margin: 8px 0 0 0;
2523 - color: #666;
2524 - font-size: 13px;
2525 - line-height: 1.4;
2526 -}
2527 -
2528 -.mxchat-form-group .description a {
2529 - color: #7873f5;
2530 - text-decoration: none;
2531 - font-weight: 500;
2532 -}
2533 -
2534 -.mxchat-form-group .description a:hover {
2535 - text-decoration: underline;
2536 -}
2537 -
2538 -/* Setup Help Section */
2539 -.mxchat-pinecone-setup-help {
2540 - background: white;
2541 - border: 1px solid rgba(120, 115, 245, 0.1);
2542 - border-radius: 8px;
2543 - padding: 20px;
2544 - margin-top: 25px;
2545 -}
2546 -
2547 -.mxchat-pinecone-setup-help h3 {
2548 - margin: 0 0 15px 0;
2549 - color: #333;
2550 - font-size: 16px;
2551 -}
2552 -
2553 -.mxchat-pinecone-setup-help ol {
2554 - margin: 0;
2555 - padding-left: 20px;
2556 -}
2557 -
2558 -.mxchat-pinecone-setup-help li {
2559 - margin-bottom: 12px;
2560 - color: #666;
2561 - line-height: 1.5;
2562 -}
2563 -
2564 -.mxchat-pinecone-setup-help li:last-child {
2565 - margin-bottom: 0;
2566 -}
2567 -
2568 -.mxchat-pinecone-setup-help ul {
2569 - margin: 8px 0;
2570 - padding-left: 20px;
2571 -}
2572 -
2573 -.mxchat-pinecone-setup-help ul li {
2574 - margin-bottom: 6px;
2575 - font-size: 13px;
2576 -}
2577 -
2578 -.mxchat-pinecone-setup-help a {
2579 - color: #7873f5;
2580 - text-decoration: none;
2581 - font-weight: 500;
2582 -}
2583 -
2584 -.mxchat-pinecone-setup-help a:hover {
2585 - text-decoration: underline;
2586 -}
2587 -
2588 -/* Connection Status Section */
2589 -.mxchat-pinecone-status-section {
2590 - background: white;
2591 - border: 1px solid rgba(120, 115, 245, 0.1);
2592 - border-radius: 8px;
2593 - padding: 20px;
2594 - margin-top: 25px;
2595 -}
2596 -
2597 -.mxchat-pinecone-status-section h3 {
2598 - margin: 0 0 15px 0;
2599 - color: #333;
2600 - font-size: 16px;
2601 -}
2602 -
2603 -#mxchat-pinecone-test-connection {
2604 - margin-bottom: 15px;
2605 -}
2606 -
2607 -#test-pinecone-connection {
2608 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2609 - color: white;
2610 - border: none;
2611 - padding: 10px 20px;
2612 - border-radius: 6px;
2613 - cursor: pointer;
2614 - font-size: 14px;
2615 - font-weight: 500;
2616 - transition: all 0.2s ease;
2617 -}
2618 -
2619 -#test-pinecone-connection:hover:not(:disabled) {
2620 - transform: translateY(-1px);
2621 - box-shadow: 0 4px 12px rgba(120, 115, 245, 0.3);
2622 -}
2623 -
2624 -#test-pinecone-connection:disabled {
2625 - opacity: 0.6;
2626 - cursor: not-allowed;
2627 - transform: none;
2628 -}
2629 -
2630 -/* Test Result Styles */
2631 -.mxchat-test-result {
2632 - margin-top: 15px;
2633 -}
2634 -
2635 -.mxchat-test-result .notice {
2636 - margin: 0;
2637 - padding: 12px 15px;
2638 - border-radius: 6px;
2639 - display: flex;
2640 - align-items: center;
2641 - gap: 8px;
2642 -}
2643 -
2644 -.mxchat-test-result .notice-success {
2645 - background: #edfaef;
2646 - border-left: 4px solid #46b450;
2647 - color: #2a4f30;
2648 -}
2649 -
2650 -.mxchat-test-result .notice-error {
2651 - background: #fbeaea;
2652 - border-left: 4px solid #dc3232;
2653 - color: #721c24;
2654 -}
2655 -
2656 -.mxchat-test-result .notice .dashicons {
2657 - flex-shrink: 0;
2658 -}
2659 -
2660 -.mxchat-test-result .notice p {
2661 - margin: 0;
2662 - font-size: 14px;
2663 -}
2664 -
2665 -/* Compatibility Notice */
2666 -.mxchat-pinecone-compatibility-notice {
2667 - background: #e8f4ff;
2668 - border-left: 4px solid #2196f3;
2669 - padding: 15px;
2670 - margin: 0 0 20px 0;
2671 - border-radius: 4px;
2672 -}
2673 -
2674 -.mxchat-pinecone-compatibility-notice p {
2675 - margin: 0;
2676 - color: #1565c0;
2677 - font-size: 14px;
2678 - line-height: 1.5;
2679 -}
2680 -
2681 -/* Responsive Design */
2682 -@media screen and (max-width: 782px) {
2683 - .mxchat-pinecone-info-box {
2684 - flex-direction: column;
2685 - gap: 10px;
2686 - }
2687 -
2688 - .mxchat-toggle-container {
2689 - flex-direction: column;
2690 - align-items: flex-start;
2691 - gap: 8px;
2692 - }
2693 -
2694 - .mxchat-form-group input[type="text"],
2695 - .mxchat-form-group input[type="password"] {
2696 - max-width: 100%;
2697 - }
2698 -
2699 - .mxchat-pinecone-settings {
2700 - padding: 15px;
2701 - }
2702 -
2703 - .mxchat-pinecone-setup-help,
2704 - .mxchat-pinecone-status-section {
2705 - padding: 15px;
2706 - }
2707 -}
2708 -
2709 -
2710 -/* Setup Steps */
2711 -.mxchat-setup-steps {
2712 - margin: 30px 0;
2713 - padding: 20px;
2714 - background: #fff;
2715 - border-radius: 10px;
2716 -}
2717 -
2718 -.mxchat-setup-step {
2719 - display: flex;
2720 - align-items: flex-start;
2721 - margin-bottom: 20px;
2722 -}
2723 -
2724 -.step-number {
2725 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2726 - color: white;
2727 - width: 28px;
2728 - height: 28px;
2729 - border-radius: 50%;
2730 - display: flex;
2731 - align-items: center;
2732 - justify-content: center;
2733 - font-weight: bold;
2734 - margin-right: 15px;
2735 - flex-shrink: 0;
2736 -}
2737 -
2738 -.step-content {
2739 - flex: 1;
2740 -}
2741 -
2742 -.step-content h4 {
2743 - margin: 0 0 5px 0;
2744 -}
2745 -
2746 -.step-content p {
2747 - margin: 0;
2748 - color: #666;
2749 -}
2750 -
2751 -.step-content ul {
2752 - margin-top: 5px;
2753 - margin-bottom: 0;
2754 - color: #666;
2755 -}
2756 -
2757 -
2758 -
2759 -/* ===== Role-Based Content Restrictions Styles ===== */
2760 -
2761 -/* Role mapping form */
2762 -.mxchat-role-mapping-form {
2763 - margin-top: 20px;
2764 - padding: 20px;
2765 - background-color: #f8f9ff;
2766 - border-radius: 8px;
2767 - border: 1px solid rgba(120, 115, 245, 0.1);
2768 -}
2769 -
2770 -.mxchat-role-mapping-form h4 {
2771 - margin-top: 0;
2772 - margin-bottom: 15px;
2773 - font-size: 16px;
2774 - color: #333;
2775 -}
2776 -
2777 -.mxchat-form-row {
2778 - display: flex;
2779 - gap: 15px;
2780 - align-items: flex-end;
2781 - margin-bottom: 20px;
2782 -}
2783 -
2784 -/* Role mappings table */
2785 -.mxchat-mappings-table {
2786 - width: 100%;
2787 - border-collapse: collapse;
2788 - margin-top: 15px;
2789 - background: #fff;
2790 - box-shadow: 0 1px 3px rgba(120, 115, 245, 0.08);
2791 - border-radius: 8px;
2792 - overflow: hidden;
2793 -}
2794 -
2795 -.mxchat-mappings-table th,
2796 -.mxchat-mappings-table td {
2797 - padding: 15px;
2798 - text-align: left;
2799 - border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2800 -}
2801 -
2802 -.mxchat-mappings-table th {
2803 - background: #f8f9ff;
2804 - font-weight: 600;
2805 - color: #333;
2806 - font-size: 14px;
2807 -}
2808 -
2809 -.mxchat-mappings-table tbody tr {
2810 - transition: background-color 0.2s ease;
2811 -}
2812 -
2813 -.mxchat-mappings-table tbody tr:hover {
2814 - background: rgba(120, 115, 245, 0.03);
2815 -}
2816 -
2817 -.mxchat-mappings-table tbody tr:last-child td {
2818 - border-bottom: none;
2819 -}
2820 -
2821 -/* Tag and role badges */
2822 -.mxchat-tag-badge {
2823 - display: inline-flex;
2824 - align-items: center;
2825 - gap: 5px;
2826 - padding: 5px 12px;
2827 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2828 - color: #fff;
2829 - border-radius: 4px;
2830 - font-size: 13px;
2831 - font-weight: 500;
2832 -}
2833 -
2834 -.mxchat-tag-badge .dashicons {
2835 - font-size: 16px;
2836 - width: 16px;
2837 - height: 16px;
2838 -}
2839 -
2840 -.mxchat-role-badge {
2841 - display: inline-block;
2842 - padding: 5px 12px;
2843 - background: #f0f0f1;
2844 - color: #2c3338;
2845 - border-radius: 4px;
2846 - font-size: 13px;
2847 - font-weight: 500;
2848 -}
2849 -
2850 -/* Role-specific badge colors */
2851 -.mxchat-role-badge.public {
2852 - background: #e8f5e9;
2853 - color: #2e7d32;
2854 -}
2855 -
2856 -.mxchat-role-badge.logged_in {
2857 - background: #e3f2fd;
2858 - color: #1565c0;
2859 -}
2860 -
2861 -.mxchat-role-badge.subscriber {
2862 - background: #f3e5f5;
2863 - color: #7b1fa2;
2864 -}
2865 -
2866 -.mxchat-role-badge.contributor {
2867 - background: #fff3e0;
2868 - color: #e65100;
2869 -}
2870 -
2871 -.mxchat-role-badge.author {
2872 - background: #fff9c4;
2873 - color: #f57f17;
2874 -}
2875 -
2876 -.mxchat-role-badge.editor {
2877 - background: #fce4ec;
2878 - color: #c2185b;
2879 -}
2880 -
2881 -.mxchat-role-badge.administrator {
2882 - background: #ffebee;
2883 - color: #c62828;
2884 -}
2885 -
2886 -/* Mapping actions */
2887 -.mxchat-mapping-actions {
2888 - display: flex;
2889 - gap: 8px;
2890 - align-items: center;
2891 -}
2892 -
2893 -.mxchat-delete-mapping {
2894 - color: #d63638;
2895 - cursor: pointer;
2896 - padding: 6px 10px;
2897 - border-radius: 4px;
2898 - transition: all 0.2s ease;
2899 - display: inline-flex;
2900 - align-items: center;
2901 - gap: 4px;
2902 - background: transparent;
2903 - border: none;
2904 - font-size: 13px;
2905 -}
2906 -
2907 -.mxchat-delete-mapping:hover {
2908 - background: #fef0f0;
2909 - color: #b32d2e;
2910 -}
2911 -
2912 -.mxchat-delete-mapping .dashicons {
2913 - font-size: 18px;
2914 - width: 18px;
2915 - height: 18px;
2916 -}
2917 -
2918 -/* Post count display */
2919 -.mxchat-post-count {
2920 - color: #666;
2921 - font-size: 13px;
2922 - display: flex;
2923 - align-items: center;
2924 - gap: 4px;
2925 -}
2926 -
2927 -.mxchat-post-count .dashicons {
2928 - font-size: 16px;
2929 - width: 16px;
2930 - height: 16px;
2931 - color: #7873f5;
2932 -}
2933 -
2934 -/* Loading state for mappings */
2935 -.mxchat-loading-mappings {
2936 - text-align: center;
2937 - padding: 40px;
2938 - color: #666;
2939 -}
2940 -
2941 -.mxchat-role-spinner {
2942 - display: inline-block;
2943 - width: 20px;
2944 - height: 20px;
2945 - border: 2px solid rgba(120, 115, 245, 0.2);
2946 - border-top: 2px solid #7873f5;
2947 - border-radius: 50%;
2948 - animation: mxchat-role-spin 1s linear infinite;
2949 - margin-right: 10px;
2950 -}
2951 -
2952 -.mxchat-role-spinner.is-active {
2953 - display: inline-block;
2954 -}
2955 -
2956 -@keyframes mxchat-role-spin {
2957 - 0% { transform: rotate(0deg); }
2958 - 100% { transform: rotate(360deg); }
2959 -}
2960 -
2961 -/* Empty state */
2962 -#mxchat-no-mappings {
2963 - text-align: center;
2964 - padding: 40px;
2965 - color: #666;
2966 -}
2967 -
2968 -#mxchat-no-mappings .dashicons {
2969 - font-size: 48px;
2970 - opacity: 0.3;
2971 - margin-bottom: 15px;
2972 - display: block;
2973 -}
2974 -
2975 -#mxchat-no-mappings p {
2976 - margin: 0;
2977 - font-size: 14px;
2978 -}
2979 -
2980 -/* Bulk update section */
2981 -.mxchat-bulk-update-section {
2982 - margin-top: 30px;
2983 - padding-top: 30px;
2984 - border-top: 1px solid rgba(120, 115, 245, 0.1);
2985 -}
2986 -
2987 -.mxchat-bulk-update-section h4 {
2988 - margin-top: 0;
2989 - margin-bottom: 10px;
2990 - font-size: 16px;
2991 - color: #333;
2992 -}
2993 -
2994 -.mxchat-bulk-update-controls {
2995 - margin-top: 15px;
2996 -}
2997 -
2998 -#mxchat-bulk-update-roles {
2999 - display: inline-flex;
3000 - align-items: center;
3001 - gap: 8px;
3002 -}
3003 -
3004 -#mxchat-bulk-update-progress {
3005 - max-width: 600px;
3006 -}
3007 -
3008 -#mxchat-bulk-update-progress .mxchat-progress-bar {
3009 - height: 10px;
3010 - background: rgba(120, 115, 245, 0.1);
3011 - border-radius: 5px;
3012 - overflow: hidden;
3013 -}
3014 -
3015 -#mxchat-bulk-update-progress .mxchat-progress-fill {
3016 - height: 100%;
3017 - background: linear-gradient(135deg, #fa73e6, #7873f5);
3018 - transition: width 0.3s ease;
3019 -}
3020 -
3021 -.mxchat-progress-text {
3022 - margin-top: 10px;
3023 - color: #666;
3024 - font-size: 14px;
3025 -}
3026 -
3027 -/* Bulk update results */
3028 -#mxchat-bulk-update-result {
3029 - margin-top: 15px;
3030 - padding: 15px;
3031 - border-radius: 8px;
3032 -}
3033 -
3034 -#mxchat-bulk-update-result.success {
3035 - background-color: #f0f9eb;
3036 - border-left: 4px solid #67c23a;
3037 - color: #3c763d;
3038 -}
3039 -
3040 -#mxchat-bulk-update-result.error {
3041 - background-color: #fef0f0;
3042 - border-left: 4px solid #d63638;
3043 - color: #a94442;
3044 -}
3045 -
3046 -#mxchat-bulk-update-result h5 {
3047 - margin: 0 0 10px;
3048 - font-size: 15px;
3049 - font-weight: 600;
3050 -}
3051 -
3052 -#mxchat-bulk-update-result p {
3053 - margin: 5px 0;
3054 - font-size: 14px;
3055 -}
3056 -
3057 -/* Role mappings list container */
3058 -.mxchat-role-mappings-list {
3059 - margin-top: 25px;
3060 -}
3061 -
3062 -.mxchat-role-mappings-list h4 {
3063 - margin-top: 0;
3064 - margin-bottom: 15px;
3065 - font-size: 16px;
3066 - color: #333;
3067 -}
3068 -
3069 -/* Info banner styling (reuse existing pattern) */
3070 -.mxchat-role-info-banner {
3071 - display: flex;
3072 - align-items: center;
3073 - gap: 10px;
3074 - padding: 12px 16px;
3075 - margin-bottom: 20px;
3076 - border-radius: 6px;
3077 - font-size: 14px;
3078 - background: #f8f9ff;
3079 - border-left: 4px solid #7873f5;
3080 - color: #333;
3081 -}
3082 -
3083 -.mxchat-role-info-banner .dashicons {
3084 - color: #7873f5;
3085 - font-size: 18px;
3086 -}
3087 -
3088 -/* Responsive adjustments */
3089 -@media screen and (max-width: 782px) {
3090 - .mxchat-form-row {
3091 - flex-direction: column;
3092 - align-items: stretch;
3093 - }
3094 -
3095 - .mxchat-form-row .mxchat-form-group {
3096 - flex: 1;
3097 - max-width: none;
3098 - }
3099 -
3100 - .mxchat-form-row > div {
3101 - padding-bottom: 0;
3102 - }
3103 -
3104 - .mxchat-mappings-table {
3105 - display: block;
3106 - overflow-x: auto;
3107 - }
3108 -
3109 - .mxchat-mappings-table th,
3110 - .mxchat-mappings-table td {
3111 - padding: 10px;
3112 - font-size: 13px;
3113 - }
3114 -
3115 - .mxchat-mapping-actions {
3116 - flex-direction: column;
3117 - align-items: flex-start;
3118 - }
3119 -}
3120 -
3121 -/* RTL Support */
3122 -.rtl .mxchat-mappings-table th,
3123 -.rtl .mxchat-mappings-table td {
3124 - text-align: right;
3125 -}
3126 -
3127 -.rtl .mxchat-tag-badge {
3128 - flex-direction: row-reverse;
3129 -}
3130 -
3131 -.rtl .mxchat-role-info-banner {
3132 - border-left: none;
3133 - border-right: 4px solid #7873f5;
3134 -}
3135 -
3136 -.rtl .mxchat-bulk-update-section {
3137 - border-right: none;
3138 -}
3139 -
3140 -.rtl #mxchat-bulk-update-result {
3141 - border-left: none;
3142 - border-right: 4px solid;
3143 -}
3144 -
3145 -.rtl .mxchat-role-spinner {
3146 - margin-right: 0;
3147 - margin-left: 10px;
3148 -}
3149 -
3150 -/* ===== Chunk Grouping Styles ===== */
3151 -.mxchat-chunk-group-header {
3152 - background: rgba(120, 115, 245, 0.04) !important;
3153 - border-left: 3px solid #7873f5;
3154 -}
3155 -
3156 -.mxchat-chunk-group-header:hover {
3157 - background: rgba(120, 115, 245, 0.08) !important;
3158 -}
3159 -
3160 -.mxchat-chunk-group-info {
3161 - display: flex;
3162 - align-items: center;
3163 - gap: 12px;
3164 -}
3165 -
3166 -.mxchat-chunk-toggle {
3167 - flex-shrink: 0;
3168 - width: 28px;
3169 - height: 28px;
3170 - border: none;
3171 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
3172 - border-radius: 6px;
3173 - cursor: pointer;
3174 - display: inline-flex;
3175 - align-items: center;
3176 - justify-content: center;
3177 - transition: all 0.3s ease;
3178 - padding: 0;
3179 -}
3180 -
3181 -.mxchat-chunk-toggle:hover {
3182 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
3183 - transform: scale(1.05);
3184 -}
3185 -
3186 -.mxchat-chunk-toggle .dashicons {
3187 - font-size: 16px;
3188 - color: #7873f5;
3189 - transition: transform 0.3s ease;
3190 -}
3191 -
3192 -.mxchat-chunk-toggle.expanded .dashicons {
3193 - transform: rotate(90deg);
3194 -}
3195 -
3196 -.mxchat-chunk-badge {
3197 - display: inline-flex;
3198 - align-items: center;
3199 - padding: 4px 10px;
3200 - background: linear-gradient(135deg, #7873f5, #3ac9d1);
3201 - color: white;
3202 - border-radius: 12px;
3203 - font-size: 12px;
3204 - font-weight: 600;
3205 - white-space: nowrap;
3206 -}
3207 -
3208 -.mxchat-chunk-preview {
3209 - flex: 1;
3210 - color: #666;
3211 - font-size: 13px;
3212 - overflow: hidden;
3213 - text-overflow: ellipsis;
3214 - white-space: nowrap;
3215 -}
3216 -
3217 -.mxchat-chunk-row {
3218 - border-left: 3px solid #e0e0e0;
3219 -}
3220 -
3221 -.mxchat-chunk-row td:first-child {
3222 - padding-left: 30px !important;
3223 -}
3224 -
3225 -.mxchat-chunk-indicator {
3226 - display: inline-flex;
3227 - align-items: center;
3228 - padding: 2px 8px;
3229 - background: #f0f0f0;
3230 - color: #666;
3231 - border-radius: 4px;
3232 - font-size: 11px;
3233 - font-weight: 500;
3234 -}
3235 -
3236 -.mxchat-chunk-label {
512 +/* Utility Classes */
513 +.mxchat-na {
3237 514 color: #999;
3238 - font-size: 12px;
3239 515 font-style: italic;
3240 516 }
3241 517
3242 -/* Delete button for chunk groups */
3243 -.delete-button-group {
3244 - background: none;
3245 - border: none;
3246 - cursor: pointer;
3247 - padding: 4px;
3248 - border-radius: 4px;
3249 - transition: all 0.2s ease;
3250 -}
3251 -
3252 -.delete-button-group:hover {
3253 - background: rgba(255, 0, 0, 0.1);
3254 -}
3255 -
3256 -.delete-button-group .dashicons {
3257 - color: #dc3545;
3258 -}
3259 -
3260 -.delete-button-group .dashicons.spin {
3261 - animation: mxchat-spin 1s linear infinite;
3262 -}
3263 -
3264 -@keyframes mxchat-spin {
3265 - from { transform: rotate(0deg); }
3266 - to { transform: rotate(360deg); }
3267 -}
3268 -
3269 -/* ===== Sitemap Detection Styles ===== */
3270 -.dashicons.spin {
3271 - animation: mxchat-spin 1s linear infinite;
3272 -}
3273 -
3274 -.mxchat-sitemap-group.expanded .mxchat-sitemap-sub-list {
3275 - display: block !important;
3276 -}
3277 -
3278 -.mxchat-sitemap-group.expanded .dashicons-arrow-right-alt2 {
3279 - transform: rotate(90deg) !important;
3280 -}
3281 -
3282 -.mxchat-sitemap-row:last-child {
3283 - border-bottom: none !important;
3284 -}
3285 -
3286 -.mxchat-detected-sitemaps {
3287 - margin-top: 24px;
3288 -}
3289 -
3290 -.mxchat-sitemaps-header {
3291 - display: flex;
3292 - align-items: center;
3293 - justify-content: space-between;
3294 - margin-bottom: 16px;
3295 -}
3296 -
3297 -.mxchat-sitemaps-header h4 {
3298 - margin: 0;
3299 - display: flex;
3300 - align-items: center;
3301 - gap: 8px;
3302 -}
3303 -
3304 -.mxchat-sitemaps-header h4 .dashicons {
3305 - color: #7873f5;
3306 -}
3307 -
3308 -.mxchat-sitemap-group {
3309 - margin-bottom: 16px;
3310 - border: 1px solid rgba(120, 115, 245, 0.2);
3311 - border-radius: 8px;
3312 - overflow: hidden;
3313 -}
3314 -
3315 -.mxchat-sitemap-group-header {
3316 - padding: 12px 16px;
3317 - background: #f8fafc;
3318 - display: flex;
3319 - align-items: center;
3320 - justify-content: space-between;
3321 - cursor: pointer;
3322 - transition: background-color 0.2s ease;
3323 -}
3324 -
3325 -.mxchat-sitemap-group-header:hover {
3326 - background: #f0f4f8;
3327 -}
3328 -
3329 -.mxchat-sitemap-sub-list {
3330 - display: none;
3331 - border-top: 1px solid rgba(120, 115, 245, 0.2);
3332 -}
3333 -
3334 -.mxchat-sitemap-row {
3335 - padding: 12px 16px;
3336 - display: flex;
3337 - align-items: center;
3338 - justify-content: space-between;
3339 - border-bottom: 1px solid rgba(120, 115, 245, 0.1);
3340 -}
3341 -
3342 -.mxchat-sitemap-row.sub-item {
3343 - padding-left: 40px;
3344 -}
3345 -
3346 -.mxchat-sitemaps-loading {
3347 - margin-top: 24px;
3348 - padding: 20px;
518 +.mxchat-no-records {
3349 519 text-align: center;
3350 -}
3351 -
3352 -.mxchat-sitemaps-loading .dashicons {
3353 - font-size: 20px;
3354 - color: #7873f5;
3355 -}
3356 -
3357 -.mxchat-sitemaps-loading p {
3358 - margin: 8px 0 0;
3359 520 color: #666;
521 + padding: 40px !important;
3360 522 }
3361 523
3362 -.mxchat-no-sitemaps {
3363 - margin-top: 24px;
3364 - padding: 20px;
3365 - background: #f8fafc;
3366 - border-radius: 8px;
3367 - text-align: center;
3368 -}
3369 -
3370 -.mxchat-no-sitemaps .dashicons {
3371 - font-size: 24px;
3372 - color: #999;
3373 - margin-bottom: 8px;
3374 -}
3375 -
3376 -.mxchat-no-sitemaps p {
3377 - margin: 0;
3378 - color: #666;
3379 -}
3380 -
3381 -/* ===== Admin Notice Dismiss Button Styles ===== */
3382 -.notice.is-dismissible {
3383 - position: relative;
3384 - padding-right: 38px;
3385 -}
3386 -
3387 -.notice-dismiss {
3388 - position: absolute;
3389 - top: 50%;
3390 - right: 8px;
3391 - transform: translateY(-50%);
3392 - padding: 0;
3393 - background: none;
3394 - border: none;
3395 - cursor: pointer;
3396 - color: #787c82;
3397 - width: 24px;
3398 - height: 24px;
3399 - display: flex;
3400 - align-items: center;
3401 - justify-content: center;
3402 - transition: color 0.2s ease;
3403 -}
3404 -
3405 -.notice-dismiss:hover {
3406 - color: #d63638;
3407 -}
3408 -
3409 -.notice-dismiss:before {
3410 - content: "\f153";
3411 - font-family: dashicons;
3412 - font-size: 16px;
3413 - line-height: 1;
3414 -}
3415 -
3416 -.notice-dismiss .screen-reader-text {
3417 - position: absolute;
3418 - width: 1px;
3419 - height: 1px;
3420 - padding: 0;
3421 - margin: -1px;
3422 - overflow: hidden;
3423 - clip: rect(0, 0, 0, 0);
3424 - white-space: nowrap;
3425 - border: 0;
3426 -}
3427 -
3428 -/* ===== AJAX Pagination Styles ===== */
3429 -.mxchat-kb-pagination-wrapper {
3430 - background: #f8fafc;
3431 -}
3432 -
3433 -.mxchat-ajax-pagination {
3434 - display: flex;
3435 - align-items: center;
3436 - justify-content: center;
3437 - gap: 8px;
3438 - flex-wrap: wrap;
3439 -}
3440 -
3441 -.mxchat-page-link {
3442 - display: inline-flex;
3443 - align-items: center;
3444 - justify-content: center;
3445 - min-width: 36px;
3446 - height: 36px;
3447 - padding: 0 12px;
3448 - background: #fff;
3449 - border: 1px solid var(--mxch-card-border, #e5e7eb);
3450 - border-radius: 6px;
3451 - color: var(--mxch-text-primary, #1f2937);
3452 - text-decoration: none;
3453 - font-size: 13px;
3454 - font-weight: 500;
3455 - transition: all 0.2s ease;
3456 - cursor: pointer;
3457 -}
3458 -
3459 -.mxchat-page-link:hover {
3460 - background: var(--mxch-primary, #7873f5);
3461 - border-color: var(--mxch-primary, #7873f5);
3462 - color: #fff;
3463 - text-decoration: none;
3464 -}
3465 -
3466 -.mxchat-page-link.loading {
3467 - opacity: 0.6;
3468 - pointer-events: none;
3469 -}
3470 -
3471 -.mxchat-page-current {
3472 - display: inline-flex;
3473 - align-items: center;
3474 - justify-content: center;
3475 - min-width: 36px;
3476 - height: 36px;
3477 - padding: 0 12px;
3478 - background: var(--mxch-primary, #7873f5);
3479 - border: 1px solid var(--mxch-primary, #7873f5);
3480 - border-radius: 6px;
3481 - color: #fff;
3482 - font-size: 13px;
3483 - font-weight: 600;
3484 -}
3485 -
3486 -.mxchat-page-dots {
3487 - display: inline-flex;
3488 - align-items: center;
3489 - justify-content: center;
3490 - min-width: 24px;
3491 - height: 36px;
3492 - color: var(--mxch-text-muted, #9ca3af);
3493 - font-size: 14px;
3494 -}
3495 -
3496 -.mxchat-pagination-loading {
3497 - margin-left: 12px;
3498 -}
3499 -
3500 -.mxchat-pagination-loading .dashicons {
3501 - color: var(--mxch-primary, #7873f5);
3502 -}
3503 -
3504 -/* Spin animation for loading indicator */
3505 -@keyframes mxchat-spin {
3506 - from { transform: rotate(0deg); }
3507 - to { transform: rotate(360deg); }
3508 -}
3509 -
3510 -.mxchat-pagination-loading .spin,
3511 -.mxchat-ajax-pagination .spin {
3512 - animation: mxchat-spin 1s linear infinite;
3513 -}
3514 -
3515 -/* Mobile responsive pagination */
3516 -@media (max-width: 600px) {
3517 - .mxchat-ajax-pagination {
3518 - gap: 4px;
3519 - }
3520 -
3521 - .mxchat-page-link,
3522 - .mxchat-page-current {
3523 - min-width: 32px;
3524 - height: 32px;
3525 - padding: 0 8px;
3526 - font-size: 12px;
3527 - }
3528 -
3529 - .mxchat-page-dots {
3530 - min-width: 20px;
3531 - }
3532 -}
3533 -
3534 -/* ========================================
3535 - BULK SELECTION STYLES
3536 - ======================================== */
3537 -
3538 -/* Bulk Actions Toolbar */
3539 -.mxchat-bulk-toolbar {
3540 - display: flex;
3541 - align-items: center;
3542 - gap: 12px;
3543 - padding: 12px 16px;
3544 - background: #f8fafc;
3545 - border: 1px solid var(--mxch-card-border);
3546 - border-bottom: none;
3547 - border-radius: var(--mxch-radius-md) var(--mxch-radius-md) 0 0;
3548 -}
3549 -
3550 -.mxchat-bulk-select-label {
3551 - display: flex;
3552 - align-items: center;
3553 - gap: 6px;
3554 - font-size: 13px;
3555 - color: var(--mxch-text-secondary);
3556 - cursor: pointer;
3557 -}
3558 -
3559 -.mxchat-bulk-select-label:hover {
3560 - color: var(--mxch-text-primary);
3561 -}
3562 -
3563 -.mxchat-entry-checkbox,
3564 -.mxchat-entry-checkbox-all {
3565 - width: 16px;
3566 - height: 16px;
3567 - cursor: pointer;
3568 - accent-color: var(--mxch-primary, #7873f5);
3569 -}
3570 -
3571 -.mxchat-bulk-actions {
3572 - display: flex;
3573 - align-items: center;
3574 - gap: 8px;
3575 - margin-left: auto;
3576 -}
3577 -
3578 -.mxchat-bulk-delete {
3579 - display: flex;
3580 - align-items: center;
3581 - gap: 6px;
3582 - color: var(--mxch-error, #dc2626) !important;
3583 - border-color: #fecaca !important;
3584 - background: transparent !important;
3585 -}
3586 -
3587 -.mxchat-bulk-delete:hover:not(:disabled) {
3588 - background: #fef2f2 !important;
3589 - border-color: #fca5a5 !important;
3590 -}
3591 -
3592 -.mxchat-bulk-delete:disabled {
3593 - opacity: 0.5;
3594 - cursor: not-allowed;
3595 -}
3596 -
3597 -.mxchat-selected-count {
3598 - font-size: 12px;
3599 - color: var(--mxch-primary, #7873f5);
3600 - font-weight: 600;
3601 - margin-left: 4px;
3602 -}
3603 -
3604 -/* Delete container - holds Delete All form and Delete Selected button */
3605 -.mxchat-delete-container {
3606 - display: flex;
3607 - align-items: center;
3608 -}
3609 -
3610 -/* Selected row highlighting */
3611 -#mxchat-records-table tr.selected {
3612 - background-color: rgba(120, 115, 245, 0.05) !important;
3613 -}
3614 -
3615 -#mxchat-records-table tr.selected td:first-child {
3616 - position: relative;
3617 -}
3618 -
3619 -#mxchat-records-table tr.selected td:first-child::before {
3620 - content: '';
3621 - position: absolute;
3622 - left: 0;
3623 - top: 0;
3624 - bottom: 0;
3625 - width: 3px;
3626 - background: var(--mxch-primary, #7873f5);
3627 -}
3628 -
3629 -/* Deleting state */
3630 -tr.mxchat-row-deleting {
3631 - opacity: 0.5;
3632 - pointer-events: none;
3633 -}
3634 -
3635 -/* Error state for failed deletions */
3636 -tr.mxchat-row-error {
3637 - background-color: rgba(220, 38, 38, 0.05) !important;
3638 -}
3639 -
3640 -tr.mxchat-row-error td:first-child {
3641 - position: relative;
3642 -}
3643 -
3644 -tr.mxchat-row-error td:first-child::before {
3645 - content: '';
3646 - position: absolute;
3647 - left: 0;
3648 - top: 0;
3649 - bottom: 0;
3650 - width: 3px;
3651 - background: var(--mxch-error, #dc2626);
3652 -}
3653 -
3654 -/* Spin animation for loading states */
3655 -.spin {
3656 - animation: mxchat-spin 1s linear infinite;
3657 -}
3658 -
3659 -/* Responsive adjustments for bulk toolbar */
3660 -@media (max-width: 768px) {
3661 - .mxchat-bulk-toolbar {
3662 - flex-wrap: wrap;
3663 - gap: 8px;
3664 - }
3665 -
3666 - .mxchat-bulk-delete-text {
3667 - display: none;
3668 - }
3669 -
3670 - .mxchat-bulk-actions {
3671 - margin-left: 0;
3672 - }
3673 -}
3674 -
3675 -/* ==========================================================================
3676 - Knowledge Base - Mobile Responsive
3677 - ========================================================================== */
3678 -
3679 -/* Desktop defaults for KB header controls */
3680 -.mxch-kb-header-controls {
3681 - display: flex;
3682 - gap: 10px;
3683 - align-items: center;
3684 -}
3685 -
3686 -.mxch-kb-search-form {
3687 - display: flex;
3688 - gap: 10px;
3689 -}
3690 -
3691 -.mxch-kb-search-input {
3692 - width: 200px;
3693 -}
3694 -
3695 -.mxch-kb-type-filter {
3696 - width: auto;
3697 -}
3698 -
3699 -/* Mobile: Knowledge Base card header stacks vertically */
3700 -@media screen and (max-width: 960px) {
3701 - /* Stack card header vertically */
3702 - #knowledge-base .mxch-card-header {
3703 - flex-direction: column;
3704 - align-items: stretch;
3705 - gap: 12px;
3706 - padding: 12px 16px;
3707 - }
3708 -
3709 - /* Title row wraps badges */
3710 - #knowledge-base .mxch-card-title {
3711 - flex-wrap: wrap;
3712 - font-size: 14px;
3713 - }
3714 -
3715 - /* Controls stack vertically */
3716 - .mxch-kb-header-controls {
3717 - flex-direction: column;
3718 - align-items: stretch;
3719 - gap: 8px;
3720 - width: 100%;
3721 - }
3722 -
3723 - /* Search form wraps */
3724 - .mxch-kb-search-form {
3725 - flex-wrap: wrap;
3726 - gap: 8px;
3727 - width: 100%;
3728 - }
3729 -
3730 - /* Search input takes full width */
3731 - .mxch-kb-search-input {
3732 - width: 100% !important;
3733 - flex: 1;
3734 - min-width: 0;
3735 - }
3736 -
3737 - /* Filter dropdown takes full width */
3738 - .mxch-kb-type-filter {
3739 - width: 100% !important;
3740 - flex: 1;
3741 - min-width: 0;
3742 - }
3743 -
3744 - /* Delete container full width */
3745 - .mxchat-delete-container {
3746 - width: 100%;
3747 - }
3748 -
3749 - .mxchat-delete-container form,
3750 - .mxchat-delete-container .mxchat-bulk-delete {
3751 - width: 100%;
3752 - }
3753 -
3754 - .mxchat-delete-container .mxch-btn {
3755 - width: 100%;
3756 - justify-content: center;
3757 - }
3758 -
3759 - /* Table: hide ID and Source columns on mobile to save space */
3760 - .mxchat-records-table th:nth-child(2),
3761 - .mxchat-records-table td:nth-child(2) {
3762 - display: none;
3763 - }
3764 -
3765 - .mxchat-records-table th:nth-child(4),
3766 - .mxchat-records-table td:nth-child(4) {
3767 - display: none;
3768 - }
3769 -
3770 - /* Content column needs more room */
3771 - .mxchat-content-cell {
3772 - max-width: none !important;
3773 - }
3774 -
3775 - /* Table cells padding */
3776 - .mxchat-records-table th,
3777 - .mxchat-records-table td {
3778 - padding: 10px 8px !important;
3779 - }
3780 -
3781 - /* Pagination wraps nicely */
3782 - .mxchat-ajax-pagination {
3783 - flex-wrap: wrap;
3784 - justify-content: center;
3785 - }
3786 -}
3787 -
3788 -/* Small mobile: further adjustments */
3789 -@media screen and (max-width: 480px) {
3790 - #knowledge-base .mxch-card-header {
3791 - padding: 10px 12px;
3792 - }
3793 -
3794 - #knowledge-base .mxch-card-title {
3795 - font-size: 13px;
3796 - }
3797 -
3798 - /* Search form items fully stacked */
3799 - .mxch-kb-search-form {
3800 - flex-direction: column;
3801 - }
3802 -
3803 - /* Smaller table text */
3804 - .mxchat-records-table {
3805 - font-size: 12px;
3806 - }
3807 -
3808 - .mxchat-records-table th,
3809 - .mxchat-records-table td {
3810 - padding: 8px 6px !important;
3811 - }
3812 -
3813 - /* Also hide Actions header text but keep the column for delete buttons */
3814 - .mxchat-records-table th:nth-child(5) {
3815 - font-size: 0;
3816 - padding: 8px 4px !important;
3817 - width: 40px;
3818 - }
3819 -}
3820 -
3821 -/* ─── Edit Entry Modal ─── */
3822 -
3823 -.mxchat-edit-entry-btn {
3824 - color: var(--mxch-primary, #7873f5);
3825 -}
3826 -.mxchat-edit-entry-btn:hover {
3827 - color: var(--mxch-primary-dark, #5b56d6);
3828 - background: rgba(120, 115, 245, 0.08);
3829 -}
3830 -
3831 -.mxchat-kb-edit-modal-content {
3832 - max-width: 760px;
3833 - /* Same viewport-safe cap as the content-selector modal (vh = fallback). */
3834 - max-height: 90vh;
3835 - max-height: min(90vh, calc(100dvh - 24px));
3836 -}
3837 -
3838 -.mxchat-kb-edit-body {
3839 - flex: 1 1 auto;
3840 - /* min-height: 0 lets the body shrink inside the capped modal box so the
3841 - footer (Save/Cancel) can never be pushed below the viewport. */
3842 - min-height: 0;
3843 - display: flex;
3844 - flex-direction: column;
3845 - padding: 20px;
3846 - overflow: hidden;
3847 - gap: 12px;
3848 -}
3849 -
3850 -.mxchat-kb-edit-source {
3851 - font-size: 12px;
3852 - color: var(--mxch-text-muted, #6b7280);
3853 - word-break: break-all;
3854 -}
3855 -.mxchat-kb-edit-source a {
3856 - color: var(--mxch-primary, #7873f5);
3857 - text-decoration: none;
3858 -}
3859 -
3860 -.mxchat-kb-edit-textarea {
3861 - flex: 1;
3862 - min-height: 300px;
3863 - max-height: 55vh;
3864 - width: 100%;
3865 - padding: 14px;
3866 - border: 1px solid var(--mxch-input-border, #d1d5db);
3867 - border-radius: 8px;
3868 - font-size: 14px;
3869 - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
3870 - line-height: 1.6;
3871 - resize: vertical;
3872 - color: var(--mxch-text-primary, #1a1a2e);
3873 - background: var(--mxch-input-bg, #fff);
3874 - box-sizing: border-box;
3875 - transition: border-color 0.2s;
3876 -}
3877 -.mxchat-kb-edit-textarea:focus {
3878 - outline: none;
3879 - border-color: var(--mxch-primary, #7873f5);
3880 - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
3881 -}
3882 -
3883 -.mxchat-kb-edit-meta {
3884 - display: flex;
3885 - justify-content: space-between;
3886 - font-size: 12px;
3887 - color: var(--mxch-text-muted, #6b7280);
3888 -}
3889 -
3890 -.mxchat-kb-edit-footer {
3891 - display: flex;
3892 - align-items: center;
3893 - justify-content: space-between;
3894 - padding: 14px 20px;
3895 - border-top: 1px solid #e5e5e5;
3896 - gap: 12px;
3897 - /* Action row can never be squeezed out of the box. */
3898 - flex-shrink: 0;
3899 -}
3900 -
3901 -.mxchat-kb-edit-notice {
3902 - flex: 1;
3903 - font-size: 13px;
3904 -}
3905 -.mxchat-kb-edit-notice.success { color: #16a34a; }
3906 -.mxchat-kb-edit-notice.error { color: #dc2626; }
3907 -
3908 -.mxchat-kb-edit-actions {
3909 - display: flex;
3910 - gap: 8px;
3911 - flex-shrink: 0;
3912 -}
3913 -
3914 -/* ── Knowledge Inspector modal (plan-d8cb4b) ──────────────────────────
3915 - Read-only "View indexed content" viewer. Reuses the Testing tab's
3916 - match-card / chunk-detail components (admin-testing-tab.css, scoped under
3917 - .mxch-testing-results) so it looks native; this block only adds the modal
3918 - body scroll + the chunk-text container the Testing tab doesn't have. */
3919 -.mxchat-kb-inspect-body {
3920 - flex: 1 1 auto;
3921 - /* Same footer-pushout guard as the edit modal. */
3922 - min-height: 0;
3923 - display: flex;
3924 - flex-direction: column;
3925 - padding: 20px;
3926 - overflow-y: auto;
3927 - gap: 12px;
3928 -}
3929 -/* The modal body is the scroll container — let the inner results grow naturally
3930 - instead of the Testing tab's own 400px inner scroll (avoids a double scrollbar). */
3931 -.mxchat-kb-inspect-body .mxch-testing-results {
3932 - max-height: none;
3933 - overflow: visible;
3934 -}
3935 -.mxch-kb-inspect-chunk-text {
3936 - margin: 8px 0 0;
3937 - padding: 12px 14px;
3938 - background: #f8fafc;
3939 - border: 1px solid #e2e8f0;
3940 - border-radius: 6px;
3941 - max-height: 260px;
3942 - overflow-y: auto;
3943 - white-space: pre-wrap;
3944 - word-break: break-word;
3945 - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
3946 - font-size: 13px;
3947 - line-height: 1.6;
3948 - color: var(--mxch-text-primary, #334155);
3949 -}
3950 -
3951 -.mxchat-kb-edit-save-spinner {
3952 - display: inline-flex;
3953 - align-items: center;
3954 - gap: 6px;
3955 -}
3956 -
3957 -@media (max-width: 782px) {
3958 - .mxchat-kb-edit-modal-content {
3959 - width: 96%;
3960 - max-width: 96%;
3961 - margin: 10px auto;
3962 - max-height: calc(100vh - 20px);
3963 - max-height: calc(100dvh - 20px);
3964 - }
3965 - .mxchat-kb-edit-body {
3966 - padding: 14px;
3967 - }
3968 - .mxchat-kb-edit-textarea {
3969 - min-height: 200px;
3970 - font-size: 15px;
3971 - }
3972 - .mxchat-kb-edit-footer {
3973 - flex-direction: column;
3974 - align-items: stretch;
3975 - }
3976 - .mxchat-kb-edit-actions {
3977 - justify-content: stretch;
3978 - }
3979 - .mxchat-kb-edit-actions .mxch-btn {
3980 - flex: 1;
3981 - text-align: center;
3982 - }
3983 -}
3984 -/* ==========================================================================
3985 - Custom Meta-key discovery picker (plan-mxchat-20260709-fe8e4e)
3986 - Canon-token chip picker mirroring the ACF discovery UX for non-ACF meta.
3987 - ========================================================================== */
3988 -.mxchat-meta-scan-controls {
3989 - display: flex;
3990 - align-items: center;
3991 - flex-wrap: wrap;
3992 - gap: 12px;
3993 - margin-bottom: 12px;
3994 -}
3995 -#mxchat-scan-meta-btn {
3996 - display: inline-flex;
3997 - align-items: center;
3998 - gap: 8px;
3999 -}
4000 -.mxchat-meta-scan-internal {
4001 - display: inline-flex;
4002 - align-items: center;
4003 - gap: 6px;
4004 - font-size: 13px;
4005 - color: var(--mxch-text-secondary, #64748b);
4006 - cursor: pointer;
4007 -}
4008 -.mxchat-meta-scan-loading,
4009 -.mxchat-meta-scan-empty {
4010 - font-size: 13px;
4011 - color: var(--mxch-text-secondary, #64748b);
4012 - margin: 8px 0 0;
4013 -}
4014 -.mxchat-meta-chip-grid {
4015 - display: grid;
4016 - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
4017 - gap: 10px;
4018 - margin-top: 12px;
4019 -}
4020 -.mxchat-meta-chip {
4021 - display: flex;
4022 - flex-direction: column;
4023 - align-items: flex-start;
4024 - gap: 4px;
4025 - text-align: left;
4026 - width: 100%;
4027 - padding: 10px 12px;
4028 - background: var(--mxch-card-bg, #fff);
4029 - border: 1px solid var(--mxch-card-border, #e2e8f0);
4030 - border-radius: var(--mxch-radius-md, 8px);
4031 - cursor: pointer;
4032 - transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
4033 -}
4034 -.mxchat-meta-chip:hover {
4035 - border-color: var(--mxch-primary, #7873f5);
4036 - box-shadow: 0 1px 4px rgba(120, 115, 245, 0.15);
4037 -}
4038 -.mxchat-meta-chip-main {
4039 - display: flex;
4040 - align-items: baseline;
4041 - flex-wrap: wrap;
4042 - gap: 8px;
4043 -}
4044 -.mxchat-meta-chip-name {
4045 - font-weight: 600;
4046 - color: var(--mxch-text-primary, #1a1a2e);
4047 - font-size: 13px;
4048 -}
4049 -.mxchat-meta-chip-key {
4050 - font-family: monospace;
4051 - font-size: 11px;
4052 - color: var(--mxch-text-muted, #94a3b8);
4053 - background: #f1f5f9;
4054 - padding: 1px 6px;
4055 - border-radius: 4px;
4056 -}
4057 -.mxchat-meta-chip-meta {
4058 - font-size: 11px;
4059 - color: var(--mxch-text-muted, #94a3b8);
4060 - white-space: nowrap;
4061 - overflow: hidden;
4062 - text-overflow: ellipsis;
4063 - max-width: 100%;
4064 -}
4065 -.mxchat-meta-chip-tick {
4066 - font-size: 11px;
4067 - font-weight: 600;
4068 - color: var(--mxch-primary, #7873f5);
4069 - margin-top: 2px;
4070 -}
4071 -.mxchat-meta-chip.is-added {
4072 - border-color: var(--mxch-success, #10b981);
4073 - background: rgba(16, 185, 129, 0.06);
4074 - cursor: default;
4075 -}
4076 -.mxchat-meta-chip.is-added .mxchat-meta-chip-tick {
4077 - color: var(--mxch-success, #10b981);
4078 -}
4079 -@media (max-width: 782px) {
4080 - .mxchat-meta-chip-grid {
4081 - grid-template-columns: 1fr;
4082 - }
4083 -}