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 / extensions / Pricing_Table_Builder / assets / admin.css

admin.css in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.78, at includes/extensions/Pricing_Table_Builder/assets/admin.css

1,296 lines 26.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Pricing Table Builder - Admin Styles
3 * Premium style inspired design system
4 */
5
6 /* ============================================
7 CSS Variables
8 ============================================ */
9
10 :root {
11 --kng-v3-primary: #0071e3;
12 --kng-v3-primary-hover: #0077ed;
13 --kng-v3-danger: #ff3b30;
14 --kng-v3-success: #34c759;
15 --kng-v3-warning: #ff9500;
16
17 --kng-v3-bg: #f5f5f7;
18 --kng-v3-card-bg: #ffffff;
19 --kng-v3-text: #1d1d1f;
20 --kng-v3-muted: #86868b;
21 --kng-v3-border: rgba(0, 0, 0, 0.08);
22 --kng-v3-border-hover: rgba(0, 0, 0, 0.16);
23
24 --kng-v3-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
25 --kng-v3-font-mono: 'SF Mono', Monaco, Consolas, monospace;
26 }
27
28 /* Dark Mode */
29 .kng-v3-dark {
30 --kng-v3-bg: #000000;
31 --kng-v3-card-bg: #1c1c1e;
32 --kng-v3-text: #f5f5f7;
33 --kng-v3-muted: #98989d;
34 --kng-v3-border: rgba(255, 255, 255, 0.12);
35 --kng-v3-border-hover: rgba(255, 255, 255, 0.24);
36 }
37
38 @media (prefers-color-scheme: dark) {
39 :root:not(.kng-v3-light) {
40 --kng-v3-bg: #000000;
41 --kng-v3-card-bg: #1c1c1e;
42 --kng-v3-text: #f5f5f7;
43 --kng-v3-muted: #98989d;
44 --kng-v3-border: rgba(255, 255, 255, 0.12);
45 --kng-v3-border-hover: rgba(255, 255, 255, 0.24);
46 }
47 }
48
49 /* ============================================
50 Base Reset
51 ============================================ */
52
53 body.king-addons_page_king-addons-pricing-tables #wpcontent,
54 body.king-addons_page_king-addons-pricing-tables #wpbody,
55 body.king-addons_page_king-addons-pricing-tables #wpbody-content {
56 background: var(--kng-v3-bg) !important;
57 padding: 0 !important;
58 }
59
60 /* ============================================
61 Base Wrapper
62 ============================================ */
63
64 .kng-v3-wrap {
65 font-family: var(--kng-v3-font);
66 max-width: 1400px;
67 margin: 0 auto;
68 padding: 60px 40px;
69 color: var(--kng-v3-text);
70 }
71
72 .kng-v3-wrap * {
73 box-sizing: border-box;
74 }
75
76 /* ============================================
77 Typography
78 ============================================ */
79
80 .kng-v3-title {
81 font-size: 48px;
82 font-weight: 700;
83 letter-spacing: -0.015em;
84 margin: 0;
85 line-height: 1.1;
86 color: var(--kng-v3-text);
87 }
88
89 .kng-v3-subtitle {
90 font-size: 19px;
91 font-weight: 400;
92 color: var(--kng-v3-muted);
93 margin: 4px 0 0;
94 line-height: 1.5;
95 }
96
97 /* ============================================
98 Header
99 ============================================ */
100
101 .kng-v3-header {
102 display: flex;
103 justify-content: space-between;
104 align-items: flex-start;
105 margin-bottom: 48px;
106 }
107
108 .kng-v3-header-content {
109 display: flex;
110 align-items: center;
111 gap: 12px;
112 }
113
114 .kng-v3-header-actions {
115 display: flex;
116 gap: 12px;
117 align-items: center;
118 }
119
120 /* ============================================
121 Content
122 ============================================ */
123
124 .kng-v3-content {
125 background: var(--kng-v3-card-bg);
126 border: 1px solid var(--kng-v3-border);
127 border-radius: 20px;
128 padding: 32px;
129 }
130
131 /* ============================================
132 Buttons
133 ============================================ */
134
135 .kng-v3-btn {
136 display: inline-flex;
137 align-items: center;
138 justify-content: center;
139 gap: 8px;
140 padding: 12px 24px;
141 border-radius: 980px;
142 font-family: var(--kng-v3-font);
143 font-size: 15px;
144 font-weight: 500;
145 text-decoration: none;
146 transition: all 0.2s ease;
147 cursor: pointer;
148 border: none;
149 white-space: nowrap;
150 }
151
152 .kng-v3-btn-primary {
153 background: var(--kng-v3-primary);
154 color: #fff;
155 }
156
157 .kng-v3-btn-primary:hover,
158 .kng-v3-btn-primary:focus {
159 background: var(--kng-v3-primary-hover);
160 color: #fff;
161 text-decoration: none;
162 }
163
164 .kng-v3-btn-secondary {
165 background: rgba(0, 0, 0, 0.06);
166 color: var(--kng-v3-text);
167 }
168
169 .kng-v3-btn-secondary:hover {
170 background: rgba(0, 0, 0, 0.12);
171 color: var(--kng-v3-text);
172 }
173
174 .kng-v3-btn-outline {
175 background: transparent;
176 border: 1px solid var(--kng-v3-border);
177 color: var(--kng-v3-text);
178 }
179
180 .kng-v3-btn-outline:hover {
181 background: var(--kng-v3-bg);
182 color: var(--kng-v3-text);
183 }
184
185 .kng-v3-btn-lg {
186 padding: 16px 32px;
187 font-size: 17px;
188 }
189
190 .kng-v3-btn-sm {
191 padding: 8px 16px;
192 font-size: 13px;
193 }
194
195 /* ============================================
196 Notice
197 ============================================ */
198
199 .kng-v3-notice {
200 padding: 16px 20px;
201 border-radius: 12px;
202 margin-bottom: 24px;
203 }
204
205 .kng-v3-notice p {
206 margin: 0;
207 font-size: 14px;
208 }
209
210 .kng-v3-notice-success {
211 background: rgba(52, 199, 89, 0.12);
212 color: var(--kng-v3-success);
213 }
214
215 .kng-v3-notice-error {
216 background: rgba(255, 59, 48, 0.12);
217 color: var(--kng-v3-danger);
218 }
219
220 /* ============================================
221 Form Fields
222 ============================================ */
223
224 .kng-v3-field {
225 margin-bottom: 20px;
226 }
227
228 .kng-v3-field:last-child {
229 margin-bottom: 0;
230 }
231
232 .kng-v3-label {
233 display: block;
234 font-size: 13px;
235 font-weight: 600;
236 color: var(--kng-v3-text);
237 margin-bottom: 8px;
238 }
239
240 .kng-v3-field-help {
241 font-size: 12px;
242 color: var(--kng-v3-muted);
243 margin: 6px 0 0;
244 line-height: 1.4;
245 }
246
247 .kng-v3-field-group {
248 display: grid;
249 grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
250 gap: 12px;
251 }
252
253 .kng-v3-input,
254 .kng-v3-select,
255 .kng-v3-textarea {
256 width: 100%;
257 padding: 10px 14px;
258 font-family: var(--kng-v3-font);
259 font-size: 14px;
260 color: var(--kng-v3-text);
261 background: var(--kng-v3-bg);
262 border: 1px solid var(--kng-v3-border);
263 border-radius: 10px;
264 transition: all 0.15s ease;
265 outline: none;
266 }
267
268 .kng-v3-input:focus,
269 .kng-v3-select:focus,
270 .kng-v3-textarea:focus {
271 border-color: var(--kng-v3-primary);
272 box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.12);
273 }
274
275 .kng-v3-input::placeholder {
276 color: var(--kng-v3-muted);
277 }
278
279 .kng-v3-textarea {
280 min-height: 100px;
281 resize: vertical;
282 }
283
284 .kng-v3-select {
285 appearance: none;
286 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2386868b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
287 background-repeat: no-repeat;
288 background-position: right 12px center;
289 padding-right: 40px;
290 }
291
292 /* Checkbox & Toggle */
293 .kng-v3-toggle-wrap {
294 display: flex;
295 align-items: center;
296 justify-content: space-between;
297 padding: 12px 16px;
298 background: var(--kng-v3-bg);
299 border-radius: 12px;
300 gap: 12px;
301 }
302
303 .kng-v3-toggle-wrap-sm {
304 padding: 8px 12px;
305 }
306
307 .kng-v3-toggle-wrap-compact {
308 padding: 8px 12px;
309 background: transparent;
310 }
311
312 .kng-v3-toggle-label {
313 font-size: 14px;
314 font-weight: 500;
315 color: var(--kng-v3-text);
316 flex: 1;
317 }
318
319 .kng-v3-toggle {
320 position: relative;
321 width: 48px;
322 height: 28px;
323 flex-shrink: 0;
324 display: inline-block;
325 }
326
327 .kng-v3-toggle-sm {
328 width: 40px;
329 height: 24px;
330 }
331
332 .kng-v3-toggle input {
333 opacity: 0;
334 width: 0;
335 height: 0;
336 position: absolute;
337 }
338
339 .kng-v3-toggle-slider {
340 position: absolute;
341 cursor: pointer;
342 top: 0;
343 left: 0;
344 right: 0;
345 bottom: 0;
346 background-color: rgba(0, 0, 0, 0.15);
347 transition: 0.3s;
348 border-radius: 28px;
349 }
350
351 .kng-v3-toggle-slider:before {
352 position: absolute;
353 content: "";
354 height: 22px;
355 width: 22px;
356 left: 3px;
357 bottom: 3px;
358 background-color: white;
359 transition: 0.3s;
360 border-radius: 50%;
361 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
362 }
363
364 .kng-v3-toggle-sm .kng-v3-toggle-slider:before {
365 height: 18px;
366 width: 18px;
367 }
368
369 .kng-v3-toggle input:checked + .kng-v3-toggle-slider {
370 background-color: var(--kng-v3-success);
371 }
372
373 .kng-v3-toggle input:checked + .kng-v3-toggle-slider:before {
374 transform: translateX(20px);
375 }
376
377 .kng-v3-toggle-sm input:checked + .kng-v3-toggle-slider:before {
378 transform: translateX(16px);
379 }
380
381 /* ============================================
382 Admin List Page
383 ============================================ */
384
385 .kng-pt-empty {
386 display: flex;
387 flex-direction: column;
388 align-items: center;
389 justify-content: center;
390 padding: 80px 20px;
391 text-align: center;
392 }
393
394 .kng-pt-empty-icon {
395 color: var(--kng-v3-muted);
396 margin-bottom: 24px;
397 }
398
399 .kng-pt-empty-title {
400 font-size: 24px;
401 font-weight: 600;
402 color: var(--kng-v3-text);
403 margin: 0 0 8px;
404 }
405
406 .kng-pt-empty-text {
407 font-size: 15px;
408 color: var(--kng-v3-muted);
409 margin: 0 0 24px;
410 }
411
412 .kng-pt-grid-admin {
413 display: grid;
414 grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
415 gap: 20px;
416 }
417
418 .kng-pt-table-card {
419 background: var(--kng-v3-card-bg);
420 border: 1px solid var(--kng-v3-border);
421 border-radius: 16px;
422 padding: 24px;
423 transition: box-shadow 0.2s ease, border-color 0.2s ease;
424 }
425
426 .kng-pt-table-card:hover {
427 border-color: var(--kng-v3-border-hover);
428 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
429 }
430
431 .kng-pt-table-card-header {
432 display: flex;
433 align-items: center;
434 justify-content: space-between;
435 margin-bottom: 12px;
436 }
437
438 .kng-pt-table-card-title {
439 font-size: 17px;
440 font-weight: 600;
441 color: var(--kng-v3-text);
442 margin: 0;
443 }
444
445 .kng-pt-status {
446 font-size: 11px;
447 font-weight: 600;
448 text-transform: uppercase;
449 letter-spacing: 0.5px;
450 padding: 4px 10px;
451 border-radius: 20px;
452 }
453
454 .kng-pt-status--published {
455 background: rgba(52, 199, 89, 0.12);
456 color: #34c759;
457 }
458
459 .kng-pt-status--draft {
460 background: rgba(142, 142, 147, 0.12);
461 color: #8e8e93;
462 }
463
464 .kng-pt-table-card-meta {
465 display: flex;
466 gap: 16px;
467 margin-bottom: 16px;
468 }
469
470 .kng-pt-meta-item {
471 display: flex;
472 align-items: center;
473 gap: 6px;
474 font-size: 13px;
475 color: var(--kng-v3-muted);
476 }
477
478 .kng-pt-meta-item svg {
479 opacity: 0.6;
480 }
481
482 .kng-pt-table-card-shortcode {
483 display: flex;
484 align-items: center;
485 gap: 8px;
486 background: var(--kng-v3-bg);
487 border-radius: 8px;
488 padding: 10px 12px;
489 margin-bottom: 16px;
490 }
491
492 .kng-pt-shortcode {
493 flex: 1;
494 font-family: 'SF Mono', Monaco, Consolas, monospace;
495 font-size: 12px;
496 color: var(--kng-v3-text);
497 user-select: all;
498 }
499
500 .kng-pt-copy-btn {
501 display: flex;
502 align-items: center;
503 justify-content: center;
504 width: 32px;
505 height: 32px;
506 border: none;
507 background: transparent;
508 color: var(--kng-v3-muted);
509 cursor: pointer;
510 border-radius: 6px;
511 transition: all 0.15s ease;
512 }
513
514 .kng-pt-copy-btn:hover {
515 background: var(--kng-v3-border);
516 color: var(--kng-v3-text);
517 }
518
519 .kng-pt-table-card-actions {
520 display: flex;
521 gap: 8px;
522 }
523
524 /* ============================================
525 Editor Layout
526 ============================================ */
527
528 .kng-pt-editor .kng-v3-header {
529 margin-bottom: 24px;
530 }
531
532 .kng-pt-back-link {
533 display: flex;
534 align-items: center;
535 justify-content: center;
536 width: 36px;
537 height: 36px;
538 border-radius: 8px;
539 color: var(--kng-v3-muted);
540 transition: all 0.15s ease;
541 margin-right: 12px;
542 }
543
544 .kng-pt-back-link:hover {
545 background: var(--kng-v3-border);
546 color: var(--kng-v3-text);
547 }
548
549 .kng-pt-editor-layout {
550 display: grid;
551 grid-template-columns: 400px 1fr;
552 gap: 24px;
553 min-height: calc(100vh - 200px);
554 }
555
556 @media (max-width: 1200px) {
557 .kng-pt-editor-layout {
558 grid-template-columns: 1fr;
559 }
560
561 .kng-pt-editor-preview {
562 display: none;
563 }
564 }
565
566 /* ============================================
567 Sidebar & Tabs
568 ============================================ */
569
570 .kng-pt-editor-sidebar {
571 background: var(--kng-v3-card-bg);
572 border: 1px solid var(--kng-v3-border);
573 border-radius: 16px;
574 overflow: hidden;
575 display: flex;
576 flex-direction: column;
577 }
578
579 .kng-pt-tabs {
580 display: flex;
581 flex-wrap: wrap;
582 gap: 2px;
583 padding: 12px 12px 0;
584 border-bottom: 1px solid var(--kng-v3-border);
585 background: var(--kng-v3-bg);
586 }
587
588 .kng-pt-tab {
589 display: flex;
590 align-items: center;
591 gap: 6px;
592 padding: 10px 14px;
593 font-size: 13px;
594 font-weight: 500;
595 color: var(--kng-v3-muted);
596 background: transparent;
597 border: none;
598 border-bottom: 2px solid transparent;
599 margin-bottom: -1px;
600 cursor: pointer;
601 transition: all 0.15s ease;
602 }
603
604 .kng-pt-tab:hover {
605 color: var(--kng-v3-text);
606 }
607
608 .kng-pt-tab.is-active {
609 color: var(--kng-v3-primary);
610 border-bottom-color: var(--kng-v3-primary);
611 }
612
613 .kng-pt-tab svg {
614 width: 16px;
615 height: 16px;
616 }
617
618 .kng-pt-tab-panels {
619 flex: 1;
620 overflow-y: auto;
621 }
622
623 .kng-pt-tab-panel {
624 display: none;
625 padding: 24px;
626 }
627
628 .kng-pt-tab-panel.is-active {
629 display: block;
630 }
631
632 /* ============================================
633 Plans Tab
634 ============================================ */
635
636 .kng-pt-plans-header {
637 display: flex;
638 align-items: center;
639 justify-content: space-between;
640 margin-bottom: 16px;
641 }
642
643 .kng-pt-plans-list {
644 display: flex;
645 flex-direction: column;
646 gap: 12px;
647 }
648
649 .kng-pt-plan-item {
650 background: var(--kng-v3-bg);
651 border: 1px solid var(--kng-v3-border);
652 border-radius: 12px;
653 overflow: hidden;
654 }
655
656 .kng-pt-plan-header {
657 display: flex;
658 align-items: center;
659 gap: 8px;
660 padding: 12px 14px;
661 background: var(--kng-v3-card-bg);
662 cursor: pointer;
663 }
664
665 .kng-pt-plan-drag {
666 color: var(--kng-v3-muted);
667 cursor: grab;
668 }
669
670 .kng-pt-plan-drag:active {
671 cursor: grabbing;
672 }
673
674 .kng-pt-plan-name-input {
675 flex: 1;
676 font-weight: 600;
677 border: none !important;
678 background: transparent !important;
679 padding: 4px 8px !important;
680 }
681
682 .kng-pt-plan-toggle,
683 .kng-pt-plan-delete {
684 display: flex;
685 align-items: center;
686 justify-content: center;
687 width: 28px;
688 height: 28px;
689 border: none;
690 background: transparent;
691 color: var(--kng-v3-muted);
692 cursor: pointer;
693 border-radius: 6px;
694 transition: all 0.15s ease;
695 }
696
697 .kng-pt-plan-toggle:hover,
698 .kng-pt-plan-delete:hover {
699 background: var(--kng-v3-border);
700 }
701
702 .kng-pt-plan-delete:hover {
703 color: var(--kng-v3-danger);
704 }
705
706 .kng-pt-plan-item.is-collapsed .kng-pt-plan-body {
707 display: none;
708 }
709
710 .kng-pt-plan-item.is-collapsed .kng-pt-plan-toggle svg {
711 transform: rotate(-90deg);
712 }
713
714 .kng-pt-plan-body {
715 padding: 16px;
716 border-top: 1px solid var(--kng-v3-border);
717 }
718
719 .kng-pt-plan-pricing {
720 display: flex;
721 flex-direction: column;
722 gap: 12px;
723 }
724
725 .kng-pt-plan-pricing-period {
726 padding: 12px;
727 background: var(--kng-v3-card-bg);
728 border-radius: 8px;
729 }
730
731 .kng-pt-pricing-period-label {
732 display: block;
733 font-size: 12px;
734 font-weight: 600;
735 color: var(--kng-v3-muted);
736 text-transform: uppercase;
737 letter-spacing: 0.5px;
738 margin-bottom: 8px;
739 }
740
741 .kng-pt-plan-badge-fields {
742 margin-top: 12px;
743 }
744
745 /* Features List */
746 .kng-pt-plan-features-header {
747 display: flex;
748 align-items: center;
749 justify-content: space-between;
750 margin-bottom: 12px;
751 }
752
753 .kng-pt-plan-features-list {
754 display: flex;
755 flex-direction: column;
756 gap: 8px;
757 }
758
759 .kng-pt-feature-item {
760 display: flex;
761 align-items: center;
762 gap: 8px;
763 }
764
765 .kng-pt-feature-drag {
766 color: var(--kng-v3-muted);
767 cursor: grab;
768 }
769
770 .kng-pt-feature-text {
771 flex: 1;
772 }
773
774 .kng-pt-feature-state {
775 width: 50px !important;
776 }
777
778 .kng-pt-feature-delete {
779 display: flex;
780 align-items: center;
781 justify-content: center;
782 width: 24px;
783 height: 24px;
784 border: none;
785 background: transparent;
786 color: var(--kng-v3-muted);
787 cursor: pointer;
788 border-radius: 4px;
789 transition: all 0.15s ease;
790 }
791
792 .kng-pt-feature-delete:hover {
793 background: rgba(255, 59, 48, 0.1);
794 color: var(--kng-v3-danger);
795 }
796
797 /* ============================================
798 Billing Tab
799 ============================================ */
800
801 .kng-pt-periods-list {
802 display: flex;
803 flex-direction: column;
804 gap: 12px;
805 }
806
807 .kng-pt-period-item {
808 background: var(--kng-v3-bg);
809 border: 1px solid var(--kng-v3-border);
810 border-radius: 8px;
811 padding: 12px;
812 }
813
814 .kng-pt-period-header {
815 display: flex;
816 align-items: center;
817 gap: 8px;
818 margin-bottom: 12px;
819 }
820
821 .kng-pt-period-drag {
822 color: var(--kng-v3-muted);
823 cursor: grab;
824 }
825
826 .kng-pt-period-name {
827 flex: 1;
828 font-weight: 500;
829 }
830
831 .kng-pt-period-default {
832 display: flex;
833 align-items: center;
834 gap: 4px;
835 font-size: 12px;
836 color: var(--kng-v3-muted);
837 }
838
839 .kng-pt-period-fields {
840 padding-top: 12px;
841 border-top: 1px solid var(--kng-v3-border);
842 }
843
844 /* ============================================
845 Styles Tab - Presets Grid
846 ============================================ */
847
848 .kng-pt-presets-grid {
849 display: grid;
850 grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
851 gap: 8px;
852 margin-bottom: 16px;
853 }
854
855 .kng-pt-preset-card {
856 display: flex;
857 flex-direction: column;
858 align-items: center;
859 justify-content: center;
860 gap: 4px;
861 padding: 12px 8px;
862 background: var(--kng-v3-bg);
863 border: 2px solid var(--kng-v3-border);
864 border-radius: 10px;
865 cursor: pointer;
866 transition: all 0.15s ease;
867 position: relative;
868 }
869
870 .kng-pt-preset-card:hover:not(.is-disabled) {
871 border-color: var(--kng-v3-border-hover);
872 }
873
874 .kng-pt-preset-card.is-active {
875 border-color: var(--kng-v3-primary);
876 background: rgba(0, 122, 255, 0.05);
877 }
878
879 .kng-pt-preset-card.is-disabled {
880 opacity: 0.5;
881 cursor: not-allowed;
882 }
883
884 .kng-pt-preset-name {
885 font-size: 11px;
886 font-weight: 500;
887 text-align: center;
888 color: var(--kng-v3-text);
889 }
890
891 .kng-pt-preset-badge {
892 position: absolute;
893 top: 4px;
894 right: 4px;
895 font-size: 8px;
896 font-weight: 700;
897 padding: 2px 4px;
898 border-radius: 3px;
899 text-transform: uppercase;
900 }
901
902 .kng-pt-badge-pro {
903 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
904 color: #fff;
905 }
906
907 /* Color Overrides */
908 .kng-pt-color-overrides {
909 display: grid;
910 grid-template-columns: repeat(3, 1fr);
911 gap: 12px;
912 }
913
914 /* ============================================
915 Preview Panel
916 ============================================ */
917
918 .kng-pt-editor-preview {
919 background: var(--kng-v3-card-bg);
920 border: 1px solid var(--kng-v3-border);
921 border-radius: 16px;
922 overflow: hidden;
923 display: flex;
924 flex-direction: column;
925 }
926
927 .kng-pt-preview-header {
928 display: flex;
929 align-items: center;
930 justify-content: space-between;
931 padding: 16px 20px;
932 border-bottom: 1px solid var(--kng-v3-border);
933 background: var(--kng-v3-bg);
934 }
935
936 .kng-pt-preview-label {
937 font-size: 13px;
938 font-weight: 600;
939 color: var(--kng-v3-muted);
940 text-transform: uppercase;
941 letter-spacing: 0.5px;
942 }
943
944 .kng-pt-preview-devices {
945 display: flex;
946 gap: 4px;
947 }
948
949 .kng-pt-device-btn {
950 display: flex;
951 align-items: center;
952 justify-content: center;
953 width: 36px;
954 height: 36px;
955 border: none;
956 background: transparent;
957 color: var(--kng-v3-muted);
958 cursor: pointer;
959 border-radius: 8px;
960 transition: all 0.15s ease;
961 }
962
963 .kng-pt-device-btn:hover {
964 background: var(--kng-v3-border);
965 }
966
967 .kng-pt-device-btn.is-active {
968 background: var(--kng-v3-primary);
969 color: #fff;
970 }
971
972 .kng-pt-preview-frame {
973 flex: 1;
974 padding: 40px;
975 background: #f5f5f7 !important;
976 overflow: auto;
977 display: flex;
978 justify-content: center;
979 align-items: flex-start;
980 }
981
982 /* Reset wrapper padding inside preview */
983 .kng-pt-preview-frame .kng-pt-wrapper {
984 padding: 20px;
985 width: 100%;
986 background: transparent !important;
987 }
988
989 .kng-pt-preview-content {
990 width: 100%;
991 max-width: 1200px;
992 transition: max-width 0.3s ease;
993 }
994
995 /* Ensure frontend styles apply in preview - override admin dark mode */
996 .kng-pt-preview-content .kng-pt-card {
997 background: var(--kng-pt-card-bg, #ffffff) !important;
998 border-radius: var(--kng-pt-radius, 20px) !important;
999 box-shadow: var(--kng-pt-shadow, 0 8px 40px rgba(0, 0, 0, 0.12)) !important;
1000 padding: 32px !important;
1001 color: var(--kng-pt-text, #1d1d1f) !important;
1002 }
1003
1004 .kng-pt-preview-content .kng-pt-card-name {
1005 color: var(--kng-pt-text, #1d1d1f) !important;
1006 font-size: var(--kng-pt-title-size, 24px) !important;
1007 margin: 0 0 8px !important;
1008 }
1009
1010 .kng-pt-preview-content .kng-pt-card-subtitle {
1011 color: var(--kng-pt-muted, #86868b) !important;
1012 }
1013
1014 .kng-pt-preview-content .kng-pt-price-value {
1015 color: var(--kng-pt-text, #1d1d1f) !important;
1016 font-size: var(--kng-pt-price-size, 56px) !important;
1017 }
1018
1019 .kng-pt-preview-content .kng-pt-btn {
1020 background: var(--kng-pt-accent, #0071e3) !important;
1021 color: var(--kng-pt-accent-text, #ffffff) !important;
1022 border-radius: 100px !important;
1023 padding: 14px 28px !important;
1024 display: inline-block !important;
1025 text-decoration: none !important;
1026 }
1027
1028 .kng-pt-preview-content .kng-pt-grid {
1029 display: grid !important;
1030 grid-template-columns: repeat(var(--kng-pt-columns-desktop, 3), 1fr) !important;
1031 gap: var(--kng-pt-gap, 24px) !important;
1032 }
1033
1034 .kng-pt-preview-content .kng-pt-features-list {
1035 list-style: none !important;
1036 padding: 0 !important;
1037 margin: 0 !important;
1038 }
1039
1040 .kng-pt-preview-content .kng-pt-feature {
1041 display: flex !important;
1042 align-items: center !important;
1043 gap: 12px !important;
1044 padding: 8px 0 !important;
1045 color: var(--kng-pt-text, #1d1d1f) !important;
1046 }
1047
1048 .kng-pt-preview-content .kng-pt-feature-icon {
1049 color: var(--kng-pt-accent, #0071e3) !important;
1050 }
1051
1052 .kng-pt-preview-content .kng-pt-feature-icon svg {
1053 width: 16px !important;
1054 height: 16px !important;
1055 }
1056
1057 /* Card layout */
1058 .kng-pt-preview-content .kng-pt-card {
1059 display: flex !important;
1060 flex-direction: column !important;
1061 gap: 0 !important;
1062 }
1063
1064 .kng-pt-preview-content .kng-pt-card-header {
1065 margin-bottom: 16px !important;
1066 }
1067
1068 .kng-pt-preview-content .kng-pt-card-pricing {
1069 margin-bottom: 24px !important;
1070 }
1071
1072 .kng-pt-preview-content .kng-pt-card-cta {
1073 margin-bottom: 24px !important;
1074 }
1075
1076 .kng-pt-preview-content .kng-pt-price {
1077 display: flex !important;
1078 align-items: baseline !important;
1079 gap: 4px !important;
1080 }
1081
1082 .kng-pt-preview-content .kng-pt-price-currency {
1083 font-size: 24px !important;
1084 font-weight: 500 !important;
1085 color: var(--kng-pt-text, #1d1d1f) !important;
1086 }
1087
1088 .kng-pt-preview-content .kng-pt-price-suffix {
1089 font-size: 16px !important;
1090 color: var(--kng-pt-muted, #86868b) !important;
1091 margin-left: 4px !important;
1092 }
1093
1094 .kng-pt-preview-content .kng-pt-price-note {
1095 font-size: 14px !important;
1096 color: var(--kng-pt-muted, #86868b) !important;
1097 margin-top: 4px !important;
1098 }
1099
1100 .kng-pt-preview-frame[data-device="tablet"] .kng-pt-preview-content {
1101 max-width: 768px;
1102 }
1103
1104 .kng-pt-preview-frame[data-device="mobile"] .kng-pt-preview-content {
1105 max-width: 375px;
1106 }
1107
1108 /* ============================================
1109 Shortcode Box
1110 ============================================ */
1111
1112 .kng-pt-shortcode-box {
1113 display: flex;
1114 align-items: center;
1115 gap: 8px;
1116 background: var(--kng-v3-bg);
1117 border: 1px solid var(--kng-v3-border);
1118 border-radius: 8px;
1119 padding: 12px 16px;
1120 }
1121
1122 .kng-pt-shortcode-code {
1123 flex: 1;
1124 font-family: 'SF Mono', Monaco, Consolas, monospace;
1125 font-size: 13px;
1126 color: var(--kng-v3-text);
1127 }
1128
1129 /* ============================================
1130 Form Field Extensions
1131 ============================================ */
1132
1133 .kng-v3-divider {
1134 height: 1px;
1135 background: var(--kng-v3-border);
1136 margin: 20px 0;
1137 }
1138
1139 .kng-v3-divider-sm {
1140 height: 1px;
1141 background: var(--kng-v3-border);
1142 margin: 12px 0;
1143 }
1144
1145 .kng-v3-section-title {
1146 font-size: 13px;
1147 font-weight: 600;
1148 color: var(--kng-v3-text);
1149 margin: 0 0 12px;
1150 }
1151
1152 .kng-v3-subsection-title {
1153 font-size: 12px;
1154 font-weight: 600;
1155 color: var(--kng-v3-muted);
1156 text-transform: uppercase;
1157 letter-spacing: 0.5px;
1158 margin: 0 0 8px;
1159 }
1160
1161 .kng-v3-radio-cards {
1162 display: flex;
1163 gap: 8px;
1164 }
1165
1166 .kng-v3-radio-cards-sm .kng-v3-radio-card {
1167 flex: 1;
1168 }
1169
1170 .kng-v3-radio-card {
1171 position: relative;
1172 }
1173
1174 .kng-v3-radio-card input {
1175 position: absolute;
1176 opacity: 0;
1177 pointer-events: none;
1178 }
1179
1180 .kng-v3-radio-card-content {
1181 display: flex;
1182 flex-direction: column;
1183 align-items: center;
1184 gap: 6px;
1185 padding: 14px;
1186 background: var(--kng-v3-bg);
1187 border: 2px solid var(--kng-v3-border);
1188 border-radius: 10px;
1189 cursor: pointer;
1190 transition: all 0.15s ease;
1191 font-size: 12px;
1192 font-weight: 500;
1193 }
1194
1195 .kng-v3-radio-cards-sm .kng-v3-radio-card-content {
1196 padding: 10px 14px;
1197 }
1198
1199 .kng-v3-radio-card input:checked + .kng-v3-radio-card-content {
1200 border-color: var(--kng-v3-primary);
1201 background: rgba(0, 122, 255, 0.05);
1202 }
1203
1204 .kng-v3-radio-card-content:hover {
1205 border-color: var(--kng-v3-border-hover);
1206 }
1207
1208 .kng-v3-btn-group {
1209 display: flex;
1210 border: 1px solid var(--kng-v3-border);
1211 border-radius: 8px;
1212 overflow: hidden;
1213 }
1214
1215 .kng-v3-btn-group-item {
1216 flex: 1;
1217 display: flex;
1218 align-items: center;
1219 justify-content: center;
1220 padding: 10px;
1221 background: var(--kng-v3-bg);
1222 border: none;
1223 cursor: pointer;
1224 transition: all 0.15s ease;
1225 }
1226
1227 .kng-v3-btn-group-item:not(:last-child) {
1228 border-right: 1px solid var(--kng-v3-border);
1229 }
1230
1231 .kng-v3-btn-group-item:hover {
1232 background: var(--kng-v3-card-bg);
1233 }
1234
1235 .kng-v3-btn-group-item.is-active {
1236 background: var(--kng-v3-primary);
1237 color: #fff;
1238 }
1239
1240 /* Small inputs */
1241 .kng-v3-input-sm {
1242 padding: 6px 10px !important;
1243 font-size: 13px !important;
1244 }
1245
1246 .kng-v3-select-sm {
1247 padding: 6px 10px !important;
1248 font-size: 13px !important;
1249 }
1250
1251 /* Color input */
1252 .kng-v3-color-input {
1253 width: 100%;
1254 }
1255
1256 /* Button sizes */
1257 .kng-v3-btn-xs {
1258 padding: 4px 8px;
1259 font-size: 11px;
1260 }
1261
1262 .kng-v3-btn-text {
1263 background: transparent;
1264 color: var(--kng-v3-primary);
1265 }
1266
1267 .kng-v3-btn-text:hover {
1268 background: rgba(0, 122, 255, 0.08);
1269 }
1270
1271 /* Danger button */
1272 .kng-v3-btn-danger {
1273 background: transparent;
1274 color: var(--kng-v3-danger);
1275 border: 1px solid currentColor;
1276 }
1277
1278 .kng-v3-btn-danger:hover {
1279 background: var(--kng-v3-danger);
1280 color: #fff;
1281 }
1282
1283 /* ============================================
1284 Dark Mode Support
1285 ============================================ */
1286
1287 @media (prefers-color-scheme: dark) {
1288 .kng-pt-preview-frame {
1289 background: #1c1c1e;
1290 }
1291 }
1292
1293 .kng-v3-dark-mode .kng-pt-preview-frame {
1294 background: #1c1c1e;
1295 }
1296