PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.7.2
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.7.2
2.7.1 2.7.2 2.7.0 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 All 141 releases
metasync / admin / css / metasync-admin.css

metasync-admin.css in Search Atlas SEO – OTTO AI SEO Automation for WordPress 2.7.2, at admin/css/metasync-admin.css

2,231 lines 46.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * All of the CSS for your admin-specific functionality should be
3 * included in this file.
4 */
5
6 /* Compatibility Page Styles */
7 .metasync-compatibility-sections {
8 display: grid;
9 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
10 gap: 20px;
11 margin-top: 20px;
12 }
13
14 .metasync-compatibility-section {
15 background: var(--dashboard-card-bg, #fff);
16 border: 1px solid #e1e1e1;
17 border-radius: 8px;
18 padding: 20px;
19 box-shadow: 0 2px 4px rgba(0,0,0,0.1);
20 transition: box-shadow 0.3s ease;
21 }
22
23 .metasync-compatibility-section:hover {
24 box-shadow: 0 4px 8px rgba(0,0,0,0.15);
25 }
26
27 .metasync-compatibility-section h3 {
28 margin-top: 0;
29 margin-bottom: 15px;
30 color: var(--dashboard-accent, #3b82f6) !important;
31 font-size: 18px;
32 font-weight: 600;
33 border-bottom: 2px solid #e1e1e1;
34 padding-bottom: 10px;
35 display: flex;
36 align-items: center;
37 gap: 8px;
38 }
39
40 .metasync-plugin-item {
41 display: flex;
42 justify-content: space-between;
43 align-items: center;
44 padding: 12px 0;
45 border-bottom: 1px solid #f5f5f5;
46 transition: background-color 0.2s ease;
47 }
48
49 .metasync-plugin-info {
50 display: flex;
51 align-items: center;
52 gap: 12px;
53 flex: 1;
54 }
55
56 .metasync-plugin-logo {
57 width: 32px;
58 height: 32px;
59 border-radius: 6px;
60 object-fit: contain;
61 background: #f8f9fa;
62 padding: 4px;
63 border: 1px solid #e1e1e1;
64 }
65
66 /* Handle broken images gracefully */
67 .metasync-plugin-logo:not([src]),
68 .metasync-plugin-logo[src=""],
69 .metasync-plugin-logo[src*="error"] {
70 display: none;
71 }
72
73 /* Show placeholder when no logo */
74 .metasync-plugin-info:not(:has(.metasync-plugin-logo[src]))::before {
75 content: "🔧";
76 width: 32px;
77 height: 32px;
78 border-radius: 6px;
79 background: #f8f9fa;
80 padding: 4px;
81 border: 1px solid #e1e1e1;
82 display: flex;
83 align-items: center;
84 justify-content: center;
85 font-size: 16px;
86 margin-right: 12px;
87 }
88
89 .metasync-plugin-details {
90 display: flex;
91 flex-direction: column;
92 gap: 4px;
93 }
94
95 .metasync-plugin-name {
96 font-weight: 500;
97 color: var(--dashboard-text-primary, #ffffff) !important;
98 font-size: 14px;
99 margin: 0;
100 }
101
102 .metasync-plugin-note {
103 font-size: 11px;
104 color: var(--dashboard-text-secondary, #94a3b8);
105 margin: 0;
106 line-height: 1.4;
107 }
108
109 .metasync-plugin-install-status {
110 font-size: 11px;
111 color: #666;
112 font-weight: 400;
113 text-transform: uppercase;
114 letter-spacing: 0.5px;
115 }
116
117 .metasync-plugin-install-status.installed {
118 color: #28a745;
119 }
120
121 .metasync-plugin-install-status.not-installed {
122 color: #dc3545;
123 }
124
125 /* New Status Labels System */
126 .metasync-plugin-status-labels {
127 display: flex;
128 align-items: center;
129 gap: 6px;
130 margin-top: 6px;
131 flex-wrap: wrap;
132 }
133
134 .metasync-status-label {
135 display: inline-flex;
136 align-items: center;
137 padding: 3px 10px;
138 border-radius: 12px;
139 font-size: 11px;
140 font-weight: 600;
141 text-transform: uppercase;
142 letter-spacing: 0.3px;
143 line-height: 1.4;
144 transition: all 0.2s ease;
145 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
146 }
147
148 /* Installed Label - Blue Theme */
149 .metasync-label-installed {
150 background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
151 color: #ffffff;
152 border: 1px solid #2563eb;
153 }
154
155 /* Active Label - Green Theme */
156 .metasync-label-active {
157 background: linear-gradient(135deg, #10b981 0%, #059669 100%);
158 color: #ffffff;
159 border: 1px solid #059669;
160 }
161
162 /* Not Active Label - Orange/Amber Theme */
163 .metasync-label-not-active {
164 background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
165 color: #ffffff;
166 border: 1px solid #d97706;
167 }
168
169 /* Not Installed Label - Gray Theme */
170 .metasync-label-not-installed {
171 background: linear-gradient(135deg, #6b7280 0%, #4b5563 100%);
172 color: #ffffff;
173 border: 1px solid #4b5563;
174 }
175
176 .metasync-plugin-item:last-child {
177 border-bottom: none;
178 }
179
180 .metasync-plugin-item:hover {
181 background-color: rgba(0,0,0,0.02);
182 border-radius: 4px;
183 margin: 0 -8px;
184 padding-left: 8px;
185 padding-right: 8px;
186 }
187
188
189 .metasync-plugin-status {
190 display: flex;
191 align-items: center;
192 gap: 8px;
193 }
194
195 .metasync-status-badge {
196 padding: 4px 8px;
197 border-radius: 4px;
198 font-size: 12px;
199 font-weight: 500;
200 text-transform: uppercase;
201 letter-spacing: 0.5px;
202 }
203
204 .metasync-status-supported {
205 background: #d4edda;
206 color: #155724;
207 border: 1px solid #c3e6cb;
208 }
209
210 .metasync-status-coming-soon {
211 background: #fff3cd;
212 color: #856404;
213 border: 1px solid #ffeaa7;
214 }
215
216 .metasync-status-not-installed {
217 background: #f8d7da;
218 color: #721c24;
219 border: 1px solid #f5c6cb;
220 }
221
222 .metasync-plugin-version {
223 font-size: 12px;
224 color: #666;
225 background: #f8f9fa;
226 padding: 2px 6px;
227 border-radius: 3px;
228 font-family: monospace;
229 }
230
231 /* Responsive Design */
232 @media (max-width: 768px) {
233 .metasync-compatibility-sections {
234 grid-template-columns: 1fr;
235 gap: 15px;
236 }
237
238 .metasync-compatibility-section {
239 padding: 15px;
240 }
241
242 .metasync-plugin-item {
243 flex-direction: column;
244 align-items: flex-start;
245 gap: 8px;
246 }
247
248 .metasync-plugin-status {
249 align-self: flex-end;
250 }
251 }
252
253 /* Google Index API Button Styling */
254 .button.button-link-delete:hover {
255 color: #ffffff !important;
256 background: #dc3545 !important;
257 border-color: #dc3545 !important;
258 }
259
260 /* Dark Mode Support */
261 @media (prefers-color-scheme: dark) {
262 .metasync-compatibility-section {
263 background: var(--dashboard-card-bg, #1a1f26);
264 border-color: var(--dashboard-border, #374151);
265 color: var(--dashboard-text-primary, #ffffff);
266 }
267
268 .metasync-compatibility-section h3 {
269 color: var(--dashboard-accent, #3b82f6) !important;
270 border-bottom-color: var(--dashboard-border, #374151);
271 }
272
273 .metasync-plugin-name {
274 color: var(--dashboard-text-primary, #ffffff) !important;
275 }
276
277 .metasync-plugin-item {
278 border-bottom-color: var(--dashboard-border, #374151);
279 }
280
281 .metasync-plugin-item:hover {
282 background-color: var(--dashboard-card-hover, #222831);
283 }
284
285 .metasync-plugin-version {
286 background: var(--dashboard-border, #374151);
287 color: var(--dashboard-text-secondary, #9ca3af);
288 }
289
290 /* Dark Mode - Status Labels */
291 .metasync-label-installed {
292 background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);
293 border-color: #1e3a8a;
294 box-shadow: 0 2px 4px rgba(37, 99, 235, 0.3);
295 }
296
297 .metasync-label-active {
298 background: linear-gradient(135deg, #059669 0%, #047857 100%);
299 border-color: #065f46;
300 box-shadow: 0 2px 4px rgba(5, 150, 105, 0.3);
301 }
302
303 .metasync-label-not-active {
304 background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
305 border-color: #92400e;
306 box-shadow: 0 2px 4px rgba(217, 119, 6, 0.3);
307 }
308
309 .metasync-label-not-installed {
310 background: linear-gradient(135deg, #4b5563 0%, #374151 100%);
311 border-color: #1f2937;
312 box-shadow: 0 2px 4px rgba(75, 85, 99, 0.3);
313 }
314
315 .description {
316 color: var(--dashboard-text-secondary, #9ca3af);
317 }
318 }
319
320 /* Search Atlas Connect Styles
321 Handles 1-click connect UI for retrieving Search Atlas API key and Otto UUID.
322 Does NOT provide WordPress login functionality. */
323 .metasync-sa-connect-container {
324 background: #fff;
325 border: 1px solid #ccd0d4;
326 border-radius: 6px;
327 padding: 20px;
328 margin-top: 15px;
329 box-shadow: 0 1px 3px rgba(0,0,0,0.1);
330 }
331
332 /* Prevent dashboard loading conflicts on connect elements */
333 .metasync-sa-connect-container .no-loading,
334 #connect-searchatlas-btn.no-loading,
335 #reset-searchatlas-auth.no-loading,
336 .metasync-sa-connect-btn.no-loading,
337 .metasync-sa-connect-protected {
338 position: relative;
339 }
340
341 .metasync-sa-connect-container .no-loading::after,
342 #connect-searchatlas-btn.no-loading::after,
343 #reset-searchatlas-auth.no-loading::after,
344 .metasync-sa-connect-btn.no-loading::after,
345 .metasync-sa-connect-protected::after,
346 #connect-searchatlas-btn.dashboard-loading::after {
347 display: none !important; /* Override any dashboard loading CSS */
348 }
349
350 /* Override dashboard loading on connect button */
351 #connect-searchatlas-btn.dashboard-loading {
352 opacity: 1 !important;
353 pointer-events: auto !important;
354 position: relative !important;
355 }
356
357 /* Prevent dashboard.js from disabling connect buttons */
358 .metasync-sa-connect-protected:disabled {
359 opacity: 0.7 !important;
360 pointer-events: auto !important;
361 }
362
363 .metasync-sa-connect-title {
364 font-size: 16px;
365 font-weight: 600;
366 color: #23282d;
367 margin: 0 0 15px 0;
368 display: flex;
369 align-items: center;
370 gap: 8px;
371 }
372
373 .metasync-sa-connect-description {
374 color: #646970;
375 margin-bottom: 20px;
376 font-size: 14px;
377 line-height: 1.5;
378 }
379
380 #connect-searchatlas-btn {
381 position: relative;
382 background: linear-gradient(135deg, #0073aa 0%, #005177 100%);
383 color: #fff;
384 border: none;
385 padding: 12px 24px;
386 border-radius: 6px;
387 font-weight: 600;
388 font-size: 14px;
389 cursor: pointer;
390 transition: all 0.3s ease;
391 display: inline-flex;
392 align-items: center;
393 gap: 8px;
394 min-width: 180px;
395 justify-content: center;
396 }
397
398 #connect-searchatlas-btn:hover:not(:disabled) {
399 background: linear-gradient(135deg, #005177 0%, #003d56 100%);
400 transform: translateY(-1px);
401 box-shadow: 0 4px 12px rgba(0,115,170,0.3);
402 }
403
404 #connect-searchatlas-btn:disabled {
405 opacity: 0.7;
406 cursor: not-allowed;
407 transform: none;
408 }
409
410 .metasync-sa-connect-loading {
411 display: inline-block;
412 width: 16px;
413 height: 16px;
414 border: 2px solid #ffffff40;
415 border-top: 2px solid #ffffff;
416 border-radius: 50%;
417 animation: metasync-spin 1s linear infinite;
418 vertical-align: middle;
419 margin-right: 6px;
420 position: static; /* Keep in normal document flow */
421 }
422
423 @keyframes metasync-spin {
424 0% { transform: rotate(0deg); }
425 100% { transform: rotate(360deg); }
426 }
427
428 .metasync-sa-connect-progress {
429 margin-top: 15px;
430 padding: 15px;
431 background: #f8f9fa;
432 border-left: 4px solid #0073aa;
433 border-radius: 0 4px 4px 0;
434 display: none;
435 }
436
437 .metasync-sa-connect-progress-header {
438 display: flex;
439 justify-content: space-between;
440 align-items: center;
441 margin-bottom: 10px;
442 font-size: 14px;
443 }
444
445 .metasync-sa-connect-progress-time {
446 color: #646970;
447 font-size: 12px;
448 font-weight: normal;
449 }
450
451 .metasync-sa-connect-progress-text {
452 margin-top: 8px;
453 color: #646970;
454 font-size: 13px;
455 font-style: italic;
456 }
457
458 .metasync-sa-connect-progress-bar {
459 width: 100%;
460 height: 6px;
461 background: #e1e1e1;
462 border-radius: 3px;
463 overflow: hidden;
464 margin: 10px 0;
465 }
466
467 .metasync-sa-connect-progress-fill {
468 height: 100%;
469 background: linear-gradient(90deg, #0073aa 0%, #005177 100%);
470 width: 0%;
471 transition: width 0.3s ease;
472 border-radius: 3px;
473 }
474
475 .metasync-sa-connect-status {
476 margin-top: 15px;
477 padding: 12px 16px;
478 border-radius: 6px;
479 display: none;
480 font-weight: 500;
481 /* Removed metasync-slideIn animation - was too distracting */
482 }
483
484 @keyframes metasync-slideIn {
485 from {
486 opacity: 0;
487 transform: translateY(-10px);
488 }
489 to {
490 opacity: 1;
491 transform: translateY(0);
492 }
493 }
494
495 .metasync-sa-connect-status.success {
496 background: #d4edda;
497 border: 1px solid #c3e6cb;
498 color: #155724;
499 }
500
501 .metasync-sa-connect-status.error {
502 background: #f8d7da;
503 border: 1px solid #f5c6cb;
504 color: #721c24;
505 }
506
507 .metasync-sa-connect-status.info {
508 background: #d1ecf1;
509 border: 1px solid #bee5eb;
510 color: #0c5460;
511 }
512
513 .metasync-sa-connect-status.warning {
514 background: #fff3cd;
515 border: 1px solid #ffeaa7;
516 color: #856404;
517 }
518
519 .metasync-sa-connect-status-content {
520 margin-bottom: 10px;
521 }
522
523 .metasync-sa-connect-status-title {
524 font-weight: 600;
525 font-size: 15px;
526 margin-bottom: 8px;
527 display: flex;
528 align-items: center;
529 gap: 8px;
530 }
531
532 .metasync-sa-connect-status-message {
533 font-size: 14px;
534 line-height: 1.4;
535 opacity: 0.9;
536 }
537
538 .metasync-sa-connect-icon {
539 display: inline-block;
540 margin-right: 8px;
541 font-size: 16px;
542 }
543
544 /* Enhanced visual feedback */
545 .metasync-sa-connect-container:hover {
546 box-shadow: 0 2px 8px rgba(0,0,0,0.15);
547 transition: box-shadow 0.3s ease;
548 }
549
550 .metasync-sa-connect-success-animation {
551 animation: metasync-successPulse 0.6s ease-out;
552 }
553
554 @keyframes metasync-successPulse {
555 0% { transform: scale(1); }
556 50% { transform: scale(1.02); }
557 100% { transform: scale(1); }
558 }
559
560 /* Tooltip styles for help text */
561 .metasync-tooltip {
562 position: relative;
563 display: inline-block;
564 cursor: help;
565 color: #0073aa;
566 }
567
568 .metasync-tooltip::after {
569 content: attr(data-tooltip);
570 position: absolute;
571 bottom: 100%;
572 left: 50%;
573 transform: translateX(-50%);
574 background: #23282d;
575 color: #fff;
576 padding: 6px 10px;
577 border-radius: 4px;
578 font-size: 12px;
579 white-space: nowrap;
580 opacity: 0;
581 visibility: hidden;
582 transition: all 0.3s ease;
583 z-index: 1000;
584 }
585
586 .metasync-tooltip:hover::after {
587 opacity: 1;
588 visibility: visible;
589 transform: translateX(-50%) translateY(-5px);
590 }
591
592 .metasync-sa-connect-buttons {
593 display: flex;
594 gap: 12px;
595 align-items: center;
596 flex-wrap: wrap;
597 margin-bottom: 15px;
598 }
599
600 .metasync-sa-reset-btn {
601 background: #dc3545;
602 color: #fff;
603 border: 1px solid #dc3545;
604 padding: 10px 18px;
605 border-radius: 5px;
606 font-size: 13px;
607 font-weight: 500;
608 cursor: pointer;
609 transition: all 0.3s ease;
610 display: inline-flex;
611 align-items: center;
612 gap: 6px;
613 }
614
615 .metasync-sa-reset-btn:hover:not(:disabled) {
616 background: #c82333;
617 border-color: #c82333;
618 transform: translateY(-1px);
619 box-shadow: 0 3px 8px rgba(220,53,69,0.3);
620 }
621
622 .metasync-sa-reset-btn:disabled {
623 opacity: 0.7;
624 cursor: not-allowed;
625 transform: none;
626 }
627
628 .metasync-sa-connect-actions {
629 margin-top: 15px;
630 display: flex;
631 gap: 10px;
632 flex-wrap: wrap;
633 }
634
635 .metasync-sa-connect-btn {
636 padding: 8px 16px;
637 border-radius: 4px;
638 font-size: 13px;
639 text-decoration: none;
640 display: inline-flex;
641 align-items: center;
642 gap: 6px;
643 cursor: pointer;
644 transition: all 0.2s ease;
645 }
646
647 .metasync-sa-connect-btn.primary {
648 background: #0073aa;
649 color: #fff;
650 border: 1px solid #0073aa;
651 }
652
653 .metasync-sa-connect-btn.secondary {
654 background: #f1f1f1;
655 color: #50575e;
656 border: 1px solid #ccd0d4;
657 }
658
659 .metasync-sa-connect-btn:hover {
660 transform: translateY(-1px);
661 }
662
663 .metasync-pulse {
664 animation: metasync-pulse 2s ease-in-out infinite;
665 }
666
667 @keyframes metasync-pulse {
668 0%, 100% { opacity: 1; }
669 50% { opacity: 0.7; }
670 }
671
672 /* Enhanced Progress Bar Animations */
673 .metasync-sa-connect-progress-fill {
674 position: relative;
675 overflow: hidden;
676 }
677
678 .metasync-sa-connect-progress-fill::after {
679 content: '';
680 position: absolute;
681 top: 0;
682 left: 0;
683 bottom: 0;
684 right: 0;
685 background-image: linear-gradient(
686 -45deg,
687 rgba(255, 255, 255, 0.2) 25%,
688 transparent 25%,
689 transparent 50%,
690 rgba(255, 255, 255, 0.2) 50%,
691 rgba(255, 255, 255, 0.2) 75%,
692 transparent 75%,
693 transparent
694 );
695 background-size: 20px 20px;
696 animation: metasync-progressStripes 1s linear infinite;
697 }
698
699 @keyframes metasync-progressStripes {
700 0% { background-position: 0 0; }
701 100% { background-position: 20px 0; }
702 }
703
704 /* Enhanced button states */
705 #connect-searchatlas-btn.connecting {
706 background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);
707 }
708
709 #connect-searchatlas-btn.authenticating {
710 background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
711 }
712
713 #connect-searchatlas-btn.success {
714 background: linear-gradient(135deg, #27ae60 0%, #229954 100%);
715 }
716
717 /* Mobile Responsive Design */
718 @media (max-width: 768px) {
719 .metasync-sa-connect-container {
720 padding: 15px;
721 margin-top: 10px;
722 border-radius: 8px;
723 }
724
725 .metasync-sa-connect-buttons {
726 flex-direction: column;
727 gap: 10px;
728 align-items: stretch;
729 }
730
731 #connect-searchatlas-btn {
732 width: 100%;
733 padding: 15px;
734 font-size: 16px;
735 touch-action: manipulation; /* Improves tap responsiveness */
736 order: 1;
737 }
738
739 .metasync-sa-reset-btn {
740 width: 100%;
741 padding: 12px 18px;
742 font-size: 14px;
743 justify-content: center;
744 order: 2;
745 }
746
747 .metasync-sa-connect-actions {
748 flex-direction: column;
749 gap: 8px;
750 }
751
752 .metasync-sa-connect-btn {
753 justify-content: center;
754 padding: 12px 16px;
755 font-size: 14px;
756 }
757
758 .metasync-sa-connect-progress {
759 padding: 12px;
760 }
761
762 .metasync-sa-connect-progress-header {
763 flex-direction: column;
764 align-items: flex-start;
765 gap: 5px;
766 }
767
768 .metasync-sa-connect-status {
769 padding: 15px;
770 margin-top: 12px;
771 }
772
773 .metasync-sa-connect-status-title {
774 font-size: 16px;
775 }
776
777 /* Improve touch targets on mobile */
778 .metasync-sa-connect-btn, .metasync-sa-reset-btn {
779 min-height: 44px;
780 }
781
782 /* Mobile Header Optimizations */
783 .metasync-header {
784 flex-direction: column;
785 gap: 15px;
786 text-align: center;
787 }
788
789 .metasync-header-actions {
790 flex-direction: column;
791 gap: 10px;
792 width: 100%;
793 }
794
795 .metasync-dashboard-btn {
796 width: 100%;
797 justify-content: center;
798 padding: 12px 20px;
799 font-size: 16px;
800 }
801
802 .metasync-integration-status {
803 justify-content: center;
804 }
805 }
806
807 /* Tablet optimizations */
808 @media (min-width: 769px) and (max-width: 1024px) {
809 .metasync-sa-connect-container {
810 padding: 18px;
811 }
812
813 .metasync-sa-connect-actions {
814 flex-wrap: wrap;
815 justify-content: flex-start;
816 }
817 }
818
819 /* Dashboard Button Styling */
820 .metasync-header-actions {
821 display: flex;
822 align-items: center;
823 gap: 15px;
824 }
825
826 .metasync-dashboard-btn {
827 background: linear-gradient(135deg, #0073aa 0%, #005177 100%);
828 color: #fff;
829 text-decoration: none;
830 padding: 10px 18px;
831 border-radius: 6px;
832 font-weight: 500;
833 font-size: 14px;
834 display: inline-flex;
835 align-items: center;
836 gap: 6px;
837 transition: all 0.3s ease;
838 border: none;
839 cursor: pointer;
840 }
841
842 .metasync-dashboard-btn:hover,
843 .metasync-dashboard-btn:focus {
844 background: linear-gradient(135deg, #005177 0%, #003d56 100%);
845 transform: translateY(-1px);
846 box-shadow: 0 4px 12px rgba(0,115,170,0.3);
847 color: #fff;
848 text-decoration: none;
849 }
850
851 .metasync-integration-status {
852 display: flex;
853 align-items: center;
854 gap: 6px;
855 font-size: 13px;
856 padding: 8px 12px;
857 border-radius: 5px;
858 font-weight: 500;
859 }
860
861 .metasync-integration-status.integrated {
862 background: #d4edda;
863 color: #155724;
864 border: 1px solid #c3e6cb;
865 }
866
867 .metasync-integration-status.not-integrated {
868 background: #f8d7da;
869 color: #721c24;
870 border: 1px solid #f5c6cb;
871 }
872
873 .metasync-integration-status.warning {
874 background: #fff3cd;
875 color: #856404;
876 border: 1px solid #ffeeba;
877 }
878
879 .metasync-integration-status .status-indicator {
880 width: 8px;
881 height: 8px;
882 border-radius: 50%;
883 display: inline-block;
884 }
885
886 .metasync-integration-status.integrated .status-indicator {
887 background: #28a745;
888 }
889
890 .metasync-integration-status.not-integrated .status-indicator {
891 background: #dc3545;
892 }
893
894 .metasync-integration-status.warning .status-indicator {
895 background: #ffb900;
896 }
897
898 /* Header Layout */
899 .metasync-header {
900 display: flex;
901 justify-content: space-between;
902 align-items: center;
903 margin-bottom: 20px;
904 padding: 20px;
905 background: #fff;
906 border: 1px solid #ccd0d4;
907 border-radius: 8px;
908 box-shadow: 0 1px 3px rgba(0,0,0,0.1);
909 }
910
911 .metasync-header-left {
912 display: flex;
913 align-items: center;
914 gap: 15px;
915 }
916
917 .metasync-logo {
918 max-height: 40px;
919 width: auto;
920 }
921
922 /* Dashboard Iframe Styling */
923 .metasync-dashboard-iframe-container {
924 padding: 0;
925 overflow: hidden;
926 }
927
928 .metasync-dashboard-iframe-header {
929 display: flex;
930 justify-content: space-between;
931 align-items: center;
932 padding: 20px 20px 15px 20px;
933 border-bottom: 1px solid #e1e1e1;
934 background: #f8f9fa;
935 }
936
937 .metasync-dashboard-iframe-header h2 {
938 margin: 0;
939 color: #23282d;
940 font-size: 18px;
941 }
942
943 .metasync-dashboard-controls {
944 display: flex;
945 gap: 8px;
946 }
947
948 .metasync-dashboard-iframe-wrapper {
949 position: relative;
950 background: #fff;
951 overflow: hidden;
952 }
953
954 /* Iframe wrapper overlay - DISABLED to prevent black subsections */
955 /* .metasync-dashboard-iframe-wrapper::before {
956 content: '';
957 position: absolute;
958 top: 0;
959 left: 0;
960 right: 0;
961 height: 3px;
962 background: linear-gradient(90deg, #0073aa 0%, #005177 100%);
963 z-index: 1;
964 } */
965
966 #metasync-dashboard-iframe {
967 border: none;
968 display: block;
969 background: #f8f9fa;
970 transition: opacity 0.3s ease;
971
972 /* Custom scrollbar styling for better design integration */
973 scrollbar-width: thin;
974 scrollbar-color: #c1c1c1 #f8f9fa;
975 }
976
977 /* WebKit browsers (Chrome, Safari, Edge) scrollbar styling */
978 #metasync-dashboard-iframe::-webkit-scrollbar {
979 width: 12px;
980 height: 12px;
981 }
982
983 #metasync-dashboard-iframe::-webkit-scrollbar-track {
984 background: #f8f9fa;
985 border-radius: 6px;
986 }
987
988 #metasync-dashboard-iframe::-webkit-scrollbar-thumb {
989 background: #c1c1c1;
990 border-radius: 6px;
991 border: 2px solid #f8f9fa;
992 }
993
994 #metasync-dashboard-iframe::-webkit-scrollbar-thumb:hover {
995 background: #a8a8a8;
996 }
997
998 #metasync-dashboard-iframe::-webkit-scrollbar-corner {
999 background: #f8f9fa;
1000 }
1001
1002 #metasync-dashboard-iframe[src=""] {
1003 opacity: 0.7;
1004 }
1005
1006 .metasync-dashboard-iframe-footer {
1007 padding: 10px 20px;
1008 background: #f8f9fa;
1009 border-top: 1px solid #e1e1e1;
1010 }
1011
1012 .metasync-dashboard-iframe-footer code {
1013 background: #e9ecef;
1014 padding: 2px 6px;
1015 border-radius: 3px;
1016 font-size: 12px;
1017 }
1018
1019 /* Loading State for Iframe */
1020 .metasync-dashboard-iframe-loading {
1021 position: absolute;
1022 top: 50%;
1023 left: 50%;
1024 transform: translate(-50%, -50%);
1025 text-align: center;
1026 z-index: 2;
1027 display: flex;
1028 flex-direction: column;
1029 align-items: center;
1030 justify-content: center;
1031 }
1032
1033 .metasync-dashboard-iframe-loading .spinner {
1034 width: 40px;
1035 height: 40px;
1036 border: 4px solid #f3f3f3;
1037 border-top: 4px solid #0073aa;
1038 border-radius: 50%;
1039 animation: metasync-spin 1s linear infinite;
1040 margin: 0 auto 15px;
1041 display: block;
1042 }
1043
1044 .metasync-dashboard-iframe-loading p {
1045 margin: 0;
1046 color: #666;
1047 font-size: 14px;
1048 text-align: center;
1049 }
1050
1051 /* Mobile Iframe Optimizations */
1052 @media (max-width: 768px) {
1053 .metasync-dashboard-iframe-header {
1054 flex-direction: column;
1055 gap: 15px;
1056 align-items: stretch;
1057 text-align: center;
1058 }
1059
1060 .metasync-dashboard-controls {
1061 justify-content: center;
1062 flex-wrap: wrap;
1063 }
1064
1065 #metasync-dashboard-iframe {
1066 height: 600px; /* Shorter on mobile */
1067 }
1068
1069 .metasync-dashboard-iframe-footer {
1070 text-align: center;
1071 }
1072 }
1073
1074 /* Accessibility Improvements */
1075 .metasync-sa-connect-status:focus {
1076 outline: 2px solid #005177;
1077 outline-offset: 2px;
1078 }
1079
1080 .screen-reader-text {
1081 clip: rect(1px, 1px, 1px, 1px);
1082 position: absolute !important;
1083 height: 1px;
1084 width: 1px;
1085 overflow: hidden;
1086 }
1087
1088 /* Legacy styles maintained for backward compatibility */
1089 .metasync-seo-priority-control {
1090 max-width: 760px;
1091 }
1092
1093 .metasync-seo-priority-control > label {
1094 display: inline-flex;
1095 align-items: center;
1096 gap: 7px;
1097 line-height: 1.4;
1098 cursor: pointer;
1099 }
1100
1101 .metasync-seo-priority-control > label strong {
1102 font-weight: 600;
1103 }
1104
1105 .metasync-seo-priority-control .description {
1106 margin: 8px 0 0;
1107 line-height: 1.65;
1108 }
1109
1110 .metasync-seo-priority-control .metasync-seo-priority-note {
1111 display: inline-block;
1112 margin-top: 2px;
1113 font-weight: 500;
1114 }
1115
1116 .table {
1117 border: 0px;
1118 margin: 0px;
1119 }
1120
1121 .table td {
1122 text-align: center;
1123 border-bottom: 1px solid gray;
1124 padding: 3px;
1125 }
1126
1127 .description {
1128 color: #666;
1129 font-size: 13px;
1130 line-height: 1.5;
1131 }
1132
1133 .descriptionValue {
1134 color: green;
1135 padding: 2px;
1136 }
1137
1138 .bold {
1139 font-weight: 600;
1140 }
1141
1142 .wide-text {
1143 width: 100%;
1144 }
1145 .pl {
1146 padding-left: 30px;
1147 }
1148 .pr {
1149 padding-right: 30px;
1150 }
1151 .pt {
1152 padding-top: 30px;
1153 }
1154 .result-wrapper {
1155 background-color: white;
1156 text-align: center;
1157 padding: 20px;
1158 }
1159 .green-text-color {
1160 color: green;
1161 }
1162
1163 .red-text-color {
1164 color: red;
1165 }
1166
1167 .checkbox-list li {
1168 padding-bottom: 30px;
1169 }
1170
1171 .input-length {
1172 width: 20%;
1173 }
1174
1175 .add-form-table {
1176 width: 70%;
1177 background-color: white;
1178 }
1179
1180 .add-form-table tr th {
1181 padding-left: 10px;
1182 }
1183
1184 #source_urls {
1185 padding: 0px;
1186 margin: 0px;
1187 }
1188
1189 #add-redirection-form {
1190 display: none;
1191 }
1192 .hide {
1193 display: none;
1194 }
1195 .show {
1196 display: block;
1197 }
1198 .code-box {
1199 background-color: black !important;
1200 color: gray !important;
1201 width: 100%;
1202 }
1203
1204 /* XML Sitemap Styles */
1205 .metasync-sitemap-container {
1206 max-width: 1200px;
1207 margin: 0 auto;
1208 }
1209
1210 .metasync-sitemap-status-card,
1211 .metasync-sitemap-warning-card,
1212 .metasync-sitemap-actions-card,
1213 .metasync-sitemap-preview-card,
1214 .metasync-sitemap-info-card {
1215 margin-bottom: 20px;
1216 }
1217
1218 .metasync-sitemap-status-grid {
1219 display: grid;
1220 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1221 gap: 20px;
1222 margin-bottom: 20px;
1223 }
1224
1225 .metasync-sitemap-stat {
1226 display: flex;
1227 align-items: center;
1228 gap: 15px;
1229 padding: 15px;
1230 background: var(--dashboard-card-bg, #f8f9fa);
1231 border: 1px solid var(--dashboard-border, #e1e1e1);
1232 border-radius: 8px;
1233 transition: transform 0.2s ease, box-shadow 0.2s ease;
1234 }
1235
1236 .metasync-sitemap-stat:hover {
1237 transform: translateY(-2px);
1238 box-shadow: 0 4px 12px rgba(0,0,0,0.1);
1239 }
1240
1241 .metasync-sitemap-stat .stat-icon {
1242 font-size: 32px;
1243 line-height: 1;
1244 }
1245
1246 .metasync-sitemap-stat .stat-content {
1247 flex: 1;
1248 }
1249
1250 .metasync-sitemap-stat .stat-label {
1251 font-size: 12px;
1252 color: var(--dashboard-text-secondary, #666);
1253 text-transform: uppercase;
1254 letter-spacing: 0.5px;
1255 margin-bottom: 5px;
1256 font-weight: 600;
1257 }
1258
1259 .metasync-sitemap-stat .stat-value {
1260 font-size: 24px;
1261 font-weight: 700;
1262 color: var(--dashboard-text-primary, #23282d);
1263 }
1264
1265 .metasync-sitemap-stat .stat-value.stat-value-small {
1266 font-size: 14px;
1267 }
1268
1269 .metasync-sitemap-stat .stat-value.status-active {
1270 color: #28a745;
1271 }
1272
1273 .metasync-sitemap-stat .stat-value.status-inactive {
1274 color: #dc3545;
1275 }
1276
1277 .metasync-sitemap-url-box {
1278 padding: 15px;
1279 background: var(--dashboard-card-bg, #f0f6ff);
1280 border: 1px solid var(--dashboard-accent, #3b82f6);
1281 border-radius: 6px;
1282 margin-top: 20px;
1283 }
1284
1285 .metasync-sitemap-url-box strong {
1286 display: block;
1287 margin-bottom: 8px;
1288 color: var(--dashboard-text-primary, #23282d);
1289 }
1290
1291 .metasync-sitemap-link {
1292 color: var(--dashboard-accent, #0073aa);
1293 text-decoration: none;
1294 font-weight: 500;
1295 word-break: break-all;
1296 }
1297
1298 .metasync-sitemap-link:hover {
1299 text-decoration: underline;
1300 }
1301
1302 .metasync-sitemap-link .dashicons {
1303 font-size: 14px;
1304 vertical-align: middle;
1305 }
1306
1307 .metasync-sitemap-info-notice {
1308 background: #e7f3ff;
1309 border-left: 4px solid #0073aa;
1310 }
1311
1312 .metasync-info-notice-content {
1313 display: flex;
1314 align-items: flex-start;
1315 gap: 15px;
1316 }
1317
1318 .metasync-info-notice-content .dashicons {
1319 flex-shrink: 0;
1320 margin-top: 2px;
1321 }
1322
1323 .metasync-sitemap-actions-grid {
1324 display: grid;
1325 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
1326 gap: 20px;
1327 }
1328
1329 .metasync-sitemap-action-form {
1330 text-align: center;
1331 }
1332
1333 .metasync-sitemap-button-large {
1334 width: 100%;
1335 min-height: 60px;
1336 font-size: 16px;
1337 display: flex;
1338 align-items: center;
1339 justify-content: center;
1340 gap: 8px;
1341 }
1342
1343 .metasync-sitemap-button-large .dashicons {
1344 font-size: 20px;
1345 }
1346
1347 .metasync-button-description {
1348 margin-top: 10px;
1349 font-size: 13px;
1350 color: var(--dashboard-text-secondary, #666);
1351 font-style: italic;
1352 }
1353
1354 .button-warning {
1355 background: #ff9800;
1356 border-color: #f57c00;
1357 color: #fff;
1358 }
1359
1360 .button-warning:hover,
1361 .button-warning:focus {
1362 background: #f57c00;
1363 border-color: #e65100;
1364 color: #fff;
1365 }
1366
1367 .metasync-sitemap-preview-container {
1368 background: var(--dashboard-card-bg, #f8f9fa);
1369 border: 1px solid var(--dashboard-border, #e1e1e1);
1370 border-radius: 8px;
1371 overflow: hidden;
1372 }
1373
1374 .metasync-sitemap-preview-header {
1375 display: flex;
1376 justify-content: space-between;
1377 align-items: center;
1378 padding: 12px 15px;
1379 background: var(--dashboard-border, #e9ecef);
1380 border-bottom: 1px solid var(--dashboard-border, #dee2e6);
1381 }
1382
1383 .metasync-preview-label {
1384 font-family: monospace;
1385 font-weight: 600;
1386 color: var(--dashboard-text-primary, #23282d);
1387 }
1388
1389 .metasync-sitemap-code-block {
1390 max-height: 400px;
1391 overflow: auto;
1392 }
1393
1394 .metasync-sitemap-code-block pre {
1395 margin: 0;
1396 padding: 20px;
1397 background: var(--dashboard-card-bg, #f8f9fa);
1398 font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace;
1399 font-size: 13px;
1400 line-height: 1.6;
1401 color: var(--dashboard-text-primary, #23282d);
1402 white-space: pre-wrap;
1403 word-wrap: break-word;
1404 }
1405
1406 .metasync-info-section {
1407 margin-bottom: 20px;
1408 }
1409
1410 .metasync-info-section h3 {
1411 color: var(--dashboard-accent, #3b82f6);
1412 font-size: 16px;
1413 margin-bottom: 10px;
1414 }
1415
1416 .metasync-info-section p {
1417 color: var(--dashboard-text-secondary, #666);
1418 line-height: 1.6;
1419 margin-bottom: 10px;
1420 }
1421
1422 .metasync-submit-list {
1423 list-style: none;
1424 padding: 0;
1425 }
1426
1427 .metasync-submit-list li {
1428 padding: 8px 0;
1429 color: var(--dashboard-text-secondary, #666);
1430 }
1431
1432 .metasync-submit-list li strong {
1433 color: var(--dashboard-text-primary, #23282d);
1434 }
1435
1436 .metasync-submit-list code {
1437 background: var(--dashboard-border, #e9ecef);
1438 padding: 2px 6px;
1439 border-radius: 3px;
1440 font-size: 12px;
1441 color: var(--dashboard-accent, #0073aa);
1442 }
1443
1444 .metasync-inline-form {
1445 margin-top: 15px;
1446 }
1447
1448 @media (max-width: 768px) {
1449 .metasync-sitemap-status-grid {
1450 grid-template-columns: 1fr;
1451 }
1452
1453 .metasync-sitemap-actions-grid {
1454 grid-template-columns: 1fr;
1455 }
1456
1457 .metasync-sitemap-stat .stat-value {
1458 font-size: 20px;
1459 }
1460 }
1461
1462 /* Sitemap Files Table */
1463 .metasync-sitemap-table {
1464 width: 100%;
1465 border-collapse: collapse;
1466 margin-top: 15px;
1467 background: var(--dashboard-card-bg);
1468 border-radius: 8px;
1469 overflow: hidden;
1470 }
1471
1472 .metasync-sitemap-table th {
1473 background: var(--dashboard-card-header-bg, rgba(255,255,255,0.05));
1474 color: var(--dashboard-text-primary);
1475 padding: 12px 15px;
1476 text-align: left;
1477 font-weight: 600;
1478 border-bottom: 1px solid var(--dashboard-border-color);
1479 }
1480
1481 .metasync-sitemap-table td {
1482 padding: 12px 15px;
1483 color: var(--dashboard-text-primary);
1484 border-bottom: 1px solid var(--dashboard-border-color);
1485 }
1486
1487 .metasync-sitemap-table tbody tr:hover {
1488 background: var(--dashboard-card-header-bg, rgba(255,255,255,0.03));
1489 }
1490
1491 .metasync-sitemap-table tbody tr:last-child td {
1492 border-bottom: none;
1493 }
1494
1495 .metasync-sitemap-table .sitemap-filename {
1496 font-weight: 600;
1497 color: var(--dashboard-text-primary);
1498 }
1499
1500 .metasync-sitemap-table .sitemap-url-range {
1501 font-size: 12px;
1502 color: var(--dashboard-text-secondary);
1503 margin-top: 4px;
1504 }
1505
1506 .metasync-sitemap-table .button-view {
1507 display: inline-flex;
1508 align-items: center;
1509 gap: 5px;
1510 padding: 6px 12px;
1511 background: var(--dashboard-accent-color, #6366f1);
1512 color: #fff;
1513 border: none;
1514 border-radius: 6px;
1515 font-size: 13px;
1516 line-height: 1.4;
1517 text-decoration: none;
1518 transition: background 0.2s ease;
1519 vertical-align: middle;
1520 }
1521
1522 .metasync-sitemap-table .button-view:hover {
1523 background: var(--dashboard-accent-hover, #4f46e5);
1524 color: #fff;
1525 }
1526
1527 .metasync-sitemap-table .button-view .dashicons {
1528 font-size: 14px;
1529 width: 14px;
1530 height: 14px;
1531 color: #fff;
1532 }
1533
1534 .metasync-sitemap-table .button-delete {
1535 display: inline-flex;
1536 align-items: center;
1537 gap: 5px;
1538 padding: 6px 12px;
1539 background: #dc3232;
1540 color: #fff;
1541 border: none;
1542 border-radius: 6px;
1543 font-size: 13px;
1544 line-height: 1.4;
1545 cursor: pointer;
1546 transition: background 0.2s ease;
1547 vertical-align: middle;
1548 }
1549
1550 .metasync-sitemap-table td form {
1551 display: inline;
1552 vertical-align: middle;
1553 }
1554
1555 .metasync-sitemap-table .button-delete:hover {
1556 background: #b52727;
1557 color: #fff;
1558 }
1559
1560 .metasync-sitemap-table .button-delete .dashicons {
1561 font-size: 14px;
1562 width: 14px;
1563 height: 14px;
1564 color: #fff;
1565 }
1566
1567 .metasync-auth-token-row {
1568 display: flex;
1569 align-items: center;
1570 flex-wrap: wrap;
1571 gap: 10px;
1572 }
1573
1574 .metasync-auth-token-row input.regular-text {
1575 flex: 0 0 auto;
1576 }
1577
1578 .metasync-auth-token-row .metasync-refresh-token-btn {
1579 margin: 0;
1580 flex-shrink: 0;
1581 min-width: 175px;
1582 text-align: center;
1583 /*
1584 * WP core's .wp-core-ui .button rule sets line-height: 2.92308 (a unitless
1585 * ratio tuned for its own 13px font-size). metasync-dashboard.css bumps this
1586 * button's font-size to 14px without resetting line-height, so the ratio
1587 * recalculates against the new font-size to ~41px, ballooning the button to
1588 * ~67px tall vs ~43-45px for every other button/field on this row (WP-529).
1589 * Resetting line-height here (after both stylesheets, so it always wins)
1590 * restores it to the same height as its neighbors.
1591 */
1592 line-height: normal;
1593 }
1594
1595 .metasync-refresh-token-btn .dashicons {
1596 font-size: 14px;
1597 width: 14px;
1598 height: 14px;
1599 line-height: 1.4;
1600 vertical-align: middle;
1601 margin-right: 4px;
1602 }
1603
1604 @media screen and (max-width: 782px) {
1605 .metasync-auth-token-row {
1606 flex-direction: column;
1607 align-items: flex-start;
1608 }
1609
1610 .metasync-auth-token-row .metasync-refresh-token-btn {
1611 margin-top: 8px;
1612 }
1613 }
1614
1615 @media (max-width: 768px) {
1616 .metasync-sitemap-table th,
1617 .metasync-sitemap-table td {
1618 padding: 10px 12px;
1619 font-size: 13px;
1620 }
1621 }
1622
1623 /* ================================================
1624 Content Genius User Role Sync Selector
1625 ================================================ */
1626
1627 .metasync-role-selector-container {
1628 display: block;
1629 max-width: 600px;
1630 max-height: 250px;
1631 overflow-y: auto;
1632 overflow-x: hidden;
1633 border: 1px solid #ddd;
1634 border-radius: 6px;
1635 padding: 15px;
1636 background: transparent;
1637 margin-bottom: 10px;
1638 }
1639
1640 /* Scrollbar styling for webkit browsers */
1641 .metasync-role-selector-container::-webkit-scrollbar {
1642 width: 8px;
1643 }
1644
1645 .metasync-role-selector-container::-webkit-scrollbar-track {
1646 background: var(--dashboard-border, #f1f1f1);
1647 border-radius: 4px;
1648 }
1649
1650 .metasync-role-selector-container::-webkit-scrollbar-thumb {
1651 background: var(--dashboard-text-secondary, #999);
1652 border-radius: 4px;
1653 transition: background 0.3s ease;
1654 }
1655
1656 .metasync-role-selector-container::-webkit-scrollbar-thumb:hover {
1657 background: var(--dashboard-text-primary, #666);
1658 }
1659
1660 /* All Roles Option */
1661 .metasync-role-option-all {
1662 display: block;
1663 width: 100%;
1664 padding: 10px;
1665 background: transparent;
1666 border: none;
1667 cursor: pointer;
1668 border-radius: 4px;
1669 transition: background-color 0.2s ease;
1670 }
1671
1672 .metasync-role-option-all:hover {
1673 background-color: rgba(0, 0, 0, 0.05);
1674 }
1675
1676 .metasync-role-option-all input[type="checkbox"] {
1677 margin: 0 8px 0 0;
1678 vertical-align: middle;
1679 }
1680
1681 .metasync-role-option-all strong {
1682 vertical-align: middle;
1683 color: var(--dashboard-text-primary, #23282d);
1684 font-weight: 600;
1685 font-size: 14px;
1686 }
1687
1688 /* Divider */
1689 .metasync-role-divider {
1690 margin: 15px 0;
1691 border: 0;
1692 border-top: 1px solid var(--dashboard-border, #ddd);
1693 }
1694
1695 /* Individual Role Options */
1696 .metasync-role-option {
1697 display: block;
1698 width: 100%;
1699 margin-bottom: 8px;
1700 padding: 8px 10px;
1701 cursor: pointer;
1702 background: transparent;
1703 border: none;
1704 border-radius: 4px;
1705 transition: background-color 0.2s ease;
1706 }
1707
1708 .metasync-role-option:hover {
1709 background-color: rgba(0, 0, 0, 0.05);
1710 }
1711
1712 .metasync-role-option:last-child {
1713 margin-bottom: 0;
1714 }
1715
1716 .metasync-role-option input[type="checkbox"] {
1717 margin: 0 8px 0 0;
1718 vertical-align: middle;
1719 }
1720
1721 .metasync-role-label {
1722 color: var(--dashboard-text-primary, #23282d);
1723 font-size: 14px;
1724 vertical-align: middle;
1725 cursor: pointer;
1726 }
1727
1728
1729 /* Responsive adjustments */
1730 @media (max-width: 768px) {
1731 .metasync-role-selector-container {
1732 max-height: 200px;
1733 padding: 12px;
1734 }
1735
1736 .metasync-role-option-all,
1737 .metasync-role-option {
1738 padding: 6px 8px;
1739 }
1740
1741 .metasync-role-label,
1742 .metasync-role-option-all strong {
1743 font-size: 13px;
1744 }
1745 }
1746
1747 /* Dark Mode Support for Role Selector */
1748 @media (prefers-color-scheme: dark) {
1749 .metasync-role-selector-container {
1750 border-color: var(--dashboard-border, #374151);
1751 }
1752
1753 .metasync-role-label,
1754 .metasync-role-option-all strong {
1755 color: var(--dashboard-text-primary, #ffffff);
1756 }
1757
1758 .metasync-role-divider {
1759 border-top-color: var(--dashboard-border, #374151);
1760 }
1761
1762 .metasync-role-option:hover,
1763 .metasync-role-option-all:hover {
1764 background-color: var(--dashboard-card-hover, rgba(255, 255, 255, 0.05));
1765 }
1766 }
1767
1768 /* HTML-Converted Pages Badge */
1769 .metasync-html-badge {
1770 display: inline-flex;
1771 align-items: center;
1772 gap: 4px;
1773 padding: 4px 10px;
1774 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1775 color: #ffffff;
1776 border-radius: 12px;
1777 font-size: 11px;
1778 font-weight: 600;
1779 text-transform: uppercase;
1780 letter-spacing: 0.5px;
1781 cursor: help;
1782 transition: all 0.2s ease;
1783 box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);
1784 }
1785
1786 .metasync-html-badge:hover {
1787 transform: translateY(-1px);
1788 box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);
1789 }
1790
1791 .metasync-badge-icon {
1792 font-size: 13px;
1793 line-height: 1;
1794 animation: pulse 2s ease-in-out infinite;
1795 }
1796
1797 .metasync-badge-text {
1798 line-height: 1;
1799 }
1800
1801 @keyframes pulse {
1802 0%, 100% {
1803 opacity: 1;
1804 }
1805 50% {
1806 opacity: 0.7;
1807 }
1808 }
1809
1810 /* Responsive adjustments for badge */
1811 @media (max-width: 782px) {
1812 .metasync-html-badge {
1813 font-size: 10px;
1814 padding: 3px 8px;
1815 gap: 3px;
1816 }
1817
1818 .metasync-badge-icon {
1819 font-size: 12px;
1820 }
1821 }
1822
1823 /* Dark mode support for badge */
1824 @media (prefers-color-scheme: dark) {
1825 .metasync-html-badge {
1826 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1827 box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
1828 }
1829
1830 .metasync-html-badge:hover {
1831 box-shadow: 0 4px 8px rgba(102, 126, 234, 0.4);
1832 }
1833 }
1834
1835 /* Page Editor Notice Banner */
1836 .metasync-editor-notice {
1837 margin: 15px 0 20px;
1838 border-left: 4px solid #667eea;
1839 background: linear-gradient(90deg, rgba(102, 126, 234, 0.05) 0%, rgba(118, 75, 162, 0.02) 100%);
1840 }
1841
1842 .metasync-editor-notice-content {
1843 display: flex;
1844 align-items: center;
1845 gap: 15px;
1846 padding: 8px 12px;
1847 }
1848
1849 .metasync-editor-badge {
1850 display: inline-flex;
1851 align-items: center;
1852 gap: 6px;
1853 padding: 6px 14px;
1854 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1855 color: #ffffff;
1856 border-radius: 14px;
1857 font-size: 12px;
1858 font-weight: 700;
1859 text-transform: uppercase;
1860 letter-spacing: 0.5px;
1861 white-space: nowrap;
1862 box-shadow: 0 2px 6px rgba(102, 126, 234, 0.25);
1863 }
1864
1865 .metasync-editor-message {
1866 margin: 0;
1867 font-size: 13px;
1868 line-height: 1.5;
1869 color: #2c3e50;
1870 }
1871
1872 .metasync-editor-message strong {
1873 color: #667eea;
1874 }
1875
1876 /* Quick Edit Badge Display */
1877 .metasync-quick-edit-source {
1878 clear: both;
1879 padding: 10px 12px;
1880 }
1881
1882 .metasync-quick-edit-source .title {
1883 display: inline-block;
1884 min-width: 80px;
1885 font-weight: 600;
1886 color: #1d2327;
1887 }
1888
1889 .metasync-quick-edit-badge-container {
1890 display: inline-block;
1891 vertical-align: middle;
1892 margin-left: 8px;
1893 }
1894
1895 .metasync-quick-edit-badge-container em {
1896 color: #787c82;
1897 font-size: 12px;
1898 }
1899
1900 /* Dashboard Widget */
1901 .metasync-dashboard-widget {
1902 margin: -12px;
1903 }
1904
1905 .metasync-widget-stats {
1906 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1907 color: #ffffff;
1908 padding: 20px;
1909 text-align: center;
1910 }
1911
1912 .metasync-stat-box {
1913 display: flex;
1914 flex-direction: column;
1915 align-items: center;
1916 gap: 8px;
1917 }
1918
1919 .metasync-stat-number {
1920 font-size: 48px;
1921 font-weight: 700;
1922 line-height: 1;
1923 text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1924 }
1925
1926 .metasync-stat-label {
1927 font-size: 14px;
1928 font-weight: 500;
1929 opacity: 0.95;
1930 text-transform: uppercase;
1931 letter-spacing: 0.5px;
1932 }
1933
1934 .metasync-widget-list {
1935 padding: 16px 20px;
1936 }
1937
1938 .metasync-widget-list h4 {
1939 margin: 0 0 12px;
1940 font-size: 14px;
1941 font-weight: 600;
1942 color: #1d2327;
1943 text-transform: uppercase;
1944 letter-spacing: 0.5px;
1945 }
1946
1947 .metasync-widget-list ul {
1948 margin: 0;
1949 padding: 0;
1950 list-style: none;
1951 }
1952
1953 .metasync-widget-page-item {
1954 display: flex;
1955 align-items: flex-start;
1956 gap: 10px;
1957 padding: 10px 0;
1958 border-bottom: 1px solid #f0f0f1;
1959 }
1960
1961 .metasync-widget-page-item:last-child {
1962 border-bottom: none;
1963 }
1964
1965 .metasync-page-icon {
1966 font-size: 16px;
1967 line-height: 1;
1968 padding-top: 2px;
1969 opacity: 0.7;
1970 }
1971
1972 .metasync-page-details {
1973 flex: 1;
1974 min-width: 0;
1975 }
1976
1977 .metasync-page-title {
1978 display: block;
1979 font-weight: 600;
1980 color: #2271b1;
1981 text-decoration: none;
1982 margin-bottom: 4px;
1983 white-space: nowrap;
1984 overflow: hidden;
1985 text-overflow: ellipsis;
1986 }
1987
1988 .metasync-page-title:hover {
1989 color: #135e96;
1990 text-decoration: underline;
1991 }
1992
1993 .metasync-page-meta {
1994 display: block;
1995 font-size: 12px;
1996 color: #787c82;
1997 }
1998
1999 .metasync-page-meta a {
2000 color: #787c82;
2001 text-decoration: none;
2002 }
2003
2004 .metasync-page-meta a:hover {
2005 color: #2271b1;
2006 }
2007
2008 .metasync-widget-footer {
2009 padding: 12px 20px;
2010 background: #f6f7f7;
2011 border-top: 1px solid #e0e0e0;
2012 text-align: center;
2013 }
2014
2015 .metasync-widget-footer a {
2016 color: #667eea;
2017 text-decoration: none;
2018 font-weight: 600;
2019 font-size: 13px;
2020 }
2021
2022 .metasync-widget-footer a:hover {
2023 color: #764ba2;
2024 text-decoration: underline;
2025 }
2026
2027 .metasync-dashboard-widget-empty {
2028 padding: 20px;
2029 text-align: center;
2030 }
2031
2032 /* Responsive adjustments for editor notice */
2033 @media (max-width: 782px) {
2034 .metasync-editor-notice-content {
2035 flex-direction: column;
2036 align-items: flex-start;
2037 gap: 10px;
2038 }
2039
2040 .metasync-editor-badge {
2041 font-size: 11px;
2042 padding: 5px 12px;
2043 }
2044
2045 .metasync-editor-message {
2046 font-size: 12px;
2047 }
2048 }
2049
2050 /* Dark mode support for new elements */
2051 @media (prefers-color-scheme: dark) {
2052 .metasync-editor-notice {
2053 background: linear-gradient(90deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.05) 100%);
2054 }
2055
2056 .metasync-editor-message {
2057 color: #e4e4e7;
2058 }
2059
2060 .metasync-quick-edit-source .title {
2061 color: #f0f0f1;
2062 }
2063
2064 .metasync-widget-list h4 {
2065 color: #f0f0f1;
2066 }
2067
2068 .metasync-widget-page-item {
2069 border-bottom-color: #3c434a;
2070 }
2071
2072 .metasync-page-title {
2073 color: #72aee6;
2074 }
2075
2076 .metasync-page-title:hover {
2077 color: #9ecaed;
2078 }
2079
2080 .metasync-page-meta,
2081 .metasync-page-meta a {
2082 color: #a7aaad;
2083 }
2084
2085 .metasync-widget-footer {
2086 background: #1d2327;
2087 border-top-color: #3c434a;
2088 }
2089 }
2090
2091 /* =====================================================================
2092 Compatibility Page — msrp-compat-* inner list components
2093 ===================================================================== */
2094
2095 /* Remove default accordion padding so rows fill edge-to-edge */
2096 .msrp-compat-accordion.metasync-accordion-content[data-state="open"] {
2097 padding: 0;
2098 }
2099
2100 .msrp-compat-list {
2101 display: flex;
2102 flex-direction: column;
2103 border-top: 1px solid var(--dashboard-border, #e2e8f0);
2104 }
2105
2106 .msrp-compat-row {
2107 display: flex;
2108 align-items: center;
2109 justify-content: space-between;
2110 gap: 10px;
2111 padding: 11px 24px;
2112 border-bottom: 1px solid var(--dashboard-border, #e2e8f0);
2113 border-left: 3px solid transparent;
2114 transition: background 0.15s;
2115 }
2116
2117 .msrp-compat-row:last-child {
2118 border-bottom: none;
2119 }
2120
2121 .msrp-compat-row:hover {
2122 background: var(--dashboard-card-hover, rgba(0,0,0,.03));
2123 }
2124
2125 /* Left indicator stripe */
2126 .msrp-indicator-active { border-left-color: #22c55e; }
2127 .msrp-indicator-installed { border-left-color: #f59e0b; }
2128 .msrp-indicator-none { border-left-color: transparent; }
2129
2130 .msrp-compat-row-left {
2131 display: flex;
2132 flex-direction: column;
2133 gap: 2px;
2134 min-width: 0;
2135 }
2136
2137 .msrp-compat-name {
2138 font-size: 13px;
2139 font-weight: 500;
2140 color: var(--dashboard-text-primary, #1e293b);
2141 }
2142
2143 .msrp-compat-note {
2144 font-size: 11px;
2145 color: var(--dashboard-text-secondary, #64748b);
2146 line-height: 1.3;
2147 }
2148
2149 .msrp-compat-row-right {
2150 display: flex;
2151 align-items: center;
2152 gap: 6px;
2153 flex-shrink: 0;
2154 }
2155
2156 /* Pills */
2157 .msrp-pill {
2158 display: inline-flex;
2159 align-items: center;
2160 padding: 2px 8px;
2161 border-radius: 20px;
2162 font-size: 11px;
2163 font-weight: 600;
2164 white-space: nowrap;
2165 line-height: 1.6;
2166 }
2167
2168 .msrp-pill-active {
2169 background: #dcfce7;
2170 color: #15803d;
2171 }
2172
2173 .msrp-pill-installed {
2174 background: #fef3c7;
2175 color: #92400e;
2176 }
2177
2178 .msrp-pill-none {
2179 background: var(--dashboard-bg, #f1f5f9);
2180 color: var(--dashboard-text-secondary, #64748b);
2181 }
2182
2183 .msrp-pill-supported {
2184 background: rgba(34, 113, 177, 0.1);
2185 color: var(--dashboard-accent, #2271b1);
2186 }
2187
2188 /* Lays the logo preview out as image + remove control side by side,
2189 top-aligned to the image's upper-right, with real spacing between
2190 them instead of an inline WP core button that renders full-size and
2191 flush against the image with no gap. */
2192 .metasync-logo-preview-wrap {
2193 display: inline-flex;
2194 align-items: flex-start;
2195 gap: 16px;
2196 }
2197
2198 #local_seo_logo_close_btn.metasync-logo-remove-btn {
2199 box-sizing: border-box;
2200 width: 32px;
2201 height: 32px;
2202 min-height: 32px;
2203 padding: 0;
2204 margin: 0;
2205 flex-shrink: 0;
2206 /* WP core's .wp-core-ui .button line-height is tuned for a text
2207 label, not a fixed-size square icon; reset it so the glyph
2208 stays centered instead of inflating the button box. */
2209 line-height: 27px !important;
2210 font-size: 16px;
2211 font-weight: 700;
2212 text-align: center;
2213 /* !important: WP core's .button-secondary text/background rules
2214 otherwise win the cascade — the glyph rendered white-on-white,
2215 and a hardcoded white fill clashed with dark admin color
2216 schemes. Transparent lets whatever sits behind it show through
2217 in both light and dark themes; only the border/glyph are red. */
2218 color: #d63638 !important;
2219 background: transparent !important;
2220 border: 2px solid #d63638;
2221 border-radius: 6px;
2222 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
2223 cursor: pointer;
2224 }
2225
2226 #local_seo_logo_close_btn.metasync-logo-remove-btn:hover,
2227 #local_seo_logo_close_btn.metasync-logo-remove-btn:focus {
2228 background: #d63638 !important;
2229 color: #fff !important;
2230 }
2231