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

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

1,720 lines 33.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Custom Code Manager - Admin Styles
3 * King Addons V3 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 --kng-v3-accent: #bf5af2;
17
18 --kng-v3-bg: #f5f5f7;
19 --kng-v3-card-bg: #ffffff;
20 --kng-v3-text: #1d1d1f;
21 --kng-v3-muted: #86868b;
22 --kng-v3-border: rgba(0, 0, 0, 0.08);
23 --kng-v3-border-hover: rgba(0, 0, 0, 0.16);
24
25 --kng-v3-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
26 --kng-v3-font-mono: 'SF Mono', Monaco, Consolas, monospace;
27 }
28
29 /* Dark Mode */
30 .kng-v3-dark {
31 --kng-v3-bg: #000000;
32 --kng-v3-card-bg: #1c1c1e;
33 --kng-v3-text: #f5f5f7;
34 --kng-v3-muted: #98989d;
35 --kng-v3-border: rgba(255, 255, 255, 0.12);
36 --kng-v3-border-hover: rgba(255, 255, 255, 0.24);
37 }
38
39 @media (prefers-color-scheme: dark) {
40 :root:not(.kng-v3-light) {
41 --kng-v3-bg: #000000;
42 --kng-v3-card-bg: #1c1c1e;
43 --kng-v3-text: #f5f5f7;
44 --kng-v3-muted: #98989d;
45 --kng-v3-border: rgba(255, 255, 255, 0.12);
46 --kng-v3-border-hover: rgba(255, 255, 255, 0.24);
47 }
48
49 /* Dark mode specific overrides */
50 .kng-cc-admin .kng-v3-input,
51 .kng-cc-admin .kng-v3-select,
52 .kng-cc-admin .kng-v3-textarea,
53 .kng-cc-admin .kng-cc-title-input,
54 .kng-cc-admin select,
55 .kng-cc-admin input[type="text"],
56 .kng-cc-admin input[type="number"],
57 .kng-cc-admin input[type="url"],
58 .kng-cc-admin textarea {
59 background: #2c2c2e !important;
60 color: #f5f5f7 !important;
61 border-color: rgba(255, 255, 255, 0.12) !important;
62 }
63
64 .kng-cc-admin .kng-cc-settings-card-header,
65 .kng-cc-admin .kng-cc-sidebar-title {
66 background: rgba(255, 255, 255, 0.04) !important;
67 }
68
69 .kng-cc-admin .kng-cc-table thead {
70 background: rgba(255, 255, 255, 0.04) !important;
71 }
72 }
73
74 /* ============================================
75 Base Reset
76 ============================================ */
77
78 body.king-addons_page_king-addons-custom-code #wpcontent,
79 body.king-addons_page_king-addons-custom-code #wpbody,
80 body.king-addons_page_king-addons-custom-code #wpbody-content {
81 background: var(--kng-v3-bg) !important;
82 padding: 0 !important;
83 }
84
85 /* ============================================
86 Base Wrapper
87 ============================================ */
88
89 .kng-cc-admin {
90 font-family: var(--kng-v3-font);
91 max-width: 1400px;
92 margin: 0 auto;
93 padding: 60px 40px;
94 color: var(--kng-v3-text);
95 }
96
97 .kng-cc-admin * {
98 box-sizing: border-box;
99 }
100
101 /* ============================================
102 Header
103 ============================================ */
104
105 .kng-cc-header {
106 display: flex;
107 justify-content: space-between;
108 align-items: flex-start;
109 margin-bottom: 48px;
110 }
111
112 .kng-cc-header-left {
113 display: flex;
114 flex-direction: column;
115 gap: 8px;
116 }
117
118 .kng-cc-header-right {
119 display: flex;
120 align-items: center;
121 gap: 12px;
122 }
123
124 .kng-cc-back-btn {
125 display: inline-flex;
126 align-items: center;
127 gap: 6px;
128 color: var(--kng-v3-primary);
129 text-decoration: none;
130 font-size: 15px;
131 font-weight: 400;
132 transition: all 0.2s ease;
133 margin-bottom: 8px;
134 }
135
136 .kng-cc-back-btn:hover {
137 color: var(--kng-v3-primary-hover);
138 }
139
140 .kng-cc-back-btn svg {
141 width: 16px;
142 height: 16px;
143 }
144
145 .kng-cc-title {
146 font-size: 48px;
147 font-weight: 700;
148 letter-spacing: -0.015em;
149 margin: 0;
150 line-height: 1.1;
151 color: var(--kng-v3-text);
152 }
153
154 .kng-cc-subtitle {
155 font-size: 19px;
156 font-weight: 400;
157 color: var(--kng-v3-muted);
158 margin: 4px 0 0;
159 line-height: 1.5;
160 }
161
162 .kng-cc-count {
163 font-size: 19px;
164 font-weight: 400;
165 color: var(--kng-v3-muted);
166 margin: 4px 0 0;
167 line-height: 1.5;
168 }
169
170 .kng-cc-limit-badge {
171 display: inline-flex;
172 padding: 6px 12px;
173 font-size: 12px;
174 font-weight: 600;
175 color: var(--kng-v3-warning);
176 background: rgba(255, 149, 0, 0.12);
177 border-radius: 100px;
178 margin-left: 12px;
179 }
180
181 /* ============================================
182 Theme Switcher
183 ============================================ */
184
185 .kng-cc-theme-switcher {
186 display: flex;
187 align-items: center;
188 gap: 6px;
189 background: var(--kng-v3-bg);
190 padding: 4px;
191 border-radius: 100px;
192 border: 1px solid var(--kng-v3-border);
193 }
194
195 .kng-cc-theme-btn {
196 display: flex;
197 align-items: center;
198 justify-content: center;
199 width: 32px;
200 height: 32px;
201 border-radius: 50%;
202 background: transparent;
203 border: none;
204 color: var(--kng-v3-muted);
205 cursor: pointer;
206 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
207 position: relative;
208 }
209
210 .kng-cc-theme-btn:hover {
211 color: var(--kng-v3-text);
212 background: var(--kng-v3-card-bg);
213 }
214
215 .kng-cc-theme-btn.is-active {
216 color: var(--kng-v3-primary);
217 background: var(--kng-v3-card-bg);
218 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
219 }
220
221 .kng-cc-theme-btn svg {
222 width: 16px;
223 height: 16px;
224 transition: transform 0.3s ease;
225 }
226
227 .kng-cc-theme-btn:hover svg {
228 transform: scale(1.1);
229 }
230
231 .kng-cc-theme-btn.is-active svg {
232 transform: scale(1.15);
233 }
234
235 /* Theme transition */
236 .kng-cc-admin {
237 transition: background-color 0.3s ease, color 0.3s ease;
238 }
239
240 .kng-cc-admin * {
241 transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
242 }
243
244 /* ============================================
245 Buttons
246 ============================================ */
247
248 .kng-v3-btn {
249 display: inline-flex;
250 align-items: center;
251 gap: 8px;
252 padding: 12px 24px;
253 border-radius: 980px;
254 font-size: 15px;
255 font-weight: 400;
256 text-decoration: none;
257 transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
258 cursor: pointer;
259 border: none;
260 white-space: nowrap;
261 }
262
263 .kng-v3-btn--primary {
264 background: var(--kng-v3-primary);
265 color: #fff;
266 }
267
268 .kng-v3-btn--primary:hover {
269 background: var(--kng-v3-primary-hover);
270 color: #fff;
271 transform: scale(1.02);
272 }
273
274 .kng-v3-btn--secondary {
275 background: rgba(0, 0, 0, 0.06);
276 color: var(--kng-v3-text);
277 }
278
279 .kng-v3-btn--secondary:hover {
280 background: rgba(0, 0, 0, 0.12);
281 color: var(--kng-v3-text);
282 }
283
284 .kng-v3-btn--ghost {
285 background: transparent;
286 color: var(--kng-v3-primary);
287 padding: 12px 20px;
288 }
289
290 .kng-v3-btn--ghost:hover {
291 background: rgba(0, 113, 227, 0.08);
292 color: var(--kng-v3-primary-hover);
293 }
294
295 .kng-v3-btn--sm {
296 padding: 10px 18px;
297 font-size: 14px;
298 }
299
300 .kng-v3-btn svg {
301 width: 18px;
302 height: 18px;
303 }
304
305 /* ============================================
306 Form Elements
307 ============================================ */
308
309 .kng-v3-input,
310 .kng-v3-select,
311 .kng-v3-textarea {
312 width: 100%;
313 padding: 12px 16px;
314 font-size: 15px;
315 font-family: var(--kng-v3-font);
316 color: var(--kng-v3-text);
317 background-color: var(--kng-v3-card-bg);
318 border: 1px solid var(--kng-v3-border);
319 border-radius: 12px;
320 transition: all 0.2s ease;
321 outline: none;
322 -webkit-appearance: none;
323 appearance: none;
324 }
325
326 /* Ensure select dropdowns work properly */
327 .kng-v3-select {
328 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2398989d' 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");
329 background-repeat: no-repeat;
330 background-position: right 16px center;
331 padding-right: 40px;
332 }
333
334 .kng-v3-input:hover,
335 .kng-v3-select:hover,
336 .kng-v3-textarea:hover {
337 border-color: var(--kng-v3-border-hover);
338 }
339
340 .kng-v3-input:focus,
341 .kng-v3-select:focus,
342 .kng-v3-textarea:focus {
343 border-color: var(--kng-v3-primary);
344 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.08);
345 }
346
347 .kng-v3-label {
348 display: block;
349 font-size: 14px;
350 font-weight: 500;
351 color: var(--kng-v3-text);
352 margin-bottom: 8px;
353 }
354
355 .kng-v3-field {
356 margin-bottom: 20px;
357 }
358
359 .kng-v3-field:last-child {
360 margin-bottom: 0;
361 }
362
363 .kng-v3-field-help {
364 font-size: 13px;
365 color: var(--kng-v3-muted);
366 margin-top: 8px;
367 line-height: 1.5;
368 }
369
370 /* Small input modifier */
371 .kng-v3-input--small {
372 width: 120px;
373 }
374
375 /* Toggle */
376 .kng-v3-toggle-wrap {
377 position: relative;
378 display: inline-flex;
379 align-items: center;
380 cursor: pointer;
381 }
382
383 .kng-v3-toggle-wrap input {
384 position: absolute;
385 opacity: 0;
386 width: 0;
387 height: 0;
388 }
389
390 .kng-v3-toggle-slider {
391 position: relative;
392 width: 44px;
393 height: 24px;
394 background: var(--kng-v3-border);
395 border-radius: 12px;
396 transition: all 0.3s ease;
397 flex-shrink: 0;
398 }
399
400 .kng-v3-toggle-slider::after {
401 content: '';
402 position: absolute;
403 top: 2px;
404 left: 2px;
405 width: 20px;
406 height: 20px;
407 background: #ffffff;
408 border-radius: 50%;
409 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
410 transition: all 0.3s ease;
411 }
412
413 .kng-v3-toggle-wrap input:checked + .kng-v3-toggle-slider {
414 background: var(--kng-v3-success);
415 }
416
417 .kng-v3-toggle-wrap input:checked + .kng-v3-toggle-slider::after {
418 transform: translateX(20px);
419 }
420
421 .kng-v3-toggle-row {
422 display: flex;
423 align-items: center;
424 gap: 12px;
425 }
426
427 .kng-v3-toggle-text {
428 font-size: 14px;
429 color: var(--kng-v3-text);
430 }
431
432 /* ============================================
433 Toolbar
434 ============================================ */
435
436 .kng-cc-toolbar {
437 display: flex;
438 align-items: center;
439 justify-content: space-between;
440 padding: 16px 32px;
441 background: var(--kng-v3-card-bg);
442 border-bottom: 1px solid var(--kng-v3-divider);
443 }
444
445 .kng-cc-toolbar-left,
446 .kng-cc-toolbar-right {
447 display: flex;
448 align-items: center;
449 gap: 16px;
450 }
451
452 .kng-cc-bulk-actions {
453 display: flex;
454 align-items: center;
455 gap: 12px;
456 }
457
458 .kng-cc-bulk-select {
459 width: auto;
460 min-width: 150px;
461 }
462
463 .kng-cc-filters {
464 display: flex;
465 gap: 12px;
466 }
467
468 .kng-cc-filter {
469 width: auto;
470 min-width: 120px;
471 }
472
473 .kng-cc-search {
474 position: relative;
475 }
476
477 .kng-cc-search svg {
478 position: absolute;
479 left: 12px;
480 top: 50%;
481 transform: translateY(-50%);
482 color: var(--kng-v3-muted);
483 }
484
485 .kng-cc-search input {
486 padding-left: 40px;
487 width: 240px;
488 }
489
490 /* Checkbox */
491 .kng-cc-checkbox-wrap {
492 position: relative;
493 display: inline-flex;
494 align-items: center;
495 cursor: pointer;
496 }
497
498 .kng-cc-checkbox-wrap input {
499 position: absolute;
500 opacity: 0;
501 width: 0;
502 height: 0;
503 }
504
505 .kng-cc-checkbox-custom {
506 width: 18px;
507 height: 18px;
508 background: var(--kng-v3-card-bg);
509 border: 2px solid var(--kng-v3-border);
510 border-radius: 4px;
511 transition: all 0.2s ease;
512 position: relative;
513 }
514
515 .kng-cc-checkbox-wrap input:checked + .kng-cc-checkbox-custom {
516 background: var(--kng-v3-primary);
517 border-color: var(--kng-v3-primary);
518 }
519
520 .kng-cc-checkbox-wrap input:checked + .kng-cc-checkbox-custom::after {
521 content: '';
522 position: absolute;
523 top: 2px;
524 left: 5px;
525 width: 4px;
526 height: 8px;
527 border: solid #ffffff;
528 border-width: 0 2px 2px 0;
529 transform: rotate(45deg);
530 }
531
532 /* ============================================
533 Table
534 ============================================ */
535
536 .kng-cc-list {
537 padding: 24px 32px;
538 }
539
540 .kng-cc-table-wrap {
541 background: var(--kng-v3-card-bg);
542 border-radius: 28px;
543 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
544 overflow: hidden;
545 border: 1px solid var(--kng-v3-border);
546 transition: box-shadow 0.3s ease;
547 }
548
549 .kng-cc-table-wrap:hover {
550 box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08);
551 }
552
553 .kng-cc-table {
554 width: 100%;
555 border-collapse: collapse;
556 }
557
558 .kng-cc-table thead {
559 background: rgba(0, 0, 0, 0.02);
560 }
561
562 .kng-cc-table th {
563 padding: 16px 20px;
564 font-size: 12px;
565 font-weight: 600;
566 text-transform: uppercase;
567 letter-spacing: 0.06em;
568 color: var(--kng-v3-muted);
569 text-align: left;
570 border-bottom: 1px solid var(--kng-v3-border);
571 }
572
573 .kng-cc-table td {
574 padding: 18px 20px;
575 font-size: 15px;
576 color: var(--kng-v3-text);
577 border-bottom: 1px solid var(--kng-v3-border);
578 vertical-align: middle;
579 }
580
581 .kng-cc-table tr:last-child td {
582 border-bottom: none;
583 }
584
585 .kng-cc-table tbody tr {
586 transition: background-color 0.2s ease;
587 }
588
589 .kng-cc-table tbody tr:hover {
590 background: rgba(0, 113, 227, 0.04);
591 }
592
593 .kng-cc-col-check {
594 width: 40px;
595 }
596
597 .kng-cc-col-name {
598 min-width: 200px;
599 }
600
601 .kng-cc-col-type,
602 .kng-cc-col-location,
603 .kng-cc-col-scope,
604 .kng-cc-col-priority,
605 .kng-cc-col-status {
606 width: 100px;
607 }
608
609 .kng-cc-col-modified {
610 width: 120px;
611 }
612
613 .kng-cc-col-actions {
614 width: 140px;
615 }
616
617 .kng-cc-name-link {
618 font-weight: 500;
619 color: var(--kng-v3-text);
620 text-decoration: none;
621 transition: color 0.2s ease;
622 }
623
624 .kng-cc-name-link:hover {
625 color: var(--kng-v3-primary);
626 }
627
628 .kng-cc-has-notes {
629 display: inline-flex;
630 margin-left: 8px;
631 color: var(--kng-v3-muted);
632 }
633
634 /* Type badges */
635 .kng-cc-type-badge {
636 display: inline-flex;
637 padding: 6px 12px;
638 font-size: 11px;
639 font-weight: 600;
640 border-radius: 100px;
641 text-transform: uppercase;
642 letter-spacing: 0.06em;
643 }
644
645 .kng-cc-type-css {
646 background: rgba(0, 113, 227, 0.12);
647 color: var(--kng-v3-primary);
648 }
649
650 .kng-cc-type-js {
651 background: rgba(255, 149, 0, 0.12);
652 color: #d97706;
653 }
654
655 .kng-cc-type-html {
656 background: rgba(191, 90, 242, 0.12);
657 color: #a855f7;
658 }
659
660 .kng-cc-location-badge {
661 font-size: 13px;
662 color: var(--kng-v3-muted);
663 }
664
665 /* Scope badges */
666 .kng-cc-scope-badge {
667 display: inline-flex;
668 padding: 3px 8px;
669 font-size: 11px;
670 font-weight: 500;
671 border-radius: 4px;
672 }
673
674 .kng-cc-scope-global {
675 background: rgba(48, 209, 88, 0.1);
676 color: #28a745;
677 }
678
679 .kng-cc-scope-include {
680 background: rgba(0, 113, 227, 0.1);
681 color: #0071e3;
682 }
683
684 .kng-cc-scope-exclude {
685 background: rgba(255, 69, 58, 0.1);
686 color: #ff453a;
687 }
688
689 .kng-cc-rules-count {
690 font-size: 11px;
691 color: var(--kng-v3-muted);
692 margin-left: 6px;
693 }
694
695 .kng-cc-date {
696 font-size: 13px;
697 color: var(--kng-v3-muted);
698 }
699
700 /* Actions */
701 .kng-cc-actions {
702 display: flex;
703 gap: 4px;
704 }
705
706 .kng-cc-action-btn {
707 display: flex;
708 align-items: center;
709 justify-content: center;
710 width: 32px;
711 height: 32px;
712 border: none;
713 border-radius: 6px;
714 background: transparent;
715 color: var(--kng-v3-muted);
716 cursor: pointer;
717 transition: all 0.2s ease;
718 text-decoration: none;
719 }
720
721 .kng-cc-action-btn:hover {
722 background: var(--kng-v3-bg);
723 color: var(--kng-v3-text);
724 }
725
726 .kng-cc-action-btn--danger:hover {
727 background: rgba(255, 69, 58, 0.1);
728 color: var(--kng-v3-danger);
729 }
730
731 /* ============================================
732 Empty State
733 ============================================ */
734
735 .kng-cc-empty {
736 text-align: center;
737 padding: 80px 40px;
738 background: var(--kng-v3-card-bg);
739 border-radius: 28px;
740 border: 1px solid var(--kng-v3-border);
741 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
742 }
743
744 .kng-cc-empty-icon {
745 color: var(--kng-v3-border);
746 margin-bottom: 24px;
747 }
748
749 .kng-cc-empty h3 {
750 font-size: 20px;
751 font-weight: 600;
752 color: var(--kng-v3-text);
753 margin: 0 0 12px;
754 }
755
756 .kng-cc-empty p {
757 font-size: 14px;
758 color: var(--kng-v3-muted);
759 margin: 0 0 24px;
760 max-width: 400px;
761 margin-left: auto;
762 margin-right: auto;
763 }
764
765 /* ============================================
766 Pro Upsell
767 ============================================ */
768
769 .kng-cc-pro-upsell {
770 margin: 0 32px 32px;
771 }
772
773 .kng-cc-pro-upsell-content {
774 display: flex;
775 align-items: center;
776 gap: 20px;
777 padding: 20px 24px;
778 background: linear-gradient(135deg, rgba(191, 90, 242, 0.1) 0%, rgba(0, 113, 227, 0.1) 100%);
779 border: 1px solid rgba(191, 90, 242, 0.2);
780 border-radius: 28px;
781 }
782
783 .kng-cc-pro-upsell-icon {
784 color: var(--kng-v3-accent);
785 }
786
787 .kng-cc-pro-upsell-text {
788 flex: 1;
789 }
790
791 .kng-cc-pro-upsell-text h4 {
792 font-size: 15px;
793 font-weight: 600;
794 color: var(--kng-v3-text);
795 margin: 0 0 4px;
796 }
797
798 .kng-cc-pro-upsell-text p {
799 font-size: 13px;
800 color: var(--kng-v3-muted);
801 margin: 0;
802 }
803
804 /* ============================================
805 Editor Page
806 ============================================ */
807
808 .kng-cc-editor-page {
809 padding: 60px 40px;
810 }
811
812 .kng-cc-editor-page .kng-cc-header {
813 position: sticky;
814 top: 32px;
815 z-index: 100;
816 background: var(--kng-v3-bg);
817 padding: 24px 0;
818 margin-bottom: 32px;
819 flex-direction: row;
820 align-items: center;
821 }
822
823 .kng-cc-editor-page .kng-cc-header-left {
824 flex-direction: column;
825 align-items: flex-start;
826 }
827
828 .kng-cc-editor-form {
829 display: contents;
830 }
831
832 .kng-cc-editor-layout {
833 display: grid;
834 grid-template-columns: 1fr 380px;
835 gap: 32px;
836 }
837
838 .kng-cc-editor-main {
839 display: flex;
840 flex-direction: column;
841 gap: 24px;
842 }
843
844 .kng-cc-editor-sidebar {
845 display: flex;
846 flex-direction: column;
847 gap: 24px;
848 }
849
850 /* Title Section */
851 .kng-cc-title-section {
852 background: var(--kng-v3-card-bg);
853 border-radius: 28px;
854 padding: 8px;
855 border: 1px solid var(--kng-v3-border);
856 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
857 }
858
859 .kng-cc-title-input {
860 width: 100%;
861 padding: 20px 24px;
862 font-size: 24px;
863 font-weight: 600;
864 font-family: var(--kng-v3-font);
865 color: var(--kng-v3-text);
866 background: transparent;
867 border: none;
868 outline: none;
869 }
870
871 .kng-cc-title-input::placeholder {
872 color: var(--kng-v3-muted);
873 }
874
875 /* Code Section */
876 .kng-cc-code-section {
877 background: var(--kng-v3-card-bg);
878 border-radius: 28px;
879 border: 1px solid var(--kng-v3-border);
880 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
881 overflow: hidden;
882 flex: 1;
883 display: flex;
884 flex-direction: column;
885 }
886
887 .kng-cc-code-header {
888 display: flex;
889 align-items: center;
890 justify-content: space-between;
891 padding: 12px 16px;
892 border-bottom: 1px solid var(--kng-v3-divider);
893 }
894
895 .kng-cc-type-tabs {
896 display: flex;
897 gap: 4px;
898 background: var(--kng-v3-bg);
899 padding: 4px;
900 border-radius: 10px;
901 }
902
903 .kng-cc-type-tab {
904 display: flex;
905 align-items: center;
906 gap: 8px;
907 padding: 8px 16px;
908 font-size: 13px;
909 font-weight: 500;
910 font-family: var(--kng-v3-font);
911 color: var(--kng-v3-muted);
912 background: transparent;
913 border: none;
914 border-radius: 6px;
915 cursor: pointer;
916 transition: all 0.2s ease;
917 }
918
919 .kng-cc-type-tab:hover:not(:disabled) {
920 color: var(--kng-v3-text);
921 }
922
923 .kng-cc-type-tab.is-active {
924 background: var(--kng-v3-card-bg);
925 color: var(--kng-v3-text);
926 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
927 }
928
929 .kng-cc-type-tab:disabled {
930 cursor: not-allowed;
931 opacity: 0.6;
932 }
933
934 .kng-cc-type-tab.is-pro {
935 position: relative;
936 }
937
938 .kng-cc-pro-badge {
939 display: inline-flex;
940 padding: 2px 6px;
941 font-size: 9px;
942 font-weight: 700;
943 color: var(--kng-v3-accent);
944 background: rgba(191, 90, 242, 0.15);
945 border-radius: 4px;
946 margin-left: 4px;
947 }
948
949 .kng-cc-pro-badge-sm {
950 display: inline-flex;
951 padding: 1px 5px;
952 font-size: 9px;
953 font-weight: 700;
954 color: var(--kng-v3-accent);
955 background: rgba(191, 90, 242, 0.15);
956 border-radius: 4px;
957 margin-left: 6px;
958 }
959
960 .kng-cc-code-actions {
961 display: flex;
962 gap: 4px;
963 }
964
965 .kng-cc-code-action {
966 display: flex;
967 align-items: center;
968 justify-content: center;
969 width: 32px;
970 height: 32px;
971 background: transparent;
972 border: none;
973 border-radius: 6px;
974 color: var(--kng-v3-muted);
975 cursor: pointer;
976 transition: all 0.2s ease;
977 }
978
979 .kng-cc-code-action:hover {
980 background: var(--kng-v3-bg);
981 color: var(--kng-v3-text);
982 }
983
984 .kng-cc-code-editor-wrap {
985 flex: 1;
986 min-height: 400px;
987 position: relative;
988 }
989
990 .kng-cc-code-textarea {
991 width: 100%;
992 min-height: 400px;
993 padding: 16px;
994 font-family: var(--kng-v3-mono);
995 font-size: 13px;
996 line-height: 1.6;
997 color: var(--kng-v3-text);
998 background: var(--kng-v3-card-bg);
999 border: none;
1000 resize: vertical;
1001 outline: none;
1002 }
1003
1004 /* ============================================
1005 CodeMirror Enhanced Styles
1006 ============================================ */
1007
1008 .kng-cc-code-editor-wrap .CodeMirror {
1009 height: 100%;
1010 min-height: 400px;
1011 font-family: var(--kng-v3-mono);
1012 font-size: 14px;
1013 line-height: 1.7;
1014 border-radius: 0;
1015 background: var(--kng-v3-card-bg);
1016 color: var(--kng-v3-text);
1017 }
1018
1019 .kng-cc-code-editor-wrap .CodeMirror-gutters {
1020 background: var(--kng-v3-bg-secondary);
1021 border-right: 1px solid var(--kng-v3-divider);
1022 padding-right: 4px;
1023 }
1024
1025 .kng-cc-code-editor-wrap .CodeMirror-linenumber {
1026 color: var(--kng-v3-muted);
1027 padding: 0 8px;
1028 min-width: 40px;
1029 text-align: right;
1030 }
1031
1032 .kng-cc-code-editor-wrap .CodeMirror-cursor {
1033 border-left-color: var(--kng-v3-primary);
1034 border-left-width: 2px;
1035 }
1036
1037 .kng-cc-code-editor-wrap .CodeMirror-selected {
1038 background: var(--kng-v3-primary-light) !important;
1039 }
1040
1041 .kng-cc-code-editor-wrap .CodeMirror-line::selection,
1042 .kng-cc-code-editor-wrap .CodeMirror-line > span::selection,
1043 .kng-cc-code-editor-wrap .CodeMirror-line > span > span::selection {
1044 background: var(--kng-v3-primary-light);
1045 }
1046
1047 /* Syntax highlighting improvements */
1048 .kng-cc-code-editor-wrap .cm-s-default .cm-keyword {
1049 color: #c678dd;
1050 font-weight: 500;
1051 }
1052
1053 .kng-cc-code-editor-wrap .cm-s-default .cm-atom {
1054 color: #d19a66;
1055 }
1056
1057 .kng-cc-code-editor-wrap .cm-s-default .cm-number {
1058 color: #d19a66;
1059 }
1060
1061 .kng-cc-code-editor-wrap .cm-s-default .cm-def {
1062 color: #61afef;
1063 }
1064
1065 .kng-cc-code-editor-wrap .cm-s-default .cm-variable {
1066 color: var(--kng-v3-text);
1067 }
1068
1069 .kng-cc-code-editor-wrap .cm-s-default .cm-variable-2 {
1070 color: #56b6c2;
1071 }
1072
1073 .kng-cc-code-editor-wrap .cm-s-default .cm-variable-3 {
1074 color: #c678dd;
1075 }
1076
1077 .kng-cc-code-editor-wrap .cm-s-default .cm-property {
1078 color: #e06c75;
1079 }
1080
1081 .kng-cc-code-editor-wrap .cm-s-default .cm-operator {
1082 color: #56b6c2;
1083 }
1084
1085 .kng-cc-code-editor-wrap .cm-s-default .cm-comment {
1086 color: var(--kng-v3-muted);
1087 font-style: italic;
1088 }
1089
1090 .kng-cc-code-editor-wrap .cm-s-default .cm-string {
1091 color: #98c379;
1092 }
1093
1094 .kng-cc-code-editor-wrap .cm-s-default .cm-string-2 {
1095 color: #98c379;
1096 }
1097
1098 .kng-cc-code-editor-wrap .cm-s-default .cm-meta {
1099 color: #61afef;
1100 }
1101
1102 .kng-cc-code-editor-wrap .cm-s-default .cm-qualifier {
1103 color: #d19a66;
1104 }
1105
1106 .kng-cc-code-editor-wrap .cm-s-default .cm-builtin {
1107 color: #e5c07b;
1108 }
1109
1110 .kng-cc-code-editor-wrap .cm-s-default .cm-tag {
1111 color: #e06c75;
1112 }
1113
1114 .kng-cc-code-editor-wrap .cm-s-default .cm-attribute {
1115 color: #d19a66;
1116 }
1117
1118 .kng-cc-code-editor-wrap .cm-s-default .cm-header {
1119 color: #e06c75;
1120 font-weight: 600;
1121 }
1122
1123 .kng-cc-code-editor-wrap .cm-s-default .cm-hr {
1124 color: var(--kng-v3-divider);
1125 }
1126
1127 .kng-cc-code-editor-wrap .cm-s-default .cm-link {
1128 color: #61afef;
1129 text-decoration: underline;
1130 }
1131
1132 /* Active line highlight */
1133 .kng-cc-code-editor-wrap .CodeMirror-activeline-background {
1134 background: var(--kng-v3-primary-light);
1135 }
1136
1137 /* Matching brackets */
1138 .kng-cc-code-editor-wrap .CodeMirror-matchingbracket {
1139 color: var(--kng-v3-success) !important;
1140 background: var(--kng-v3-success-light);
1141 border-radius: 2px;
1142 }
1143
1144 .kng-cc-code-editor-wrap .CodeMirror-nonmatchingbracket {
1145 color: var(--kng-v3-danger) !important;
1146 background: var(--kng-v3-danger-light);
1147 border-radius: 2px;
1148 }
1149
1150 /* Fullscreen mode */
1151 .kng-cc-code-section.is-fullscreen {
1152 position: fixed;
1153 top: 0;
1154 left: 0;
1155 right: 0;
1156 bottom: 0;
1157 z-index: 99999;
1158 border-radius: 0;
1159 }
1160
1161 .kng-cc-code-section.is-fullscreen .kng-cc-code-editor-wrap {
1162 min-height: calc(100vh - 60px);
1163 }
1164
1165 /* Notes Section */
1166 .kng-cc-notes-section {
1167 background: var(--kng-v3-card-bg);
1168 border-radius: 28px;
1169 border: 1px solid var(--kng-v3-border);
1170 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
1171 overflow: hidden;
1172 }
1173
1174 .kng-cc-section-header {
1175 display: flex;
1176 align-items: center;
1177 justify-content: space-between;
1178 padding: 16px 20px;
1179 cursor: pointer;
1180 transition: background 0.2s ease;
1181 }
1182
1183 .kng-cc-section-header:hover {
1184 background: var(--kng-v3-bg);
1185 }
1186
1187 .kng-cc-section-title {
1188 display: flex;
1189 align-items: center;
1190 gap: 10px;
1191 font-size: 14px;
1192 font-weight: 600;
1193 color: var(--kng-v3-text);
1194 margin: 0;
1195 }
1196
1197 .kng-cc-collapse-icon {
1198 color: var(--kng-v3-muted);
1199 transition: transform 0.2s ease;
1200 }
1201
1202 .kng-cc-section-header.is-collapsed .kng-cc-collapse-icon {
1203 transform: rotate(-90deg);
1204 }
1205
1206 .kng-cc-section-content {
1207 padding: 0 20px 20px;
1208 }
1209
1210 /* ============================================
1211 Sidebar Sections
1212 ============================================ */
1213
1214 .kng-cc-sidebar-section {
1215 background: var(--kng-v3-card-bg);
1216 border-radius: 28px;
1217 border: 1px solid var(--kng-v3-border);
1218 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
1219 overflow: hidden;
1220 }
1221
1222 .kng-cc-sidebar-title {
1223 display: flex;
1224 align-items: center;
1225 gap: 10px;
1226 padding: 20px 24px;
1227 font-size: 15px;
1228 font-weight: 600;
1229 color: var(--kng-v3-text);
1230 margin: 0;
1231 border-bottom: 1px solid var(--kng-v3-border);
1232 background: rgba(0, 0, 0, 0.02);
1233 }
1234
1235 .kng-cc-sidebar-title svg {
1236 color: var(--kng-v3-muted);
1237 width: 18px;
1238 height: 18px;
1239 }
1240
1241 .kng-cc-sidebar-content {
1242 padding: 24px;
1243 }
1244
1245 /* Status wrap in header */
1246 .kng-cc-status-wrap {
1247 display: flex;
1248 align-items: center;
1249 gap: 10px;
1250 padding: 8px 16px;
1251 background: var(--kng-v3-bg);
1252 border-radius: 100px;
1253 }
1254
1255 .kng-cc-status-label {
1256 font-size: 13px;
1257 font-weight: 500;
1258 color: var(--kng-v3-muted);
1259 }
1260
1261 /* Scope Radio Cards */
1262 .kng-cc-scope-options {
1263 display: grid;
1264 grid-template-columns: repeat(3, 1fr);
1265 gap: 8px;
1266 }
1267
1268 .kng-cc-radio-card {
1269 cursor: pointer;
1270 }
1271
1272 .kng-cc-radio-card input {
1273 position: absolute;
1274 opacity: 0;
1275 width: 0;
1276 height: 0;
1277 }
1278
1279 .kng-cc-radio-card-content {
1280 display: flex;
1281 flex-direction: column;
1282 align-items: center;
1283 gap: 8px;
1284 padding: 16px 12px;
1285 background: var(--kng-v3-bg);
1286 border: 2px solid transparent;
1287 border-radius: 12px;
1288 transition: all 0.2s ease;
1289 }
1290
1291 .kng-cc-radio-card:hover .kng-cc-radio-card-content {
1292 border-color: var(--kng-v3-border);
1293 }
1294
1295 .kng-cc-radio-card.is-selected .kng-cc-radio-card-content,
1296 .kng-cc-radio-card input:checked + .kng-cc-radio-card-content {
1297 background: rgba(0, 113, 227, 0.1);
1298 border-color: var(--kng-v3-primary);
1299 }
1300
1301 .kng-cc-radio-icon {
1302 color: var(--kng-v3-muted);
1303 }
1304
1305 .kng-cc-radio-card.is-selected .kng-cc-radio-icon,
1306 .kng-cc-radio-card input:checked + .kng-cc-radio-card-content .kng-cc-radio-icon {
1307 color: var(--kng-v3-primary);
1308 }
1309
1310 .kng-cc-radio-text {
1311 font-size: 12px;
1312 font-weight: 500;
1313 color: var(--kng-v3-text);
1314 }
1315
1316 /* Rules Builder */
1317 .kng-cc-rules-builder {
1318 margin-top: 16px;
1319 padding-top: 16px;
1320 border-top: 1px solid var(--kng-v3-divider);
1321 }
1322
1323 .kng-cc-rules-list {
1324 display: flex;
1325 flex-direction: column;
1326 gap: 12px;
1327 margin-bottom: 12px;
1328 }
1329
1330 .kng-cc-rule {
1331 background: var(--kng-v3-bg);
1332 border-radius: 12px;
1333 overflow: hidden;
1334 }
1335
1336 .kng-cc-rule-header {
1337 display: flex;
1338 align-items: center;
1339 gap: 8px;
1340 padding: 12px;
1341 }
1342
1343 .kng-cc-rule-type {
1344 flex: 1;
1345 }
1346
1347 .kng-cc-rule-remove {
1348 display: flex;
1349 align-items: center;
1350 justify-content: center;
1351 width: 28px;
1352 height: 28px;
1353 background: transparent;
1354 border: none;
1355 border-radius: 4px;
1356 color: var(--kng-v3-muted);
1357 cursor: pointer;
1358 transition: all 0.2s ease;
1359 }
1360
1361 .kng-cc-rule-remove:hover {
1362 background: rgba(255, 69, 58, 0.1);
1363 color: var(--kng-v3-danger);
1364 }
1365
1366 .kng-cc-rule-value {
1367 padding: 0 12px 12px;
1368 }
1369
1370 .kng-cc-add-rule-btn {
1371 width: 100%;
1372 }
1373
1374 /* Pro field indicator */
1375 .is-pro-field {
1376 opacity: 0.6;
1377 pointer-events: none;
1378 }
1379
1380 /* Pro Box */
1381 .kng-cc-pro-section {
1382 background: linear-gradient(135deg, rgba(191, 90, 242, 0.08) 0%, rgba(0, 113, 227, 0.08) 100%);
1383 border: 1px solid rgba(191, 90, 242, 0.15);
1384 }
1385
1386 .kng-cc-pro-box {
1387 padding: 24px;
1388 text-align: center;
1389 }
1390
1391 .kng-cc-pro-box-icon {
1392 display: inline-flex;
1393 align-items: center;
1394 justify-content: center;
1395 width: 48px;
1396 height: 48px;
1397 background: rgba(191, 90, 242, 0.1);
1398 border-radius: 50%;
1399 color: var(--kng-v3-accent);
1400 margin-bottom: 16px;
1401 }
1402
1403 .kng-cc-pro-box h4 {
1404 font-size: 16px;
1405 font-weight: 600;
1406 color: var(--kng-v3-text);
1407 margin: 0 0 12px;
1408 }
1409
1410 .kng-cc-pro-features-list {
1411 list-style: none;
1412 padding: 0;
1413 margin: 0 0 20px;
1414 text-align: left;
1415 }
1416
1417 .kng-cc-pro-features-list li {
1418 position: relative;
1419 padding: 6px 0 6px 24px;
1420 font-size: 13px;
1421 color: var(--kng-v3-muted);
1422 }
1423
1424 .kng-cc-pro-features-list li::before {
1425 content: '';
1426 position: absolute;
1427 left: 0;
1428 color: var(--kng-v3-success);
1429 font-weight: 600;
1430 }
1431
1432 /* ============================================
1433 Settings Page
1434 ============================================ */
1435
1436 .kng-cc-settings-content {
1437 max-width: 720px;
1438 margin-top: 32px;
1439 }
1440
1441 .kng-cc-settings-form {
1442 display: flex;
1443 flex-direction: column;
1444 gap: 24px;
1445 }
1446
1447 .kng-cc-settings-card {
1448 background: var(--kng-v3-card-bg);
1449 border-radius: 28px;
1450 border: 1px solid var(--kng-v3-border);
1451 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
1452 overflow: hidden;
1453 }
1454
1455 .kng-cc-settings-card-header {
1456 padding: 20px 28px;
1457 background: rgba(0, 0, 0, 0.02);
1458 border-bottom: 1px solid var(--kng-v3-border);
1459 }
1460
1461 .kng-cc-settings-card-header h3 {
1462 display: flex;
1463 align-items: center;
1464 gap: 12px;
1465 font-size: 17px;
1466 font-weight: 600;
1467 color: var(--kng-v3-text);
1468 margin: 0;
1469 }
1470
1471 .kng-cc-settings-card-header svg {
1472 color: var(--kng-v3-muted);
1473 width: 20px;
1474 height: 20px;
1475 }
1476
1477 .kng-cc-settings-card-content {
1478 padding: 28px;
1479 }
1480
1481 .kng-cc-settings-row {
1482 display: grid;
1483 grid-template-columns: 1fr 1fr;
1484 gap: 20px;
1485 margin-bottom: 20px;
1486 }
1487
1488 .kng-cc-settings-row:last-child {
1489 margin-bottom: 0;
1490 }
1491
1492 .kng-cc-settings-actions {
1493 padding-top: 8px;
1494 }
1495
1496 /* ============================================
1497 Import/Export Page
1498 ============================================ */
1499
1500 .kng-cc-import-export-content {
1501 max-width: 1000px;
1502 margin-top: 32px;
1503 }
1504
1505 .kng-cc-import-export-grid {
1506 display: grid;
1507 grid-template-columns: 1fr 1fr;
1508 gap: 24px;
1509 }
1510
1511 .kng-cc-ie-card {
1512 background: var(--kng-v3-card-bg);
1513 border-radius: 28px;
1514 border: 1px solid var(--kng-v3-border);
1515 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
1516 padding: 40px 32px;
1517 text-align: center;
1518 }
1519
1520 .kng-cc-ie-card-icon {
1521 color: var(--kng-v3-muted);
1522 margin-bottom: 20px;
1523 }
1524
1525 .kng-cc-ie-card-icon svg {
1526 width: 48px;
1527 height: 48px;
1528 stroke-width: 1.5;
1529 }
1530
1531 .kng-cc-ie-card h3 {
1532 font-size: 20px;
1533 font-weight: 600;
1534 color: var(--kng-v3-text);
1535 margin: 0 0 12px;
1536 }
1537
1538 .kng-cc-ie-card p {
1539 font-size: 15px;
1540 color: var(--kng-v3-muted);
1541 margin: 0 0 24px;
1542 line-height: 1.6;
1543 }
1544
1545 .kng-cc-ie-options {
1546 margin-bottom: 24px;
1547 text-align: left;
1548 }
1549
1550 /* Dropzone */
1551 .kng-cc-import-dropzone {
1552 border: 2px dashed var(--kng-v3-border);
1553 border-radius: 20px;
1554 padding: 32px;
1555 margin-bottom: 20px;
1556 cursor: pointer;
1557 transition: all 0.2s ease;
1558 }
1559
1560 .kng-cc-import-dropzone:hover,
1561 .kng-cc-import-dropzone.is-dragover {
1562 border-color: var(--kng-v3-primary);
1563 background: rgba(0, 113, 227, 0.05);
1564 }
1565
1566 .kng-cc-dropzone-content {
1567 display: flex;
1568 flex-direction: column;
1569 align-items: center;
1570 gap: 12px;
1571 color: var(--kng-v3-muted);
1572 }
1573
1574 .kng-cc-dropzone-file {
1575 display: flex;
1576 align-items: center;
1577 justify-content: center;
1578 gap: 12px;
1579 }
1580
1581 .kng-cc-file-name {
1582 font-size: 14px;
1583 font-weight: 500;
1584 color: var(--kng-v3-text);
1585 }
1586
1587 .kng-cc-file-remove {
1588 display: flex;
1589 align-items: center;
1590 justify-content: center;
1591 width: 28px;
1592 height: 28px;
1593 background: transparent;
1594 border: none;
1595 border-radius: 4px;
1596 color: var(--kng-v3-muted);
1597 cursor: pointer;
1598 transition: all 0.2s ease;
1599 }
1600
1601 .kng-cc-file-remove:hover {
1602 background: rgba(255, 69, 58, 0.1);
1603 color: var(--kng-v3-danger);
1604 }
1605
1606 /* Import Results */
1607 .kng-cc-import-results {
1608 margin-top: 24px;
1609 }
1610
1611 .kng-cc-import-results-content {
1612 background: var(--kng-v3-card-bg);
1613 border-radius: 28px;
1614 border: 1px solid var(--kng-v3-border);
1615 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
1616 padding: 32px;
1617 text-align: center;
1618 }
1619
1620 .kng-cc-import-results h4 {
1621 font-size: 16px;
1622 font-weight: 600;
1623 color: var(--kng-v3-text);
1624 margin: 0 0 20px;
1625 }
1626
1627 .kng-cc-import-stats {
1628 display: flex;
1629 justify-content: center;
1630 gap: 48px;
1631 margin-bottom: 24px;
1632 }
1633
1634 .kng-cc-import-stat {
1635 text-align: center;
1636 }
1637
1638 .kng-cc-import-stat-value {
1639 display: block;
1640 font-size: 32px;
1641 font-weight: 600;
1642 color: var(--kng-v3-text);
1643 line-height: 1;
1644 }
1645
1646 .kng-cc-import-stat-label {
1647 font-size: 13px;
1648 color: var(--kng-v3-muted);
1649 margin-top: 4px;
1650 }
1651
1652 /* ============================================
1653 Spinner Animation
1654 ============================================ */
1655
1656 .kng-cc-spinner {
1657 animation: kng-cc-spin 1s linear infinite;
1658 }
1659
1660 @keyframes kng-cc-spin {
1661 from {
1662 transform: rotate(0deg);
1663 }
1664 to {
1665 transform: rotate(360deg);
1666 }
1667 }
1668
1669 /* ============================================
1670 Responsive
1671 ============================================ */
1672
1673 @media (max-width: 1200px) {
1674 .kng-cc-editor-layout {
1675 grid-template-columns: 1fr;
1676 }
1677
1678 .kng-cc-editor-sidebar {
1679 order: -1;
1680 }
1681 }
1682
1683 @media (max-width: 900px) {
1684 .kng-cc-toolbar {
1685 flex-direction: column;
1686 gap: 16px;
1687 }
1688
1689 .kng-cc-toolbar-left,
1690 .kng-cc-toolbar-right {
1691 width: 100%;
1692 flex-wrap: wrap;
1693 }
1694
1695 .kng-cc-import-export-grid {
1696 grid-template-columns: 1fr;
1697 }
1698 }
1699
1700 @media (max-width: 600px) {
1701 .kng-cc-header {
1702 padding: 12px 16px;
1703 }
1704
1705 .kng-cc-header-right {
1706 flex-wrap: wrap;
1707 }
1708
1709 .kng-cc-list,
1710 .kng-cc-settings-content,
1711 .kng-cc-import-export-content,
1712 .kng-cc-editor-layout {
1713 padding: 16px;
1714 }
1715
1716 .kng-cc-scope-options {
1717 grid-template-columns: 1fr;
1718 }
1719 }
1720