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

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