PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.6.10
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.6.10
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.10, at media-optimization/assets/css/media-optimization.css

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