PluginProbe
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent / 3.5.4
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent v3.5.4
3.5.4 3.5.3 3.5.2 3.5.1 3.4.9 3.5.0 3.4.8 3.4.7 trunk 2.3.1 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6
← All changes | framework/style.css +168 -47 3.5.0 → 3.5.4 View file →
@@ -463,8 +463,34 @@
463 463 }
464 464 .wpsc-ticket-list-tbl tbody tr:hover {
465 465 cursor: pointer;
466 466 }
467 +.wpsc-ticket-list-tbl th.wpsc-tl-sortable-th {
468 + cursor: pointer;
469 + white-space: nowrap;
470 + -webkit-user-select: none;
471 + user-select: none;
472 +}
473 +.wpsc-ticket-list-tbl th .wpsc-tl-th-inner {
474 + display: flex;
475 + align-items: center;
476 +}
477 +.wpsc-ticket-list-tbl th .wpsc-tl-sort-icon {
478 + display: inline-flex;
479 + align-items: center;
480 + flex: none;
481 + height: 12px;
482 + margin-left: 6px;
483 +}
484 +.wpsc-ticket-list-tbl th .wpsc-tl-sort-icon svg {
485 + width: auto;
486 + height: 100%;
487 + fill: #a7aaad;
488 +}
489 +.wpsc-ticket-list-tbl th.wpsc-tl-sorted-asc .wpsc-tl-sort-icon svg,
490 +.wpsc-ticket-list-tbl th.wpsc-tl-sorted-desc .wpsc-tl-sort-icon svg {
491 + fill: #2271b1;
492 +}
467 493
468 494 /* Modal Popup */
469 495 .wpsc-modal .loader,
470 496 .wpsc-modal .inner-container {
@@ -866,8 +892,14 @@
866 892 }
867 893 .wpsc-thread .thread-text {
868 894 overflow: hidden;
869 895 }
896 +.wpsc-thread .thread-text.wpsc-collapsed {
897 + max-height: 100px;
898 +}
899 +.wpsc-thread .thread-text.wpsc-expanded {
900 + max-height: none;
901 +}
870 902 .wpsc-thread .thread-text ul{
871 903 list-style-type: disc !important;
872 904 padding-inline-start: 2em;
873 905 }
@@ -1210,12 +1242,21 @@
1210 1242 }
1211 1243 .wpsc-switch-editor.active {
1212 1244 background: #c3c3c3;
1213 1245 }
1214 -.wpsc_textarea {
1246 +.wpsc_textarea:not(#wpsc-en-body) {
1215 1247 height: 160px !important;
1216 1248 width: 100% !important;
1217 1249 }
1250 +/* Email Notifications body editor (Ticket Notifications, OTP, Satisfaction Survey,
1251 + Auto Close Ticket, WooCommerce create ticket): allow vertical resize handle to work
1252 + by not forcing height with !important. Scoped to this id only so other .wpsc_textarea
1253 + usages (canned replies, GDPR/T&C, ticket description, print templates, etc.) are unaffected. */
1254 +#wpsc-en-body.wpsc_textarea {
1255 + height: 160px;
1256 + width: 100% !important;
1257 + resize: vertical;
1258 +}
1218 1259
1219 1260 /* Ticket form field */
1220 1261 .wpsc-tff {
1221 1262 display: flex;
@@ -1759,25 +1800,24 @@
1759 1800 flex-wrap: wrap;
1760 1801 gap: 5px;
1761 1802 padding: 10px;
1762 1803 }
1763 -.wpsc-ac-agent {
1764 - display: flex;
1765 - width: fit-content;
1766 - align-items: center;
1767 - gap: 5px;
1768 - padding: 5px;
1769 - border-radius: 5px;
1770 - font-size: 13px;
1804 +/* Dashboard widgets css */
1805 +
1806 +/* Card/widget background, text and icon colors are NOT set here - they come from the "Appearance
1807 + > Dashboard" settings (wpsc-ap-dashboard option), injected as inline !important styles by
1808 + WPSC_Tickets::get_agent_dashboard() (core/includes/admin/tickets/class-wpsc-tickets.php). This
1809 + stylesheet only handles structure/spacing/shape, so it never fights that setting. */
1810 +
1811 +:root {
1812 + --wpsc-dash-border: #e7eaf0;
1813 + --wpsc-dash-divider: #eef0f4;
1814 + --wpsc-dash-surface-hover: #f8fafc;
1815 + --wpsc-dash-accent: #0079bf;
1816 + --wpsc-dash-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
1771 1817 }
1772 -.wpsc-ac-agent img {
1773 - border-radius: 50%;
1774 -}
1775 1818
1776 -/* Dashboard widgets css */
1777 -
1778 1819 .wpsc-dash-widget svg {
1779 - color: #ccc;
1780 1820 height: 80px !important;
1781 1821 }
1782 1822
1783 1823 .wpsc-dashboard-widget-icon-header {
@@ -1784,8 +1824,14 @@
1784 1824 display: flex;
1785 1825 align-items: center;
1786 1826 }
1787 1827
1828 +.wpsc-dashboard-widget-icon-header span {
1829 + font-size: 14px;
1830 + font-weight: 600;
1831 + letter-spacing: 0.01em;
1832 +}
1833 +
1788 1834 .wpsc-dashboard-card-icon-header {
1789 1835 cursor: pointer;
1790 1836 }
1791 1837
@@ -1799,17 +1845,16 @@
1799 1845 .wpsc-dash-widget {
1800 1846 margin: 10px;
1801 1847 position: relative;
1802 1848 box-sizing: border-box;
1803 - background-color: #f4f6f9;
1804 - border: 1px solid #ccc;
1805 - border-radius: 5px;
1806 - padding: 10px;
1807 - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1849 + border: 1px solid var(--wpsc-dash-border);
1850 + border-radius: 12px;
1851 + padding: 16px 18px;
1852 + box-shadow: var(--wpsc-dash-shadow);
1808 1853 }
1809 1854
1810 1855 .wpsc-dash-widget2 {
1811 - padding: 10px;
1856 + padding: 16px 18px;
1812 1857 }
1813 1858
1814 1859 .wpsc-dash-widget-small {
1815 1860 width: calc(20% - 20px);
@@ -1820,14 +1865,18 @@
1820 1865 }
1821 1866
1822 1867 .wpsc-dash-widget-small .wpsc-dash-widget-icon {
1823 1868 font-size: 70px; /* Increase the size as needed */
1824 - color: #ccc; /* Change the icon color as needed */
1825 1869 margin-left: 10px; /* Add margin to separate from the text */
1826 1870 }
1827 1871
1828 1872 .wpsc-dash-widget-small svg {
1829 - opacity: 0.2;
1873 + opacity: 0.5;
1874 + flex-shrink: 0;
1875 + overflow: visible;
1876 + height: 48px !important;
1877 + width: 48px !important;
1878 + margin-left: 10px;
1830 1879 }
1831 1880
1832 1881 .wpsc-dash-widget-mid {
1833 1882 width: calc(50% - 20px);
@@ -1839,47 +1888,96 @@
1839 1888
1840 1889 .wpsc-widget h2 {
1841 1890 font-size: 18px;
1842 1891 margin-bottom: 5px;
1892 + font-weight: 600;
1843 1893 }
1844 1894
1845 1895 .wpsc-dash-widget-small h2 {
1846 - margin-bottom: 5px;
1847 - font-size: 35px;
1848 - font-weight: 600;
1896 + margin-bottom: 4px;
1897 + font-size: 32px;
1898 + font-weight: 700;
1899 + letter-spacing: -0.02em;
1849 1900 }
1850 1901
1902 +.wpsc-dash-widget-small p {
1903 + font-size: 13px;
1904 + font-weight: 500;
1905 +}
1906 +
1851 1907 /* Style the header of widgets with icons and actions */
1852 1908 .wpsc-dash-widget-header {
1853 1909 display: flex;
1854 1910 justify-content: space-between;
1855 1911 align-items: center;
1856 - margin-bottom: 10px;
1857 - border-bottom: 1px solid #ccc;
1858 - padding-bottom: 10px;
1912 + margin-bottom: 14px;
1913 + border-bottom: 1px solid var(--wpsc-dash-divider);
1914 + padding-bottom: 12px;
1859 1915 }
1860 1916
1861 1917 .wpsc-dash-widget-header svg {
1862 - color: #ccc;
1863 1918 height: 15px !important;
1864 1919 margin: 0px 5px 0px 0px;
1865 1920 }
1866 1921
1867 1922 .wpsc-dash-widget-actions {
1868 - /* Widget action links styles here */
1923 + font-size: 12px;
1869 1924 }
1870 1925
1871 1926 .wpsc-dash-widget-actions a {
1872 1927 cursor: pointer;
1873 1928 text-decoration: none;
1929 + color: var(--wpsc-dash-accent);
1930 + font-weight: 500;
1874 1931 }
1875 1932
1933 +.wpsc-dash-widget-actions a:hover {
1934 + text-decoration: underline;
1935 +}
1936 +
1876 1937 /* Style the content of widgets */
1877 1938 .wpsc-dash-widget-content {
1878 - /* Widget content styles here */
1939 + font-size: 13px;
1879 1940 }
1880 1941
1942 +/* Tables rendered inside a widget's content area (agent list, recent tickets, todos, out-of-sla,
1943 + timers, usergroups, agent performance, feedback, ...) - scoped to the content wrapper so this
1944 + doesn't touch tables anywhere else in the app. Text color is intentionally left unset here so
1945 + it inherits the widget's appearance-setting-driven text color instead of overriding it. */
1946 +.wpsc-dash-widget-content table {
1947 + width: 100%;
1948 + border-collapse: collapse;
1949 +}
1950 +
1951 +.wpsc-dash-widget-content table thead th {
1952 + text-align: left;
1953 + font-size: 11px;
1954 + font-weight: 600;
1955 + text-transform: uppercase;
1956 + letter-spacing: 0.04em;
1957 + padding: 8px 10px;
1958 + border-bottom: 1px solid var(--wpsc-dash-divider);
1959 + white-space: nowrap;
1960 +}
1961 +
1962 +.wpsc-dash-widget-content table tbody td {
1963 + padding: 10px;
1964 + border-bottom: 1px solid var(--wpsc-dash-divider);
1965 +}
1966 +
1967 +.wpsc-dash-widget-content table tbody tr:last-child td {
1968 + border-bottom: none;
1969 +}
1970 +
1971 +.wpsc-dash-widget-content table tbody tr:hover td {
1972 + background-color: var(--wpsc-dash-surface-hover);
1973 +}
1974 +
1881 1975 .wpsc-actions-btn-setting {
1976 + width: 100%;
1977 + display: flex;
1978 + align-items: center;
1979 + justify-content: space-between;
1882 1980 padding-bottom: 15px;
1883 1981 }
1884 1982
1885 1983 /* Style full-width widgets */
@@ -1911,9 +2009,9 @@
1911 2009 }
1912 2010
1913 2011 .wpsc-dash-widget-content::-webkit-scrollbar-track,
1914 2012 .wpsc-widget-body::-webkit-scrollbar-track {
1915 - background-color: #ffffff;
2013 + background-color: transparent;
1916 2014 }
1917 2015 /* table scrollable end */
1918 2016
1919 2017 .wpsc-dash-widget-mid .wpsc-dash-widget-content {
@@ -2022,10 +2120,12 @@
2022 2120 flex-direction: column;
2023 2121 }
2024 2122
2025 2123 .wpsc-widget-list {
2026 - border-bottom: 1px solid #ccc;
2027 - padding: 10px 0px;
2124 + border-bottom: 1px solid var(--wpsc-dash-divider, #eef0f4);
2125 + padding: 10px 2px;
2126 + font-size: 13px;
2127 + line-height: 1.6;
2028 2128 }
2029 2129
2030 2130 .wpsc-widget-list:last-child {
2031 2131 border-bottom: none;
@@ -2030,12 +2130,27 @@
2030 2130 .wpsc-widget-list:last-child {
2031 2131 border-bottom: none;
2032 2132 }
2033 2133
2134 +.wpsc-widget-list a {
2135 + color: var(--wpsc-dash-accent, #0079bf);
2136 + font-weight: 500;
2137 + text-decoration: none;
2138 +}
2139 +
2140 +.wpsc-widget-list a:hover {
2141 + text-decoration: underline;
2142 +}
2143 +
2034 2144 #wpsc-dash-agent-list .dt-search {
2035 2145 display: none;
2036 2146 }
2037 2147
2148 +.wpsc-recent-ticket-list td, .wpsc-db-agent-list td,
2149 +.wpsc-db-user-todo td {
2150 + cursor: default !important;
2151 +}
2152 +
2038 2153 /* User profile starts */
2039 2154 .wpsc-up-section {
2040 2155 width: 100%;
2041 2156 }
@@ -2160,35 +2275,41 @@
2160 2275
2161 2276 /* Agent collision css starts */
2162 2277 .wpsc-live-agents {
2163 2278 display: flex;
2279 + flex-direction: column;
2164 2280 gap: 5px;
2165 - align-items: center;
2166 - flex-wrap: wrap;
2281 + align-items: stretch;
2167 2282 }
2168 2283
2169 2284 .wpsc-agent-avatar {
2170 2285 position: relative;
2171 - width: 32px;
2172 - height: 32px;
2173 - border-radius: 50%;
2174 - overflow: hidden;
2286 + display: flex;
2287 + align-items: center;
2288 + gap: 6px;
2289 + max-width: 100%;
2290 + padding: 2px 10px 2px 2px;
2291 + border-radius: 16px;
2175 2292 cursor: pointer;
2293 + box-sizing: border-box;
2176 2294 transition: transform 0.2s ease, box-shadow 0.2s ease;
2177 2295 }
2178 2296
2179 2297 /* Avatar image */
2180 2298 .wpsc-agent-avatar img {
2181 - width: 100%;
2182 - height: 100%;
2299 + width: 28px;
2300 + height: 28px;
2301 + flex-shrink: 0;
2183 2302 object-fit: cover;
2184 2303 border-radius: 50%;
2185 2304 }
2186 2305
2187 -/* Hover effect */
2188 -.wpsc-agent-avatar:hover {
2189 - transform: translateY(-2px);
2190 - box-shadow: 0 4px 10px rgba(0,0,0,0.15);
2306 +/* Agent name shown alongside avatar (also covers installs with avatars disabled) */
2307 +.wpsc-agent-name {
2308 + overflow: hidden;
2309 + text-overflow: ellipsis;
2310 + white-space: nowrap;
2311 + font-size: 12px;
2191 2312 }
2192 2313 /* Agent collision css ends */
2193 2314
2194 2315 /* Error message only */