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

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

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