PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.6.5
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.6.5
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-dashboard.css

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

3,276 lines 85.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Dashboard-inspired admin styling for Metasync plugin
3 * Modern dark theme matching the main dashboard design
4 */
5
6 /* Root Variables - Dashboard Color Scheme */
7 /* Dark Theme (Default) */
8 :root,
9 [data-theme="dark"] {
10 --dashboard-bg: #0f1419;
11 --dashboard-card-bg: #1a1f26;
12 --dashboard-card-hover: #222831;
13 --dashboard-text-primary: #ffffff;
14 --dashboard-text-secondary: #9ca3af;
15 --dashboard-accent: #3b82f6;
16 --dashboard-accent-hover: #2563eb;
17 --dashboard-success: #10b981;
18 --dashboard-warning: #f59e0b;
19 --dashboard-error: #ef4444;
20 --dashboard-border: #374151;
21 --dashboard-gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
22 --dashboard-gradient-accent: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
23 --dashboard-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
24 --dashboard-shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.4), 0 10px 10px -5px rgba(0, 0, 0, 0.2);
25 }
26
27 /* Light Theme */
28 [data-theme="light"] {
29 --dashboard-bg: #f8f9fa;
30 --dashboard-card-bg: #ffffff;
31 --dashboard-card-hover: #f1f3f5;
32 --dashboard-text-primary: #1a1f26;
33 --dashboard-text-secondary: #6b7280;
34 --dashboard-accent: #3b82f6;
35 --dashboard-accent-hover: #2563eb;
36 --dashboard-success: #10b981;
37 --dashboard-warning: #f59e0b;
38 --dashboard-error: #ef4444;
39 --dashboard-border: #e5e7eb;
40 --dashboard-gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
41 --dashboard-gradient-accent: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
42 --dashboard-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
43 --dashboard-shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1);
44 }
45
46 /* Theme Transition */
47 :root,
48 [data-theme] {
49 transition: background-color 0.3s ease, color 0.3s ease;
50 }
51
52 /* Only apply styles within plugin pages - NO LAYOUT CHANGES */
53 .metasync-dashboard-wrap {
54 background: var(--dashboard-bg) !important;
55 color: var(--dashboard-text-primary) !important;
56 font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
57 /* Apply dark background to edges without affecting layout */
58 position: relative;
59 margin: 0 -20px;
60 padding: 20px 40px; /* More lateral padding for content breathing room */
61 min-height: calc(100vh - 32px);
62 opacity: 1 !important;
63 }
64
65 /* Hide Jetpack identity crisis container within plugin pages */
66 .metasync-dashboard-wrap ~ .jp-identity-crisis-container,
67 .wrap.metasync-dashboard-wrap .jp-identity-crisis-container,
68 body.admin_page_searchatlas #jp-identity-crisis-container,
69 body.admin_page_searchatlas .jp-identity-crisis-container,
70 body[class*="admin_page_"][class*="searchatlas"] #jp-identity-crisis-container,
71 body[class*="admin_page_"][class*="searchatlas"] .jp-identity-crisis-container,
72 /* Handle custom whitelabel menu slugs - use presence of metasync-dashboard-wrap as indicator */
73 body:has(.metasync-dashboard-wrap) #jp-identity-crisis-container,
74 body:has(.metasync-dashboard-wrap) .jp-identity-crisis-container {
75 display: none !important;
76 }
77
78 /* Dark background extension - DISABLED to prevent black overlays */
79 /* .metasync-dashboard-wrap::before {
80 content: '';
81 position: absolute;
82 top: 0;
83 left: -50px;
84 right: -50px;
85 bottom: 0;
86 background: var(--dashboard-bg);
87 z-index: -1;
88 } */
89
90 /* Ensure content is above background overlay */
91 .metasync-dashboard-wrap > * {
92 position: relative;
93 z-index: 1;
94 }
95
96 /* Fix WordPress notices ONLY in plugin pages */
97 .metasync-dashboard-wrap .notice,
98 .metasync-dashboard-wrap .error,
99 .metasync-dashboard-wrap .updated {
100 background: var(--dashboard-card-bg) !important;
101 border-left: 4px solid var(--dashboard-accent) !important;
102 color: var(--dashboard-text-primary) !important;
103 border-radius: 8px !important;
104 box-shadow: var(--dashboard-shadow) !important;
105 margin: 20px 0 !important;
106 backdrop-filter: blur(10px) !important;
107 }
108
109 .metasync-dashboard-wrap .notice p,
110 .metasync-dashboard-wrap .error p,
111 .metasync-dashboard-wrap .updated p {
112 color: var(--dashboard-text-primary) !important;
113 }
114
115 .metasync-dashboard-wrap .notice a,
116 .metasync-dashboard-wrap .error a,
117 .metasync-dashboard-wrap .updated a {
118 color: var(--dashboard-accent) !important;
119 }
120
121 /* Specific error notice styling ONLY in plugin */
122 .metasync-dashboard-wrap .notice.notice-error {
123 border-left-color: var(--dashboard-error) !important;
124 background: rgba(239, 68, 68, 0.15) !important;
125 }
126
127 /* License mismatch notice specific styling ONLY in plugin */
128 .metasync-dashboard-wrap .notice:has(.dashicons-warning):before,
129 .metasync-dashboard-wrap .notice[class*="license"]:before,
130 .metasync-dashboard-wrap .notice[class*="mismatch"]:before {
131 content: "⚠️";
132 font-size: 20px;
133 margin-right: 8px;
134 display: inline-block;
135 }
136
137 /* Better button styling in notices ONLY in plugin */
138 .metasync-dashboard-wrap .notice .button,
139 .metasync-dashboard-wrap .error .button,
140 .metasync-dashboard-wrap .updated .button {
141 background: var(--dashboard-accent) !important;
142 color: var(--dashboard-text-primary) !important;
143 border: none !important;
144 border-radius: 6px !important;
145 padding: 8px 16px !important;
146 font-weight: 500 !important;
147 transition: all 0.3s ease !important;
148 }
149
150 .metasync-dashboard-wrap .notice .button:hover,
151 .metasync-dashboard-wrap .error .button:hover,
152 .metasync-dashboard-wrap .updated .button:hover {
153 background: var(--dashboard-accent-hover) !important;
154 transform: translateY(-1px) !important;
155 }
156
157 /* Theme Toggle Button */
158 .metasync-theme-toggle {
159 background: rgba(255, 255, 255, 0.1);
160 border: 1px solid rgba(255, 255, 255, 0.2);
161 border-radius: 20px;
162 padding: 6px;
163 display: flex;
164 align-items: center;
165 gap: 4px;
166 cursor: pointer;
167 transition: all 0.3s ease;
168 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
169 }
170
171 .metasync-theme-toggle:hover {
172 border-color: var(--dashboard-accent);
173 box-shadow: var(--dashboard-shadow);
174 }
175
176 .metasync-theme-option {
177 padding: 6px 12px;
178 border-radius: 16px;
179 font-size: 13px;
180 font-weight: 500;
181 color: var(--dashboard-text-secondary);
182 transition: all 0.3s ease;
183 cursor: pointer;
184 display: flex;
185 align-items: center;
186 gap: 6px;
187 border: none;
188 background: transparent;
189 }
190
191 .metasync-theme-option.active {
192 background: var(--dashboard-gradient-primary);
193 color: #ffffff;
194 box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
195 }
196
197 .metasync-theme-option:hover:not(.active) {
198 color: var(--dashboard-text-primary);
199 background: var(--dashboard-card-hover);
200 }
201
202 .metasync-theme-icon {
203 font-size: 16px;
204 display: inline-flex;
205 align-items: center;
206 }
207
208 /* Plugin Header with Logo - Clean Layout */
209 .metasync-dashboard-wrap .metasync-header {
210 display: flex;
211 align-items: center;
212 justify-content: space-between;
213 margin-bottom: 1rem;
214 padding: 20px;
215 background: var(--dashboard-card-bg);
216 border: 1px solid var(--dashboard-border);
217 border-radius: 12px;
218 box-shadow: var(--dashboard-shadow);
219 color: var(--dashboard-text-primary);
220 }
221
222 .metasync-dashboard-wrap .metasync-header-left {
223 display: flex;
224 align-items: center;
225 flex: 1;
226 }
227
228 .metasync-dashboard-wrap .metasync-header-right {
229 display: flex;
230 align-items: center;
231 gap: 12px;
232 flex-shrink: 0;
233 }
234
235 .metasync-dashboard-wrap .metasync-logo-container {
236 flex-shrink: 0;
237 display: flex;
238 align-items: center;
239 background: linear-gradient(135deg, #1a1f26 0%, #2d3748 100%);
240 padding: 12px 20px;
241 border-radius: 12px;
242 border: 1px solid rgba(255, 255, 255, 0.1);
243 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
244 transition: all 0.3s ease;
245 }
246
247 .metasync-dashboard-wrap .metasync-logo-container:hover {
248 transform: translateY(-2px);
249 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
250 border-color: rgba(255, 255, 255, 0.2);
251 }
252
253 .metasync-dashboard-wrap .metasync-logo {
254 height: 48px;
255 width: auto;
256 max-width: 200px;
257 object-fit: contain;
258 filter: brightness(1) contrast(1);
259 transition: all 0.3s ease;
260 }
261
262 .metasync-dashboard-wrap .metasync-logo:hover {
263 filter: brightness(1.1) contrast(1.1);
264 }
265
266 /* Dual-logo theme switching */
267 /* Default: show dark logo, hide light (matches PHP default theme of 'dark') */
268 .metasync-logo-light { display: none; }
269 .metasync-logo-dark { display: block; }
270
271 [data-theme="light"] .metasync-logo-dark {
272 display: none;
273 }
274
275 [data-theme="dark"] .metasync-logo-light {
276 display: none;
277 }
278
279 .metasync-header[data-current-theme="light"] .metasync-logo-dark {
280 display: none;
281 }
282
283 .metasync-header[data-current-theme="dark"] .metasync-logo-light {
284 display: none;
285 }
286
287 /* Page Title Section - Below Header */
288 .metasync-dashboard-wrap .metasync-page-title {
289 margin-bottom: 2rem;
290 padding: 0;
291 }
292
293 .metasync-dashboard-wrap .metasync-page-title h1 {
294 color: var(--dashboard-text-primary);
295 font-size: 2.5rem;
296 font-weight: 700;
297 margin: 0;
298 background: var(--dashboard-gradient-primary);
299 -webkit-background-clip: text;
300 -webkit-text-fill-color: transparent;
301 background-clip: text;
302 text-align: left;
303 line-height: 1.2;
304 }
305
306 /* Fallback for browsers that don't support background-clip */
307 @supports not (-webkit-background-clip: text) {
308 .metasync-dashboard-wrap .metasync-page-title h1 {
309 color: var(--dashboard-accent);
310 background: none;
311 }
312 }
313
314 /* Integration Status */
315 .metasync-dashboard-wrap .metasync-integration-status {
316 display: flex;
317 align-items: center;
318 gap: 8px;
319 padding: 8px 16px;
320 border-radius: 20px;
321 font-size: 12px;
322 font-weight: 600;
323 text-transform: uppercase;
324 letter-spacing: 0.5px;
325 transition: all 0.3s ease;
326 }
327
328 .metasync-dashboard-wrap .metasync-integration-status.integrated {
329 background: rgba(16, 185, 129, 0.15);
330 color: var(--dashboard-success);
331 border: 1px solid rgba(16, 185, 129, 0.3);
332 }
333
334 .metasync-dashboard-wrap .metasync-integration-status.not-integrated {
335 background: rgba(239, 68, 68, 0.15);
336 color: var(--dashboard-error);
337 border: 1px solid rgba(239, 68, 68, 0.3);
338 }
339
340 .metasync-dashboard-wrap .metasync-integration-status.warning {
341 background: rgba(255, 185, 0, 0.15);
342 color: #ffb900;
343 border: 1px solid rgba(255, 185, 0, 0.3);
344 }
345
346 .metasync-dashboard-wrap .metasync-integration-status .status-indicator {
347 width: 8px;
348 height: 8px;
349 border-radius: 50%;
350 display: block;
351 }
352
353 .metasync-dashboard-wrap .metasync-integration-status.integrated .status-indicator {
354 background: var(--dashboard-success);
355 animation: pulse-success 2s infinite;
356 }
357
358 .metasync-dashboard-wrap .metasync-integration-status.not-integrated .status-indicator {
359 background: var(--dashboard-error);
360 }
361
362 .metasync-dashboard-wrap .metasync-integration-status.warning .status-indicator {
363 background: #ffb900;
364 }
365
366 @keyframes pulse-success {
367 0%, 100% { opacity: 1; }
368 50% { opacity: 0.6; }
369 }
370
371
372
373
374
375 /* Dashboard Cards - ONLY in plugin pages */
376 .metasync-dashboard-wrap .dashboard-card {
377 background: var(--dashboard-card-bg);
378 border: 1px solid var(--dashboard-border);
379 border-radius: 16px;
380 padding: 24px;
381 margin-bottom: 24px;
382 box-shadow: var(--dashboard-shadow);
383 /* Removed transition - was too distracting in sections */
384 backdrop-filter: blur(10px);
385 }
386
387 .metasync-dashboard-wrap .dashboard-card:hover {
388 background: var(--dashboard-card-hover);
389 box-shadow: var(--dashboard-shadow-hover);
390 /* Removed translateY animation - was too distracting */
391 }
392
393 .metasync-dashboard-wrap .dashboard-card h2 {
394 color: var(--dashboard-text-primary);
395 font-size: 1.5rem;
396 font-weight: 600;
397 margin: 0 0 16px 0;
398 display: flex;
399 align-items: center;
400 gap: 12px;
401 }
402
403 .metasync-dashboard-wrap .dashboard-card h3 {
404 color: var(--dashboard-text-primary);
405 font-size: 1.25rem;
406 font-weight: 500;
407 margin: 0 0 12px 0;
408 }
409
410 /* New Navigation System */
411 .metasync-dashboard-wrap .metasync-nav-wrapper {
412 margin: 0 0 32px 0;
413 padding: 0;
414 background: transparent;
415 position: relative;
416 z-index: 100;
417 }
418
419 .metasync-dashboard-wrap .metasync-nav-tabs {
420 display: flex;
421 gap: 4px;
422 flex-wrap: wrap;
423 background: var(--dashboard-card-bg);
424 border: 1px solid var(--dashboard-border);
425 border-radius: 12px;
426 padding: 6px;
427 backdrop-filter: blur(10px);
428 }
429
430 .metasync-dashboard-wrap .metasync-nav-tab {
431 display: flex;
432 align-items: center;
433 gap: 8px;
434 padding: 10px 16px;
435 border-radius: 8px;
436 text-decoration: none;
437 color: var(--dashboard-text-secondary);
438 font-weight: 500;
439 font-size: 14px;
440 transition: all 0.3s ease;
441 position: relative;
442 overflow: hidden;
443 border: none;
444 background: transparent;
445 }
446
447 .metasync-dashboard-wrap .metasync-nav-tab:hover {
448 color: var(--dashboard-text-primary);
449 background: rgba(255, 255, 255, 0.05);
450 transform: translateY(-1px);
451 }
452
453 .metasync-dashboard-wrap .metasync-nav-tab.active {
454 background: var(--dashboard-gradient-primary);
455 color: #ffffff;
456 box-shadow: var(--dashboard-shadow);
457 transform: translateY(-1px);
458 }
459
460 .metasync-dashboard-wrap .metasync-nav-tab .tab-icon {
461 font-size: 16px;
462 opacity: 1;
463 transition: all 0.3s ease;
464 filter: brightness(1.2) contrast(1.1);
465 text-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
466 }
467
468 .metasync-dashboard-wrap .metasync-nav-tab.active .tab-icon,
469 .metasync-dashboard-wrap .metasync-nav-tab:hover .tab-icon {
470 opacity: 1;
471 transform: scale(1.1);
472 filter: brightness(1.4) contrast(1.2);
473 text-shadow: 0 0 12px rgba(255, 255, 255, 0.5);
474 }
475
476 .metasync-dashboard-wrap .metasync-nav-tab .tab-text {
477 font-weight: 500;
478 white-space: nowrap;
479 }
480
481 /* New Badge for AI Agent */
482 .metasync-dashboard-wrap .metasync-new-badge {
483 display: inline-block;
484 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
485 color: #ffffff;
486 font-size: 9px;
487 font-weight: 700;
488 text-transform: uppercase;
489 letter-spacing: 0.5px;
490 padding: 2px 6px;
491 border-radius: 4px;
492 margin-left: 6px;
493 line-height: 1;
494 box-shadow: 0 2px 4px rgba(239, 68, 68, 0.3);
495 animation: pulse-badge 2s ease-in-out infinite;
496 }
497
498 .metasync-dashboard-wrap .metasync-nav-tab.active .metasync-new-badge {
499 background: rgba(255, 255, 255, 0.25);
500 color: #ffffff;
501 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
502 }
503
504 @keyframes pulse-badge {
505 0%, 100% {
506 transform: scale(1);
507 opacity: 1;
508 }
509 50% {
510 transform: scale(1.05);
511 opacity: 0.9;
512 }
513 }
514
515 /* Old nav-tab compatibility (fallback) */
516 .metasync-dashboard-wrap .nav-tab-wrapper {
517 display: none !important;
518 }
519
520 /* Hide WordPress settings section titles to prevent duplication */
521 .metasync-dashboard-wrap .dashboard-card h2.hndle,
522 .metasync-dashboard-wrap .dashboard-card .form-table caption,
523 .metasync-dashboard-wrap .dashboard-card > h2:not(.dashboard-card h2:first-child),
524 .metasync-dashboard-wrap .form-table + h2,
525 .metasync-dashboard-wrap .form-table + h3 {
526 display: none !important;
527 }
528
529 /* Also hide any orphaned WordPress section headers */
530 .metasync-dashboard-wrap .wrap > h2:not(.nav-tab-wrapper):not(.metasync-page-title h1),
531 .metasync-dashboard-wrap .wrap > h3:not(.metasync-page-title h1) {
532 display: none !important;
533 }
534
535 /* Form Styling - ONLY in plugin pages */
536 .metasync-dashboard-wrap form {
537 display: grid;
538 gap: 24px;
539 }
540
541 .metasync-dashboard-wrap .form-table {
542 background: transparent;
543 border: none;
544 border-collapse: separate;
545 border-spacing: 0;
546 width: 100%;
547 }
548
549 .metasync-dashboard-wrap .form-table th {
550 background: var(--dashboard-card-bg);
551 border: 1px solid var(--dashboard-border);
552 border-right: none;
553 border-radius: 12px 0 0 12px;
554 color: var(--dashboard-text-primary);
555 font-weight: 500;
556 padding: 16px 20px;
557 text-align: left;
558 vertical-align: top;
559 width: 30%;
560 }
561
562 .metasync-dashboard-wrap .form-table td {
563 background: var(--dashboard-card-bg);
564 border: 1px solid var(--dashboard-border);
565 border-left: none;
566 border-radius: 0 12px 12px 0;
567 padding: 16px 20px;
568 vertical-align: top;
569 }
570
571 .metasync-dashboard-wrap .form-table tr {
572 margin-bottom: 16px;
573 }
574
575 .metasync-dashboard-wrap .form-table tr:not(:last-child) th,
576 .metasync-dashboard-wrap .form-table tr:not(:last-child) td {
577 border-bottom: none;
578 }
579
580 /* Simple, clean spacing between form table rows */
581 .metasync-dashboard-wrap .form-table tr + tr th,
582 .metasync-dashboard-wrap .form-table tr + tr td {
583 padding-top: 24px;
584 }
585
586 /* Ensure proper internal padding for all cells */
587 .metasync-dashboard-wrap .form-table th,
588 .metasync-dashboard-wrap .form-table td {
589 padding: 16px 12px;
590 }
591
592 /* Simple Settings Menu Navigation Styles */
593 .metasync-nav-tabs {
594 display: flex;
595 justify-content: space-between;
596 align-items: center;
597 width: 100%;
598 }
599
600 .metasync-nav-left {
601 display: flex;
602 gap: 0;
603 }
604
605 .metasync-nav-right {
606 display: flex;
607 align-items: center;
608 gap: 8px;
609 margin-left: auto;
610 }
611
612 /* Grouped Navigation Styles with Dropdowns */
613 .metasync-nav-grouped {
614 flex-wrap: nowrap;
615 gap: 4px;
616 align-items: center;
617 }
618
619 /* Dropdown Container */
620 .metasync-nav-dropdown {
621 position: relative;
622 display: inline-block;
623 z-index: 999999;
624 }
625
626 .metasync-nav-dropdown.active {
627 z-index: 999999999;
628 }
629
630 /* Dropdown Button */
631 .metasync-nav-dropdown-btn {
632 display: flex;
633 align-items: center;
634 gap: 8px;
635 padding: 10px 16px;
636 border-radius: 8px;
637 text-decoration: none;
638 color: var(--dashboard-text-secondary);
639 font-weight: 500;
640 font-size: 14px;
641 transition: all 0.3s ease;
642 border: none;
643 background: transparent;
644 cursor: pointer;
645 position: relative;
646 }
647
648 .metasync-nav-dropdown-btn:hover {
649 color: var(--dashboard-text-primary);
650 background: rgba(255, 255, 255, 0.05);
651 transform: translateY(-1px);
652 }
653
654 .metasync-nav-dropdown-btn.active {
655 background: var(--dashboard-gradient-primary);
656 color: #ffffff;
657 box-shadow: var(--dashboard-shadow);
658 }
659
660 .metasync-nav-dropdown-btn .dropdown-arrow {
661 font-size: 10px;
662 transition: transform 0.3s ease;
663 margin-left: 4px;
664 }
665
666 .metasync-nav-dropdown:hover .metasync-nav-dropdown-btn .dropdown-arrow,
667 .metasync-nav-dropdown-btn[aria-expanded="true"] .dropdown-arrow {
668 transform: rotate(180deg);
669 }
670
671 /* Dropdown Menu */
672 .metasync-nav-dropdown-menu {
673 position: absolute;
674 top: calc(100% + 8px);
675 left: 0;
676 min-width: 220px;
677 max-width: 300px;
678 max-height: 70vh;
679 overflow-y: auto;
680 background: var(--dashboard-card-bg);
681 border: 1px solid var(--dashboard-border);
682 border-radius: 12px;
683 padding: 8px;
684 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
685 opacity: 0;
686 visibility: hidden;
687 transform: translateY(-10px);
688 transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
689 z-index: 999999999 !important;
690 backdrop-filter: blur(10px);
691 }
692
693 /* When using fixed positioning (via JavaScript) */
694 .metasync-nav-dropdown-menu[style*="position: fixed"] {
695 z-index: 999999999 !important;
696 }
697
698 /* Portal menu (appended to body for reliable positioning) */
699 #metasync-nav-portal-menu {
700 min-width: 220px;
701 max-width: 300px;
702 max-height: 70vh;
703 overflow-y: auto;
704 background: var(--dashboard-card-bg);
705 border: 1px solid var(--dashboard-border);
706 border-radius: 12px;
707 padding: 8px;
708 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
709 backdrop-filter: blur(10px);
710 }
711
712 #metasync-nav-portal-menu .metasync-nav-dropdown-item {
713 display: flex;
714 align-items: center;
715 gap: 10px;
716 padding: 10px 14px;
717 border-radius: 8px;
718 text-decoration: none;
719 color: var(--dashboard-text-secondary);
720 font-weight: 500;
721 font-size: 14px;
722 transition: all 0.2s ease;
723 white-space: nowrap;
724 }
725
726 #metasync-nav-portal-menu .metasync-nav-dropdown-item:hover {
727 background: rgba(255, 255, 255, 0.08);
728 color: var(--dashboard-text-primary);
729 transform: translateX(4px);
730 }
731
732 #metasync-nav-portal-menu .metasync-nav-dropdown-item.active {
733 background: var(--dashboard-gradient-primary);
734 color: #ffffff;
735 box-shadow: var(--dashboard-shadow);
736 }
737
738 #metasync-nav-portal-menu .metasync-nav-dropdown-item .tab-icon {
739 font-size: 16px;
740 opacity: 1;
741 transition: all 0.3s ease;
742 }
743
744 #metasync-nav-portal-menu .metasync-nav-dropdown-item.active .tab-icon,
745 #metasync-nav-portal-menu .metasync-nav-dropdown-item:hover .tab-icon {
746 transform: scale(1.1);
747 }
748
749 #metasync-nav-portal-menu::-webkit-scrollbar {
750 width: 6px;
751 }
752
753 #metasync-nav-portal-menu::-webkit-scrollbar-track {
754 background: rgba(255, 255, 255, 0.05);
755 border-radius: 3px;
756 }
757
758 #metasync-nav-portal-menu::-webkit-scrollbar-thumb {
759 background: rgba(255, 255, 255, 0.2);
760 border-radius: 3px;
761 }
762
763 #metasync-nav-portal-menu::-webkit-scrollbar-thumb:hover {
764 background: rgba(255, 255, 255, 0.3);
765 }
766
767 /* Scrollbar styling for dropdown menu */
768 .metasync-nav-dropdown-menu::-webkit-scrollbar {
769 width: 6px;
770 }
771
772 .metasync-nav-dropdown-menu::-webkit-scrollbar-track {
773 background: rgba(255, 255, 255, 0.05);
774 border-radius: 3px;
775 }
776
777 .metasync-nav-dropdown-menu::-webkit-scrollbar-thumb {
778 background: rgba(255, 255, 255, 0.2);
779 border-radius: 3px;
780 }
781
782 .metasync-nav-dropdown-menu::-webkit-scrollbar-thumb:hover {
783 background: rgba(255, 255, 255, 0.3);
784 }
785
786 .metasync-nav-dropdown:hover .metasync-nav-dropdown-menu,
787 .metasync-nav-dropdown.active .metasync-nav-dropdown-menu,
788 .metasync-nav-dropdown-btn[aria-expanded="true"] + .metasync-nav-dropdown-menu {
789 opacity: 1;
790 visibility: visible;
791 transform: translateY(0);
792 }
793
794 /* Dropdown Items */
795 .metasync-nav-dropdown-item {
796 display: flex;
797 align-items: center;
798 gap: 10px;
799 padding: 10px 14px;
800 border-radius: 8px;
801 text-decoration: none;
802 color: var(--dashboard-text-secondary);
803 font-weight: 500;
804 font-size: 14px;
805 transition: all 0.2s ease;
806 white-space: nowrap;
807 }
808
809 .metasync-nav-dropdown-item:hover {
810 background: rgba(255, 255, 255, 0.08);
811 color: var(--dashboard-text-primary);
812 transform: translateX(4px);
813 }
814
815 .metasync-nav-dropdown-item.active {
816 background: var(--dashboard-gradient-primary);
817 color: #ffffff;
818 box-shadow: var(--dashboard-shadow);
819 }
820
821 .metasync-nav-dropdown-item .tab-icon {
822 font-size: 16px;
823 opacity: 1;
824 transition: all 0.3s ease;
825 }
826
827 .metasync-nav-dropdown-item.active .tab-icon,
828 .metasync-nav-dropdown-item:hover .tab-icon {
829 transform: scale(1.1);
830 }
831
832 /* Right section adjustments for grouped nav */
833 .metasync-nav-grouped .metasync-nav-right {
834 padding-left: 12px;
835 border-left: 1px solid var(--dashboard-border);
836 margin-left: auto;
837 }
838
839 /* Refactored Simple Dropdown */
840 .metasync-simple-dropdown {
841 position: relative;
842 display: inline-block;
843 z-index: 999999999 !important; /* Ensure container is above forms */
844 }
845
846 .metasync-seo-btn,
847 .metasync-settings-btn {
848 background: transparent;
849 border: 2px solid var(--dashboard-border);
850 color: var(--dashboard-text-primary);
851 padding: 12px 16px;
852 cursor: pointer;
853 display: flex;
854 align-items: center;
855 gap: 8px;
856 border-radius: 8px;
857 font-size: 14px;
858 font-weight: 500;
859 transition: all 0.2s ease;
860 min-height: 44px;
861 }
862
863 .metasync-seo-btn:hover,
864 .metasync-settings-btn:hover {
865 background: var(--dashboard-card-hover);
866 border-color: var(--dashboard-accent);
867 }
868
869 .metasync-seo-btn.active,
870 .metasync-settings-btn.active {
871 background: var(--dashboard-accent);
872 border-color: var(--dashboard-accent);
873 color: white;
874 }
875
876 .metasync-seo-btn .dropdown-arrow,
877 .metasync-settings-btn .dropdown-arrow {
878 transition: transform 0.2s ease;
879 font-size: 10px;
880 }
881
882 .metasync-seo-btn[aria-expanded="true"] .dropdown-arrow,
883 .metasync-settings-btn[aria-expanded="true"] .dropdown-arrow {
884 transform: rotate(180deg);
885 }
886
887 /* Portal dropdown menu that bypasses stacking contexts */
888 .metasync-portal-menu {
889 background: var(--dashboard-card-bg);
890 border: 2px solid var(--dashboard-border);
891 border-radius: 8px;
892 min-width: 160px;
893 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
894 overflow: hidden;
895 /* position and z-index set by JavaScript */
896 }
897
898 .metasync-portal-item {
899 display: block;
900 padding: 14px 18px;
901 color: var(--dashboard-text-primary);
902 text-decoration: none;
903 font-size: 14px;
904 font-weight: 500;
905 transition: all 0.2s ease;
906 border-bottom: 1px solid var(--dashboard-border);
907 }
908
909 .metasync-portal-item:last-child {
910 border-bottom: none;
911 }
912
913 .metasync-portal-item:hover {
914 background: var(--dashboard-card-hover);
915 color: var(--dashboard-accent);
916 }
917
918 .metasync-portal-item.active {
919 background: var(--dashboard-accent);
920 color: white;
921 }
922
923 /* Input Fields - ONLY in plugin pages */
924 .metasync-dashboard-wrap input[type="text"],
925 .metasync-dashboard-wrap input[type="email"],
926 .metasync-dashboard-wrap input[type="url"],
927 .metasync-dashboard-wrap input[type="password"],
928 .metasync-dashboard-wrap input[type="number"],
929 .metasync-dashboard-wrap textarea,
930 .metasync-dashboard-wrap select {
931 background: rgba(255, 255, 255, 0.05);
932 border: 1px solid var(--dashboard-border);
933 border-radius: 8px;
934 color: var(--dashboard-text-primary);
935 padding: 12px 16px;
936 font-size: 14px;
937 transition: all 0.3s ease;
938 width: 100%;
939 max-width: 400px;
940 }
941
942 .metasync-dashboard-wrap input[type="text"]:focus,
943 .metasync-dashboard-wrap input[type="email"]:focus,
944 .metasync-dashboard-wrap input[type="url"]:focus,
945 .metasync-dashboard-wrap input[type="password"]:focus,
946 .metasync-dashboard-wrap input[type="number"]:focus,
947 .metasync-dashboard-wrap textarea:focus,
948 .metasync-dashboard-wrap select:focus {
949 background: rgba(255, 255, 255, 0.1);
950 border-color: var(--dashboard-accent);
951 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
952 outline: none;
953 }
954
955 .metasync-dashboard-wrap input[type="text"]::placeholder,
956 .metasync-dashboard-wrap input[type="email"]::placeholder,
957 .metasync-dashboard-wrap input[type="url"]::placeholder,
958 .metasync-dashboard-wrap input[type="password"]::placeholder,
959 .metasync-dashboard-wrap textarea::placeholder {
960 color: var(--dashboard-text-secondary);
961 }
962
963 /* Description Text - ONLY in plugin pages */
964 .metasync-dashboard-wrap .description,
965 .metasync-dashboard-wrap p.description {
966 color: var(--dashboard-text-secondary);
967 font-size: 13px;
968 line-height: 1.5;
969 margin-top: 8px;
970 margin-bottom: 0;
971 }
972
973 /* Checkboxes and Radio Buttons - ONLY in plugin pages */
974 .metasync-dashboard-wrap input[type="checkbox"],
975 .metasync-dashboard-wrap input[type="radio"] {
976 width: 18px;
977 height: 18px;
978 accent-color: var(--dashboard-accent);
979 margin-right: 8px;
980 }
981
982 /* Buttons - ONLY in plugin pages */
983 .metasync-dashboard-wrap .button,
984 .metasync-dashboard-wrap .button-primary,
985 .metasync-dashboard-wrap .button-secondary {
986 background: var(--dashboard-gradient-primary);
987 border: none;
988 border-radius: 8px;
989 color: #ffffff;
990 cursor: pointer;
991 font-weight: 500;
992 padding: 12px 24px;
993 text-decoration: none;
994 transition: all 0.3s ease;
995 display: inline-flex;
996 align-items: center;
997 gap: 8px;
998 font-size: 14px;
999 }
1000
1001 .metasync-dashboard-wrap .button:hover,
1002 .metasync-dashboard-wrap .button-primary:hover {
1003 background: var(--dashboard-gradient-accent);
1004 transform: translateY(-1px);
1005 box-shadow: var(--dashboard-shadow);
1006 }
1007
1008 .metasync-dashboard-wrap .button-secondary {
1009 background: transparent;
1010 border: 1px solid var(--dashboard-border);
1011 color: var(--dashboard-text-secondary);
1012 }
1013
1014 .metasync-dashboard-wrap .button-secondary:hover {
1015 background: var(--dashboard-card-hover);
1016 color: var(--dashboard-text-primary);
1017 border-color: var(--dashboard-accent);
1018 }
1019
1020 /* Status Messages - ONLY in plugin pages */
1021 .metasync-dashboard-wrap .notice {
1022 background: var(--dashboard-card-bg);
1023 border: none;
1024 border-left: 4px solid var(--dashboard-accent);
1025 border-radius: 8px;
1026 color: var(--dashboard-text-primary);
1027 margin: 16px 0;
1028 padding: 16px 20px;
1029 box-shadow: var(--dashboard-shadow);
1030 }
1031
1032 .metasync-dashboard-wrap .notice-success {
1033 border-left-color: var(--dashboard-success);
1034 background: rgba(16, 185, 129, 0.1);
1035 }
1036
1037 .metasync-dashboard-wrap .notice-warning {
1038 border-left-color: var(--dashboard-warning);
1039 background: rgba(245, 158, 11, 0.1);
1040 }
1041
1042 .metasync-dashboard-wrap .notice-error {
1043 border-left-color: var(--dashboard-error);
1044 background: rgba(239, 68, 68, 0.1);
1045 }
1046
1047 /* Dashboard Stats Cards - ONLY in plugin pages */
1048 .metasync-dashboard-wrap .dashboard-stats {
1049 display: grid;
1050 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
1051 gap: 20px;
1052 margin-bottom: 32px;
1053 }
1054
1055 .metasync-dashboard-wrap .dashboard-stat-card {
1056 background: var(--dashboard-card-bg);
1057 border: 1px solid var(--dashboard-border);
1058 border-radius: 16px;
1059 padding: 24px 20px;
1060 text-align: center;
1061 transition: all 0.3s ease;
1062 position: relative;
1063 overflow: hidden;
1064 min-height: 120px;
1065 display: flex;
1066 flex-direction: column;
1067 justify-content: center;
1068 align-items: center;
1069 }
1070
1071 /* Dashboard stat card top bar - DISABLED to prevent black subsections */
1072 /* .metasync-dashboard-wrap .dashboard-stat-card::before {
1073 content: '';
1074 position: absolute;
1075 top: 0;
1076 left: 0;
1077 right: 0;
1078 height: 4px;
1079 background: var(--dashboard-gradient-primary);
1080 } */
1081
1082 .metasync-dashboard-wrap .dashboard-stat-card:hover {
1083 /* Removed translateY animation - was too distracting */
1084 box-shadow: var(--dashboard-shadow-hover);
1085 }
1086
1087 .metasync-dashboard-wrap .dashboard-stat-value {
1088 font-size: 1.8rem;
1089 font-weight: 700;
1090 color: var(--dashboard-text-primary);
1091 margin-bottom: 8px;
1092 line-height: 1.2;
1093 word-break: break-word;
1094 hyphens: auto;
1095 max-width: 100%;
1096 overflow: hidden;
1097 text-overflow: ellipsis;
1098 white-space: nowrap;
1099 }
1100
1101 /* Special styling for emoji values - ONLY in plugin pages */
1102 .metasync-dashboard-wrap .dashboard-stat-value:not(:has(text)) {
1103 font-size: 2.5rem;
1104 white-space: normal;
1105 }
1106
1107 .metasync-dashboard-wrap .dashboard-stat-label {
1108 color: var(--dashboard-text-secondary);
1109 font-size: 12px;
1110 font-weight: 500;
1111 text-transform: uppercase;
1112 letter-spacing: 0.5px;
1113 line-height: 1.3;
1114 word-break: break-word;
1115 hyphens: auto;
1116 }
1117
1118 /* Progress Bars - ONLY in plugin pages */
1119 .metasync-dashboard-wrap .dashboard-progress {
1120 background: rgba(255, 255, 255, 0.1);
1121 border-radius: 10px;
1122 height: 8px;
1123 overflow: hidden;
1124 margin: 12px 0;
1125 }
1126
1127 .metasync-dashboard-wrap .dashboard-progress-bar {
1128 background: var(--dashboard-accent);
1129 height: 100%;
1130 border-radius: 10px;
1131 transition: width 0.3s ease;
1132 position: relative;
1133 }
1134
1135 .metasync-dashboard-wrap .dashboard-progress-bar::after {
1136 content: '';
1137 position: absolute;
1138 top: 0;
1139 left: 0;
1140 bottom: 0;
1141 right: 0;
1142 background-image: linear-gradient(
1143 -45deg,
1144 rgba(255, 255, 255, 0.2) 25%,
1145 transparent 25%,
1146 transparent 50%,
1147 rgba(255, 255, 255, 0.2) 50%,
1148 rgba(255, 255, 255, 0.2) 75%,
1149 transparent 75%,
1150 transparent
1151 );
1152 background-size: 20px 20px;
1153 /* Animation removed for static progress bars */
1154 }
1155
1156 /* Settings Sections - ONLY in plugin pages */
1157 .metasync-dashboard-wrap .settings-section {
1158 background: var(--dashboard-card-bg);
1159 border: 1px solid var(--dashboard-border);
1160 border-radius: 16px;
1161 padding: 24px;
1162 margin-bottom: 24px;
1163 position: relative;
1164 overflow: hidden;
1165 /* Removed any transitions that might cause animations */
1166 }
1167
1168 /* Settings section top bar - DISABLED to prevent black subsections */
1169 /* .metasync-dashboard-wrap .settings-section::before {
1170 content: '';
1171 position: absolute;
1172 top: 0;
1173 left: 0;
1174 right: 0;
1175 height: 3px;
1176 background: var(--dashboard-gradient-primary);
1177 } */
1178
1179 .metasync-dashboard-wrap .settings-section h2 {
1180 margin-top: 0;
1181 margin-bottom: 20px;
1182 color: var(--dashboard-text-primary);
1183 font-size: 1.5rem;
1184 font-weight: 600;
1185 }
1186
1187 /* Search Atlas Connect Container - Dashboard Style */
1188 .metasync-dashboard-wrap .metasync-sa-connect-container {
1189 background: var(--dashboard-card-bg);
1190 border: 1px solid var(--dashboard-border);
1191 border-radius: 16px;
1192 padding: 24px;
1193 margin-top: 20px;
1194 box-shadow: var(--dashboard-shadow);
1195 backdrop-filter: blur(10px);
1196 transition: all 0.3s ease;
1197 }
1198
1199 .metasync-dashboard-wrap .metasync-sa-connect-container:hover {
1200 background: var(--dashboard-card-hover);
1201 box-shadow: var(--dashboard-shadow-hover);
1202 /* Removed translateY animation - was too distracting */
1203 }
1204
1205 .metasync-dashboard-wrap .metasync-sa-connect-title {
1206 color: var(--dashboard-text-primary);
1207 font-size: 1.25rem;
1208 font-weight: 600;
1209 margin: 0 0 16px 0;
1210 display: flex;
1211 align-items: center;
1212 gap: 8px;
1213 }
1214
1215 .metasync-dashboard-wrap .metasync-sa-connect-description {
1216 color: var(--dashboard-text-secondary);
1217 margin-bottom: 20px;
1218 line-height: 1.6;
1219 font-size: 14px;
1220 }
1221
1222 /* Connect Buttons Container - Dashboard Style */
1223 .metasync-dashboard-wrap .metasync-sa-connect-buttons {
1224 display: flex;
1225 gap: 12px;
1226 flex-wrap: wrap;
1227 align-items: center;
1228 }
1229
1230 .metasync-dashboard-wrap .metasync-sa-connect-btn,
1231 .metasync-dashboard-wrap #connect-searchatlas-btn {
1232 background: var(--dashboard-gradient-primary);
1233 border: none;
1234 border-radius: 8px;
1235 color: #ffffff;
1236 padding: 12px 24px;
1237 font-weight: 500;
1238 cursor: pointer;
1239 transition: all 0.3s ease;
1240 display: inline-flex;
1241 align-items: center;
1242 gap: 8px;
1243 font-size: 14px;
1244 box-shadow: var(--dashboard-shadow);
1245 }
1246
1247 .metasync-dashboard-wrap .metasync-sa-connect-btn:hover:not(:disabled),
1248 .metasync-dashboard-wrap #connect-searchatlas-btn:hover:not(:disabled) {
1249 background: var(--dashboard-gradient-accent);
1250 transform: translateY(-2px);
1251 box-shadow: var(--dashboard-shadow-hover);
1252 }
1253
1254 .metasync-dashboard-wrap .metasync-sa-connect-btn:disabled,
1255 .metasync-dashboard-wrap #connect-searchatlas-btn:disabled {
1256 opacity: 0.7;
1257 cursor: not-allowed;
1258 transform: none;
1259 background: var(--dashboard-accent);
1260 }
1261
1262 .metasync-dashboard-wrap .metasync-sa-reset-btn,
1263 .metasync-dashboard-wrap #reset-searchatlas-auth {
1264 background: transparent;
1265 border: 1px solid var(--dashboard-border);
1266 border-radius: 8px;
1267 color: var(--dashboard-text-secondary);
1268 padding: 12px 24px;
1269 font-weight: 500;
1270 cursor: pointer;
1271 transition: all 0.3s ease;
1272 display: inline-flex;
1273 align-items: center;
1274 gap: 8px;
1275 font-size: 14px;
1276 }
1277
1278 .metasync-dashboard-wrap .metasync-sa-reset-btn:hover:not(:disabled),
1279 .metasync-dashboard-wrap #reset-searchatlas-auth:hover:not(:disabled) {
1280 background: var(--dashboard-card-hover);
1281 color: var(--dashboard-text-primary);
1282 border-color: var(--dashboard-error);
1283 /* Removed translateY animation - was too distracting */
1284 }
1285
1286 /* Connect Status Messages - Dashboard Style */
1287 .metasync-dashboard-wrap .metasync-sa-connect-status,
1288 .metasync-dashboard-wrap #sa-connect-status-message {
1289 margin-top: 16px;
1290 padding: 16px 20px;
1291 border-radius: 12px;
1292 display: flex;
1293 align-items: flex-start;
1294 gap: 12px;
1295 font-weight: 500;
1296 /* Removed slideInNotice animation - was too distracting */
1297 backdrop-filter: blur(10px);
1298 border: 1px solid;
1299 box-shadow: var(--dashboard-shadow);
1300 }
1301
1302 .metasync-dashboard-wrap .metasync-sa-connect-status.success,
1303 .metasync-dashboard-wrap #sa-connect-status-message.success {
1304 background: rgba(16, 185, 129, 0.15);
1305 border-color: rgba(16, 185, 129, 0.3);
1306 color: var(--dashboard-success);
1307 }
1308
1309 .metasync-dashboard-wrap .metasync-sa-connect-status.error,
1310 .metasync-dashboard-wrap #sa-connect-status-message.error {
1311 background: rgba(239, 68, 68, 0.15);
1312 border-color: rgba(239, 68, 68, 0.3);
1313 color: var(--dashboard-error);
1314 }
1315
1316 .metasync-dashboard-wrap .metasync-sa-connect-status.info,
1317 .metasync-dashboard-wrap #sa-connect-status-message.info {
1318 background: rgba(59, 130, 246, 0.15);
1319 border-color: rgba(59, 130, 246, 0.3);
1320 color: var(--dashboard-accent);
1321 }
1322
1323 .metasync-dashboard-wrap .metasync-sa-connect-status.warning,
1324 .metasync-dashboard-wrap #sa-connect-status-message.warning {
1325 background: rgba(245, 158, 11, 0.15);
1326 border-color: rgba(245, 158, 11, 0.3);
1327 color: var(--dashboard-warning);
1328 }
1329
1330 /* Connect Progress Indicator - Dashboard Style */
1331 .metasync-dashboard-wrap .metasync-sa-connect-progress {
1332 margin-top: 16px;
1333 padding: 16px 20px;
1334 background: rgba(59, 130, 246, 0.1);
1335 border: 1px solid rgba(59, 130, 246, 0.2);
1336 border-radius: 12px;
1337 backdrop-filter: blur(10px);
1338 }
1339
1340 .metasync-dashboard-wrap .metasync-sa-connect-progress-header {
1341 display: flex;
1342 justify-content: space-between;
1343 align-items: center;
1344 margin-bottom: 12px;
1345 font-size: 14px;
1346 font-weight: 500;
1347 color: var(--dashboard-text-primary);
1348 }
1349
1350 .metasync-dashboard-wrap .metasync-sa-connect-progress-time {
1351 color: var(--dashboard-text-secondary);
1352 font-size: 12px;
1353 font-weight: normal;
1354 }
1355
1356 .metasync-dashboard-wrap .metasync-sa-connect-progress-bar {
1357 width: 100%;
1358 height: 8px;
1359 background: rgba(255, 255, 255, 0.1);
1360 border-radius: 4px;
1361 overflow: hidden;
1362 margin: 8px 0;
1363 }
1364
1365 .metasync-dashboard-wrap .metasync-sa-connect-progress-fill {
1366 height: 100%;
1367 background: var(--dashboard-accent);
1368 width: 0%;
1369 transition: width 0.3s ease;
1370 border-radius: 4px;
1371 position: relative;
1372 overflow: hidden;
1373 }
1374
1375 .metasync-dashboard-wrap .metasync-sa-connect-progress-fill::after {
1376 content: '';
1377 position: absolute;
1378 top: 0;
1379 left: 0;
1380 bottom: 0;
1381 right: 0;
1382 background-image: linear-gradient(
1383 -45deg,
1384 rgba(255, 255, 255, 0.2) 25%,
1385 transparent 25%,
1386 transparent 50%,
1387 rgba(255, 255, 255, 0.2) 50%,
1388 rgba(255, 255, 255, 0.2) 75%,
1389 transparent 75%,
1390 transparent
1391 );
1392 background-size: 20px 20px;
1393 /* Animation removed for static progress bars */
1394 }
1395
1396 .metasync-dashboard-wrap .metasync-sa-connect-progress-text {
1397 margin-top: 8px;
1398 color: var(--dashboard-text-secondary);
1399 font-size: 13px;
1400 font-style: italic;
1401 text-align: center;
1402 }
1403
1404 /* Connect Loading States */
1405 .metasync-dashboard-wrap .metasync-sa-connect-loading {
1406 display: inline-block;
1407 width: 16px;
1408 height: 16px;
1409 border: 2px solid rgba(255, 255, 255, 0.3);
1410 border-top: 2px solid var(--dashboard-text-primary);
1411 border-radius: 50%;
1412 animation: spin 1s linear infinite;
1413 vertical-align: middle;
1414 margin-right: 8px;
1415 position: static; /* Keep in normal document flow */
1416 }
1417
1418 /* Authentication Tips Section - Style existing PHP details element */
1419 .metasync-dashboard-wrap .metasync-sa-connect-tips,
1420 .metasync-dashboard-wrap details.metasync-sa-connect-tips {
1421 margin-top: 16px;
1422 padding: 0;
1423 border: none;
1424 background: transparent;
1425 }
1426
1427 .metasync-dashboard-wrap .metasync-sa-connect-tips-toggle,
1428 .metasync-dashboard-wrap details.metasync-sa-connect-tips summary {
1429 background: transparent;
1430 border: none;
1431 color: var(--dashboard-text-secondary) !important;
1432 cursor: pointer;
1433 display: flex;
1434 align-items: center;
1435 gap: 8px;
1436 font-size: 14px !important;
1437 padding: 8px 0;
1438 width: 100%;
1439 text-align: left;
1440 transition: color 0.3s ease;
1441 list-style: none;
1442 outline: none;
1443 }
1444
1445 .metasync-dashboard-wrap .metasync-sa-connect-tips-toggle:hover,
1446 .metasync-dashboard-wrap details.metasync-sa-connect-tips summary:hover {
1447 color: var(--dashboard-text-primary) !important;
1448 }
1449
1450 .metasync-dashboard-wrap .metasync-sa-connect-tips-content,
1451 .metasync-dashboard-wrap details.metasync-sa-connect-tips > div {
1452 margin-top: 12px;
1453 padding: 16px;
1454 background: rgba(255, 255, 255, 0.05);
1455 border-radius: 8px;
1456 border: 1px solid var(--dashboard-border);
1457 font-size: 14px;
1458 line-height: 1.6;
1459 color: var(--dashboard-text-secondary) !important;
1460 }
1461
1462 /* Remove default details styling */
1463 .metasync-dashboard-wrap details.metasync-sa-connect-tips summary::-webkit-details-marker {
1464 display: none;
1465 }
1466
1467 .metasync-dashboard-wrap details.metasync-sa-connect-tips summary::marker {
1468 display: none;
1469 content: '';
1470 }
1471
1472 /* Ensure content is hidden when details is closed */
1473 .metasync-dashboard-wrap details.metasync-sa-connect-tips:not([open]) > div {
1474 display: none;
1475 }
1476
1477 /* Dashboard button styling for header actions */
1478 .metasync-dashboard-wrap .metasync-header-actions {
1479 display: flex;
1480 align-items: center;
1481 gap: 12px;
1482 }
1483
1484 .metasync-dashboard-wrap .metasync-dashboard-btn {
1485 background: var(--dashboard-gradient-primary);
1486 color: #ffffff;
1487 text-decoration: none;
1488 padding: 8px 16px;
1489 border-radius: 8px;
1490 font-size: 13px;
1491 font-weight: 500;
1492 transition: all 0.3s ease;
1493 display: inline-flex;
1494 align-items: center;
1495 gap: 6px;
1496 border: none;
1497 }
1498
1499 .metasync-dashboard-wrap .metasync-dashboard-btn:hover {
1500 background: var(--dashboard-gradient-accent);
1501 transform: translateY(-1px);
1502 box-shadow: var(--dashboard-shadow);
1503 color: #ffffff;
1504 text-decoration: none;
1505 }
1506
1507 /* Connect Action Buttons (existing and new) */
1508 .metasync-dashboard-wrap .metasync-sa-connect-retry-btn,
1509 .metasync-dashboard-wrap .metasync-sa-connect-btn {
1510 background: var(--dashboard-accent);
1511 border: none;
1512 border-radius: 8px;
1513 color: var(--dashboard-text-primary);
1514 padding: 10px 20px;
1515 font-weight: 500;
1516 cursor: pointer;
1517 transition: all 0.3s ease;
1518 display: inline-flex;
1519 align-items: center;
1520 gap: 8px;
1521 font-size: 14px;
1522 margin: 4px 8px 4px 0;
1523 }
1524
1525 .metasync-dashboard-wrap .metasync-sa-connect-retry-btn:hover,
1526 .metasync-dashboard-wrap .metasync-sa-connect-btn:hover {
1527 background: var(--dashboard-accent-hover);
1528 transform: translateY(-1px);
1529 box-shadow: var(--dashboard-shadow);
1530 }
1531
1532 .metasync-dashboard-wrap .metasync-sa-connect-btn.primary {
1533 background: var(--dashboard-gradient-primary);
1534 color: #ffffff;
1535 }
1536
1537 .metasync-dashboard-wrap .metasync-sa-connect-btn.secondary {
1538 background: transparent;
1539 border: 1px solid var(--dashboard-border);
1540 color: var(--dashboard-text-secondary);
1541 }
1542
1543 .metasync-dashboard-wrap .metasync-sa-connect-btn.secondary:hover {
1544 background: var(--dashboard-card-hover);
1545 color: var(--dashboard-text-primary);
1546 border-color: var(--dashboard-accent);
1547 }
1548
1549 /* Connect Status Message Content */
1550 .metasync-dashboard-wrap .metasync-sa-connect-status-content {
1551 flex: 1;
1552 }
1553
1554 .metasync-dashboard-wrap .metasync-sa-connect-status-title {
1555 font-weight: 600;
1556 font-size: 15px;
1557 margin-bottom: 8px;
1558 display: flex;
1559 align-items: center;
1560 gap: 8px;
1561 }
1562
1563 .metasync-dashboard-wrap .metasync-sa-connect-status-message {
1564 font-size: 14px;
1565 line-height: 1.5;
1566 opacity: 0.9;
1567 margin-bottom: 12px;
1568 }
1569
1570 /* Existing Connect Actions Container */
1571 .metasync-dashboard-wrap .metasync-sa-connect-actions {
1572 margin-top: 16px;
1573 display: flex;
1574 gap: 12px;
1575 flex-wrap: wrap;
1576 align-items: center;
1577 }
1578
1579 /* Connect Button States */
1580 .metasync-dashboard-wrap #connect-searchatlas-btn.connecting {
1581 background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);
1582 }
1583
1584 .metasync-dashboard-wrap #connect-searchatlas-btn.authenticating {
1585 background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
1586 }
1587
1588 .metasync-dashboard-wrap #connect-searchatlas-btn.success {
1589 background: linear-gradient(135deg, #27ae60 0%, #229954 100%);
1590 }
1591
1592 /* Theme Toggle Mobile Adjustments */
1593 @media (max-width: 768px) {
1594 .metasync-theme-toggle {
1595 order: -1;
1596 margin-bottom: 12px;
1597 }
1598
1599 .metasync-dashboard-wrap .metasync-header-right {
1600 flex-direction: column;
1601 align-items: stretch;
1602 gap: 8px;
1603 width: 100%;
1604 }
1605
1606 .metasync-theme-toggle {
1607 width: fit-content;
1608 align-self: center;
1609 }
1610 }
1611
1612 /* Mobile Connect Adjustments */
1613 @media (max-width: 768px) {
1614 .metasync-dashboard-wrap .metasync-sa-connect-container {
1615 padding: 20px 16px;
1616 margin-top: 16px;
1617 border-radius: 12px;
1618 }
1619
1620 .metasync-dashboard-wrap .metasync-sa-connect-buttons {
1621 flex-direction: column;
1622 align-items: stretch;
1623 gap: 8px;
1624 }
1625
1626 .metasync-dashboard-wrap .metasync-sa-connect-btn,
1627 .metasync-dashboard-wrap #connect-searchatlas-btn,
1628 .metasync-dashboard-wrap .metasync-sa-reset-btn,
1629 .metasync-dashboard-wrap #reset-searchatlas-auth {
1630 width: 100%;
1631 justify-content: center;
1632 padding: 14px 20px;
1633 font-size: 15px;
1634 }
1635
1636 .metasync-dashboard-wrap .metasync-sa-connect-progress {
1637 padding: 16px;
1638 margin-top: 12px;
1639 }
1640
1641 .metasync-dashboard-wrap .metasync-sa-connect-progress-header {
1642 flex-direction: column;
1643 align-items: flex-start;
1644 gap: 6px;
1645 font-size: 13px;
1646 }
1647
1648 .metasync-dashboard-wrap .metasync-sa-connect-status {
1649 padding: 16px;
1650 margin-top: 12px;
1651 flex-direction: column;
1652 align-items: flex-start;
1653 gap: 8px;
1654 }
1655
1656 .metasync-dashboard-wrap .metasync-sa-connect-status-title {
1657 font-size: 16px;
1658 }
1659 }
1660
1661 /* NO GLOBAL LAYOUT CHANGES - removed problematic positioning */
1662
1663 /* Improve stat card text handling - ONLY in plugin pages */
1664 .metasync-dashboard-wrap .dashboard-stat-value {
1665 display: block;
1666 max-width: 100%;
1667 overflow: visible;
1668 white-space: normal;
1669 word-wrap: break-word;
1670 text-overflow: clip;
1671 }
1672
1673 /* Long text handling for theme names - ONLY in plugin pages */
1674 .metasync-dashboard-wrap .dashboard-stat-card:nth-child(3) .dashboard-stat-value {
1675 font-size: 1.2rem;
1676 line-height: 1.3;
1677 text-align: center;
1678 display: -webkit-box;
1679 -webkit-line-clamp: 2;
1680 -webkit-box-orient: vertical;
1681 overflow: hidden;
1682 text-overflow: ellipsis;
1683 max-height: 2.6em;
1684 }
1685
1686 /* Responsive Design - ONLY in plugin pages */
1687 @media (max-width: 1200px) {
1688 .metasync-dashboard-wrap .dashboard-stats {
1689 grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1690 gap: 16px;
1691 }
1692
1693 .metasync-dashboard-wrap {
1694 padding: 20px 30px; /* Reduced lateral padding for tablets */
1695 }
1696 }
1697
1698 @media (max-width: 768px) {
1699 .metasync-dashboard-wrap {
1700 /* Proper mobile padding with lateral spacing */
1701 padding: 15px 20px;
1702 }
1703
1704 /* Mobile header adjustments */
1705 .metasync-dashboard-wrap .metasync-header {
1706 flex-direction: column;
1707 align-items: center;
1708 gap: 16px;
1709 text-align: center;
1710 padding: 16px 0;
1711 }
1712
1713 .metasync-dashboard-wrap .metasync-header-left {
1714 display: flex;
1715 align-items: center;
1716 justify-content: center;
1717 width: 100%;
1718 }
1719
1720 .metasync-dashboard-wrap .metasync-header-right {
1721 order: -1;
1722 width: 100%;
1723 display: flex;
1724 justify-content: center;
1725 }
1726
1727 .metasync-dashboard-wrap .metasync-header-actions {
1728 flex-direction: column;
1729 gap: 8px;
1730 align-items: center;
1731 width: 100%;
1732 }
1733
1734 .metasync-dashboard-wrap .metasync-dashboard-btn {
1735 padding: 10px 16px;
1736 font-size: 14px;
1737 }
1738
1739 .metasync-dashboard-wrap .metasync-logo {
1740 height: 40px;
1741 max-width: 160px;
1742 }
1743
1744 .metasync-dashboard-wrap .metasync-integration-status {
1745 font-size: 11px;
1746 padding: 6px 12px;
1747 }
1748
1749 /* Mobile page title adjustments */
1750 .metasync-dashboard-wrap .metasync-page-title {
1751 text-align: center;
1752 margin-bottom: 1.5rem;
1753 }
1754
1755 .metasync-dashboard-wrap .metasync-page-title h1 {
1756 font-size: 2rem;
1757 text-align: center;
1758 }
1759
1760 /* Mobile navigation adjustments */
1761 .metasync-dashboard-wrap .metasync-nav-tabs {
1762 flex-direction: column;
1763 gap: 2px;
1764 }
1765
1766 .metasync-dashboard-wrap .metasync-nav-tab {
1767 justify-content: center;
1768 padding: 12px 16px;
1769 }
1770
1771 /* Grouped navigation mobile adjustments */
1772 .metasync-dashboard-wrap .metasync-nav-grouped {
1773 flex-direction: column;
1774 gap: 8px;
1775 }
1776
1777 .metasync-dashboard-wrap .metasync-nav-dropdown {
1778 width: 100%;
1779 }
1780
1781 .metasync-dashboard-wrap .metasync-nav-dropdown-btn {
1782 width: 100%;
1783 justify-content: space-between;
1784 }
1785
1786 .metasync-dashboard-wrap .metasync-nav-dropdown-menu {
1787 position: static;
1788 opacity: 1;
1789 visibility: visible;
1790 transform: none;
1791 box-shadow: none;
1792 border: 1px solid var(--dashboard-border);
1793 margin-top: 8px;
1794 display: none;
1795 }
1796
1797 .metasync-dashboard-wrap .metasync-nav-dropdown.active .metasync-nav-dropdown-menu {
1798 display: block;
1799 }
1800
1801 .metasync-dashboard-wrap .metasync-nav-dropdown-item {
1802 padding: 12px 16px;
1803 }
1804
1805 .metasync-dashboard-wrap .metasync-nav-grouped .metasync-nav-right {
1806 border-left: none;
1807 border-top: 1px solid var(--dashboard-border);
1808 padding-left: 0;
1809 padding-top: 12px;
1810 margin-left: 0;
1811 justify-content: center;
1812 width: 100%;
1813 }
1814
1815 .metasync-dashboard-wrap .nav-tab-wrapper {
1816 flex-direction: column !important;
1817 gap: 8px !important;
1818 }
1819
1820 .metasync-dashboard-wrap .nav-tab {
1821 width: 100% !important;
1822 text-align: center !important;
1823 }
1824
1825 .metasync-dashboard-wrap .dashboard-stats {
1826 grid-template-columns: 1fr;
1827 gap: 16px;
1828 }
1829
1830 .metasync-dashboard-wrap .dashboard-stat-card {
1831 min-height: 100px;
1832 padding: 20px 16px;
1833 }
1834
1835 .metasync-dashboard-wrap .dashboard-stat-value {
1836 font-size: 1.6rem;
1837 }
1838
1839 .metasync-dashboard-wrap .form-table th,
1840 .metasync-dashboard-wrap .form-table td {
1841 display: block;
1842 width: 100%;
1843 border-radius: 12px;
1844 border: 1px solid var(--dashboard-border);
1845 margin-bottom: 8px;
1846 }
1847
1848 .metasync-dashboard-wrap .form-table th {
1849 margin-bottom: 4px;
1850 }
1851
1852 .metasync-dashboard-wrap .metasync-sa-connect-buttons {
1853 flex-direction: column;
1854 align-items: stretch;
1855 }
1856
1857 .metasync-dashboard-wrap .metasync-sa-connect-btn,
1858 .metasync-dashboard-wrap .metasync-sa-reset-btn,
1859 .metasync-dashboard-wrap #connect-searchatlas-btn,
1860 .metasync-dashboard-wrap #reset-searchatlas-auth {
1861 width: 100%;
1862 justify-content: center;
1863 margin: 0 !important;
1864 }
1865 }
1866
1867 /* Loading States - ONLY in plugin pages */
1868 .metasync-dashboard-wrap .dashboard-loading {
1869 position: relative;
1870 opacity: 0.6;
1871 }
1872
1873 .metasync-dashboard-wrap .dashboard-loading::after {
1874 content: '';
1875 position: absolute;
1876 top: 50%;
1877 left: 50%;
1878 width: 24px;
1879 height: 24px;
1880 border: 3px solid rgba(255, 255, 255, 0.2);
1881 border-top-color: var(--dashboard-accent);
1882 border-radius: 50%;
1883 animation: spin 1s linear infinite;
1884 transform: translate(-50%, -50%);
1885 }
1886
1887 @keyframes spin {
1888 0% { transform: rotate(0deg); }
1889 100% { transform: rotate(360deg); }
1890 }
1891
1892 /* Ensure perfect centering for all spinning elements */
1893 .metasync-dashboard-wrap .spinner,
1894 .metasync-dashboard-wrap .metasync-loading-spinner {
1895 display: block;
1896 margin: 0 auto;
1897 position: relative;
1898 }
1899
1900 /* Center spinners within buttons */
1901 .metasync-dashboard-wrap .button .metasync-sa-connect-loading,
1902 .metasync-dashboard-wrap button .metasync-sa-connect-loading {
1903 vertical-align: middle;
1904 margin-right: 6px;
1905 margin-left: 0;
1906 position: static; /* Important: keep in button text flow */
1907 display: inline-block;
1908 }
1909
1910 /* Loading states - general styling */
1911 .metasync-dashboard-wrap .dashboard-loading {
1912 position: relative;
1913 opacity: 0.6;
1914 }
1915
1916 /* Override for buttons - keep normal layout, don't use flex */
1917 .metasync-dashboard-wrap .button.dashboard-loading,
1918 .metasync-dashboard-wrap button.dashboard-loading {
1919 position: relative;
1920 opacity: 0.6;
1921 /* Remove flex - let button content flow naturally */
1922 }
1923
1924 /* Spinner for general loading overlay (not buttons) */
1925 .metasync-dashboard-wrap .dashboard-loading::after {
1926 content: '';
1927 position: absolute;
1928 top: 50%;
1929 left: 50%;
1930 width: 20px;
1931 height: 20px;
1932 border: 2px solid rgba(255, 255, 255, 0.3);
1933 border-top-color: var(--dashboard-accent);
1934 border-radius: 50%;
1935 animation: spin 1s linear infinite;
1936 transform: translate(-50%, -50%);
1937 z-index: 1;
1938 }
1939
1940 /* Don't show overlay spinner on buttons with inline spinners */
1941 .metasync-dashboard-wrap .button.dashboard-loading::after,
1942 .metasync-dashboard-wrap button.dashboard-loading::after {
1943 display: none;
1944 }
1945
1946 /* Center spinning tab icons */
1947 .metasync-dashboard-wrap .metasync-nav-tab .tab-icon {
1948 display: inline-flex;
1949 align-items: center;
1950 justify-content: center;
1951 min-width: 20px;
1952 vertical-align: middle;
1953 }
1954
1955 /* Ensure spinners stay inline in their context */
1956 .metasync-dashboard-wrap .metasync-sa-connect-loading {
1957 /* Force inline positioning - never absolute */
1958 position: static !important;
1959 display: inline-block !important;
1960 vertical-align: middle !important;
1961 transform: none !important; /* Don't translate position */
1962 }
1963
1964 /* Only center text in containers, not the spinners themselves */
1965 .metasync-dashboard-wrap .loading-container {
1966 text-align: center;
1967 }
1968
1969 /* Tooltips - ONLY in plugin pages */
1970 .metasync-dashboard-wrap .dashboard-tooltip {
1971 position: relative;
1972 cursor: help;
1973 display: inline-block;
1974 }
1975
1976 .metasync-dashboard-wrap .dashboard-tooltip:hover::after {
1977 content: attr(data-tooltip);
1978 position: absolute;
1979 bottom: 125%;
1980 left: 50%;
1981 transform: translateX(-50%);
1982 background: var(--dashboard-card-bg);
1983 color: var(--dashboard-text-primary);
1984 padding: 8px 12px;
1985 border-radius: 6px;
1986 font-size: 12px;
1987 white-space: nowrap;
1988 box-shadow: var(--dashboard-shadow);
1989 z-index: 1000;
1990 border: 1px solid var(--dashboard-border);
1991 }
1992
1993 /* Custom Scrollbar - ONLY in plugin pages */
1994 .metasync-dashboard-wrap ::-webkit-scrollbar {
1995 width: 8px;
1996 }
1997
1998 .metasync-dashboard-wrap ::-webkit-scrollbar-track {
1999 background: var(--dashboard-bg);
2000 }
2001
2002 .metasync-dashboard-wrap ::-webkit-scrollbar-thumb {
2003 background: var(--dashboard-border);
2004 border-radius: 4px;
2005 }
2006
2007 .metasync-dashboard-wrap ::-webkit-scrollbar-thumb:hover {
2008 background: var(--dashboard-accent);
2009 }
2010
2011 /* WordPress elements - ONLY in plugin pages */
2012 .metasync-dashboard-wrap select,
2013 .metasync-dashboard-wrap input[type="text"],
2014 .metasync-dashboard-wrap input[type="email"],
2015 .metasync-dashboard-wrap input[type="url"],
2016 .metasync-dashboard-wrap input[type="password"],
2017 .metasync-dashboard-wrap input[type="number"],
2018 .metasync-dashboard-wrap textarea {
2019 color: var(--dashboard-text-primary);
2020 }
2021
2022 .metasync-dashboard-wrap .form-table th {
2023 color: var(--dashboard-text-primary);
2024 }
2025
2026 .metasync-dashboard-wrap .form-table td p {
2027 color: var(--dashboard-text-secondary);
2028 }
2029
2030 /* Table Styling - ONLY in plugin pages */
2031 .metasync-dashboard-wrap .wp-list-table {
2032 background: var(--dashboard-card-bg);
2033 border: 1px solid var(--dashboard-border);
2034 border-radius: 12px;
2035 overflow: hidden;
2036 }
2037
2038 .metasync-dashboard-wrap .wp-list-table th {
2039 background: rgba(255, 255, 255, 0.05);
2040 color: var(--dashboard-text-primary);
2041 border-bottom: 1px solid var(--dashboard-border);
2042 }
2043
2044 .metasync-dashboard-wrap .wp-list-table td {
2045 background: var(--dashboard-card-bg);
2046 color: var(--dashboard-text-primary);
2047 border-bottom: 1px solid var(--dashboard-border);
2048 }
2049
2050 .metasync-dashboard-wrap .wp-list-table tbody tr:hover {
2051 background: var(--dashboard-card-hover);
2052 }
2053
2054 /* Modern Unsaved Changes Design */
2055 .metasync-dashboard-wrap .has-unsaved-changes {
2056 position: relative;
2057 border: 1px solid rgba(59, 130, 246, 0.3) !important;
2058 border-radius: 12px !important;
2059 background: linear-gradient(135deg, rgba(59, 130, 246, 0.02) 0%, rgba(59, 130, 246, 0.01) 100%) !important;
2060 box-shadow: 0 0 0 1px rgba(59, 130, 246, 0.1), 0 2px 8px rgba(59, 130, 246, 0.05) !important;
2061 transition: all 0.3s ease !important;
2062 }
2063
2064 .metasync-dashboard-wrap .has-unsaved-changes::after {
2065 content: "";
2066 position: absolute;
2067 top: 0;
2068 left: 0;
2069 right: 0;
2070 height: 3px;
2071 background: linear-gradient(90deg, #3b82f6, #8b5cf6, #3b82f6);
2072 background-size: 200% 100%;
2073 border-radius: 12px 12px 0 0;
2074 animation: gradient-shift 3s ease-in-out infinite;
2075 }
2076
2077 @keyframes gradient-shift {
2078 0%, 100% {
2079 background-position: 0% 0%;
2080 opacity: 0.6;
2081 }
2082 50% {
2083 background-position: 100% 0%;
2084 opacity: 0.8;
2085 }
2086 }
2087
2088 /* Unsaved indicator dot - subtle pulse instead of blink */
2089 .metasync-dashboard-wrap .unsaved-indicator {
2090 color: #3b82f6 !important;
2091 font-weight: 600 !important;
2092 animation: subtle-pulse 2s ease-in-out infinite;
2093 display: inline-flex;
2094 align-items: center;
2095 margin-right: 6px;
2096 }
2097
2098 @keyframes subtle-pulse {
2099 0%, 100% {
2100 opacity: 0.7;
2101 transform: scale(1);
2102 }
2103 50% {
2104 opacity: 1;
2105 transform: scale(1.05);
2106 }
2107 }
2108
2109 .metasync-dashboard-wrap .button.button-primary .unsaved-indicator {
2110 color: rgba(255, 255, 255, 0.9) !important;
2111 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
2112 }
2113
2114 /* Enhanced save button styling for unsaved changes */
2115 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary {
2116 background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%) !important;
2117 border: none !important;
2118 color: #ffffff !important;
2119 font-weight: 600 !important;
2120 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3) !important;
2121 transform: translateY(-1px);
2122 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
2123 position: relative;
2124 overflow: hidden;
2125 }
2126
2127 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary::before {
2128 content: "";
2129 position: absolute;
2130 top: 0;
2131 left: -100%;
2132 width: 100%;
2133 height: 100%;
2134 background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
2135 transition: left 0.6s ease;
2136 }
2137
2138 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary:hover::before {
2139 left: 100%;
2140 }
2141
2142 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary:hover {
2143 background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%) !important;
2144 transform: translateY(-2px) !important;
2145 box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4) !important;
2146 }
2147
2148 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary:active {
2149 transform: translateY(0) !important;
2150 box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3) !important;
2151 }
2152
2153 /* Modern Bottom Notification Bar for Unsaved Changes */
2154 .metasync-unsaved-notification {
2155 position: fixed !important;
2156 bottom: 20px !important;
2157 left: 50% !important;
2158 transform: translateX(-50%) translateY(100%) !important;
2159 max-width: 600px !important;
2160 width: calc(100% - 40px) !important;
2161 background: linear-gradient(135deg, rgba(59, 130, 246, 0.95) 0%, rgba(139, 92, 246, 0.95) 100%) !important;
2162 backdrop-filter: blur(10px) !important;
2163 color: #ffffff !important;
2164 padding: 16px 20px !important;
2165 z-index: 999999 !important;
2166 display: flex !important;
2167 align-items: center !important;
2168 justify-content: space-between !important;
2169 font-weight: 500 !important;
2170 box-shadow: 0 8px 32px rgba(59, 130, 246, 0.25),
2171 0 0 0 1px rgba(255, 255, 255, 0.1) !important;
2172 border: 1px solid rgba(255, 255, 255, 0.2) !important;
2173 border-radius: 12px !important;
2174 transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
2175 box-shadow 0.3s ease !important;
2176 }
2177
2178 .metasync-unsaved-notification::before {
2179 content: "" !important;
2180 position: absolute !important;
2181 inset: -1px !important;
2182 background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05)) !important;
2183 border-radius: 12px !important;
2184 z-index: -1 !important;
2185 }
2186
2187 .metasync-unsaved-notification.show {
2188 transform: translateX(-50%) translateY(0) !important;
2189 }
2190
2191 .metasync-unsaved-notification:hover {
2192 box-shadow: 0 12px 40px rgba(59, 130, 246, 0.35),
2193 0 0 0 1px rgba(255, 255, 255, 0.15) !important;
2194 }
2195
2196 .metasync-unsaved-notification .notification-content {
2197 display: flex !important;
2198 align-items: center !important;
2199 gap: 12px !important;
2200 }
2201
2202 .metasync-unsaved-notification .notification-icon {
2203 width: 20px !important;
2204 height: 20px !important;
2205 border-radius: 50% !important;
2206 background: rgba(255, 255, 255, 0.2) !important;
2207 display: flex !important;
2208 align-items: center !important;
2209 justify-content: center !important;
2210 font-size: 12px !important;
2211 animation: pulse-icon 2s ease-in-out infinite !important;
2212 }
2213
2214 @keyframes pulse-icon {
2215 0%, 100% {
2216 transform: scale(1);
2217 background: rgba(255, 255, 255, 0.2);
2218 }
2219 50% {
2220 transform: scale(1.1);
2221 background: rgba(255, 255, 255, 0.3);
2222 }
2223 }
2224
2225 .metasync-unsaved-notification .notification-actions {
2226 display: flex !important;
2227 align-items: center !important;
2228 gap: 12px !important;
2229 }
2230
2231 .metasync-unsaved-notification .notification-button {
2232 background: rgba(255, 255, 255, 0.15) !important;
2233 border: 1px solid rgba(255, 255, 255, 0.2) !important;
2234 color: #ffffff !important;
2235 padding: 6px 12px !important;
2236 border-radius: 6px !important;
2237 font-size: 12px !important;
2238 font-weight: 500 !important;
2239 cursor: pointer !important;
2240 transition: all 0.2s ease !important;
2241 text-decoration: none !important;
2242 }
2243
2244 .metasync-unsaved-notification .notification-button:hover {
2245 background: rgba(255, 255, 255, 0.25) !important;
2246 transform: translateY(-1px) !important;
2247 }
2248
2249 .metasync-unsaved-notification .notification-button.primary {
2250 background: rgba(255, 255, 255, 0.9) !important;
2251 color: #3b82f6 !important;
2252 }
2253
2254 .metasync-unsaved-notification .notification-button.primary:hover {
2255 background: #ffffff !important;
2256 color: #2563eb !important;
2257 }
2258
2259 .metasync-unsaved-notification .close-notification {
2260 background: none !important;
2261 border: none !important;
2262 color: rgba(255, 255, 255, 0.7) !important;
2263 cursor: pointer !important;
2264 padding: 4px !important;
2265 border-radius: 4px !important;
2266 transition: all 0.2s ease !important;
2267 font-size: 16px !important;
2268 }
2269
2270 .metasync-unsaved-notification .close-notification:hover {
2271 color: #ffffff !important;
2272 background: rgba(255, 255, 255, 0.1) !important;
2273 }
2274
2275 /* Legacy warning banner styles - updated */
2276 .metasync-unsaved-warning {
2277 background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(139, 92, 246, 0.05) 100%) !important;
2278 border-left: 4px solid #3b82f6 !important;
2279 color: var(--dashboard-text-primary) !important;
2280 padding: 16px 20px !important;
2281 margin: 20px 0 !important;
2282 border-radius: 8px !important;
2283 display: flex !important;
2284 align-items: center !important;
2285 gap: 12px !important;
2286 font-weight: 500 !important;
2287 box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1) !important;
2288 transition: all 0.3s ease !important;
2289 }
2290
2291 @keyframes slideInTop {
2292 from {
2293 opacity: 0;
2294 transform: translateY(-20px);
2295 }
2296 to {
2297 opacity: 1;
2298 transform: translateY(0);
2299 }
2300 }
2301
2302 .metasync-unsaved-warning .dashicons {
2303 color: #3b82f6 !important;
2304 font-size: 20px !important;
2305 animation: gentle-rotate 4s ease-in-out infinite !important;
2306 }
2307
2308 @keyframes gentle-rotate {
2309 0%, 100% { transform: rotate(0deg); }
2310 25% { transform: rotate(5deg); }
2311 75% { transform: rotate(-5deg); }
2312 }
2313
2314 /* Save button highlight animation */
2315 @keyframes save-button-highlight {
2316 0% {
2317 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
2318 transform: translateY(-1px) scale(1);
2319 }
2320 50% {
2321 box-shadow: 0 6px 20px rgba(59, 130, 246, 0.5);
2322 transform: translateY(-2px) scale(1.02);
2323 }
2324 100% {
2325 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
2326 transform: translateY(-1px) scale(1);
2327 }
2328 }
2329
2330 /* Mobile responsive adjustments */
2331 @media (max-width: 768px) {
2332 .metasync-unsaved-notification {
2333 bottom: 10px !important;
2334 left: 50% !important;
2335 width: calc(100% - 20px) !important;
2336 max-width: none !important;
2337 padding: 12px 16px !important;
2338 flex-direction: column !important;
2339 gap: 10px !important;
2340 text-align: center !important;
2341 border-radius: 8px !important;
2342 }
2343
2344 .metasync-unsaved-notification .notification-content {
2345 justify-content: center !important;
2346 width: 100% !important;
2347 }
2348
2349 .metasync-unsaved-notification .notification-actions {
2350 justify-content: center !important;
2351 flex-wrap: wrap !important;
2352 gap: 8px !important;
2353 width: 100% !important;
2354 }
2355
2356 .metasync-unsaved-notification .notification-button {
2357 flex: 1 !important;
2358 min-width: 70px !important;
2359 max-width: 100px !important;
2360 }
2361
2362 .metasync-unsaved-notification .close-notification {
2363 position: absolute !important;
2364 top: 8px !important;
2365 right: 8px !important;
2366 padding: 2px 6px !important;
2367 font-size: 14px !important;
2368 }
2369 }
2370
2371 /* High contrast mode support */
2372 @media (prefers-contrast: high) {
2373 .metasync-dashboard-wrap .has-unsaved-changes {
2374 border: 2px solid #0066cc !important;
2375 background: rgba(0, 102, 204, 0.1) !important;
2376 }
2377
2378 .metasync-unsaved-notification {
2379 background: #0066cc !important;
2380 border: 1px solid #004499 !important;
2381 }
2382 }
2383
2384 /* Reduced motion support */
2385 @media (prefers-reduced-motion: reduce) {
2386 .metasync-dashboard-wrap .unsaved-indicator,
2387 .metasync-dashboard-wrap .has-unsaved-changes::after,
2388 .metasync-unsaved-notification .notification-icon {
2389 animation: none !important;
2390 }
2391
2392 .metasync-dashboard-wrap .has-unsaved-changes .button.button-primary,
2393 .metasync-unsaved-notification {
2394 transition: none !important;
2395 }
2396 }
2397
2398 /* ========================================
2399 SYNC LOG PAGE STYLES
2400 ======================================== */
2401
2402 /* Sync Log Header */
2403 .sync-log-header {
2404 display: flex;
2405 justify-content: space-between;
2406 align-items: flex-start;
2407 margin-bottom: 30px;
2408 gap: 20px;
2409 }
2410
2411 .sync-log-title-section {
2412 flex: 1;
2413 }
2414
2415 .sync-log-title-section h2 {
2416 color: var(--dashboard-text-primary);
2417 margin-bottom: 8px;
2418 font-size: 24px;
2419 font-weight: 600;
2420 }
2421
2422 /* Sync Log Filters */
2423 .sync-log-filters {
2424 flex-shrink: 0;
2425 display: flex;
2426 align-items: center;
2427 justify-content: flex-end;
2428 }
2429
2430 .sync-filters-form {
2431 display: grid;
2432 grid-template-columns: 1fr 1fr;
2433 gap: 12px;
2434 align-items: center;
2435 justify-content: end;
2436 width: auto;
2437 min-width: 280px;
2438 }
2439
2440 /* Large screens - optimize filter spacing */
2441 @media (min-width: 1200px) {
2442 .sync-filters-form {
2443 min-width: 320px;
2444 gap: 16px;
2445 }
2446
2447 .sync-filter-select {
2448 min-width: 150px;
2449 }
2450 }
2451
2452 .sync-filter-select {
2453 background: var(--dashboard-card-bg);
2454 border: 1px solid var(--dashboard-border);
2455 color: var(--dashboard-text-primary);
2456 padding: 8px 12px;
2457 border-radius: 6px;
2458 font-size: 14px;
2459 width: 100%;
2460 min-width: 130px;
2461 transition: all 0.2s ease;
2462 cursor: pointer;
2463 appearance: none;
2464 -webkit-appearance: none;
2465 -moz-appearance: none;
2466 background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6,9 12,15 18,9'%3e%3c/polyline%3e%3c/svg%3e");
2467 background-repeat: no-repeat;
2468 background-position: right 8px center;
2469 background-size: 16px;
2470 padding-right: 32px;
2471 white-space: nowrap;
2472 box-sizing: border-box;
2473 }
2474
2475 .sync-filter-select:focus {
2476 outline: none;
2477 border-color: var(--dashboard-accent);
2478 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
2479 background-color: var(--dashboard-card-hover);
2480 }
2481
2482 .sync-filter-select:hover {
2483 border-color: var(--dashboard-accent);
2484 background-color: var(--dashboard-card-hover);
2485 }
2486
2487 .sync-filter-select:active {
2488 background-color: var(--dashboard-card-hover);
2489 border-color: var(--dashboard-accent);
2490 }
2491
2492 .sync-filter-select option {
2493 background: var(--dashboard-card-bg);
2494 color: var(--dashboard-text-primary);
2495 padding: 8px;
2496 }
2497
2498 /* Sync Log List */
2499 .sync-log-list {
2500 background: var(--dashboard-card-bg);
2501 border-radius: 12px;
2502 overflow: hidden;
2503 border: 1px solid var(--dashboard-border);
2504 }
2505
2506 .sync-log-item {
2507 display: flex;
2508 align-items: center;
2509 padding: 20px;
2510 border-bottom: 1px solid var(--dashboard-border);
2511 transition: all 0.2s ease;
2512 }
2513
2514 .sync-log-item:last-child {
2515 border-bottom: none;
2516 }
2517
2518 .sync-log-item:hover {
2519 background: var(--dashboard-card-hover);
2520 }
2521
2522 /* Sync Log Icon */
2523 .sync-log-icon {
2524 margin-right: 16px;
2525 flex-shrink: 0;
2526 }
2527
2528 .sync-icon-circle {
2529 width: 40px;
2530 height: 40px;
2531 background: var(--dashboard-card-hover);
2532 border-radius: 50%;
2533 display: flex;
2534 align-items: center;
2535 justify-content: center;
2536 border: 1px solid var(--dashboard-border);
2537 }
2538
2539 .sync-icon {
2540 font-size: 18px;
2541 color: var(--dashboard-text-secondary);
2542 }
2543
2544 /* Sync Log Content */
2545 .sync-log-content {
2546 flex: 1;
2547 min-width: 0;
2548 }
2549
2550 .sync-log-title {
2551 font-weight: 600;
2552 color: var(--dashboard-text-primary);
2553 font-size: 16px;
2554 margin-bottom: 4px;
2555 line-height: 1.4;
2556 }
2557
2558 .sync-log-meta {
2559 color: var(--dashboard-text-secondary);
2560 font-size: 14px;
2561 line-height: 1.3;
2562 }
2563
2564 /* Sync Log Status */
2565 .sync-log-status {
2566 margin-left: 16px;
2567 flex-shrink: 0;
2568 }
2569
2570 .sync-status-badge {
2571 display: inline-flex;
2572 align-items: center;
2573 gap: 6px;
2574 padding: 6px 12px;
2575 border-radius: 20px;
2576 font-size: 13px;
2577 font-weight: 500;
2578 text-transform: capitalize;
2579 }
2580
2581 .sync-status-published {
2582 background: rgba(16, 185, 129, 0.15);
2583 color: var(--dashboard-success);
2584 border: 1px solid rgba(16, 185, 129, 0.3);
2585 }
2586
2587 .sync-status-draft {
2588 background: rgba(139, 92, 246, 0.15);
2589 color: #8b5cf6;
2590 border: 1px solid rgba(139, 92, 246, 0.3);
2591 }
2592
2593 .sync-status-icon {
2594 font-size: 12px;
2595 font-weight: bold;
2596 }
2597
2598 /* Sync Log Empty State */
2599 .sync-log-empty {
2600 text-align: center;
2601 padding: 60px 20px;
2602 color: var(--dashboard-text-secondary);
2603 background: var(--dashboard-card-bg);
2604 border-radius: 12px;
2605 border: 1px solid var(--dashboard-border);
2606 }
2607
2608 .sync-log-empty-icon {
2609 font-size: 48px;
2610 margin-bottom: 16px;
2611 opacity: 0.6;
2612 color: var(--dashboard-text-secondary);
2613 }
2614
2615 .sync-log-empty h3 {
2616 color: var(--dashboard-text-primary);
2617 margin-bottom: 8px;
2618 font-size: 18px;
2619 font-weight: 600;
2620 }
2621
2622 .sync-log-empty p {
2623 font-size: 14px;
2624 line-height: 1.5;
2625 max-width: 400px;
2626 margin: 0 auto;
2627 color: var(--dashboard-text-secondary);
2628 }
2629
2630 /* Sync Log Pagination */
2631 .sync-log-pagination {
2632 display: flex;
2633 justify-content: space-between;
2634 align-items: center;
2635 margin-top: 30px;
2636 padding-top: 20px;
2637 border-top: 1px solid var(--dashboard-border);
2638 }
2639
2640 .sync-log-pagination-info {
2641 color: var(--dashboard-text-secondary);
2642 font-size: 14px;
2643 }
2644
2645 .sync-log-pagination-controls {
2646 display: flex;
2647 align-items: center;
2648 gap: 8px;
2649 }
2650
2651 .sync-pagination-btn {
2652 display: inline-flex;
2653 align-items: center;
2654 justify-content: center;
2655 width: 36px;
2656 height: 36px;
2657 background: var(--dashboard-card-bg);
2658 border: 1px solid var(--dashboard-border);
2659 color: var(--dashboard-text-primary);
2660 text-decoration: none;
2661 border-radius: 6px;
2662 font-size: 14px;
2663 font-weight: 500;
2664 transition: all 0.2s ease;
2665 }
2666
2667 .sync-pagination-btn:hover {
2668 background: var(--dashboard-card-hover);
2669 border-color: var(--dashboard-accent);
2670 color: var(--dashboard-accent);
2671 text-decoration: none;
2672 }
2673
2674 .sync-pagination-btn.active {
2675 background: var(--dashboard-accent);
2676 border-color: var(--dashboard-accent);
2677 color: white;
2678 }
2679
2680 .sync-pagination-btn.active:hover {
2681 background: var(--dashboard-accent-hover);
2682 border-color: var(--dashboard-accent-hover);
2683 color: white;
2684 }
2685
2686 /* Responsive Design for Sync Log */
2687 @media (max-width: 768px) {
2688 .sync-log-header {
2689 flex-direction: column;
2690 align-items: stretch;
2691 gap: 15px;
2692 }
2693
2694 .sync-log-title-section {
2695 text-align: center;
2696 }
2697
2698 .sync-log-filters {
2699 align-self: center;
2700 justify-content: center;
2701 }
2702
2703 .sync-filters-form {
2704 display: grid;
2705 grid-template-columns: 1fr 1fr;
2706 gap: 10px;
2707 justify-content: center;
2708 min-width: 260px;
2709 width: auto;
2710 }
2711
2712 .sync-filter-select {
2713 min-width: 120px;
2714 font-size: 13px;
2715 }
2716
2717 .sync-log-item {
2718 flex-direction: column;
2719 align-items: flex-start;
2720 gap: 12px;
2721 }
2722
2723 .sync-log-icon {
2724 margin-right: 0;
2725 }
2726
2727 .sync-log-status {
2728 margin-left: 0;
2729 align-self: flex-end;
2730 }
2731
2732 .sync-log-pagination {
2733 flex-direction: column;
2734 gap: 15px;
2735 text-align: center;
2736 }
2737
2738 .sync-log-pagination-controls {
2739 justify-content: center;
2740 }
2741 }
2742
2743 @media (max-width: 480px) {
2744 .sync-filters-form {
2745 display: grid;
2746 grid-template-columns: 1fr 1fr;
2747 gap: 8px;
2748 min-width: 240px;
2749 width: 100%;
2750 max-width: 320px;
2751 }
2752
2753 .sync-filter-select {
2754 min-width: 110px;
2755 font-size: 13px;
2756 padding: 6px 8px;
2757 padding-right: 28px;
2758 }
2759
2760 .sync-log-item {
2761 padding: 16px;
2762 }
2763
2764 .sync-log-title {
2765 font-size: 15px;
2766 }
2767
2768 .sync-log-meta {
2769 font-size: 13px;
2770 }
2771
2772 .sync-status-badge {
2773 font-size: 12px;
2774 padding: 4px 8px;
2775 }
2776 }
2777
2778 /* ========================================
2779 SETTINGS ACCORDION STYLES
2780 ======================================== */
2781
2782 /* Accordion Container */
2783 .metasync-settings-accordion {
2784 display: flex;
2785 flex-direction: column;
2786 gap: 16px;
2787 }
2788
2789 /* Accordion Section */
2790 .metasync-accordion-section {
2791 background: var(--dashboard-card-bg);
2792 border: 1px solid var(--dashboard-border);
2793 border-radius: 12px;
2794 overflow: hidden;
2795 transition: all 0.3s ease;
2796 }
2797
2798 .metasync-accordion-section:hover {
2799 border-color: var(--dashboard-accent);
2800 box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
2801 }
2802
2803 /* Accordion Header */
2804 .metasync-accordion-header {
2805 display: flex;
2806 justify-content: space-between;
2807 align-items: center;
2808 padding: 20px 24px;
2809 cursor: pointer;
2810 user-select: none;
2811 transition: background-color 0.2s ease;
2812 position: relative;
2813 }
2814
2815 .metasync-accordion-header:hover {
2816 background: var(--dashboard-card-hover);
2817 }
2818
2819 .metasync-accordion-header:focus {
2820 outline: 2px solid var(--dashboard-accent);
2821 outline-offset: -2px;
2822 }
2823
2824 .metasync-accordion-title {
2825 display: flex;
2826 align-items: center;
2827 gap: 16px;
2828 flex: 1;
2829 }
2830
2831 .metasync-accordion-icon {
2832 width: 36px;
2833 height: 36px;
2834 border-radius: 8px;
2835 background: var(--dashboard-gradient-primary);
2836 display: flex;
2837 align-items: center;
2838 justify-content: center;
2839 flex-shrink: 0;
2840 }
2841
2842 .metasync-accordion-icon .dashicons {
2843 font-size: 18px;
2844 width: 18px;
2845 height: 18px;
2846 color: #ffffff;
2847 }
2848
2849 .metasync-accordion-text h3 {
2850 color: var(--dashboard-text-primary);
2851 font-size: 18px;
2852 font-weight: 600;
2853 margin: 0 0 4px 0;
2854 }
2855
2856 .metasync-accordion-description {
2857 color: var(--dashboard-text-secondary);
2858 font-size: 13px;
2859 margin: 0;
2860 line-height: 1.4;
2861 }
2862
2863 /* Accordion Toggle Button */
2864 .metasync-accordion-toggle {
2865 background: transparent;
2866 border: none;
2867 color: var(--dashboard-text-secondary);
2868 cursor: pointer;
2869 padding: 8px;
2870 transition: all 0.3s ease;
2871 flex-shrink: 0;
2872 }
2873
2874 .metasync-accordion-toggle:hover {
2875 color: var(--dashboard-accent);
2876 transform: scale(1.1);
2877 }
2878
2879 .metasync-accordion-toggle .toggle-icon {
2880 display: inline-block;
2881 font-size: 16px;
2882 transition: transform 0.3s ease;
2883 }
2884
2885 /* Rotate icon when section is open */
2886 .metasync-accordion-header[aria-expanded="true"] .toggle-icon {
2887 transform: rotate(180deg);
2888 }
2889
2890 /* Accordion Content */
2891 .metasync-accordion-content {
2892 overflow: hidden;
2893 transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
2894 opacity 0.3s ease,
2895 padding 0.3s ease;
2896 }
2897
2898 .metasync-accordion-content[data-state="closed"] {
2899 max-height: 0;
2900 opacity: 0;
2901 padding: 0 24px;
2902 }
2903
2904 .metasync-accordion-content[data-state="open"] {
2905 max-height: 5000px; /* Large enough for any content */
2906 opacity: 1;
2907 padding: 0 24px 24px 24px;
2908 }
2909
2910 /* Form Table Inside Accordion */
2911 .metasync-accordion-content .form-table {
2912 margin-top: 0;
2913 background: transparent;
2914 border-collapse: separate;
2915 border-spacing: 0 16px;
2916 }
2917
2918 .metasync-accordion-content .form-table th,
2919 .metasync-accordion-content .form-table td {
2920 padding: 18px 20px;
2921 vertical-align: middle;
2922 background: rgba(255, 255, 255, 0.02);
2923 }
2924
2925 .metasync-accordion-content .form-table th {
2926 border-radius: 8px 0 0 8px;
2927 }
2928
2929 .metasync-accordion-content .form-table td {
2930 border-radius: 0 8px 8px 0;
2931 }
2932
2933 .metasync-accordion-content .form-table tr:hover th,
2934 .metasync-accordion-content .form-table tr:hover td {
2935 background: rgba(255, 255, 255, 0.04);
2936 }
2937
2938 .metasync-accordion-content .form-table tr:first-child th,
2939 .metasync-accordion-content .form-table tr:first-child td {
2940 padding-top: 18px;
2941 }
2942
2943 .metasync-accordion-content .form-table tr:last-child th,
2944 .metasync-accordion-content .form-table tr:last-child td {
2945 padding-bottom: 18px;
2946 }
2947
2948 /* Responsive Design */
2949 @media (max-width: 768px) {
2950 .metasync-accordion-header {
2951 padding: 16px 20px;
2952 }
2953
2954 .metasync-accordion-title {
2955 gap: 12px;
2956 }
2957
2958 .metasync-accordion-icon {
2959 font-size: 24px;
2960 }
2961
2962 .metasync-accordion-text h3 {
2963 font-size: 16px;
2964 }
2965
2966 .metasync-accordion-description {
2967 font-size: 12px;
2968 }
2969
2970 .metasync-accordion-content[data-state="open"] {
2971 padding: 0 20px 20px 20px;
2972 }
2973
2974 .metasync-accordion-content .form-table {
2975 border-spacing: 0 12px;
2976 }
2977
2978 .metasync-accordion-content .form-table th,
2979 .metasync-accordion-content .form-table td {
2980 padding: 14px 16px;
2981 }
2982
2983 .metasync-accordion-content .form-table tr:first-child th,
2984 .metasync-accordion-content .form-table tr:first-child td {
2985 padding-top: 14px;
2986 }
2987 }
2988
2989 /* ========================================
2990 TOOLTIP SYSTEM
2991 ======================================== */
2992
2993 /* Field Label Wrapper */
2994 .metasync-field-label-wrapper {
2995 display: flex;
2996 align-items: flex-start;
2997 gap: 8px;
2998 position: relative;
2999 }
3000
3001 .metasync-field-label-wrapper label {
3002 flex: 1 1 auto;
3003 min-width: 0;
3004 word-break: break-word;
3005 }
3006
3007 /* Tooltip Trigger Button */
3008 .metasync-tooltip-trigger {
3009 background: transparent;
3010 border: none;
3011 padding: 0;
3012 cursor: help;
3013 display: inline-flex;
3014 align-items: center;
3015 justify-content: center;
3016 width: 18px;
3017 height: 18px;
3018 flex-shrink: 0;
3019 transition: all 0.2s ease;
3020 position: relative;
3021 }
3022
3023 .metasync-tooltip-trigger:hover,
3024 .metasync-tooltip-trigger:focus {
3025 transform: scale(1.15);
3026 }
3027
3028 .metasync-tooltip-trigger:focus {
3029 outline: 2px solid var(--dashboard-accent);
3030 outline-offset: 2px;
3031 border-radius: 50%;
3032 }
3033
3034 /* Info Icon SVG */
3035 .metasync-info-icon {
3036 width: 18px;
3037 height: 18px;
3038 color: var(--dashboard-text-secondary);
3039 transition: color 0.2s ease;
3040 }
3041
3042 .metasync-tooltip-trigger:hover .metasync-info-icon,
3043 .metasync-tooltip-trigger:focus .metasync-info-icon {
3044 color: var(--dashboard-accent);
3045 }
3046
3047 /* Tooltip Container */
3048 .metasync-tooltip {
3049 position: absolute;
3050 z-index: 10000;
3051 background: var(--dashboard-card-bg);
3052 border: 1px solid var(--dashboard-border);
3053 border-radius: 8px;
3054 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
3055 padding: 14px 18px;
3056 width: 450px;
3057 max-width: calc(100vw - 40px);
3058 opacity: 0;
3059 visibility: hidden;
3060 pointer-events: none;
3061 transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
3062 transform: translateY(-8px);
3063 left: 100%;
3064 margin-left: 16px;
3065 top: 50%;
3066 transform: translateY(-50%) translateX(-8px);
3067 }
3068
3069 .metasync-tooltip.show {
3070 opacity: 1;
3071 visibility: visible;
3072 pointer-events: auto;
3073 transform: translateY(-50%) translateX(0);
3074 }
3075
3076 /* Tooltip Arrow */
3077 .metasync-tooltip-arrow {
3078 position: absolute;
3079 left: -6px;
3080 top: 50%;
3081 transform: translateY(-50%);
3082 width: 0;
3083 height: 0;
3084 border-style: solid;
3085 border-width: 6px 6px 6px 0;
3086 border-color: transparent var(--dashboard-border) transparent transparent;
3087 }
3088
3089 .metasync-tooltip-arrow::after {
3090 content: '';
3091 position: absolute;
3092 left: 2px;
3093 top: -5px;
3094 width: 0;
3095 height: 0;
3096 border-style: solid;
3097 border-width: 5px 5px 5px 0;
3098 border-color: transparent var(--dashboard-card-bg) transparent transparent;
3099 }
3100
3101 /* Tooltip Content */
3102 .metasync-tooltip-content {
3103 color: var(--dashboard-text-primary);
3104 font-size: 14px;
3105 line-height: 1.65;
3106 font-weight: 400;
3107 letter-spacing: 0.01em;
3108 }
3109
3110 /* Tooltip Positioning - Handle edge cases */
3111 .metasync-tooltip[data-position="left"] {
3112 left: auto;
3113 right: 100%;
3114 margin-left: 0;
3115 margin-right: 12px;
3116 transform: translateY(-50%) translateX(8px);
3117 }
3118
3119 .metasync-tooltip[data-position="left"].show {
3120 transform: translateY(-50%) translateX(0);
3121 }
3122
3123 .metasync-tooltip[data-position="left"] .metasync-tooltip-arrow {
3124 left: auto;
3125 right: -6px;
3126 border-width: 6px 0 6px 6px;
3127 border-color: transparent transparent transparent var(--dashboard-border);
3128 }
3129
3130 .metasync-tooltip[data-position="left"] .metasync-tooltip-arrow::after {
3131 left: -7px;
3132 border-width: 5px 0 5px 5px;
3133 border-color: transparent transparent transparent var(--dashboard-card-bg);
3134 }
3135
3136 /* Responsive Tooltip Widths */
3137 @media (max-width: 1400px) {
3138 .metasync-tooltip {
3139 width: 400px;
3140 }
3141 }
3142
3143 @media (max-width: 1200px) {
3144 .metasync-tooltip {
3145 width: 360px;
3146 }
3147 }
3148
3149 @media (max-width: 992px) {
3150 .metasync-tooltip {
3151 width: 320px;
3152 padding: 12px 16px;
3153 }
3154 }
3155
3156 /* Mobile & Tablet Tooltip Adjustments */
3157 @media (max-width: 768px) {
3158 .metasync-tooltip {
3159 width: calc(100vw - 40px);
3160 max-width: 500px;
3161 font-size: 13px;
3162 padding: 14px 16px;
3163 position: fixed;
3164 left: 50% !important;
3165 top: auto !important;
3166 bottom: 20px;
3167 transform: translateX(-50%) translateY(8px);
3168 margin: 0;
3169 }
3170
3171 .metasync-tooltip.show {
3172 transform: translateX(-50%) translateY(0);
3173 }
3174
3175 .metasync-tooltip-arrow {
3176 display: none;
3177 }
3178 }
3179
3180 /* Small Mobile Devices */
3181 @media (max-width: 480px) {
3182 .metasync-tooltip {
3183 width: calc(100vw - 30px);
3184 font-size: 12px;
3185 padding: 12px 14px;
3186 }
3187 }
3188
3189 /* Accessibility - Keyboard Navigation */
3190 .metasync-accordion-header:focus-visible {
3191 outline: 2px solid var(--dashboard-accent);
3192 outline-offset: -2px;
3193 }
3194
3195 /* Reduced Motion Support */
3196 @media (prefers-reduced-motion: reduce) {
3197 .metasync-accordion-content,
3198 .metasync-accordion-toggle .toggle-icon,
3199 .metasync-tooltip,
3200 .metasync-tooltip-trigger {
3201 transition: none;
3202 }
3203 }
3204
3205 /* ================================================
3206 Universal Gradient Button Text Color
3207 Ensures all elements with gradient backgrounds have white text
3208 ================================================ */
3209
3210 /* Light Mode - Ensure gradient backgrounds always have white text */
3211 [data-theme="light"] .metasync-dashboard-wrap *[style*="--dashboard-gradient-primary"],
3212 [data-theme="light"] .metasync-dashboard-wrap .button-primary,
3213 [data-theme="light"] .metasync-dashboard-wrap .metasync-nav-tab.active,
3214 [data-theme="light"] .metasync-dashboard-wrap .metasync-theme-option.active,
3215 [data-theme="light"] .metasync-dashboard-wrap .metasync-sa-connect-btn.primary,
3216 [data-theme="light"] .metasync-dashboard-wrap .metasync-dashboard-btn,
3217 [data-theme="light"] .metasync-dashboard-wrap .metasync-sa-connect-btn,
3218 [data-theme="light"] .metasync-dashboard-wrap #connect-searchatlas-btn {
3219 color: #ffffff !important;
3220 }
3221
3222 /* Ensure hover states maintain white text */
3223 [data-theme="light"] .metasync-dashboard-wrap .button-primary:hover,
3224 [data-theme="light"] .metasync-dashboard-wrap .metasync-dashboard-btn:hover,
3225 [data-theme="light"] .metasync-dashboard-wrap .metasync-sa-connect-btn:hover,
3226 [data-theme="light"] .metasync-dashboard-wrap #connect-searchatlas-btn:hover {
3227 color: #ffffff !important;
3228 }
3229
3230 /* ================================================
3231 Monochrome Emoji System
3232 Forces all decorative emoji to render as monochrome text glyphs
3233 so they inherit the element's CSS color property (white in dark
3234 theme, dark in light theme) rather than rendering as colorful
3235 emoji pictographs. Applies throughout all admin screens.
3236 ================================================ */
3237
3238 .metasync-dashboard-wrap h1,
3239 .metasync-dashboard-wrap h2,
3240 .metasync-dashboard-wrap h3,
3241 .metasync-dashboard-wrap h4,
3242 .metasync-dashboard-wrap h5,
3243 .metasync-dashboard-wrap h6,
3244 .metasync-dashboard-wrap label,
3245 .metasync-dashboard-wrap th,
3246 .metasync-dashboard-wrap td,
3247 .metasync-dashboard-wrap legend,
3248 .metasync-dashboard-wrap .button,
3249 .metasync-dashboard-wrap .button-primary,
3250 .metasync-dashboard-wrap .button-secondary,
3251 .metasync-dashboard-wrap .metasync-stat-label,
3252 .metasync-dashboard-wrap .metasync-stat-value,
3253 .metasync-dashboard-wrap .dashboard-card-title,
3254 .metasync-dashboard-wrap .notice,
3255 .metasync-dashboard-wrap p,
3256 .metasync-dashboard-wrap .metasync-accordion-icon,
3257 .metasync-dashboard-wrap .sync-log-empty-icon,
3258 .metasync-dashboard-wrap .sync-icon,
3259 .metasync-dashboard-wrap span[class*="icon"],
3260 .metasync-dashboard-wrap div[class*="icon"] {
3261 font-variant-emoji: text;
3262 }
3263
3264 /* Dashicons inside sitemap stat-icon boxes */
3265 .metasync-dashboard-wrap .stat-icon {
3266 display: flex;
3267 align-items: center;
3268 justify-content: center;
3269 }
3270 .metasync-dashboard-wrap .stat-icon .dashicons {
3271 font-size: 24px;
3272 width: 24px;
3273 height: 24px;
3274 color: var(--dashboard-text-secondary);
3275 }
3276