PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.6.9
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.6.9
2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 2.6.4 2.6.3 2.5.23 All 138 releases
metasync / media-optimization / assets / css / media-optimization.css

media-optimization.css in Search Atlas SEO – OTTO AI SEO Automation for WordPress 2.6.9, at media-optimization/assets/css/media-optimization.css

1,393 lines 31.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Media Optimization Admin Page Styles
3 *
4 * @package Search Atlas SEO
5 * @copyright Copyright (C) 2021-2025, Search Atlas Group - support@searchatlas.com
6 * @since 2.6.0
7 */
8
9 /* ── General Layout ── */
10 .metasync-dashboard-wrap .metasync-media-optimization-page {
11 padding: 20px !important;
12 max-width: 100% !important;
13 }
14
15 .metasync-media-container {
16 display: grid;
17 grid-template-columns: 1fr 360px;
18 gap: 24px;
19 margin-top: 20px;
20 width: 100%;
21 }
22
23 .metasync-media-main,
24 .metasync-media-sidebar {
25 width: 100%;
26 min-width: 0;
27 }
28
29 @media (max-width: 1200px) {
30 .metasync-media-container {
31 grid-template-columns: 1fr;
32 }
33 }
34
35 /* Notices */
36 .metasync-notice {
37 display: flex;
38 align-items: center;
39 gap: 10px;
40 padding: 14px 20px;
41 border-radius: 10px;
42 margin-bottom: 20px;
43 font-size: 14px;
44 animation: noticeSlideIn 0.3s ease-out;
45 }
46
47 @keyframes noticeSlideIn {
48 from { opacity: 0; transform: translateY(-10px); }
49 to { opacity: 1; transform: translateY(0); }
50 }
51
52 .metasync-notice-success {
53 background: rgba(16, 185, 129, 0.1);
54 border: 1px solid rgba(16, 185, 129, 0.3);
55 color: #6ee7b7;
56 }
57
58 .metasync-notice-success .dashicons {
59 color: #10b981;
60 }
61
62 /* Cards */
63 .metasync-media-optimization-page .metasync-card {
64 background: var(--dashboard-card-bg, #1a1f26);
65 border: 1px solid var(--dashboard-border, #374151);
66 border-radius: 12px;
67 box-shadow: var(--dashboard-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.3));
68 margin-bottom: 20px;
69 transition: all 0.3s ease;
70 }
71
72 .metasync-media-optimization-page .metasync-card:hover {
73 box-shadow: var(--dashboard-shadow-hover, 0 20px 25px -5px rgba(0, 0, 0, 0.4));
74 transform: translateY(-2px);
75 }
76
77 .metasync-media-optimization-page .metasync-card-header {
78 padding: 20px 24px;
79 border-bottom: 1px solid var(--dashboard-border, #374151);
80 display: flex;
81 justify-content: space-between;
82 align-items: center;
83 background: rgba(102, 126, 234, 0.05);
84 border-radius: 12px 12px 0 0;
85 }
86
87 .metasync-media-optimization-page .metasync-card-header h2,
88 .metasync-media-optimization-page .metasync-card-header h3 {
89 margin: 0;
90 font-size: 17px;
91 font-weight: 600;
92 color: var(--dashboard-text-primary, #ffffff);
93 }
94
95 .metasync-card-title-group {
96 display: flex;
97 flex-direction: column;
98 gap: 4px;
99 }
100
101 .metasync-card-subtitle {
102 font-size: 13px;
103 color: var(--dashboard-text-secondary, #9ca3af);
104 font-weight: 400;
105 }
106
107 .metasync-card-body {
108 padding: 24px;
109 }
110
111 /* Toggle Switch */
112 .metasync-toggle {
113 position: relative;
114 display: inline-block;
115 width: 48px;
116 height: 26px;
117 flex-shrink: 0;
118 }
119
120 .metasync-toggle input {
121 opacity: 0;
122 width: 0;
123 height: 0;
124 }
125
126 .metasync-toggle-slider {
127 position: absolute;
128 cursor: pointer;
129 inset: 0;
130 background: rgba(255, 255, 255, 0.1);
131 border: 1px solid var(--dashboard-border, #374151);
132 border-radius: 26px;
133 transition: all 0.3s ease;
134 }
135
136 .metasync-toggle-slider::before {
137 content: '';
138 position: absolute;
139 height: 20px;
140 width: 20px;
141 left: 2px;
142 bottom: 2px;
143 background: var(--dashboard-text-secondary, #9ca3af);
144 border-radius: 50%;
145 transition: all 0.3s ease;
146 }
147
148 .metasync-toggle input:checked + .metasync-toggle-slider {
149 background: rgba(102, 126, 234, 0.3);
150 border-color: #667eea;
151 }
152
153 .metasync-toggle input:checked + .metasync-toggle-slider::before {
154 transform: translateX(22px);
155 background: #667eea;
156 box-shadow: 0 0 8px rgba(102, 126, 234, 0.5);
157 }
158
159 /* Field Rows */
160 .metasync-field-row {
161 display: grid;
162 grid-template-columns: 1fr 1fr;
163 gap: 24px;
164 margin-bottom: 20px;
165 }
166
167 .metasync-field-row:last-child {
168 margin-bottom: 0;
169 }
170
171 @media (max-width: 768px) {
172 .metasync-field-row {
173 grid-template-columns: 1fr;
174 }
175 }
176
177 .metasync-field label {
178 display: block;
179 font-size: 14px;
180 font-weight: 500;
181 color: var(--dashboard-text-primary, #ffffff);
182 margin-bottom: 8px;
183 }
184
185 .metasync-field select,
186 .metasync-field .metasync-text-input {
187 width: 100%;
188 padding: 10px 14px;
189 background: rgba(0, 0, 0, 0.3);
190 border: 1px solid var(--dashboard-border, #374151);
191 border-radius: 8px;
192 color: var(--dashboard-text-primary, #ffffff);
193 font-size: 14px;
194 transition: all 0.3s ease;
195 box-sizing: border-box;
196 }
197
198 .metasync-field select:focus,
199 .metasync-field .metasync-text-input:focus {
200 border-color: var(--dashboard-accent, #3b82f6);
201 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
202 outline: none;
203 background: rgba(0, 0, 0, 0.4);
204 }
205
206 .metasync-field select option {
207 background: #1a1f26;
208 color: #ffffff;
209 }
210
211 .metasync-field-description {
212 font-size: 12px;
213 color: var(--dashboard-text-secondary, #9ca3af);
214 margin: 8px 0 0;
215 line-height: 1.5;
216 }
217
218 /* Strategy Warning */
219 .metasync-strategy-warning {
220 display: flex;
221 align-items: flex-start;
222 gap: 10px;
223 margin-top: 10px;
224 padding: 12px 16px;
225 background: rgba(239, 68, 68, 0.08);
226 border: 1px solid rgba(239, 68, 68, 0.25);
227 border-radius: 8px;
228 animation: noticeSlideIn 0.3s ease-out;
229 }
230
231 .metasync-strategy-warning .dashicons {
232 color: #ef4444;
233 flex-shrink: 0;
234 margin-top: 1px;
235 }
236
237 .metasync-strategy-warning p {
238 margin: 0;
239 font-size: 13px;
240 line-height: 1.5;
241 color: #fca5a5;
242 }
243
244 /* Range Input */
245 .metasync-range-group {
246 display: flex;
247 align-items: center;
248 gap: 14px;
249 }
250
251 .metasync-range-group input[type="range"] {
252 flex: 1;
253 height: 6px;
254 -webkit-appearance: none;
255 appearance: none;
256 background: rgba(255, 255, 255, 0.1);
257 border-radius: 3px;
258 outline: none;
259 }
260
261 .metasync-range-group input[type="range"]::-webkit-slider-thumb {
262 -webkit-appearance: none;
263 appearance: none;
264 width: 20px;
265 height: 20px;
266 border-radius: 50%;
267 background: var(--dashboard-gradient-primary, linear-gradient(135deg, #667eea 0%, #764ba2 100%));
268 cursor: pointer;
269 box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);
270 transition: transform 0.2s ease;
271 }
272
273 .metasync-range-group input[type="range"]::-webkit-slider-thumb:hover {
274 transform: scale(1.15);
275 }
276
277 .metasync-range-group input[type="range"]::-moz-range-thumb {
278 width: 20px;
279 height: 20px;
280 border-radius: 50%;
281 background: var(--dashboard-gradient-primary, linear-gradient(135deg, #667eea 0%, #764ba2 100%));
282 cursor: pointer;
283 border: none;
284 box-shadow: 0 2px 6px rgba(102, 126, 234, 0.4);
285 }
286
287 .metasync-range-value {
288 display: inline-flex;
289 align-items: center;
290 justify-content: center;
291 min-width: 44px;
292 padding: 6px 10px;
293 background: rgba(102, 126, 234, 0.15);
294 border: 1px solid rgba(102, 126, 234, 0.3);
295 border-radius: 8px;
296 font-size: 14px;
297 font-weight: 600;
298 color: #667eea;
299 font-family: 'SF Mono', Monaco, Consolas, monospace;
300 }
301
302 /* Number Input */
303 .metasync-number-group {
304 display: flex;
305 align-items: center;
306 gap: 10px;
307 }
308
309 .metasync-number-group input[type="number"] {
310 width: 80px;
311 padding: 10px 14px;
312 background: rgba(0, 0, 0, 0.3);
313 border: 1px solid var(--dashboard-border, #374151);
314 border-radius: 8px;
315 color: var(--dashboard-text-primary, #ffffff);
316 font-size: 14px;
317 text-align: center;
318 transition: all 0.3s ease;
319 }
320
321 .metasync-number-group input[type="number"]:focus {
322 border-color: var(--dashboard-accent, #3b82f6);
323 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
324 outline: none;
325 }
326
327 .metasync-number-suffix {
328 font-size: 13px;
329 color: var(--dashboard-text-secondary, #9ca3af);
330 }
331
332 /* Checkbox Label */
333 .metasync-checkbox-label {
334 display: flex !important;
335 align-items: center;
336 gap: 10px;
337 cursor: pointer;
338 padding: 12px 16px;
339 background: rgba(0, 0, 0, 0.2);
340 border: 1px solid var(--dashboard-border, #374151);
341 border-radius: 8px;
342 transition: all 0.3s ease;
343 }
344
345 .metasync-checkbox-label:hover {
346 background: rgba(102, 126, 234, 0.05);
347 border-color: rgba(102, 126, 234, 0.3);
348 }
349
350 .metasync-checkbox-label input[type="checkbox"] {
351 width: 18px;
352 height: 18px;
353 accent-color: #667eea;
354 flex-shrink: 0;
355 }
356
357 .metasync-checkbox-label span {
358 font-size: 14px;
359 color: var(--dashboard-text-primary, #ffffff);
360 }
361
362 /* Info Box */
363 .metasync-info-box {
364 display: flex;
365 gap: 14px;
366 padding: 16px 20px;
367 background: rgba(59, 130, 246, 0.08);
368 border: 1px solid rgba(59, 130, 246, 0.2);
369 border-radius: 10px;
370 }
371
372 .metasync-info-box .dashicons {
373 color: var(--dashboard-accent, #3b82f6);
374 flex-shrink: 0;
375 margin-top: 2px;
376 }
377
378 .metasync-info-box strong {
379 display: block;
380 font-size: 14px;
381 color: var(--dashboard-text-primary, #ffffff);
382 margin-bottom: 6px;
383 }
384
385 .metasync-info-box p {
386 margin: 0;
387 font-size: 13px;
388 line-height: 1.6;
389 color: var(--dashboard-text-secondary, #9ca3af);
390 }
391
392 /* Form Actions */
393 .metasync-form-actions {
394 display: flex;
395 gap: 12px;
396 flex-wrap: wrap;
397 margin-top: 4px;
398 }
399
400 .metasync-form-actions .button {
401 border-radius: 8px;
402 font-weight: 500;
403 padding: 10px 24px;
404 height: auto;
405 transition: all 0.3s ease;
406 display: inline-flex;
407 align-items: center;
408 gap: 6px;
409 }
410
411 .metasync-form-actions .button-primary {
412 background: var(--dashboard-gradient-primary, linear-gradient(135deg, #667eea 0%, #764ba2 100%));
413 border: none;
414 color: #ffffff;
415 box-shadow: 0 4px 6px rgba(102, 126, 234, 0.3);
416 }
417
418 .metasync-form-actions .button-primary:hover {
419 transform: translateY(-2px);
420 box-shadow: 0 6px 12px rgba(102, 126, 234, 0.4);
421 }
422
423 .metasync-form-actions .button-secondary {
424 background: var(--dashboard-card-hover, #222831);
425 border: 1px solid var(--dashboard-border, #374151);
426 color: var(--dashboard-text-primary, #ffffff);
427 }
428
429 .metasync-form-actions .button-secondary:hover {
430 background: rgba(255, 255, 255, 0.1);
431 border-color: var(--dashboard-accent, #3b82f6);
432 transform: translateY(-1px);
433 }
434
435 /* Sidebar: Capabilities */
436 .metasync-capabilities-list {
437 padding: 20px;
438 }
439
440 .metasync-capability-item {
441 display: flex;
442 justify-content: space-between;
443 align-items: center;
444 padding: 12px 14px;
445 border-bottom: 1px solid var(--dashboard-border, #374151);
446 background: rgba(0, 0, 0, 0.15);
447 border-radius: 8px;
448 margin-bottom: 8px;
449 }
450
451 .metasync-capability-item:last-child {
452 margin-bottom: 0;
453 border-bottom: none;
454 }
455
456 .metasync-capability-label {
457 font-size: 13px;
458 color: var(--dashboard-text-primary, #ffffff);
459 font-weight: 500;
460 }
461
462 .metasync-capability-badge {
463 display: inline-flex;
464 align-items: center;
465 gap: 4px;
466 font-size: 12px;
467 padding: 4px 10px;
468 border-radius: 6px;
469 font-weight: 500;
470 }
471
472 .metasync-capability-badge .dashicons {
473 font-size: 14px;
474 width: 14px;
475 height: 14px;
476 }
477
478 .metasync-badge-success {
479 background: rgba(16, 185, 129, 0.15);
480 color: #6ee7b7;
481 }
482
483 .metasync-badge-warning {
484 background: rgba(245, 158, 11, 0.15);
485 color: #fcd34d;
486 }
487
488 .metasync-badge-error {
489 background: rgba(239, 68, 68, 0.15);
490 color: #fca5a5;
491 }
492
493 /* Sidebar: Feature Status */
494 .metasync-feature-status-list {
495 padding: 20px;
496 }
497
498 .metasync-feature-status-item {
499 display: flex;
500 align-items: center;
501 gap: 10px;
502 padding: 10px 14px;
503 background: rgba(0, 0, 0, 0.15);
504 border-radius: 8px;
505 margin-bottom: 8px;
506 font-size: 13px;
507 color: var(--dashboard-text-primary, #ffffff);
508 }
509
510 .metasync-feature-status-item:last-child {
511 margin-bottom: 0;
512 }
513
514 .metasync-feature-dot {
515 width: 10px;
516 height: 10px;
517 border-radius: 50%;
518 flex-shrink: 0;
519 }
520
521 .metasync-feature-dot.active {
522 background: #10b981;
523 box-shadow: 0 0 8px rgba(16, 185, 129, 0.5);
524 }
525
526 .metasync-feature-dot.inactive {
527 background: var(--dashboard-text-secondary, #9ca3af);
528 opacity: 0.4;
529 }
530
531 .metasync-feature-format {
532 margin-left: auto;
533 font-size: 11px;
534 font-weight: 600;
535 color: #667eea;
536 background: rgba(102, 126, 234, 0.15);
537 padding: 2px 8px;
538 border-radius: 4px;
539 }
540
541 .metasync-feature-format:empty {
542 display: none;
543 }
544
545 /* Tips / Warnings List */
546 .metasync-media-optimization-page .metasync-warnings-list {
547 margin: 0;
548 padding: 20px;
549 list-style: none;
550 }
551
552 .metasync-media-optimization-page .metasync-warnings-list li {
553 display: flex;
554 gap: 12px;
555 margin-bottom: 14px;
556 font-size: 13px;
557 line-height: 1.6;
558 color: var(--dashboard-text-secondary, #9ca3af);
559 padding: 12px;
560 background: rgba(0, 0, 0, 0.15);
561 border-radius: 8px;
562 border-left: 3px solid var(--dashboard-border, #374151);
563 transition: all 0.3s ease;
564 }
565
566 .metasync-media-optimization-page .metasync-warnings-list li:hover {
567 background: rgba(102, 126, 234, 0.05);
568 transform: translateX(4px);
569 }
570
571 .metasync-media-optimization-page .metasync-warnings-list li:last-child {
572 margin-bottom: 0;
573 }
574
575 .metasync-media-optimization-page .metasync-warnings-list .dashicons {
576 flex-shrink: 0;
577 margin-top: 2px;
578 }
579
580 /* Toggle section animation */
581 .metasync-toggle-section {
582 overflow: hidden;
583 transition: all 0.3s ease;
584 }
585
586 /* ── Tab Navigation ── */
587 .metasync-media-optimization-page .metasync-tabs {
588 margin: 0 0 20px 0;
589 background: var(--dashboard-card-bg);
590 border: 1px solid var(--dashboard-border);
591 border-radius: 12px;
592 padding: 6px;
593 box-shadow: var(--dashboard-shadow);
594 }
595
596 .metasync-media-optimization-page .metasync-tab-nav {
597 border-bottom: none;
598 margin: 0;
599 padding: 0;
600 display: flex;
601 gap: 4px;
602 background: transparent;
603 list-style: none;
604 }
605
606 .metasync-media-optimization-page .metasync-tab-nav li {
607 display: inline-block;
608 margin: 0;
609 }
610
611 .metasync-media-optimization-page .metasync-tab-nav a {
612 display: block;
613 padding: 12px 20px;
614 text-decoration: none;
615 color: var(--dashboard-text-secondary);
616 border-bottom: none;
617 border-radius: 8px;
618 transition: all 0.3s ease;
619 font-weight: 500;
620 font-size: 14px;
621 background: transparent;
622 position: relative;
623 overflow: hidden;
624 }
625
626 .metasync-media-optimization-page .metasync-tab-nav a:hover {
627 color: var(--dashboard-text-primary);
628 background: rgba(255, 255, 255, 0.05);
629 }
630
631 .metasync-media-optimization-page .metasync-tab-nav a.active {
632 color: var(--dashboard-text-primary);
633 background: var(--dashboard-card-hover);
634 box-shadow: var(--dashboard-shadow);
635 font-weight: 600;
636 }
637
638 .metasync-media-optimization-page .metasync-tab-nav a.active::after {
639 content: '';
640 position: absolute;
641 bottom: 0;
642 left: 0;
643 right: 0;
644 height: 2px;
645 background: var(--dashboard-accent);
646 border-radius: 1px;
647 }
648
649 .metasync-media-optimization-page .metasync-tab-content {
650 display: none;
651 }
652
653 .metasync-media-optimization-page .metasync-tab-content.active {
654 display: block;
655 }
656
657 /* ══════════════════════════════════════════
658 Image Library Styles
659 ══════════════════════════════════════════ */
660
661 /* ── Stats Card ── */
662 .metasync-stats-card {
663 margin-bottom: 20px;
664 }
665
666 .metasync-stats-row {
667 display: flex;
668 gap: 30px;
669 align-items: center;
670 padding: 20px;
671 }
672
673 .metasync-stat-item {
674 display: flex;
675 flex-direction: column;
676 gap: 4px;
677 }
678
679 .metasync-stat-number {
680 font-size: 28px;
681 font-weight: 700;
682 color: var(--dashboard-text-primary);
683 line-height: 1;
684 }
685
686 .metasync-stat-success .metasync-stat-number {
687 color: var(--dashboard-success);
688 }
689
690 .metasync-stat-pending .metasync-stat-number {
691 color: var(--dashboard-warning);
692 }
693
694 .metasync-stat-label {
695 font-size: 12px;
696 color: var(--dashboard-text-secondary);
697 text-transform: uppercase;
698 letter-spacing: 0.5px;
699 }
700
701 .metasync-stat-progress-wrap {
702 display: flex;
703 align-items: center;
704 gap: 10px;
705 }
706
707 .metasync-stat-progress-bar {
708 width: 120px;
709 height: 8px;
710 background: var(--dashboard-border);
711 border-radius: 4px;
712 overflow: hidden;
713 }
714
715 .metasync-stat-progress-fill {
716 height: 100%;
717 background: var(--dashboard-gradient-primary);
718 border-radius: 4px;
719 transition: width 0.5s ease;
720 }
721
722 .metasync-stat-percentage {
723 font-size: 20px;
724 font-weight: 700;
725 color: var(--dashboard-text-primary);
726 }
727
728 /* ── Batch Progress ── */
729 .metasync-batch-card {
730 margin-bottom: 20px;
731 padding: 20px;
732 border-left: 3px solid var(--dashboard-accent);
733 }
734
735 .metasync-batch-header {
736 display: flex;
737 justify-content: space-between;
738 align-items: center;
739 margin-bottom: 12px;
740 }
741
742 .metasync-batch-info {
743 display: flex;
744 align-items: center;
745 gap: 10px;
746 }
747
748 .metasync-batch-spinner {
749 width: 18px;
750 height: 18px;
751 border: 2px solid var(--dashboard-border);
752 border-top-color: var(--dashboard-accent);
753 border-radius: 50%;
754 animation: metasync-spin 0.8s linear infinite;
755 }
756
757 @keyframes metasync-spin {
758 to { transform: rotate(360deg); }
759 }
760
761 .metasync-batch-text {
762 color: var(--dashboard-text-primary);
763 font-weight: 500;
764 }
765
766 .metasync-batch-progress-bar {
767 width: 100%;
768 height: 6px;
769 background: var(--dashboard-border);
770 border-radius: 3px;
771 overflow: hidden;
772 margin-bottom: 8px;
773 }
774
775 .metasync-batch-progress-fill {
776 height: 100%;
777 background: var(--dashboard-gradient-primary);
778 border-radius: 3px;
779 transition: width 0.3s ease;
780 }
781
782 .metasync-batch-details {
783 font-size: 13px;
784 color: var(--dashboard-text-secondary);
785 }
786
787 .metasync-batch-failed {
788 color: var(--dashboard-error);
789 font-weight: 600;
790 }
791
792 /* ── Batch Complete ── */
793 .metasync-batch-complete-card {
794 margin-bottom: 20px;
795 padding: 14px 20px;
796 display: flex;
797 align-items: center;
798 gap: 10px;
799 border-left: 3px solid var(--dashboard-success);
800 color: var(--dashboard-text-primary);
801 }
802
803 .metasync-batch-complete-card .metasync-dismiss-btn {
804 margin-left: auto;
805 background: none;
806 border: none;
807 color: var(--dashboard-text-secondary);
808 cursor: pointer;
809 padding: 0;
810 }
811
812 .metasync-batch-complete-card .metasync-dismiss-btn:hover {
813 color: var(--dashboard-text-primary);
814 }
815
816 /* ── Unified Toolbar (Optimize All + Search) ── */
817 .metasync-table-toolbar {
818 display: flex;
819 align-items: center;
820 justify-content: space-between;
821 gap: 12px;
822 margin-bottom: 16px;
823 background: var(--dashboard-card-bg);
824 border: 1px solid var(--dashboard-border);
825 border-radius: 8px;
826 padding: 16px 20px;
827 }
828
829 .metasync-toolbar-left {
830 display: flex;
831 align-items: center;
832 gap: 8px;
833 }
834
835 .metasync-toolbar-right {
836 display: flex;
837 align-items: center;
838 gap: 6px;
839 }
840
841 .metasync-toolbar-right .search-box {
842 float: none !important;
843 display: flex;
844 align-items: center;
845 gap: 6px;
846 margin: 0 !important;
847 padding: 0 !important;
848 }
849
850 .metasync-toolbar-right .search-box label {
851 display: none;
852 }
853
854 .metasync-toolbar-right .search-box .metasync-search-input-wrap {
855 position: relative;
856 display: inline-flex;
857 align-items: center;
858 }
859
860 .metasync-toolbar-right .search-box input[type="search"],
861 .metasync-toolbar-right .search-box input[type="text"] {
862 background: var(--dashboard-card-bg);
863 color: var(--dashboard-text-primary);
864 border: 1px solid var(--dashboard-border);
865 border-radius: 6px;
866 padding: 6px 30px 6px 12px;
867 height: 32px;
868 line-height: 32px;
869 font-size: 13px;
870 min-width: 260px;
871 box-sizing: border-box;
872 }
873
874 .metasync-toolbar-right .search-box input[type="search"]::-webkit-search-cancel-button {
875 -webkit-appearance: none;
876 display: none;
877 }
878
879 .metasync-toolbar-right .search-box .metasync-clear-search {
880 position: absolute;
881 right: 10px;
882 top: 50%;
883 transform: translateY(-50%);
884 background: none;
885 border: none;
886 padding: 0;
887 cursor: pointer;
888 color: var(--dashboard-text-secondary);
889 font-size: 16px;
890 line-height: 1;
891 display: none;
892 align-items: center;
893 justify-content: center;
894 width: 16px;
895 height: 16px;
896 }
897
898 .metasync-toolbar-right .search-box .metasync-clear-search:hover {
899 color: var(--dashboard-text-primary);
900 }
901
902 .metasync-toolbar-right .search-box .metasync-clear-search.visible {
903 display: flex;
904 }
905
906 .metasync-toolbar-right .search-box input[type="search"]:focus,
907 .metasync-toolbar-right .search-box input[type="text"]:focus {
908 border-color: var(--dashboard-accent);
909 outline: none;
910 box-shadow: 0 0 0 1px var(--dashboard-accent);
911 }
912
913 .metasync-toolbar-right .search-box .button {
914 background: var(--dashboard-card-bg);
915 color: var(--dashboard-text-primary);
916 border: 1px solid var(--dashboard-border);
917 border-radius: 6px;
918 height: 32px;
919 line-height: 30px;
920 padding: 0 14px;
921 font-size: 13px;
922 cursor: pointer;
923 box-sizing: border-box;
924 }
925
926 .metasync-toolbar-right .search-box .button:hover {
927 background: var(--dashboard-card-hover);
928 border-color: var(--dashboard-text-secondary);
929 }
930
931 #metasync-optimize-all {
932 display: inline-flex;
933 align-items: center;
934 gap: 6px;
935 height: 32px;
936 padding: 0 16px;
937 font-size: 13px;
938 font-weight: 600;
939 border-radius: 6px;
940 background: var(--dashboard-gradient-primary);
941 border: none;
942 color: #fff;
943 cursor: pointer;
944 white-space: nowrap;
945 transition: opacity 0.2s;
946 }
947
948 #metasync-optimize-all:hover {
949 opacity: 0.9;
950 }
951
952 #metasync-optimize-all:disabled {
953 opacity: 0.5;
954 cursor: not-allowed;
955 }
956
957 #metasync-optimize-all .dashicons {
958 font-size: 16px;
959 width: 16px;
960 height: 16px;
961 margin-top: 0;
962 }
963
964 .metasync-count-badge {
965 display: inline-block;
966 background: rgba(255, 255, 255, 0.2);
967 padding: 1px 8px;
968 border-radius: 10px;
969 font-size: 11px;
970 font-weight: 700;
971 }
972
973 /* ── Tablenav (Bulk Actions + Filter | Pagination) ── */
974 #metasync-image-library-form .tablenav {
975 display: flex;
976 align-items: center;
977 gap: 10px;
978 height: auto;
979 padding: 14px 20px;
980 margin: 0;
981 float: none;
982 background: var(--dashboard-card-bg);
983 border: 1px solid var(--dashboard-border);
984 border-radius: 8px;
985 }
986
987 #metasync-image-library-form .tablenav.top {
988 margin-bottom: -1px;
989 border-bottom-left-radius: 0;
990 border-bottom-right-radius: 0;
991 }
992
993 #metasync-image-library-form .tablenav.bottom {
994 margin-top: -1px;
995 border-top-left-radius: 0;
996 border-top-right-radius: 0;
997 }
998
999 #metasync-image-library-form .tablenav .actions {
1000 float: none;
1001 display: flex;
1002 align-items: center;
1003 gap: 6px;
1004 padding: 0;
1005 margin: 0;
1006 }
1007
1008 #metasync-image-library-form .tablenav .bulkactions {
1009 margin: 0;
1010 }
1011
1012 #metasync-image-library-form .tablenav .tablenav-pages {
1013 float: none;
1014 margin-left: auto;
1015 display: flex;
1016 align-items: center;
1017 gap: 6px;
1018 }
1019
1020 #metasync-image-library-form .tablenav br.clear {
1021 display: none;
1022 }
1023
1024 /* ── Tablenav Inputs (select, button) ── */
1025 #metasync-image-library-form .tablenav select {
1026 background: var(--dashboard-card-bg);
1027 color: var(--dashboard-text-primary);
1028 border: 1px solid var(--dashboard-border);
1029 border-radius: 6px;
1030 height: 34px;
1031 line-height: 32px;
1032 padding: 0 10px;
1033 font-size: 13px;
1034 box-sizing: border-box;
1035 }
1036
1037 #metasync-image-library-form .tablenav .actions .button {
1038 background: var(--dashboard-card-hover);
1039 color: var(--dashboard-text-primary);
1040 border: 1px solid var(--dashboard-border);
1041 border-radius: 6px;
1042 height: 34px;
1043 line-height: 32px;
1044 padding: 0 14px;
1045 font-size: 13px;
1046 box-sizing: border-box;
1047 cursor: pointer;
1048 transition: all 0.15s ease;
1049 }
1050
1051 #metasync-image-library-form .tablenav .actions .button:hover {
1052 background: var(--dashboard-card-hover);
1053 border-color: var(--dashboard-text-secondary);
1054 }
1055
1056 /* ── Pagination ── */
1057 #metasync-image-library-form .tablenav-pages .pagination-links {
1058 display: flex;
1059 align-items: center;
1060 gap: 4px;
1061 }
1062
1063 #metasync-image-library-form .tablenav-pages .button,
1064 #metasync-image-library-form .tablenav-pages .tablenav-pages-navspan {
1065 background: var(--dashboard-card-hover);
1066 color: var(--dashboard-text-secondary);
1067 border: 1px solid var(--dashboard-border);
1068 border-radius: 6px;
1069 padding: 0 10px;
1070 min-width: 34px;
1071 height: 34px;
1072 line-height: 32px;
1073 text-align: center;
1074 font-size: 14px;
1075 box-sizing: border-box;
1076 transition: all 0.15s ease;
1077 }
1078
1079 #metasync-image-library-form .tablenav-pages .button:hover {
1080 background: var(--dashboard-accent);
1081 color: #fff;
1082 border-color: var(--dashboard-accent);
1083 }
1084
1085 #metasync-image-library-form .tablenav-pages .tablenav-pages-navspan.disabled {
1086 opacity: 0.4;
1087 }
1088
1089 #metasync-image-library-form .tablenav-pages .current-page {
1090 background: var(--dashboard-card-bg);
1091 color: var(--dashboard-text-primary);
1092 border: 1px solid var(--dashboard-border);
1093 border-radius: 6px;
1094 width: 42px;
1095 height: 34px;
1096 line-height: 32px;
1097 text-align: center;
1098 font-size: 13px;
1099 box-sizing: border-box;
1100 }
1101
1102 #metasync-image-library-form .tablenav-pages .current-page:focus {
1103 border-color: var(--dashboard-accent);
1104 outline: none;
1105 box-shadow: 0 0 0 1px var(--dashboard-accent);
1106 }
1107
1108 #metasync-image-library-form .tablenav .displaying-num {
1109 color: var(--dashboard-text-secondary);
1110 font-size: 13px;
1111 margin-right: 8px;
1112 }
1113
1114 #metasync-image-library-form .tablenav .paging-input {
1115 font-size: 13px;
1116 color: var(--dashboard-text-secondary);
1117 display: inline-flex;
1118 align-items: center;
1119 gap: 6px;
1120 }
1121
1122 /* ── List Table Dark Theme ── */
1123 #metasync-image-library-form .wp-list-table {
1124 border: 1px solid var(--dashboard-border);
1125 border-radius: 0;
1126 overflow: hidden;
1127 border-collapse: separate;
1128 border-spacing: 0;
1129 margin-top: -1px;
1130 margin-bottom: -1px;
1131 }
1132
1133 #metasync-image-library-form .wp-list-table thead th,
1134 #metasync-image-library-form .wp-list-table thead td {
1135 background: var(--dashboard-card-bg);
1136 color: var(--dashboard-text-secondary);
1137 border-bottom: 1px solid var(--dashboard-border);
1138 font-weight: 600;
1139 font-size: 12px;
1140 text-transform: uppercase;
1141 letter-spacing: 0.5px;
1142 padding: 12px 10px;
1143 }
1144
1145 #metasync-image-library-form .wp-list-table thead th a {
1146 color: var(--dashboard-text-secondary);
1147 }
1148
1149 #metasync-image-library-form .wp-list-table thead th a:hover {
1150 color: var(--dashboard-text-primary);
1151 }
1152
1153 #metasync-image-library-form .wp-list-table tbody tr {
1154 background: var(--dashboard-card-bg);
1155 }
1156
1157 #metasync-image-library-form .wp-list-table tbody tr:hover {
1158 background: var(--dashboard-card-hover);
1159 }
1160
1161 #metasync-image-library-form .wp-list-table tbody td {
1162 color: var(--dashboard-text-primary);
1163 border-bottom: 1px solid var(--dashboard-border);
1164 padding: 10px;
1165 vertical-align: middle;
1166 }
1167
1168 #metasync-image-library-form .wp-list-table tfoot th,
1169 #metasync-image-library-form .wp-list-table tfoot td {
1170 background: var(--dashboard-card-bg);
1171 color: var(--dashboard-text-secondary);
1172 border-top: 1px solid var(--dashboard-border);
1173 padding: 12px 10px;
1174 }
1175
1176 /* Column widths */
1177 #metasync-image-library-form .wp-list-table .column-cb { width: 30px; }
1178 #metasync-image-library-form .wp-list-table .column-image { width: 40%; }
1179 #metasync-image-library-form .wp-list-table .column-post { width: 25%; }
1180 #metasync-image-library-form .wp-list-table .column-status { width: 15%; }
1181 #metasync-image-library-form .wp-list-table .column-actions { width: 15%; }
1182
1183 /* ── Image Cell ── */
1184 .metasync-image-cell {
1185 display: flex;
1186 align-items: center;
1187 gap: 12px;
1188 }
1189
1190 .metasync-image-thumb img {
1191 border-radius: 4px;
1192 display: block;
1193 }
1194
1195 .metasync-image-info {
1196 display: flex;
1197 flex-direction: column;
1198 gap: 2px;
1199 min-width: 0;
1200 }
1201
1202 .metasync-image-filename {
1203 color: var(--dashboard-text-primary);
1204 font-size: 13px;
1205 }
1206
1207 .metasync-image-url {
1208 display: flex;
1209 align-items: center;
1210 gap: 4px;
1211 }
1212
1213 .metasync-image-url a {
1214 color: var(--dashboard-text-secondary);
1215 font-size: 12px;
1216 text-decoration: none;
1217 overflow: hidden;
1218 text-overflow: ellipsis;
1219 white-space: nowrap;
1220 }
1221
1222 .metasync-image-url a:hover {
1223 color: var(--dashboard-accent);
1224 }
1225
1226 /* ── Copy Button ── */
1227 .metasync-copy-btn {
1228 background: none;
1229 border: none;
1230 color: var(--dashboard-text-secondary);
1231 cursor: pointer;
1232 padding: 2px;
1233 border-radius: 3px;
1234 display: inline-flex;
1235 align-items: center;
1236 justify-content: center;
1237 transition: all 0.2s ease;
1238 }
1239
1240 .metasync-copy-btn:hover {
1241 color: var(--dashboard-accent);
1242 background: rgba(59, 130, 246, 0.1);
1243 }
1244
1245 .metasync-copy-btn .dashicons {
1246 font-size: 14px;
1247 width: 14px;
1248 height: 14px;
1249 }
1250
1251 .metasync-copy-btn.copied {
1252 color: var(--dashboard-success);
1253 }
1254
1255 /* ── Status Badges ── */
1256 .metasync-status-badge {
1257 display: inline-block;
1258 padding: 4px 10px;
1259 border-radius: 12px;
1260 font-size: 12px;
1261 font-weight: 600;
1262 letter-spacing: 0.3px;
1263 }
1264
1265 .metasync-status-optimized {
1266 background: rgba(16, 185, 129, 0.15);
1267 color: var(--dashboard-success);
1268 }
1269
1270 .metasync-status-unoptimized {
1271 background: rgba(156, 163, 175, 0.15);
1272 color: var(--dashboard-text-secondary);
1273 }
1274
1275 /* ── Size Savings ── */
1276 .metasync-size-savings {
1277 display: flex;
1278 flex-direction: column;
1279 gap: 1px;
1280 margin-top: 6px;
1281 font-size: 12px;
1282 line-height: 1.4;
1283 }
1284
1285 .metasync-savings-pct {
1286 color: var(--dashboard-success);
1287 font-weight: 600;
1288 }
1289
1290 .metasync-savings-detail {
1291 color: var(--dashboard-text-secondary);
1292 font-size: 11px;
1293 }
1294
1295 /* ── Unoptimized Size Info ── */
1296 .metasync-size-info {
1297 margin-top: 6px;
1298 }
1299
1300 .metasync-size-detail {
1301 color: var(--dashboard-text-secondary);
1302 font-size: 12px;
1303 }
1304
1305 /* ── Muted Text ── */
1306 .metasync-text-muted {
1307 color: var(--dashboard-text-secondary);
1308 font-style: italic;
1309 }
1310
1311 /* ── Post Link Rows ── */
1312 .metasync-post-link-row {
1313 display: flex;
1314 align-items: center;
1315 gap: 4px;
1316 }
1317 .metasync-post-link-row + .metasync-post-link-row {
1318 margin-top: 4px;
1319 }
1320
1321 /* ── Action Buttons ── */
1322 .metasync-optimize-btn,
1323 .metasync-revert-btn {
1324 display: inline-flex !important;
1325 align-items: center;
1326 gap: 4px;
1327 }
1328
1329 .metasync-optimize-btn .dashicons,
1330 .metasync-revert-btn .dashicons {
1331 font-size: 14px;
1332 width: 14px;
1333 height: 14px;
1334 }
1335
1336 .metasync-optimize-btn.loading,
1337 .metasync-revert-btn.loading {
1338 opacity: 0.7;
1339 pointer-events: none;
1340 }
1341
1342 /* ── No Items ── */
1343 #metasync-image-library-form .wp-list-table .no-items td {
1344 text-align: center;
1345 padding: 40px 20px;
1346 color: var(--dashboard-text-secondary);
1347 font-size: 14px;
1348 }
1349
1350 /* ── Checkbox ── */
1351 #metasync-image-library-form .wp-list-table .column-cb,
1352 #metasync-image-library-form .wp-list-table .check-column {
1353 vertical-align: middle;
1354 text-align: center;
1355 }
1356
1357 #metasync-image-library-form .wp-list-table input[type="checkbox"] {
1358 margin: 0;
1359 vertical-align: middle;
1360 }
1361
1362 /* ── Screen reader text ── */
1363 #metasync-image-library-form .screen-reader-text {
1364 clip: rect(1px, 1px, 1px, 1px);
1365 position: absolute !important;
1366 height: 1px;
1367 width: 1px;
1368 overflow: hidden;
1369 }
1370
1371 /* ── Responsive ── */
1372 @media screen and (max-width: 782px) {
1373 .metasync-stats-row {
1374 flex-wrap: wrap;
1375 gap: 20px;
1376 }
1377
1378 .metasync-stat-item {
1379 min-width: 80px;
1380 }
1381
1382 .metasync-table-toolbar {
1383 flex-direction: column;
1384 align-items: stretch;
1385 }
1386
1387 .metasync-toolbar-right .search-box input[type="search"],
1388 .metasync-toolbar-right .search-box input[type="text"] {
1389 min-width: 0;
1390 flex: 1;
1391 }
1392 }
1393