PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.76
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.76
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 / Image_Optimizer / assets / admin.css

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

1,384 lines 26.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * King Addons - Image Optimizer Styles
3 * Premium Apple-inspired design with dark/light theme support.
4 *
5 * @package King_Addons
6 */
7
8 /* ===== IMAGE OPTIMIZER SPECIFIC STYLES ===== */
9
10 /* Wrapper override */
11 .ka-img-opt-wrap {
12 max-width: 1200px;
13 }
14
15 /* ===== NAVIGATION TABS ===== */
16 .ka-img-opt-tabs {
17 display: flex;
18 justify-content: center;
19 background: rgba(255, 255, 255, 0.72);
20 backdrop-filter: saturate(180%) blur(20px);
21 -webkit-backdrop-filter: saturate(180%) blur(20px);
22 padding: 6px;
23 border-radius: 980px;
24 width: fit-content;
25 margin: 0 auto 40px;
26 box-shadow: 0 4px 30px rgba(0, 0, 0, 0.08);
27 border: 1px solid rgba(0, 0, 0, 0.04);
28 }
29
30 .ka-img-opt-tab {
31 padding: 12px 28px;
32 font-size: 15px;
33 font-weight: 500;
34 color: #86868b;
35 background: transparent;
36 border: none;
37 border-radius: 980px;
38 cursor: pointer;
39 transition: all 0.3s ease;
40 }
41
42 .ka-img-opt-tab:hover {
43 color: #1d1d1f;
44 }
45
46 .ka-img-opt-tab.active {
47 background: #fff;
48 color: #1d1d1f;
49 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
50 }
51
52 .ka-img-opt-tab-content .ka-row-label {
53 width: 250px;
54 }
55
56 /* ===== STATISTICS CARDS ===== */
57 .ka-img-opt-stats {
58 display: grid;
59 grid-template-columns: repeat(3, 1fr);
60 gap: 20px;
61 margin-bottom: 40px;
62 }
63
64 .ka-img-opt-stat-card {
65 background: #fff;
66 border-radius: 20px;
67 padding: 24px;
68 display: flex;
69 align-items: center;
70 gap: 16px;
71 box-shadow: 0 2px 20px rgba(0, 0, 0, 0.04);
72 transition: all 0.3s ease;
73 }
74
75 .ka-img-opt-stat-card:hover {
76 transform: translateY(-4px);
77 box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08);
78 }
79
80 .ka-img-opt-stat-icon {
81 width: 56px;
82 height: 56px;
83 border-radius: 16px;
84 display: flex;
85 align-items: center;
86 justify-content: center;
87 flex-shrink: 0;
88 }
89
90 .ka-img-opt-stat-icon .dashicons {
91 font-size: 28px;
92 width: 28px;
93 height: 28px;
94 color: #fff;
95 }
96
97 .ka-img-opt-stat-icon.purple {
98 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
99 }
100
101 .ka-img-opt-stat-icon.green {
102 background: linear-gradient(135deg, #30d158 0%, #34c759 100%);
103 }
104
105 .ka-img-opt-stat-icon.orange {
106 background: linear-gradient(135deg, #ff9f0a 0%, #ff9500 100%);
107 }
108
109 .ka-img-opt-stat-icon.blue {
110 background: linear-gradient(135deg, #0a84ff 0%, #007aff 100%);
111 }
112
113 .ka-img-opt-stat-icon.red {
114 background: linear-gradient(135deg, #ff453a 0%, #ff3b30 100%);
115 }
116
117 .ka-img-opt-stat-icon.grey {
118 background: #8e8e93;
119 }
120
121 .ka-img-opt-stat-content {
122 display: flex;
123 flex-direction: column;
124 }
125
126 .ka-img-opt-stat-value {
127 font-size: 28px;
128 font-weight: 700;
129 color: #1d1d1f;
130 line-height: 1.2;
131 }
132
133 .ka-img-opt-stat-label {
134 font-size: 14px;
135 color: #86868b;
136 margin-top: 2px;
137 }
138
139 /* ===== TAB CONTENT ===== */
140 .ka-img-opt-tab-content {
141 display: none;
142 }
143
144 .ka-img-opt-tab-content.active {
145 display: block;
146 }
147
148 /* ===== RESUME BANNER ===== */
149 .ka-img-opt-resume-banner {
150 position: relative;
151 display: flex;
152 align-items: center;
153 justify-content: space-between;
154 background: #1d1d1f;
155 border-radius: 16px;
156 padding: 24px 70px 24px 28px;
157 margin-bottom: 28px;
158 color: #fff;
159 }
160
161 .ka-img-opt-resume-close {
162 position: absolute;
163 top: 16px;
164 right: 16px;
165 background: rgba(255, 255, 255, 0.08);
166 border: none;
167 border-radius: 50%;
168 width: 26px;
169 height: 26px;
170 display: flex;
171 align-items: center;
172 justify-content: center;
173 cursor: pointer;
174 color: rgba(255, 255, 255, 0.5);
175 transition: all 0.15s ease;
176 }
177
178 .ka-img-opt-resume-close .dashicons {
179 font-size: 16px;
180 width: 16px;
181 height: 16px;
182 }
183
184 .ka-img-opt-resume-close:hover {
185 background: rgba(255, 255, 255, 0.12);
186 color: rgba(255, 255, 255, 0.8);
187 }
188
189 .ka-img-opt-resume-body {
190 display: flex;
191 align-items: center;
192 gap: 16px;
193 }
194
195 .ka-img-opt-resume-icon {
196 width: 44px;
197 height: 44px;
198 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
199 border-radius: 12px;
200 display: flex;
201 align-items: center;
202 justify-content: center;
203 flex-shrink: 0;
204 }
205
206 .ka-img-opt-resume-icon .dashicons {
207 font-size: 22px;
208 width: 22px;
209 height: 22px;
210 color: #fff;
211 }
212
213 .ka-img-opt-resume-content h3 {
214 margin: 0 0 4px;
215 font-size: 16px;
216 font-weight: 600;
217 color: #fff;
218 }
219
220 .ka-img-opt-resume-content p {
221 margin: 0 0 2px;
222 font-size: 13px;
223 color: rgba(255, 255, 255, 0.6);
224 }
225
226 .ka-img-opt-resume-progress {
227 font-size: 13px;
228 color: rgba(255, 255, 255, 0.45);
229 }
230
231 .ka-img-opt-resume-actions {
232 display: flex;
233 gap: 8px;
234 }
235
236 .ka-img-opt-resume-actions .ka-btn {
237 padding: 10px 18px;
238 font-size: 13px;
239 font-weight: 600;
240 background: #fff;
241 color: #1d1d1f;
242 border: none;
243 border-radius: 8px;
244 cursor: pointer;
245 transition: all 0.15s ease;
246 }
247
248 .ka-img-opt-resume-actions .ka-btn:hover {
249 background: #f5f5f7;
250 color: #1d1d1f;
251 }
252
253 .ka-img-opt-resume-actions .ka-btn-secondary {
254 background: rgba(255, 255, 255, 0.1);
255 color: #fff;
256 }
257
258 .ka-img-opt-resume-actions .ka-btn-secondary:hover {
259 background: rgba(255, 255, 255, 0.15);
260 }
261
262 .ka-img-opt-resume-actions .ka-btn-secondary:hover {
263 background: rgba(255, 255, 255, 0.28);
264 }
265
266 .ka-img-opt-stat-card.large-card {
267 grid-column: span 2;
268 }
269
270 /* ===== OPTION GROUPS ===== */
271 .ka-img-opt-option-group {
272 margin-bottom: 32px;
273 }
274
275 .ka-img-opt-option-label {
276 display: block;
277 font-size: 15px;
278 font-weight: 600;
279 color: #1d1d1f;
280 margin-bottom: 12px;
281 }
282
283 /* ===== QUALITY PRESETS ===== */
284 .ka-img-opt-quality-presets {
285 display: flex;
286 flex-wrap: wrap;
287 gap: 8px;
288 margin-bottom: 16px;
289 }
290
291 .ka-img-opt-preset-btn {
292 padding: 8px 16px;
293 background: #f5f5f7;
294 border: 2px solid transparent;
295 border-radius: 980px;
296 font-size: 13px;
297 font-weight: 500;
298 color: #86868b;
299 cursor: pointer;
300 transition: all 0.3s ease;
301 }
302
303 .ka-img-opt-preset-btn:hover {
304 background: #ebebed;
305 color: #1d1d1f;
306 }
307
308 .ka-img-opt-preset-btn.active {
309 background: #1d1d1f;
310 color: #fff;
311 }
312
313 /* ===== SLIDER ===== */
314 .ka-img-opt-slider-wrap {
315 display: flex;
316 align-items: center;
317 gap: 16px;
318 max-width: 400px;
319
320 /* Used to paint the slider fill via CSS vars (set by JS). */
321 --ka-slider-pct: 0%;
322 --ka-slider-fill-color: #5e5ce6;
323 --ka-slider-track-color: #e5e5e7;
324 }
325
326 .ka-img-opt-slider {
327 flex: 1;
328 -webkit-appearance: none;
329 appearance: none;
330 height: 6px;
331 background: linear-gradient(
332 to right,
333 var(--ka-slider-fill-color) 0%,
334 var(--ka-slider-fill-color) var(--ka-slider-pct),
335 var(--ka-slider-track-color) var(--ka-slider-pct),
336 var(--ka-slider-track-color) 100%
337 );
338 border-radius: 3px;
339 outline: none;
340 }
341
342 /* Firefox */
343 .ka-img-opt-slider::-moz-range-track {
344 height: 6px;
345 background: var(--ka-slider-track-color);
346 border-radius: 3px;
347 }
348
349 .ka-img-opt-slider::-moz-range-progress {
350 height: 6px;
351 background: var(--ka-slider-fill-color);
352 border-radius: 3px;
353 }
354
355 .ka-img-opt-slider::-moz-range-thumb {
356 width: 24px;
357 height: 24px;
358 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
359 border: 0;
360 border-radius: 50%;
361 cursor: pointer;
362 box-shadow: 0 2px 8px rgba(94, 92, 230, 0.4);
363 transition: transform 0.2s ease;
364 }
365
366 .ka-img-opt-slider::-webkit-slider-thumb {
367 -webkit-appearance: none;
368 appearance: none;
369 width: 24px;
370 height: 24px;
371 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
372 border-radius: 50%;
373 cursor: pointer;
374 box-shadow: 0 2px 8px rgba(94, 92, 230, 0.4);
375 transition: transform 0.2s ease;
376 }
377
378 .ka-img-opt-slider::-webkit-slider-thumb:hover {
379 transform: scale(1.1);
380 }
381
382 .ka-img-opt-slider-wrap output {
383 min-width: 50px;
384 text-align: center;
385 font-size: 15px;
386 font-weight: 600;
387 color: var(--ka-slider-fill-color, #5e5ce6);
388 }
389
390 /* ===== ADVANCED SETTINGS ===== */
391 .ka-img-opt-advanced-toggle {
392 display: inline-flex;
393 align-items: center;
394 gap: 8px;
395 padding: 12px 20px;
396 background: #f5f5f7;
397 border-radius: 12px;
398 font-size: 14px;
399 font-weight: 500;
400 color: #86868b;
401 cursor: pointer;
402 transition: all 0.3s ease;
403 margin-bottom: 20px;
404 }
405
406 .ka-img-opt-advanced-toggle:hover {
407 background: #ebebed;
408 color: #1d1d1f;
409 }
410
411 .ka-img-opt-advanced-toggle .dashicons {
412 font-size: 18px;
413 width: 18px;
414 height: 18px;
415 }
416
417 .ka-img-opt-advanced-content {
418 padding: 24px;
419 background: #f5f5f7;
420 border-radius: 16px;
421 margin-bottom: 24px;
422 }
423
424 .ka-img-opt-resize-options {
425 margin-top: 12px;
426 padding: 12px 16px;
427 background: #fff;
428 border-radius: 8px;
429 }
430
431 .ka-img-opt-resize-options input {
432 width: 80px;
433 padding: 6px 10px;
434 border: 1px solid #e5e5e7;
435 border-radius: 6px;
436 margin: 0 8px;
437 }
438
439 /* ===== ACTIONS ===== */
440 .ka-img-opt-actions {
441 display: flex;
442 gap: 12px;
443 margin-top: 24px;
444 padding-top: 24px;
445 border-top: 1px solid rgba(0, 0, 0, 0.06);
446 }
447
448 .ka-btn-lg {
449 padding: 16px 32px;
450 font-size: 16px;
451 }
452
453 .ka-btn-lg .dashicons {
454 font-size: 20px;
455 width: 20px;
456 height: 20px;
457 }
458
459 /* ===== PROGRESS SECTION ===== */
460 .ka-img-opt-progress-bar {
461 height: 8px;
462 background: #e5e5e7;
463 border-radius: 4px;
464 overflow: hidden;
465 margin-bottom: 12px;
466 }
467
468 .ka-img-opt-progress-fill {
469 height: 100%;
470 background: linear-gradient(90deg, #5e5ce6 0%, #bf5af2 100%);
471 border-radius: 4px;
472 transition: width 0.3s ease;
473 }
474
475 .ka-img-opt-progress-info {
476 display: flex;
477 justify-content: space-between;
478 font-size: 14px;
479 color: #86868b;
480 margin-bottom: 24px;
481 }
482
483 /* Optimization Progress title icon states */
484 .ka-img-opt-progress .ka-card-header {
485 display: flex;
486 align-items: center;
487 gap: 10px;
488 }
489
490 .ka-img-opt-title-spinner.spinner {
491 float: none;
492 margin: 0;
493 }
494
495 /* Force CSS spinner (no GIF) for the progress title */
496 #ka-opt-progress-spinner.spinner {
497 width: 18px;
498 height: 18px;
499 background: none !important;
500 border: 2px solid rgba(134, 134, 139, 0.35);
501 border-top-color: #5e5ce6;
502 border-radius: 50%;
503 box-sizing: border-box;
504 opacity: 0;
505 }
506
507 #ka-opt-progress-spinner.spinner.is-active {
508 opacity: 1;
509 animation: kaSpin 0.8s linear infinite;
510 }
511
512 #ka-opt-progress-spinner.spinner.is-active.is-paused {
513 animation-play-state: paused;
514 }
515
516 @keyframes kaSpin {
517 from { transform: rotate(0deg); }
518 to { transform: rotate(360deg); }
519 }
520
521 /* CSS spinner for buttons (restore, sync, etc.) */
522 .ka-btn-spinner {
523 display: inline-block;
524 width: 14px;
525 height: 14px;
526 border: 2px solid rgba(0, 0, 0, 0.15);
527 border-top-color: currentColor;
528 border-radius: 50%;
529 animation: kaSpin 0.7s linear infinite;
530 vertical-align: middle;
531 margin-right: 6px;
532 }
533
534 .ka-img-opt-title-check,
535 .ka-img-opt-results .ka-card-header .dashicons-yes-alt {
536 color: #34c759;
537 }
538
539 .ka-pro-badge {
540 display: inline-flex;
541 align-items: center;
542 justify-content: center;
543 height: 18px;
544 padding: 0 8px;
545 margin-left: 8px;
546 border-radius: 999px;
547 font-size: 11px;
548 font-weight: 700;
549 letter-spacing: 0.04em;
550 text-transform: uppercase;
551 color: #fff;
552 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
553 line-height: 1;
554 }
555
556 .ka-row.ka-pro-locked .ka-toggle {
557 cursor: not-allowed;
558 opacity: 0.75;
559 }
560
561 .ka-row.ka-pro-locked input[disabled] + .ka-toggle-slider {
562 filter: grayscale(0.2);
563 }
564
565 .ka-img-opt-quota {
566 display: inline-flex;
567 align-items: center;
568 gap: 12px;
569 margin-left: 12px;
570 padding: 8px 10px;
571 border-radius: 12px;
572 background: rgba(255, 255, 255, 0.06);
573 border: 1px solid rgba(255, 255, 255, 0.08);
574 }
575
576 .ka-img-opt-quota-text {
577 display: flex;
578 flex-direction: column;
579 line-height: 1.1;
580 }
581
582 .ka-img-opt-quota-title {
583 font-size: 12px;
584 font-weight: 700;
585 color: rgba(255, 255, 255, 0.92);
586 }
587
588 .ka-img-opt-quota-sub {
589 font-size: 12px;
590 color: rgba(255, 255, 255, 0.72);
591 margin-top: 5px;
592 }
593
594 body:not(.ka-v3-dark) .ka-img-opt-quota {
595 background: rgba(0, 0, 0, 0.04);
596 border-color: rgba(0, 0, 0, 0.08);
597 }
598
599 body:not(.ka-v3-dark) .ka-img-opt-quota-title {
600 color: rgba(0, 0, 0, 0.85);
601 }
602
603 body:not(.ka-v3-dark) .ka-img-opt-quota-sub {
604 color: rgba(0, 0, 0, 0.65);
605 }
606
607 /* PRO / Free limits modal */
608 .ka-img-opt-modal {
609 position: fixed;
610 inset: 0;
611 z-index: 100000;
612 }
613
614 .ka-img-opt-modal__overlay {
615 position: absolute;
616 inset: 0;
617 background: rgba(0, 0, 0, 0.55);
618 backdrop-filter: blur(6px);
619 }
620
621 .ka-img-opt-modal__dialog {
622 position: relative;
623 width: min(560px, calc(100% - 32px));
624 margin: 8vh auto 0;
625 border-radius: 16px;
626 background: #1d1d1f;
627 border: 1px solid rgba(255, 255, 255, 0.10);
628 box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
629 padding: 18px;
630 }
631
632 .ka-img-opt-modal__head {
633 display: flex;
634 gap: 12px;
635 align-items: flex-start;
636 }
637
638 .ka-img-opt-modal__icon {
639 width: 40px;
640 height: 40px;
641 border-radius: 12px;
642 display: inline-flex;
643 align-items: center;
644 justify-content: center;
645 background: linear-gradient(135deg, #5e5ce6 0%, #bf5af2 100%);
646 color: #fff;
647 }
648
649 .ka-img-opt-modal__title {
650 font-size: 18px;
651 font-weight: 800;
652 color: rgba(255, 255, 255, 0.95);
653 }
654
655 .ka-img-opt-modal__sub {
656 margin-top: 4px;
657 font-size: 13px;
658 color: rgba(255, 255, 255, 0.72);
659 }
660
661 .ka-img-opt-modal__body {
662 margin-top: 14px;
663 }
664
665 .ka-img-opt-modal__quota {
666 display: flex;
667 align-items: center;
668 justify-content: space-between;
669 padding: 10px 12px;
670 border-radius: 12px;
671 background: rgba(255, 255, 255, 0.06);
672 border: 1px solid rgba(255, 255, 255, 0.08);
673 }
674
675 .ka-img-opt-modal__quota-k {
676 font-size: 13px;
677 color: rgba(255, 255, 255, 0.75);
678 }
679
680 .ka-img-opt-modal__quota-v {
681 font-size: 13px;
682 font-weight: 700;
683 color: rgba(255, 255, 255, 0.92);
684 }
685
686 .ka-img-opt-modal__list {
687 margin: 12px 0 0;
688 padding-left: 18px;
689 color: rgba(255, 255, 255, 0.78);
690 font-size: 13px;
691 }
692
693 .ka-img-opt-modal__actions {
694 margin-top: 16px;
695 display: flex;
696 gap: 10px;
697 align-items: center;
698 justify-content: flex-end;
699 }
700
701 body:not(.ka-v3-dark) .ka-img-opt-modal__dialog {
702 background: #ffffff;
703 border-color: rgba(0, 0, 0, 0.08);
704 box-shadow: 0 30px 80px rgba(0, 0, 0, 0.20);
705 }
706
707 body:not(.ka-v3-dark) .ka-img-opt-modal__title {
708 color: rgba(0, 0, 0, 0.9);
709 }
710
711 body:not(.ka-v3-dark) .ka-img-opt-modal__sub,
712 body:not(.ka-v3-dark) .ka-img-opt-modal__list,
713 body:not(.ka-v3-dark) .ka-img-opt-modal__quota-k {
714 color: rgba(0, 0, 0, 0.65);
715 }
716
717 body:not(.ka-v3-dark) .ka-img-opt-modal__quota {
718 background: rgba(0, 0, 0, 0.04);
719 border-color: rgba(0, 0, 0, 0.08);
720 }
721
722 body:not(.ka-v3-dark) .ka-img-opt-modal__quota-v {
723 color: rgba(0, 0, 0, 0.85);
724 }
725
726 #progress-percent {
727 font-weight: 600;
728 color: #5e5ce6;
729 }
730
731 .ka-img-opt-current-file {
732 display: flex;
733 align-items: center;
734 gap: 12px;
735 padding: 16px 20px;
736 background: #f5f5f7;
737 border-radius: 12px;
738 margin-bottom: 24px;
739 }
740
741 .ka-img-opt-current-file .dashicons {
742 color: #5e5ce6;
743 }
744
745 #current-filename {
746 font-size: 14px;
747 color: #1d1d1f;
748 }
749
750 /* ===== LIVE STATS ===== */
751 .ka-img-opt-live-stats {
752 display: grid;
753 grid-template-columns: repeat(4, 1fr);
754 gap: 16px;
755 margin-bottom: 24px;
756 }
757
758 /* ===== LIVE LIST (Bulk Progress) ===== */
759 .ka-img-opt-live-list-card {
760 margin-top: 18px;
761 padding: 16px;
762 border-radius: 16px;
763 background: #ffffff;
764 border: 1px solid #e5e5e7;
765 }
766
767 .ka-img-opt-live-list-head {
768 display: flex;
769 align-items: center;
770 justify-content: space-between;
771 gap: 12px;
772 flex-wrap: wrap;
773 margin-bottom: 12px;
774 }
775
776 .ka-img-opt-live-tabs {
777 display: inline-flex;
778 gap: 8px;
779 background: #f5f5f7;
780 border: 1px solid #e5e5e7;
781 border-radius: 999px;
782 padding: 4px;
783 }
784
785 .ka-img-opt-live-tab {
786 display: inline-flex;
787 align-items: center;
788 gap: 8px;
789 padding: 8px 12px;
790 border: 0;
791 border-radius: 999px;
792 background: transparent;
793 color: #1d1d1f;
794 font-weight: 600;
795 cursor: pointer;
796 }
797
798 .ka-img-opt-live-tab.active {
799 background: #ffffff;
800 box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
801 }
802
803 .ka-img-opt-live-tab-count {
804 min-width: 26px;
805 height: 22px;
806 padding: 0 8px;
807 display: inline-flex;
808 align-items: center;
809 justify-content: center;
810 border-radius: 999px;
811 background: rgba(94, 92, 230, 0.12);
812 color: #5e5ce6;
813 font-size: 12px;
814 font-weight: 700;
815 }
816
817 .ka-img-opt-live-filters {
818 display: inline-flex;
819 gap: 8px;
820 flex-wrap: wrap;
821 }
822
823 .ka-img-opt-live-filter {
824 padding: 8px 12px;
825 border-radius: 999px;
826 border: 1px solid #e5e5e7;
827 background: #ffffff;
828 color: #86868b;
829 font-weight: 600;
830 cursor: pointer;
831 }
832
833 .ka-img-opt-live-filter.active {
834 background: #1d1d1f;
835 border-color: #1d1d1f;
836 color: #ffffff;
837 }
838
839 .ka-img-opt-live-list {
840 max-height: 320px;
841 overflow: auto;
842 border-radius: 12px;
843 border: 1px solid #e5e5e7;
844 background: #ffffff;
845 }
846
847 .ka-img-opt-live-item {
848 display: flex;
849 align-items: center;
850 gap: 12px;
851 padding: 10px 12px;
852 border-bottom: 1px solid #f0f0f2;
853 }
854
855 .ka-img-opt-live-item:last-child {
856 border-bottom: 0;
857 }
858
859 .ka-img-opt-live-thumb {
860 width: 44px;
861 height: 44px;
862 border-radius: 12px;
863 background: #f5f5f7;
864 border: 1px solid #e5e5e7;
865 overflow: hidden;
866 flex: 0 0 auto;
867 display: flex;
868 align-items: center;
869 justify-content: center;
870 }
871
872 .ka-img-opt-live-thumb img {
873 width: 100%;
874 height: 100%;
875 object-fit: cover;
876 display: block;
877 }
878
879 .ka-img-opt-live-meta {
880 min-width: 0;
881 flex: 1;
882 }
883
884 .ka-img-opt-live-title {
885 font-weight: 700;
886 color: #1d1d1f;
887 white-space: nowrap;
888 overflow: hidden;
889 text-overflow: ellipsis;
890 }
891
892 .ka-img-opt-live-sub {
893 margin-top: 2px;
894 font-size: 12px;
895 color: #86868b;
896 white-space: nowrap;
897 overflow: hidden;
898 text-overflow: ellipsis;
899 }
900
901 .ka-img-opt-live-metrics {
902 font-size: 12px;
903 color: #6e6e73;
904 display: inline-flex;
905 align-items: center;
906 gap: 6px;
907 font-variant-numeric: tabular-nums;
908 padding: 6px 10px;
909 border-radius: 999px;
910 background: rgba(94, 92, 230, 0.08);
911 border: 1px solid rgba(94, 92, 230, 0.16);
912 }
913
914 .ka-img-opt-live-arrow,
915 .ka-img-opt-live-dot {
916 color: #86868b;
917 }
918
919 .ka-img-opt-live-size-old {
920 color: #6e6e73;
921 }
922
923 .ka-img-opt-live-size-new {
924 color: #1f8a3b;
925 font-weight: 700;
926 }
927
928 .ka-img-opt-live-pct {
929 font-weight: 700;
930 color: #5e5ce6;
931 }
932
933 .ka-img-opt-live-title-link {
934 color: inherit;
935 text-decoration: none;
936 }
937
938 .ka-img-opt-live-title-link:hover {
939 text-decoration: underline;
940 }
941
942 .ka-img-opt-live-right {
943 display: flex;
944 align-items: center;
945 gap: 10px;
946 flex: 0 0 auto;
947 }
948
949 .ka-img-opt-pill {
950 padding: 6px 10px;
951 border-radius: 999px;
952 font-size: 12px;
953 font-weight: 700;
954 border: 1px solid transparent;
955 }
956
957 .ka-img-opt-pill.success {
958 background: rgba(52, 199, 89, 0.12);
959 border-color: rgba(52, 199, 89, 0.22);
960 color: #1f8a3b;
961 }
962
963 .ka-img-opt-pill.skipped {
964 background: rgba(142, 142, 147, 0.12);
965 border-color: rgba(142, 142, 147, 0.25);
966 color: #6e6e73;
967 }
968
969 .ka-img-opt-pill.error {
970 background: rgba(255, 59, 48, 0.12);
971 border-color: rgba(255, 59, 48, 0.22);
972 color: #c62828;
973 }
974
975 .ka-img-opt-pill.current {
976 background: rgba(10, 132, 255, 0.12);
977 border-color: rgba(10, 132, 255, 0.22);
978 color: #0a84ff;
979 }
980
981 .ka-img-opt-pill.pending {
982 background: rgba(94, 92, 230, 0.10);
983 border-color: rgba(94, 92, 230, 0.18);
984 color: #5e5ce6;
985 }
986
987 .ka-img-opt-live-saved {
988 font-size: 12px;
989 font-weight: 700;
990 color: #5e5ce6;
991 }
992
993 .ka-img-opt-live-pagination {
994 display: flex;
995 justify-content: space-between;
996 align-items: center;
997 gap: 12px;
998 margin-top: 12px;
999 }
1000
1001 .ka-img-opt-live-page {
1002 color: #86868b;
1003 font-weight: 600;
1004 }
1005
1006 .ka-img-opt-live-stat {
1007 text-align: center;
1008 padding: 16px;
1009 background: #f5f5f7;
1010 border-radius: 12px;
1011 }
1012
1013 .ka-img-opt-live-stat-value {
1014 display: block;
1015 font-size: 24px;
1016 font-weight: 700;
1017 color: #1d1d1f;
1018 }
1019
1020 .ka-img-opt-live-stat-label {
1021 display: block;
1022 font-size: 12px;
1023 color: #86868b;
1024 margin-top: 4px;
1025 }
1026
1027 /* ===== CONTROLS ===== */
1028 .ka-img-opt-controls {
1029 display: flex;
1030 justify-content: center;
1031 gap: 12px;
1032 margin-top: 12px;
1033 }
1034
1035 /* ===== RESULTS ===== */
1036 .ka-img-opt-results-summary {
1037 display: grid;
1038 grid-template-columns: repeat(3, 1fr);
1039 gap: 24px;
1040 margin-bottom: 32px;
1041 }
1042
1043 .ka-img-opt-result-item {
1044 text-align: center;
1045 padding: 32px;
1046 background: #f5f5f7;
1047 border-radius: 20px;
1048 }
1049
1050 .ka-img-opt-result-icon {
1051 display: inline-block;
1052 width: 44px;
1053 height: 44px;
1054 font-size: 44px;
1055 line-height: 44px;
1056 margin-bottom: 12px;
1057 color: #86868b;
1058 }
1059
1060 .ka-img-opt-result-item.success .ka-img-opt-result-icon {
1061 color: #34c759;
1062 }
1063
1064 .ka-img-opt-result-item.saved .ka-img-opt-result-icon {
1065 color: #5e5ce6;
1066 }
1067
1068 .ka-img-opt-result-item.percent .ka-img-opt-result-icon {
1069 color: #ff9500;
1070 }
1071
1072 .ka-img-opt-result-value {
1073 display: block;
1074 font-size: 32px;
1075 font-weight: 700;
1076 color: #1d1d1f;
1077 margin-bottom: 8px;
1078 }
1079
1080 .ka-img-opt-result-label {
1081 font-size: 14px;
1082 color: #86868b;
1083 }
1084
1085 .ka-img-opt-result-item.success .ka-img-opt-result-value {
1086 color: #34c759;
1087 }
1088
1089 .ka-img-opt-result-item.saved .ka-img-opt-result-value {
1090 color: #5e5ce6;
1091 }
1092
1093 .ka-img-opt-result-item.percent .ka-img-opt-result-value {
1094 color: #ff9500;
1095 }
1096
1097 /* ===== FORMAT BREAKDOWN ===== */
1098 .ka-img-opt-format-list {
1099 display: flex;
1100 flex-direction: column;
1101 gap: 16px;
1102 }
1103
1104 .ka-img-opt-format-item {
1105 display: flex;
1106 flex-direction: column;
1107 gap: 8px;
1108 }
1109
1110 .ka-img-opt-format-info {
1111 display: flex;
1112 justify-content: space-between;
1113 font-size: 14px;
1114 }
1115
1116 .ka-img-opt-format-name {
1117 font-weight: 600;
1118 color: #1d1d1f;
1119 }
1120
1121 .ka-img-opt-format-count {
1122 color: #86868b;
1123 }
1124
1125 .ka-img-opt-format-bar {
1126 height: 8px;
1127 background: #e5e5e7;
1128 border-radius: 4px;
1129 overflow: hidden;
1130 }
1131
1132 .ka-img-opt-format-bar-fill {
1133 height: 100%;
1134 background: linear-gradient(90deg, #5e5ce6 0%, #bf5af2 100%);
1135 border-radius: 4px;
1136 }
1137
1138 /* ===== RESTORE SECTION ===== */
1139 .ka-img-opt-restore-section {
1140 padding: 24px;
1141 background: #f5f5f7;
1142 border-radius: 16px;
1143 margin-bottom: 20px;
1144 }
1145
1146 .ka-img-opt-restore-section:last-child {
1147 margin-bottom: 0;
1148 }
1149
1150 .ka-img-opt-restore-section h3 {
1151 margin: 0 0 8px;
1152 font-size: 16px;
1153 font-weight: 600;
1154 color: #1d1d1f;
1155 }
1156
1157 .ka-img-opt-restore-section p {
1158 margin: 0 0 16px;
1159 font-size: 14px;
1160 color: #86868b;
1161 }
1162
1163 .ka-btn.danger {
1164 color: #ff3b30;
1165 border-color: #ff3b30;
1166 }
1167
1168 .ka-btn.danger:hover {
1169 background: rgba(255, 59, 48, 0.1);
1170 }
1171
1172 /* ===== DARK MODE ===== */
1173 body.ka-v3-dark .ka-img-opt-tabs {
1174 background: rgba(44, 44, 46, 0.72);
1175 border-color: rgba(255, 255, 255, 0.08);
1176 }
1177
1178 body.ka-v3-dark .ka-img-opt-tab {
1179 color: #98989d;
1180 }
1181
1182 body.ka-v3-dark .ka-img-opt-tab:hover {
1183 color: #f5f5f7;
1184 }
1185
1186 body.ka-v3-dark .ka-img-opt-tab.active {
1187 background: #3a3a3c;
1188 color: #f5f5f7;
1189 }
1190
1191 body.ka-v3-dark .ka-img-opt-stat-card {
1192 background: #1c1c1e;
1193 box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
1194 }
1195
1196 body.ka-v3-dark .ka-img-opt-stat-value {
1197 color: #f5f5f7;
1198 }
1199
1200 body.ka-v3-dark .ka-img-opt-option-label {
1201 color: #f5f5f7;
1202 }
1203
1204 body.ka-v3-dark .ka-img-opt-preset-btn {
1205 background: #2c2c2e;
1206 }
1207
1208 body.ka-v3-dark .ka-img-opt-preset-btn:hover {
1209 background: #3a3a3c;
1210 color: #f5f5f7;
1211 }
1212
1213 body.ka-v3-dark .ka-img-opt-preset-btn.active {
1214 background: #f5f5f7;
1215 color: #1d1d1f;
1216 }
1217
1218 body.ka-v3-dark .ka-img-opt-slider-wrap {
1219 --ka-slider-track-color: #3a3a3c;
1220 }
1221
1222 body.ka-v3-dark .ka-img-opt-advanced-toggle {
1223 background: #2c2c2e;
1224 color: #98989d;
1225 }
1226
1227 body.ka-v3-dark .ka-img-opt-advanced-toggle:hover {
1228 background: #3a3a3c;
1229 color: #f5f5f7;
1230 }
1231
1232 body.ka-v3-dark .ka-img-opt-advanced-content {
1233 background: #1c1c1e;
1234 }
1235
1236 body.ka-v3-dark .ka-img-opt-resize-options {
1237 background: #2c2c2e;
1238 }
1239
1240 body.ka-v3-dark .ka-img-opt-resize-options input {
1241 background: #1c1c1e;
1242 border-color: #3a3a3c;
1243 color: #f5f5f7;
1244 }
1245
1246 body.ka-v3-dark .ka-img-opt-progress-bar,
1247 body.ka-v3-dark .ka-img-opt-format-bar {
1248 background: #3a3a3c;
1249 }
1250
1251 body.ka-v3-dark .ka-img-opt-current-file {
1252 background: #2c2c2e;
1253 }
1254
1255 body.ka-v3-dark #current-filename {
1256 color: #f5f5f7;
1257 }
1258
1259 body.ka-v3-dark .ka-img-opt-live-stat {
1260 background: #2c2c2e;
1261 }
1262
1263 body.ka-v3-dark .ka-img-opt-live-list-card {
1264 background: #1c1c1e;
1265 border-color: #3a3a3c;
1266 }
1267
1268 body.ka-v3-dark .ka-img-opt-live-tabs {
1269 background: #2c2c2e;
1270 border-color: #3a3a3c;
1271 }
1272
1273 body.ka-v3-dark .ka-img-opt-live-tab {
1274 color: #f5f5f7;
1275 }
1276
1277 body.ka-v3-dark .ka-img-opt-live-tab.active {
1278 background: #1c1c1e;
1279 }
1280
1281 body.ka-v3-dark .ka-img-opt-live-filter {
1282 background: #1c1c1e;
1283 border-color: #3a3a3c;
1284 color: #98989d;
1285 }
1286
1287 body.ka-v3-dark .ka-img-opt-live-filter.active {
1288 background: #f5f5f7;
1289 border-color: #f5f5f7;
1290 color: #1d1d1f;
1291 }
1292
1293 body.ka-v3-dark .ka-img-opt-live-list {
1294 background: #1c1c1e;
1295 border-color: #3a3a3c;
1296 }
1297
1298 body.ka-v3-dark .ka-img-opt-live-item {
1299 border-bottom-color: #2c2c2e;
1300 }
1301
1302 body.ka-v3-dark .ka-img-opt-live-thumb {
1303 background: #2c2c2e;
1304 border-color: #3a3a3c;
1305 }
1306
1307 body.ka-v3-dark .ka-img-opt-live-title {
1308 color: #f5f5f7;
1309 }
1310
1311 body.ka-v3-dark .ka-img-opt-live-metrics {
1312 color: #98989d;
1313 background: rgba(94, 92, 230, 0.16);
1314 border-color: rgba(94, 92, 230, 0.28);
1315 }
1316
1317 body.ka-v3-dark .ka-img-opt-live-size-old {
1318 color: #98989d;
1319 }
1320
1321 body.ka-v3-dark .ka-img-opt-live-size-new {
1322 color: #34c759;
1323 }
1324
1325 body.ka-v3-dark .ka-img-opt-live-stat-value,
1326 body.ka-v3-dark .ka-img-opt-result-value {
1327 color: #f5f5f7;
1328 }
1329
1330 body.ka-v3-dark .ka-img-opt-result-item {
1331 background: #2c2c2e;
1332 }
1333
1334 body.ka-v3-dark .ka-img-opt-restore-section {
1335 background: #1c1c1e;
1336 }
1337
1338 body.ka-v3-dark .ka-img-opt-restore-section h3 {
1339 color: #f5f5f7;
1340 }
1341
1342 body.ka-v3-dark .ka-img-opt-format-name {
1343 color: #f5f5f7;
1344 }
1345
1346 body.ka-v3-dark .ka-img-opt-actions {
1347 border-top-color: rgba(255, 255, 255, 0.08);
1348 }
1349
1350 /* ===== RESPONSIVE ===== */
1351 @media (max-width: 1024px) {
1352 .ka-img-opt-stats {
1353 grid-template-columns: repeat(2, 1fr);
1354 }
1355
1356 .ka-img-opt-live-stats {
1357 grid-template-columns: repeat(2, 1fr);
1358 }
1359
1360 .ka-img-opt-results-summary {
1361 grid-template-columns: repeat(3, 1fr);
1362 }
1363 }
1364
1365 @media (max-width: 768px) {
1366 .ka-img-opt-stats {
1367 grid-template-columns: 1fr;
1368 }
1369
1370 .ka-img-opt-results-summary {
1371 grid-template-columns: 1fr;
1372 }
1373
1374 .ka-img-opt-resume-banner {
1375 flex-direction: column;
1376 text-align: center;
1377 gap: 20px;
1378 }
1379
1380 .ka-img-opt-resume-body {
1381 flex-direction: column;
1382 }
1383 }
1384