PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / trunk
Search Atlas SEO – OTTO AI SEO Automation for WordPress vtrunk
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 trunk, at admin/css/metasync-layout.css

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