PluginProbe
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent / trunk
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent vtrunk
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
supportcandy / asset / css / ai-assistant / admin.css

admin.css in SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent trunk, at asset/css/ai-assistant/admin.css

512 lines 9.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 .wpsc-ai-action-buttons {
2 display: flex;
3 gap: 8px;
4 margin: 5px 0px 0px 5px;
5 align-self: flex-start;
6 }
7
8 .wpsc-ai-action-buttons button {
9 background: #ffffff;
10 border: 1px solid #d1d1d1;
11 border-radius: 6px;
12 padding: 5px 12px;
13 font-size: 12px;
14 font-weight: 500;
15 cursor: pointer;
16 color: #333;
17 transition: all 0.2s ease;
18 }
19
20 .wpsc-ai-action-buttons button:hover {
21 background-color: #f0f0f0;
22 border-color: #bbb;
23 }
24 .wpsc-input-group .extra-info {
25 font-size: 11px;
26 margin-bottom: 5px;
27 }
28
29 .wpsc-input-group .wpsc-ps-range {
30 display: flex;
31 align-items: center;
32 gap: 10px;
33 }
34
35 .label-container .required-indicator {
36 color: #ff0000;
37 margin-left: 5px;
38 }
39
40 .wpsc-modal-body {
41 display: flex;
42 flex-direction: column;
43 border-bottom: none !important;
44 }
45
46 .wpsc-ticket-summary-section {
47 margin-bottom: 15px;
48 margin-top: 20px;
49 }
50
51 .wpsc-ticket-summary-section ul {
52 list-style-type: disc !important;
53 padding-left: 40px !important;
54 }
55
56 .wpsc-ticket-summary-content h3 {
57 color: #ff8f2b;
58 margin-top: 0;
59 margin-bottom: 12px;
60 font-weight: 600;
61 }
62
63 .wpsc-ticket-summary-result {
64 font-size: 15px;
65 color: #333;
66 }
67
68 .wpsc-ai-assistance-header {
69 display: flex;
70 justify-content: space-between;
71 }
72
73 .wpsc-ai-assistance-header .wpsc-ai-assistance-header-close {
74 width: 12px;
75 cursor: pointer;
76 }
77
78 .wpsc-customer-reply-message {
79 align-self: flex-end;
80 background-color: #e3f2fd;
81 border-bottom-right-radius: 4px !important;
82 border: 1px solid #c2e2f9;
83 max-width: 80%;
84 padding: 10px 15px;
85 border-radius: 18px;
86 font-size: 14px;
87 line-height: 1.5;
88 color: #000000;
89 word-wrap: break-word;
90 margin: 5px;
91 }
92
93 .wpsc-ai-reply-message {
94 align-self: flex-start;
95 background-color: #f1f1f1;
96 border-bottom-left-radius: 4px !important;
97 border: 1px solid #e0e0e0;
98 max-width: 80%;
99 padding: 10px 15px;
100 border-radius: 18px;
101 font-size: 14px;
102 line-height: 1.5;
103 color: #000000;
104 word-wrap: break-word;
105 margin: 5px;
106 }
107
108 /* Loading div */
109 .wpsc-ai-loader {
110 display: flex;
111 justify-content: flex-end;
112 margin-top: 5px;
113 }
114
115 .wpsc-ai-loader img {
116 width: 15px;
117 }
118
119 .wpsc-ai-assistance-chatbox {
120 display: flex;
121 flex-direction: column;
122 }
123
124 .wpsc-ticket-summary-btn-container {
125 display: flex;
126 justify-content: center;
127 align-items: center;
128 padding: 10px 20px 20px 20px;
129 }
130
131 .wpsc-ticket-summary-container {
132 padding-bottom: 10px;
133 }
134
135 .wpsc-input-area {
136 border-top: 1px solid #eee;
137 background: #fafafa;
138 }
139
140 .wpsc-improve-auto-draft-reply,
141 .wpsc-ai-chat-textarea {
142 width: 100%;
143 height: 80px;
144 padding: 12px;
145 border: 1px solid #ddd;
146 border-radius: 8px;
147 resize: none; /* Keeps the UI clean */
148 font-family: inherit;
149 font-size: 14px;
150 box-sizing: border-box;
151 outline: none;
152 transition: border-color 0.2s;
153 }
154
155 .wpsc-improve-auto-draft-reply:focus,
156 .wpsc-ai-chat-textarea:focus {
157 border-color: #999;
158 background: #fff;
159 }
160
161 .wpsc-token-link {
162 color: #0073aa;
163 cursor: pointer;
164 text-decoration: underline;
165 }
166
167 .wpsc-token-link:hover {
168 color: #005177;
169 }
170
171 .wpsc-modal-body {
172 border-bottom: none !important;
173 }
174
175 .divide-bar .wpsc-ai-auto-delete-logs-time {
176 max-width: 100px;
177 }
178
179 .divide-bar .wpsc-ai-auto-delete-logs-unit {
180 max-width: 250px;
181 }
182
183 /* Shared AI Assistant list filter toolbar (Status / Source / Type / Search / Reset) */
184 .wpsc-aia-toolbar {
185 display: flex;
186 gap: 10px;
187 align-items: flex-end;
188 flex-wrap: wrap;
189 background: #fff;
190 border: 1px solid #dcdcde;
191 border-radius: 6px;
192 padding: 16px;
193 margin-bottom: 20px;
194 }
195
196 .wpsc-aia-toolbar-item {
197 display: flex;
198 flex-direction: column;
199 }
200
201 .wpsc-aia-toolbar-item label {
202 font-size: 12px;
203 color: #646970;
204 margin-bottom: 6px;
205 font-weight: 600;
206 }
207
208 .wpsc-aia-toolbar-item select,
209 .wpsc-aia-toolbar-item input {
210 min-width: 200px;
211 }
212
213 .wpsc-aia-toolbar-item .select2-container {
214 min-width: 200px;
215 }
216
217 .wpsc-aia-toolbar-reset {
218 flex: 1;
219 }
220
221 .wpsc-aia-toolbar-reset button {
222 width: fit-content;
223 }
224
225 .wpsc-aia-toolbar-search input {
226 width: 100%;
227 }
228
229 .wpsc-aia-actions-bar {
230 display: flex;
231 gap: 10px;
232 margin-bottom: 15px;
233 }
234
235 @media (max-width: 768px) {
236 .wpsc-aia-toolbar-item,
237 .wpsc-aia-toolbar-reset {
238 width: 100%;
239 }
240
241 .wpsc-aia-toolbar-item select,
242 .wpsc-aia-toolbar-item input {
243 min-width: 0;
244 width: 100%;
245 }
246 }
247
248 /* Container styling */
249 .wpsc-ai-training-list-actions-container {
250 display: flex;
251 flex-wrap: wrap;
252 justify-content: space-between;
253 align-items: center;
254 gap: 15px;
255 width: 100%;
256 }
257
258 /* Left Group (Select and Button) */
259 .wpsc-ai-training-list-actions {
260 display: flex;
261 align-items: center;
262 gap: 10px;
263 flex: 1;
264 justify-content: flex-start;
265 }
266
267 /* Right Group (Search) */
268 .wpsc-ai-training-list-actions-search {
269 flex: 0 1 auto;
270 display: flex;
271 justify-content: flex-end;
272 }
273
274 .wpsc-ai-training-list-container .dt-search {
275 display: none !important;
276 }
277
278 /* Length change is disabled and search/"Add new" are handled outside DataTables,
279 so the default top row would otherwise render empty. */
280 .wpsc-ai-training-list-container .dt-container > .dt-layout-row:first-child {
281 display: none;
282 }
283
284 /* Responsive: Stack vertically on small devices (Tablets/Phones) */
285 @media (max-width: 768px) {
286 .wpsc-ai-training-list-actions-container {
287 flex-direction: column;
288 align-items: stretch;
289 }
290
291 .wpsc-ai-training-list-actions {
292 width: 100%;
293 justify-content: space-between; /* Keeps select and button side-by-side */
294 }
295
296 .wpsc-ai-training-list-actions-search {
297 width: 100%;
298 }
299
300 /* Force the input box inside to take full width on mobile */
301 .wpsc-ai-training-list-actions-search input {
302 width: 100%;
303 }
304 }
305
306 .wpsc-ai-bulk-actions-btn {
307 display: flex;
308 align-items: center;
309 background-color: #fff;
310 border: 1px solid #aaa !important;
311 color: #444 !important;
312 font-size: 13px;
313 }
314
315 .wpsc-ai-bulk-actions-btn svg {
316 margin-left: 10px;
317 width: 10px;
318 padding-top: 3px;
319 }
320
321 #wpsc-bulk-actions-btn,
322 #wpsc-file-upload-bulk-actions-btn {
323 display: flex;
324 align-items: center;
325 }
326
327 #wpsc-bulk-actions-btn svg,
328 #wpsc-file-upload-bulk-actions-btn svg,
329 #wpsc-training-data-bulk-actions-btn svg {
330 height: 13px;
331 margin-left: 15px;
332 }
333
334 .wpsc-ait-sync-progress {
335 margin-top: 10px;
336 padding: 12px 14px;
337 background-color: #fef8e7;
338 border: 1px solid #f0c33c;
339 border-radius: 6px;
340 }
341
342 .wpsc-ait-sync-notice {
343 display: flex;
344 align-items: center;
345 gap: 6px;
346 margin-bottom: 8px;
347 font-size: 12px;
348 font-weight: 600;
349 color: #8a6100;
350 }
351
352 .wpsc-ait-sync-notice::before {
353 content: "\26A0";
354 }
355
356 .wpsc-ait-provider-notice {
357 display: flex;
358 align-items: center;
359 gap: 6px;
360 margin-bottom: 12px;
361 padding: 12px 14px;
362 background-color: #fef8e7;
363 border: 1px solid #f0c33c;
364 border-radius: 6px;
365 font-size: 12px;
366 font-weight: 600;
367 color: #8a6100;
368 }
369
370 .wpsc-ait-provider-notice::before {
371 content: "\26A0";
372 }
373
374 .wpsc-ait-sync-progress-bar {
375 width: 100%;
376 height: 10px;
377 background-color: #e5e5e5;
378 border-radius: 5px;
379 overflow: hidden;
380 }
381
382 .wpsc-ait-sync-progress-fill {
383 height: 100%;
384 width: 0%;
385 background-color: #2271b1;
386 border-radius: 5px;
387 transition: width 0.3s ease;
388 }
389
390 .wpsc-ait-sync-progress-label {
391 display: block;
392 margin-top: 4px;
393 font-size: 12px;
394 color: #555;
395 }
396
397 .wpsc-ait-sync-post-types {
398 list-style: none;
399 margin: 10px 0 0;
400 padding: 0;
401 display: flex;
402 flex-wrap: wrap;
403 gap: 6px 14px;
404 }
405
406 .wpsc-ait-sync-post-types li {
407 font-size: 12px;
408 color: #777;
409 display: flex;
410 align-items: center;
411 gap: 4px;
412 }
413
414 .wpsc-ait-sync-post-types li::before {
415 content: "\25CB";
416 font-size: 10px;
417 }
418
419 .wpsc-ait-sync-post-types li.done {
420 color: #1a7f37;
421 }
422
423 .wpsc-ait-sync-post-types li.done::before {
424 content: "\2713";
425 }
426
427 .wpsc-ait-sync-post-types li.processing {
428 color: #2271b1;
429 font-weight: 600;
430 }
431
432 .wpsc-ait-sync-post-types li.processing::before {
433 content: "\21BB";
434 }
435
436 .wpsc-ait-sync-post-types li.failed {
437 color: #d63638;
438 font-weight: 600;
439 }
440
441 .wpsc-ait-sync-post-types li.failed::before {
442 content: "\2715";
443 }
444
445 .wpsc-ait-record-counts {
446 display: flex;
447 align-items: center;
448 flex-wrap: wrap;
449 gap: 10px;
450 background-color: #f5f5f5;
451 border-radius: 6px;
452 padding: 8px 14px;
453 margin-bottom: 15px;
454 font-size: 13px;
455 color: #444;
456 }
457
458 .wpsc-ait-record-counts span:not(:last-child) {
459 padding-right: 10px;
460 border-right: 1px solid #d1d1d1;
461 }
462
463 .wpsc-ait-record-counts span strong {
464 color: #222;
465 font-weight: 600;
466 }
467
468 /* Edit screen: gap between the In Queue count and its "Retry Upload" link. */
469 .wpsc-ait-retry-upload-link {
470 margin-left: 10px;
471 }
472
473 /* Sources list table: overall per-source upload status badge - see
474 WPSC_PS_AI_Setting_AI_Training::get_source_upload_status(). */
475 .wpsc-ait-upload-status {
476 display: inline-block;
477 padding: 3px 10px;
478 border-radius: 4px;
479 font-size: 12px;
480 font-weight: 600;
481 white-space: nowrap;
482 }
483
484 .wpsc-ait-upload-status--completed {
485 background-color: #edfaef;
486 color: #1a7f37;
487 }
488
489 .wpsc-ait-upload-status--uploading {
490 background-color: #e3f2fd;
491 color: #2271b1;
492 }
493
494 .wpsc-ait-upload-status--queued {
495 background-color: #fef8e7;
496 color: #8a6100;
497 }
498
499 .wpsc-ait-upload-status--failed {
500 background-color: #fcedee;
501 color: #d63638;
502 }
503
504 .wpsc-ait-upload-status--not-synced {
505 background-color: #f1f1f1;
506 color: #666;
507 }
508
509 /* AI Training Data tab list: keep the Action column's links (View Reason | Delete) on one line instead of wrapping. */
510 .wpsc-ai-training-data-list-table td:last-child {
511 white-space: nowrap;
512 }