PluginProbe
MxChat – AI Chatbot & Content Generation for WordPress / 3.0.3
MxChat – AI Chatbot & Content Generation for WordPress v3.0.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/admin-sidebar.css +4 -676 3.2.73.0.3 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 ========================================================================== */
@@ -1288,87 +1288,8 @@
1288 1288 border: 1px solid #fecaca;
1289 1289 }
1290 1290
1291 1291 /* ==========================================================================
1292 - Disclosure (collapsible <details>)
1293 - Generic Advanced/opt-in surface — used for static-bearer fallback on
1294 - mxchat-mcp's Connected Apps tab, and any add-on that needs the same
1295 - "advanced/show more" pattern. Originally lived in plugins/mxchat-mcp/css/
1296 - admin-mcp.css; elevated here so every add-on inherits via the standard
1297 - admin-sidebar.css enqueue.
1298 - ========================================================================== */
1299 -.mxch-disclosure {
1300 - margin-top: 16px;
1301 - border: 1px solid var(--mxch-card-border, #e2e4e9);
1302 - border-radius: var(--mxch-radius-md, 6px);
1303 - background: #fbfcfd;
1304 -}
1305 -.mxch-disclosure[open] {
1306 - background: #fff;
1307 -}
1308 -.mxch-disclosure-summary {
1309 - display: flex;
1310 - align-items: center;
1311 - gap: 10px;
1312 - padding: 10px 14px;
1313 - cursor: pointer;
1314 - list-style: none;
1315 - user-select: none;
1316 - color: var(--mxch-text-secondary, #57606a);
1317 - font-size: 13px;
1318 - font-weight: 600;
1319 -}
1320 -.mxch-disclosure-summary::-webkit-details-marker { display: none; }
1321 -.mxch-disclosure-summary::before {
1322 - content: "";
1323 - display: inline-block;
1324 - width: 8px;
1325 - height: 8px;
1326 - border-right: 2px solid currentColor;
1327 - border-bottom: 2px solid currentColor;
1328 - transform: rotate(-45deg);
1329 - transition: transform 0.18s ease;
1330 - margin-right: 2px;
1331 -}
1332 -.mxch-disclosure[open] > .mxch-disclosure-summary::before {
1333 - transform: rotate(45deg);
1334 -}
1335 -.mxch-disclosure-summary svg {
1336 - flex-shrink: 0;
1337 - opacity: 0.7;
1338 -}
1339 -.mxch-disclosure-summary-text {
1340 - color: var(--mxch-text-primary, #1d2327);
1341 - font-weight: 600;
1342 -}
1343 -.mxch-disclosure-summary-hint {
1344 - color: var(--mxch-text-secondary, #57606a);
1345 - font-weight: 400;
1346 - font-size: 12px;
1347 -}
1348 -.mxch-disclosure-summary:hover .mxch-disclosure-summary-text {
1349 - color: var(--mxch-primary, #7873f5);
1350 -}
1351 -.mxch-disclosure-summary:focus-visible {
1352 - outline: 2px solid var(--mxch-primary, #7873f5);
1353 - outline-offset: 2px;
1354 - border-radius: var(--mxch-radius-md, 6px);
1355 -}
1356 -.mxch-disclosure-body {
1357 - padding: 8px 14px 14px 14px;
1358 - border-top: 1px solid var(--mxch-card-border, #e2e4e9);
1359 -}
1360 -@media (max-width: 600px) {
1361 - .mxch-disclosure-summary {
1362 - flex-wrap: wrap;
1363 - }
1364 - .mxch-disclosure-summary-hint {
1365 - flex-basis: 100%;
1366 - margin-left: 18px;
1367 - }
1368 -}
1369 -
1370 -/* ==========================================================================
1371 1292 Quick Questions List
1372 1293 ========================================================================== */
1373 1294 .mxch-quick-questions {
1374 1295 display: flex;
@@ -1897,24 +1818,8 @@
1897 1818
1898 1819 .mxch-rate-limit-controls {
1899 1820 flex-direction: column;
1900 1821 }
1901 -
1902 - /* Card headers stack on mobile */
1903 - .mxch-card-header {
1904 - flex-direction: column;
1905 - align-items: stretch;
1906 - gap: 12px;
1907 - }
1908 -
1909 - /* Content header adjustments */
1910 - .mxch-content-header {
1911 - margin-bottom: var(--mxch-spacing-md);
1912 - }
1913 -
1914 - .mxch-content-title {
1915 - font-size: 20px;
1916 - }
1917 1822 }
1918 1823
1919 1824 @media screen and (max-width: 600px) {
1920 1825 .mxch-content {
@@ -2043,25 +1948,12 @@
2043 1948 display: inline-flex;
2044 1949 vertical-align: middle;
2045 1950 }
2046 1951
2047 -/* Position feedback near inputs - use inline for form-table context */
2048 -.mxch-admin-wrapper .form-table input + .feedback-container,
2049 -.mxch-admin-wrapper .form-table select + .feedback-container,
2050 -.mxch-admin-wrapper .form-table textarea + .feedback-container {
2051 - position: relative;
2052 - display: inline-flex;
2053 - vertical-align: middle;
2054 - margin-left: 10px;
2055 - right: auto;
2056 - top: auto;
2057 - transform: none;
2058 -}
2059 -
2060 -/* Position feedback near inputs - absolute for card layouts with field-control */
2061 -.mxch-admin-wrapper .mxch-field-control input + .feedback-container,
2062 -.mxch-admin-wrapper .mxch-field-control select + .feedback-container,
2063 -.mxch-admin-wrapper .mxch-field-control textarea + .feedback-container {
1952 +/* Position feedback near inputs */
1953 +.mxch-admin-wrapper input + .feedback-container,
1954 +.mxch-admin-wrapper select + .feedback-container,
1955 +.mxch-admin-wrapper textarea + .feedback-container {
2064 1956 position: absolute;
2065 1957 right: -30px;
2066 1958 top: 50%;
2067 1959 transform: translateY(-50%);
@@ -2282,568 +2174,4 @@
2282 2174 width: 100%;
2283 2175 justify-content: center;
2284 2176 }
2285 2177 }
2286 -
2287 -/* ==========================================================================
2288 - API Key Fields - Prevent Browser Autofill
2289 - ========================================================================== */
2290 -
2291 -/* Mask API key fields like password fields but avoid browser password autofill */
2292 -.mxchat-api-key-field {
2293 - -webkit-text-security: disc;
2294 - text-security: disc;
2295 - font-family: monospace;
2296 -}
2297 -
2298 -/* Show actual text when focused or when show button toggled */
2299 -.mxchat-api-key-field.mxchat-show-key {
2300 - -webkit-text-security: none;
2301 - text-security: none;
2302 -}
2303 -
2304 -/* ==========================================================================
2305 - Debug & Optimization Tools
2306 - ========================================================================== */
2307 -
2308 -/* Debug Log Viewer */
2309 -.mxchat-debug-log-viewer {
2310 - max-height: 400px;
2311 - overflow-y: auto;
2312 - background: #f8fafc;
2313 - border: 1px solid var(--mxch-card-border, #e2e4e9);
2314 - border-radius: 8px;
2315 - padding: 0;
2316 -}
2317 -
2318 -.mxchat-debug-log-empty {
2319 - display: flex;
2320 - flex-direction: column;
2321 - align-items: center;
2322 - justify-content: center;
2323 - padding: 48px 24px;
2324 - text-align: center;
2325 - color: #64748b;
2326 -}
2327 -
2328 -.mxchat-debug-log-empty p {
2329 - margin: 16px 0 0;
2330 - font-size: 14px;
2331 -}
2332 -
2333 -.mxchat-debug-log-entries {
2334 - padding: 12px;
2335 -}
2336 -
2337 -.mxchat-debug-log-entry {
2338 - background: #ffffff;
2339 - border: 1px solid #e2e8f0;
2340 - border-radius: 8px;
2341 - padding: 12px;
2342 - margin-bottom: 8px;
2343 - font-size: 13px;
2344 -}
2345 -
2346 -.mxchat-debug-log-entry:last-child {
2347 - margin-bottom: 0;
2348 -}
2349 -
2350 -.mxchat-log-header {
2351 - display: flex;
2352 - justify-content: space-between;
2353 - align-items: center;
2354 - margin-bottom: 8px;
2355 -}
2356 -
2357 -.mxchat-log-type {
2358 - display: inline-block;
2359 - padding: 2px 8px;
2360 - border-radius: 4px;
2361 - font-size: 10px;
2362 - font-weight: 600;
2363 - text-transform: uppercase;
2364 - letter-spacing: 0.5px;
2365 - background: #e2e8f0;
2366 - color: #475569;
2367 -}
2368 -
2369 -.mxchat-log-type-settings_save .mxchat-log-type {
2370 - background: #dbeafe;
2371 - color: #1e40af;
2372 -}
2373 -
2374 -.mxchat-log-type-debug_mode .mxchat-log-type {
2375 - background: #fef3c7;
2376 - color: #92400e;
2377 -}
2378 -
2379 -.mxchat-log-type-api_error .mxchat-log-type {
2380 - background: #fee2e2;
2381 - color: #991b1b;
2382 -}
2383 -
2384 -.mxchat-log-type-reset .mxchat-log-type {
2385 - background: #fce7f3;
2386 - color: #9d174d;
2387 -}
2388 -
2389 -.mxchat-log-type-settings_export .mxchat-log-type {
2390 - background: #d1fae5;
2391 - color: #065f46;
2392 -}
2393 -
2394 -.mxchat-log-time {
2395 - font-size: 11px;
2396 - color: #94a3b8;
2397 -}
2398 -
2399 -.mxchat-log-message {
2400 - color: #334155;
2401 - line-height: 1.5;
2402 -}
2403 -
2404 -.mxchat-log-data {
2405 - margin-top: 8px;
2406 - padding: 8px;
2407 - background: #f1f5f9;
2408 - border-radius: 4px;
2409 - font-family: monospace;
2410 - font-size: 11px;
2411 - color: #64748b;
2412 - white-space: pre-wrap;
2413 - word-break: break-all;
2414 -}
2415 -
2416 -/* Settings Tools Grid */
2417 -.mxch-tools-grid {
2418 - display: grid;
2419 - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
2420 - gap: 24px;
2421 -}
2422 -
2423 -.mxch-tool-item {
2424 - display: flex;
2425 - gap: 16px;
2426 - padding: 20px;
2427 - background: #f8fafc;
2428 - border: 1px solid #e2e8f0;
2429 - border-radius: 12px;
2430 - transition: all 0.2s ease;
2431 -}
2432 -
2433 -.mxch-tool-item:hover {
2434 - border-color: var(--mxch-primary, #7873f5);
2435 - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
2436 -}
2437 -
2438 -.mxch-tool-item-danger {
2439 - border-color: #fecaca;
2440 - background: #fef2f2;
2441 -}
2442 -
2443 -.mxch-tool-item-danger:hover {
2444 - border-color: #ef4444;
2445 -}
2446 -
2447 -.mxch-tool-icon {
2448 - flex-shrink: 0;
2449 - width: 48px;
2450 - height: 48px;
2451 - display: flex;
2452 - align-items: center;
2453 - justify-content: center;
2454 - background: #ffffff;
2455 - border-radius: 10px;
2456 - color: var(--mxch-primary, #7873f5);
2457 - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
2458 -}
2459 -
2460 -.mxch-tool-item-danger .mxch-tool-icon {
2461 - color: #ef4444;
2462 -}
2463 -
2464 -.mxch-tool-content h4 {
2465 - margin: 0 0 6px;
2466 - font-size: 15px;
2467 - font-weight: 600;
2468 - color: #1e293b;
2469 -}
2470 -
2471 -.mxch-tool-content p {
2472 - margin: 0 0 12px;
2473 - font-size: 13px;
2474 - color: #64748b;
2475 - line-height: 1.5;
2476 -}
2477 -
2478 -/* Danger Button */
2479 -.mxch-btn-danger {
2480 - background: #ef4444 !important;
2481 - color: #ffffff !important;
2482 - border-color: #ef4444 !important;
2483 -}
2484 -
2485 -.mxch-btn-danger:hover {
2486 - background: #dc2626 !important;
2487 - border-color: #dc2626 !important;
2488 -}
2489 -
2490 -/* Badge Styles */
2491 -.mxch-badge {
2492 - display: inline-flex;
2493 - align-items: center;
2494 - padding: 4px 10px;
2495 - font-size: 12px;
2496 - font-weight: 500;
2497 - border-radius: 20px;
2498 - background: #e2e8f0;
2499 - color: #475569;
2500 -}
2501 -
2502 -.mxch-badge-warning {
2503 - background: #fef3c7;
2504 - color: #92400e;
2505 -}
2506 -
2507 -.mxch-badge-success {
2508 - background: #d1fae5;
2509 - color: #065f46;
2510 -}
2511 -
2512 -.mxch-badge-error {
2513 - background: #fee2e2;
2514 - color: #991b1b;
2515 -}
2516 -
2517 -/* Modal Styles */
2518 -.mxch-modal {
2519 - position: fixed;
2520 - top: 0;
2521 - left: 0;
2522 - right: 0;
2523 - bottom: 0;
2524 - z-index: 100000;
2525 - display: flex;
2526 - align-items: center;
2527 - justify-content: center;
2528 -}
2529 -
2530 -.mxch-modal-backdrop {
2531 - position: absolute;
2532 - top: 0;
2533 - left: 0;
2534 - right: 0;
2535 - bottom: 0;
2536 - background: rgba(0, 0, 0, 0.5);
2537 -}
2538 -
2539 -.mxch-modal-content {
2540 - position: relative;
2541 - width: 100%;
2542 - max-width: 480px;
2543 - background: #ffffff;
2544 - border-radius: 16px;
2545 - box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
2546 - margin: 20px;
2547 -}
2548 -
2549 -.mxch-modal-header {
2550 - display: flex;
2551 - justify-content: space-between;
2552 - align-items: center;
2553 - padding: 20px 24px;
2554 - border-bottom: 1px solid #e2e8f0;
2555 -}
2556 -
2557 -.mxch-modal-header h3 {
2558 - margin: 0;
2559 - font-size: 18px;
2560 - font-weight: 600;
2561 - color: #1e293b;
2562 -}
2563 -
2564 -.mxch-modal-close {
2565 - width: 32px;
2566 - height: 32px;
2567 - display: flex;
2568 - align-items: center;
2569 - justify-content: center;
2570 - background: none;
2571 - border: none;
2572 - font-size: 24px;
2573 - color: #64748b;
2574 - cursor: pointer;
2575 - border-radius: 8px;
2576 - transition: all 0.2s ease;
2577 -}
2578 -
2579 -.mxch-modal-close:hover {
2580 - background: #f1f5f9;
2581 - color: #1e293b;
2582 -}
2583 -
2584 -.mxch-modal-body {
2585 - padding: 24px;
2586 -}
2587 -
2588 -.mxch-modal-footer {
2589 - display: flex;
2590 - justify-content: flex-end;
2591 - gap: 12px;
2592 - padding: 16px 24px;
2593 - border-top: 1px solid #e2e8f0;
2594 - background: #f8fafc;
2595 - border-radius: 0 0 16px 16px;
2596 -}
2597 -
2598 -/* Input in modal */
2599 -.mxch-input {
2600 - width: 100%;
2601 - padding: 10px 14px;
2602 - font-size: 14px;
2603 - border: 1px solid #d1d5db;
2604 - border-radius: 8px;
2605 - transition: all 0.2s ease;
2606 -}
2607 -
2608 -.mxch-input:focus {
2609 - outline: none;
2610 - border-color: var(--mxch-primary, #7873f5);
2611 - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1);
2612 -}
2613 -
2614 -/* Responsive adjustments for tools */
2615 -@media screen and (max-width: 768px) {
2616 - .mxch-tools-grid {
2617 - grid-template-columns: 1fr;
2618 - }
2619 -
2620 - .mxch-tool-item {
2621 - flex-direction: column;
2622 - text-align: center;
2623 - }
2624 -
2625 - .mxch-tool-icon {
2626 - margin: 0 auto;
2627 - }
2628 -
2629 - .mxchat-debug-log-viewer {
2630 - max-height: 300px;
2631 - }
2632 -
2633 - .mxch-modal-content {
2634 - margin: 10px;
2635 - }
2636 -}
2637 -
2638 -/* ============================================================
2639 - Dashboard page (Setup Assistant + dashboard cards)
2640 - Added with plan-mxchat-20260526-704e25.
2641 - ============================================================ */
2642 -
2643 -.mxch-setup-card .mxch-card-body {
2644 - padding-top: var(--mxch-spacing-md);
2645 -}
2646 -
2647 -.mxch-progress-bar {
2648 - height: 6px;
2649 - background: var(--mxch-card-border, #e5e7eb);
2650 - border-radius: 999px;
2651 - overflow: hidden;
2652 - margin: var(--mxch-spacing-sm) 0 var(--mxch-spacing-xs);
2653 -}
2654 -
2655 -.mxch-progress-bar-fill {
2656 - height: 100%;
2657 - background: linear-gradient(90deg, var(--mxch-primary) 0%, #9b96ff 100%);
2658 - border-radius: 999px;
2659 - transition: width 400ms cubic-bezier(0.22, 1, 0.36, 1);
2660 -}
2661 -
2662 -.mxch-progress-label {
2663 - font-size: 12px;
2664 - color: var(--mxch-text-secondary);
2665 - margin: 0 0 var(--mxch-spacing-md);
2666 - font-weight: 500;
2667 -}
2668 -
2669 -.mxch-step-list {
2670 - list-style: none;
2671 - margin: 0;
2672 - padding: 0;
2673 - display: flex;
2674 - flex-direction: column;
2675 - gap: var(--mxch-spacing-sm);
2676 -}
2677 -
2678 -.mxch-step {
2679 - display: grid;
2680 - grid-template-columns: 32px 1fr auto;
2681 - align-items: center;
2682 - gap: var(--mxch-spacing-md);
2683 - padding: var(--mxch-spacing-md);
2684 - background: var(--mxch-content-bg, #f7f8fa);
2685 - border: 1px solid transparent;
2686 - border-radius: var(--mxch-radius-md);
2687 - transition: background 160ms ease, border-color 160ms ease;
2688 -}
2689 -
2690 -.mxch-step.mxch-step-in-progress {
2691 - background: var(--mxch-primary-lighter, rgba(120, 115, 245, 0.05));
2692 - border-color: var(--mxch-primary-light, rgba(120, 115, 245, 0.1));
2693 -}
2694 -
2695 -.mxch-step.mxch-step-done {
2696 - background: rgba(16, 185, 129, 0.06);
2697 -}
2698 -
2699 -.mxch-step-indicator {
2700 - width: 28px;
2701 - height: 28px;
2702 - border-radius: 50%;
2703 - display: flex;
2704 - align-items: center;
2705 - justify-content: center;
2706 - font-size: 13px;
2707 - font-weight: 600;
2708 - background: #fff;
2709 - color: var(--mxch-text-secondary, #64748b);
2710 - border: 1.5px solid var(--mxch-card-border, #e5e7eb);
2711 - flex-shrink: 0;
2712 -}
2713 -
2714 -.mxch-step-in-progress .mxch-step-indicator {
2715 - color: var(--mxch-primary);
2716 - border-color: var(--mxch-primary);
2717 - background: #fff;
2718 - box-shadow: 0 0 0 4px var(--mxch-primary-lighter, rgba(120, 115, 245, 0.06));
2719 -}
2720 -
2721 -.mxch-step-done .mxch-step-indicator {
2722 - background: var(--mxch-success, #10b981);
2723 - border-color: var(--mxch-success, #10b981);
2724 - color: #fff;
2725 -}
2726 -
2727 -.mxch-step-number {
2728 - line-height: 1;
2729 -}
2730 -
2731 -.mxch-step-body {
2732 - min-width: 0;
2733 -}
2734 -
2735 -.mxch-step-title {
2736 - font-size: 14px;
2737 - font-weight: 600;
2738 - color: var(--mxch-text-primary, #1a1a2e);
2739 - margin-bottom: 2px;
2740 -}
2741 -
2742 -.mxch-step-done .mxch-step-title {
2743 - color: var(--mxch-text-secondary, #64748b);
2744 -}
2745 -
2746 -.mxch-step-description {
2747 - font-size: 12.5px;
2748 - color: var(--mxch-text-secondary, #64748b);
2749 - line-height: 1.45;
2750 -}
2751 -
2752 -.mxch-step-action {
2753 - align-self: center;
2754 -}
2755 -
2756 -.mxch-setup-dismiss-row {
2757 - margin-top: var(--mxch-spacing-md);
2758 - text-align: right;
2759 -}
2760 -
2761 -.mxch-setup-dismiss,
2762 -.mxch-setup-resume {
2763 - font-size: 12.5px;
2764 - color: var(--mxch-text-secondary, #64748b);
2765 - text-decoration: none;
2766 - border-bottom: 1px dotted currentColor;
2767 -}
2768 -
2769 -.mxch-setup-dismiss:hover,
2770 -.mxch-setup-resume:hover {
2771 - color: var(--mxch-primary);
2772 -}
2773 -
2774 -.mxch-resume-setup-row {
2775 - margin: 0 0 var(--mxch-spacing-md);
2776 - text-align: right;
2777 -}
2778 -
2779 -.mxch-dashboard-grid {
2780 - display: grid;
2781 - grid-template-columns: repeat(3, minmax(0, 1fr));
2782 - gap: var(--mxch-spacing-md);
2783 - margin-top: var(--mxch-spacing-lg);
2784 -}
2785 -
2786 -.mxch-dashboard-card .mxch-card-body {
2787 - display: flex;
2788 - flex-direction: column;
2789 - gap: var(--mxch-spacing-sm);
2790 -}
2791 -
2792 -.mxch-dashboard-big-number {
2793 - font-size: 36px;
2794 - font-weight: 700;
2795 - color: var(--mxch-text-primary, #1a1a2e);
2796 - line-height: 1.1;
2797 - letter-spacing: -0.02em;
2798 -}
2799 -
2800 -.mxch-dashboard-provider-name {
2801 - font-size: 16px;
2802 - font-weight: 600;
2803 - color: var(--mxch-text-primary, #1a1a2e);
2804 - word-break: break-word;
2805 -}
2806 -
2807 -.mxch-dashboard-card-meta {
2808 - font-size: 13px;
2809 - color: var(--mxch-text-secondary, #64748b);
2810 - margin: 0;
2811 -}
2812 -
2813 -@media (max-width: 1024px) {
2814 - .mxch-dashboard-grid {
2815 - grid-template-columns: 1fr 1fr;
2816 - }
2817 -}
2818 -
2819 -@media (max-width: 782px) {
2820 - .mxch-step {
2821 - grid-template-columns: 32px 1fr;
2822 - grid-template-rows: auto auto;
2823 - gap: var(--mxch-spacing-sm) var(--mxch-spacing-md);
2824 - }
2825 - .mxch-step-action {
2826 - grid-column: 1 / -1;
2827 - text-align: right;
2828 - }
2829 - .mxch-dashboard-grid {
2830 - grid-template-columns: 1fr;
2831 - }
2832 -}
2833 -
2834 -/* ------------------------------------------------------------------
2835 - * Test Streaming Compatibility button (AI Models page)
2836 - * Branded .mxch-btn replacing the legacy WP button + dashicon wrench.
2837 - * ------------------------------------------------------------------ */
2838 -.mxch-streaming-test-row {
2839 - margin-top: var(--mxch-spacing-md, 16px);
2840 -}
2841 -.mxch-streaming-test-row .mxch-streaming-test-icon {
2842 - vertical-align: middle;
2843 - margin-right: 8px;
2844 -}
2845 -.mxch-streaming-test-result {
2846 - margin-top: var(--mxch-spacing-sm, 12px);
2847 - font-weight: 600;
2848 - color: var(--mxch-text-primary, #1a1a2e);
2849 -}