PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.49
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.49
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 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / admin / layouts / shared / admin-v3-styles.css

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

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