PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 2.4.6
MxChat – AI Chatbot & Content Generation for WordPress v2.4.6
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 +12 -1369 3.2.72.4.6 View file →
@@ -266,13 +266,8 @@
266 266 border: 1px solid #e5e5e5;
267 267 text-align: center;
268 268 }
269 269
270 -/* PDF Upload Area */
271 -#mxchat-pdf-upload-area input[type="file"] {
272 - margin-bottom: 12px;
273 -}
274 -
275 270 .mxchat-url-input-group {
276 271 display: flex;
277 272 gap: 12px;
278 273 max-width: 800px;
@@ -665,9 +660,9 @@
665 660 }
666 661
667 662 /* ===== Search ===== */
668 663 .mxchat-search-form {
669 - display: flex;
664 + position: relative;
670 665 }
671 666
672 667 .mxchat-search-group {
673 668 position: relative;
@@ -685,42 +680,8 @@
685 680 padding-left: 40px;
686 681 width: 300px;
687 682 }
688 683
689 -/* ADDED 2.5.6: Content Type Filter Styles */
690 -.mxchat-filter-group {
691 - position: relative;
692 - display: flex;
693 - align-items: center;
694 - margin-left: 12px;
695 -}
696 -
697 -.mxchat-filter-group select {
698 - padding: 8px 32px 8px 12px;
699 - border: 1px solid #ddd;
700 - border-radius: 8px;
701 - background: white;
702 - color: #333;
703 - font-size: 14px;
704 - cursor: pointer;
705 - transition: all 0.2s ease;
706 - appearance: none;
707 - 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");
708 - background-repeat: no-repeat;
709 - background-position: right 12px center;
710 -}
711 -
712 -.mxchat-filter-group select:hover {
713 - border-color: #7873f5;
714 - box-shadow: 0 2px 8px rgba(120, 115, 245, 0.1);
715 -}
716 -
717 -.mxchat-filter-group select:focus {
718 - outline: none;
719 - border-color: #7873f5;
720 - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
721 -}
722 -
723 684 /* ===== Buttons ===== */
724 685 .mxchat-button-primary {
725 686 background: linear-gradient(135deg, #fa73e6, #7873f5);
726 687 border: none;
@@ -890,14 +851,8 @@
890 851 text-align: left;
891 852 border-bottom: 2px solid rgba(120, 115, 245, 0.1);
892 853 }
893 854
894 -/* Hide ID column (now second column, after checkbox column) */
895 -.mxchat-records-table th:nth-child(2),
896 -.mxchat-records-table td:nth-child(2) {
897 - display: none;
898 -}
899 -
900 855 .mxchat-records-table td {
901 856 padding: 15px;
902 857 border-top: 1px solid rgba(120, 115, 245, 0.1);
903 858 vertical-align: top;
@@ -907,110 +862,11 @@
907 862 background: rgba(120, 115, 245, 0.03);
908 863 }
909 864
910 865 .mxchat-content-cell {
911 - max-width: 600px;
866 + max-width: 400px;
912 867 }
913 868
914 -/* ===== Accordion Styles ===== */
915 -.mxchat-accordion-wrapper {
916 - width: 100%;
917 -}
918 -
919 -.mxchat-content-preview {
920 - display: flex;
921 - align-items: center;
922 - gap: 12px;
923 - padding: 8px 12px;
924 - border-radius: 6px;
925 - transition: all 0.2s ease;
926 -}
927 -
928 -/* Only make it look clickable if there's an expand button */
929 -.mxchat-content-preview:has(.mxchat-expand-toggle) {
930 - cursor: pointer;
931 -}
932 -
933 -.mxchat-content-preview:has(.mxchat-expand-toggle):hover {
934 - background: rgba(120, 115, 245, 0.04);
935 -}
936 -
937 -.mxchat-content-preview .preview-text {
938 - flex: 1;
939 - font-size: 14px;
940 - line-height: 1.6;
941 - color: #333;
942 - overflow: hidden;
943 -}
944 -
945 -.mxchat-expand-toggle {
946 - flex-shrink: 0;
947 - width: 28px;
948 - height: 28px;
949 - border: none;
950 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
951 - border-radius: 6px;
952 - cursor: pointer;
953 - display: inline-flex;
954 - align-items: center;
955 - justify-content: center;
956 - transition: all 0.3s ease;
957 - padding: 0;
958 -}
959 -
960 -.mxchat-expand-toggle:hover {
961 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
962 - transform: scale(1.05);
963 -}
964 -
965 -.mxchat-expand-toggle .dashicons {
966 - font-size: 18px;
967 - width: 18px;
968 - height: 18px;
969 - color: #7873f5;
970 - transition: transform 0.3s ease;
971 -}
972 -
973 -.mxchat-expand-toggle.expanded .dashicons {
974 - transform: rotate(180deg);
975 -}
976 -
977 -.mxchat-content-full {
978 - margin-top: 12px;
979 - padding: 16px;
980 - background: rgba(120, 115, 245, 0.03);
981 - border-radius: 8px;
982 - border-left: 3px solid #7873f5;
983 - animation: slideDown 0.3s ease;
984 -}
985 -
986 -@keyframes slideDown {
987 - from {
988 - opacity: 0;
989 - max-height: 0;
990 - transform: translateY(-10px);
991 - }
992 - to {
993 - opacity: 1;
994 - max-height: 1000px;
995 - transform: translateY(0);
996 - }
997 -}
998 -
999 -.mxchat-content-full .content-view {
1000 - font-size: 14px;
1001 - line-height: 1.6;
1002 - color: #333;
1003 -}
1004 -
1005 -.mxchat-content-full .content-view p {
1006 - margin: 0 0 12px 0;
1007 -}
1008 -
1009 -.mxchat-content-full .content-view p:last-child {
1010 - margin-bottom: 0;
1011 -}
1012 -
1013 869 .mxchat-url-cell a {
1014 870 color: #7873f5;
1015 871 text-decoration: none;
1016 872 display: flex;
@@ -1027,9 +883,13 @@
1027 883 display: flex;
1028 884 gap: 8px;
1029 885 }
1030 886
1031 -/* Legacy content-view styling (now within accordion) */
887 +.content-view {
888 + font-size: 14px;
889 + line-height: 1.5;
890 +}
891 +
1032 892 .content-edit {
1033 893 width: 100%;
1034 894 min-height: 100px;
1035 895 border: 1px solid #ddd;
@@ -1550,28 +1410,14 @@
1550 1410 .mxchat-kb-modal-footer {
1551 1411 padding: 15px 20px;
1552 1412 border-top: 1px solid #e5e5e5;
1553 1413 display: flex;
1554 - justify-content: space-between;
1555 - align-items: center;
1556 - gap: 15px;
1414 + justify-content: flex-end;
1415 + gap: 10px;
1557 1416 background-color: #f8f9fa;
1558 1417 border-radius: 0 0 8px 8px;
1559 1418 }
1560 1419
1561 -.mxchat-kb-modal-footer .mxchat-kb-pagination {
1562 - flex: 1;
1563 - margin: 0;
1564 - padding: 0;
1565 - text-align: left;
1566 -}
1567 -
1568 -.mxchat-kb-footer-actions {
1569 - display: flex;
1570 - gap: 10px;
1571 - flex-shrink: 0;
1572 -}
1573 -
1574 1420 .mxchat-kb-button-primary,
1575 1421 .mxchat-kb-button-secondary {
1576 1422 padding: 8px 15px;
1577 1423 border-radius: 4px;
@@ -1821,19 +1667,9 @@
1821 1667
1822 1668 .mxchat-search-group input {
1823 1669 width: 100%;
1824 1670 }
1825 -
1826 - /* ADDED 2.5.6: Responsive filter dropdown */
1827 - .mxchat-filter-group {
1828 - margin-left: 0;
1829 - width: 100%;
1830 - }
1831 -
1832 - .mxchat-filter-group select {
1833 - width: 100%;
1834 - }
1835 -
1671 +
1836 1672 .mxchat-url-input-group {
1837 1673 flex-direction: column;
1838 1674 }
1839 1675
@@ -1877,22 +1713,11 @@
1877 1713 }
1878 1714
1879 1715 .mxchat-kb-modal-footer {
1880 1716 flex-direction: column;
1881 - gap: 10px;
1882 1717 }
1883 -
1884 - .mxchat-kb-modal-footer .mxchat-kb-pagination {
1885 - width: 100%;
1886 - text-align: center;
1887 - }
1888 -
1889 - .mxchat-kb-footer-actions {
1890 - width: 100%;
1891 - flex-direction: column;
1892 - }
1893 -
1894 - .mxchat-kb-button-primary,
1718 +
1719 + .mxchat-kb-button-primary,
1895 1720 .mxchat-kb-button-secondary {
1896 1721 width: 100%;
1897 1722 }
1898 1723
@@ -2673,1186 +2498,4 @@
2673 2498 margin-bottom: 0;
2674 2499 color: #666;
2675 2500 }
2676 2501
2677 -
2678 -
2679 -/* ===== Role-Based Content Restrictions Styles ===== */
2680 -
2681 -/* Role mapping form */
2682 -.mxchat-role-mapping-form {
2683 - margin-top: 20px;
2684 - padding: 20px;
2685 - background-color: #f8f9ff;
2686 - border-radius: 8px;
2687 - border: 1px solid rgba(120, 115, 245, 0.1);
2688 -}
2689 -
2690 -.mxchat-role-mapping-form h4 {
2691 - margin-top: 0;
2692 - margin-bottom: 15px;
2693 - font-size: 16px;
2694 - color: #333;
2695 -}
2696 -
2697 -.mxchat-form-row {
2698 - display: flex;
2699 - gap: 15px;
2700 - align-items: flex-end;
2701 - margin-bottom: 20px;
2702 -}
2703 -
2704 -/* Role mappings table */
2705 -.mxchat-mappings-table {
2706 - width: 100%;
2707 - border-collapse: collapse;
2708 - margin-top: 15px;
2709 - background: #fff;
2710 - box-shadow: 0 1px 3px rgba(120, 115, 245, 0.08);
2711 - border-radius: 8px;
2712 - overflow: hidden;
2713 -}
2714 -
2715 -.mxchat-mappings-table th,
2716 -.mxchat-mappings-table td {
2717 - padding: 15px;
2718 - text-align: left;
2719 - border-bottom: 1px solid rgba(120, 115, 245, 0.1);
2720 -}
2721 -
2722 -.mxchat-mappings-table th {
2723 - background: #f8f9ff;
2724 - font-weight: 600;
2725 - color: #333;
2726 - font-size: 14px;
2727 -}
2728 -
2729 -.mxchat-mappings-table tbody tr {
2730 - transition: background-color 0.2s ease;
2731 -}
2732 -
2733 -.mxchat-mappings-table tbody tr:hover {
2734 - background: rgba(120, 115, 245, 0.03);
2735 -}
2736 -
2737 -.mxchat-mappings-table tbody tr:last-child td {
2738 - border-bottom: none;
2739 -}
2740 -
2741 -/* Tag and role badges */
2742 -.mxchat-tag-badge {
2743 - display: inline-flex;
2744 - align-items: center;
2745 - gap: 5px;
2746 - padding: 5px 12px;
2747 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2748 - color: #fff;
2749 - border-radius: 4px;
2750 - font-size: 13px;
2751 - font-weight: 500;
2752 -}
2753 -
2754 -.mxchat-tag-badge .dashicons {
2755 - font-size: 16px;
2756 - width: 16px;
2757 - height: 16px;
2758 -}
2759 -
2760 -.mxchat-role-badge {
2761 - display: inline-block;
2762 - padding: 5px 12px;
2763 - background: #f0f0f1;
2764 - color: #2c3338;
2765 - border-radius: 4px;
2766 - font-size: 13px;
2767 - font-weight: 500;
2768 -}
2769 -
2770 -/* Role-specific badge colors */
2771 -.mxchat-role-badge.public {
2772 - background: #e8f5e9;
2773 - color: #2e7d32;
2774 -}
2775 -
2776 -.mxchat-role-badge.logged_in {
2777 - background: #e3f2fd;
2778 - color: #1565c0;
2779 -}
2780 -
2781 -.mxchat-role-badge.subscriber {
2782 - background: #f3e5f5;
2783 - color: #7b1fa2;
2784 -}
2785 -
2786 -.mxchat-role-badge.contributor {
2787 - background: #fff3e0;
2788 - color: #e65100;
2789 -}
2790 -
2791 -.mxchat-role-badge.author {
2792 - background: #fff9c4;
2793 - color: #f57f17;
2794 -}
2795 -
2796 -.mxchat-role-badge.editor {
2797 - background: #fce4ec;
2798 - color: #c2185b;
2799 -}
2800 -
2801 -.mxchat-role-badge.administrator {
2802 - background: #ffebee;
2803 - color: #c62828;
2804 -}
2805 -
2806 -/* Mapping actions */
2807 -.mxchat-mapping-actions {
2808 - display: flex;
2809 - gap: 8px;
2810 - align-items: center;
2811 -}
2812 -
2813 -.mxchat-delete-mapping {
2814 - color: #d63638;
2815 - cursor: pointer;
2816 - padding: 6px 10px;
2817 - border-radius: 4px;
2818 - transition: all 0.2s ease;
2819 - display: inline-flex;
2820 - align-items: center;
2821 - gap: 4px;
2822 - background: transparent;
2823 - border: none;
2824 - font-size: 13px;
2825 -}
2826 -
2827 -.mxchat-delete-mapping:hover {
2828 - background: #fef0f0;
2829 - color: #b32d2e;
2830 -}
2831 -
2832 -.mxchat-delete-mapping .dashicons {
2833 - font-size: 18px;
2834 - width: 18px;
2835 - height: 18px;
2836 -}
2837 -
2838 -/* Post count display */
2839 -.mxchat-post-count {
2840 - color: #666;
2841 - font-size: 13px;
2842 - display: flex;
2843 - align-items: center;
2844 - gap: 4px;
2845 -}
2846 -
2847 -.mxchat-post-count .dashicons {
2848 - font-size: 16px;
2849 - width: 16px;
2850 - height: 16px;
2851 - color: #7873f5;
2852 -}
2853 -
2854 -/* Loading state for mappings */
2855 -.mxchat-loading-mappings {
2856 - text-align: center;
2857 - padding: 40px;
2858 - color: #666;
2859 -}
2860 -
2861 -.mxchat-role-spinner {
2862 - display: inline-block;
2863 - width: 20px;
2864 - height: 20px;
2865 - border: 2px solid rgba(120, 115, 245, 0.2);
2866 - border-top: 2px solid #7873f5;
2867 - border-radius: 50%;
2868 - animation: mxchat-role-spin 1s linear infinite;
2869 - margin-right: 10px;
2870 -}
2871 -
2872 -.mxchat-role-spinner.is-active {
2873 - display: inline-block;
2874 -}
2875 -
2876 -@keyframes mxchat-role-spin {
2877 - 0% { transform: rotate(0deg); }
2878 - 100% { transform: rotate(360deg); }
2879 -}
2880 -
2881 -/* Empty state */
2882 -#mxchat-no-mappings {
2883 - text-align: center;
2884 - padding: 40px;
2885 - color: #666;
2886 -}
2887 -
2888 -#mxchat-no-mappings .dashicons {
2889 - font-size: 48px;
2890 - opacity: 0.3;
2891 - margin-bottom: 15px;
2892 - display: block;
2893 -}
2894 -
2895 -#mxchat-no-mappings p {
2896 - margin: 0;
2897 - font-size: 14px;
2898 -}
2899 -
2900 -/* Bulk update section */
2901 -.mxchat-bulk-update-section {
2902 - margin-top: 30px;
2903 - padding-top: 30px;
2904 - border-top: 1px solid rgba(120, 115, 245, 0.1);
2905 -}
2906 -
2907 -.mxchat-bulk-update-section h4 {
2908 - margin-top: 0;
2909 - margin-bottom: 10px;
2910 - font-size: 16px;
2911 - color: #333;
2912 -}
2913 -
2914 -.mxchat-bulk-update-controls {
2915 - margin-top: 15px;
2916 -}
2917 -
2918 -#mxchat-bulk-update-roles {
2919 - display: inline-flex;
2920 - align-items: center;
2921 - gap: 8px;
2922 -}
2923 -
2924 -#mxchat-bulk-update-progress {
2925 - max-width: 600px;
2926 -}
2927 -
2928 -#mxchat-bulk-update-progress .mxchat-progress-bar {
2929 - height: 10px;
2930 - background: rgba(120, 115, 245, 0.1);
2931 - border-radius: 5px;
2932 - overflow: hidden;
2933 -}
2934 -
2935 -#mxchat-bulk-update-progress .mxchat-progress-fill {
2936 - height: 100%;
2937 - background: linear-gradient(135deg, #fa73e6, #7873f5);
2938 - transition: width 0.3s ease;
2939 -}
2940 -
2941 -.mxchat-progress-text {
2942 - margin-top: 10px;
2943 - color: #666;
2944 - font-size: 14px;
2945 -}
2946 -
2947 -/* Bulk update results */
2948 -#mxchat-bulk-update-result {
2949 - margin-top: 15px;
2950 - padding: 15px;
2951 - border-radius: 8px;
2952 -}
2953 -
2954 -#mxchat-bulk-update-result.success {
2955 - background-color: #f0f9eb;
2956 - border-left: 4px solid #67c23a;
2957 - color: #3c763d;
2958 -}
2959 -
2960 -#mxchat-bulk-update-result.error {
2961 - background-color: #fef0f0;
2962 - border-left: 4px solid #d63638;
2963 - color: #a94442;
2964 -}
2965 -
2966 -#mxchat-bulk-update-result h5 {
2967 - margin: 0 0 10px;
2968 - font-size: 15px;
2969 - font-weight: 600;
2970 -}
2971 -
2972 -#mxchat-bulk-update-result p {
2973 - margin: 5px 0;
2974 - font-size: 14px;
2975 -}
2976 -
2977 -/* Role mappings list container */
2978 -.mxchat-role-mappings-list {
2979 - margin-top: 25px;
2980 -}
2981 -
2982 -.mxchat-role-mappings-list h4 {
2983 - margin-top: 0;
2984 - margin-bottom: 15px;
2985 - font-size: 16px;
2986 - color: #333;
2987 -}
2988 -
2989 -/* Info banner styling (reuse existing pattern) */
2990 -.mxchat-role-info-banner {
2991 - display: flex;
2992 - align-items: center;
2993 - gap: 10px;
2994 - padding: 12px 16px;
2995 - margin-bottom: 20px;
2996 - border-radius: 6px;
2997 - font-size: 14px;
2998 - background: #f8f9ff;
2999 - border-left: 4px solid #7873f5;
3000 - color: #333;
3001 -}
3002 -
3003 -.mxchat-role-info-banner .dashicons {
3004 - color: #7873f5;
3005 - font-size: 18px;
3006 -}
3007 -
3008 -/* Responsive adjustments */
3009 -@media screen and (max-width: 782px) {
3010 - .mxchat-form-row {
3011 - flex-direction: column;
3012 - align-items: stretch;
3013 - }
3014 -
3015 - .mxchat-form-row .mxchat-form-group {
3016 - flex: 1;
3017 - max-width: none;
3018 - }
3019 -
3020 - .mxchat-form-row > div {
3021 - padding-bottom: 0;
3022 - }
3023 -
3024 - .mxchat-mappings-table {
3025 - display: block;
3026 - overflow-x: auto;
3027 - }
3028 -
3029 - .mxchat-mappings-table th,
3030 - .mxchat-mappings-table td {
3031 - padding: 10px;
3032 - font-size: 13px;
3033 - }
3034 -
3035 - .mxchat-mapping-actions {
3036 - flex-direction: column;
3037 - align-items: flex-start;
3038 - }
3039 -}
3040 -
3041 -/* RTL Support */
3042 -.rtl .mxchat-mappings-table th,
3043 -.rtl .mxchat-mappings-table td {
3044 - text-align: right;
3045 -}
3046 -
3047 -.rtl .mxchat-tag-badge {
3048 - flex-direction: row-reverse;
3049 -}
3050 -
3051 -.rtl .mxchat-role-info-banner {
3052 - border-left: none;
3053 - border-right: 4px solid #7873f5;
3054 -}
3055 -
3056 -.rtl .mxchat-bulk-update-section {
3057 - border-right: none;
3058 -}
3059 -
3060 -.rtl #mxchat-bulk-update-result {
3061 - border-left: none;
3062 - border-right: 4px solid;
3063 -}
3064 -
3065 -.rtl .mxchat-role-spinner {
3066 - margin-right: 0;
3067 - margin-left: 10px;
3068 -}
3069 -
3070 -/* ===== Chunk Grouping Styles ===== */
3071 -.mxchat-chunk-group-header {
3072 - background: rgba(120, 115, 245, 0.04) !important;
3073 - border-left: 3px solid #7873f5;
3074 -}
3075 -
3076 -.mxchat-chunk-group-header:hover {
3077 - background: rgba(120, 115, 245, 0.08) !important;
3078 -}
3079 -
3080 -.mxchat-chunk-group-info {
3081 - display: flex;
3082 - align-items: center;
3083 - gap: 12px;
3084 -}
3085 -
3086 -.mxchat-chunk-toggle {
3087 - flex-shrink: 0;
3088 - width: 28px;
3089 - height: 28px;
3090 - border: none;
3091 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.1), rgba(120, 115, 245, 0.1));
3092 - border-radius: 6px;
3093 - cursor: pointer;
3094 - display: inline-flex;
3095 - align-items: center;
3096 - justify-content: center;
3097 - transition: all 0.3s ease;
3098 - padding: 0;
3099 -}
3100 -
3101 -.mxchat-chunk-toggle:hover {
3102 - background: linear-gradient(135deg, rgba(250, 115, 230, 0.2), rgba(120, 115, 245, 0.2));
3103 - transform: scale(1.05);
3104 -}
3105 -
3106 -.mxchat-chunk-toggle .dashicons {
3107 - font-size: 16px;
3108 - color: #7873f5;
3109 - transition: transform 0.3s ease;
3110 -}
3111 -
3112 -.mxchat-chunk-toggle.expanded .dashicons {
3113 - transform: rotate(90deg);
3114 -}
3115 -
3116 -.mxchat-chunk-badge {
3117 - display: inline-flex;
3118 - align-items: center;
3119 - padding: 4px 10px;
3120 - background: linear-gradient(135deg, #7873f5, #3ac9d1);
3121 - color: white;
3122 - border-radius: 12px;
3123 - font-size: 12px;
3124 - font-weight: 600;
3125 - white-space: nowrap;
3126 -}
3127 -
3128 -.mxchat-chunk-preview {
3129 - flex: 1;
3130 - color: #666;
3131 - font-size: 13px;
3132 - overflow: hidden;
3133 - text-overflow: ellipsis;
3134 - white-space: nowrap;
3135 -}
3136 -
3137 -.mxchat-chunk-row {
3138 - border-left: 3px solid #e0e0e0;
3139 -}
3140 -
3141 -.mxchat-chunk-row td:first-child {
3142 - padding-left: 30px !important;
3143 -}
3144 -
3145 -.mxchat-chunk-indicator {
3146 - display: inline-flex;
3147 - align-items: center;
3148 - padding: 2px 8px;
3149 - background: #f0f0f0;
3150 - color: #666;
3151 - border-radius: 4px;
3152 - font-size: 11px;
3153 - font-weight: 500;
3154 -}
3155 -
3156 -.mxchat-chunk-label {
3157 - color: #999;
3158 - font-size: 12px;
3159 - font-style: italic;
3160 -}
3161 -
3162 -/* Delete button for chunk groups */
3163 -.delete-button-group {
3164 - background: none;
3165 - border: none;
3166 - cursor: pointer;
3167 - padding: 4px;
3168 - border-radius: 4px;
3169 - transition: all 0.2s ease;
3170 -}
3171 -
3172 -.delete-button-group:hover {
3173 - background: rgba(255, 0, 0, 0.1);
3174 -}
3175 -
3176 -.delete-button-group .dashicons {
3177 - color: #dc3545;
3178 -}
3179 -
3180 -.delete-button-group .dashicons.spin {
3181 - animation: mxchat-spin 1s linear infinite;
3182 -}
3183 -
3184 -@keyframes mxchat-spin {
3185 - from { transform: rotate(0deg); }
3186 - to { transform: rotate(360deg); }
3187 -}
3188 -
3189 -/* ===== Sitemap Detection Styles ===== */
3190 -.dashicons.spin {
3191 - animation: mxchat-spin 1s linear infinite;
3192 -}
3193 -
3194 -.mxchat-sitemap-group.expanded .mxchat-sitemap-sub-list {
3195 - display: block !important;
3196 -}
3197 -
3198 -.mxchat-sitemap-group.expanded .dashicons-arrow-right-alt2 {
3199 - transform: rotate(90deg) !important;
3200 -}
3201 -
3202 -.mxchat-sitemap-row:last-child {
3203 - border-bottom: none !important;
3204 -}
3205 -
3206 -.mxchat-detected-sitemaps {
3207 - margin-top: 24px;
3208 -}
3209 -
3210 -.mxchat-sitemaps-header {
3211 - display: flex;
3212 - align-items: center;
3213 - justify-content: space-between;
3214 - margin-bottom: 16px;
3215 -}
3216 -
3217 -.mxchat-sitemaps-header h4 {
3218 - margin: 0;
3219 - display: flex;
3220 - align-items: center;
3221 - gap: 8px;
3222 -}
3223 -
3224 -.mxchat-sitemaps-header h4 .dashicons {
3225 - color: #7873f5;
3226 -}
3227 -
3228 -.mxchat-sitemap-group {
3229 - margin-bottom: 16px;
3230 - border: 1px solid rgba(120, 115, 245, 0.2);
3231 - border-radius: 8px;
3232 - overflow: hidden;
3233 -}
3234 -
3235 -.mxchat-sitemap-group-header {
3236 - padding: 12px 16px;
3237 - background: #f8fafc;
3238 - display: flex;
3239 - align-items: center;
3240 - justify-content: space-between;
3241 - cursor: pointer;
3242 - transition: background-color 0.2s ease;
3243 -}
3244 -
3245 -.mxchat-sitemap-group-header:hover {
3246 - background: #f0f4f8;
3247 -}
3248 -
3249 -.mxchat-sitemap-sub-list {
3250 - display: none;
3251 - border-top: 1px solid rgba(120, 115, 245, 0.2);
3252 -}
3253 -
3254 -.mxchat-sitemap-row {
3255 - padding: 12px 16px;
3256 - display: flex;
3257 - align-items: center;
3258 - justify-content: space-between;
3259 - border-bottom: 1px solid rgba(120, 115, 245, 0.1);
3260 -}
3261 -
3262 -.mxchat-sitemap-row.sub-item {
3263 - padding-left: 40px;
3264 -}
3265 -
3266 -.mxchat-sitemaps-loading {
3267 - margin-top: 24px;
3268 - padding: 20px;
3269 - text-align: center;
3270 -}
3271 -
3272 -.mxchat-sitemaps-loading .dashicons {
3273 - font-size: 20px;
3274 - color: #7873f5;
3275 -}
3276 -
3277 -.mxchat-sitemaps-loading p {
3278 - margin: 8px 0 0;
3279 - color: #666;
3280 -}
3281 -
3282 -.mxchat-no-sitemaps {
3283 - margin-top: 24px;
3284 - padding: 20px;
3285 - background: #f8fafc;
3286 - border-radius: 8px;
3287 - text-align: center;
3288 -}
3289 -
3290 -.mxchat-no-sitemaps .dashicons {
3291 - font-size: 24px;
3292 - color: #999;
3293 - margin-bottom: 8px;
3294 -}
3295 -
3296 -.mxchat-no-sitemaps p {
3297 - margin: 0;
3298 - color: #666;
3299 -}
3300 -
3301 -/* ===== Admin Notice Dismiss Button Styles ===== */
3302 -.notice.is-dismissible {
3303 - position: relative;
3304 - padding-right: 38px;
3305 -}
3306 -
3307 -.notice-dismiss {
3308 - position: absolute;
3309 - top: 50%;
3310 - right: 8px;
3311 - transform: translateY(-50%);
3312 - padding: 0;
3313 - background: none;
3314 - border: none;
3315 - cursor: pointer;
3316 - color: #787c82;
3317 - width: 24px;
3318 - height: 24px;
3319 - display: flex;
3320 - align-items: center;
3321 - justify-content: center;
3322 - transition: color 0.2s ease;
3323 -}
3324 -
3325 -.notice-dismiss:hover {
3326 - color: #d63638;
3327 -}
3328 -
3329 -.notice-dismiss:before {
3330 - content: "\f153";
3331 - font-family: dashicons;
3332 - font-size: 16px;
3333 - line-height: 1;
3334 -}
3335 -
3336 -.notice-dismiss .screen-reader-text {
3337 - position: absolute;
3338 - width: 1px;
3339 - height: 1px;
3340 - padding: 0;
3341 - margin: -1px;
3342 - overflow: hidden;
3343 - clip: rect(0, 0, 0, 0);
3344 - white-space: nowrap;
3345 - border: 0;
3346 -}
3347 -
3348 -/* ===== AJAX Pagination Styles ===== */
3349 -.mxchat-kb-pagination-wrapper {
3350 - background: #f8fafc;
3351 -}
3352 -
3353 -.mxchat-ajax-pagination {
3354 - display: flex;
3355 - align-items: center;
3356 - justify-content: center;
3357 - gap: 8px;
3358 - flex-wrap: wrap;
3359 -}
3360 -
3361 -.mxchat-page-link {
3362 - display: inline-flex;
3363 - align-items: center;
3364 - justify-content: center;
3365 - min-width: 36px;
3366 - height: 36px;
3367 - padding: 0 12px;
3368 - background: #fff;
3369 - border: 1px solid var(--mxch-card-border, #e5e7eb);
3370 - border-radius: 6px;
3371 - color: var(--mxch-text-primary, #1f2937);
3372 - text-decoration: none;
3373 - font-size: 13px;
3374 - font-weight: 500;
3375 - transition: all 0.2s ease;
3376 - cursor: pointer;
3377 -}
3378 -
3379 -.mxchat-page-link:hover {
3380 - background: var(--mxch-primary, #7873f5);
3381 - border-color: var(--mxch-primary, #7873f5);
3382 - color: #fff;
3383 - text-decoration: none;
3384 -}
3385 -
3386 -.mxchat-page-link.loading {
3387 - opacity: 0.6;
3388 - pointer-events: none;
3389 -}
3390 -
3391 -.mxchat-page-current {
3392 - display: inline-flex;
3393 - align-items: center;
3394 - justify-content: center;
3395 - min-width: 36px;
3396 - height: 36px;
3397 - padding: 0 12px;
3398 - background: var(--mxch-primary, #7873f5);
3399 - border: 1px solid var(--mxch-primary, #7873f5);
3400 - border-radius: 6px;
3401 - color: #fff;
3402 - font-size: 13px;
3403 - font-weight: 600;
3404 -}
3405 -
3406 -.mxchat-page-dots {
3407 - display: inline-flex;
3408 - align-items: center;
3409 - justify-content: center;
3410 - min-width: 24px;
3411 - height: 36px;
3412 - color: var(--mxch-text-muted, #9ca3af);
3413 - font-size: 14px;
3414 -}
3415 -
3416 -.mxchat-pagination-loading {
3417 - margin-left: 12px;
3418 -}
3419 -
3420 -.mxchat-pagination-loading .dashicons {
3421 - color: var(--mxch-primary, #7873f5);
3422 -}
3423 -
3424 -/* Spin animation for loading indicator */
3425 -@keyframes mxchat-spin {
3426 - from { transform: rotate(0deg); }
3427 - to { transform: rotate(360deg); }
3428 -}
3429 -
3430 -.mxchat-pagination-loading .spin,
3431 -.mxchat-ajax-pagination .spin {
3432 - animation: mxchat-spin 1s linear infinite;
3433 -}
3434 -
3435 -/* Mobile responsive pagination */
3436 -@media (max-width: 600px) {
3437 - .mxchat-ajax-pagination {
3438 - gap: 4px;
3439 - }
3440 -
3441 - .mxchat-page-link,
3442 - .mxchat-page-current {
3443 - min-width: 32px;
3444 - height: 32px;
3445 - padding: 0 8px;
3446 - font-size: 12px;
3447 - }
3448 -
3449 - .mxchat-page-dots {
3450 - min-width: 20px;
3451 - }
3452 -}
3453 -
3454 -/* ========================================
3455 - BULK SELECTION STYLES
3456 - ======================================== */
3457 -
3458 -/* Bulk Actions Toolbar */
3459 -.mxchat-bulk-toolbar {
3460 - display: flex;
3461 - align-items: center;
3462 - gap: 12px;
3463 - padding: 12px 16px;
3464 - background: #f8fafc;
3465 - border: 1px solid var(--mxch-card-border);
3466 - border-bottom: none;
3467 - border-radius: var(--mxch-radius-md) var(--mxch-radius-md) 0 0;
3468 -}
3469 -
3470 -.mxchat-bulk-select-label {
3471 - display: flex;
3472 - align-items: center;
3473 - gap: 6px;
3474 - font-size: 13px;
3475 - color: var(--mxch-text-secondary);
3476 - cursor: pointer;
3477 -}
3478 -
3479 -.mxchat-bulk-select-label:hover {
3480 - color: var(--mxch-text-primary);
3481 -}
3482 -
3483 -.mxchat-entry-checkbox,
3484 -.mxchat-entry-checkbox-all {
3485 - width: 16px;
3486 - height: 16px;
3487 - cursor: pointer;
3488 - accent-color: var(--mxch-primary, #7873f5);
3489 -}
3490 -
3491 -.mxchat-bulk-actions {
3492 - display: flex;
3493 - align-items: center;
3494 - gap: 8px;
3495 - margin-left: auto;
3496 -}
3497 -
3498 -.mxchat-bulk-delete {
3499 - display: flex;
3500 - align-items: center;
3501 - gap: 6px;
3502 - color: var(--mxch-error, #dc2626) !important;
3503 - border-color: #fecaca !important;
3504 - background: transparent !important;
3505 -}
3506 -
3507 -.mxchat-bulk-delete:hover:not(:disabled) {
3508 - background: #fef2f2 !important;
3509 - border-color: #fca5a5 !important;
3510 -}
3511 -
3512 -.mxchat-bulk-delete:disabled {
3513 - opacity: 0.5;
3514 - cursor: not-allowed;
3515 -}
3516 -
3517 -.mxchat-selected-count {
3518 - font-size: 12px;
3519 - color: var(--mxch-primary, #7873f5);
3520 - font-weight: 600;
3521 - margin-left: 4px;
3522 -}
3523 -
3524 -/* Delete container - holds Delete All form and Delete Selected button */
3525 -.mxchat-delete-container {
3526 - display: flex;
3527 - align-items: center;
3528 -}
3529 -
3530 -/* Selected row highlighting */
3531 -#mxchat-records-table tr.selected {
3532 - background-color: rgba(120, 115, 245, 0.05) !important;
3533 -}
3534 -
3535 -#mxchat-records-table tr.selected td:first-child {
3536 - position: relative;
3537 -}
3538 -
3539 -#mxchat-records-table tr.selected td:first-child::before {
3540 - content: '';
3541 - position: absolute;
3542 - left: 0;
3543 - top: 0;
3544 - bottom: 0;
3545 - width: 3px;
3546 - background: var(--mxch-primary, #7873f5);
3547 -}
3548 -
3549 -/* Deleting state */
3550 -tr.mxchat-row-deleting {
3551 - opacity: 0.5;
3552 - pointer-events: none;
3553 -}
3554 -
3555 -/* Error state for failed deletions */
3556 -tr.mxchat-row-error {
3557 - background-color: rgba(220, 38, 38, 0.05) !important;
3558 -}
3559 -
3560 -tr.mxchat-row-error td:first-child {
3561 - position: relative;
3562 -}
3563 -
3564 -tr.mxchat-row-error td:first-child::before {
3565 - content: '';
3566 - position: absolute;
3567 - left: 0;
3568 - top: 0;
3569 - bottom: 0;
3570 - width: 3px;
3571 - background: var(--mxch-error, #dc2626);
3572 -}
3573 -
3574 -/* Spin animation for loading states */
3575 -.spin {
3576 - animation: mxchat-spin 1s linear infinite;
3577 -}
3578 -
3579 -/* Responsive adjustments for bulk toolbar */
3580 -@media (max-width: 768px) {
3581 - .mxchat-bulk-toolbar {
3582 - flex-wrap: wrap;
3583 - gap: 8px;
3584 - }
3585 -
3586 - .mxchat-bulk-delete-text {
3587 - display: none;
3588 - }
3589 -
3590 - .mxchat-bulk-actions {
3591 - margin-left: 0;
3592 - }
3593 -}
3594 -
3595 -/* ==========================================================================
3596 - Knowledge Base - Mobile Responsive
3597 - ========================================================================== */
3598 -
3599 -/* Desktop defaults for KB header controls */
3600 -.mxch-kb-header-controls {
3601 - display: flex;
3602 - gap: 10px;
3603 - align-items: center;
3604 -}
3605 -
3606 -.mxch-kb-search-form {
3607 - display: flex;
3608 - gap: 10px;
3609 -}
3610 -
3611 -.mxch-kb-search-input {
3612 - width: 200px;
3613 -}
3614 -
3615 -.mxch-kb-type-filter {
3616 - width: auto;
3617 -}
3618 -
3619 -/* Mobile: Knowledge Base card header stacks vertically */
3620 -@media screen and (max-width: 960px) {
3621 - /* Stack card header vertically */
3622 - #knowledge-base .mxch-card-header {
3623 - flex-direction: column;
3624 - align-items: stretch;
3625 - gap: 12px;
3626 - padding: 12px 16px;
3627 - }
3628 -
3629 - /* Title row wraps badges */
3630 - #knowledge-base .mxch-card-title {
3631 - flex-wrap: wrap;
3632 - font-size: 14px;
3633 - }
3634 -
3635 - /* Controls stack vertically */
3636 - .mxch-kb-header-controls {
3637 - flex-direction: column;
3638 - align-items: stretch;
3639 - gap: 8px;
3640 - width: 100%;
3641 - }
3642 -
3643 - /* Search form wraps */
3644 - .mxch-kb-search-form {
3645 - flex-wrap: wrap;
3646 - gap: 8px;
3647 - width: 100%;
3648 - }
3649 -
3650 - /* Search input takes full width */
3651 - .mxch-kb-search-input {
3652 - width: 100% !important;
3653 - flex: 1;
3654 - min-width: 0;
3655 - }
3656 -
3657 - /* Filter dropdown takes full width */
3658 - .mxch-kb-type-filter {
3659 - width: 100% !important;
3660 - flex: 1;
3661 - min-width: 0;
3662 - }
3663 -
3664 - /* Delete container full width */
3665 - .mxchat-delete-container {
3666 - width: 100%;
3667 - }
3668 -
3669 - .mxchat-delete-container form,
3670 - .mxchat-delete-container .mxchat-bulk-delete {
3671 - width: 100%;
3672 - }
3673 -
3674 - .mxchat-delete-container .mxch-btn {
3675 - width: 100%;
3676 - justify-content: center;
3677 - }
3678 -
3679 - /* Table: hide ID and Source columns on mobile to save space */
3680 - .mxchat-records-table th:nth-child(2),
3681 - .mxchat-records-table td:nth-child(2) {
3682 - display: none;
3683 - }
3684 -
3685 - .mxchat-records-table th:nth-child(4),
3686 - .mxchat-records-table td:nth-child(4) {
3687 - display: none;
3688 - }
3689 -
3690 - /* Content column needs more room */
3691 - .mxchat-content-cell {
3692 - max-width: none !important;
3693 - }
3694 -
3695 - /* Table cells padding */
3696 - .mxchat-records-table th,
3697 - .mxchat-records-table td {
3698 - padding: 10px 8px !important;
3699 - }
3700 -
3701 - /* Pagination wraps nicely */
3702 - .mxchat-ajax-pagination {
3703 - flex-wrap: wrap;
3704 - justify-content: center;
3705 - }
3706 -}
3707 -
3708 -/* Small mobile: further adjustments */
3709 -@media screen and (max-width: 480px) {
3710 - #knowledge-base .mxch-card-header {
3711 - padding: 10px 12px;
3712 - }
3713 -
3714 - #knowledge-base .mxch-card-title {
3715 - font-size: 13px;
3716 - }
3717 -
3718 - /* Search form items fully stacked */
3719 - .mxch-kb-search-form {
3720 - flex-direction: column;
3721 - }
3722 -
3723 - /* Smaller table text */
3724 - .mxchat-records-table {
3725 - font-size: 12px;
3726 - }
3727 -
3728 - .mxchat-records-table th,
3729 - .mxchat-records-table td {
3730 - padding: 8px 6px !important;
3731 - }
3732 -
3733 - /* Also hide Actions header text but keep the column for delete buttons */
3734 - .mxchat-records-table th:nth-child(5) {
3735 - font-size: 0;
3736 - padding: 8px 4px !important;
3737 - width: 40px;
3738 - }
3739 -}
3740 -
3741 -/* ─── Edit Entry Modal ─── */
3742 -
3743 -.mxchat-edit-entry-btn {
3744 - color: var(--mxch-primary, #7873f5);
3745 -}
3746 -.mxchat-edit-entry-btn:hover {
3747 - color: var(--mxch-primary-dark, #5b56d6);
3748 - background: rgba(120, 115, 245, 0.08);
3749 -}
3750 -
3751 -.mxchat-kb-edit-modal-content {
3752 - max-width: 760px;
3753 - max-height: 90vh;
3754 -}
3755 -
3756 -.mxchat-kb-edit-body {
3757 - flex: 1;
3758 - display: flex;
3759 - flex-direction: column;
3760 - padding: 20px;
3761 - overflow: hidden;
3762 - gap: 12px;
3763 -}
3764 -
3765 -.mxchat-kb-edit-source {
3766 - font-size: 12px;
3767 - color: var(--mxch-text-muted, #6b7280);
3768 - word-break: break-all;
3769 -}
3770 -.mxchat-kb-edit-source a {
3771 - color: var(--mxch-primary, #7873f5);
3772 - text-decoration: none;
3773 -}
3774 -
3775 -.mxchat-kb-edit-textarea {
3776 - flex: 1;
3777 - min-height: 300px;
3778 - max-height: 55vh;
3779 - width: 100%;
3780 - padding: 14px;
3781 - border: 1px solid var(--mxch-input-border, #d1d5db);
3782 - border-radius: 8px;
3783 - font-size: 14px;
3784 - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
3785 - line-height: 1.6;
3786 - resize: vertical;
3787 - color: var(--mxch-text-primary, #1a1a2e);
3788 - background: var(--mxch-input-bg, #fff);
3789 - box-sizing: border-box;
3790 - transition: border-color 0.2s;
3791 -}
3792 -.mxchat-kb-edit-textarea:focus {
3793 - outline: none;
3794 - border-color: var(--mxch-primary, #7873f5);
3795 - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
3796 -}
3797 -
3798 -.mxchat-kb-edit-meta {
3799 - display: flex;
3800 - justify-content: space-between;
3801 - font-size: 12px;
3802 - color: var(--mxch-text-muted, #6b7280);
3803 -}
3804 -
3805 -.mxchat-kb-edit-footer {
3806 - display: flex;
3807 - align-items: center;
3808 - justify-content: space-between;
3809 - padding: 14px 20px;
3810 - border-top: 1px solid #e5e5e5;
3811 - gap: 12px;
3812 -}
3813 -
3814 -.mxchat-kb-edit-notice {
3815 - flex: 1;
3816 - font-size: 13px;
3817 -}
3818 -.mxchat-kb-edit-notice.success { color: #16a34a; }
3819 -.mxchat-kb-edit-notice.error { color: #dc2626; }
3820 -
3821 -.mxchat-kb-edit-actions {
3822 - display: flex;
3823 - gap: 8px;
3824 - flex-shrink: 0;
3825 -}
3826 -
3827 -.mxchat-kb-edit-save-spinner {
3828 - display: inline-flex;
3829 - align-items: center;
3830 - gap: 6px;
3831 -}
3832 -
3833 -@media (max-width: 782px) {
3834 - .mxchat-kb-edit-modal-content {
3835 - width: 96%;
3836 - max-width: 96%;
3837 - margin: 10px auto;
3838 - max-height: 95vh;
3839 - }
3840 - .mxchat-kb-edit-body {
3841 - padding: 14px;
3842 - }
3843 - .mxchat-kb-edit-textarea {
3844 - min-height: 200px;
3845 - font-size: 15px;
3846 - }
3847 - .mxchat-kb-edit-footer {
3848 - flex-direction: column;
3849 - align-items: stretch;
3850 - }
3851 - .mxchat-kb-edit-actions {
3852 - justify-content: stretch;
3853 - }
3854 - .mxchat-kb-edit-actions .mxch-btn {
3855 - flex: 1;
3856 - text-align: center;
3857 - }
3858 -}