PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.0.9
MxChat – AI Chatbot & Content Generation for WordPress v3.0.9
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/admin-sidebar.css +0 -417 3.2.213.0.9 View file →
@@ -1,4 +1,4 @@
1 1 /* ==========================================================================
2 2 MxChat Admin Sidebar Navigation - v2.0
3 3 Clean, modern CSS for the redesigned settings page
4 4 ========================================================================== */
@@ -40,10 +40,8 @@
40 40
41 41 /* Status Colors */
42 42 --mxch-success: #10b981;
43 43 --mxch-warning: #f59e0b;
44 - --mxch-warning-light: rgba(245, 158, 11, 0.12);
45 - --mxch-warning-text: #92400e;
46 44 --mxch-error: #ef4444;
47 45 --mxch-info: #3b82f6;
48 46
49 47 /* Spacing */
@@ -94,49 +92,8 @@
94 92 }
95 93 }
96 94
97 95 /* ==========================================================================
98 - RTL locales (Arabic, Hebrew, Persian, Urdu, …)
99 - On an RTL locale WordPress moves its admin menu to the RIGHT and sets the
100 - `rtl` class + `direction: rtl` on <body>. The base wrapper is pinned
101 - `left: 160px; right: 0` for a LEFT-side admin menu, so under RTL its right
102 - edge slides under the (now right-side) WP menu and a dead 160px gap opens on
103 - the left — the nav ends up hidden/overlapped. Mirror the fixed offsets and
104 - the negative content margin. The internal sidebar/content flex row reverses
105 - automatically under the inherited `direction: rtl`, so the sidebar lands on
106 - the wrapper's right edge (just inside the WP menu) as expected for RTL — no
107 - per-child repositioning needed.
108 - ========================================================================== */
109 -body.rtl .mxch-admin-wrapper {
110 - left: 0;
111 - right: 160px; /* WordPress admin menu width (now on the right) */
112 - margin-left: 0;
113 - margin-right: -20px;
114 -}
115 -
116 -/* Collapsed/folded admin menu (narrower) on RTL */
117 -body.rtl.folded .mxch-admin-wrapper {
118 - left: 0;
119 - right: 36px;
120 -}
121 -
122 -/* On mobile the WP admin menu collapses to the top bar, so the wrapper is
123 - full-width in both directions — clear the RTL right offset too. */
124 -@media screen and (max-width: 782px) {
125 - body.rtl .mxch-admin-wrapper {
126 - left: 0;
127 - right: 0;
128 - margin-right: 0;
129 - }
130 -}
131 -
132 -/* Active nav-item accent sits on the sidebar's inner edge; flip it for RTL. */
133 -body.rtl .mxch-nav-link.active {
134 - border-right: none;
135 - border-left: 3px solid var(--mxch-primary);
136 -}
137 -
138 -/* ==========================================================================
139 96 Sidebar Navigation
140 97 ========================================================================== */
141 98 .mxch-sidebar {
142 99 width: var(--mxch-sidebar-width);
@@ -1197,23 +1154,8 @@
1197 1154 flex: 1;
1198 1155 margin-bottom: 0;
1199 1156 }
1200 1157
1201 -/* Global cap "Current usage" readout (plan-mxchat-20260603-e9b3f9) */
1202 -.mxch-rate-limit-usage {
1203 - margin-top: var(--mxch-spacing-md);
1204 - padding-top: var(--mxch-spacing-md);
1205 - border-top: 1px solid var(--mxch-card-border);
1206 -}
1207 -
1208 -.mxch-rate-limit-usage-head {
1209 - display: flex;
1210 - align-items: center;
1211 - justify-content: space-between;
1212 - gap: var(--mxch-spacing-md);
1213 - margin-bottom: var(--mxch-spacing-xs);
1214 -}
1215 -
1216 1158 /* ==========================================================================
1217 1159 Buttons
1218 1160 ========================================================================== */
1219 1161 .mxch-btn {
@@ -1345,95 +1287,9 @@
1345 1287 color: #991b1b;
1346 1288 border: 1px solid #fecaca;
1347 1289 }
1348 1290
1349 -/* Standalone notice sitting between a content header and the first card.
1350 - Token-based replacement for the inline margin declarations this component
1351 - has been carrying at its call sites (b65e8d). */
1352 -.mxch-notice-block {
1353 - margin-bottom: var(--mxch-spacing-lg);
1354 -}
1355 -
1356 1291 /* ==========================================================================
1357 - Disclosure (collapsible <details>)
1358 - Generic Advanced/opt-in surface — used for static-bearer fallback on
1359 - mxchat-mcp's Connected Apps tab, and any add-on that needs the same
1360 - "advanced/show more" pattern. Originally lived in plugins/mxchat-mcp/css/
1361 - admin-mcp.css; elevated here so every add-on inherits via the standard
1362 - admin-sidebar.css enqueue.
1363 - ========================================================================== */
1364 -.mxch-disclosure {
1365 - margin-top: 16px;
1366 - border: 1px solid var(--mxch-card-border, #e2e4e9);
1367 - border-radius: var(--mxch-radius-md, 6px);
1368 - background: #fbfcfd;
1369 -}
1370 -.mxch-disclosure[open] {
1371 - background: #fff;
1372 -}
1373 -.mxch-disclosure-summary {
1374 - display: flex;
1375 - align-items: center;
1376 - gap: 10px;
1377 - padding: 10px 14px;
1378 - cursor: pointer;
1379 - list-style: none;
1380 - user-select: none;
1381 - color: var(--mxch-text-secondary, #57606a);
1382 - font-size: 13px;
1383 - font-weight: 600;
1384 -}
1385 -.mxch-disclosure-summary::-webkit-details-marker { display: none; }
1386 -.mxch-disclosure-summary::before {
1387 - content: "";
1388 - display: inline-block;
1389 - width: 8px;
1390 - height: 8px;
1391 - border-right: 2px solid currentColor;
1392 - border-bottom: 2px solid currentColor;
1393 - transform: rotate(-45deg);
1394 - transition: transform 0.18s ease;
1395 - margin-right: 2px;
1396 -}
1397 -.mxch-disclosure[open] > .mxch-disclosure-summary::before {
1398 - transform: rotate(45deg);
1399 -}
1400 -.mxch-disclosure-summary svg {
1401 - flex-shrink: 0;
1402 - opacity: 0.7;
1403 -}
1404 -.mxch-disclosure-summary-text {
1405 - color: var(--mxch-text-primary, #1d2327);
1406 - font-weight: 600;
1407 -}
1408 -.mxch-disclosure-summary-hint {
1409 - color: var(--mxch-text-secondary, #57606a);
1410 - font-weight: 400;
1411 - font-size: 12px;
1412 -}
1413 -.mxch-disclosure-summary:hover .mxch-disclosure-summary-text {
1414 - color: var(--mxch-primary, #7873f5);
1415 -}
1416 -.mxch-disclosure-summary:focus-visible {
1417 - outline: 2px solid var(--mxch-primary, #7873f5);
1418 - outline-offset: 2px;
1419 - border-radius: var(--mxch-radius-md, 6px);
1420 -}
1421 -.mxch-disclosure-body {
1422 - padding: 8px 14px 14px 14px;
1423 - border-top: 1px solid var(--mxch-card-border, #e2e4e9);
1424 -}
1425 -@media (max-width: 600px) {
1426 - .mxch-disclosure-summary {
1427 - flex-wrap: wrap;
1428 - }
1429 - .mxch-disclosure-summary-hint {
1430 - flex-basis: 100%;
1431 - margin-left: 18px;
1432 - }
1433 -}
1434 -
1435 -/* ==========================================================================
1436 1292 Quick Questions List
1437 1293 ========================================================================== */
1438 1294 .mxch-quick-questions {
1439 1295 display: flex;
@@ -2141,43 +1997,8 @@
2141 1997 .mxch-admin-wrapper .slider-container + .feedback-container {
2142 1998 margin-left: 15px;
2143 1999 }
2144 2000
2145 -/* Persistent unsaved-state badge (plan 7787f8). Quiet warning, not an error:
2146 - a field whose value differs from its last-saved state carries this on its
2147 - label until the autosave round-trip confirms. */
2148 -.mxch-admin-wrapper .mxchat-unsaved-badge {
2149 - display: inline-flex;
2150 - align-items: center;
2151 - gap: 5px;
2152 - margin-left: 8px;
2153 - padding: 1px 8px 1px 6px;
2154 - border-radius: 10px;
2155 - background: var(--mxch-warning-light);
2156 - color: var(--mxch-warning-text);
2157 - font-size: 11px;
2158 - font-weight: 600;
2159 - line-height: 1.6;
2160 - letter-spacing: 0.2px;
2161 - vertical-align: middle;
2162 - white-space: nowrap;
2163 - animation: mxchUnsavedIn 0.15s ease-out;
2164 -}
2165 -
2166 -.mxch-admin-wrapper .mxchat-unsaved-badge::before {
2167 - content: '';
2168 - width: 6px;
2169 - height: 6px;
2170 - border-radius: 50%;
2171 - background: var(--mxch-warning);
2172 - flex: none;
2173 -}
2174 -
2175 -@keyframes mxchUnsavedIn {
2176 - from { opacity: 0; transform: translateY(1px); }
2177 - to { opacity: 1; transform: none; }
2178 -}
2179 -
2180 2001 /* ==========================================================================
2181 2002 Real-time Entry Updates
2182 2003 ========================================================================== */
2183 2004
@@ -2733,242 +2554,4 @@
2733 2554 .mxch-modal-content {
2734 2555 margin: 10px;
2735 2556 }
2736 2557 }
2737 -
2738 -/* ============================================================
2739 - Dashboard page (Setup Assistant + dashboard cards)
2740 - Added with plan-mxchat-20260526-704e25.
2741 - ============================================================ */
2742 -
2743 -.mxch-setup-card .mxch-card-body {
2744 - padding-top: var(--mxch-spacing-md);
2745 -}
2746 -
2747 -.mxch-progress-bar {
2748 - height: 6px;
2749 - background: var(--mxch-card-border, #e5e7eb);
2750 - border-radius: 999px;
2751 - overflow: hidden;
2752 - margin: var(--mxch-spacing-sm) 0 var(--mxch-spacing-xs);
2753 -}
2754 -
2755 -.mxch-progress-bar-fill {
2756 - height: 100%;
2757 - background: linear-gradient(90deg, var(--mxch-primary) 0%, #9b96ff 100%);
2758 - border-radius: 999px;
2759 - transition: width 400ms cubic-bezier(0.22, 1, 0.36, 1);
2760 -}
2761 -
2762 -.mxch-progress-label {
2763 - font-size: 12px;
2764 - color: var(--mxch-text-secondary);
2765 - margin: 0 0 var(--mxch-spacing-md);
2766 - font-weight: 500;
2767 -}
2768 -
2769 -.mxch-step-list {
2770 - list-style: none;
2771 - margin: 0;
2772 - padding: 0;
2773 - display: flex;
2774 - flex-direction: column;
2775 - gap: var(--mxch-spacing-sm);
2776 -}
2777 -
2778 -.mxch-step {
2779 - display: grid;
2780 - grid-template-columns: 32px 1fr auto;
2781 - align-items: center;
2782 - gap: var(--mxch-spacing-md);
2783 - padding: var(--mxch-spacing-md);
2784 - background: var(--mxch-content-bg, #f7f8fa);
2785 - border: 1px solid transparent;
2786 - border-radius: var(--mxch-radius-md);
2787 - transition: background 160ms ease, border-color 160ms ease;
2788 -}
2789 -
2790 -.mxch-step.mxch-step-in-progress {
2791 - background: var(--mxch-primary-lighter, rgba(120, 115, 245, 0.05));
2792 - border-color: var(--mxch-primary-light, rgba(120, 115, 245, 0.1));
2793 -}
2794 -
2795 -.mxch-step.mxch-step-done {
2796 - background: rgba(16, 185, 129, 0.06);
2797 -}
2798 -
2799 -.mxch-step-indicator {
2800 - width: 28px;
2801 - height: 28px;
2802 - border-radius: 50%;
2803 - display: flex;
2804 - align-items: center;
2805 - justify-content: center;
2806 - font-size: 13px;
2807 - font-weight: 600;
2808 - background: #fff;
2809 - color: var(--mxch-text-secondary, #64748b);
2810 - border: 1.5px solid var(--mxch-card-border, #e5e7eb);
2811 - flex-shrink: 0;
2812 -}
2813 -
2814 -.mxch-step-in-progress .mxch-step-indicator {
2815 - color: var(--mxch-primary);
2816 - border-color: var(--mxch-primary);
2817 - background: #fff;
2818 - box-shadow: 0 0 0 4px var(--mxch-primary-lighter, rgba(120, 115, 245, 0.06));
2819 -}
2820 -
2821 -.mxch-step-done .mxch-step-indicator {
2822 - background: var(--mxch-success, #10b981);
2823 - border-color: var(--mxch-success, #10b981);
2824 - color: #fff;
2825 -}
2826 -
2827 -.mxch-step-number {
2828 - line-height: 1;
2829 -}
2830 -
2831 -.mxch-step-body {
2832 - min-width: 0;
2833 -}
2834 -
2835 -.mxch-step-title {
2836 - font-size: 14px;
2837 - font-weight: 600;
2838 - color: var(--mxch-text-primary, #1a1a2e);
2839 - margin-bottom: 2px;
2840 -}
2841 -
2842 -.mxch-step-done .mxch-step-title {
2843 - color: var(--mxch-text-secondary, #64748b);
2844 -}
2845 -
2846 -.mxch-step-description {
2847 - font-size: 12.5px;
2848 - color: var(--mxch-text-secondary, #64748b);
2849 - line-height: 1.45;
2850 -}
2851 -
2852 -.mxch-step-action {
2853 - align-self: center;
2854 -}
2855 -
2856 -.mxch-setup-dismiss-row {
2857 - margin-top: var(--mxch-spacing-md);
2858 - text-align: right;
2859 -}
2860 -
2861 -.mxch-setup-dismiss,
2862 -.mxch-setup-resume {
2863 - font-size: 12.5px;
2864 - color: var(--mxch-text-secondary, #64748b);
2865 - text-decoration: none;
2866 - border-bottom: 1px dotted currentColor;
2867 -}
2868 -
2869 -.mxch-setup-dismiss:hover,
2870 -.mxch-setup-resume:hover {
2871 - color: var(--mxch-primary);
2872 -}
2873 -
2874 -.mxch-resume-setup-row {
2875 - margin: 0 0 var(--mxch-spacing-md);
2876 - text-align: right;
2877 -}
2878 -
2879 -.mxch-dashboard-grid {
2880 - display: grid;
2881 - grid-template-columns: repeat(3, minmax(0, 1fr));
2882 - gap: var(--mxch-spacing-md);
2883 - margin-top: var(--mxch-spacing-lg);
2884 -}
2885 -
2886 -.mxch-dashboard-card .mxch-card-body {
2887 - display: flex;
2888 - flex-direction: column;
2889 - gap: var(--mxch-spacing-sm);
2890 -}
2891 -
2892 -.mxch-dashboard-big-number {
2893 - font-size: 36px;
2894 - font-weight: 700;
2895 - color: var(--mxch-text-primary, #1a1a2e);
2896 - line-height: 1.1;
2897 - letter-spacing: -0.02em;
2898 -}
2899 -
2900 -.mxch-dashboard-provider-name {
2901 - font-size: 16px;
2902 - font-weight: 600;
2903 - color: var(--mxch-text-primary, #1a1a2e);
2904 - word-break: break-word;
2905 -}
2906 -
2907 -.mxch-dashboard-card-meta {
2908 - font-size: 13px;
2909 - color: var(--mxch-text-secondary, #64748b);
2910 - margin: 0;
2911 -}
2912 -
2913 -@media (max-width: 1024px) {
2914 - .mxch-dashboard-grid {
2915 - grid-template-columns: 1fr 1fr;
2916 - }
2917 -}
2918 -
2919 -@media (max-width: 782px) {
2920 - .mxch-step {
2921 - grid-template-columns: 32px 1fr;
2922 - grid-template-rows: auto auto;
2923 - gap: var(--mxch-spacing-sm) var(--mxch-spacing-md);
2924 - }
2925 - .mxch-step-action {
2926 - grid-column: 1 / -1;
2927 - text-align: right;
2928 - }
2929 - .mxch-dashboard-grid {
2930 - grid-template-columns: 1fr;
2931 - }
2932 -}
2933 -
2934 -/* ------------------------------------------------------------------
2935 - * Test Streaming Compatibility button (AI Models page)
2936 - * Branded .mxch-btn replacing the legacy WP button + dashicon wrench.
2937 - * ------------------------------------------------------------------ */
2938 -.mxch-streaming-test-row {
2939 - margin-top: var(--mxch-spacing-md, 16px);
2940 -}
2941 -.mxch-streaming-test-row .mxch-streaming-test-icon {
2942 - vertical-align: middle;
2943 - margin-right: 8px;
2944 -}
2945 -.mxch-streaming-test-result {
2946 - margin-top: var(--mxch-spacing-sm, 12px);
2947 - font-weight: 600;
2948 - color: var(--mxch-text-primary, #1a1a2e);
2949 -}
2950 -
2951 -/* ------------------------------------------------------------------
2952 - * Status pill — documented shell component (CLAUDE.md design table).
2953 - * Moved here from admin-api-page.php's inline <style> (plan b6e4d4) so
2954 - * every admin page renders it, not just the API page. Rules are
2955 - * byte-identical to the inline originals.
2956 - * ------------------------------------------------------------------ */
2957 -.mxch-status-pill {
2958 - display: inline-flex;
2959 - align-items: center;
2960 - gap: 6px;
2961 - padding: 4px 10px;
2962 - border-radius: 999px;
2963 - font-size: 12px;
2964 - font-weight: 600;
2965 -}
2966 -.mxch-status-pill .mxch-status-dot {
2967 - width: 8px;
2968 - height: 8px;
2969 - border-radius: 50%;
2970 -}
2971 -.mxch-status-pill-active { background: #e6f4ea; color: #1d7a3a; }
2972 -.mxch-status-pill-active .mxch-status-dot { background: #1d7a3a; }
2973 -.mxch-status-pill-disabled { background: #fef3e2; color: #a04a00; }
2974 -.mxch-status-pill-disabled .mxch-status-dot { background: #a04a00; }