PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.44
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.44
51.1.86 51.1.84 51.1.85 51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 All 40 releases
king-addons / includes / admin / layouts / shared / admin-v3-styles.css

admin-v3-styles.css in King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder 51.1.44, at includes/admin/layouts/shared/admin-v3-styles.css

1,349 lines 26.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Shared Admin V3 Styles - Apple-inspired "Pro" UI
3 *
4 * Modern, premium design with glassmorphism and iOS aesthetics.
5 * Shared across Settings, Wishlist, and Analytics pages.
6 *
7 * @package King_Addons
8 */
9
10 /* ===== RESET & BASE ===== */
11 body.ka-admin-v3 #wpcontent,
12 body.ka-admin-v3 #wpbody,
13 body.ka-admin-v3 #wpbody-content {
14 background: #f5f5f7 !important;
15 padding: 0 !important;
16 }
17
18 body.ka-admin-v3.ka-v3-dark #wpcontent,
19 body.ka-admin-v3.ka-v3-dark #wpbody,
20 body.ka-admin-v3.ka-v3-dark #wpbody-content {
21 background: #000000 !important;
22 }
23
24 html.ka-v3-dark,
25 html.ka-v3-dark body {
26 background: #000000 !important;
27 }
28
29 .ka-admin-wrap {
30 font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
31 max-width: 1200px;
32 margin: 0 auto;
33 padding: 60px 40px;
34 color: #1d1d1f;
35 transition: color 0.3s ease;
36 }
37
38 .ka-admin-wrap * {
39 box-sizing: border-box;
40 }
41
42 /* ===== TYPOGRAPHY ===== */
43 .ka-admin-title {
44 font-size: 48px;
45 font-weight: 700;
46 letter-spacing: -0.015em;
47 margin: 0 0 8px;
48 line-height: 1.1;
49 background: linear-gradient(135deg, #1d1d1f 0%, #515154 100%);
50 -webkit-background-clip: text;
51 -webkit-text-fill-color: transparent;
52 background-clip: text;
53 }
54
55 .ka-admin-subtitle {
56 font-size: 19px;
57 font-weight: 400;
58 color: #86868b;
59 margin: 0;
60 line-height: 1.5;
61 }
62
63 /* ===== HEADER ===== */
64 .ka-admin-header {
65 display: flex;
66 justify-content: space-between;
67 align-items: flex-start;
68 margin-bottom: 48px;
69 gap: 24px;
70 }
71
72 .ka-admin-header-left {
73 display: flex;
74 align-items: flex-start;
75 gap: 20px;
76 }
77
78 .ka-admin-header-icon {
79 width: 64px;
80 height: 64px;
81 background: linear-gradient(135deg, #0071e3 0%, #0077ed 100%);
82 border-radius: 16px;
83 display: flex;
84 align-items: center;
85 justify-content: center;
86 flex-shrink: 0;
87 }
88
89 .ka-admin-header-icon .dashicons {
90 font-size: 32px;
91 width: 32px;
92 height: 32px;
93 color: #fff;
94 }
95
96 .ka-admin-header-icon.pink {
97 background: linear-gradient(135deg, #ec4899 0%, #db2777 100%);
98 }
99
100 .ka-admin-header-icon.purple {
101 background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
102 }
103
104 .ka-admin-header-icon.red {
105 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
106 }
107
108 .ka-admin-header-icon.green {
109 background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
110 }
111
112 .ka-admin-header-icon.orange {
113 background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
114 }
115
116 .ka-admin-header-actions {
117 display: flex;
118 gap: 12px;
119 align-items: center;
120 }
121
122 /* ===== BUTTONS ===== */
123 .ka-btn {
124 display: inline-flex;
125 align-items: center;
126 gap: 8px;
127 padding: 12px 24px;
128 border-radius: 980px;
129 font-size: 15px;
130 font-weight: 400;
131 text-decoration: none;
132 transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
133 cursor: pointer;
134 border: none;
135 white-space: nowrap;
136 }
137
138 .ka-btn-sm {
139 padding: 8px 16px;
140 font-size: 13px;
141 }
142
143 .ka-btn-secondary {
144 background: rgba(0, 0, 0, 0.06);
145 color: #1d1d1f;
146 }
147
148 .ka-btn-secondary:hover {
149 background: rgba(0, 0, 0, 0.12);
150 color: #1d1d1f;
151 }
152
153 .ka-btn-primary {
154 background: #0071e3;
155 color: #fff;
156 }
157
158 .ka-btn-primary:hover {
159 background: #0077ed;
160 color: #fff;
161 transform: scale(1.02);
162 }
163
164 .ka-btn-pink {
165 background: linear-gradient(135deg, #ec4899 0%, #db2777 100%);
166 color: #fff;
167 }
168
169 .ka-btn-pink:hover {
170 transform: scale(1.02);
171 box-shadow: 0 4px 20px rgba(236, 72, 153, 0.4);
172 color: #fff;
173 }
174
175 .ka-btn .dashicons {
176 font-size: 18px;
177 width: 18px;
178 height: 18px;
179 }
180
181 /* ===== THEME TOGGLE ===== */
182 .ka-theme-toggle {
183 display: inline-flex;
184 align-items: center;
185 gap: 10px;
186 padding: 8px 16px;
187 background: rgba(0, 0, 0, 0.06);
188 border-radius: 980px;
189 cursor: pointer;
190 transition: all 0.3s ease;
191 }
192
193 .ka-theme-toggle:hover {
194 background: rgba(0, 0, 0, 0.1);
195 }
196
197 .ka-theme-toggle .dashicons {
198 font-size: 20px;
199 width: 20px;
200 height: 20px;
201 color: #86868b;
202 transition: color 0.3s ease;
203 }
204
205 /* ===== THEME SEGMENTED (Dashboard-style) ===== */
206 .ka-v3-segmented {
207 position: relative;
208 display: grid;
209 grid-template-columns: 1fr 1fr 1fr;
210 align-items: center;
211 padding: 2px;
212 border-radius: 980px;
213 background: rgba(0, 0, 0, 0.06);
214 border: 1px solid rgba(0, 0, 0, 0.06);
215 min-width: 240px;
216 height: 40px;
217 overflow: hidden;
218 }
219
220 .ka-v3-segmented-indicator {
221 position: absolute;
222 top: 2px;
223 bottom: 2px;
224 left: 2px;
225 width: calc(33.333% - 2px);
226 border-radius: 980px;
227 background: rgba(255, 255, 255, 0.92);
228 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
229 transform: translateX(0);
230 transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
231 z-index: 0;
232 }
233
234 .ka-v3-segmented[data-active="dark"] .ka-v3-segmented-indicator {
235 transform: translateX(100%);
236 }
237
238 .ka-v3-segmented[data-active="auto"] .ka-v3-segmented-indicator {
239 transform: translateX(200%);
240 }
241
242 .ka-v3-segmented-btn {
243 position: relative;
244 z-index: 1;
245 height: 36px;
246 border: none;
247 background: transparent;
248 border-radius: 980px;
249 padding: 0 12px;
250 display: inline-flex;
251 align-items: center;
252 justify-content: center;
253 gap: 8px;
254 font-size: 13px;
255 font-weight: 500;
256 color: #1d1d1f;
257 cursor: pointer;
258 transition: color 0.25s ease, transform 0.25s ease;
259 user-select: none;
260 white-space: nowrap;
261 }
262
263 .ka-v3-segmented-btn:active {
264 transform: scale(0.98);
265 }
266
267 .ka-v3-segmented-icon {
268 font-size: 14px;
269 line-height: 1;
270 opacity: 0.9;
271 }
272
273 .ka-v3-segmented-btn[aria-pressed="false"] {
274 color: rgba(29, 29, 31, 0.7);
275 }
276
277 body.ka-admin-v3.ka-v3-dark .ka-v3-segmented {
278 background: rgba(255, 255, 255, 0.1);
279 border-color: rgba(255, 255, 255, 0.1);
280 }
281
282 body.ka-admin-v3.ka-v3-dark .ka-v3-segmented-indicator {
283 background: rgba(255, 255, 255, 0.1);
284 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
285 }
286
287 body.ka-admin-v3.ka-v3-dark .ka-v3-segmented-btn {
288 color: #f5f5f7;
289 }
290
291 body.ka-admin-v3.ka-v3-dark .ka-v3-segmented-btn[aria-pressed="false"] {
292 color: rgba(245, 245, 247, 0.72);
293 }
294
295
296 body.toplevel_page_king-addons.ka-v3-dark {
297 background: #000000 !important;
298 }
299
300 /* ===== ADMIN NOTICES (V3) ===== */
301 body.ka-admin-v3 .notice,
302 body.ka-admin-v3 .updated,
303 body.ka-admin-v3 .error,
304 .ka-admin-wrap .notice,
305 .ka-admin-wrap .updated,
306 .ka-admin-wrap .error {
307 margin: 0 0 16px;
308 padding: 18px 20px;
309 border-radius: 16px;
310 border: 1px solid rgba(0, 0, 0, 0.06);
311 background: rgba(255, 255, 255, 0.72);
312 backdrop-filter: saturate(180%) blur(20px);
313 -webkit-backdrop-filter: saturate(180%) blur(20px);
314 box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
315 }
316
317 body.ka-admin-v3.ka-dark-theme .notice,
318 body.ka-admin-v3.ka-dark-theme .updated,
319 body.ka-admin-v3.ka-dark-theme .error,
320 body.ka-admin-v3.ka-v3-dark .ka-admin-wrap .notice,
321 body.ka-admin-v3.ka-v3-dark .ka-admin-wrap .updated,
322 body.ka-admin-v3.ka-v3-dark .ka-admin-wrap .error {
323 border-color: rgba(255, 255, 255, 0.08);
324 background: rgba(28, 28, 30, 0.72);
325 box-shadow: 0 10px 36px rgba(0, 0, 0, 0.3);
326 color: #f5f5f7;
327 }
328
329 body.ka-admin-v3.ka-v3-dark .notice,
330 body.ka-admin-v3.ka-v3-dark .updated,
331 body.ka-admin-v3.ka-v3-dark .error {
332 border-color: rgba(255, 255, 255, 0.08);
333 background: rgba(28, 28, 30, 0.72);
334 box-shadow: 0 10px 36px rgba(0, 0, 0, 0.3);
335 color: #f5f5f7;
336 }
337
338 /* Dashboard (admin.php?page=king-addons) can render notices outside .ka-admin-wrap and without ka-admin-v3 */
339 body.toplevel_page_king-addons.ka-v3-dark .notice,
340 body.toplevel_page_king-addons.ka-v3-dark .notice.notice-success,
341 body.toplevel_page_king-addons.ka-v3-dark .notice.notice-info,
342 body.toplevel_page_king-addons.ka-v3-dark .notice.notice-warning,
343 body.toplevel_page_king-addons.ka-v3-dark .notice.notice-error,
344 body.toplevel_page_king-addons.ka-v3-dark .updated,
345 body.toplevel_page_king-addons.ka-v3-dark .error {
346 border-color: rgba(255, 255, 255, 0.08) !important;
347 background: rgba(28, 28, 30, 0.72) !important;
348 box-shadow: 0 10px 36px rgba(0, 0, 0, 0.3) !important;
349 color: #f5f5f7 !important;
350 }
351
352 body.ka-admin-v3 .notice p,
353 body.ka-admin-v3 .updated p,
354 body.ka-admin-v3 .error p,
355 .ka-admin-wrap .notice p,
356 .ka-admin-wrap .updated p,
357 .ka-admin-wrap .error p {
358 margin: 0;
359 font-size: 15px;
360 line-height: 1.5;
361 }
362
363 body.ka-admin-v3 .notice a,
364 body.ka-admin-v3 .updated a,
365 body.ka-admin-v3 .error a,
366 .ka-admin-wrap .notice a,
367 .ka-admin-wrap .updated a,
368 .ka-admin-wrap .error a {
369 color: inherit;
370 text-decoration: underline;
371 text-underline-offset: 2px;
372 }
373
374 body.ka-admin-v3.ka-v3-dark .notice .notice-dismiss:before,
375 body.ka-admin-v3.ka-dark-theme .notice .notice-dismiss:before {
376 color: rgba(245, 245, 247, 0.72);
377 }
378
379 body.ka-admin-v3.ka-v3-dark .notice .notice-dismiss:hover:before,
380 body.ka-admin-v3.ka-v3-dark .notice .notice-dismiss:focus:before,
381 body.ka-admin-v3.ka-dark-theme .notice .notice-dismiss:hover:before,
382 body.ka-admin-v3.ka-dark-theme .notice .notice-dismiss:focus:before {
383 color: rgba(245, 245, 247, 0.92);
384 }
385
386 /* Subtle left accent like Apple callouts */
387 body.ka-admin-v3 .notice,
388 body.ka-admin-v3 .updated,
389 body.ka-admin-v3 .error,
390 .ka-admin-wrap .notice,
391 .ka-admin-wrap .updated,
392 .ka-admin-wrap .error {
393 border-left-width: 4px;
394 }
395
396 body.ka-admin-v3 .notice.notice-error,
397 body.ka-admin-v3 .error,
398 .ka-admin-wrap .notice.notice-error,
399 .ka-admin-wrap .error {
400 border-left-color: rgba(255, 59, 48, 0.9);
401 }
402
403 body.ka-admin-v3 .notice.notice-info,
404 .ka-admin-wrap .notice.notice-info {
405 border-left-color: rgba(0, 113, 227, 0.9);
406 }
407
408 body.ka-admin-v3 .notice.notice-warning,
409 .ka-admin-wrap .notice.notice-warning {
410 border-left-color: rgba(245, 158, 11, 0.9);
411 }
412
413 body.ka-admin-v3 .updated,
414 body.ka-admin-v3 .notice.notice-success,
415 .ka-admin-wrap .updated,
416 .ka-admin-wrap .notice.notice-success {
417 border-left-color: rgba(52, 199, 89, 0.9);
418 }
419
420 /* ===== STATUS BADGE ===== */
421 .ka-status {
422 display: inline-flex;
423 align-items: center;
424 gap: 8px;
425 padding: 6px 14px;
426 border-radius: 980px;
427 font-size: 13px;
428 font-weight: 500;
429 }
430
431 .ka-status-enabled {
432 background: rgba(52, 199, 89, 0.15);
433 color: #34c759;
434 }
435
436 .ka-status-disabled {
437 background: rgba(255, 59, 48, 0.15);
438 color: #ff3b30;
439 }
440
441 .ka-status-dot {
442 width: 8px;
443 height: 8px;
444 border-radius: 50%;
445 background: currentColor;
446 }
447
448 /* ===== TABS ===== */
449 .ka-tabs {
450 display: flex;
451 justify-content: center;
452 background: rgba(255, 255, 255, 0.72);
453 backdrop-filter: saturate(180%) blur(20px);
454 -webkit-backdrop-filter: saturate(180%) blur(20px);
455 padding: 6px;
456 border-radius: 980px;
457 width: fit-content;
458 margin: 0 auto 40px;
459 box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
460 border: 1px solid rgba(0, 0, 0, 0.04);
461 }
462
463 .ka-tab {
464 padding: 10px 20px;
465 font-size: 14px;
466 font-weight: 500;
467 color: #86868b;
468 background: transparent;
469 border: none;
470 border-radius: 980px;
471 cursor: pointer;
472 transition: all 0.3s ease;
473 }
474
475 .ka-tab:hover {
476 color: #1d1d1f;
477 }
478
479 .ka-tab.active {
480 background: #fff;
481 color: #1d1d1f;
482 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
483 }
484
485 .ka-tab-content {
486 display: none;
487 }
488
489 .ka-tab-content.active {
490 display: block;
491 }
492
493 /* ===== CARDS ===== */
494 .ka-card {
495 background: #fff;
496 border-radius: 20px;
497 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
498 margin-bottom: 24px;
499 overflow: hidden;
500 transition: box-shadow 0.3s ease;
501 }
502
503 .ka-card:hover {
504 box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
505 }
506
507 .ka-card-header {
508 padding: 20px 28px;
509 border-bottom: 1px solid rgba(0, 0, 0, 0.06);
510 display: flex;
511 align-items: center;
512 gap: 12px;
513 }
514
515 .ka-card-header h2,
516 .ka-card-header h3 {
517 margin: 0;
518 font-size: 17px;
519 font-weight: 600;
520 color: #1d1d1f;
521 }
522
523 .ka-card-header .dashicons {
524 color: #0071e3;
525 font-size: 20px;
526 width: 20px;
527 height: 20px;
528 }
529
530 .ka-card-header .dashicons.pink {
531 color: #ec4899;
532 }
533
534 .ka-card-body {
535 padding: 24px 28px;
536 }
537
538 /* ===== FORM ROWS ===== */
539 .ka-row {
540 display: flex;
541 align-items: flex-start;
542 padding: 18px 0;
543 border-bottom: 1px solid rgba(0, 0, 0, 0.04);
544 }
545
546 .ka-row:last-child {
547 border-bottom: none;
548 }
549
550 .ka-row-label {
551 width: 200px;
552 flex-shrink: 0;
553 font-size: 15px;
554 font-weight: 500;
555 color: #1d1d1f;
556 padding-top: 10px;
557 }
558
559 .ka-row-field {
560 flex: 1;
561 }
562
563 .ka-row-field input[type="text"],
564 .ka-row-field input[type="number"],
565 .ka-row-field input[type="password"],
566 .ka-row-field input[type="email"],
567 .ka-row-field input[type="date"],
568 .ka-row-field textarea,
569 .ka-row-field select {
570 width: 100%;
571 max-width: 400px;
572 padding: 12px 16px;
573 border: 1px solid rgba(0, 0, 0, 0.1);
574 border-radius: 12px;
575 font-size: 15px;
576 font-family: inherit;
577 background: #fff;
578 transition: border-color 0.2s, box-shadow 0.2s;
579 }
580
581 .ka-row-field input:focus,
582 .ka-row-field textarea:focus,
583 .ka-row-field select:focus {
584 outline: none;
585 border-color: #0071e3;
586 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.1);
587 }
588
589 .ka-row-desc {
590 font-size: 13px;
591 color: #86868b;
592 margin-top: 8px;
593 line-height: 1.5;
594 }
595
596 .ka-row-desc a {
597 color: #0071e3;
598 text-decoration: none;
599 }
600
601 .ka-row-desc a:hover {
602 text-decoration: underline;
603 }
604
605 /* ===== TOGGLE SWITCH (iOS Style) ===== */
606 .ka-toggle {
607 position: relative;
608 display: inline-flex;
609 align-items: center;
610 gap: 12px;
611 cursor: pointer;
612 }
613
614 .ka-toggle input {
615 position: absolute;
616 opacity: 0;
617 width: 0;
618 height: 0;
619 }
620
621 .ka-toggle-slider {
622 width: 51px;
623 height: 31px;
624 background: #e9e9eb;
625 border-radius: 16px;
626 position: relative;
627 transition: background 0.3s ease;
628 }
629
630 .ka-toggle-slider::after {
631 content: '';
632 position: absolute;
633 top: 2px;
634 left: 2px;
635 width: 27px;
636 height: 27px;
637 background: #fff;
638 border-radius: 50%;
639 transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
640 box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.1);
641 }
642
643 .ka-toggle input:checked + .ka-toggle-slider {
644 background: #34c759;
645 }
646
647 .ka-toggle input:checked + .ka-toggle-slider::after {
648 transform: translateX(20px);
649 }
650
651 .ka-toggle-label {
652 font-size: 15px;
653 color: #86868b;
654 }
655
656 /* ===== RADIO GROUP ===== */
657 .ka-radio-group {
658 display: flex;
659 flex-direction: column;
660 gap: 10px;
661 }
662
663 .ka-radio-item {
664 display: flex;
665 align-items: center;
666 gap: 10px;
667 font-size: 15px;
668 color: #1d1d1f;
669 cursor: pointer;
670 }
671
672 .ka-radio-item input[type="radio"] {
673 width: 20px;
674 height: 20px;
675 accent-color: #0071e3;
676 }
677
678 /* ===== COLOR PICKER ===== */
679 .ka-color-wrap {
680 display: flex;
681 align-items: center;
682 gap: 12px;
683 }
684
685 .ka-color-wrap input[type="text"] {
686 max-width: 140px !important;
687 }
688
689 /* ===== PRO BADGE ===== */
690 .ka-pro-badge {
691 display: inline-block;
692 background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
693 color: #fff;
694 font-size: 10px;
695 font-weight: 700;
696 padding: 4px 8px;
697 border-radius: 6px;
698 text-transform: uppercase;
699 letter-spacing: 0.5px;
700 margin-left: 10px;
701 }
702
703 /* ===== SUBMIT FOOTER ===== */
704 .ka-submit {
705 padding: 24px 28px;
706 background: rgba(0, 0, 0, 0.02);
707 border-top: 1px solid rgba(0, 0, 0, 0.06);
708 display: flex;
709 justify-content: flex-end;
710 gap: 12px;
711 }
712
713 /* ===== STATS GRID ===== */
714 .ka-stats-grid {
715 display: grid;
716 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
717 gap: 20px;
718 margin-bottom: 32px;
719 }
720
721 .ka-stat-card {
722 background: #fff;
723 border-radius: 20px;
724 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
725 padding: 24px;
726 position: relative;
727 overflow: hidden;
728 transition: transform 0.3s ease, box-shadow 0.3s ease;
729 }
730
731 .ka-stat-card:hover {
732 transform: translateY(-4px);
733 box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
734 }
735
736 .ka-stat-card::before {
737 content: '';
738 position: absolute;
739 top: 0;
740 left: 0;
741 right: 0;
742 height: 4px;
743 background: linear-gradient(90deg, #0071e3, #0077ed);
744 }
745
746 .ka-stat-card:nth-child(2)::before {
747 background: linear-gradient(90deg, #8b5cf6, #7c3aed);
748 }
749
750 .ka-stat-card:nth-child(3)::before {
751 background: linear-gradient(90deg, #34c759, #30d158);
752 }
753
754 .ka-stat-card:nth-child(4)::before {
755 background: linear-gradient(90deg, #ff9f0a, #ff9500);
756 }
757
758 .ka-stat-card:nth-child(5)::before {
759 background: linear-gradient(90deg, #ec4899, #db2777);
760 }
761
762 .ka-stat-label {
763 font-size: 13px;
764 font-weight: 500;
765 color: #86868b;
766 margin-bottom: 8px;
767 text-transform: uppercase;
768 letter-spacing: 0.05em;
769 }
770
771 .ka-stat-value {
772 font-size: 36px;
773 font-weight: 700;
774 color: #1d1d1f;
775 letter-spacing: -0.02em;
776 }
777
778 .ka-stat-value.good {
779 color: #34c759;
780 }
781
782 /* ===== FILTER BAR ===== */
783 .ka-filter-bar {
784 background: #fff;
785 border-radius: 20px;
786 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
787 padding: 20px 24px;
788 margin-bottom: 24px;
789 display: flex;
790 align-items: center;
791 gap: 20px;
792 flex-wrap: wrap;
793 }
794
795 .ka-filter-bar label {
796 display: flex;
797 align-items: center;
798 gap: 10px;
799 font-size: 14px;
800 font-weight: 500;
801 color: #86868b;
802 }
803
804 .ka-filter-bar input[type="date"] {
805 padding: 10px 14px;
806 border: 1px solid rgba(0, 0, 0, 0.1);
807 border-radius: 10px;
808 font-size: 14px;
809 }
810
811 .ka-filter-bar input[type="date"]:focus {
812 outline: none;
813 border-color: #0071e3;
814 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.1);
815 }
816
817 .ka-filter-bar .button {
818 padding: 10px 20px;
819 border-radius: 10px;
820 background: rgba(0, 0, 0, 0.06);
821 border: none;
822 color: #1d1d1f;
823 font-weight: 500;
824 cursor: pointer;
825 transition: all 0.2s ease;
826 }
827
828 .ka-filter-bar .button:hover {
829 background: rgba(0, 0, 0, 0.1);
830 }
831
832 .ka-export-btn {
833 margin-left: auto;
834 }
835
836 /* ===== TABLE ===== */
837 .ka-table {
838 width: 100%;
839 border-collapse: collapse;
840 }
841
842 .ka-table th {
843 background: rgba(0, 0, 0, 0.02);
844 padding: 16px 20px;
845 text-align: left;
846 font-size: 12px;
847 font-weight: 600;
848 color: #86868b;
849 text-transform: uppercase;
850 letter-spacing: 0.05em;
851 border-bottom: 1px solid rgba(0, 0, 0, 0.06);
852 }
853
854 .ka-table td {
855 padding: 16px 20px;
856 border-bottom: 1px solid rgba(0, 0, 0, 0.04);
857 font-size: 15px;
858 color: #1d1d1f;
859 }
860
861 .ka-table tbody tr {
862 transition: background 0.2s ease;
863 }
864
865 .ka-table tbody tr:hover {
866 background: rgba(0, 0, 0, 0.02);
867 }
868
869 .ka-table .text-center {
870 text-align: center;
871 }
872
873 .ka-table .font-bold {
874 font-weight: 600;
875 }
876
877 /* Product cell */
878 .ka-product-cell {
879 display: flex;
880 align-items: center;
881 gap: 14px;
882 }
883
884 .ka-product-cell img {
885 width: 44px;
886 height: 44px;
887 border-radius: 10px;
888 object-fit: cover;
889 border: 1px solid rgba(0, 0, 0, 0.06);
890 }
891
892 .ka-product-cell a {
893 color: #1d1d1f;
894 font-weight: 500;
895 text-decoration: none;
896 }
897
898 .ka-product-cell a:hover {
899 color: #0071e3;
900 }
901
902 /* ===== BADGE ===== */
903 .ka-badge {
904 display: inline-block;
905 padding: 6px 12px;
906 border-radius: 980px;
907 font-size: 13px;
908 font-weight: 500;
909 }
910
911 .ka-badge-success {
912 background: rgba(52, 199, 89, 0.15);
913 color: #34c759;
914 }
915
916 .ka-badge-warning {
917 background: rgba(255, 159, 10, 0.15);
918 color: #ff9f0a;
919 }
920
921 .ka-badge-neutral {
922 background: rgba(0, 0, 0, 0.06);
923 color: #86868b;
924 }
925
926 /* ===== STOCK STATUS ===== */
927 .ka-stock {
928 display: inline-flex;
929 align-items: center;
930 gap: 6px;
931 font-size: 14px;
932 font-weight: 500;
933 }
934
935 .ka-stock-in {
936 color: #34c759;
937 }
938
939 .ka-stock-out {
940 color: #ff3b30;
941 }
942
943 .ka-stock .dashicons {
944 font-size: 16px;
945 width: 16px;
946 height: 16px;
947 }
948
949 /* ===== SORTABLE LIST ===== */
950 .ka-sortable-list {
951 list-style: none;
952 margin: 0;
953 padding: 0;
954 max-width: 360px;
955 }
956
957 .ka-sortable-item {
958 display: flex;
959 align-items: center;
960 padding: 14px 16px;
961 margin-bottom: 8px;
962 background: #fff;
963 border: 1px solid rgba(0, 0, 0, 0.08);
964 border-radius: 12px;
965 cursor: move;
966 transition: all 0.2s ease;
967 }
968
969 .ka-sortable-item:hover {
970 border-color: #0071e3;
971 box-shadow: 0 2px 8px rgba(0, 113, 227, 0.1);
972 }
973
974 .ka-sortable-item.ui-sortable-helper {
975 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
976 border-color: #0071e3;
977 }
978
979 .ka-sortable-item.ui-sortable-placeholder {
980 visibility: visible !important;
981 background: rgba(0, 113, 227, 0.08);
982 border: 2px dashed #0071e3;
983 }
984
985 .ka-sortable-item label {
986 display: flex;
987 align-items: center;
988 gap: 10px;
989 cursor: pointer;
990 margin: 0;
991 font-size: 15px;
992 }
993
994 .ka-sortable-handle {
995 color: #86868b;
996 margin-right: 10px;
997 }
998
999 /* ===== PRO NOTICE / UPGRADE CARD ===== */
1000 .ka-pro-notice,
1001 .ka-upgrade-card {
1002 background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(124, 58, 237, 0.08) 100%);
1003 border: 1px solid rgba(139, 92, 246, 0.2);
1004 border-radius: 20px;
1005 padding: 40px;
1006 text-align: center;
1007 margin-bottom: 24px;
1008 }
1009
1010 .ka-pro-notice h2,
1011 .ka-upgrade-card h3 {
1012 margin: 0 0 12px;
1013 font-size: 24px;
1014 font-weight: 700;
1015 color: #7c3aed;
1016 }
1017
1018 .ka-pro-notice p,
1019 .ka-upgrade-card p {
1020 margin: 0 0 24px;
1021 font-size: 16px;
1022 color: #86868b;
1023 max-width: 500px;
1024 margin-left: auto;
1025 margin-right: auto;
1026 }
1027
1028 .ka-upgrade-card ul {
1029 text-align: left;
1030 max-width: 400px;
1031 margin: 0 auto 24px;
1032 padding-left: 0;
1033 list-style: none;
1034 }
1035
1036 .ka-upgrade-card li {
1037 margin-bottom: 10px;
1038 padding-left: 28px;
1039 position: relative;
1040 font-size: 15px;
1041 color: #1d1d1f;
1042 }
1043
1044 .ka-upgrade-card li::before {
1045 content: '✓';
1046 position: absolute;
1047 left: 0;
1048 color: #7c3aed;
1049 font-weight: 600;
1050 }
1051
1052 /* ===== EMPTY STATE ===== */
1053 .ka-empty {
1054 text-align: center;
1055 padding: 60px 20px;
1056 color: #86868b;
1057 }
1058
1059 .ka-empty .dashicons {
1060 font-size: 56px;
1061 width: 56px;
1062 height: 56px;
1063 opacity: 0.3;
1064 margin-bottom: 20px;
1065 }
1066
1067 .ka-empty p {
1068 font-size: 17px;
1069 }
1070
1071 /* ===== TWO COLUMN GRID ===== */
1072 .ka-grid-2 {
1073 display: grid;
1074 grid-template-columns: 1fr 1fr;
1075 gap: 0 40px;
1076 }
1077
1078 /* ===== DARK THEME ===== */
1079 body.ka-v3-dark .ka-admin-wrap {
1080 color: #f5f5f7;
1081 }
1082
1083 body.ka-v3-dark .ka-admin-title {
1084 background: linear-gradient(135deg, #f5f5f7 0%, #a1a1a6 100%);
1085 -webkit-background-clip: text;
1086 background-clip: text;
1087 }
1088
1089 body.ka-v3-dark .ka-admin-subtitle {
1090 color: #86868b;
1091 }
1092
1093 body.ka-v3-dark .ka-btn-secondary {
1094 background: rgba(255, 255, 255, 0.1);
1095 color: #f5f5f7;
1096 }
1097
1098 body.ka-v3-dark .ka-btn-secondary:hover {
1099 background: rgba(255, 255, 255, 0.15);
1100 color: #fff;
1101 }
1102
1103 body.ka-v3-dark .ka-theme-toggle {
1104 background: rgba(255, 255, 255, 0.1);
1105 }
1106
1107 body.ka-v3-dark .ka-theme-toggle:hover {
1108 background: rgba(255, 255, 255, 0.15);
1109 }
1110
1111 body.ka-v3-dark .ka-tabs {
1112 background: rgba(255, 255, 255, 0.08);
1113 border-color: rgba(255, 255, 255, 0.06);
1114 }
1115
1116 body.ka-v3-dark .ka-tab {
1117 color: #86868b;
1118 }
1119
1120 body.ka-v3-dark .ka-tab:hover {
1121 color: #f5f5f7;
1122 }
1123
1124 body.ka-v3-dark .ka-tab.active {
1125 background: rgba(255, 255, 255, 0.12);
1126 color: #f5f5f7;
1127 }
1128
1129 body.ka-v3-dark .ka-card {
1130 background: #1c1c1e;
1131 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
1132 }
1133
1134 body.ka-v3-dark .ka-card-header {
1135 border-bottom-color: rgba(255, 255, 255, 0.08);
1136 }
1137
1138 body.ka-v3-dark .ka-card-header h2,
1139 body.ka-v3-dark .ka-card-header h3 {
1140 color: #f5f5f7;
1141 }
1142
1143 body.ka-v3-dark .ka-card-body {
1144 background: #1c1c1e;
1145 }
1146
1147 body.ka-v3-dark .ka-row {
1148 border-bottom-color: rgba(255, 255, 255, 0.06);
1149 }
1150
1151 body.ka-v3-dark .ka-row-label {
1152 color: #f5f5f7;
1153 }
1154
1155 body.ka-v3-dark .ka-row-field input,
1156 body.ka-v3-dark .ka-row-field textarea,
1157 body.ka-v3-dark .ka-row-field select {
1158 background: #2c2c2e;
1159 border-color: rgba(255, 255, 255, 0.1);
1160 color: #f5f5f7;
1161 }
1162
1163 body.ka-v3-dark .ka-row-field input:focus,
1164 body.ka-v3-dark .ka-row-field textarea:focus,
1165 body.ka-v3-dark .ka-row-field select:focus {
1166 border-color: #0a84ff;
1167 box-shadow: 0 0 0 4px rgba(10, 132, 255, 0.2);
1168 }
1169
1170 body.ka-v3-dark .ka-toggle-slider {
1171 background: #3a3a3c;
1172 }
1173
1174 body.ka-v3-dark .ka-toggle input:checked + .ka-toggle-slider {
1175 background: #30d158;
1176 }
1177
1178 body.ka-v3-dark .ka-radio-item {
1179 color: #f5f5f7;
1180 }
1181
1182 body.ka-v3-dark .ka-submit {
1183 background: rgba(255, 255, 255, 0.04);
1184 border-top-color: rgba(255, 255, 255, 0.08);
1185 }
1186
1187 body.ka-v3-dark .ka-stat-card {
1188 background: #1c1c1e;
1189 }
1190
1191 body.ka-v3-dark .ka-stat-value {
1192 color: #f5f5f7;
1193 }
1194
1195 body.ka-v3-dark .ka-filter-bar {
1196 background: #1c1c1e;
1197 }
1198
1199 body.ka-v3-dark .ka-filter-bar label {
1200 color: #86868b;
1201 }
1202
1203 body.ka-v3-dark .ka-filter-bar input[type="date"] {
1204 background: #2c2c2e;
1205 border-color: rgba(255, 255, 255, 0.1);
1206 color: #f5f5f7;
1207 }
1208
1209 body.ka-v3-dark .ka-filter-bar .button {
1210 background: rgba(255, 255, 255, 0.1);
1211 color: #f5f5f7;
1212 }
1213
1214 body.ka-v3-dark .ka-table th {
1215 background: rgba(255, 255, 255, 0.04);
1216 color: #86868b;
1217 border-bottom-color: rgba(255, 255, 255, 0.08);
1218 }
1219
1220 body.ka-v3-dark .ka-table td {
1221 color: #f5f5f7;
1222 border-bottom-color: rgba(255, 255, 255, 0.06);
1223 }
1224
1225 body.ka-v3-dark .ka-table tbody tr:hover {
1226 background: rgba(255, 255, 255, 0.04);
1227 }
1228
1229 body.ka-v3-dark .ka-product-cell a {
1230 color: #f5f5f7;
1231 }
1232
1233 body.ka-v3-dark .ka-product-cell a:hover {
1234 color: #0a84ff;
1235 }
1236
1237 body.ka-v3-dark .ka-sortable-item {
1238 background: #2c2c2e;
1239 border-color: rgba(255, 255, 255, 0.1);
1240 color: #f5f5f7;
1241 }
1242
1243 body.ka-v3-dark .ka-sortable-item:hover {
1244 border-color: #0a84ff;
1245 }
1246
1247 body.ka-v3-dark .ka-pro-notice,
1248 body.ka-v3-dark .ka-upgrade-card {
1249 background: linear-gradient(135deg, rgba(139, 92, 246, 0.15) 0%, rgba(124, 58, 237, 0.15) 100%);
1250 border-color: rgba(139, 92, 246, 0.3);
1251 }
1252
1253 body.ka-v3-dark .ka-upgrade-card li {
1254 color: #f5f5f7;
1255 }
1256
1257 body.ka-v3-dark .ka-empty {
1258 color: #86868b;
1259 }
1260
1261 /* ===== RESPONSIVE ===== */
1262 @media (max-width: 900px) {
1263 .ka-admin-wrap {
1264 padding: 40px 24px;
1265 }
1266
1267 .ka-admin-title {
1268 font-size: 36px;
1269 }
1270
1271 .ka-grid-2 {
1272 grid-template-columns: 1fr;
1273 }
1274
1275 .ka-stats-grid {
1276 grid-template-columns: repeat(2, 1fr);
1277 }
1278 }
1279
1280 @media (max-width: 782px) {
1281 .ka-admin-header {
1282 flex-direction: column;
1283 text-align: center;
1284 }
1285
1286 .ka-admin-header-left {
1287 flex-direction: column;
1288 align-items: center;
1289 }
1290
1291 .ka-admin-header-actions {
1292 justify-content: center;
1293 }
1294
1295 .ka-row {
1296 flex-direction: column;
1297 gap: 10px;
1298 }
1299
1300 .ka-row-label {
1301 width: 100%;
1302 padding-top: 0;
1303 }
1304
1305 .ka-tabs {
1306 flex-wrap: wrap;
1307 width: 100%;
1308 justify-content: center;
1309 }
1310
1311 .ka-filter-bar {
1312 flex-direction: column;
1313 align-items: stretch;
1314 }
1315
1316 .ka-export-btn {
1317 margin-left: 0;
1318 width: 100%;
1319 justify-content: center;
1320 }
1321
1322 .ka-stats-grid {
1323 grid-template-columns: 1fr;
1324 }
1325
1326 .ka-table {
1327 display: block;
1328 overflow-x: auto;
1329 }
1330 }
1331
1332 /* ===== WP COLOR PICKER ===== */
1333 .wp-picker-container {
1334 display: inline-block;
1335 }
1336
1337 .wp-picker-container .wp-color-result {
1338 height: 38px;
1339 border-radius: 8px;
1340 }
1341
1342 body.ka-v3-dark .wp-picker-container .wp-color-result {
1343 border-color: rgba(255, 255, 255, 0.2);
1344 }
1345
1346 .wp-picker-container input.wp-color-picker {
1347 max-width: 100px !important;
1348 }
1349