PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.6.23
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.6.23
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 / admin / css / metasync-admin.css

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

2,203 lines 46.2 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 .table {
1090 border: 0px;
1091 margin: 0px;
1092 }
1093
1094 .table td {
1095 text-align: center;
1096 border-bottom: 1px solid gray;
1097 padding: 3px;
1098 }
1099
1100 .description {
1101 color: #666;
1102 font-size: 13px;
1103 line-height: 1.5;
1104 }
1105
1106 .descriptionValue {
1107 color: green;
1108 padding: 2px;
1109 }
1110
1111 .bold {
1112 font-weight: 600;
1113 }
1114
1115 .wide-text {
1116 width: 100%;
1117 }
1118 .pl {
1119 padding-left: 30px;
1120 }
1121 .pr {
1122 padding-right: 30px;
1123 }
1124 .pt {
1125 padding-top: 30px;
1126 }
1127 .result-wrapper {
1128 background-color: white;
1129 text-align: center;
1130 padding: 20px;
1131 }
1132 .green-text-color {
1133 color: green;
1134 }
1135
1136 .red-text-color {
1137 color: red;
1138 }
1139
1140 .checkbox-list li {
1141 padding-bottom: 30px;
1142 }
1143
1144 .input-length {
1145 width: 20%;
1146 }
1147
1148 .add-form-table {
1149 width: 70%;
1150 background-color: white;
1151 }
1152
1153 .add-form-table tr th {
1154 padding-left: 10px;
1155 }
1156
1157 #source_urls {
1158 padding: 0px;
1159 margin: 0px;
1160 }
1161
1162 #add-redirection-form {
1163 display: none;
1164 }
1165 .hide {
1166 display: none;
1167 }
1168 .show {
1169 display: block;
1170 }
1171 .code-box {
1172 background-color: black !important;
1173 color: gray !important;
1174 width: 100%;
1175 }
1176
1177 /* XML Sitemap Styles */
1178 .metasync-sitemap-container {
1179 max-width: 1200px;
1180 margin: 0 auto;
1181 }
1182
1183 .metasync-sitemap-status-card,
1184 .metasync-sitemap-warning-card,
1185 .metasync-sitemap-actions-card,
1186 .metasync-sitemap-preview-card,
1187 .metasync-sitemap-info-card {
1188 margin-bottom: 20px;
1189 }
1190
1191 .metasync-sitemap-status-grid {
1192 display: grid;
1193 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1194 gap: 20px;
1195 margin-bottom: 20px;
1196 }
1197
1198 .metasync-sitemap-stat {
1199 display: flex;
1200 align-items: center;
1201 gap: 15px;
1202 padding: 15px;
1203 background: var(--dashboard-card-bg, #f8f9fa);
1204 border: 1px solid var(--dashboard-border, #e1e1e1);
1205 border-radius: 8px;
1206 transition: transform 0.2s ease, box-shadow 0.2s ease;
1207 }
1208
1209 .metasync-sitemap-stat:hover {
1210 transform: translateY(-2px);
1211 box-shadow: 0 4px 12px rgba(0,0,0,0.1);
1212 }
1213
1214 .metasync-sitemap-stat .stat-icon {
1215 font-size: 32px;
1216 line-height: 1;
1217 }
1218
1219 .metasync-sitemap-stat .stat-content {
1220 flex: 1;
1221 }
1222
1223 .metasync-sitemap-stat .stat-label {
1224 font-size: 12px;
1225 color: var(--dashboard-text-secondary, #666);
1226 text-transform: uppercase;
1227 letter-spacing: 0.5px;
1228 margin-bottom: 5px;
1229 font-weight: 600;
1230 }
1231
1232 .metasync-sitemap-stat .stat-value {
1233 font-size: 24px;
1234 font-weight: 700;
1235 color: var(--dashboard-text-primary, #23282d);
1236 }
1237
1238 .metasync-sitemap-stat .stat-value.stat-value-small {
1239 font-size: 14px;
1240 }
1241
1242 .metasync-sitemap-stat .stat-value.status-active {
1243 color: #28a745;
1244 }
1245
1246 .metasync-sitemap-stat .stat-value.status-inactive {
1247 color: #dc3545;
1248 }
1249
1250 .metasync-sitemap-url-box {
1251 padding: 15px;
1252 background: var(--dashboard-card-bg, #f0f6ff);
1253 border: 1px solid var(--dashboard-accent, #3b82f6);
1254 border-radius: 6px;
1255 margin-top: 20px;
1256 }
1257
1258 .metasync-sitemap-url-box strong {
1259 display: block;
1260 margin-bottom: 8px;
1261 color: var(--dashboard-text-primary, #23282d);
1262 }
1263
1264 .metasync-sitemap-link {
1265 color: var(--dashboard-accent, #0073aa);
1266 text-decoration: none;
1267 font-weight: 500;
1268 word-break: break-all;
1269 }
1270
1271 .metasync-sitemap-link:hover {
1272 text-decoration: underline;
1273 }
1274
1275 .metasync-sitemap-link .dashicons {
1276 font-size: 14px;
1277 vertical-align: middle;
1278 }
1279
1280 .metasync-sitemap-info-notice {
1281 background: #e7f3ff;
1282 border-left: 4px solid #0073aa;
1283 }
1284
1285 .metasync-info-notice-content {
1286 display: flex;
1287 align-items: flex-start;
1288 gap: 15px;
1289 }
1290
1291 .metasync-info-notice-content .dashicons {
1292 flex-shrink: 0;
1293 margin-top: 2px;
1294 }
1295
1296 .metasync-sitemap-actions-grid {
1297 display: grid;
1298 grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
1299 gap: 20px;
1300 }
1301
1302 .metasync-sitemap-action-form {
1303 text-align: center;
1304 }
1305
1306 .metasync-sitemap-button-large {
1307 width: 100%;
1308 min-height: 60px;
1309 font-size: 16px;
1310 display: flex;
1311 align-items: center;
1312 justify-content: center;
1313 gap: 8px;
1314 }
1315
1316 .metasync-sitemap-button-large .dashicons {
1317 font-size: 20px;
1318 }
1319
1320 .metasync-button-description {
1321 margin-top: 10px;
1322 font-size: 13px;
1323 color: var(--dashboard-text-secondary, #666);
1324 font-style: italic;
1325 }
1326
1327 .button-warning {
1328 background: #ff9800;
1329 border-color: #f57c00;
1330 color: #fff;
1331 }
1332
1333 .button-warning:hover,
1334 .button-warning:focus {
1335 background: #f57c00;
1336 border-color: #e65100;
1337 color: #fff;
1338 }
1339
1340 .metasync-sitemap-preview-container {
1341 background: var(--dashboard-card-bg, #f8f9fa);
1342 border: 1px solid var(--dashboard-border, #e1e1e1);
1343 border-radius: 8px;
1344 overflow: hidden;
1345 }
1346
1347 .metasync-sitemap-preview-header {
1348 display: flex;
1349 justify-content: space-between;
1350 align-items: center;
1351 padding: 12px 15px;
1352 background: var(--dashboard-border, #e9ecef);
1353 border-bottom: 1px solid var(--dashboard-border, #dee2e6);
1354 }
1355
1356 .metasync-preview-label {
1357 font-family: monospace;
1358 font-weight: 600;
1359 color: var(--dashboard-text-primary, #23282d);
1360 }
1361
1362 .metasync-sitemap-code-block {
1363 max-height: 400px;
1364 overflow: auto;
1365 }
1366
1367 .metasync-sitemap-code-block pre {
1368 margin: 0;
1369 padding: 20px;
1370 background: var(--dashboard-card-bg, #f8f9fa);
1371 font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace;
1372 font-size: 13px;
1373 line-height: 1.6;
1374 color: var(--dashboard-text-primary, #23282d);
1375 white-space: pre-wrap;
1376 word-wrap: break-word;
1377 }
1378
1379 .metasync-info-section {
1380 margin-bottom: 20px;
1381 }
1382
1383 .metasync-info-section h3 {
1384 color: var(--dashboard-accent, #3b82f6);
1385 font-size: 16px;
1386 margin-bottom: 10px;
1387 }
1388
1389 .metasync-info-section p {
1390 color: var(--dashboard-text-secondary, #666);
1391 line-height: 1.6;
1392 margin-bottom: 10px;
1393 }
1394
1395 .metasync-submit-list {
1396 list-style: none;
1397 padding: 0;
1398 }
1399
1400 .metasync-submit-list li {
1401 padding: 8px 0;
1402 color: var(--dashboard-text-secondary, #666);
1403 }
1404
1405 .metasync-submit-list li strong {
1406 color: var(--dashboard-text-primary, #23282d);
1407 }
1408
1409 .metasync-submit-list code {
1410 background: var(--dashboard-border, #e9ecef);
1411 padding: 2px 6px;
1412 border-radius: 3px;
1413 font-size: 12px;
1414 color: var(--dashboard-accent, #0073aa);
1415 }
1416
1417 .metasync-inline-form {
1418 margin-top: 15px;
1419 }
1420
1421 @media (max-width: 768px) {
1422 .metasync-sitemap-status-grid {
1423 grid-template-columns: 1fr;
1424 }
1425
1426 .metasync-sitemap-actions-grid {
1427 grid-template-columns: 1fr;
1428 }
1429
1430 .metasync-sitemap-stat .stat-value {
1431 font-size: 20px;
1432 }
1433 }
1434
1435 /* Sitemap Files Table */
1436 .metasync-sitemap-table {
1437 width: 100%;
1438 border-collapse: collapse;
1439 margin-top: 15px;
1440 background: var(--dashboard-card-bg);
1441 border-radius: 8px;
1442 overflow: hidden;
1443 }
1444
1445 .metasync-sitemap-table th {
1446 background: var(--dashboard-card-header-bg, rgba(255,255,255,0.05));
1447 color: var(--dashboard-text-primary);
1448 padding: 12px 15px;
1449 text-align: left;
1450 font-weight: 600;
1451 border-bottom: 1px solid var(--dashboard-border-color);
1452 }
1453
1454 .metasync-sitemap-table td {
1455 padding: 12px 15px;
1456 color: var(--dashboard-text-primary);
1457 border-bottom: 1px solid var(--dashboard-border-color);
1458 }
1459
1460 .metasync-sitemap-table tbody tr:hover {
1461 background: var(--dashboard-card-header-bg, rgba(255,255,255,0.03));
1462 }
1463
1464 .metasync-sitemap-table tbody tr:last-child td {
1465 border-bottom: none;
1466 }
1467
1468 .metasync-sitemap-table .sitemap-filename {
1469 font-weight: 600;
1470 color: var(--dashboard-text-primary);
1471 }
1472
1473 .metasync-sitemap-table .sitemap-url-range {
1474 font-size: 12px;
1475 color: var(--dashboard-text-secondary);
1476 margin-top: 4px;
1477 }
1478
1479 .metasync-sitemap-table .button-view {
1480 display: inline-flex;
1481 align-items: center;
1482 gap: 5px;
1483 padding: 6px 12px;
1484 background: var(--dashboard-accent-color, #6366f1);
1485 color: #fff;
1486 border: none;
1487 border-radius: 6px;
1488 font-size: 13px;
1489 line-height: 1.4;
1490 text-decoration: none;
1491 transition: background 0.2s ease;
1492 vertical-align: middle;
1493 }
1494
1495 .metasync-sitemap-table .button-view:hover {
1496 background: var(--dashboard-accent-hover, #4f46e5);
1497 color: #fff;
1498 }
1499
1500 .metasync-sitemap-table .button-view .dashicons {
1501 font-size: 14px;
1502 width: 14px;
1503 height: 14px;
1504 color: #fff;
1505 }
1506
1507 .metasync-sitemap-table .button-delete {
1508 display: inline-flex;
1509 align-items: center;
1510 gap: 5px;
1511 padding: 6px 12px;
1512 background: #dc3232;
1513 color: #fff;
1514 border: none;
1515 border-radius: 6px;
1516 font-size: 13px;
1517 line-height: 1.4;
1518 cursor: pointer;
1519 transition: background 0.2s ease;
1520 vertical-align: middle;
1521 }
1522
1523 .metasync-sitemap-table td form {
1524 display: inline;
1525 vertical-align: middle;
1526 }
1527
1528 .metasync-sitemap-table .button-delete:hover {
1529 background: #b52727;
1530 color: #fff;
1531 }
1532
1533 .metasync-sitemap-table .button-delete .dashicons {
1534 font-size: 14px;
1535 width: 14px;
1536 height: 14px;
1537 color: #fff;
1538 }
1539
1540 .metasync-auth-token-row {
1541 display: flex;
1542 align-items: center;
1543 flex-wrap: wrap;
1544 gap: 10px;
1545 }
1546
1547 .metasync-auth-token-row input.regular-text {
1548 flex: 0 0 auto;
1549 }
1550
1551 .metasync-auth-token-row .metasync-refresh-token-btn {
1552 margin: 0;
1553 flex-shrink: 0;
1554 min-width: 175px;
1555 text-align: center;
1556 /*
1557 * WP core's .wp-core-ui .button rule sets line-height: 2.92308 (a unitless
1558 * ratio tuned for its own 13px font-size). metasync-dashboard.css bumps this
1559 * button's font-size to 14px without resetting line-height, so the ratio
1560 * recalculates against the new font-size to ~41px, ballooning the button to
1561 * ~67px tall vs ~43-45px for every other button/field on this row (WP-529).
1562 * Resetting line-height here (after both stylesheets, so it always wins)
1563 * restores it to the same height as its neighbors.
1564 */
1565 line-height: normal;
1566 }
1567
1568 .metasync-refresh-token-btn .dashicons {
1569 font-size: 14px;
1570 width: 14px;
1571 height: 14px;
1572 line-height: 1.4;
1573 vertical-align: middle;
1574 margin-right: 4px;
1575 }
1576
1577 @media screen and (max-width: 782px) {
1578 .metasync-auth-token-row {
1579 flex-direction: column;
1580 align-items: flex-start;
1581 }
1582
1583 .metasync-auth-token-row .metasync-refresh-token-btn {
1584 margin-top: 8px;
1585 }
1586 }
1587
1588 @media (max-width: 768px) {
1589 .metasync-sitemap-table th,
1590 .metasync-sitemap-table td {
1591 padding: 10px 12px;
1592 font-size: 13px;
1593 }
1594 }
1595
1596 /* ================================================
1597 Content Genius User Role Sync Selector
1598 ================================================ */
1599
1600 .metasync-role-selector-container {
1601 display: block;
1602 max-width: 600px;
1603 max-height: 250px;
1604 overflow-y: auto;
1605 overflow-x: hidden;
1606 border: 1px solid #ddd;
1607 border-radius: 6px;
1608 padding: 15px;
1609 background: transparent;
1610 margin-bottom: 10px;
1611 }
1612
1613 /* Scrollbar styling for webkit browsers */
1614 .metasync-role-selector-container::-webkit-scrollbar {
1615 width: 8px;
1616 }
1617
1618 .metasync-role-selector-container::-webkit-scrollbar-track {
1619 background: var(--dashboard-border, #f1f1f1);
1620 border-radius: 4px;
1621 }
1622
1623 .metasync-role-selector-container::-webkit-scrollbar-thumb {
1624 background: var(--dashboard-text-secondary, #999);
1625 border-radius: 4px;
1626 transition: background 0.3s ease;
1627 }
1628
1629 .metasync-role-selector-container::-webkit-scrollbar-thumb:hover {
1630 background: var(--dashboard-text-primary, #666);
1631 }
1632
1633 /* All Roles Option */
1634 .metasync-role-option-all {
1635 display: block;
1636 width: 100%;
1637 padding: 10px;
1638 background: transparent;
1639 border: none;
1640 cursor: pointer;
1641 border-radius: 4px;
1642 transition: background-color 0.2s ease;
1643 }
1644
1645 .metasync-role-option-all:hover {
1646 background-color: rgba(0, 0, 0, 0.05);
1647 }
1648
1649 .metasync-role-option-all input[type="checkbox"] {
1650 margin: 0 8px 0 0;
1651 vertical-align: middle;
1652 }
1653
1654 .metasync-role-option-all strong {
1655 vertical-align: middle;
1656 color: var(--dashboard-text-primary, #23282d);
1657 font-weight: 600;
1658 font-size: 14px;
1659 }
1660
1661 /* Divider */
1662 .metasync-role-divider {
1663 margin: 15px 0;
1664 border: 0;
1665 border-top: 1px solid var(--dashboard-border, #ddd);
1666 }
1667
1668 /* Individual Role Options */
1669 .metasync-role-option {
1670 display: block;
1671 width: 100%;
1672 margin-bottom: 8px;
1673 padding: 8px 10px;
1674 cursor: pointer;
1675 background: transparent;
1676 border: none;
1677 border-radius: 4px;
1678 transition: background-color 0.2s ease;
1679 }
1680
1681 .metasync-role-option:hover {
1682 background-color: rgba(0, 0, 0, 0.05);
1683 }
1684
1685 .metasync-role-option:last-child {
1686 margin-bottom: 0;
1687 }
1688
1689 .metasync-role-option input[type="checkbox"] {
1690 margin: 0 8px 0 0;
1691 vertical-align: middle;
1692 }
1693
1694 .metasync-role-label {
1695 color: var(--dashboard-text-primary, #23282d);
1696 font-size: 14px;
1697 vertical-align: middle;
1698 cursor: pointer;
1699 }
1700
1701
1702 /* Responsive adjustments */
1703 @media (max-width: 768px) {
1704 .metasync-role-selector-container {
1705 max-height: 200px;
1706 padding: 12px;
1707 }
1708
1709 .metasync-role-option-all,
1710 .metasync-role-option {
1711 padding: 6px 8px;
1712 }
1713
1714 .metasync-role-label,
1715 .metasync-role-option-all strong {
1716 font-size: 13px;
1717 }
1718 }
1719
1720 /* Dark Mode Support for Role Selector */
1721 @media (prefers-color-scheme: dark) {
1722 .metasync-role-selector-container {
1723 border-color: var(--dashboard-border, #374151);
1724 }
1725
1726 .metasync-role-label,
1727 .metasync-role-option-all strong {
1728 color: var(--dashboard-text-primary, #ffffff);
1729 }
1730
1731 .metasync-role-divider {
1732 border-top-color: var(--dashboard-border, #374151);
1733 }
1734
1735 .metasync-role-option:hover,
1736 .metasync-role-option-all:hover {
1737 background-color: var(--dashboard-card-hover, rgba(255, 255, 255, 0.05));
1738 }
1739 }
1740
1741 /* HTML-Converted Pages Badge */
1742 .metasync-html-badge {
1743 display: inline-flex;
1744 align-items: center;
1745 gap: 4px;
1746 padding: 4px 10px;
1747 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1748 color: #ffffff;
1749 border-radius: 12px;
1750 font-size: 11px;
1751 font-weight: 600;
1752 text-transform: uppercase;
1753 letter-spacing: 0.5px;
1754 cursor: help;
1755 transition: all 0.2s ease;
1756 box-shadow: 0 2px 4px rgba(102, 126, 234, 0.2);
1757 }
1758
1759 .metasync-html-badge:hover {
1760 transform: translateY(-1px);
1761 box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);
1762 }
1763
1764 .metasync-badge-icon {
1765 font-size: 13px;
1766 line-height: 1;
1767 animation: pulse 2s ease-in-out infinite;
1768 }
1769
1770 .metasync-badge-text {
1771 line-height: 1;
1772 }
1773
1774 @keyframes pulse {
1775 0%, 100% {
1776 opacity: 1;
1777 }
1778 50% {
1779 opacity: 0.7;
1780 }
1781 }
1782
1783 /* Responsive adjustments for badge */
1784 @media (max-width: 782px) {
1785 .metasync-html-badge {
1786 font-size: 10px;
1787 padding: 3px 8px;
1788 gap: 3px;
1789 }
1790
1791 .metasync-badge-icon {
1792 font-size: 12px;
1793 }
1794 }
1795
1796 /* Dark mode support for badge */
1797 @media (prefers-color-scheme: dark) {
1798 .metasync-html-badge {
1799 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1800 box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
1801 }
1802
1803 .metasync-html-badge:hover {
1804 box-shadow: 0 4px 8px rgba(102, 126, 234, 0.4);
1805 }
1806 }
1807
1808 /* Page Editor Notice Banner */
1809 .metasync-editor-notice {
1810 margin: 15px 0 20px;
1811 border-left: 4px solid #667eea;
1812 background: linear-gradient(90deg, rgba(102, 126, 234, 0.05) 0%, rgba(118, 75, 162, 0.02) 100%);
1813 }
1814
1815 .metasync-editor-notice-content {
1816 display: flex;
1817 align-items: center;
1818 gap: 15px;
1819 padding: 8px 12px;
1820 }
1821
1822 .metasync-editor-badge {
1823 display: inline-flex;
1824 align-items: center;
1825 gap: 6px;
1826 padding: 6px 14px;
1827 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1828 color: #ffffff;
1829 border-radius: 14px;
1830 font-size: 12px;
1831 font-weight: 700;
1832 text-transform: uppercase;
1833 letter-spacing: 0.5px;
1834 white-space: nowrap;
1835 box-shadow: 0 2px 6px rgba(102, 126, 234, 0.25);
1836 }
1837
1838 .metasync-editor-message {
1839 margin: 0;
1840 font-size: 13px;
1841 line-height: 1.5;
1842 color: #2c3e50;
1843 }
1844
1845 .metasync-editor-message strong {
1846 color: #667eea;
1847 }
1848
1849 /* Quick Edit Badge Display */
1850 .metasync-quick-edit-source {
1851 clear: both;
1852 padding: 10px 12px;
1853 }
1854
1855 .metasync-quick-edit-source .title {
1856 display: inline-block;
1857 min-width: 80px;
1858 font-weight: 600;
1859 color: #1d2327;
1860 }
1861
1862 .metasync-quick-edit-badge-container {
1863 display: inline-block;
1864 vertical-align: middle;
1865 margin-left: 8px;
1866 }
1867
1868 .metasync-quick-edit-badge-container em {
1869 color: #787c82;
1870 font-size: 12px;
1871 }
1872
1873 /* Dashboard Widget */
1874 .metasync-dashboard-widget {
1875 margin: -12px;
1876 }
1877
1878 .metasync-widget-stats {
1879 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
1880 color: #ffffff;
1881 padding: 20px;
1882 text-align: center;
1883 }
1884
1885 .metasync-stat-box {
1886 display: flex;
1887 flex-direction: column;
1888 align-items: center;
1889 gap: 8px;
1890 }
1891
1892 .metasync-stat-number {
1893 font-size: 48px;
1894 font-weight: 700;
1895 line-height: 1;
1896 text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1897 }
1898
1899 .metasync-stat-label {
1900 font-size: 14px;
1901 font-weight: 500;
1902 opacity: 0.95;
1903 text-transform: uppercase;
1904 letter-spacing: 0.5px;
1905 }
1906
1907 .metasync-widget-list {
1908 padding: 16px 20px;
1909 }
1910
1911 .metasync-widget-list h4 {
1912 margin: 0 0 12px;
1913 font-size: 14px;
1914 font-weight: 600;
1915 color: #1d2327;
1916 text-transform: uppercase;
1917 letter-spacing: 0.5px;
1918 }
1919
1920 .metasync-widget-list ul {
1921 margin: 0;
1922 padding: 0;
1923 list-style: none;
1924 }
1925
1926 .metasync-widget-page-item {
1927 display: flex;
1928 align-items: flex-start;
1929 gap: 10px;
1930 padding: 10px 0;
1931 border-bottom: 1px solid #f0f0f1;
1932 }
1933
1934 .metasync-widget-page-item:last-child {
1935 border-bottom: none;
1936 }
1937
1938 .metasync-page-icon {
1939 font-size: 16px;
1940 line-height: 1;
1941 padding-top: 2px;
1942 opacity: 0.7;
1943 }
1944
1945 .metasync-page-details {
1946 flex: 1;
1947 min-width: 0;
1948 }
1949
1950 .metasync-page-title {
1951 display: block;
1952 font-weight: 600;
1953 color: #2271b1;
1954 text-decoration: none;
1955 margin-bottom: 4px;
1956 white-space: nowrap;
1957 overflow: hidden;
1958 text-overflow: ellipsis;
1959 }
1960
1961 .metasync-page-title:hover {
1962 color: #135e96;
1963 text-decoration: underline;
1964 }
1965
1966 .metasync-page-meta {
1967 display: block;
1968 font-size: 12px;
1969 color: #787c82;
1970 }
1971
1972 .metasync-page-meta a {
1973 color: #787c82;
1974 text-decoration: none;
1975 }
1976
1977 .metasync-page-meta a:hover {
1978 color: #2271b1;
1979 }
1980
1981 .metasync-widget-footer {
1982 padding: 12px 20px;
1983 background: #f6f7f7;
1984 border-top: 1px solid #e0e0e0;
1985 text-align: center;
1986 }
1987
1988 .metasync-widget-footer a {
1989 color: #667eea;
1990 text-decoration: none;
1991 font-weight: 600;
1992 font-size: 13px;
1993 }
1994
1995 .metasync-widget-footer a:hover {
1996 color: #764ba2;
1997 text-decoration: underline;
1998 }
1999
2000 .metasync-dashboard-widget-empty {
2001 padding: 20px;
2002 text-align: center;
2003 }
2004
2005 /* Responsive adjustments for editor notice */
2006 @media (max-width: 782px) {
2007 .metasync-editor-notice-content {
2008 flex-direction: column;
2009 align-items: flex-start;
2010 gap: 10px;
2011 }
2012
2013 .metasync-editor-badge {
2014 font-size: 11px;
2015 padding: 5px 12px;
2016 }
2017
2018 .metasync-editor-message {
2019 font-size: 12px;
2020 }
2021 }
2022
2023 /* Dark mode support for new elements */
2024 @media (prefers-color-scheme: dark) {
2025 .metasync-editor-notice {
2026 background: linear-gradient(90deg, rgba(102, 126, 234, 0.15) 0%, rgba(118, 75, 162, 0.05) 100%);
2027 }
2028
2029 .metasync-editor-message {
2030 color: #e4e4e7;
2031 }
2032
2033 .metasync-quick-edit-source .title {
2034 color: #f0f0f1;
2035 }
2036
2037 .metasync-widget-list h4 {
2038 color: #f0f0f1;
2039 }
2040
2041 .metasync-widget-page-item {
2042 border-bottom-color: #3c434a;
2043 }
2044
2045 .metasync-page-title {
2046 color: #72aee6;
2047 }
2048
2049 .metasync-page-title:hover {
2050 color: #9ecaed;
2051 }
2052
2053 .metasync-page-meta,
2054 .metasync-page-meta a {
2055 color: #a7aaad;
2056 }
2057
2058 .metasync-widget-footer {
2059 background: #1d2327;
2060 border-top-color: #3c434a;
2061 }
2062 }
2063
2064 /* =====================================================================
2065 Compatibility Page — msrp-compat-* inner list components
2066 ===================================================================== */
2067
2068 /* Remove default accordion padding so rows fill edge-to-edge */
2069 .msrp-compat-accordion.metasync-accordion-content[data-state="open"] {
2070 padding: 0;
2071 }
2072
2073 .msrp-compat-list {
2074 display: flex;
2075 flex-direction: column;
2076 border-top: 1px solid var(--dashboard-border, #e2e8f0);
2077 }
2078
2079 .msrp-compat-row {
2080 display: flex;
2081 align-items: center;
2082 justify-content: space-between;
2083 gap: 10px;
2084 padding: 11px 24px;
2085 border-bottom: 1px solid var(--dashboard-border, #e2e8f0);
2086 border-left: 3px solid transparent;
2087 transition: background 0.15s;
2088 }
2089
2090 .msrp-compat-row:last-child {
2091 border-bottom: none;
2092 }
2093
2094 .msrp-compat-row:hover {
2095 background: var(--dashboard-card-hover, rgba(0,0,0,.03));
2096 }
2097
2098 /* Left indicator stripe */
2099 .msrp-indicator-active { border-left-color: #22c55e; }
2100 .msrp-indicator-installed { border-left-color: #f59e0b; }
2101 .msrp-indicator-none { border-left-color: transparent; }
2102
2103 .msrp-compat-row-left {
2104 display: flex;
2105 flex-direction: column;
2106 gap: 2px;
2107 min-width: 0;
2108 }
2109
2110 .msrp-compat-name {
2111 font-size: 13px;
2112 font-weight: 500;
2113 color: var(--dashboard-text-primary, #1e293b);
2114 }
2115
2116 .msrp-compat-note {
2117 font-size: 11px;
2118 color: var(--dashboard-text-secondary, #64748b);
2119 line-height: 1.3;
2120 }
2121
2122 .msrp-compat-row-right {
2123 display: flex;
2124 align-items: center;
2125 gap: 6px;
2126 flex-shrink: 0;
2127 }
2128
2129 /* Pills */
2130 .msrp-pill {
2131 display: inline-flex;
2132 align-items: center;
2133 padding: 2px 8px;
2134 border-radius: 20px;
2135 font-size: 11px;
2136 font-weight: 600;
2137 white-space: nowrap;
2138 line-height: 1.6;
2139 }
2140
2141 .msrp-pill-active {
2142 background: #dcfce7;
2143 color: #15803d;
2144 }
2145
2146 .msrp-pill-installed {
2147 background: #fef3c7;
2148 color: #92400e;
2149 }
2150
2151 .msrp-pill-none {
2152 background: var(--dashboard-bg, #f1f5f9);
2153 color: var(--dashboard-text-secondary, #64748b);
2154 }
2155
2156 .msrp-pill-supported {
2157 background: rgba(34, 113, 177, 0.1);
2158 color: var(--dashboard-accent, #2271b1);
2159 }
2160
2161 /* Lays the logo preview out as image + remove control side by side,
2162 top-aligned to the image's upper-right, with real spacing between
2163 them instead of an inline WP core button that renders full-size and
2164 flush against the image with no gap. */
2165 .metasync-logo-preview-wrap {
2166 display: inline-flex;
2167 align-items: flex-start;
2168 gap: 16px;
2169 }
2170
2171 #local_seo_logo_close_btn.metasync-logo-remove-btn {
2172 box-sizing: border-box;
2173 width: 32px;
2174 height: 32px;
2175 min-height: 32px;
2176 padding: 0;
2177 margin: 0;
2178 flex-shrink: 0;
2179 /* WP core's .wp-core-ui .button line-height is tuned for a text
2180 label, not a fixed-size square icon; reset it so the glyph
2181 stays centered instead of inflating the button box. */
2182 line-height: 27px !important;
2183 font-size: 16px;
2184 font-weight: 700;
2185 text-align: center;
2186 /* !important: WP core's .button-secondary text/background rules
2187 otherwise win the cascade — the glyph rendered white-on-white,
2188 and a hardcoded white fill clashed with dark admin color
2189 schemes. Transparent lets whatever sits behind it show through
2190 in both light and dark themes; only the border/glyph are red. */
2191 color: #d63638 !important;
2192 background: transparent !important;
2193 border: 2px solid #d63638;
2194 border-radius: 6px;
2195 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
2196 cursor: pointer;
2197 }
2198
2199 #local_seo_logo_close_btn.metasync-logo-remove-btn:hover,
2200 #local_seo_logo_close_btn.metasync-logo-remove-btn:focus {
2201 background: #d63638 !important;
2202 color: #fff !important;
2203 }