PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.78
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.78
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.78, at includes/admin/layouts/shared/admin-v3-styles.css

1,442 lines 30.1 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="url"],
585 .ka-row-field input[type="date"],
586 .ka-row-field textarea,
587 .ka-row-field select {
588 width: 100%;
589 max-width: 400px;
590 padding: 12px 16px;
591 border: 1px solid rgba(0, 0, 0, 0.1);
592 border-radius: 12px;
593 font-size: 15px;
594 font-family: inherit;
595 background-color: #fff;
596 transition: border-color 0.2s, box-shadow 0.2s;
597 }
598
599 /* Select dropdown arrow (single selects only) */
600 .ka-row-field select:not([multiple]) {
601 padding-right: 48px;
602 cursor: pointer;
603 -webkit-appearance: none;
604 -moz-appearance: none;
605 appearance: none;
606 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231d1d1f' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
607 background-repeat: no-repeat;
608 background-position: right 16px center;
609 background-size: 18px 18px;
610 }
611
612 .ka-row-field input:focus,
613 .ka-row-field textarea:focus,
614 .ka-row-field select:focus {
615 outline: none;
616 border-color: #0071e3;
617 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.1);
618 }
619
620 .ka-row-desc {
621 font-size: 13px;
622 color: #86868b;
623 margin-top: 8px;
624 line-height: 1.5;
625 }
626
627 .ka-row-desc a {
628 color: #0071e3;
629 text-decoration: none;
630 }
631
632 .ka-row-desc a:hover {
633 text-decoration: underline;
634 }
635
636 /* ===== TOGGLE SWITCH (iOS Style) ===== */
637 .ka-toggle {
638 position: relative;
639 display: inline-flex;
640 align-items: center;
641 gap: 12px;
642 cursor: pointer;
643 }
644
645 .ka-toggle input {
646 position: absolute;
647 opacity: 0;
648 width: 0;
649 height: 0;
650 }
651
652 .ka-toggle-slider {
653 width: 51px;
654 height: 31px;
655 background: #e9e9eb;
656 border-radius: 16px;
657 position: relative;
658 transition: background 0.3s ease;
659 }
660
661 .ka-toggle-slider::after {
662 content: '';
663 position: absolute;
664 top: 2px;
665 left: 2px;
666 width: 27px;
667 height: 27px;
668 background: #fff;
669 border-radius: 50%;
670 transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
671 box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.1);
672 }
673
674 .ka-toggle input:checked + .ka-toggle-slider {
675 background: #34c759;
676 }
677
678 .ka-toggle input:checked + .ka-toggle-slider::after {
679 transform: translateX(20px);
680 }
681
682 .ka-toggle-label {
683 font-size: 15px;
684 color: #86868b;
685 }
686
687 /* ===== RADIO GROUP ===== */
688 .ka-radio-group {
689 display: flex;
690 flex-direction: column;
691 gap: 10px;
692 }
693
694 .ka-radio-item {
695 display: flex;
696 align-items: center;
697 gap: 10px;
698 font-size: 15px;
699 color: #1d1d1f;
700 cursor: pointer;
701 }
702
703 .ka-radio-item input[type="radio"] {
704 width: 20px;
705 height: 20px;
706 accent-color: #0071e3;
707 }
708
709 /* WP Admin renders radio dots via ::before in some contexts; align it with our accent color */
710 body.ka-admin-v3 .ka-admin-wrap input[type="radio"]:checked::before,
711 body.ka-admin-v3 .ka-admin-wrap .ka-radio-item input[type="radio"]:checked::before {
712 content: "";
713 border-radius: 50%;
714 width: 10px;
715 height: 10px;
716 margin: 4px;
717 background-color: #0071e3;
718 line-height: 1.14285714;
719 }
720
721 body.ka-admin-v3.ka-v3-dark .ka-admin-wrap input[type="radio"]:checked::before,
722 body.ka-admin-v3.ka-v3-dark .ka-admin-wrap .ka-radio-item input[type="radio"]:checked::before {
723 background-color: #0a84ff;
724 }
725
726 /* ===== COLOR PICKER ===== */
727 .ka-color-wrap {
728 display: flex;
729 align-items: center;
730 gap: 12px;
731 }
732
733 .ka-color-wrap input[type="text"] {
734 max-width: 140px !important;
735 }
736
737 /* ===== PRO BADGE ===== */
738 .ka-pro-badge {
739 display: inline-block;
740 background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
741 color: #fff;
742 font-size: 10px;
743 font-weight: 700;
744 padding: 4px 8px;
745 border-radius: 6px;
746 text-transform: uppercase;
747 letter-spacing: 0.5px;
748 margin-left: 10px;
749 }
750
751 /* ===== SUBMIT FOOTER ===== */
752 .ka-submit {
753 padding: 24px 28px;
754 background: rgba(0, 0, 0, 0.02);
755 border-top: 1px solid rgba(0, 0, 0, 0.06);
756 display: flex;
757 justify-content: flex-end;
758 gap: 12px;
759 }
760
761 /* ===== STATS GRID ===== */
762 .ka-stats-grid {
763 display: grid;
764 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
765 gap: 20px;
766 margin-bottom: 32px;
767 }
768
769 .ka-stat-card {
770 background: #fff;
771 border-radius: 20px;
772 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
773 padding: 24px;
774 position: relative;
775 overflow: hidden;
776 transition: transform 0.3s ease, box-shadow 0.3s ease;
777 }
778
779 .ka-stat-card:hover {
780 transform: translateY(-4px);
781 box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
782 }
783
784 .ka-stat-card::before {
785 content: '';
786 position: absolute;
787 top: 0;
788 left: 0;
789 right: 0;
790 height: 4px;
791 background: linear-gradient(90deg, #0071e3, #0077ed);
792 }
793
794 .ka-stat-card:nth-child(2)::before {
795 background: linear-gradient(90deg, #8b5cf6, #7c3aed);
796 }
797
798 .ka-stat-card:nth-child(3)::before {
799 background: linear-gradient(90deg, #34c759, #30d158);
800 }
801
802 .ka-stat-card:nth-child(4)::before {
803 background: linear-gradient(90deg, #ff9f0a, #ff9500);
804 }
805
806 .ka-stat-card:nth-child(5)::before {
807 background: linear-gradient(90deg, #ec4899, #db2777);
808 }
809
810 .ka-stat-label {
811 font-size: 13px;
812 font-weight: 500;
813 color: #86868b;
814 margin-bottom: 8px;
815 text-transform: uppercase;
816 letter-spacing: 0.05em;
817 }
818
819 .ka-stat-value {
820 font-size: 36px;
821 font-weight: 700;
822 color: #1d1d1f;
823 letter-spacing: -0.02em;
824 margin-bottom: 4px;
825 line-height: 1;
826 }
827
828 .ka-stat-value.good {
829 color: #34c759;
830 }
831
832 /* ===== FILTER BAR ===== */
833 .ka-filter-bar {
834 background: #fff;
835 border-radius: 20px;
836 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
837 padding: 20px 24px;
838 margin-bottom: 24px;
839 display: flex;
840 align-items: center;
841 gap: 20px;
842 flex-wrap: wrap;
843 }
844
845 .ka-filter-bar label {
846 display: flex;
847 align-items: center;
848 gap: 10px;
849 font-size: 14px;
850 font-weight: 500;
851 color: #86868b;
852 }
853
854 .ka-filter-bar input[type="date"] {
855 padding: 10px 14px;
856 border: 1px solid rgba(0, 0, 0, 0.1);
857 border-radius: 10px;
858 font-size: 14px;
859 }
860
861 .ka-filter-bar input[type="date"]:focus {
862 outline: none;
863 border-color: #0071e3;
864 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.1);
865 }
866
867 .ka-filter-bar .button {
868 padding: 10px 20px;
869 border-radius: 10px;
870 background: rgba(0, 0, 0, 0.06);
871 border: none;
872 color: #1d1d1f;
873 font-weight: 500;
874 cursor: pointer;
875 transition: all 0.2s ease;
876 }
877
878 .ka-filter-bar .button:hover {
879 background: rgba(0, 0, 0, 0.1);
880 }
881
882 .ka-export-btn {
883 margin-left: auto;
884 }
885
886 /* ===== TABLE ===== */
887 .ka-table {
888 width: 100%;
889 border-collapse: collapse;
890 }
891
892 .ka-table th {
893 background: rgba(0, 0, 0, 0.02);
894 padding: 16px 20px;
895 text-align: left;
896 font-size: 12px;
897 font-weight: 600;
898 color: #86868b;
899 text-transform: uppercase;
900 letter-spacing: 0.05em;
901 border-bottom: 1px solid rgba(0, 0, 0, 0.06);
902 }
903
904 .ka-table td {
905 padding: 16px 20px;
906 border-bottom: 1px solid rgba(0, 0, 0, 0.04);
907 font-size: 15px;
908 color: #1d1d1f;
909 }
910
911 .ka-table tbody tr {
912 transition: background 0.2s ease;
913 }
914
915 .ka-table tbody tr:hover {
916 background: rgba(0, 0, 0, 0.02);
917 }
918
919 .ka-table .text-center {
920 text-align: center;
921 }
922
923 .ka-table .font-bold {
924 font-weight: 600;
925 }
926
927 /* Product cell */
928 .ka-product-cell {
929 display: flex;
930 align-items: center;
931 gap: 14px;
932 }
933
934 .ka-product-cell img {
935 width: 44px;
936 height: 44px;
937 border-radius: 10px;
938 object-fit: cover;
939 border: 1px solid rgba(0, 0, 0, 0.06);
940 }
941
942 .ka-product-cell a {
943 color: #1d1d1f;
944 font-weight: 500;
945 text-decoration: none;
946 }
947
948 .ka-product-cell a:hover {
949 color: #0071e3;
950 }
951
952 /* ===== BADGE ===== */
953 .ka-badge {
954 display: inline-block;
955 padding: 6px 12px;
956 border-radius: 980px;
957 font-size: 13px;
958 font-weight: 500;
959 }
960
961 .ka-badge-success {
962 background: rgba(52, 199, 89, 0.15);
963 color: #34c759;
964 }
965
966 .ka-badge-warning {
967 background: rgba(255, 159, 10, 0.15);
968 color: #ff9f0a;
969 }
970
971 .ka-badge-neutral {
972 background: rgba(0, 0, 0, 0.06);
973 color: #86868b;
974 }
975
976 /* ===== STOCK STATUS ===== */
977 .ka-stock {
978 display: inline-flex;
979 align-items: center;
980 gap: 6px;
981 font-size: 14px;
982 font-weight: 500;
983 }
984
985 .ka-stock-in {
986 color: #34c759;
987 }
988
989 .ka-stock-out {
990 color: #ff3b30;
991 }
992
993 .ka-stock .dashicons {
994 font-size: 16px;
995 width: 16px;
996 height: 16px;
997 }
998
999 /* ===== SORTABLE LIST ===== */
1000 .ka-sortable-list {
1001 list-style: none;
1002 margin: 0;
1003 padding: 0;
1004 max-width: 360px;
1005 }
1006
1007 .ka-sortable-item {
1008 display: flex;
1009 align-items: center;
1010 padding: 14px 16px;
1011 margin-bottom: 8px;
1012 background: #fff;
1013 border: 1px solid rgba(0, 0, 0, 0.08);
1014 border-radius: 12px;
1015 cursor: move;
1016 transition: all 0.2s ease;
1017 }
1018
1019 .ka-sortable-item:hover {
1020 border-color: #0071e3;
1021 box-shadow: 0 2px 8px rgba(0, 113, 227, 0.1);
1022 }
1023
1024 .ka-sortable-item.ui-sortable-helper {
1025 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
1026 border-color: #0071e3;
1027 }
1028
1029 .ka-sortable-item.ui-sortable-placeholder {
1030 visibility: visible !important;
1031 background: rgba(0, 113, 227, 0.08);
1032 border: 2px dashed #0071e3;
1033 }
1034
1035 .ka-sortable-item label {
1036 display: flex;
1037 align-items: center;
1038 gap: 10px;
1039 cursor: pointer;
1040 margin: 0;
1041 font-size: 15px;
1042 }
1043
1044 .ka-sortable-handle {
1045 color: #86868b;
1046 margin-right: 10px;
1047 }
1048
1049 /* ===== PRO NOTICE / UPGRADE CARD ===== */
1050 .ka-pro-notice,
1051 .ka-upgrade-card {
1052 background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(124, 58, 237, 0.08) 100%);
1053 border: 1px solid rgba(139, 92, 246, 0.2);
1054 border-radius: 20px;
1055 padding: 40px;
1056 text-align: center;
1057 margin-bottom: 24px;
1058 }
1059
1060 .ka-pro-notice h2,
1061 .ka-upgrade-card h3 {
1062 margin: 0 0 12px;
1063 font-size: 24px;
1064 font-weight: 700;
1065 color: #7c3aed;
1066 }
1067
1068 .ka-pro-notice p,
1069 .ka-upgrade-card p {
1070 margin: 0 0 24px;
1071 font-size: 16px;
1072 color: #86868b;
1073 max-width: 500px;
1074 margin-left: auto;
1075 margin-right: auto;
1076 }
1077
1078 .ka-upgrade-card ul {
1079 text-align: left;
1080 max-width: 400px;
1081 margin: 0 auto 24px;
1082 padding-left: 0;
1083 list-style: none;
1084 }
1085
1086 .ka-upgrade-card li {
1087 margin-bottom: 10px;
1088 padding-left: 28px;
1089 position: relative;
1090 font-size: 15px;
1091 color: #1d1d1f;
1092 }
1093
1094 .ka-upgrade-card li::before {
1095 content: '';
1096 position: absolute;
1097 left: 0;
1098 color: #7c3aed;
1099 font-weight: 600;
1100 }
1101
1102 /* ===== EMPTY STATE ===== */
1103 .ka-empty {
1104 text-align: center;
1105 padding: 60px 20px;
1106 color: #86868b;
1107 }
1108
1109 .ka-empty .dashicons {
1110 font-size: 56px;
1111 width: 56px;
1112 height: 56px;
1113 opacity: 0.3;
1114 margin-bottom: 20px;
1115 }
1116
1117 .ka-empty p {
1118 font-size: 17px;
1119 }
1120
1121 /* ===== TWO COLUMN GRID ===== */
1122 .ka-grid-2 {
1123 display: grid;
1124 grid-template-columns: 1fr 1fr;
1125 gap: 0 40px;
1126 }
1127
1128 /* ===== DARK THEME ===== */
1129 body.ka-v3-dark .ka-admin-wrap {
1130 color: #f5f5f7;
1131 }
1132
1133 body.ka-v3-dark .ka-admin-title {
1134 background: linear-gradient(135deg, #f5f5f7 0%, #a1a1a6 100%);
1135 -webkit-background-clip: text;
1136 background-clip: text;
1137 }
1138
1139 body.ka-v3-dark .ka-admin-subtitle {
1140 color: #86868b;
1141 }
1142
1143 body.ka-v3-dark .ka-btn-secondary {
1144 background: rgba(255, 255, 255, 0.1);
1145 color: #f5f5f7;
1146 }
1147
1148 body.ka-v3-dark .ka-btn-secondary:hover {
1149 background: rgba(255, 255, 255, 0.15);
1150 color: #fff;
1151 }
1152
1153 body.ka-v3-dark .ka-theme-toggle {
1154 background: rgba(255, 255, 255, 0.1);
1155 }
1156
1157 body.ka-v3-dark .ka-theme-toggle:hover {
1158 background: rgba(255, 255, 255, 0.15);
1159 }
1160
1161 body.ka-v3-dark .ka-tabs {
1162 background: rgba(255, 255, 255, 0.08);
1163 border-color: rgba(255, 255, 255, 0.06);
1164 }
1165
1166 body.ka-v3-dark .ka-tab {
1167 color: #86868b;
1168 }
1169
1170 body.ka-v3-dark .ka-tab:hover {
1171 color: #f5f5f7;
1172 }
1173
1174 body.ka-v3-dark .ka-tab.active {
1175 background: rgba(255, 255, 255, 0.12);
1176 color: #f5f5f7;
1177 }
1178
1179 body.ka-v3-dark .ka-card {
1180 background: #1c1c1e;
1181 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
1182 }
1183
1184 body.ka-v3-dark .ka-card-header {
1185 border-bottom-color: rgba(255, 255, 255, 0.08);
1186 }
1187
1188 body.ka-v3-dark .ka-card-header h2,
1189 body.ka-v3-dark .ka-card-header h3 {
1190 color: #f5f5f7;
1191 }
1192
1193 body.ka-v3-dark .ka-card-body {
1194 background: #1c1c1e;
1195 }
1196
1197 body.ka-v3-dark .ka-row {
1198 border-bottom-color: rgba(255, 255, 255, 0.06);
1199 }
1200
1201 body.ka-v3-dark .ka-row-label {
1202 color: #f5f5f7;
1203 }
1204
1205 body.ka-v3-dark .ka-row-field input,
1206 body.ka-v3-dark .ka-row-field textarea,
1207 body.ka-v3-dark .ka-row-field select {
1208 background-color: #2c2c2e;
1209 border-color: rgba(255, 255, 255, 0.1);
1210 color: #f5f5f7;
1211 }
1212
1213 /* Tables (e.g., Categories) also contain inputs/selects outside .ka-row-field */
1214 body.ka-v3-dark .ka-table input[type="text"],
1215 body.ka-v3-dark .ka-table input[type="number"],
1216 body.ka-v3-dark .ka-table input[type="password"],
1217 body.ka-v3-dark .ka-table input[type="email"],
1218 body.ka-v3-dark .ka-table input[type="date"],
1219 body.ka-v3-dark .ka-table textarea,
1220 body.ka-v3-dark .ka-table select {
1221 background-color: #2c2c2e;
1222 border-color: rgba(255, 255, 255, 0.1);
1223 color: #f5f5f7;
1224 }
1225
1226 body.ka-v3-dark .ka-row-field select:not([multiple]) {
1227 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f7' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
1228 }
1229
1230 body.ka-v3-dark .ka-row-field input:focus,
1231 body.ka-v3-dark .ka-row-field textarea:focus,
1232 body.ka-v3-dark .ka-row-field select:focus {
1233 border-color: #0a84ff;
1234 box-shadow: 0 0 0 4px rgba(10, 132, 255, 0.2);
1235 }
1236
1237 body.ka-v3-dark .ka-toggle-slider {
1238 background: #3a3a3c;
1239 }
1240
1241 body.ka-v3-dark .ka-toggle input:checked + .ka-toggle-slider {
1242 background: #30d158;
1243 }
1244
1245 body.ka-v3-dark .ka-radio-item {
1246 color: #f5f5f7;
1247 }
1248
1249 body.ka-v3-dark .ka-submit {
1250 background: rgba(255, 255, 255, 0.04);
1251 border-top-color: rgba(255, 255, 255, 0.08);
1252 }
1253
1254 body.ka-v3-dark .ka-stat-card {
1255 background: #1c1c1e;
1256 }
1257
1258 body.ka-v3-dark .ka-stat-value {
1259 color: #f5f5f7;
1260 }
1261
1262 body.ka-v3-dark .ka-filter-bar {
1263 background: #1c1c1e;
1264 }
1265
1266 body.ka-v3-dark .ka-filter-bar label {
1267 color: #86868b;
1268 }
1269
1270 body.ka-v3-dark .ka-filter-bar input[type="date"] {
1271 background: #2c2c2e;
1272 border-color: rgba(255, 255, 255, 0.1);
1273 color: #f5f5f7;
1274 }
1275
1276 body.ka-v3-dark .ka-filter-bar .button {
1277 background: rgba(255, 255, 255, 0.1);
1278 color: #f5f5f7;
1279 }
1280
1281 body.ka-v3-dark .ka-table th {
1282 background: rgba(255, 255, 255, 0.04);
1283 color: #86868b;
1284 border-bottom-color: rgba(255, 255, 255, 0.08);
1285 }
1286
1287 body.ka-v3-dark .ka-table td {
1288 color: #f5f5f7;
1289 border-bottom-color: rgba(255, 255, 255, 0.06);
1290 }
1291
1292 body.ka-v3-dark .ka-table tbody tr:hover {
1293 background: rgba(255, 255, 255, 0.04);
1294 }
1295
1296 body.ka-v3-dark .ka-product-cell a {
1297 color: #f5f5f7;
1298 }
1299
1300 body.ka-v3-dark .ka-product-cell a:hover {
1301 color: #0a84ff;
1302 }
1303
1304 body.ka-v3-dark .ka-sortable-item {
1305 background: #2c2c2e;
1306 border-color: rgba(255, 255, 255, 0.1);
1307 color: #f5f5f7;
1308 }
1309
1310 body.ka-v3-dark .ka-sortable-item:hover {
1311 border-color: #0a84ff;
1312 }
1313
1314 body.ka-v3-dark .ka-pro-notice,
1315 body.ka-v3-dark .ka-upgrade-card {
1316 background: linear-gradient(135deg, rgba(139, 92, 246, 0.15) 0%, rgba(124, 58, 237, 0.15) 100%);
1317 border-color: rgba(139, 92, 246, 0.3);
1318 }
1319
1320 body.ka-v3-dark .ka-upgrade-card li {
1321 color: #f5f5f7;
1322 }
1323
1324 body.ka-v3-dark .ka-empty {
1325 color: #86868b;
1326 }
1327
1328 /* ===== RESPONSIVE ===== */
1329 @media (max-width: 900px) {
1330 .ka-admin-wrap {
1331 padding: 40px 24px;
1332 }
1333
1334 .ka-admin-title {
1335 font-size: 36px;
1336 }
1337
1338 .ka-grid-2 {
1339 grid-template-columns: 1fr;
1340 }
1341
1342 .ka-stats-grid {
1343 grid-template-columns: repeat(2, 1fr);
1344 }
1345 }
1346
1347 @media (max-width: 782px) {
1348 .ka-admin-header {
1349 flex-direction: column;
1350 text-align: center;
1351 }
1352
1353 .ka-admin-header-left {
1354 flex-direction: column;
1355 align-items: center;
1356 }
1357
1358 .ka-admin-header-actions {
1359 justify-content: center;
1360 }
1361
1362 .ka-row {
1363 flex-direction: column;
1364 gap: 10px;
1365 }
1366
1367 .ka-row-label {
1368 width: 100%;
1369 padding-top: 0;
1370 }
1371
1372 .ka-tabs {
1373 flex-wrap: wrap;
1374 width: 100%;
1375 justify-content: center;
1376 }
1377
1378 .ka-filter-bar {
1379 flex-direction: column;
1380 align-items: stretch;
1381 }
1382
1383 .ka-export-btn {
1384 margin-left: 0;
1385 width: 100%;
1386 justify-content: center;
1387 }
1388
1389 .ka-stats-grid {
1390 grid-template-columns: 1fr;
1391 }
1392
1393 .ka-table {
1394 display: block;
1395 overflow-x: auto;
1396 }
1397 }
1398
1399 /* ===== WP COLOR PICKER ===== */
1400 .wp-picker-container {
1401 display: inline-block;
1402 }
1403
1404 /* Iris (WP Color Picker) relies on content-box sizing for correct geometry; our global
1405 `.ka-admin-wrap * { box-sizing: border-box; }` can break slider placement. */
1406 body.ka-admin-v3 .wp-picker-container .iris-picker,
1407 body.ka-admin-v3 .wp-picker-container .iris-picker * {
1408 box-sizing: content-box;
1409 }
1410
1411 body.ka-admin-v3 .wp-picker-container .iris-picker {
1412 direction: ltr;
1413 }
1414
1415 /* Iris container border (dark theme) */
1416 body.ka-v3-dark .wp-picker-container .iris-border {
1417 border-radius: 3px;
1418 border: 1px solid rgba(255, 255, 255, 0.1);
1419 width: 200px;
1420 background-color: #2c2c2e;
1421 }
1422
1423 .wp-picker-container .wp-color-result {
1424 height: 38px;
1425 border-radius: 8px;
1426 }
1427
1428 body.ka-v3-dark .wp-picker-container .wp-color-result {
1429 border-color: rgba(255, 255, 255, 0.2);
1430 }
1431
1432 /* WP Color Picker text label (dark theme) */
1433 body.ka-v3-dark .wp-picker-container .wp-color-result-text {
1434 background: #2c2c2e;
1435 border-left: 1px solid rgba(255, 255, 255, 0.18);
1436 color: rgba(245, 245, 247, 0.85);
1437 }
1438
1439 .wp-picker-container input.wp-color-picker {
1440 max-width: 100px !important;
1441 }
1442