PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.7.1
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.7.1
2.7.1 2.7.2 2.7.0 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 All 141 releases
metasync / otto-frontend-toolbar / css / otto-toolbar.css

otto-toolbar.css in Search Atlas SEO – OTTO AI SEO Automation for WordPress 2.7.1, at otto-frontend-toolbar/css/otto-toolbar.css

791 lines 15.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * OTTO Frontend Toolbar Styles
3 *
4 * Styling for the OTTO control toolbar in WordPress admin bar
5 *
6 * @package Metasync
7 * @subpackage Metasync/otto-frontend-toolbar/css
8 * @since 1.0.0
9 */
10
11 /* OTTO Control Menu Signal Icon */
12 #wpadminbar #wp-admin-bar-metasync-otto-control .metasync-otto-signal-icon {
13 display: inline-block;
14 width: 10px;
15 height: 10px;
16 border-radius: 50%;
17 margin-left: 8px;
18 vertical-align: middle;
19 position: relative;
20 top: -1px;
21 }
22
23 /* Green signal when OTTO is enabled */
24 #wpadminbar .metasync-otto-enabled > .ab-item .metasync-otto-signal-icon {
25 background-color: #46b450;
26 box-shadow: 0 0 4px rgba(70, 180, 80, 0.6);
27 }
28
29 /* Red signal when OTTO is disabled */
30 #wpadminbar .metasync-otto-disabled > .ab-item .metasync-otto-signal-icon {
31 background-color: #dc3232;
32 box-shadow: 0 0 4px rgba(220, 50, 50, 0.6);
33 }
34
35 /* Parent menu text color - Green when enabled */
36 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled > .ab-item,
37 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled > .ab-item .ab-label {
38 color: #46b450 !important;
39 background-color: transparent !important;
40 }
41
42 /* Parent menu text color - Red when disabled */
43 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled > .ab-item,
44 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled > .ab-item .ab-label {
45 color: #dc3232 !important;
46 background-color: transparent !important;
47 }
48
49 /* Hover state - maintain text color */
50 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled:hover > .ab-item,
51 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled.hover > .ab-item,
52 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled:hover > .ab-item .ab-label,
53 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-enabled.hover > .ab-item .ab-label {
54 background-color: #32373c !important;
55 color: #46b450 !important;
56 }
57
58 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled:hover > .ab-item,
59 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled.hover > .ab-item,
60 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled:hover > .ab-item .ab-label,
61 #wpadminbar #wp-admin-bar-metasync-otto-control.metasync-otto-disabled.hover > .ab-item .ab-label {
62 background-color: #32373c !important;
63 color: #dc3232 !important;
64 }
65
66 /* Menu item hover states */
67 #wpadminbar .metasync-otto-toggle:hover {
68 background-color: #0073aa !important;
69 color: #fff !important;
70 }
71
72 #wpadminbar .metasync-otto-toggle.active {
73 background-color: #46b450 !important;
74 color: #fff !important;
75 }
76
77 /* Excluded-URL submenu: a statement of fact plus a way out, not a control.
78 Neither item behaves like the Enable/Disable toggles, so neither takes their
79 hover styling. The notice wraps because the sentence is longer than the
80 admin bar's default single nowrap line. */
81 #wpadminbar .metasync-otto-status-line > .ab-item,
82 #wpadminbar .metasync-otto-status-line > .ab-empty-item {
83 color: #dc3232 !important;
84 cursor: default;
85 }
86
87 #wpadminbar .metasync-otto-excluded-notice > .ab-item {
88 white-space: normal;
89 max-width: 240px;
90 height: auto;
91 line-height: 1.5;
92 padding-top: 6px;
93 padding-bottom: 6px;
94 }
95
96 /* Loading state */
97 #wpadminbar .metasync-otto-control-menu.loading > .ab-item {
98 opacity: 0.6;
99 pointer-events: none;
100 }
101
102 /* Notification styles */
103 .metasync-otto-notification {
104 position: fixed;
105 top: 50px;
106 right: 20px;
107 padding: 15px 20px;
108 background-color: #fff;
109 border-left: 4px solid #46b450;
110 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
111 z-index: 99999;
112 max-width: 400px;
113 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
114 font-size: 14px;
115 line-height: 1.5;
116 animation: slideInRight 0.3s ease-out;
117 }
118
119 .metasync-otto-notification.error {
120 border-left-color: #dc3232;
121 }
122
123 .metasync-otto-notification.success {
124 border-left-color: #46b450;
125 }
126
127 .metasync-otto-notification.info {
128 border-left-color: #0073aa;
129 }
130
131 .metasync-otto-notification.warning {
132 border-left-color: #f0b849;
133 }
134
135 @keyframes slideInRight {
136 from {
137 transform: translateX(100%);
138 opacity: 0;
139 }
140 to {
141 transform: translateX(0);
142 opacity: 1;
143 }
144 }
145
146 @keyframes slideOutRight {
147 from {
148 transform: translateX(0);
149 opacity: 1;
150 }
151 to {
152 transform: translateX(100%);
153 opacity: 0;
154 }
155 }
156
157 .metasync-otto-notification.hiding {
158 animation: slideOutRight 0.3s ease-in;
159 }
160
161 /* Responsive adjustments */
162 @media screen and (max-width: 782px) {
163 #wpadminbar #wp-admin-bar-metasync-otto-control > .ab-item .ab-label {
164 display: inline;
165 }
166
167 .metasync-otto-notification {
168 top: 60px;
169 right: 10px;
170 left: 10px;
171 max-width: none;
172 }
173 }
174
175 @media screen and (max-width: 600px) {
176 #wpadminbar #wp-admin-bar-metasync-otto-control {
177 display: block;
178 }
179 }
180
181 /* ===========================
182 OTTO Debug Bar (Sticky Bottom Left)
183 =========================== */
184
185 .metasync-otto-debug-bar {
186 position: fixed;
187 bottom: 20px;
188 left: 20px;
189 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
190 border-radius: 8px;
191 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 8px rgba(102, 126, 234, 0.4);
192 padding: 12px 16px;
193 z-index: 999999;
194 display: flex;
195 align-items: center;
196 gap: 16px;
197 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
198 transition: all 0.3s ease;
199 }
200
201 .metasync-otto-debug-bar:hover {
202 transform: translateY(-2px);
203 box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(102, 126, 234, 0.6);
204 }
205
206 /* Status Section */
207 .otto-debug-status {
208 display: flex;
209 align-items: center;
210 gap: 8px;
211 }
212
213 .otto-status-indicator {
214 width: 10px;
215 height: 10px;
216 border-radius: 50%;
217 display: inline-block;
218 }
219
220 .metasync-otto-debug-bar.otto-enabled .otto-status-indicator {
221 background-color: #46b450;
222 box-shadow: 0 0 8px rgba(70, 180, 80, 0.8);
223 }
224
225 .metasync-otto-debug-bar.otto-disabled .otto-status-indicator {
226 background-color: #dc3232;
227 box-shadow: 0 0 8px rgba(220, 50, 50, 0.8);
228 }
229
230 .otto-status-text {
231 color: #fff;
232 font-size: 14px;
233 font-weight: 600;
234 letter-spacing: 0.3px;
235 }
236
237 /* Preview Button */
238 #metasync-otto-debug-bar .otto-preview-btn {
239 background: #3949AB;
240 color: #fff;
241 border: none;
242 border-radius: 6px;
243 padding: 8px 14px;
244 font-size: 13px;
245 font-weight: 600;
246 cursor: pointer;
247 display: flex;
248 align-items: center;
249 gap: 6px;
250 transition: background-color 0.2s;
251 text-decoration: none;
252 line-height: 1.4;
253 height: 38px;
254 box-shadow: none;
255 }
256
257 #metasync-otto-debug-bar .otto-preview-btn:hover {
258 background: #283593;
259 text-decoration: none;
260 color: #fff;
261 }
262
263 #metasync-otto-debug-bar .otto-preview-btn .dashicons {
264 width: 18px;
265 height: 18px;
266 font-size: 18px;
267 }
268
269 /* Debug Button */
270 #metasync-otto-debug-bar .otto-debug-btn {
271 background: #f0b849;
272 color: #1e1e1e;
273 border: none;
274 border-radius: 6px;
275 padding: 8px 14px;
276 font-size: 13px;
277 font-weight: 600;
278 cursor: pointer;
279 display: flex;
280 align-items: center;
281 gap: 6px;
282 transition: background-color 0.2s;
283 text-decoration: none;
284 line-height: 1.4;
285 height: 38px;
286 box-shadow: none;
287 }
288
289 #metasync-otto-debug-bar .otto-debug-btn:hover {
290 background: #d9a333;
291 text-decoration: none;
292 color: #1e1e1e;
293 }
294
295 #metasync-otto-debug-bar .otto-debug-btn .dashicons {
296 width: 18px;
297 height: 18px;
298 font-size: 18px;
299 }
300
301 /* Close Button */
302 #metasync-otto-debug-bar .otto-close-btn {
303 background: transparent;
304 color: rgba(255, 255, 255, 0.6);
305 border: none;
306 border-radius: 50%;
307 width: 24px;
308 height: 24px;
309 font-size: 18px;
310 line-height: 1;
311 cursor: pointer;
312 display: flex;
313 align-items: center;
314 justify-content: center;
315 padding: 0;
316 margin-left: 4px;
317 transition: color 0.2s, background-color 0.2s;
318 flex-shrink: 0;
319 box-shadow: none;
320 }
321
322 #metasync-otto-debug-bar .otto-close-btn:hover {
323 color: #fff;
324 background-color: rgba(255, 255, 255, 0.15);
325 }
326
327 /* Preview Overlay */
328 .metasync-otto-preview-overlay {
329 position: fixed;
330 top: 0;
331 left: 0;
332 right: 0;
333 bottom: 0;
334 background: transparent;
335 z-index: 9999999;
336 display: none;
337 opacity: 0;
338 }
339
340 .metasync-otto-preview-overlay.active {
341 display: block;
342 }
343
344 .otto-preview-header {
345 position: absolute;
346 top: 0;
347 left: 0;
348 right: 0;
349 background: #2c3338;
350 padding: 16px 24px;
351 display: flex;
352 justify-content: space-between;
353 align-items: center;
354 border-bottom: 2px solid #f0b849;
355 z-index: 10;
356 height: 60px;
357 }
358
359 .otto-preview-title {
360 color: #fff;
361 font-size: 16px;
362 font-weight: 600;
363 display: flex;
364 align-items: center;
365 gap: 8px;
366 }
367
368 .otto-preview-title .dashicons {
369 color: #f0b849;
370 width: 20px;
371 height: 20px;
372 font-size: 20px;
373 }
374
375 .otto-preview-close {
376 background: #dc3232;
377 color: #fff;
378 border: none;
379 border-radius: 6px;
380 padding: 10px 16px;
381 font-size: 14px;
382 font-weight: 600;
383 cursor: pointer;
384 display: flex;
385 align-items: center;
386 gap: 6px;
387 transition: background-color 0.2s;
388 text-decoration: none;
389 }
390
391 .otto-preview-close:hover {
392 background: #c72a2a;
393 text-decoration: none;
394 }
395
396 .otto-preview-close .dashicons {
397 width: 18px;
398 height: 18px;
399 font-size: 18px;
400 }
401
402 /* Preview Loading */
403 .otto-preview-loading {
404 position: fixed;
405 top: 50%;
406 left: 50%;
407 transform: translate(-50%, -50%);
408 text-align: center;
409 color: #333;
410 z-index: 9999999;
411 background: rgba(255, 255, 255, 0.95);
412 padding: 30px 50px;
413 border-radius: 8px;
414 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
415 }
416
417 .otto-preview-loading.hidden {
418 display: none;
419 }
420
421 .otto-loading-spinner {
422 width: 50px;
423 height: 50px;
424 margin: 0 auto 20px;
425 border: 4px solid rgba(0, 115, 170, 0.2);
426 border-top-color: #0073aa;
427 border-radius: 50%;
428 animation: spin 1s linear infinite;
429 }
430
431 @keyframes spin {
432 to {
433 transform: rotate(360deg);
434 }
435 }
436
437 .otto-preview-loading p {
438 font-size: 16px;
439 font-weight: 600;
440 margin: 0;
441 color: #333;
442 }
443
444 /* Preview Iframe */
445 .metasync-otto-preview-iframe {
446 position: absolute;
447 top: 60px;
448 left: 0;
449 right: 0;
450 bottom: 0;
451 border: none;
452 width: 100%;
453 height: calc(100% - 60px);
454 background: #fff;
455 transition: opacity 0.3s ease;
456 display: block;
457 }
458
459 /* Responsive adjustments for debug bar */
460 @media screen and (max-width: 768px) {
461 .metasync-otto-debug-bar {
462 bottom: 10px;
463 left: 10px;
464 right: 10px;
465 width: auto;
466 flex-direction: column;
467 gap: 12px;
468 padding: 14px;
469 }
470
471 .otto-debug-status {
472 width: 100%;
473 justify-content: center;
474 }
475
476 .otto-preview-btn {
477 width: 100%;
478 justify-content: center;
479 }
480
481 .otto-preview-header {
482 flex-direction: column;
483 gap: 12px;
484 padding: 12px 16px;
485 }
486
487 .otto-preview-close {
488 width: 100%;
489 justify-content: center;
490 }
491 }
492
493 /* Hide debug bar in preview mode */
494 body.otto-preview-active .metasync-otto-debug-bar {
495 display: none;
496 }
497
498 /* ===========================
499 OTTO Debug Tray
500 =========================== */
501
502 .metasync-otto-debug-tray {
503 position: fixed;
504 right: -600px;
505 top: 0;
506 width: 600px;
507 height: 100vh;
508 background: #fff;
509 box-shadow: -4px 0 20px rgba(0, 0, 0, 0.3);
510 z-index: 999998;
511 transition: right 0.3s ease;
512 display: flex;
513 flex-direction: column;
514 overflow: hidden;
515 }
516
517 .metasync-otto-debug-tray.active {
518 right: 0;
519 }
520
521 .otto-debug-tray-header {
522 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
523 color: #fff;
524 padding: 20px;
525 display: flex;
526 justify-content: space-between;
527 align-items: center;
528 border-bottom: 3px solid #f0b849;
529 }
530
531 .otto-debug-tray-header h3 {
532 margin: 0;
533 font-size: 18px;
534 font-weight: 600;
535 }
536
537 .otto-debug-tray-close {
538 background: #dc3232;
539 color: #fff;
540 border: none;
541 border-radius: 4px;
542 padding: 8px 12px;
543 cursor: pointer;
544 display: flex;
545 align-items: center;
546 transition: background-color 0.2s;
547 text-decoration: none;
548 }
549
550 .otto-debug-tray-close:hover {
551 background: #c72a2a;
552 text-decoration: none;
553 }
554
555 .otto-debug-tray-close .dashicons {
556 width: 18px;
557 height: 18px;
558 font-size: 18px;
559 }
560
561 .otto-debug-tray-content {
562 flex: 1;
563 overflow-y: auto;
564 padding: 20px;
565 }
566
567 .otto-debug-loading {
568 display: flex;
569 flex-direction: column;
570 align-items: center;
571 justify-content: center;
572 padding: 60px 20px;
573 }
574
575 /* Debug Tray Footer with Toggle */
576 .otto-debug-tray-footer {
577 background: #f5f5f5;
578 padding: 20px;
579 border-top: 2px solid #e0e0e0;
580 display: flex;
581 flex-direction: column;
582 justify-content: center;
583 align-items: center;
584 gap: 10px;
585 }
586
587 .otto-toggle-container {
588 display: flex;
589 align-items: center;
590 gap: 15px;
591 }
592
593 .otto-toggle-label {
594 display: flex;
595 align-items: center;
596 gap: 8px;
597 font-size: 14px;
598 font-weight: 500;
599 color: #2c3338;
600 margin: 0;
601 }
602
603 .otto-toggle-text {
604 color: #555;
605 }
606
607 .otto-toggle-status-text {
608 font-weight: 600;
609 min-width: 70px;
610 }
611
612 /* Manual URL exclusion: the toggle cannot lift it, so it is inert and the
613 reason is stated underneath. */
614 .otto-toggle-excluded-note {
615 margin: 0;
616 max-width: 520px;
617 text-align: center;
618 font-size: 12px;
619 line-height: 1.5;
620 color: #646970;
621 }
622
623 .otto-toggle-switch input:disabled + .otto-toggle-slider {
624 opacity: 0.5;
625 cursor: not-allowed;
626 }
627
628 .otto-toggle-switch {
629 position: relative;
630 display: inline-block;
631 width: 54px;
632 height: 28px;
633 margin: 0;
634 cursor: pointer;
635 }
636
637 .otto-toggle-switch input[type="checkbox"] {
638 opacity: 0;
639 width: 0;
640 height: 0;
641 position: absolute;
642 }
643
644 .otto-toggle-slider {
645 position: absolute;
646 top: 0;
647 left: 0;
648 right: 0;
649 bottom: 0;
650 background-color: #dc3232;
651 transition: 0.3s;
652 border-radius: 28px;
653 cursor: pointer;
654 }
655
656 .otto-toggle-slider:before {
657 position: absolute;
658 content: "";
659 height: 20px;
660 width: 20px;
661 left: 4px;
662 bottom: 4px;
663 background-color: white;
664 transition: 0.3s;
665 border-radius: 50%;
666 }
667
668 .otto-toggle-switch input[type="checkbox"]:checked + .otto-toggle-slider {
669 background-color: #46b450;
670 }
671
672 .otto-toggle-switch input[type="checkbox"]:checked + .otto-toggle-slider:before {
673 transform: translateX(26px);
674 }
675
676 .otto-toggle-switch input[type="checkbox"]:disabled + .otto-toggle-slider {
677 opacity: 0.5;
678 cursor: not-allowed;
679 }
680
681 /* Comparison Table */
682 .otto-comparison-table {
683 width: 100%;
684 border-collapse: collapse;
685 margin-top: 20px;
686 }
687
688 .otto-comparison-table th,
689 .otto-comparison-table td {
690 border: 1px solid #e0e0e0;
691 padding: 15px;
692 text-align: left;
693 vertical-align: top;
694 }
695
696 .otto-comparison-table th {
697 background: #f5f5f5;
698 font-weight: 600;
699 font-size: 16px;
700 text-transform: uppercase;
701 letter-spacing: 0.5px;
702 }
703
704 .otto-comparison-table th.original-col {
705 color: #dc3232;
706 }
707
708 .otto-comparison-table th.otto-col {
709 color: #0073aa;
710 }
711
712 .otto-comparison-table tr:nth-child(even) {
713 background: #fafafa;
714 }
715
716 .otto-comparison-table .field-label {
717 font-weight: 600;
718 color: #333;
719 display: block;
720 margin-bottom: 8px;
721 font-size: 14px;
722 }
723
724 .otto-comparison-table .field-value {
725 color: #666;
726 font-size: 13px;
727 line-height: 1.6;
728 word-break: break-word;
729 }
730
731 .otto-comparison-table .field-value pre {
732 background: #f5f5f5;
733 padding: 10px;
734 border-radius: 4px;
735 overflow-x: auto;
736 font-size: 12px;
737 margin: 5px 0;
738 }
739
740 .otto-debug-error {
741 background: #ffebee;
742 border-left: 4px solid #dc3232;
743 padding: 15px 20px;
744 margin: 20px 0;
745 border-radius: 4px;
746 }
747
748 .otto-debug-error strong {
749 color: #dc3232;
750 display: block;
751 margin-bottom: 8px;
752 }
753
754 /* Anchor tags in comparison table */
755 .otto-comparison-table .field-value a {
756 color: #2271b1;
757 text-decoration: none;
758 word-break: break-all;
759 }
760
761 .otto-comparison-table .field-value a:hover {
762 color: #135e96;
763 text-decoration: underline;
764 }
765
766 .otto-comparison-table .field-value a code {
767 color: #d63638;
768 cursor: pointer;
769 }
770
771 .otto-comparison-table .field-value a:hover code {
772 text-decoration: underline;
773 }
774
775 /* Responsive */
776 @media screen and (max-width: 768px) {
777 .metasync-otto-debug-tray {
778 width: 100%;
779 right: -100%;
780 }
781
782 .otto-comparison-table {
783 font-size: 12px;
784 }
785
786 .otto-comparison-table th,
787 .otto-comparison-table td {
788 padding: 10px;
789 }
790 }
791