| @@ -266,19 +266,8 @@ | ||
| 266 | 266 | border: 1px solid #e5e5e5; |
| 267 | 267 | text-align: center; |
| 268 | 268 | } |
| 269 | 269 | |
| 270 | -/* YouTube import: multi-line radio/description stack reads left-aligned, | |
| 271 | - unlike the single-row URL forms the centered default was made for. */ | |
| 272 | -#mxchat-youtube-input-area { | |
| 273 | - text-align: left; | |
| 274 | -} | |
| 275 | - | |
| 276 | -/* PDF Upload Area */ | |
| 277 | -#mxchat-pdf-upload-area input[type="file"] { | |
| 278 | - margin-bottom: 12px; | |
| 279 | -} | |
| 280 | - | |
| 281 | 270 | .mxchat-url-input-group { |
| 282 | 271 | display: flex; |
| 283 | 272 | gap: 12px; |
| 284 | 273 | max-width: 800px; |
| @@ -1280,36 +1269,20 @@ | ||
| 1280 | 1269 | |
| 1281 | 1270 | .mxchat-kb-modal-content { |
| 1282 | 1271 | position: relative; |
| 1283 | 1272 | background-color: #fff; |
| 1284 | - margin: 24px auto; | |
| 1273 | + margin: 50px auto; | |
| 1285 | 1274 | padding: 0; |
| 1286 | 1275 | border-radius: 8px; |
| 1287 | 1276 | box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); |
| 1288 | 1277 | width: 90%; |
| 1289 | 1278 | max-width: 1000px; |
| 1290 | - /* The box is the ONLY place height is constrained; children flex within it. | |
| 1291 | - dvh tracks the real visible viewport on mobile (vh line = older-browser fallback). */ | |
| 1292 | 1279 | max-height: 85vh; |
| 1293 | - max-height: min(85vh, calc(100dvh - 48px)); | |
| 1294 | 1280 | display: flex; |
| 1295 | 1281 | flex-direction: column; |
| 1296 | 1282 | animation: mxchat-kb-modal-appear 0.3s ease-out; |
| 1297 | 1283 | } |
| 1298 | 1284 | |
| 1299 | -/* Fixed chrome rows never grow or shrink — the results list is the only scroller. */ | |
| 1300 | -.mxchat-kb-modal-header, | |
| 1301 | -.mxchat-kb-modal-filters, | |
| 1302 | -.mxchat-kb-selection-header, | |
| 1303 | -.mxchat-kb-modal-footer { | |
| 1304 | - flex: 0 0 auto; | |
| 1305 | -} | |
| 1306 | - | |
| 1307 | -/* The footer holds the primary actions — it can never be squeezed out of the box. */ | |
| 1308 | -.mxchat-kb-modal-footer { | |
| 1309 | - flex-shrink: 0; | |
| 1310 | -} | |
| 1311 | - | |
| 1312 | 1285 | @keyframes mxchat-kb-modal-appear { |
| 1313 | 1286 | from { |
| 1314 | 1287 | opacity: 0; |
| 1315 | 1288 | transform: translateY(-30px); |
| @@ -1423,15 +1396,12 @@ | ||
| 1423 | 1396 | border-left: 3px solid #1e88e5; |
| 1424 | 1397 | } |
| 1425 | 1398 | |
| 1426 | 1399 | .mxchat-kb-content-selection { |
| 1427 | - /* Flexible middle region: header row stays put, the list below scrolls. | |
| 1428 | - min-height: 0 is load-bearing — without it flex refuses to shrink this | |
| 1429 | - column and the footer gets pushed out of the box (the mobile bug). */ | |
| 1430 | - flex: 1 1 auto; | |
| 1431 | - min-height: 0; | |
| 1432 | - display: flex; | |
| 1433 | - flex-direction: column; | |
| 1400 | + overflow-y: auto; | |
| 1401 | + flex: 1; | |
| 1402 | + min-height: 300px; | |
| 1403 | + max-height: calc(85vh - 200px); | |
| 1434 | 1404 | } |
| 1435 | 1405 | |
| 1436 | 1406 | .mxchat-kb-selection-header { |
| 1437 | 1407 | display: flex; |
| @@ -1459,12 +1429,8 @@ | ||
| 1459 | 1429 | } |
| 1460 | 1430 | |
| 1461 | 1431 | .mxchat-kb-content-list { |
| 1462 | 1432 | padding: 0; |
| 1463 | - /* The one and only scroller inside the modal. */ | |
| 1464 | - flex: 1 1 auto; | |
| 1465 | - min-height: 0; | |
| 1466 | - overflow-y: auto; | |
| 1467 | 1433 | } |
| 1468 | 1434 | |
| 1469 | 1435 | .mxchat-kb-content-item { |
| 1470 | 1436 | display: flex; |
| @@ -1493,23 +1459,19 @@ | ||
| 1493 | 1459 | align-items: flex-start; |
| 1494 | 1460 | padding-top: 3px; |
| 1495 | 1461 | } |
| 1496 | 1462 | |
| 1497 | -/* Native control, brand-tinted — identical to the "select all" checkbox above the | |
| 1498 | - list, which carries no custom styling at all and renders correctly. | |
| 1499 | - Do NOT re-add width / height / border / border-radius / background here. WP admin | |
| 1500 | - draws the tick as a 21px dashicon positioned with negative margins for its OWN | |
| 1501 | - default box, so forcing a custom box makes the tick overflow it. That mismatch | |
| 1502 | - shipped for a long time but was invisible while the tick was white-on-white. */ | |
| 1503 | 1463 | .mxchat-kb-content-checkbox input[type="checkbox"] { |
| 1464 | + width: 18px; | |
| 1465 | + height: 18px; | |
| 1466 | + border: 1px solid #8c8f94; | |
| 1467 | + border-radius: 3px; | |
| 1468 | + background: #fff; | |
| 1504 | 1469 | margin: 0; |
| 1505 | - cursor: pointer; | |
| 1506 | - accent-color: var(--mxch-primary, #7873f5); | |
| 1507 | 1470 | } |
| 1508 | 1471 | |
| 1509 | -.mxchat-kb-content-checkbox input[type="checkbox"]:focus-visible { | |
| 1510 | - outline: 2px solid var(--mxch-primary, #7873f5); | |
| 1511 | - outline-offset: 2px; | |
| 1472 | +.mxchat-kb-content-checkbox input[type="checkbox"]:checked { | |
| 1473 | + border-color: #7873f5; | |
| 1512 | 1474 | } |
| 1513 | 1475 | |
| 1514 | 1476 | .mxchat-kb-content-details { |
| 1515 | 1477 | flex: 1; |
| @@ -1881,70 +1843,38 @@ | ||
| 1881 | 1843 | |
| 1882 | 1844 | /* Modal responsive adjustments */ |
| 1883 | 1845 | .mxchat-kb-modal-content { |
| 1884 | 1846 | width: 95%; |
| 1885 | - /* dvh = real visible viewport (mobile vh includes the URL-bar region); | |
| 1886 | - vh line is the older-browser fallback. */ | |
| 1887 | - max-height: calc(100vh - 24px); | |
| 1888 | - max-height: calc(100dvh - 24px); | |
| 1889 | - margin: 12px auto; | |
| 1890 | - /* Last-resort scroll: on extreme-short viewports (landscape phones) | |
| 1891 | - the compacted chrome + the list's floor can still exceed the box — | |
| 1892 | - scroll inside the box rather than clipping the footer. */ | |
| 1893 | - overflow-y: auto; | |
| 1847 | + max-height: 90vh; | |
| 1848 | + margin: 20px auto; | |
| 1894 | 1849 | } |
| 1895 | - | |
| 1896 | - /* Compact the fixed chrome on mobile — stacked filters + a stacked footer | |
| 1897 | - are tall, and every saved pixel goes to the content list. */ | |
| 1898 | - .mxchat-kb-modal-header { | |
| 1899 | - padding: 12px 16px; | |
| 1900 | - } | |
| 1901 | - | |
| 1902 | - .mxchat-kb-modal-header h3 { | |
| 1903 | - font-size: 16px; | |
| 1904 | - } | |
| 1905 | - | |
| 1850 | + | |
| 1906 | 1851 | .mxchat-kb-modal-filters { |
| 1907 | 1852 | flex-direction: column; |
| 1908 | 1853 | align-items: stretch; |
| 1909 | - padding: 10px 16px; | |
| 1910 | - gap: 8px; | |
| 1911 | 1854 | } |
| 1912 | - | |
| 1855 | + | |
| 1913 | 1856 | .mxchat-kb-search-group { |
| 1914 | 1857 | max-width: none; |
| 1915 | 1858 | } |
| 1916 | - | |
| 1859 | + | |
| 1917 | 1860 | .mxchat-kb-filter-group { |
| 1918 | 1861 | flex-direction: column; |
| 1919 | - gap: 8px; | |
| 1920 | 1862 | } |
| 1921 | - | |
| 1922 | - .mxchat-kb-filter-group select { | |
| 1923 | - padding: 6px 30px 6px 10px; | |
| 1863 | + | |
| 1864 | + .mxchat-kb-content-selection { | |
| 1865 | + max-height: calc(90vh - 250px); | |
| 1924 | 1866 | } |
| 1925 | - | |
| 1867 | + | |
| 1926 | 1868 | .mxchat-kb-selection-header { |
| 1927 | 1869 | flex-direction: column; |
| 1928 | 1870 | align-items: flex-start; |
| 1929 | - gap: 6px; | |
| 1930 | - padding: 10px 16px; | |
| 1871 | + gap: 10px; | |
| 1931 | 1872 | } |
| 1932 | - | |
| 1933 | - /* Guarantee a usable slice of visible rows — reachable buttons are no | |
| 1934 | - help if there is nothing to select above them. */ | |
| 1935 | - .mxchat-kb-content-list { | |
| 1936 | - min-height: 96px; | |
| 1937 | - } | |
| 1938 | - | |
| 1939 | - .mxchat-kb-content-item { | |
| 1940 | - padding: 10px 16px; | |
| 1941 | - } | |
| 1942 | - | |
| 1873 | + | |
| 1943 | 1874 | .mxchat-kb-modal-footer { |
| 1944 | 1875 | flex-direction: column; |
| 1945 | - gap: 8px; | |
| 1946 | - padding: 10px 16px; | |
| 1876 | + gap: 10px; | |
| 1947 | 1877 | } |
| 1948 | 1878 | |
| 1949 | 1879 | .mxchat-kb-modal-footer .mxchat-kb-pagination { |
| 1950 | 1880 | width: 100%; |
| @@ -3654,415 +3584,5 @@ | ||
| 3654 | 3584 | |
| 3655 | 3585 | .mxchat-bulk-actions { |
| 3656 | 3586 | margin-left: 0; |
| 3657 | 3587 | } |
| 3658 | -} | |
| 3659 | - | |
| 3660 | -/* ========================================================================== | |
| 3661 | - Knowledge Base - Mobile Responsive | |
| 3662 | - ========================================================================== */ | |
| 3663 | - | |
| 3664 | -/* Desktop defaults for KB header controls */ | |
| 3665 | -.mxch-kb-header-controls { | |
| 3666 | - display: flex; | |
| 3667 | - gap: 10px; | |
| 3668 | - align-items: center; | |
| 3669 | -} | |
| 3670 | - | |
| 3671 | -.mxch-kb-search-form { | |
| 3672 | - display: flex; | |
| 3673 | - gap: 10px; | |
| 3674 | -} | |
| 3675 | - | |
| 3676 | -.mxch-kb-search-input { | |
| 3677 | - width: 200px; | |
| 3678 | -} | |
| 3679 | - | |
| 3680 | -.mxch-kb-type-filter { | |
| 3681 | - width: auto; | |
| 3682 | -} | |
| 3683 | - | |
| 3684 | -/* Mobile: Knowledge Base card header stacks vertically */ | |
| 3685 | -@media screen and (max-width: 960px) { | |
| 3686 | - /* Stack card header vertically */ | |
| 3687 | - #knowledge-base .mxch-card-header { | |
| 3688 | - flex-direction: column; | |
| 3689 | - align-items: stretch; | |
| 3690 | - gap: 12px; | |
| 3691 | - padding: 12px 16px; | |
| 3692 | - } | |
| 3693 | - | |
| 3694 | - /* Title row wraps badges */ | |
| 3695 | - #knowledge-base .mxch-card-title { | |
| 3696 | - flex-wrap: wrap; | |
| 3697 | - font-size: 14px; | |
| 3698 | - } | |
| 3699 | - | |
| 3700 | - /* Controls stack vertically */ | |
| 3701 | - .mxch-kb-header-controls { | |
| 3702 | - flex-direction: column; | |
| 3703 | - align-items: stretch; | |
| 3704 | - gap: 8px; | |
| 3705 | - width: 100%; | |
| 3706 | - } | |
| 3707 | - | |
| 3708 | - /* Search form wraps */ | |
| 3709 | - .mxch-kb-search-form { | |
| 3710 | - flex-wrap: wrap; | |
| 3711 | - gap: 8px; | |
| 3712 | - width: 100%; | |
| 3713 | - } | |
| 3714 | - | |
| 3715 | - /* Search input takes full width */ | |
| 3716 | - .mxch-kb-search-input { | |
| 3717 | - width: 100% !important; | |
| 3718 | - flex: 1; | |
| 3719 | - min-width: 0; | |
| 3720 | - } | |
| 3721 | - | |
| 3722 | - /* Filter dropdown takes full width */ | |
| 3723 | - .mxch-kb-type-filter { | |
| 3724 | - width: 100% !important; | |
| 3725 | - flex: 1; | |
| 3726 | - min-width: 0; | |
| 3727 | - } | |
| 3728 | - | |
| 3729 | - /* Delete container full width */ | |
| 3730 | - .mxchat-delete-container { | |
| 3731 | - width: 100%; | |
| 3732 | - } | |
| 3733 | - | |
| 3734 | - .mxchat-delete-container form, | |
| 3735 | - .mxchat-delete-container .mxchat-bulk-delete { | |
| 3736 | - width: 100%; | |
| 3737 | - } | |
| 3738 | - | |
| 3739 | - .mxchat-delete-container .mxch-btn { | |
| 3740 | - width: 100%; | |
| 3741 | - justify-content: center; | |
| 3742 | - } | |
| 3743 | - | |
| 3744 | - /* Table: hide ID and Source columns on mobile to save space */ | |
| 3745 | - .mxchat-records-table th:nth-child(2), | |
| 3746 | - .mxchat-records-table td:nth-child(2) { | |
| 3747 | - display: none; | |
| 3748 | - } | |
| 3749 | - | |
| 3750 | - .mxchat-records-table th:nth-child(4), | |
| 3751 | - .mxchat-records-table td:nth-child(4) { | |
| 3752 | - display: none; | |
| 3753 | - } | |
| 3754 | - | |
| 3755 | - /* Content column needs more room */ | |
| 3756 | - .mxchat-content-cell { | |
| 3757 | - max-width: none !important; | |
| 3758 | - } | |
| 3759 | - | |
| 3760 | - /* Table cells padding */ | |
| 3761 | - .mxchat-records-table th, | |
| 3762 | - .mxchat-records-table td { | |
| 3763 | - padding: 10px 8px !important; | |
| 3764 | - } | |
| 3765 | - | |
| 3766 | - /* Pagination wraps nicely */ | |
| 3767 | - .mxchat-ajax-pagination { | |
| 3768 | - flex-wrap: wrap; | |
| 3769 | - justify-content: center; | |
| 3770 | - } | |
| 3771 | -} | |
| 3772 | - | |
| 3773 | -/* Small mobile: further adjustments */ | |
| 3774 | -@media screen and (max-width: 480px) { | |
| 3775 | - #knowledge-base .mxch-card-header { | |
| 3776 | - padding: 10px 12px; | |
| 3777 | - } | |
| 3778 | - | |
| 3779 | - #knowledge-base .mxch-card-title { | |
| 3780 | - font-size: 13px; | |
| 3781 | - } | |
| 3782 | - | |
| 3783 | - /* Search form items fully stacked */ | |
| 3784 | - .mxch-kb-search-form { | |
| 3785 | - flex-direction: column; | |
| 3786 | - } | |
| 3787 | - | |
| 3788 | - /* Smaller table text */ | |
| 3789 | - .mxchat-records-table { | |
| 3790 | - font-size: 12px; | |
| 3791 | - } | |
| 3792 | - | |
| 3793 | - .mxchat-records-table th, | |
| 3794 | - .mxchat-records-table td { | |
| 3795 | - padding: 8px 6px !important; | |
| 3796 | - } | |
| 3797 | - | |
| 3798 | - /* Also hide Actions header text but keep the column for delete buttons */ | |
| 3799 | - .mxchat-records-table th:nth-child(5) { | |
| 3800 | - font-size: 0; | |
| 3801 | - padding: 8px 4px !important; | |
| 3802 | - width: 40px; | |
| 3803 | - } | |
| 3804 | -} | |
| 3805 | - | |
| 3806 | -/* ─── Edit Entry Modal ─── */ | |
| 3807 | - | |
| 3808 | -.mxchat-edit-entry-btn { | |
| 3809 | - color: var(--mxch-primary, #7873f5); | |
| 3810 | -} | |
| 3811 | -.mxchat-edit-entry-btn:hover { | |
| 3812 | - color: var(--mxch-primary-dark, #5b56d6); | |
| 3813 | - background: rgba(120, 115, 245, 0.08); | |
| 3814 | -} | |
| 3815 | - | |
| 3816 | -.mxchat-kb-edit-modal-content { | |
| 3817 | - max-width: 760px; | |
| 3818 | - /* Same viewport-safe cap as the content-selector modal (vh = fallback). */ | |
| 3819 | - max-height: 90vh; | |
| 3820 | - max-height: min(90vh, calc(100dvh - 24px)); | |
| 3821 | -} | |
| 3822 | - | |
| 3823 | -.mxchat-kb-edit-body { | |
| 3824 | - flex: 1 1 auto; | |
| 3825 | - /* min-height: 0 lets the body shrink inside the capped modal box so the | |
| 3826 | - footer (Save/Cancel) can never be pushed below the viewport. */ | |
| 3827 | - min-height: 0; | |
| 3828 | - display: flex; | |
| 3829 | - flex-direction: column; | |
| 3830 | - padding: 20px; | |
| 3831 | - overflow: hidden; | |
| 3832 | - gap: 12px; | |
| 3833 | -} | |
| 3834 | - | |
| 3835 | -.mxchat-kb-edit-source { | |
| 3836 | - font-size: 12px; | |
| 3837 | - color: var(--mxch-text-muted, #6b7280); | |
| 3838 | - word-break: break-all; | |
| 3839 | -} | |
| 3840 | -.mxchat-kb-edit-source a { | |
| 3841 | - color: var(--mxch-primary, #7873f5); | |
| 3842 | - text-decoration: none; | |
| 3843 | -} | |
| 3844 | - | |
| 3845 | -.mxchat-kb-edit-textarea { | |
| 3846 | - flex: 1; | |
| 3847 | - min-height: 300px; | |
| 3848 | - max-height: 55vh; | |
| 3849 | - width: 100%; | |
| 3850 | - padding: 14px; | |
| 3851 | - border: 1px solid var(--mxch-input-border, #d1d5db); | |
| 3852 | - border-radius: 8px; | |
| 3853 | - font-size: 14px; | |
| 3854 | - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |
| 3855 | - line-height: 1.6; | |
| 3856 | - resize: vertical; | |
| 3857 | - color: var(--mxch-text-primary, #1a1a2e); | |
| 3858 | - background: var(--mxch-input-bg, #fff); | |
| 3859 | - box-sizing: border-box; | |
| 3860 | - transition: border-color 0.2s; | |
| 3861 | -} | |
| 3862 | -.mxchat-kb-edit-textarea:focus { | |
| 3863 | - outline: none; | |
| 3864 | - border-color: var(--mxch-primary, #7873f5); | |
| 3865 | - box-shadow: 0 0 0 3px rgba(120, 115, 245, 0.1); | |
| 3866 | -} | |
| 3867 | - | |
| 3868 | -.mxchat-kb-edit-meta { | |
| 3869 | - display: flex; | |
| 3870 | - justify-content: space-between; | |
| 3871 | - font-size: 12px; | |
| 3872 | - color: var(--mxch-text-muted, #6b7280); | |
| 3873 | -} | |
| 3874 | - | |
| 3875 | -.mxchat-kb-edit-footer { | |
| 3876 | - display: flex; | |
| 3877 | - align-items: center; | |
| 3878 | - justify-content: space-between; | |
| 3879 | - padding: 14px 20px; | |
| 3880 | - border-top: 1px solid #e5e5e5; | |
| 3881 | - gap: 12px; | |
| 3882 | - /* Action row can never be squeezed out of the box. */ | |
| 3883 | - flex-shrink: 0; | |
| 3884 | -} | |
| 3885 | - | |
| 3886 | -.mxchat-kb-edit-notice { | |
| 3887 | - flex: 1; | |
| 3888 | - font-size: 13px; | |
| 3889 | -} | |
| 3890 | -.mxchat-kb-edit-notice.success { color: #16a34a; } | |
| 3891 | -.mxchat-kb-edit-notice.error { color: #dc2626; } | |
| 3892 | - | |
| 3893 | -.mxchat-kb-edit-actions { | |
| 3894 | - display: flex; | |
| 3895 | - gap: 8px; | |
| 3896 | - flex-shrink: 0; | |
| 3897 | -} | |
| 3898 | - | |
| 3899 | -/* ── Knowledge Inspector modal (plan-d8cb4b) ────────────────────────── | |
| 3900 | - Read-only "View indexed content" viewer. Reuses the Testing tab's | |
| 3901 | - match-card / chunk-detail components (admin-testing-tab.css, scoped under | |
| 3902 | - .mxch-testing-results) so it looks native; this block only adds the modal | |
| 3903 | - body scroll + the chunk-text container the Testing tab doesn't have. */ | |
| 3904 | -.mxchat-kb-inspect-body { | |
| 3905 | - flex: 1 1 auto; | |
| 3906 | - /* Same footer-pushout guard as the edit modal. */ | |
| 3907 | - min-height: 0; | |
| 3908 | - display: flex; | |
| 3909 | - flex-direction: column; | |
| 3910 | - padding: 20px; | |
| 3911 | - overflow-y: auto; | |
| 3912 | - gap: 12px; | |
| 3913 | -} | |
| 3914 | -/* The modal body is the scroll container — let the inner results grow naturally | |
| 3915 | - instead of the Testing tab's own 400px inner scroll (avoids a double scrollbar). */ | |
| 3916 | -.mxchat-kb-inspect-body .mxch-testing-results { | |
| 3917 | - max-height: none; | |
| 3918 | - overflow: visible; | |
| 3919 | -} | |
| 3920 | -.mxch-kb-inspect-chunk-text { | |
| 3921 | - margin: 8px 0 0; | |
| 3922 | - padding: 12px 14px; | |
| 3923 | - background: #f8fafc; | |
| 3924 | - border: 1px solid #e2e8f0; | |
| 3925 | - border-radius: 6px; | |
| 3926 | - max-height: 260px; | |
| 3927 | - overflow-y: auto; | |
| 3928 | - white-space: pre-wrap; | |
| 3929 | - word-break: break-word; | |
| 3930 | - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |
| 3931 | - font-size: 13px; | |
| 3932 | - line-height: 1.6; | |
| 3933 | - color: var(--mxch-text-primary, #334155); | |
| 3934 | -} | |
| 3935 | - | |
| 3936 | -.mxchat-kb-edit-save-spinner { | |
| 3937 | - display: inline-flex; | |
| 3938 | - align-items: center; | |
| 3939 | - gap: 6px; | |
| 3940 | -} | |
| 3941 | - | |
| 3942 | -@media (max-width: 782px) { | |
| 3943 | - .mxchat-kb-edit-modal-content { | |
| 3944 | - width: 96%; | |
| 3945 | - max-width: 96%; | |
| 3946 | - margin: 10px auto; | |
| 3947 | - max-height: calc(100vh - 20px); | |
| 3948 | - max-height: calc(100dvh - 20px); | |
| 3949 | - } | |
| 3950 | - .mxchat-kb-edit-body { | |
| 3951 | - padding: 14px; | |
| 3952 | - } | |
| 3953 | - .mxchat-kb-edit-textarea { | |
| 3954 | - min-height: 200px; | |
| 3955 | - font-size: 15px; | |
| 3956 | - } | |
| 3957 | - .mxchat-kb-edit-footer { | |
| 3958 | - flex-direction: column; | |
| 3959 | - align-items: stretch; | |
| 3960 | - } | |
| 3961 | - .mxchat-kb-edit-actions { | |
| 3962 | - justify-content: stretch; | |
| 3963 | - } | |
| 3964 | - .mxchat-kb-edit-actions .mxch-btn { | |
| 3965 | - flex: 1; | |
| 3966 | - text-align: center; | |
| 3967 | - } | |
| 3968 | -} | |
| 3969 | -/* ========================================================================== | |
| 3970 | - Custom Meta-key discovery picker (plan-mxchat-20260709-fe8e4e) | |
| 3971 | - Canon-token chip picker mirroring the ACF discovery UX for non-ACF meta. | |
| 3972 | - ========================================================================== */ | |
| 3973 | -.mxchat-meta-scan-controls { | |
| 3974 | - display: flex; | |
| 3975 | - align-items: center; | |
| 3976 | - flex-wrap: wrap; | |
| 3977 | - gap: 12px; | |
| 3978 | - margin-bottom: 12px; | |
| 3979 | -} | |
| 3980 | -#mxchat-scan-meta-btn { | |
| 3981 | - display: inline-flex; | |
| 3982 | - align-items: center; | |
| 3983 | - gap: 8px; | |
| 3984 | -} | |
| 3985 | -.mxchat-meta-scan-internal { | |
| 3986 | - display: inline-flex; | |
| 3987 | - align-items: center; | |
| 3988 | - gap: 6px; | |
| 3989 | - font-size: 13px; | |
| 3990 | - color: var(--mxch-text-secondary, #64748b); | |
| 3991 | - cursor: pointer; | |
| 3992 | -} | |
| 3993 | -.mxchat-meta-scan-loading, | |
| 3994 | -.mxchat-meta-scan-empty { | |
| 3995 | - font-size: 13px; | |
| 3996 | - color: var(--mxch-text-secondary, #64748b); | |
| 3997 | - margin: 8px 0 0; | |
| 3998 | -} | |
| 3999 | -.mxchat-meta-chip-grid { | |
| 4000 | - display: grid; | |
| 4001 | - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); | |
| 4002 | - gap: 10px; | |
| 4003 | - margin-top: 12px; | |
| 4004 | -} | |
| 4005 | -.mxchat-meta-chip { | |
| 4006 | - display: flex; | |
| 4007 | - flex-direction: column; | |
| 4008 | - align-items: flex-start; | |
| 4009 | - gap: 4px; | |
| 4010 | - text-align: left; | |
| 4011 | - width: 100%; | |
| 4012 | - padding: 10px 12px; | |
| 4013 | - background: var(--mxch-card-bg, #fff); | |
| 4014 | - border: 1px solid var(--mxch-card-border, #e2e8f0); | |
| 4015 | - border-radius: var(--mxch-radius-md, 8px); | |
| 4016 | - cursor: pointer; | |
| 4017 | - transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease; | |
| 4018 | -} | |
| 4019 | -.mxchat-meta-chip:hover { | |
| 4020 | - border-color: var(--mxch-primary, #7873f5); | |
| 4021 | - box-shadow: 0 1px 4px rgba(120, 115, 245, 0.15); | |
| 4022 | -} | |
| 4023 | -.mxchat-meta-chip-main { | |
| 4024 | - display: flex; | |
| 4025 | - align-items: baseline; | |
| 4026 | - flex-wrap: wrap; | |
| 4027 | - gap: 8px; | |
| 4028 | -} | |
| 4029 | -.mxchat-meta-chip-name { | |
| 4030 | - font-weight: 600; | |
| 4031 | - color: var(--mxch-text-primary, #1a1a2e); | |
| 4032 | - font-size: 13px; | |
| 4033 | -} | |
| 4034 | -.mxchat-meta-chip-key { | |
| 4035 | - font-family: monospace; | |
| 4036 | - font-size: 11px; | |
| 4037 | - color: var(--mxch-text-muted, #94a3b8); | |
| 4038 | - background: #f1f5f9; | |
| 4039 | - padding: 1px 6px; | |
| 4040 | - border-radius: 4px; | |
| 4041 | -} | |
| 4042 | -.mxchat-meta-chip-meta { | |
| 4043 | - font-size: 11px; | |
| 4044 | - color: var(--mxch-text-muted, #94a3b8); | |
| 4045 | - white-space: nowrap; | |
| 4046 | - overflow: hidden; | |
| 4047 | - text-overflow: ellipsis; | |
| 4048 | - max-width: 100%; | |
| 4049 | -} | |
| 4050 | -.mxchat-meta-chip-tick { | |
| 4051 | - font-size: 11px; | |
| 4052 | - font-weight: 600; | |
| 4053 | - color: var(--mxch-primary, #7873f5); | |
| 4054 | - margin-top: 2px; | |
| 4055 | -} | |
| 4056 | -.mxchat-meta-chip.is-added { | |
| 4057 | - border-color: var(--mxch-success, #10b981); | |
| 4058 | - background: rgba(16, 185, 129, 0.06); | |
| 4059 | - cursor: default; | |
| 4060 | -} | |
| 4061 | -.mxchat-meta-chip.is-added .mxchat-meta-chip-tick { | |
| 4062 | - color: var(--mxch-success, #10b981); | |
| 4063 | -} | |
| 4064 | -@media (max-width: 782px) { | |
| 4065 | - .mxchat-meta-chip-grid { | |
| 4066 | - grid-template-columns: 1fr; | |
| 4067 | - } | |
| 4068 | -} | |
| 3588 | +} | |