PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.65
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.65
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.65, at includes/extensions/Custom_Code_Manager/assets/admin.css

2,521 lines 54.0 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-primary-light: rgba(0, 113, 227, 0.15);
14 --kng-v3-danger: #ff3b30;
15 --kng-v3-danger-light: rgba(255, 59, 48, 0.12);
16 --kng-v3-success: #34c759;
17 --kng-v3-success-light: rgba(52, 199, 89, 0.12);
18 --kng-v3-warning: #ff9500;
19 --kng-v3-accent: #bf5af2;
20
21 --kng-v3-bg: #f5f5f7;
22 --kng-v3-bg-secondary: #ebebed;
23 --kng-v3-card-bg: #ffffff;
24 --kng-v3-text: #1d1d1f;
25 --kng-v3-muted: #86868b;
26 --kng-v3-border: rgba(0, 0, 0, 0.08);
27 --kng-v3-border-hover: rgba(0, 0, 0, 0.16);
28 --kng-v3-divider: rgba(0, 0, 0, 0.06);
29
30 --kng-v3-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
31 --kng-v3-font-mono: 'SF Mono', Monaco, Consolas, monospace;
32 --kng-v3-mono: 'SF Mono', Monaco, Consolas, monospace;
33 }
34
35 /* Dark Mode Variables */
36 .kng-v3-dark,
37 body.ka-v3-dark {
38 --kng-v3-bg: #000000;
39 --kng-v3-bg-secondary: #1c1c1e;
40 --kng-v3-card-bg: #1c1c1e;
41 --kng-v3-text: #f5f5f7;
42 --kng-v3-muted: #98989d;
43 --kng-v3-border: rgba(255, 255, 255, 0.12);
44 --kng-v3-border-hover: rgba(255, 255, 255, 0.24);
45 --kng-v3-divider: rgba(255, 255, 255, 0.08);
46 --kng-v3-primary-light: rgba(0, 113, 227, 0.25);
47 --kng-v3-danger-light: rgba(255, 59, 48, 0.2);
48 --kng-v3-success-light: rgba(52, 199, 89, 0.2);
49 }
50
51 /* ============================================
52 Segmented Theme Control
53 ============================================ */
54
55 .kng-cc-admin .ka-v3-segmented {
56 position: relative;
57 display: grid;
58 grid-template-columns: 1fr 1fr 1fr;
59 align-items: center;
60 padding: 2px;
61 border-radius: 980px;
62 background: rgba(0, 0, 0, 0.06);
63 border: 1px solid rgba(0, 0, 0, 0.06);
64 min-width: 240px;
65 height: 40px;
66 overflow: hidden;
67 }
68
69 .kng-cc-admin .ka-v3-segmented-indicator {
70 position: absolute;
71 top: 2px;
72 bottom: 2px;
73 left: 2px;
74 width: calc(33.333% - 2px);
75 border-radius: 980px;
76 background: rgba(255, 255, 255, 0.92);
77 box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
78 transform: translateX(0);
79 transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
80 z-index: 0;
81 }
82
83 .kng-cc-admin .ka-v3-segmented[data-active="dark"] .ka-v3-segmented-indicator {
84 transform: translateX(100%);
85 }
86
87 .kng-cc-admin .ka-v3-segmented[data-active="auto"] .ka-v3-segmented-indicator {
88 transform: translateX(200%);
89 }
90
91 .kng-cc-admin .ka-v3-segmented-btn {
92 position: relative;
93 z-index: 1;
94 height: 36px;
95 border: none;
96 background: transparent;
97 border-radius: 980px;
98 padding: 0 12px;
99 display: inline-flex;
100 align-items: center;
101 justify-content: center;
102 gap: 8px;
103 font-size: 13px;
104 font-weight: 500;
105 color: #1d1d1f;
106 cursor: pointer;
107 transition: color 0.25s ease, transform 0.25s ease;
108 user-select: none;
109 white-space: nowrap;
110 }
111
112 .kng-cc-admin .ka-v3-segmented-btn:active {
113 transform: scale(0.98);
114 }
115
116 .kng-cc-admin .ka-v3-segmented-icon {
117 font-size: 16px;
118 line-height: 1;
119 }
120
121 .kng-cc-admin .ka-v3-segmented-btn[aria-pressed="false"] {
122 color: #86868b;
123 }
124
125 /* ============================================
126 Dark Mode Overrides
127 ============================================ */
128
129 /* Segmented control in dark */
130 body.ka-v3-dark .kng-cc-admin .ka-v3-segmented {
131 background: rgba(255, 255, 255, 0.08);
132 border-color: rgba(255, 255, 255, 0.06);
133 }
134
135 body.ka-v3-dark .kng-cc-admin .ka-v3-segmented-indicator {
136 background: #636366;
137 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
138 }
139
140 body.ka-v3-dark .kng-cc-admin .ka-v3-segmented-btn {
141 color: #f5f5f7;
142 }
143
144 body.ka-v3-dark .kng-cc-admin .ka-v3-segmented-btn[aria-pressed="false"] {
145 color: #8e8e93;
146 }
147
148 /* Base page background */
149 body.ka-v3-dark.toplevel_page_king-addons-custom-code {
150 background: #000000 !important;
151 }
152
153 body.ka-v3-dark.toplevel_page_king-addons-custom-code #wpcontent,
154 body.ka-v3-dark.toplevel_page_king-addons-custom-code #wpbody,
155 body.ka-v3-dark.toplevel_page_king-addons-custom-code #wpbody-content {
156 background: #000000 !important;
157 }
158
159 /* Inputs & form elements */
160 body.ka-v3-dark .kng-cc-admin .kng-v3-input,
161 body.ka-v3-dark .kng-cc-admin .kng-v3-select,
162 body.ka-v3-dark .kng-cc-admin .kng-v3-textarea,
163 body.ka-v3-dark .kng-cc-admin .kng-cc-title-input,
164 body.ka-v3-dark .kng-cc-admin select,
165 body.ka-v3-dark .kng-cc-admin input[type="text"],
166 body.ka-v3-dark .kng-cc-admin input[type="number"],
167 body.ka-v3-dark .kng-cc-admin input[type="url"],
168 body.ka-v3-dark .kng-cc-admin textarea {
169 background-color: #2c2c2e !important;
170 color: #f5f5f7 !important;
171 border-color: transparent !important;
172 }
173
174 body.ka-v3-dark .kng-cc-admin .kng-v3-input:focus,
175 body.ka-v3-dark .kng-cc-admin .kng-v3-select:focus,
176 body.ka-v3-dark .kng-cc-admin .kng-v3-textarea:focus,
177 body.ka-v3-dark .kng-cc-admin input[type="text"]:focus,
178 body.ka-v3-dark .kng-cc-admin input[type="number"]:focus,
179 body.ka-v3-dark .kng-cc-admin select:focus,
180 body.ka-v3-dark .kng-cc-admin textarea:focus {
181 border-color: var(--kng-v3-primary) !important;
182 }
183
184 /* Table */
185 body.ka-v3-dark .kng-cc-admin .kng-cc-table thead {
186 background: rgba(255, 255, 255, 0.04) !important;
187 }
188
189 body.ka-v3-dark .kng-cc-admin .kng-cc-table tbody tr:hover {
190 background: rgba(255, 255, 255, 0.04);
191 }
192
193 /* Buttons */
194 body.ka-v3-dark .kng-cc-admin .kng-v3-btn--secondary {
195 background: rgba(255, 255, 255, 0.1);
196 color: #f5f5f7;
197 }
198
199 body.ka-v3-dark .kng-cc-admin .kng-v3-btn--secondary:hover {
200 background: rgba(255, 255, 255, 0.16);
201 }
202
203 body.ka-v3-dark .kng-cc-admin .kng-v3-btn--ghost {
204 color: #64d2ff;
205 }
206
207 body.ka-v3-dark .kng-cc-admin .kng-v3-btn--ghost:hover {
208 background: rgba(100, 210, 255, 0.1);
209 color: #64d2ff;
210 }
211
212 /* Edit action button */
213 body.ka-v3-dark .kng-cc-admin .kng-cc-action-btn--edit {
214 background: var(--kng-v3-primary);
215 color: #fff;
216 }
217
218 body.ka-v3-dark .kng-cc-admin .kng-cc-action-btn--edit:hover {
219 background: var(--kng-v3-primary-hover);
220 color: #fff;
221 }
222
223 /* Action buttons */
224 body.ka-v3-dark .kng-cc-admin .kng-cc-action-btn:hover {
225 background: rgba(255, 255, 255, 0.08);
226 }
227
228 /* Checkbox */
229 body.ka-v3-dark .kng-cc-admin .kng-cc-checkbox-custom {
230 background: #2c2c2e;
231 border-color: rgba(255, 255, 255, 0.2);
232 }
233
234 /* Scope & type badges */
235 body.ka-v3-dark .kng-cc-admin .kng-cc-scope-badge {
236 background: rgba(255, 255, 255, 0.08);
237 color: #98989d;
238 }
239
240 body.ka-v3-dark .kng-cc-admin .kng-cc-type-css {
241 background: rgba(0, 113, 227, 0.2);
242 }
243
244 body.ka-v3-dark .kng-cc-admin .kng-cc-type-js {
245 background: rgba(255, 149, 0, 0.2);
246 }
247
248 body.ka-v3-dark .kng-cc-admin .kng-cc-type-html {
249 background: rgba(191, 90, 242, 0.2);
250 }
251
252 /* Code editor */
253 body.ka-v3-dark .kng-cc-admin .CodeMirror {
254 background: #1c1c1e;
255 color: #f5f5f7;
256 }
257
258 body.ka-v3-dark .kng-cc-admin .CodeMirror-gutters {
259 background: #1c1c1e;
260 border-color: rgba(255, 255, 255, 0.06);
261 }
262
263 body.ka-v3-dark .kng-cc-admin .CodeMirror-linenumber {
264 color: #636366;
265 }
266
267 body.ka-v3-dark .kng-cc-code-editor-wrap .CodeMirror-selected {
268 background: rgba(0, 113, 227, 0.35) !important;
269 }
270
271 body.ka-v3-dark .kng-cc-code-editor-wrap .CodeMirror-focused .CodeMirror-selected {
272 background: rgba(0, 113, 227, 0.4) !important;
273 }
274
275 body.ka-v3-dark .kng-cc-admin .CodeMirror-cursor {
276 border-left-color: #f5f5f7;
277 }
278
279 /* Radio cards */
280 body.ka-v3-dark .kng-cc-admin .kng-cc-radio-card {
281 background: transparent;
282 }
283
284 body.ka-v3-dark .kng-cc-admin .kng-cc-radio-card.is-selected {
285 border-color: var(--kng-v3-primary);
286 background: rgba(0, 113, 227, 0.1);
287 }
288
289 /* Pro upsell */
290 body.ka-v3-dark .kng-cc-admin .kng-cc-pro-upsell-content {
291 background: linear-gradient(135deg, rgba(191, 90, 242, 0.08) 0%, rgba(0, 113, 227, 0.08) 100%);
292 border-color: rgba(191, 90, 242, 0.2);
293 }
294
295 body.ka-v3-dark .kng-cc-admin .kng-cc-pro-upsell-content:hover {
296 border-color: rgba(191, 90, 242, 0.35);
297 box-shadow: 0 4px 20px rgba(191, 90, 242, 0.1);
298 }
299
300 body.ka-v3-dark .kng-cc-admin .kng-cc-pro-upsell-icon {
301 background: rgba(191, 90, 242, 0.15);
302 }
303
304 /* Import dropzone */
305 body.ka-v3-dark .kng-cc-admin .kng-cc-import-dropzone {
306 background: #2c2c2e;
307 border-color: rgba(255, 255, 255, 0.12);
308 }
309
310 body.ka-v3-dark .kng-cc-admin .kng-cc-import-dropzone:hover {
311 border-color: var(--kng-v3-primary);
312 background: rgba(0, 113, 227, 0.06);
313 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.08);
314 }
315
316 /* Settings & IE cards */
317 body.ka-v3-dark .kng-cc-admin .kng-cc-settings-card {
318 border-color: rgba(255, 255, 255, 0.08);
319 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
320 }
321
322 body.ka-v3-dark .kng-cc-admin .kng-cc-settings-card:hover {
323 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
324 }
325
326 body.ka-v3-dark .kng-cc-admin .kng-cc-ie-card {
327 border-color: rgba(255, 255, 255, 0.08);
328 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
329 }
330
331 body.ka-v3-dark .kng-cc-admin .kng-cc-ie-card:hover {
332 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
333 }
334
335 body.ka-v3-dark .kng-cc-admin .kng-cc-ie-card-icon {
336 background: rgba(255, 255, 255, 0.06);
337 }
338
339 body.ka-v3-dark .kng-cc-admin .kng-cc-import-results-content {
340 border-color: rgba(255, 255, 255, 0.08);
341 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
342 }
343
344 /* Empty state */
345 body.ka-v3-dark .kng-cc-admin .kng-cc-empty {
346 border-color: rgba(255, 255, 255, 0.1);
347 }
348
349 body.ka-v3-dark .kng-cc-admin .kng-cc-empty-icon {
350 background: rgba(255, 255, 255, 0.06);
351 }
352
353 /* Table wrap, toolbar */
354 body.ka-v3-dark .kng-cc-admin .kng-cc-table-wrap {
355 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
356 }
357
358 body.ka-v3-dark .kng-cc-admin .kng-cc-toolbar {
359 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
360 }
361
362 /* Header title gradient */
363 body.ka-v3-dark .kng-cc-admin .kng-cc-title {
364 background: linear-gradient(135deg, #f5f5f7 0%, #a1a1a6 100%);
365 -webkit-background-clip: text;
366 background-clip: text;
367 }
368
369 /* Popup dark mode */
370 body.ka-v3-dark .kng-cc-pro-popup {
371 background: #2c2c2e;
372 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.5);
373 }
374
375 body.ka-v3-dark .kng-cc-pro-popup-close:hover {
376 background: rgba(255, 255, 255, 0.08);
377 }
378
379 body.ka-v3-dark .kng-cc-pro-popup-features {
380 background: rgba(255, 255, 255, 0.06);
381 border-color: rgba(255, 255, 255, 0.08);
382 }
383
384 /* Pro section dark */
385 body.ka-v3-dark .kng-cc-admin .kng-cc-pro-section {
386 background: linear-gradient(135deg, rgba(191, 90, 242, 0.06) 0%, rgba(0, 113, 227, 0.06) 100%);
387 border-color: rgba(191, 90, 242, 0.18);
388 }
389
390 body.ka-v3-dark .kng-cc-admin .kng-cc-pro-box-icon {
391 background: linear-gradient(135deg, rgba(191, 90, 242, 0.18), rgba(0, 113, 227, 0.18));
392 }
393
394 /* Search results dropdown dark */
395 body.ka-v3-dark .kng-cc-admin .kng-cc-rule-search-results {
396 background: #2c2c2e;
397 border-color: rgba(255, 255, 255, 0.12);
398 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
399 }
400
401 body.ka-v3-dark .kng-cc-admin .kng-cc-search-result:hover {
402 background: rgba(0, 113, 227, 0.15);
403 }
404
405 /* Type tab active in dark */
406 body.ka-v3-dark .kng-cc-admin .kng-cc-type-tab.is-active {
407 background: rgba(255, 255, 255, 0.1);
408 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
409 }
410
411 body.ka-v3-dark .kng-cc-admin .kng-cc-type-tab:hover:not(:disabled) {
412 background: rgba(255, 255, 255, 0.06);
413 }
414
415 /* Radio card selected glow in dark */
416 body.ka-v3-dark .kng-cc-admin .kng-cc-radio-card.is-selected .kng-cc-radio-card-content,
417 body.ka-v3-dark .kng-cc-admin .kng-cc-radio-card input:checked + .kng-cc-radio-card-content {
418 box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.12);
419 }
420
421 /* Sidebar section dark */
422 body.ka-v3-dark .kng-cc-admin .kng-cc-sidebar-section {
423 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
424 }
425
426 /* Code section dark */
427 body.ka-v3-dark .kng-cc-admin .kng-cc-code-section {
428 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
429 }
430
431 body.ka-v3-dark .kng-cc-admin .kng-cc-title-section {
432 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
433 }
434
435 body.ka-v3-dark .kng-cc-admin .kng-cc-notes-section {
436 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
437 }
438
439 /* Back button */
440 body.ka-v3-dark .kng-cc-admin .kng-cc-back-btn {
441 color: #64d2ff;
442 }
443
444 /* Toggle */
445 body.ka-v3-dark .kng-cc-admin .kng-v3-toggle-slider {
446 background: #48484a;
447 }
448
449 body.ka-v3-dark .kng-cc-admin input:checked + .kng-v3-toggle-slider {
450 background: var(--kng-v3-success);
451 }
452
453 /* ============================================
454 Base Reset
455 ============================================ */
456
457 body.toplevel_page_king-addons-custom-code #wpcontent,
458 body.toplevel_page_king-addons-custom-code #wpbody,
459 body.toplevel_page_king-addons-custom-code #wpbody-content {
460 background: var(--kng-v3-bg) !important;
461 padding: 0 !important;
462 }
463
464 /* ============================================
465 Base Wrapper
466 ============================================ */
467
468 .kng-cc-admin {
469 font-family: var(--kng-v3-font);
470 max-width: 1400px;
471 margin: 0 auto;
472 padding: 40px 40px 80px;
473 color: var(--kng-v3-text);
474 }
475
476 .kng-cc-admin * {
477 box-sizing: border-box;
478 }
479
480 /* ============================================
481 Header
482 ============================================ */
483
484 .kng-cc-header {
485 display: flex;
486 justify-content: space-between;
487 align-items: flex-start;
488 margin-bottom: 48px;
489 gap: 24px;
490 }
491
492 .kng-cc-header-left {
493 display: flex;
494 align-items: flex-start;
495 gap: 20px;
496 }
497
498 .kng-cc-header-icon {
499 width: 64px;
500 height: 64px;
501 background: linear-gradient(135deg, #0071e3 0%, #0077ed 100%);
502 border-radius: 16px;
503 display: flex;
504 align-items: center;
505 justify-content: center;
506 flex-shrink: 0;
507 }
508
509 .kng-cc-header-icon svg {
510 color: #fff;
511 stroke: #fff;
512 }
513
514 .kng-cc-header-right {
515 display: flex;
516 align-items: center;
517 gap: 12px;
518 }
519
520 .kng-cc-back-btn {
521 display: inline-flex;
522 align-items: center;
523 gap: 6px;
524 color: var(--kng-v3-primary);
525 text-decoration: none;
526 font-size: 15px;
527 font-weight: 400;
528 transition: color 0.2s ease;
529 margin-bottom: 8px;
530 }
531
532 .kng-cc-back-btn:hover {
533 color: var(--kng-v3-primary-hover);
534 }
535
536 .kng-cc-back-btn svg {
537 width: 16px;
538 height: 16px;
539 }
540
541 .kng-cc-title {
542 font-size: 48px;
543 font-weight: 700;
544 letter-spacing: -0.015em;
545 margin: 0 0 8px;
546 line-height: 1.1;
547 background: linear-gradient(135deg, #1d1d1f 0%, #515154 100%);
548 -webkit-background-clip: text;
549 -webkit-text-fill-color: transparent;
550 background-clip: text;
551 }
552
553 .kng-cc-subtitle {
554 font-size: 19px;
555 font-weight: 400;
556 color: var(--kng-v3-muted);
557 margin: 0;
558 line-height: 1.5;
559 }
560
561 .kng-cc-meta {
562 font-size: 13px;
563 font-weight: 500;
564 color: var(--kng-v3-muted);
565 margin: 6px 0 0;
566 line-height: 1.4;
567 opacity: 0.7;
568 }
569
570 /* ============================================
571 Theme Switcher
572 ============================================ */
573
574 .kng-cc-theme-switcher {
575 display: flex;
576 align-items: center;
577 gap: 6px;
578 background: var(--kng-v3-bg);
579 padding: 4px;
580 border-radius: 100px;
581 border: 1px solid var(--kng-v3-border);
582 }
583
584 .kng-cc-theme-btn {
585 display: flex;
586 align-items: center;
587 justify-content: center;
588 width: 32px;
589 height: 32px;
590 border-radius: 50%;
591 background: transparent;
592 border: none;
593 color: var(--kng-v3-muted);
594 cursor: pointer;
595 transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);
596 position: relative;
597 }
598
599 .kng-cc-theme-btn:hover {
600 color: var(--kng-v3-text);
601 background: var(--kng-v3-card-bg);
602 }
603
604 .kng-cc-theme-btn.is-active {
605 color: var(--kng-v3-primary);
606 background: var(--kng-v3-card-bg);
607 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
608 }
609
610 .kng-cc-theme-btn svg {
611 width: 16px;
612 height: 16px;
613 transition: transform 0.3s ease;
614 }
615
616 .kng-cc-theme-btn:hover svg {
617 transform: scale(1.1);
618 }
619
620 .kng-cc-theme-btn.is-active svg {
621 transform: scale(1.15);
622 }
623
624 /* Theme transition */
625 .kng-cc-admin {
626 transition: background-color 0.3s ease, color 0.3s ease;
627 }
628
629 /* ============================================
630 Buttons
631 ============================================ */
632
633 .kng-v3-btn {
634 display: inline-flex;
635 align-items: center;
636 gap: 8px;
637 padding: 12px 24px;
638 border-radius: 980px;
639 font-size: 15px;
640 font-weight: 400;
641 text-decoration: none;
642 transition: background-color 0.3s cubic-bezier(0.25, 1, 0.5, 1), color 0.3s cubic-bezier(0.25, 1, 0.5, 1), transform 0.3s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.3s cubic-bezier(0.25, 1, 0.5, 1);
643 cursor: pointer;
644 border: none;
645 white-space: nowrap;
646 }
647
648 .kng-v3-btn--primary {
649 background: var(--kng-v3-primary);
650 color: #fff;
651 }
652
653 .kng-v3-btn--primary:hover {
654 background: var(--kng-v3-primary-hover);
655 color: #fff;
656 transform: scale(1.02);
657 }
658
659 .kng-v3-btn--secondary {
660 background: rgba(0, 0, 0, 0.06);
661 color: var(--kng-v3-text);
662 }
663
664 .kng-v3-btn--secondary:hover {
665 background: rgba(0, 0, 0, 0.12);
666 color: var(--kng-v3-text);
667 }
668
669 .kng-v3-btn--ghost {
670 background: transparent;
671 color: var(--kng-v3-primary);
672 padding: 12px 20px;
673 }
674
675 .kng-v3-btn--ghost:hover {
676 background: rgba(0, 113, 227, 0.08);
677 color: var(--kng-v3-primary-hover);
678 }
679
680 .kng-v3-btn--accent {
681 background: linear-gradient(135deg, #bf5af2 0%, #8944c6 100%);
682 color: #fff;
683 font-weight: 500;
684 }
685
686 .kng-v3-btn--accent:hover {
687 background: linear-gradient(135deg, #c96ef5 0%, #9a55d3 100%);
688 color: #fff;
689 transform: scale(1.02);
690 box-shadow: 0 4px 16px rgba(191, 90, 242, 0.3);
691 }
692
693 .kng-v3-btn--sm {
694 padding: 10px 18px;
695 font-size: 14px;
696 }
697
698 .kng-v3-btn svg {
699 width: 18px;
700 height: 18px;
701 }
702
703 /* ============================================
704 Form Elements
705 ============================================ */
706
707 .kng-v3-input,
708 .kng-v3-select,
709 .kng-v3-textarea {
710 width: 100%;
711 padding: 10px 14px;
712 font-size: 14px;
713 font-family: var(--kng-v3-font);
714 color: var(--kng-v3-text);
715 background-color: var(--kng-v3-bg);
716 border: 1px solid transparent;
717 border-radius: 10px;
718 transition: border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background-color 0.2s ease;
719 outline: none;
720 -webkit-appearance: none;
721 appearance: none;
722 }
723
724 .kng-cc-admin input[type="text"],
725 .kng-cc-admin input[type="number"],
726 .kng-cc-admin input[type="url"],
727 .kng-cc-admin input[type="email"],
728 .kng-cc-admin select,
729 .kng-cc-admin textarea {
730 border: 1px solid transparent;
731 background-color: var(--kng-v3-bg);
732 border-radius: 10px;
733 box-shadow: none;
734 }
735
736 /* Ensure select dropdowns work properly */
737 .kng-v3-select {
738 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");
739 background-repeat: no-repeat;
740 background-position: right 16px center;
741 padding-right: 40px;
742 }
743
744 .kng-v3-input:hover,
745 .kng-v3-select:hover,
746 .kng-v3-textarea:hover {
747 border-color: var(--kng-v3-border-hover);
748 }
749
750 .kng-v3-input:focus,
751 .kng-v3-select:focus,
752 .kng-v3-textarea:focus {
753 border-color: var(--kng-v3-primary);
754 box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.08);
755 }
756
757 .kng-cc-admin input[type="text"]:focus,
758 .kng-cc-admin input[type="number"]:focus,
759 .kng-cc-admin input[type="url"]:focus,
760 .kng-cc-admin input[type="email"]:focus,
761 .kng-cc-admin select:focus,
762 .kng-cc-admin textarea:focus {
763 border-color: var(--kng-v3-primary);
764 box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.08);
765 outline: none;
766 }
767
768 .kng-v3-label {
769 display: block;
770 font-size: 14px;
771 font-weight: 500;
772 color: var(--kng-v3-text);
773 margin-bottom: 8px;
774 }
775
776 .kng-v3-field {
777 margin-bottom: 20px;
778 }
779
780 .kng-v3-field:last-child {
781 margin-bottom: 0;
782 }
783
784 .kng-v3-field-help {
785 font-size: 13px;
786 color: var(--kng-v3-muted);
787 margin-top: 8px;
788 line-height: 1.5;
789 }
790
791 /* Small input modifier */
792 .kng-v3-input--small {
793 width: 120px;
794 }
795
796 /* Toggle */
797 .kng-v3-toggle-wrap {
798 position: relative;
799 display: inline-flex;
800 align-items: center;
801 cursor: pointer;
802 }
803
804 .kng-v3-toggle-wrap input {
805 position: absolute;
806 opacity: 0;
807 width: 0;
808 height: 0;
809 }
810
811 .kng-v3-toggle-slider {
812 position: relative;
813 width: 44px;
814 height: 24px;
815 background: var(--kng-v3-border);
816 border-radius: 12px;
817 transition: background-color 0.3s ease;
818 flex-shrink: 0;
819 }
820
821 .kng-v3-toggle-slider::after {
822 content: '';
823 position: absolute;
824 top: 2px;
825 left: 2px;
826 width: 20px;
827 height: 20px;
828 background: #ffffff;
829 border-radius: 50%;
830 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
831 transition: transform 0.3s ease;
832 }
833
834 .kng-v3-toggle-wrap input:checked + .kng-v3-toggle-slider {
835 background: var(--kng-v3-success);
836 }
837
838 .kng-v3-toggle-wrap input:checked + .kng-v3-toggle-slider::after {
839 transform: translateX(20px);
840 }
841
842 .kng-v3-toggle-row {
843 display: flex;
844 align-items: center;
845 gap: 12px;
846 }
847
848 .kng-v3-toggle-text {
849 font-size: 14px;
850 color: var(--kng-v3-text);
851 }
852
853 /* ============================================
854 Toolbar
855 ============================================ */
856
857 .kng-cc-toolbar {
858 display: flex;
859 align-items: center;
860 justify-content: space-between;
861 padding: 14px 24px;
862 background: var(--kng-v3-card-bg);
863 border-radius: 12px;
864 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
865 border: 1px solid var(--kng-v3-divider);
866 margin-bottom: 16px;
867 }
868
869 .kng-cc-toolbar-left,
870 .kng-cc-toolbar-right {
871 display: flex;
872 align-items: center;
873 gap: 16px;
874 }
875
876 .kng-cc-bulk-actions {
877 display: flex;
878 align-items: center;
879 gap: 12px;
880 }
881
882 .kng-cc-bulk-select {
883 width: auto;
884 min-width: 150px;
885 }
886
887 .kng-cc-filters {
888 display: flex;
889 gap: 12px;
890 }
891
892 .kng-cc-filter {
893 width: auto;
894 min-width: 120px;
895 }
896
897 .kng-cc-search {
898 position: relative;
899 }
900
901 .kng-cc-search svg {
902 position: absolute;
903 left: 12px;
904 top: 50%;
905 transform: translateY(-50%);
906 color: var(--kng-v3-muted);
907 }
908
909 .kng-cc-search input {
910 padding-left: 40px;
911 width: 240px;
912 }
913
914 /* Checkbox */
915 .kng-cc-checkbox-wrap {
916 position: relative;
917 display: inline-flex;
918 align-items: center;
919 cursor: pointer;
920 }
921
922 .kng-cc-checkbox-wrap input {
923 position: absolute;
924 opacity: 0;
925 width: 0;
926 height: 0;
927 }
928
929 .kng-cc-checkbox-custom {
930 width: 18px;
931 height: 18px;
932 background: var(--kng-v3-card-bg);
933 border: 2px solid var(--kng-v3-border);
934 border-radius: 4px;
935 transition: background-color 0.2s ease, border-color 0.2s ease;
936 position: relative;
937 }
938
939 .kng-cc-checkbox-wrap input:checked + .kng-cc-checkbox-custom {
940 background: var(--kng-v3-primary);
941 border-color: var(--kng-v3-primary);
942 }
943
944 .kng-cc-checkbox-wrap input:checked + .kng-cc-checkbox-custom::after {
945 content: '';
946 position: absolute;
947 top: 2px;
948 left: 5px;
949 width: 4px;
950 height: 8px;
951 border: solid #ffffff;
952 border-width: 0 2px 2px 0;
953 transform: rotate(45deg);
954 }
955
956 /* ============================================
957 Table
958 ============================================ */
959
960 .kng-cc-list {
961 padding: 0;
962 }
963
964 .kng-cc-table-wrap {
965 background: var(--kng-v3-card-bg);
966 border-radius: 16px;
967 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
968 overflow: hidden;
969 border: 1px solid var(--kng-v3-divider);
970 }
971
972 .kng-cc-table {
973 width: 100%;
974 border-collapse: collapse;
975 }
976
977 .kng-cc-table thead {
978 background: rgba(0, 0, 0, 0.02);
979 }
980
981 .kng-cc-table th {
982 padding: 14px 20px;
983 font-size: 11px;
984 font-weight: 600;
985 text-transform: uppercase;
986 letter-spacing: 0.08em;
987 color: var(--kng-v3-muted);
988 text-align: left;
989 border-bottom: 1px solid var(--kng-v3-border);
990 white-space: nowrap;
991 }
992
993 .kng-cc-table td {
994 padding: 16px 20px;
995 font-size: 14px;
996 color: var(--kng-v3-text);
997 border-bottom: 1px solid var(--kng-v3-divider);
998 vertical-align: middle;
999 }
1000
1001 .kng-cc-table tr:last-child td {
1002 border-bottom: none;
1003 }
1004
1005 .kng-cc-table tbody tr {
1006 transition: background-color 0.2s ease;
1007 }
1008
1009 .kng-cc-table tbody tr:hover {
1010 background: rgba(0, 113, 227, 0.04);
1011 }
1012
1013 .kng-cc-col-check {
1014 width: 40px;
1015 }
1016
1017 .kng-cc-col-name {
1018 min-width: 200px;
1019 }
1020
1021 .kng-cc-col-type,
1022 .kng-cc-col-location,
1023 .kng-cc-col-scope,
1024 .kng-cc-col-priority,
1025 .kng-cc-col-status {
1026 width: 100px;
1027 }
1028
1029 .kng-cc-col-modified {
1030 width: 120px;
1031 }
1032
1033 .kng-cc-col-actions {
1034 width: 140px;
1035 }
1036
1037 .kng-cc-name-link {
1038 font-weight: 500;
1039 color: var(--kng-v3-text);
1040 text-decoration: none;
1041 transition: color 0.2s ease;
1042 }
1043
1044 .kng-cc-name-link:hover {
1045 color: var(--kng-v3-primary);
1046 }
1047
1048 .kng-cc-has-notes {
1049 display: inline-flex;
1050 margin-left: 8px;
1051 color: var(--kng-v3-muted);
1052 }
1053
1054 /* Type badges */
1055 .kng-cc-type-badge {
1056 display: inline-flex;
1057 align-items: center;
1058 justify-content: center;
1059 padding: 4px 10px;
1060 font-size: 11px;
1061 font-weight: 600;
1062 border-radius: 6px;
1063 text-transform: uppercase;
1064 letter-spacing: 0.06em;
1065 min-width: 44px;
1066 }
1067
1068 .kng-cc-type-css {
1069 background: rgba(0, 113, 227, 0.12);
1070 color: var(--kng-v3-primary);
1071 }
1072
1073 .kng-cc-type-js {
1074 background: rgba(255, 149, 0, 0.12);
1075 color: #d97706;
1076 }
1077
1078 .kng-cc-type-html {
1079 background: rgba(191, 90, 242, 0.12);
1080 color: #a855f7;
1081 }
1082
1083 .kng-cc-location-badge {
1084 font-size: 13px;
1085 color: var(--kng-v3-muted);
1086 }
1087
1088 /* Scope badges */
1089 .kng-cc-scope-badge {
1090 display: inline-flex;
1091 align-items: center;
1092 padding: 4px 8px;
1093 font-size: 11px;
1094 font-weight: 600;
1095 border-radius: 6px;
1096 }
1097
1098 .kng-cc-scope-global {
1099 background: rgba(48, 209, 88, 0.1);
1100 color: #28a745;
1101 }
1102
1103 .kng-cc-scope-include {
1104 background: rgba(0, 113, 227, 0.1);
1105 color: #0071e3;
1106 }
1107
1108 .kng-cc-scope-exclude {
1109 background: rgba(255, 69, 58, 0.1);
1110 color: #ff453a;
1111 }
1112
1113 .kng-cc-rules-count {
1114 font-size: 11px;
1115 color: var(--kng-v3-muted);
1116 margin-left: 6px;
1117 }
1118
1119 .kng-cc-date {
1120 font-size: 13px;
1121 color: var(--kng-v3-muted);
1122 }
1123
1124 /* Actions */
1125 .kng-cc-actions {
1126 display: flex;
1127 gap: 6px;
1128 align-items: center;
1129 }
1130
1131 .kng-cc-action-btn {
1132 display: inline-flex;
1133 align-items: center;
1134 justify-content: center;
1135 width: 32px;
1136 height: 32px;
1137 border: none;
1138 border-radius: 8px;
1139 background: transparent;
1140 color: var(--kng-v3-muted);
1141 cursor: pointer;
1142 transition: background-color 0.2s ease, color 0.2s ease;
1143 text-decoration: none;
1144 gap: 6px;
1145 font-size: 13px;
1146 font-weight: 500;
1147 font-family: var(--kng-v3-font);
1148 white-space: nowrap;
1149 }
1150
1151 .kng-cc-action-btn:hover {
1152 background: var(--kng-v3-bg);
1153 color: var(--kng-v3-text);
1154 }
1155
1156 .kng-cc-action-btn--edit {
1157 width: auto;
1158 padding: 6px 14px;
1159 background: var(--kng-v3-primary);
1160 color: #fff;
1161 border-radius: 8px;
1162 font-weight: 500;
1163 }
1164
1165 .kng-cc-action-btn--edit:hover {
1166 background: var(--kng-v3-primary-hover);
1167 color: #fff;
1168 box-shadow: 0 2px 8px rgba(0, 113, 227, 0.25);
1169 }
1170
1171 .kng-cc-action-btn--danger:hover {
1172 background: rgba(255, 69, 58, 0.1);
1173 color: var(--kng-v3-danger);
1174 }
1175
1176 /* ============================================
1177 Empty State
1178 ============================================ */
1179
1180 .kng-cc-empty {
1181 text-align: center;
1182 padding: 80px 40px;
1183 background: var(--kng-v3-card-bg);
1184 border-radius: 20px;
1185 border: 2px dashed var(--kng-v3-border);
1186 box-shadow: none;
1187 }
1188
1189 .kng-cc-empty-icon {
1190 display: inline-flex;
1191 align-items: center;
1192 justify-content: center;
1193 width: 80px;
1194 height: 80px;
1195 background: var(--kng-v3-bg);
1196 border-radius: 50%;
1197 color: var(--kng-v3-muted);
1198 margin-bottom: 24px;
1199 }
1200
1201 .kng-cc-empty-icon svg {
1202 width: 40px;
1203 height: 40px;
1204 }
1205
1206 .kng-cc-empty h3 {
1207 font-size: 20px;
1208 font-weight: 600;
1209 color: var(--kng-v3-text);
1210 margin: 0 0 8px;
1211 }
1212
1213 .kng-cc-empty p {
1214 font-size: 14px;
1215 color: var(--kng-v3-muted);
1216 margin: 0 0 28px;
1217 max-width: 400px;
1218 margin-left: auto;
1219 margin-right: auto;
1220 line-height: 1.6;
1221 }
1222
1223 /* ============================================
1224 Pro Upsell
1225 ============================================ */
1226
1227 .kng-cc-pro-upsell {
1228 margin: 24px 0 0;
1229 }
1230
1231 .kng-cc-pro-upsell-content {
1232 display: flex;
1233 align-items: center;
1234 gap: 20px;
1235 padding: 20px 28px;
1236 background: linear-gradient(135deg, rgba(191, 90, 242, 0.06) 0%, rgba(0, 113, 227, 0.06) 100%);
1237 border: 1px solid rgba(191, 90, 242, 0.12);
1238 border-radius: 16px;
1239 transition: border-color 0.2s ease, box-shadow 0.2s ease;
1240 }
1241
1242 .kng-cc-pro-upsell-content:hover {
1243 border-color: rgba(191, 90, 242, 0.24);
1244 box-shadow: 0 4px 20px rgba(191, 90, 242, 0.08);
1245 }
1246
1247 .kng-cc-pro-upsell-icon {
1248 display: flex;
1249 align-items: center;
1250 justify-content: center;
1251 width: 48px;
1252 height: 48px;
1253 background: rgba(191, 90, 242, 0.1);
1254 border-radius: 12px;
1255 color: var(--kng-v3-accent);
1256 flex-shrink: 0;
1257 }
1258
1259 .kng-cc-pro-upsell-text {
1260 flex: 1;
1261 }
1262
1263 .kng-cc-pro-upsell-text h4 {
1264 font-size: 15px;
1265 font-weight: 600;
1266 color: var(--kng-v3-text);
1267 margin: 0 0 4px;
1268 }
1269
1270 .kng-cc-pro-upsell-text p {
1271 font-size: 13px;
1272 color: var(--kng-v3-muted);
1273 margin: 0;
1274 line-height: 1.5;
1275 }
1276
1277 /* ============================================
1278 Pro Upgrade Popup
1279 ============================================ */
1280
1281 .kng-cc-pro-popup-overlay {
1282 position: fixed;
1283 inset: 0;
1284 z-index: 100000;
1285 background: rgba(0, 0, 0, 0.5);
1286 display: flex;
1287 align-items: center;
1288 justify-content: center;
1289 backdrop-filter: blur(4px);
1290 -webkit-backdrop-filter: blur(4px);
1291 animation: kngPopupFadeIn 0.2s ease;
1292 }
1293
1294 @keyframes kngPopupFadeIn {
1295 from { opacity: 0; }
1296 to { opacity: 1; }
1297 }
1298
1299 @keyframes kngPopupSlideIn {
1300 from { opacity: 0; transform: scale(0.95) translateY(10px); }
1301 to { opacity: 1; transform: scale(1) translateY(0); }
1302 }
1303
1304 .kng-cc-pro-popup {
1305 position: relative;
1306 width: 420px;
1307 max-width: 90vw;
1308 background: var(--kng-v3-card-bg, #ffffff);
1309 border-radius: 20px;
1310 padding: 40px 32px 32px;
1311 text-align: center;
1312 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.2);
1313 animation: kngPopupSlideIn 0.3s ease;
1314 }
1315
1316 .kng-cc-pro-popup-close {
1317 position: absolute;
1318 top: 12px;
1319 right: 12px;
1320 width: 32px;
1321 height: 32px;
1322 border: none;
1323 background: transparent;
1324 font-size: 20px;
1325 color: var(--kng-v3-muted, #86868b);
1326 cursor: pointer;
1327 border-radius: 8px;
1328 display: flex;
1329 align-items: center;
1330 justify-content: center;
1331 transition: background-color 0.15s ease;
1332 }
1333
1334 .kng-cc-pro-popup-close:hover {
1335 background: var(--kng-v3-bg, #f5f5f7);
1336 }
1337
1338 .kng-cc-pro-popup-icon {
1339 display: inline-flex;
1340 align-items: center;
1341 justify-content: center;
1342 width: 56px;
1343 height: 56px;
1344 background: linear-gradient(135deg, rgba(191, 90, 242, 0.15), rgba(0, 113, 227, 0.15));
1345 border-radius: 50%;
1346 color: var(--kng-v3-accent, #bf5af2);
1347 margin-bottom: 16px;
1348 }
1349
1350 .kng-cc-pro-popup h3 {
1351 font-size: 20px;
1352 font-weight: 700;
1353 color: var(--kng-v3-text, #1d1d1f);
1354 margin: 0 0 8px;
1355 }
1356
1357 .kng-cc-pro-popup p {
1358 font-size: 14px;
1359 line-height: 1.5;
1360 color: var(--kng-v3-muted, #86868b);
1361 margin: 0 0 20px;
1362 }
1363
1364 .kng-cc-pro-popup-features {
1365 display: grid;
1366 grid-template-columns: 1fr 1fr;
1367 gap: 10px 16px;
1368 text-align: left;
1369 margin-bottom: 24px;
1370 padding: 16px 20px;
1371 background: var(--kng-v3-bg, #f5f5f7);
1372 border-radius: 12px;
1373 border: 1px solid var(--kng-v3-divider, rgba(0,0,0,0.06));
1374 }
1375
1376 .kng-cc-pro-popup-features span {
1377 font-size: 13px;
1378 color: var(--kng-v3-text, #1d1d1f);
1379 font-weight: 500;
1380 line-height: 1.4;
1381 }
1382
1383 .kng-cc-pro-popup-actions {
1384 display: flex;
1385 flex-direction: column;
1386 gap: 8px;
1387 }
1388
1389 .kng-cc-pro-popup-actions .kng-v3-btn--accent {
1390 justify-content: center;
1391 }
1392
1393 .kng-cc-pro-popup-actions .kng-v3-btn--ghost {
1394 width: 100%;
1395 justify-content: center;
1396 }
1397
1398 /* ============================================
1399 Editor Page
1400 ============================================ */
1401
1402 .kng-cc-editor-page {
1403 padding-top: 0;
1404 padding-left: 0;
1405 padding-right: 0;
1406 }
1407
1408 .kng-cc-editor-page .kng-cc-header {
1409 background: transparent;
1410 padding: 16px 0;
1411 margin-bottom: 24px;
1412 flex-direction: row;
1413 align-items: center;
1414 }
1415
1416 .kng-cc-editor-page .kng-cc-header-left {
1417 flex-direction: column;
1418 align-items: flex-start;
1419 gap: 0;
1420 }
1421
1422 .kng-cc-editor-page .kng-cc-title {
1423 font-size: 24px;
1424 background: none;
1425 -webkit-text-fill-color: var(--kng-v3-text);
1426 color: var(--kng-v3-text);
1427 }
1428
1429 /* Sub-pages with back button (settings, import/export) */
1430 .kng-cc-header-left:has(> .kng-cc-back-btn) {
1431 flex-direction: column;
1432 align-items: flex-start;
1433 gap: 4px;
1434 }
1435
1436 .kng-cc-header-left:has(> .kng-cc-back-btn) .kng-cc-title {
1437 font-size: 24px;
1438 background: none;
1439 -webkit-text-fill-color: var(--kng-v3-text);
1440 color: var(--kng-v3-text);
1441 }
1442
1443 .kng-cc-header-left:has(> .kng-cc-back-btn) .kng-cc-subtitle {
1444 font-size: 15px;
1445 }
1446
1447 .kng-cc-editor-form {
1448 display: contents;
1449 }
1450
1451 .kng-cc-editor-layout {
1452 display: grid;
1453 grid-template-columns: 1fr 360px;
1454 gap: 24px;
1455 }
1456
1457 .kng-cc-editor-main {
1458 display: flex;
1459 flex-direction: column;
1460 gap: 20px;
1461 }
1462
1463 .kng-cc-editor-sidebar {
1464 display: flex;
1465 flex-direction: column;
1466 gap: 20px;
1467 }
1468
1469 /* Title Section */
1470 .kng-cc-title-section {
1471 background: var(--kng-v3-card-bg);
1472 border-radius: 16px;
1473 padding: 4px;
1474 border: 1px solid var(--kng-v3-divider);
1475 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
1476 }
1477
1478 .kng-cc-title-input {
1479 width: 100%;
1480 padding: 16px 20px;
1481 font-size: 22px;
1482 font-weight: 600;
1483 font-family: var(--kng-v3-font);
1484 color: var(--kng-v3-text);
1485 background: transparent;
1486 border: none;
1487 outline: none;
1488 }
1489
1490 .kng-cc-title-input::placeholder {
1491 color: var(--kng-v3-muted);
1492 }
1493
1494 /* Code Section */
1495 .kng-cc-code-section {
1496 background: var(--kng-v3-card-bg);
1497 border-radius: 16px;
1498 border: 1px solid var(--kng-v3-divider);
1499 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
1500 overflow: hidden;
1501 flex: 1;
1502 display: flex;
1503 flex-direction: column;
1504 }
1505
1506 .kng-cc-code-header {
1507 display: flex;
1508 align-items: center;
1509 justify-content: space-between;
1510 padding: 10px 16px;
1511 border-bottom: 1px solid var(--kng-v3-divider);
1512 }
1513
1514 .kng-cc-type-tabs {
1515 display: flex;
1516 gap: 4px;
1517 background: var(--kng-v3-bg);
1518 padding: 4px;
1519 border-radius: 10px;
1520 }
1521
1522 .kng-cc-type-tab {
1523 display: flex;
1524 align-items: center;
1525 gap: 8px;
1526 padding: 8px 16px;
1527 font-size: 13px;
1528 font-weight: 500;
1529 font-family: var(--kng-v3-font);
1530 color: var(--kng-v3-muted);
1531 background: transparent;
1532 border: none;
1533 border-radius: 8px;
1534 cursor: pointer;
1535 transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
1536 }
1537
1538 .kng-cc-type-tab:hover:not(:disabled) {
1539 color: var(--kng-v3-text);
1540 background: rgba(0, 0, 0, 0.03);
1541 }
1542
1543 .kng-cc-type-tab.is-active {
1544 background: var(--kng-v3-card-bg);
1545 color: var(--kng-v3-text);
1546 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
1547 font-weight: 600;
1548 }
1549
1550 .kng-cc-type-tab:disabled {
1551 cursor: not-allowed;
1552 }
1553
1554 .kng-cc-type-tab.is-pro {
1555 position: relative;
1556 }
1557
1558 .kng-cc-pro-badge {
1559 display: inline-flex;
1560 padding: 2px 6px;
1561 font-size: 9px;
1562 font-weight: 700;
1563 color: var(--kng-v3-accent);
1564 background: rgba(191, 90, 242, 0.15);
1565 border-radius: 4px;
1566 margin-left: 4px;
1567 }
1568
1569 .kng-cc-pro-badge-sm {
1570 display: inline-flex;
1571 padding: 1px 5px;
1572 font-size: 9px;
1573 font-weight: 700;
1574 color: var(--kng-v3-accent);
1575 background: rgba(191, 90, 242, 0.15);
1576 border-radius: 4px;
1577 margin-top: 4px;
1578 }
1579
1580 .kng-cc-code-actions {
1581 display: flex;
1582 gap: 4px;
1583 }
1584
1585 .kng-cc-code-action {
1586 display: flex;
1587 align-items: center;
1588 justify-content: center;
1589 width: 32px;
1590 height: 32px;
1591 background: transparent;
1592 border: none;
1593 border-radius: 6px;
1594 color: var(--kng-v3-muted);
1595 cursor: pointer;
1596 transition: background-color 0.2s ease, color 0.2s ease;
1597 }
1598
1599 .kng-cc-code-action:hover {
1600 background: var(--kng-v3-bg);
1601 color: var(--kng-v3-text);
1602 }
1603
1604 .kng-cc-code-editor-wrap {
1605 flex: 1;
1606 min-height: 400px;
1607 position: relative;
1608 }
1609
1610 .kng-cc-code-textarea {
1611 width: 100%;
1612 min-height: 400px;
1613 padding: 16px;
1614 font-family: var(--kng-v3-mono);
1615 font-size: 13px;
1616 line-height: 1.6;
1617 color: var(--kng-v3-text);
1618 background: var(--kng-v3-card-bg);
1619 border: none;
1620 resize: vertical;
1621 outline: none;
1622 }
1623
1624 /* ============================================
1625 CodeMirror Enhanced Styles
1626 ============================================ */
1627
1628 .kng-cc-code-editor-wrap .CodeMirror {
1629 height: 100%;
1630 min-height: 400px;
1631 font-family: var(--kng-v3-mono);
1632 font-size: 14px;
1633 line-height: 1.7;
1634 border-radius: 0;
1635 background: var(--kng-v3-card-bg);
1636 color: var(--kng-v3-text);
1637 }
1638
1639 .kng-cc-code-editor-wrap .CodeMirror-gutters {
1640 background: var(--kng-v3-bg-secondary);
1641 border-right: 1px solid var(--kng-v3-divider);
1642 padding-right: 4px;
1643 }
1644
1645 .kng-cc-code-editor-wrap .CodeMirror-linenumber {
1646 color: var(--kng-v3-muted);
1647 padding: 0 8px;
1648 min-width: 40px;
1649 text-align: right;
1650 }
1651
1652 .kng-cc-code-editor-wrap .CodeMirror-cursor {
1653 border-left-color: var(--kng-v3-primary);
1654 border-left-width: 2px;
1655 }
1656
1657 .kng-cc-code-editor-wrap .CodeMirror-selected {
1658 background: rgba(0, 113, 227, 0.2) !important;
1659 }
1660
1661 .kng-cc-code-editor-wrap .CodeMirror-focused .CodeMirror-selected {
1662 background: rgba(0, 113, 227, 0.25) !important;
1663 }
1664
1665 .kng-cc-code-editor-wrap .CodeMirror-line::selection,
1666 .kng-cc-code-editor-wrap .CodeMirror-line > span::selection,
1667 .kng-cc-code-editor-wrap .CodeMirror-line > span > span::selection {
1668 background: rgba(0, 113, 227, 0.25);
1669 }
1670
1671 .kng-cc-code-editor-wrap .CodeMirror-line::-moz-selection,
1672 .kng-cc-code-editor-wrap .CodeMirror-line > span::-moz-selection,
1673 .kng-cc-code-editor-wrap .CodeMirror-line > span > span::-moz-selection {
1674 background: rgba(0, 113, 227, 0.25);
1675 }
1676
1677 /* Syntax highlighting improvements */
1678 .kng-cc-code-editor-wrap .cm-s-default .cm-keyword {
1679 color: #c678dd;
1680 font-weight: 500;
1681 }
1682
1683 .kng-cc-code-editor-wrap .cm-s-default .cm-atom {
1684 color: #d19a66;
1685 }
1686
1687 .kng-cc-code-editor-wrap .cm-s-default .cm-number {
1688 color: #d19a66;
1689 }
1690
1691 .kng-cc-code-editor-wrap .cm-s-default .cm-def {
1692 color: #61afef;
1693 }
1694
1695 .kng-cc-code-editor-wrap .cm-s-default .cm-variable {
1696 color: var(--kng-v3-text);
1697 }
1698
1699 .kng-cc-code-editor-wrap .cm-s-default .cm-variable-2 {
1700 color: #56b6c2;
1701 }
1702
1703 .kng-cc-code-editor-wrap .cm-s-default .cm-variable-3 {
1704 color: #c678dd;
1705 }
1706
1707 .kng-cc-code-editor-wrap .cm-s-default .cm-property {
1708 color: #e06c75;
1709 }
1710
1711 .kng-cc-code-editor-wrap .cm-s-default .cm-operator {
1712 color: #56b6c2;
1713 }
1714
1715 .kng-cc-code-editor-wrap .cm-s-default .cm-comment {
1716 color: var(--kng-v3-muted);
1717 font-style: italic;
1718 }
1719
1720 .kng-cc-code-editor-wrap .cm-s-default .cm-string {
1721 color: #98c379;
1722 }
1723
1724 .kng-cc-code-editor-wrap .cm-s-default .cm-string-2 {
1725 color: #98c379;
1726 }
1727
1728 .kng-cc-code-editor-wrap .cm-s-default .cm-meta {
1729 color: #61afef;
1730 }
1731
1732 .kng-cc-code-editor-wrap .cm-s-default .cm-qualifier {
1733 color: #d19a66;
1734 }
1735
1736 .kng-cc-code-editor-wrap .cm-s-default .cm-builtin {
1737 color: #e5c07b;
1738 }
1739
1740 .kng-cc-code-editor-wrap .cm-s-default .cm-tag {
1741 color: #e06c75;
1742 }
1743
1744 .kng-cc-code-editor-wrap .cm-s-default .cm-attribute {
1745 color: #d19a66;
1746 }
1747
1748 .kng-cc-code-editor-wrap .cm-s-default .cm-header {
1749 color: #e06c75;
1750 font-weight: 600;
1751 }
1752
1753 .kng-cc-code-editor-wrap .cm-s-default .cm-hr {
1754 color: var(--kng-v3-divider);
1755 }
1756
1757 .kng-cc-code-editor-wrap .cm-s-default .cm-link {
1758 color: #61afef;
1759 text-decoration: underline;
1760 }
1761
1762 /* Active line highlight */
1763 .kng-cc-code-editor-wrap .CodeMirror-activeline-background {
1764 background: var(--kng-v3-primary-light);
1765 }
1766
1767 /* Matching brackets */
1768 .kng-cc-code-editor-wrap .CodeMirror-matchingbracket {
1769 color: var(--kng-v3-success) !important;
1770 background: var(--kng-v3-success-light);
1771 border-radius: 2px;
1772 }
1773
1774 .kng-cc-code-editor-wrap .CodeMirror-nonmatchingbracket {
1775 color: var(--kng-v3-danger) !important;
1776 background: var(--kng-v3-danger-light);
1777 border-radius: 2px;
1778 }
1779
1780 /* Fullscreen mode */
1781 .kng-cc-code-section.is-fullscreen {
1782 position: fixed;
1783 top: 0;
1784 left: 0;
1785 right: 0;
1786 bottom: 0;
1787 z-index: 99999;
1788 border-radius: 0;
1789 }
1790
1791 .kng-cc-code-section.is-fullscreen .kng-cc-code-editor-wrap {
1792 min-height: calc(100vh - 60px);
1793 }
1794
1795 /* Notes Section */
1796 .kng-cc-notes-section {
1797 background: var(--kng-v3-card-bg);
1798 border-radius: 16px;
1799 border: 1px solid var(--kng-v3-divider);
1800 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
1801 overflow: hidden;
1802 }
1803
1804 .kng-cc-section-header {
1805 display: flex;
1806 align-items: center;
1807 justify-content: space-between;
1808 padding: 16px 20px;
1809 cursor: pointer;
1810 transition: background-color 0.2s ease;
1811 }
1812
1813 .kng-cc-section-header:hover {
1814 background: var(--kng-v3-bg);
1815 }
1816
1817 .kng-cc-section-title {
1818 display: flex;
1819 align-items: center;
1820 gap: 10px;
1821 font-size: 14px;
1822 font-weight: 600;
1823 color: var(--kng-v3-text);
1824 margin: 0;
1825 }
1826
1827 .kng-cc-collapse-icon {
1828 color: var(--kng-v3-muted);
1829 transition: transform 0.2s ease;
1830 }
1831
1832 .kng-cc-section-header.is-collapsed .kng-cc-collapse-icon {
1833 transform: rotate(-90deg);
1834 }
1835
1836 .kng-cc-section-content {
1837 padding: 0 20px 20px;
1838 }
1839
1840 /* ============================================
1841 Sidebar Sections
1842 ============================================ */
1843
1844 .kng-cc-sidebar-section {
1845 background: var(--kng-v3-card-bg);
1846 border-radius: 16px;
1847 border: 1px solid var(--kng-v3-divider);
1848 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
1849 }
1850
1851 .kng-cc-sidebar-title {
1852 display: flex;
1853 align-items: center;
1854 gap: 10px;
1855 padding: 16px 20px;
1856 font-size: 14px;
1857 font-weight: 600;
1858 color: var(--kng-v3-text);
1859 margin: 0;
1860 border-bottom: 1px solid var(--kng-v3-divider);
1861 background: transparent;
1862 }
1863
1864 .kng-cc-sidebar-title svg {
1865 color: var(--kng-v3-muted);
1866 width: 18px;
1867 height: 18px;
1868 }
1869
1870 .kng-cc-sidebar-content {
1871 padding: 16px 20px;
1872 }
1873
1874 /* Status wrap in header */
1875 .kng-cc-status-wrap {
1876 display: flex;
1877 align-items: center;
1878 gap: 10px;
1879 padding: 8px 16px;
1880 background: var(--kng-v3-bg);
1881 border-radius: 100px;
1882 }
1883
1884 .kng-cc-status-label {
1885 font-size: 13px;
1886 font-weight: 500;
1887 color: var(--kng-v3-muted);
1888 }
1889
1890 /* Scope Radio Cards */
1891 .kng-cc-scope-options {
1892 display: grid;
1893 grid-template-columns: repeat(3, 1fr);
1894 gap: 8px;
1895 }
1896
1897 .kng-cc-radio-card {
1898 cursor: pointer;
1899 }
1900
1901 .kng-cc-radio-card input {
1902 position: absolute;
1903 opacity: 0;
1904 width: 0;
1905 height: 0;
1906 opacity: 0 !important;
1907 }
1908
1909 .kng-cc-radio-card-content {
1910 display: flex;
1911 flex-direction: column;
1912 align-items: center;
1913 gap: 8px;
1914 padding: 16px 12px;
1915 background: var(--kng-v3-bg);
1916 border: 2px solid transparent;
1917 border-radius: 12px;
1918 transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
1919 }
1920
1921 .kng-cc-radio-card:hover .kng-cc-radio-card-content {
1922 border-color: var(--kng-v3-border);
1923 }
1924
1925 .kng-cc-radio-card.is-selected .kng-cc-radio-card-content,
1926 .kng-cc-radio-card input:checked + .kng-cc-radio-card-content {
1927 background: rgba(0, 113, 227, 0.06);
1928 border-color: var(--kng-v3-primary);
1929 box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.08);
1930 }
1931
1932 .kng-cc-radio-icon {
1933 color: var(--kng-v3-muted);
1934 }
1935
1936 .kng-cc-radio-card.is-selected .kng-cc-radio-icon,
1937 .kng-cc-radio-card input:checked + .kng-cc-radio-card-content .kng-cc-radio-icon {
1938 color: var(--kng-v3-primary);
1939 }
1940
1941 .kng-cc-radio-text {
1942 font-size: 12px;
1943 font-weight: 500;
1944 color: var(--kng-v3-text);
1945 text-align: center;
1946 }
1947
1948 /* Rules Builder */
1949 .kng-cc-rules-builder {
1950 margin-top: 16px;
1951 padding-top: 16px;
1952 border-top: 1px solid var(--kng-v3-divider);
1953 }
1954
1955 .kng-cc-rules-list {
1956 display: flex;
1957 flex-direction: column;
1958 gap: 12px;
1959 margin-bottom: 12px;
1960 }
1961
1962 .kng-cc-rule {
1963 background: var(--kng-v3-bg);
1964 border-radius: 12px;
1965 position: relative;
1966 }
1967
1968 .kng-cc-rule-header {
1969 display: flex;
1970 align-items: center;
1971 gap: 8px;
1972 padding: 12px;
1973 }
1974
1975 .kng-cc-rule-type {
1976 flex: 1;
1977 }
1978
1979 .kng-cc-rule-remove {
1980 display: flex;
1981 align-items: center;
1982 justify-content: center;
1983 width: 28px;
1984 height: 28px;
1985 background: transparent;
1986 border: none;
1987 border-radius: 4px;
1988 color: var(--kng-v3-muted);
1989 cursor: pointer;
1990 transition: background-color 0.2s ease, color 0.2s ease;
1991 }
1992
1993 .kng-cc-rule-remove:hover {
1994 background: rgba(255, 69, 58, 0.1);
1995 color: var(--kng-v3-danger);
1996 }
1997
1998 .kng-cc-rule-value {
1999 padding: 0 12px 12px;
2000 }
2001
2002 .kng-cc-rule-search-wrap {
2003 position: relative;
2004 }
2005
2006 .kng-cc-rule-search-results {
2007 position: absolute;
2008 top: 100%;
2009 left: 0;
2010 right: 0;
2011 z-index: 200;
2012 background: var(--kng-v3-card-bg);
2013 border: 1px solid var(--kng-v3-border);
2014 border-radius: 10px;
2015 margin-top: 4px;
2016 max-height: 200px;
2017 overflow-y: auto;
2018 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
2019 }
2020
2021 .kng-cc-search-result {
2022 padding: 10px 14px;
2023 font-size: 14px;
2024 color: var(--kng-v3-text);
2025 cursor: pointer;
2026 transition: background-color 0.15s ease;
2027 }
2028
2029 .kng-cc-search-result:hover {
2030 background: var(--kng-v3-primary-light);
2031 }
2032
2033 .kng-cc-search-result:first-child {
2034 border-radius: 10px 10px 0 0;
2035 }
2036
2037 .kng-cc-search-result:last-child {
2038 border-radius: 0 0 10px 10px;
2039 }
2040
2041 .kng-cc-search-result:only-child {
2042 border-radius: 10px;
2043 }
2044
2045 .kng-cc-search-no-results {
2046 padding: 10px 14px;
2047 font-size: 13px;
2048 color: var(--kng-v3-muted);
2049 }
2050
2051 .kng-cc-add-rule-btn {
2052 width: 100%;
2053 }
2054
2055 /* Pro field indicator */
2056 .is-pro-field {
2057 pointer-events: none;
2058 }
2059
2060 /* Pro Box */
2061 .kng-cc-pro-section {
2062 background: linear-gradient(135deg, rgba(191, 90, 242, 0.04) 0%, rgba(0, 113, 227, 0.04) 100%);
2063 border: 1px solid rgba(191, 90, 242, 0.12);
2064 }
2065
2066 .kng-cc-pro-box {
2067 padding: 28px 24px;
2068 text-align: center;
2069 }
2070
2071 .kng-cc-pro-box-icon {
2072 display: inline-flex;
2073 align-items: center;
2074 justify-content: center;
2075 width: 52px;
2076 height: 52px;
2077 background: linear-gradient(135deg, rgba(191, 90, 242, 0.12), rgba(0, 113, 227, 0.12));
2078 border-radius: 16px;
2079 color: var(--kng-v3-accent);
2080 margin-bottom: 16px;
2081 }
2082
2083 .kng-cc-pro-box h4 {
2084 font-size: 16px;
2085 font-weight: 600;
2086 color: var(--kng-v3-text);
2087 margin: 0 0 12px;
2088 }
2089
2090 .kng-cc-pro-features-list {
2091 list-style: none;
2092 padding: 0;
2093 margin: 0 0 20px;
2094 text-align: left;
2095 }
2096
2097 .kng-cc-pro-features-list li {
2098 position: relative;
2099 padding: 6px 0 6px 28px;
2100 font-size: 13px;
2101 color: var(--kng-v3-text);
2102 line-height: 1.5;
2103 }
2104
2105 .kng-cc-pro-features-list li::before {
2106 content: '';
2107 position: absolute;
2108 left: 4px;
2109 color: var(--kng-v3-success);
2110 font-weight: 700;
2111 font-size: 14px;
2112 }
2113
2114 /* ============================================
2115 Settings Page
2116 ============================================ */
2117
2118 .kng-cc-settings-content {
2119 max-width: 720px;
2120 margin-top: 32px;
2121 }
2122
2123 .kng-cc-settings-form {
2124 display: flex;
2125 flex-direction: column;
2126 gap: 24px;
2127 }
2128
2129 .kng-cc-settings-card {
2130 background: var(--kng-v3-card-bg);
2131 border-radius: 16px;
2132 border: 1px solid var(--kng-v3-divider);
2133 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
2134 overflow: hidden;
2135 transition: box-shadow 0.2s ease;
2136 }
2137
2138 .kng-cc-settings-card:hover {
2139 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
2140 }
2141
2142 .kng-cc-settings-card-header {
2143 padding: 16px 24px;
2144 background: transparent;
2145 border-bottom: 1px solid var(--kng-v3-divider);
2146 }
2147
2148 .kng-cc-settings-card-header h3 {
2149 display: flex;
2150 align-items: center;
2151 gap: 12px;
2152 font-size: 17px;
2153 font-weight: 600;
2154 color: var(--kng-v3-text);
2155 margin: 0;
2156 }
2157
2158 .kng-cc-settings-card-header svg {
2159 color: var(--kng-v3-muted);
2160 width: 20px;
2161 height: 20px;
2162 }
2163
2164 .kng-cc-settings-card-content {
2165 padding: 24px 28px;
2166 }
2167
2168 .kng-cc-settings-row {
2169 display: grid;
2170 grid-template-columns: 1fr 1fr;
2171 gap: 20px;
2172 margin-bottom: 20px;
2173 }
2174
2175 .kng-cc-settings-row:last-child {
2176 margin-bottom: 0;
2177 }
2178
2179 .kng-cc-settings-actions {
2180 padding-top: 8px;
2181 }
2182
2183 /* ============================================
2184 Import/Export Page
2185 ============================================ */
2186
2187 .kng-cc-import-export-content {
2188 max-width: 1000px;
2189 margin-top: 32px;
2190 }
2191
2192 .kng-cc-import-export-grid {
2193 display: grid;
2194 grid-template-columns: 1fr 1fr;
2195 gap: 24px;
2196 }
2197
2198 .kng-cc-ie-card {
2199 background: var(--kng-v3-card-bg);
2200 border-radius: 20px;
2201 border: 1px solid var(--kng-v3-divider);
2202 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
2203 padding: 40px 32px;
2204 text-align: center;
2205 transition: box-shadow 0.3s ease, transform 0.3s ease;
2206 }
2207
2208 .kng-cc-ie-card:hover {
2209 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
2210 transform: translateY(-2px);
2211 }
2212
2213 .kng-cc-ie-card-icon {
2214 display: inline-flex;
2215 align-items: center;
2216 justify-content: center;
2217 width: 72px;
2218 height: 72px;
2219 background: var(--kng-v3-bg);
2220 border-radius: 20px;
2221 color: var(--kng-v3-muted);
2222 margin-bottom: 20px;
2223 }
2224
2225 .kng-cc-ie-card-icon svg {
2226 width: 36px;
2227 height: 36px;
2228 stroke-width: 1.5;
2229 }
2230
2231 .kng-cc-ie-card h3 {
2232 font-size: 20px;
2233 font-weight: 600;
2234 color: var(--kng-v3-text);
2235 margin: 0 0 12px;
2236 }
2237
2238 .kng-cc-ie-card p {
2239 font-size: 15px;
2240 color: var(--kng-v3-muted);
2241 margin: 0 0 24px;
2242 line-height: 1.6;
2243 }
2244
2245 .kng-cc-ie-options {
2246 margin-bottom: 24px;
2247 text-align: left;
2248 }
2249
2250 /* Dropzone */
2251 .kng-cc-import-dropzone {
2252 border: 2px dashed var(--kng-v3-border);
2253 border-radius: 16px;
2254 padding: 32px;
2255 margin-bottom: 20px;
2256 cursor: pointer;
2257 transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
2258 }
2259
2260 .kng-cc-import-dropzone:hover,
2261 .kng-cc-import-dropzone.is-dragover {
2262 border-color: var(--kng-v3-primary);
2263 background: rgba(0, 113, 227, 0.04);
2264 box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.06);
2265 }
2266
2267 .kng-cc-dropzone-content {
2268 display: flex;
2269 flex-direction: column;
2270 align-items: center;
2271 gap: 12px;
2272 color: var(--kng-v3-muted);
2273 }
2274
2275 .kng-cc-dropzone-file {
2276 display: flex;
2277 align-items: center;
2278 justify-content: center;
2279 gap: 12px;
2280 }
2281
2282 .kng-cc-file-name {
2283 font-size: 14px;
2284 font-weight: 500;
2285 color: var(--kng-v3-text);
2286 }
2287
2288 .kng-cc-file-remove {
2289 display: flex;
2290 align-items: center;
2291 justify-content: center;
2292 width: 28px;
2293 height: 28px;
2294 background: transparent;
2295 border: none;
2296 border-radius: 4px;
2297 color: var(--kng-v3-muted);
2298 cursor: pointer;
2299 transition: background-color 0.2s ease, color 0.2s ease;
2300 }
2301
2302 .kng-cc-file-remove:hover {
2303 background: rgba(255, 69, 58, 0.1);
2304 color: var(--kng-v3-danger);
2305 }
2306
2307 /* Import Results */
2308 .kng-cc-import-results {
2309 margin-top: 24px;
2310 }
2311
2312 .kng-cc-import-results-content {
2313 background: var(--kng-v3-card-bg);
2314 border-radius: 16px;
2315 border: 1px solid var(--kng-v3-divider);
2316 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
2317 padding: 32px;
2318 text-align: center;
2319 }
2320
2321 .kng-cc-import-results h4 {
2322 font-size: 16px;
2323 font-weight: 600;
2324 color: var(--kng-v3-text);
2325 margin: 0 0 20px;
2326 }
2327
2328 .kng-cc-import-stats {
2329 display: flex;
2330 justify-content: center;
2331 gap: 48px;
2332 margin-bottom: 24px;
2333 }
2334
2335 .kng-cc-import-stat {
2336 text-align: center;
2337 }
2338
2339 .kng-cc-import-stat-value {
2340 display: block;
2341 font-size: 32px;
2342 font-weight: 600;
2343 color: var(--kng-v3-text);
2344 line-height: 1;
2345 }
2346
2347 .kng-cc-import-stat-label {
2348 font-size: 13px;
2349 color: var(--kng-v3-muted);
2350 margin-top: 4px;
2351 }
2352
2353 /* ============================================
2354 Spinner Animation
2355 ============================================ */
2356
2357 .kng-cc-spinner {
2358 animation: kng-cc-spin 1s linear infinite;
2359 }
2360
2361 @keyframes kng-cc-spin {
2362 from {
2363 transform: rotate(0deg);
2364 }
2365 to {
2366 transform: rotate(360deg);
2367 }
2368 }
2369
2370 /* ============================================
2371 Save Button States
2372 ============================================ */
2373
2374 #kng-cc-save-btn {
2375 transition: background-color 0.4s cubic-bezier(0.25, 1, 0.5, 1),
2376 transform 0.3s cubic-bezier(0.25, 1, 0.5, 1),
2377 box-shadow 0.4s cubic-bezier(0.25, 1, 0.5, 1);
2378 }
2379
2380 .kng-cc-btn-icons {
2381 position: relative;
2382 display: inline-flex;
2383 align-items: center;
2384 justify-content: center;
2385 width: 18px;
2386 height: 18px;
2387 flex-shrink: 0;
2388 }
2389
2390 .kng-cc-btn-icon {
2391 position: absolute;
2392 top: 0;
2393 left: 0;
2394 transition: opacity 0.3s ease, transform 0.3s ease;
2395 }
2396
2397 .kng-cc-save-icon {
2398 opacity: 1;
2399 transform: scale(1);
2400 }
2401
2402 .kng-cc-spinner {
2403 opacity: 0;
2404 transform: scale(0.6);
2405 }
2406
2407 .kng-cc-check-icon {
2408 opacity: 0;
2409 transform: scale(0.6);
2410 }
2411
2412 /* Saving state */
2413 #kng-cc-save-btn.is-saving .kng-cc-save-icon {
2414 opacity: 0;
2415 transform: scale(0.6);
2416 }
2417
2418 #kng-cc-save-btn.is-saving .kng-cc-spinner {
2419 opacity: 1;
2420 transform: scale(1);
2421 }
2422
2423 /* Saved (success) state */
2424 #kng-cc-save-btn.is-saved {
2425 background-color: #30d158;
2426 }
2427
2428 #kng-cc-save-btn.is-saved:hover {
2429 background-color: #30d158;
2430 transform: none;
2431 }
2432
2433 #kng-cc-save-btn.is-saved .kng-cc-save-icon {
2434 opacity: 0;
2435 transform: scale(0.6);
2436 }
2437
2438 #kng-cc-save-btn.is-saved .kng-cc-spinner {
2439 opacity: 0;
2440 transform: scale(0.6);
2441 }
2442
2443 #kng-cc-save-btn.is-saved .kng-cc-check-icon {
2444 opacity: 1;
2445 transform: scale(1);
2446 }
2447
2448 /* ============================================
2449 Responsive
2450 ============================================ */
2451
2452 @media (max-width: 1200px) {
2453 .kng-cc-editor-layout {
2454 grid-template-columns: 1fr;
2455 }
2456
2457 .kng-cc-editor-sidebar {
2458 order: -1;
2459 }
2460 }
2461
2462 @media (max-width: 960px) {
2463 .kng-cc-title {
2464 font-size: 36px;
2465 }
2466 }
2467
2468 @media (max-width: 900px) {
2469 .kng-cc-toolbar {
2470 flex-direction: column;
2471 gap: 16px;
2472 }
2473
2474 .kng-cc-toolbar-left,
2475 .kng-cc-toolbar-right {
2476 width: 100%;
2477 flex-wrap: wrap;
2478 }
2479
2480 .kng-cc-import-export-grid {
2481 grid-template-columns: 1fr;
2482 }
2483 }
2484
2485 @media (max-width: 782px) {
2486 .kng-cc-header {
2487 flex-direction: column;
2488 text-align: center;
2489 }
2490
2491 .kng-cc-header-left {
2492 flex-direction: column;
2493 align-items: center;
2494 }
2495
2496 .kng-cc-header-right {
2497 justify-content: center;
2498 }
2499 }
2500
2501 @media (max-width: 600px) {
2502 .kng-cc-header {
2503 padding: 12px 16px;
2504 }
2505
2506 .kng-cc-header-right {
2507 flex-wrap: wrap;
2508 }
2509
2510 .kng-cc-list,
2511 .kng-cc-settings-content,
2512 .kng-cc-import-export-content,
2513 .kng-cc-editor-layout {
2514 padding: 16px;
2515 }
2516
2517 .kng-cc-scope-options {
2518 grid-template-columns: 1fr;
2519 }
2520 }
2521