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

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

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