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

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

563 lines 13.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*
2 * MetaSync — Yoast-style 3-column page layout
3 *
4 * Structure:
5 * .metasync-layout
6 * ├── .metasync-layout-nav (left sticky sidenav)
7 * ├── .metasync-layout-main (main content)
8 * └── .metasync-layout-promo (right promotional sidebar)
9 */
10
11 /* ── WP admin sidebar: keep it fixed on plugin pages ───────────────── */
12 /* WordPress core removes .sticky-menu (position:fixed) when the admin
13 menu is taller than the viewport. Our plugin's expanded sub-menu
14 easily triggers this. Force the sidebar fixed with its own scroll
15 so it never drifts off-screen while the main content scrolls. */
16
17 body:has(.metasync-dashboard-wrap) #adminmenuwrap {
18 position: fixed !important;
19 top: var(--wp-admin--admin-bar--height, 32px);
20 bottom: 0;
21 overflow-y: auto;
22 overflow-x: hidden;
23 }
24
25 body:has(.metasync-dashboard-wrap) #adminmenuback {
26 position: fixed !important;
27 top: var(--wp-admin--admin-bar--height, 32px);
28 bottom: 0;
29 }
30
31 /* ── Layout grid ────────────────────────────────────────────────────── */
32
33 .metasync-layout {
34 display: grid;
35 grid-template-columns: 220px 1fr 260px;
36 gap: 24px;
37 align-items: start;
38 margin-top: 16px;
39 }
40
41 /* No promo sidebar — main column fills remaining space */
42 .metasync-layout:not(:has(.metasync-layout-promo)) {
43 grid-template-columns: 220px 1fr;
44 }
45
46 @media (max-width: 1400px) {
47 .metasync-layout {
48 grid-template-columns: 200px 1fr;
49 grid-template-rows: auto auto;
50 }
51 .metasync-layout-nav {
52 grid-column: 1;
53 grid-row: 1 / -1;
54 }
55 .metasync-layout-main {
56 grid-column: 2;
57 grid-row: 1;
58 }
59 .metasync-layout-promo {
60 grid-column: 2;
61 grid-row: 2;
62 position: static;
63 }
64 }
65
66 @media (max-width: 900px) {
67 .metasync-layout {
68 grid-template-columns: 1fr;
69 }
70 .metasync-layout-nav {
71 display: none;
72 }
73 .metasync-layout-promo {
74 position: static;
75 }
76 }
77
78 /* ── Left sidebar nav ────────────────────────────────────────────────── */
79
80 .metasync-layout-nav {
81 position: -webkit-sticky;
82 position: sticky;
83 align-self: start;
84 top: 52px; /* WP admin bar (32px) + breathing room */
85 max-height: calc(100vh - 72px);
86 overflow-y: auto;
87 overflow-x: hidden;
88 min-width: 0; /* prevent grid blowout */
89 background: var(--dashboard-card-bg);
90 border: 1px solid var(--dashboard-border);
91 border-radius: 12px;
92 padding: 8px;
93 scrollbar-width: thin;
94 scrollbar-color: var(--dashboard-border) transparent;
95 }
96
97 .metasync-layout-nav::-webkit-scrollbar {
98 width: 4px;
99 }
100 .metasync-layout-nav::-webkit-scrollbar-track {
101 background: transparent;
102 }
103 .metasync-layout-nav::-webkit-scrollbar-thumb {
104 background: var(--dashboard-border);
105 border-radius: 4px;
106 }
107
108 /* Sidenav groups */
109 .metasync-sidenav-group {
110 margin-bottom: 4px;
111 }
112
113 .metasync-sidenav-group + .metasync-sidenav-group {
114 border-top: 1px solid var(--dashboard-border);
115 padding-top: 8px;
116 margin-top: 8px;
117 }
118
119 .metasync-sidenav-group-title {
120 font-size: 10px;
121 font-weight: 700;
122 text-transform: uppercase;
123 letter-spacing: 0.08em;
124 color: var(--dashboard-text-secondary);
125 padding: 4px 10px 6px;
126 opacity: 0.7;
127 }
128
129 .metasync-sidenav ul {
130 list-style: none;
131 margin: 0;
132 padding: 0;
133 }
134
135 .metasync-sidenav li a {
136 display: flex;
137 align-items: center;
138 gap: 9px;
139 padding: 7px 10px;
140 border-radius: 8px;
141 color: var(--dashboard-text-secondary);
142 text-decoration: none;
143 font-size: 13px;
144 font-weight: 500;
145 transition: background 0.15s ease, color 0.15s ease;
146 line-height: 1.3;
147 white-space: nowrap;
148 overflow: hidden;
149 text-overflow: ellipsis;
150 }
151
152 .metasync-sidenav li a:hover {
153 background: var(--dashboard-card-hover, rgba(255,255,255,0.05));
154 color: var(--dashboard-text-primary);
155 }
156
157 .metasync-sidenav li.metasync-sidenav-active > a {
158 background: var(--dashboard-gradient-primary);
159 color: #fff;
160 font-weight: 600;
161 box-shadow: 0 2px 8px rgba(102,126,234,0.3);
162 }
163
164 /* ── Sidenav icons (Dashicons) ──────────────────────────────────────── */
165
166 .metasync-sidenav-icon {
167 flex-shrink: 0;
168 width: 18px;
169 display: flex;
170 align-items: center;
171 justify-content: center;
172 }
173
174 .metasync-sidenav-icon .dashicons {
175 font-size: 15px;
176 width: 15px;
177 height: 15px;
178 color: inherit; /* inherits link color — grey normally, white when active */
179 }
180
181 /* ── Main content area ──────────────────────────────────────────────── */
182
183 .metasync-layout-main {
184 min-width: 0; /* prevent grid blowout */
185 }
186
187 /* Override the dashboard form-grid (metasync-dashboard.css) inside the
188 3-column layout so content stays within the main column. */
189 .metasync-layout-main form {
190 display: block;
191 }
192
193 .metasync-page-header {
194 margin-bottom: 20px;
195 }
196
197 .metasync-page-header h1 {
198 font-size: 1.5rem;
199 font-weight: 700;
200 color: var(--dashboard-text-primary);
201 margin: 0 0 6px;
202 padding: 0;
203 line-height: 1.3;
204 }
205
206 [data-theme="light"] .metasync-page-header h1 {
207 color: #1a1f26;
208 }
209
210 .metasync-page-header p {
211 color: var(--dashboard-text-secondary);
212 font-size: 14px;
213 margin: 0;
214 }
215
216 /* ── Right promotional sidebar ──────────────────────────────────────── */
217
218 .metasync-layout-promo {
219 position: -webkit-sticky;
220 position: sticky;
221 align-self: start;
222 top: 52px;
223 display: flex;
224 min-width: 0; /* allow sticky column to shrink within its grid cell */
225 flex-direction: column;
226 gap: 16px;
227 }
228
229 /* Promo card base */
230 .metasync-promo-card {
231 background: var(--dashboard-card-bg);
232 border: 1px solid var(--dashboard-border);
233 border-radius: 12px;
234 padding: 20px;
235 overflow: hidden;
236 }
237
238 .metasync-promo-card--accent {
239 border-color: rgba(102,126,234,0.5);
240 background: linear-gradient(
241 145deg,
242 rgba(102,126,234,0.08) 0%,
243 rgba(118,75,162,0.06) 100%
244 );
245 }
246
247 .metasync-promo-card--connect {
248 border-color: rgba(59,130,246,0.6);
249 background: linear-gradient(
250 145deg,
251 rgba(59,130,246,0.10) 0%,
252 rgba(16,185,129,0.05) 100%
253 );
254 }
255
256 /* Promo card header */
257 .metasync-promo-card-header {
258 display: flex;
259 align-items: center;
260 gap: 12px;
261 margin-bottom: 14px;
262 }
263
264 .metasync-promo-card-icon {
265 width: 38px;
266 height: 38px;
267 border-radius: 10px;
268 background: var(--dashboard-gradient-primary);
269 display: flex;
270 align-items: center;
271 justify-content: center;
272 flex-shrink: 0;
273 }
274
275 .metasync-promo-card-icon .dashicons {
276 font-size: 18px;
277 width: 18px;
278 height: 18px;
279 color: #ffffff;
280 }
281
282 .metasync-promo-card-icon img {
283 width: 22px;
284 height: 22px;
285 object-fit: contain;
286 }
287
288 .metasync-promo-card h3 {
289 font-size: 14px;
290 font-weight: 700;
291 color: var(--dashboard-text-primary);
292 margin: 0 0 2px;
293 line-height: 1.3;
294 }
295
296 .metasync-promo-card .metasync-promo-tagline {
297 font-size: 12px;
298 color: var(--dashboard-text-secondary);
299 margin: 0 0 14px;
300 line-height: 1.5;
301 }
302
303 /* Promo benefits list */
304 .metasync-promo-benefits {
305 list-style: none;
306 margin: 0 0 16px;
307 padding: 0;
308 display: flex;
309 flex-direction: column;
310 gap: 8px;
311 }
312
313 .metasync-promo-benefits li {
314 display: flex;
315 align-items: flex-start;
316 gap: 8px;
317 font-size: 12px;
318 color: var(--dashboard-text-secondary);
319 line-height: 1.5;
320 }
321
322 .metasync-promo-benefits li .promo-check {
323 display: inline-flex;
324 align-items: center;
325 justify-content: center;
326 width: 15px;
327 height: 15px;
328 min-width: 15px;
329 background: var(--dashboard-success);
330 color: #fff;
331 border-radius: 50%;
332 font-size: 9px;
333 font-weight: 700;
334 margin-top: 1px;
335 }
336
337 /* Promo CTA button */
338 .metasync-promo-btn {
339 display: block;
340 width: 100%;
341 padding: 10px 16px;
342 border-radius: 8px;
343 font-size: 13px;
344 font-weight: 700;
345 text-align: center;
346 text-decoration: none;
347 cursor: pointer;
348 border: none;
349 transition: all 0.2s ease;
350 box-sizing: border-box;
351 }
352
353 .metasync-promo-btn--primary {
354 background: var(--dashboard-gradient-primary);
355 color: #fff !important;
356 box-shadow: 0 4px 12px rgba(102,126,234,0.35);
357 }
358
359 .metasync-promo-btn--primary:hover {
360 opacity: 0.92;
361 transform: translateY(-1px);
362 box-shadow: 0 6px 18px rgba(102,126,234,0.45);
363 color: #fff !important;
364 }
365
366 .metasync-promo-btn--outline {
367 background: transparent;
368 color: var(--dashboard-accent) !important;
369 border: 1.5px solid var(--dashboard-accent);
370 margin-top: 8px;
371 }
372
373 .metasync-promo-btn--outline:hover {
374 background: var(--dashboard-accent);
375 color: #fff !important;
376 }
377
378 .metasync-promo-support {
379 font-size: 11px;
380 color: var(--dashboard-text-secondary);
381 text-align: center;
382 margin-top: 10px;
383 line-height: 1.5;
384 }
385
386 /* Quick links card */
387 .metasync-promo-links {
388 list-style: none;
389 margin: 0;
390 padding: 0;
391 display: flex;
392 flex-direction: column;
393 gap: 4px;
394 }
395
396 .metasync-promo-links li a {
397 display: flex;
398 align-items: center;
399 gap: 8px;
400 padding: 7px 4px;
401 font-size: 12px;
402 color: var(--dashboard-accent);
403 text-decoration: none;
404 border-bottom: 1px solid var(--dashboard-border);
405 transition: color 0.15s;
406 }
407
408 .metasync-promo-links li:last-child a {
409 border-bottom: none;
410 }
411
412 .metasync-promo-links li a:hover {
413 color: var(--dashboard-text-primary);
414 }
415
416 .metasync-promo-links li a .dashicons {
417 font-size: 14px;
418 width: 14px;
419 height: 14px;
420 color: inherit;
421 flex-shrink: 0;
422 }
423
424 /* Compact top header for layout pages (replaces the full header) */
425 .metasync-header-compact {
426 display: flex;
427 align-items: center;
428 justify-content: space-between;
429 padding: 12px 16px;
430 background: var(--dashboard-card-bg);
431 border: 1px solid var(--dashboard-border);
432 border-radius: 10px;
433 margin-bottom: 0;
434 }
435
436 .metasync-header-compact .metasync-logo {
437 height: 28px;
438 width: auto;
439 }
440
441 .metasync-header-compact-right {
442 display: flex;
443 align-items: center;
444 gap: 12px;
445 }
446
447 .metasync-header-compact .metasync-status {
448 font-size: 12px;
449 }
450
451 .metasync-header-compact .metasync-theme-toggle {
452 padding: 4px 8px;
453 font-size: 13px;
454 color: var(--dashboard-text-secondary);
455 }
456
457 /* ── Old nav tab-icon: dashicons override ───────────────────────────── */
458 /* Neutralize emoji-specific filter/text-shadow; let dashicons use color */
459
460 .metasync-dashboard-wrap .metasync-nav-tab .tab-icon,
461 .metasync-dashboard-wrap .metasync-nav-tab .tab-icon:hover,
462 .metasync-dashboard-wrap .metasync-nav-dropdown-btn .tab-icon,
463 .metasync-nav-dropdown-item .tab-icon,
464 #metasync-nav-portal-menu .metasync-nav-dropdown-item .tab-icon {
465 filter: none;
466 text-shadow: none;
467 display: inline-flex;
468 align-items: center;
469 justify-content: center;
470 width: 18px;
471 min-width: 18px;
472 }
473
474 .metasync-dashboard-wrap .metasync-nav-tab .tab-icon .dashicons,
475 .metasync-dashboard-wrap .metasync-nav-dropdown-btn .tab-icon .dashicons,
476 .metasync-nav-dropdown-item .tab-icon .dashicons,
477 #metasync-nav-portal-menu .metasync-nav-dropdown-item .tab-icon .dashicons {
478 font-size: 15px;
479 width: 15px;
480 height: 15px;
481 color: inherit;
482 }
483
484 /* ── Connection status indicator ────────────────────────────────────── */
485
486 .metasync-header-compact .metasync-status {
487 display: flex;
488 align-items: center;
489 gap: 6px;
490 font-size: 12px;
491 color: var(--dashboard-text-secondary);
492 }
493
494 .metasync-header-compact .status-dot {
495 width: 7px;
496 height: 7px;
497 border-radius: 50%;
498 flex-shrink: 0;
499 background: var(--dashboard-error);
500 }
501
502 .metasync-header-compact .metasync-status.connected .status-dot {
503 background: var(--dashboard-success);
504 }
505
506 .metasync-header-compact .metasync-status.connected .status-text {
507 color: var(--dashboard-success);
508 }
509
510 .metasync-header-compact .metasync-status.disconnected .status-text {
511 color: var(--dashboard-error);
512 }
513
514 .metasync-header-compact .metasync-status.warning .status-dot {
515 background: var(--dashboard-warning, #ffb900);
516 }
517
518 .metasync-header-compact .metasync-status.warning .status-text {
519 color: var(--dashboard-warning, #ffb900);
520 }
521
522 /* ── Static header connection status (render_static_header) ─────────── */
523 /* the static-header badge previously had no styling; mirror the
524 compact-header rules so connected / disconnected / warning render. */
525
526 .metasync-header .metasync-status {
527 display: flex;
528 align-items: center;
529 gap: 6px;
530 font-size: 12px;
531 color: var(--dashboard-text-secondary);
532 }
533
534 .metasync-header .metasync-status .status-dot {
535 width: 7px;
536 height: 7px;
537 border-radius: 50%;
538 flex-shrink: 0;
539 background: var(--dashboard-error);
540 }
541
542 .metasync-header .metasync-status.connected .status-dot {
543 background: var(--dashboard-success);
544 }
545
546 .metasync-header .metasync-status.connected .status-text {
547 color: var(--dashboard-success);
548 }
549
550 .metasync-header .metasync-status.disconnected .status-text {
551 color: var(--dashboard-error);
552 }
553
554 /* ── Theme toggle icon sizing ────────────────────────────────────────── */
555
556 .theme-icon-light,
557 .theme-icon-dark {
558 font-size: 14px;
559 line-height: 1;
560 color: var(--dashboard-text-secondary);
561 /* rendered as unicode text chars — monochrome by design */
562 }
563