| @@ -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; |
| @@ -1962,24 +1818,8 @@ | ||
| 1962 | 1818 | |
| 1963 | 1819 | .mxch-rate-limit-controls { |
| 1964 | 1820 | flex-direction: column; |
| 1965 | 1821 | } |
| 1966 | - | |
| 1967 | - /* Card headers stack on mobile */ | |
| 1968 | - .mxch-card-header { | |
| 1969 | - flex-direction: column; | |
| 1970 | - align-items: stretch; | |
| 1971 | - gap: 12px; | |
| 1972 | - } | |
| 1973 | - | |
| 1974 | - /* Content header adjustments */ | |
| 1975 | - .mxch-content-header { | |
| 1976 | - margin-bottom: var(--mxch-spacing-md); | |
| 1977 | - } | |
| 1978 | - | |
| 1979 | - .mxch-content-title { | |
| 1980 | - font-size: 20px; | |
| 1981 | - } | |
| 1982 | 1822 | } |
| 1983 | 1823 | |
| 1984 | 1824 | @media screen and (max-width: 600px) { |
| 1985 | 1825 | .mxch-content { |
| @@ -2108,25 +1948,12 @@ | ||
| 2108 | 1948 | display: inline-flex; |
| 2109 | 1949 | vertical-align: middle; |
| 2110 | 1950 | } |
| 2111 | 1951 | |
| 2112 | -/* Position feedback near inputs - use inline for form-table context */ | |
| 2113 | -.mxch-admin-wrapper .form-table input + .feedback-container, | |
| 2114 | -.mxch-admin-wrapper .form-table select + .feedback-container, | |
| 2115 | -.mxch-admin-wrapper .form-table textarea + .feedback-container { | |
| 2116 | - position: relative; | |
| 2117 | - display: inline-flex; | |
| 2118 | - vertical-align: middle; | |
| 2119 | - margin-left: 10px; | |
| 2120 | - right: auto; | |
| 2121 | - top: auto; | |
| 2122 | - transform: none; | |
| 2123 | -} | |
| 2124 | - | |
| 2125 | -/* Position feedback near inputs - absolute for card layouts with field-control */ | |
| 2126 | -.mxch-admin-wrapper .mxch-field-control input + .feedback-container, | |
| 2127 | -.mxch-admin-wrapper .mxch-field-control select + .feedback-container, | |
| 2128 | -.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 { | |
| 2129 | 1956 | position: absolute; |
| 2130 | 1957 | right: -30px; |
| 2131 | 1958 | top: 50%; |
| 2132 | 1959 | transform: translateY(-50%); |
| @@ -2141,43 +1968,8 @@ | ||
| 2141 | 1968 | .mxch-admin-wrapper .slider-container + .feedback-container { |
| 2142 | 1969 | margin-left: 15px; |
| 2143 | 1970 | } |
| 2144 | 1971 | |
| 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 | 1972 | /* ========================================================================== |
| 2181 | 1973 | Real-time Entry Updates |
| 2182 | 1974 | ========================================================================== */ |
| 2183 | 1975 | |
| @@ -2381,569 +2173,5 @@ | ||
| 2381 | 2173 | .mxch-pro-banner-v2-btn { |
| 2382 | 2174 | width: 100%; |
| 2383 | 2175 | justify-content: center; |
| 2384 | 2176 | } |
| 2385 | -} | |
| 2386 | - | |
| 2387 | -/* ========================================================================== | |
| 2388 | - API Key Fields - Prevent Browser Autofill | |
| 2389 | - ========================================================================== */ | |
| 2390 | - | |
| 2391 | -/* Mask API key fields like password fields but avoid browser password autofill */ | |
| 2392 | -.mxchat-api-key-field { | |
| 2393 | - -webkit-text-security: disc; | |
| 2394 | - text-security: disc; | |
| 2395 | - font-family: monospace; | |
| 2396 | -} | |
| 2397 | - | |
| 2398 | -/* Show actual text when focused or when show button toggled */ | |
| 2399 | -.mxchat-api-key-field.mxchat-show-key { | |
| 2400 | - -webkit-text-security: none; | |
| 2401 | - text-security: none; | |
| 2402 | -} | |
| 2403 | - | |
| 2404 | -/* ========================================================================== | |
| 2405 | - Debug & Optimization Tools | |
| 2406 | - ========================================================================== */ | |
| 2407 | - | |
| 2408 | -/* Debug Log Viewer */ | |
| 2409 | -.mxchat-debug-log-viewer { | |
| 2410 | - max-height: 400px; | |
| 2411 | - overflow-y: auto; | |
| 2412 | - background: #f8fafc; | |
| 2413 | - border: 1px solid var(--mxch-card-border, #e2e4e9); | |
| 2414 | - border-radius: 8px; | |
| 2415 | - padding: 0; | |
| 2416 | -} | |
| 2417 | - | |
| 2418 | -.mxchat-debug-log-empty { | |
| 2419 | - display: flex; | |
| 2420 | - flex-direction: column; | |
| 2421 | - align-items: center; | |
| 2422 | - justify-content: center; | |
| 2423 | - padding: 48px 24px; | |
| 2424 | - text-align: center; | |
| 2425 | - color: #64748b; | |
| 2426 | -} | |
| 2427 | - | |
| 2428 | -.mxchat-debug-log-empty p { | |
| 2429 | - margin: 16px 0 0; | |
| 2430 | - font-size: 14px; | |
| 2431 | -} | |
| 2432 | - | |
| 2433 | -.mxchat-debug-log-entries { | |
| 2434 | - padding: 12px; | |
| 2435 | -} | |
| 2436 | - | |
| 2437 | -.mxchat-debug-log-entry { | |
| 2438 | - background: #ffffff; | |
| 2439 | - border: 1px solid #e2e8f0; | |
| 2440 | - border-radius: 8px; | |
| 2441 | - padding: 12px; | |
| 2442 | - margin-bottom: 8px; | |
| 2443 | - font-size: 13px; | |
| 2444 | -} | |
| 2445 | - | |
| 2446 | -.mxchat-debug-log-entry:last-child { | |
| 2447 | - margin-bottom: 0; | |
| 2448 | -} | |
| 2449 | - | |
| 2450 | -.mxchat-log-header { | |
| 2451 | - display: flex; | |
| 2452 | - justify-content: space-between; | |
| 2453 | - align-items: center; | |
| 2454 | - margin-bottom: 8px; | |
| 2455 | -} | |
| 2456 | - | |
| 2457 | -.mxchat-log-type { | |
| 2458 | - display: inline-block; | |
| 2459 | - padding: 2px 8px; | |
| 2460 | - border-radius: 4px; | |
| 2461 | - font-size: 10px; | |
| 2462 | - font-weight: 600; | |
| 2463 | - text-transform: uppercase; | |
| 2464 | - letter-spacing: 0.5px; | |
| 2465 | - background: #e2e8f0; | |
| 2466 | - color: #475569; | |
| 2467 | -} | |
| 2468 | - | |
| 2469 | -.mxchat-log-type-settings_save .mxchat-log-type { | |
| 2470 | - background: #dbeafe; | |
| 2471 | - color: #1e40af; | |
| 2472 | -} | |
| 2473 | - | |
| 2474 | -.mxchat-log-type-debug_mode .mxchat-log-type { | |
| 2475 | - background: #fef3c7; | |
| 2476 | - color: #92400e; | |
| 2477 | -} | |
| 2478 | - | |
| 2479 | -.mxchat-log-type-api_error .mxchat-log-type { | |
| 2480 | - background: #fee2e2; | |
| 2481 | - color: #991b1b; | |
| 2482 | -} | |
| 2483 | - | |
| 2484 | -.mxchat-log-type-reset .mxchat-log-type { | |
| 2485 | - background: #fce7f3; | |
| 2486 | - color: #9d174d; | |
| 2487 | -} | |
| 2488 | - | |
| 2489 | -.mxchat-log-type-settings_export .mxchat-log-type { | |
| 2490 | - background: #d1fae5; | |
| 2491 | - color: #065f46; | |
| 2492 | -} | |
| 2493 | - | |
| 2494 | -.mxchat-log-time { | |
| 2495 | - font-size: 11px; | |
| 2496 | - color: #94a3b8; | |
| 2497 | -} | |
| 2498 | - | |
| 2499 | -.mxchat-log-message { | |
| 2500 | - color: #334155; | |
| 2501 | - line-height: 1.5; | |
| 2502 | -} | |
| 2503 | - | |
| 2504 | -.mxchat-log-data { | |
| 2505 | - margin-top: 8px; | |
| 2506 | - padding: 8px; | |
| 2507 | - background: #f1f5f9; | |
| 2508 | - border-radius: 4px; | |
| 2509 | - font-family: monospace; | |
| 2510 | - font-size: 11px; | |
| 2511 | - color: #64748b; | |
| 2512 | - white-space: pre-wrap; | |
| 2513 | - word-break: break-all; | |
| 2514 | -} | |
| 2515 | - | |
| 2516 | -/* Settings Tools Grid */ | |
| 2517 | -.mxch-tools-grid { | |
| 2518 | - display: grid; | |
| 2519 | - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| 2520 | - gap: 24px; | |
| 2521 | -} | |
| 2522 | - | |
| 2523 | -.mxch-tool-item { | |
| 2524 | - display: flex; | |
| 2525 | - gap: 16px; | |
| 2526 | - padding: 20px; | |
| 2527 | - background: #f8fafc; | |
| 2528 | - border: 1px solid #e2e8f0; | |
| 2529 | - border-radius: 12px; | |
| 2530 | - transition: all 0.2s ease; | |
| 2531 | -} | |
| 2532 | - | |
| 2533 | -.mxch-tool-item:hover { | |
| 2534 | - border-color: var(--mxch-primary, #7873f5); | |
| 2535 | - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); | |
| 2536 | -} | |
| 2537 | - | |
| 2538 | -.mxch-tool-item-danger { | |
| 2539 | - border-color: #fecaca; | |
| 2540 | - background: #fef2f2; | |
| 2541 | -} | |
| 2542 | - | |
| 2543 | -.mxch-tool-item-danger:hover { | |
| 2544 | - border-color: #ef4444; | |
| 2545 | -} | |
| 2546 | - | |
| 2547 | -.mxch-tool-icon { | |
| 2548 | - flex-shrink: 0; | |
| 2549 | - width: 48px; | |
| 2550 | - height: 48px; | |
| 2551 | - display: flex; | |
| 2552 | - align-items: center; | |
| 2553 | - justify-content: center; | |
| 2554 | - background: #ffffff; | |
| 2555 | - border-radius: 10px; | |
| 2556 | - color: var(--mxch-primary, #7873f5); | |
| 2557 | - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); | |
| 2558 | -} | |
| 2559 | - | |
| 2560 | -.mxch-tool-item-danger .mxch-tool-icon { | |
| 2561 | - color: #ef4444; | |
| 2562 | -} | |
| 2563 | - | |
| 2564 | -.mxch-tool-content h4 { | |
| 2565 | - margin: 0 0 6px; | |
| 2566 | - font-size: 15px; | |
| 2567 | - font-weight: 600; | |
| 2568 | - color: #1e293b; | |
| 2569 | -} | |
| 2570 | - | |
| 2571 | -.mxch-tool-content p { | |
| 2572 | - margin: 0 0 12px; | |
| 2573 | - font-size: 13px; | |
| 2574 | - color: #64748b; | |
| 2575 | - line-height: 1.5; | |
| 2576 | -} | |
| 2577 | - | |
| 2578 | -/* Danger Button */ | |
| 2579 | -.mxch-btn-danger { | |
| 2580 | - background: #ef4444 !important; | |
| 2581 | - color: #ffffff !important; | |
| 2582 | - border-color: #ef4444 !important; | |
| 2583 | -} | |
| 2584 | - | |
| 2585 | -.mxch-btn-danger:hover { | |
| 2586 | - background: #dc2626 !important; | |
| 2587 | - border-color: #dc2626 !important; | |
| 2588 | -} | |
| 2589 | - | |
| 2590 | -/* Badge Styles */ | |
| 2591 | -.mxch-badge { | |
| 2592 | - display: inline-flex; | |
| 2593 | - align-items: center; | |
| 2594 | - padding: 4px 10px; | |
| 2595 | - font-size: 12px; | |
| 2596 | - font-weight: 500; | |
| 2597 | - border-radius: 20px; | |
| 2598 | - background: #e2e8f0; | |
| 2599 | - color: #475569; | |
| 2600 | -} | |
| 2601 | - | |
| 2602 | -.mxch-badge-warning { | |
| 2603 | - background: #fef3c7; | |
| 2604 | - color: #92400e; | |
| 2605 | -} | |
| 2606 | - | |
| 2607 | -.mxch-badge-success { | |
| 2608 | - background: #d1fae5; | |
| 2609 | - color: #065f46; | |
| 2610 | -} | |
| 2611 | - | |
| 2612 | -.mxch-badge-error { | |
| 2613 | - background: #fee2e2; | |
| 2614 | - color: #991b1b; | |
| 2615 | -} | |
| 2616 | - | |
| 2617 | -/* Modal Styles */ | |
| 2618 | -.mxch-modal { | |
| 2619 | - position: fixed; | |
| 2620 | - top: 0; | |
| 2621 | - left: 0; | |
| 2622 | - right: 0; | |
| 2623 | - bottom: 0; | |
| 2624 | - z-index: 100000; | |
| 2625 | - display: flex; | |
| 2626 | - align-items: center; | |
| 2627 | - justify-content: center; | |
| 2628 | -} | |
| 2629 | - | |
| 2630 | -.mxch-modal-backdrop { | |
| 2631 | - position: absolute; | |
| 2632 | - top: 0; | |
| 2633 | - left: 0; | |
| 2634 | - right: 0; | |
| 2635 | - bottom: 0; | |
| 2636 | - background: rgba(0, 0, 0, 0.5); | |
| 2637 | -} | |
| 2638 | - | |
| 2639 | -.mxch-modal-content { | |
| 2640 | - position: relative; | |
| 2641 | - width: 100%; | |
| 2642 | - max-width: 480px; | |
| 2643 | - background: #ffffff; | |
| 2644 | - border-radius: 16px; | |
| 2645 | - box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); | |
| 2646 | - margin: 20px; | |
| 2647 | -} | |
| 2648 | - | |
| 2649 | -.mxch-modal-header { | |
| 2650 | - display: flex; | |
| 2651 | - justify-content: space-between; | |
| 2652 | - align-items: center; | |
| 2653 | - padding: 20px 24px; | |
| 2654 | - border-bottom: 1px solid #e2e8f0; | |
| 2655 | -} | |
| 2656 | - | |
| 2657 | -.mxch-modal-header h3 { | |
| 2658 | - margin: 0; | |
| 2659 | - font-size: 18px; | |
| 2660 | - font-weight: 600; | |
| 2661 | - color: #1e293b; | |
| 2662 | -} | |
| 2663 | - | |
| 2664 | -.mxch-modal-close { | |
| 2665 | - width: 32px; | |
| 2666 | - height: 32px; | |
| 2667 | - display: flex; | |
| 2668 | - align-items: center; | |
| 2669 | - justify-content: center; | |
| 2670 | - background: none; | |
| 2671 | - border: none; | |
| 2672 | - font-size: 24px; | |
| 2673 | - color: #64748b; | |
| 2674 | - cursor: pointer; | |
| 2675 | - border-radius: 8px; | |
| 2676 | - transition: all 0.2s ease; | |
| 2677 | -} | |
| 2678 | - | |
| 2679 | -.mxch-modal-close:hover { | |
| 2680 | - background: #f1f5f9; | |
| 2681 | - color: #1e293b; | |
| 2682 | -} | |
| 2683 | - | |
| 2684 | -.mxch-modal-body { | |
| 2685 | - padding: 24px; | |
| 2686 | -} | |
| 2687 | - | |
| 2688 | -.mxch-modal-footer { | |
| 2689 | - display: flex; | |
| 2690 | - justify-content: flex-end; | |
| 2691 | - gap: 12px; | |
| 2692 | - padding: 16px 24px; | |
| 2693 | - border-top: 1px solid #e2e8f0; | |
| 2694 | - background: #f8fafc; | |
| 2695 | - border-radius: 0 0 16px 16px; | |
| 2696 | -} | |
| 2697 | - | |
| 2698 | -/* Input in modal */ | |
| 2699 | -.mxch-input { | |
| 2700 | - width: 100%; | |
| 2701 | - padding: 10px 14px; | |
| 2702 | - font-size: 14px; | |
| 2703 | - border: 1px solid #d1d5db; | |
| 2704 | - border-radius: 8px; | |
| 2705 | - transition: all 0.2s ease; | |
| 2706 | -} | |
| 2707 | - | |
| 2708 | -.mxch-input:focus { | |
| 2709 | - outline: none; | |
| 2710 | - border-color: var(--mxch-primary, #7873f5); | |
| 2711 | - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1); | |
| 2712 | -} | |
| 2713 | - | |
| 2714 | -/* Responsive adjustments for tools */ | |
| 2715 | -@media screen and (max-width: 768px) { | |
| 2716 | - .mxch-tools-grid { | |
| 2717 | - grid-template-columns: 1fr; | |
| 2718 | - } | |
| 2719 | - | |
| 2720 | - .mxch-tool-item { | |
| 2721 | - flex-direction: column; | |
| 2722 | - text-align: center; | |
| 2723 | - } | |
| 2724 | - | |
| 2725 | - .mxch-tool-icon { | |
| 2726 | - margin: 0 auto; | |
| 2727 | - } | |
| 2728 | - | |
| 2729 | - .mxchat-debug-log-viewer { | |
| 2730 | - max-height: 300px; | |
| 2731 | - } | |
| 2732 | - | |
| 2733 | - .mxch-modal-content { | |
| 2734 | - margin: 10px; | |
| 2735 | - } | |
| 2736 | -} | |
| 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 | 2177 | } |