PluginProbe ʕ •ᴥ•ʔ
WP 2FA – Two-factor authentication for WordPress / 4.0.0
WP 2FA – Two-factor authentication for WordPress v4.0.0
4.0.0 1.7.1 2.0.0 2.0.1 2.1.0 2.2.0 2.2.1 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.8.0 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0 3.0.1 3.1.0 3.1.1 3.1.1.2 trunk 1.2.0 1.3.0 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.6.0 1.6.1 1.6.2 1.7.0
wp-2fa / css / wp2fa-wizard.css
wp-2fa / css Last commit date
admin 9 hours ago passkeys 9 hours ago wp2fa-dialog.css 9 hours ago wp2fa-profile.css 9 hours ago wp2fa-wizard.css 9 hours ago
wp2fa-wizard.css
1096 lines
1 /**
2 * WP 2FA - Setup Wizard Styles
3 *
4 * Mobile-friendly, white-label ready wizard modal.
5 * All selectors are prefixed with .wp2fa-setup-wizard to avoid conflicts.
6 */
7
8 /* =============================================
9 Overlay / Backdrop
10 ============================================= */
11 .wp2fa-setup-wizard-overlay {
12 position: fixed;
13 top: 0;
14 inset-inline-start: 0;
15 width: 100%;
16 height: 100%;
17 background: rgba(0, 0, 0, 0.55);
18 z-index: 100050;
19 display: flex;
20 align-items: center;
21 justify-content: center;
22 opacity: 0;
23 visibility: hidden;
24 transition: opacity 0.25s ease, visibility 0.25s ease;
25 }
26
27 .wp2fa-setup-wizard-overlay.wp2fa-wizard-open {
28 opacity: 1;
29 visibility: visible;
30 }
31
32 /* =============================================
33 Modal Container
34 ============================================= */
35 .wp2fa-setup-wizard-modal {
36 background: #fff;
37 border-radius: 8px;
38 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
39 width: 94%;
40 max-width: 640px;
41 max-height: 90vh;
42 overflow-y: auto;
43 position: relative;
44 transform: translateY(20px);
45 transition: transform 0.25s ease;
46 }
47
48 .wp2fa-wizard-open .wp2fa-setup-wizard-modal {
49 transform: translateY(0);
50 }
51
52 /* =============================================
53 Header
54 ============================================= */
55 .wp2fa-setup-wizard-header {
56 padding: 20px 24px 16px;
57 /* border-bottom: 1px solid #e2e4e7; */
58 }
59
60 .wp2fa-setup-wizard-header-title-row {
61 display: flex;
62 flex-wrap: wrap;
63 align-items: center;
64 justify-content: space-between;
65 }
66
67 .wp2fa-setup-wizard-header-logo-row {
68 width: 100%;
69 margin-bottom: 12px;
70 }
71
72 .wp2fa-setup-wizard-header-logo {
73 max-height: 50px;
74 width: auto;
75 }
76
77 .wp2fa-setup-wizard-title {
78 font-size: 18px;
79 font-weight: 600;
80 color: #1e1e1e;
81 margin: 0;
82 line-height: 1.4;
83 }
84
85 .wp2fa-setup-wizard-close {
86 background: none;
87 border: none;
88 cursor: pointer;
89 font-size: 24px;
90 line-height: 1;
91 color: #666;
92 padding: 4px;
93 transition: color 0.15s ease;
94 position: absolute;
95 top: 10px;
96 inset-inline-end: 20px;
97 }
98
99 .wp2fa-setup-wizard-close:hover,
100 .wp2fa-setup-wizard-close:focus {
101 color: #1e1e1e;
102 outline: none;
103 }
104
105 /* =============================================
106 Body / Steps Container
107 ============================================= */
108 .wp2fa-setup-wizard-body {
109 padding: 24px;
110 /* margin-top: -80px; */
111 }
112
113 /* =============================================
114 Step Panels
115 ============================================= */
116 .wp2fa-wizard-step {
117 display: none;
118 }
119
120 .wp2fa-wizard-step.wp2fa-wizard-step-active {
121 display: block;
122 }
123
124 /* =============================================
125 Method Selection (Radio Group)
126 ============================================= */
127 .wp2fa-wizard-methods-list {
128 list-style: none;
129 margin: 0;
130 padding: 0;
131 }
132
133 .wp2fa-wizard-method-item {
134 margin-bottom: 12px;
135 }
136
137 .wp2fa-wizard-method-label {
138 display: flex;
139 align-items: center;
140 padding: 16px 20px;
141 border: 2px solid #dcdcde;
142 border-radius: 6px;
143 cursor: pointer;
144 transition: border-color 0.15s ease, background-color 0.15s ease;
145 gap: 12px;
146 }
147
148 .wp2fa-wizard-method-label:hover {
149 border-color: #b0b5ba;
150 background-color: #f9f9f9;
151 }
152
153 .wp2fa-wizard-method-radio {
154 margin-top: 0;
155 flex-shrink: 0;
156 accent-color: #2271b1;
157 width: 18px;
158 height: 18px;
159 }
160
161 .wp2fa-wizard-method-radio:checked + .wp2fa-wizard-method-info {
162 /* Intentionally empty - parent label handles selected state */
163 }
164
165 .wp2fa-wizard-method-label:has(.wp2fa-wizard-method-radio:checked) {
166 border-color: #2271b1;
167 background-color: #f0f6fc;
168 }
169
170 .wp2fa-wizard-method-info {
171 flex: 1;
172 min-width: 0;
173 }
174
175 .wp2fa-wizard-method-name {
176 /* display: none; */
177 font-size: 14px;
178 font-weight: 600;
179 color: #1e1e1e;
180 margin-bottom: 2px;
181 }
182
183 #wp2fa-wizard-backup-methods-list .wp2fa-wizard-method-name {
184 display: block !important;
185 }
186
187 .wp2fa-wizard-method-description {
188 display: block;
189 font-size: 13px;
190 color: #666;
191 line-height: 1.5;
192 }
193
194 /* =============================================
195 Method Hint (info icon + expandable text)
196 ============================================= */
197 .wp2fa-wizard-hint-toggle {
198 background: transparent;
199 color: #3c434a;
200 border: none;
201 width: 20px;
202 height: 20px;
203 border-radius: 0;
204 display: inline-flex;
205 align-items: center;
206 justify-content: center;
207 cursor: pointer;
208 padding: 0;
209 margin-inline-start: 6px;
210 vertical-align: middle;
211 line-height: 1;
212 opacity: 0.8;
213 transition: background-color 0.15s ease, opacity 0.15s ease;
214 position: relative;
215 top: 0;
216 }
217
218 .wp2fa-wizard-hint-toggle:hover,
219 .wp2fa-wizard-hint-toggle.wp2fa-wizard-hint-active {
220 background: rgba(34, 113, 177, 0.12);
221 border-radius: 50%;
222 opacity: 1;
223 }
224
225 .wp2fa-wizard-hint-icon {
226 display: inline-flex;
227 width: 20px;
228 height: 20px;
229 line-height: 0;
230 }
231
232 .wp2fa-wizard-hint-icon svg {
233 display: block;
234 width: 20px;
235 height: 20px;
236 }
237
238 .wp2fa-wizard-method-hint {
239 display: block;
240 font-size: 13px;
241 color: #50575e;
242 line-height: 1.6;
243 margin-top: 6px;
244 padding: 10px 12px;
245 background: #f0f0f1;
246 border-radius: 6px;
247 }
248
249 .wp2fa-wizard-method-hint p {
250 margin: 0 0 4px;
251 }
252
253 .wp2fa-wizard-method-hint p:last-child {
254 margin-bottom: 0;
255 }
256
257 .wp2fa-wizard-method-hint a {
258 color: #2271b1;
259 text-decoration: underline;
260 }
261
262 .wp2fa-wizard-method-hint a:hover {
263 color: #135e96;
264 }
265
266 /* =============================================
267 Footer / Actions
268 ============================================= */
269 .wp2fa-setup-wizard-footer {
270 display: flex;
271 align-items: center;
272 justify-content: space-between;
273 padding: 16px 24px 20px;
274 border-top: 1px solid #e2e4e7;
275 }
276
277 .wp2fa-wizard-btn {
278 display: inline-flex;
279 align-items: center;
280 justify-content: center;
281 padding: 8px 20px;
282 font-size: 14px;
283 font-weight: 500;
284 border-radius: 4px;
285 cursor: pointer;
286 transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
287 text-decoration: none;
288 line-height: 1.6;
289 border: 1px solid transparent;
290 min-height: 36px;
291 box-sizing: border-box;
292 }
293
294 .wp2fa-setup-wizard-footer .wp2fa-wizard-btn.wp2fa-wizard-btn-secondary {
295 padding: 8px 20px;
296 line-height: 1.6;
297 font-size: 14px;
298 min-height: 36px;
299 border-width: 1px;
300 }
301
302 .wp2fa-wizard-btn:focus {
303 outline: 2px solid #2271b1;
304 outline-offset: 2px;
305 }
306
307 .wp2fa-wizard-btn-primary {
308 background-color: #2271b1;
309 color: #fff;
310 border-color: #2271b1;
311 }
312
313 .wp2fa-wizard-btn-primary:hover {
314 background-color: #135e96;
315 border-color: #135e96;
316 color: #fff;
317 }
318
319 .wp2fa-wizard-btn-primary:disabled,
320 .wp2fa-wizard-btn-primary[disabled] {
321 background-color: #a7aaad;
322 border-color: #a7aaad;
323 cursor: not-allowed;
324 }
325
326 .wp2fa-wizard-btn-secondary {
327 background-color: #fff;
328 color: #2271b1;
329 border-color: #2271b1;
330 }
331
332 .wp2fa-wizard-btn-secondary:hover {
333 background-color: #f0f6fc;
334 color: #135e96;
335 border-color: #135e96;
336 }
337
338 /* =============================================
339 default_styling fallback — when the admin disables
340 the plugin's built-in styling, our button classes are
341 removed by JS and replaced with WP-native `button` /
342 `button-primary` classes. No CSS overrides needed here
343 since our selectors (.wp2fa-wizard-btn etc.) no longer
344 match those elements.
345 ============================================= */
346
347 /* =============================================
348 TOTP Configuration Step
349 ============================================= */
350 .wp2fa-totp-setup-wrapper {
351 display: flex;
352 gap: 24px;
353 align-items: flex-start;
354 }
355
356 .wp2fa-totp-qr-wrapper {
357 flex-shrink: 0;
358 }
359
360 .wp2fa-totp-qr-code {
361 display: block;
362 width: 180px;
363 height: 180px;
364 border: 1px solid #dcdcde;
365 border-radius: 4px;
366 }
367
368 .wp2fa-totp-instructions {
369 flex: 1;
370 min-width: 0;
371 }
372
373 .wp2fa-totp-steps-list {
374 list-style: none;
375 margin: 0;
376 padding: 0;
377 counter-reset: totp-step;
378 }
379
380 .wp2fa-totp-step-item {
381 counter-increment: totp-step;
382 display: grid;
383 grid-template-columns: auto 1fr;
384 gap: 12px;
385 margin-bottom: 16px;
386 font-size: 14px;
387 line-height: 1.5;
388 color: #1e1e1e;
389 align-items: start;
390 }
391
392 .wp2fa-totp-step-item::before {
393 content: counter(totp-step);
394 display: flex;
395 align-items: center;
396 justify-content: center;
397 width: 28px;
398 height: 28px;
399 min-width: 28px;
400 background-color: #2271b1;
401 color: #fff;
402 border-radius: 50%;
403 font-size: 13px;
404 font-weight: 600;
405 }
406
407 .wp2fa-totp-key-wrapper {
408 display: flex;
409 align-items: center;
410 gap: 8px;
411 grid-column: 2;
412 margin-top: 8px;
413 margin-inline-start: 0;
414 border: 1px solid #dcdcde;
415 border-radius: 4px;
416 padding: 8px 12px;
417 }
418
419 .wp2fa-totp-key-input {
420 flex: 1;
421 border: none;
422 background: transparent;
423 font-family: monospace;
424 font-size: 14px;
425 color: #1e1e1e;
426 padding: 0;
427 outline: none;
428 }
429
430 .wp2fa-totp-key-copy {
431 background: none;
432 border: none;
433 cursor: pointer;
434 padding: 4px;
435 color: #666;
436 transition: color 0.15s ease;
437 display: flex;
438 align-items: center;
439 }
440
441 .wp2fa-totp-key-copy:hover {
442 color: #2271b1;
443 }
444
445 .wp2fa-totp-key-copy svg {
446 width: 18px;
447 height: 18px;
448 }
449
450 .wp2fa-copy-tooltip {
451 position: absolute;
452 bottom: 100%;
453 inset-inline-start: 50%;
454 transform: translateX(-50%);
455 background: #1d2327;
456 color: #fff;
457 font-size: 12px;
458 padding: 4px 8px;
459 border-radius: 3px;
460 white-space: nowrap;
461 pointer-events: none;
462 opacity: 0;
463 transition: opacity 0.2s ease;
464 }
465
466 .wp2fa-copy-tooltip.visible {
467 opacity: 1;
468 }
469
470 /* =============================================
471 TOTP Verification Step
472 ============================================= */
473 /* .wp2fa-totp-verify-wrapper {
474 max-width: 400px;
475 } */
476
477 .wp2fa-totp-verify-wrapper label {
478 display: block;
479 font-size: 14px;
480 font-weight: 500;
481 color: #1e1e1e;
482 margin-bottom: 8px;
483 }
484
485 .wp2fa-totp-verify-input {
486 width: 100%;
487 padding: 8px 12px;
488 font-size: 16px;
489 border: 1px solid #8c8f94;
490 border-radius: 4px;
491 box-sizing: border-box;
492 }
493
494 .wp2fa-totp-verify-input:focus {
495 border-color: #2271b1;
496 box-shadow: 0 0 0 1px #2271b1;
497 outline: none;
498 }
499
500 /* =============================================
501 Email Configuration Step
502 ============================================= */
503 .wp2fa-email-setup-description {
504 font-size: 14px;
505 color: #1e1e1e;
506 line-height: 1.6;
507 margin-bottom: 20px;
508 }
509
510 .wp2fa-email-options-list {
511 list-style: none;
512 margin: 0 0 16px;
513 padding: 0;
514 }
515
516 .wp2fa-email-option-item {
517 margin-bottom: 12px;
518 }
519
520 .wp2fa-email-option-label {
521 display: flex;
522 align-items: flex-start;
523 padding: 14px 18px;
524 border: 2px solid #dcdcde;
525 border-radius: 6px;
526 cursor: pointer;
527 transition: border-color 0.15s ease, background-color 0.15s ease;
528 gap: 12px;
529 }
530
531 .wp2fa-email-option-label:hover {
532 border-color: #b0b5ba;
533 background-color: #f9f9f9;
534 }
535
536 .wp2fa-email-option-label:has(input:checked) {
537 border-color: #2271b1;
538 background-color: #f0f6fc;
539 }
540
541 .wp2fa-email-option-radio {
542 margin-top: 2px;
543 flex-shrink: 0;
544 accent-color: #2271b1;
545 width: 18px;
546 height: 18px;
547 }
548
549 .wp2fa-email-option-text {
550 font-size: 14px;
551 color: #1e1e1e;
552 flex: 1;
553 }
554
555 .wp2fa-email-custom-input {
556 display: block;
557 width: 100%;
558 margin-top: 8px;
559 padding: 8px 12px;
560 font-size: 14px;
561 border: 1px solid #8c8f94;
562 border-radius: 4px;
563 box-sizing: border-box;
564 }
565
566 .wp2fa-email-custom-input:focus {
567 border-color: #2271b1;
568 box-shadow: 0 0 0 1px #2271b1;
569 outline: none;
570 }
571
572 .wp2fa-email-notice {
573 display: flex;
574 align-items: flex-start;
575 gap: 10px;
576 padding: 12px 16px;
577 background: #fcf9e8;
578 border: 1px solid #dba617;
579 border-radius: 4px;
580 font-size: 13px;
581 line-height: 1.5;
582 color: #6e4e00;
583 margin-top: 16px;
584 }
585 .wp2fa-email-notice p:first-child {
586 margin-top: 0px !important;
587 }
588
589 .wp2fa-email-notice-icon {
590 flex-shrink: 0;
591 font-size: 16px;
592 line-height: 1.3;
593 }
594
595 /* =============================================
596 Email Verification Step
597 ============================================= */
598 /* .wp2fa-email-verify-wrapper {
599 max-width: 400px;
600 } */
601
602 .wp2fa-email-verify-wrapper label {
603 display: block;
604 font-size: 14px;
605 font-weight: 500;
606 color: #1e1e1e;
607 margin-bottom: 8px;
608 }
609
610 .wp2fa-email-verify-input {
611 width: 100%;
612 padding: 8px 12px;
613 font-size: 16px;
614 border: 1px solid #8c8f94;
615 border-radius: 4px;
616 box-sizing: border-box;
617 }
618
619 .wp2fa-email-verify-input:focus {
620 border-color: #2271b1;
621 box-shadow: 0 0 0 1px #2271b1;
622 outline: none;
623 }
624
625 /* =============================================
626 Verification Response Message
627 ============================================= */
628 .wp2fa-wizard-verification-response {
629 margin-top: 12px;
630 padding: 10px 14px;
631 border-radius: 4px;
632 font-size: 13px;
633 line-height: 1.5;
634 display: none;
635 }
636
637 .wp2fa-wizard-verification-response.wp2fa-response-success {
638 display: block;
639 background: #edfaef;
640 border: 1px solid #46b450;
641 color: #1e4620;
642 }
643
644 .wp2fa-wizard-verification-response.wp2fa-response-error {
645 display: block;
646 background: #fcf0f1;
647 border: 1px solid #d63638;
648 color: #8a1c1f;
649 }
650
651 /* =============================================
652 Resend Code Link
653 ============================================= */
654 .wp2fa-resend-code-link {
655 display: inline-block;
656 margin-top: 12px;
657 font-size: 13px;
658 color: #2271b1;
659 cursor: pointer;
660 text-decoration: underline;
661 background: none;
662 border: none;
663 padding: 0;
664 }
665
666 .wp2fa-resend-code-link:hover {
667 color: #135e96;
668 }
669
670 /* =============================================
671 Loading Spinner
672 ============================================= */
673 .wp2fa-wizard-spinner {
674 display: inline-block;
675 width: 18px;
676 height: 18px;
677 margin-inline-start: 8px;
678 border: 2px solid #dcdcde;
679 border-top-color: #2271b1;
680 border-radius: 50%;
681 animation: wp2fa-spin 0.6s linear infinite;
682 vertical-align: middle;
683 }
684
685 @keyframes wp2fa-spin {
686 to {
687 transform: rotate(360deg);
688 }
689 }
690
691 /* =============================================
692 Backup Method Selection Step
693 ============================================= */
694 .wp2fa-wizard-backup-select-success {
695 margin-bottom: 20px;
696 }
697
698 .wp2fa-wizard-success-icon {
699 margin-bottom: 16px;
700 }
701
702 .wp2fa-wizard-backup-select-title {
703 font-size: 18px;
704 font-weight: 600;
705 color: #1e1e1e;
706 margin: 0 0 10px;
707 }
708
709 .wp2fa-wizard-backup-select-description {
710 font-size: 14px;
711 color: #555;
712 line-height: 1.6;
713 margin: 0;
714 }
715
716 .wp2fa-wizard-backup-select-section-title {
717 font-size: 15px;
718 font-weight: 600;
719 color: #1e1e1e;
720 margin: 0 0 12px;
721 }
722
723 .wp2fa-wizard-btn-close-later {
724 color: #d63638;
725 border-color: #d63638;
726 }
727
728 .wp2fa-wizard-btn-close-later:hover,
729 .wp2fa-wizard-btn-close-later:focus {
730 color: #8a1c1f;
731 border-color: #8a1c1f;
732 background-color: #fcf0f1;
733 }
734
735 /* =============================================
736 Backup Codes Step
737 ============================================= */
738 .wp2fa-backup-codes-intro {
739 font-size: 14px;
740 color: #1e1e1e;
741 line-height: 1.6;
742 margin-bottom: 20px;
743 }
744
745 .wp2fa-backup-codes-textarea {
746 display: block;
747 width: 100%;
748 padding: 12px 16px;
749 font-family: monospace;
750 font-size: 15px;
751 line-height: 2;
752 border: 1px solid #dcdcde;
753 border-radius: 4px;
754 color: #1e1e1e;
755 resize: none;
756 box-sizing: border-box;
757 margin-bottom: 16px;
758 }
759
760 .wp2fa-backup-codes-actions {
761 display: flex;
762 flex-wrap: wrap;
763 gap: 10px;
764 margin-bottom: 16px;
765 }
766
767 .wp2fa-backup-codes-actions .wp2fa-wizard-btn {
768 min-width: 100px;
769 }
770
771 /* =============================================
772 Profile Page Button
773 ============================================= */
774 .wp2fa-open-wizard-btn {
775 display: inline-flex;
776 align-items: center;
777 gap: 6px;
778 padding: 8px 16px;
779 font-size: 14px;
780 font-weight: 500;
781 color: #fff;
782 background-color: #2271b1;
783 border: 1px solid #2271b1;
784 border-radius: 4px;
785 cursor: pointer;
786 text-decoration: none;
787 transition: background-color 0.15s ease;
788 }
789
790 .wp2fa-open-wizard-btn:hover,
791 .wp2fa-open-wizard-btn:focus {
792 background-color: #135e96;
793 border-color: #135e96;
794 color: #fff;
795 outline: none;
796 }
797
798 /* =============================================
799 Mobile Responsive
800 ============================================= */
801 @media screen and (max-width: 600px) {
802 .wp2fa-setup-wizard-modal {
803 width: 100%;
804 max-width: 100%;
805 max-height: 100vh;
806 border-radius: 0;
807 margin: 0;
808 }
809
810 .wp2fa-setup-wizard-header {
811 padding: 16px 16px 12px;
812 }
813
814 .wp2fa-setup-wizard-body {
815 padding: 16px;
816 /* margin-top: -64px; */
817 }
818
819 .wp2fa-setup-wizard-footer {
820 padding: 12px 16px 16px;
821 flex-wrap: wrap;
822 gap: 8px;
823 }
824
825 .wp2fa-setup-wizard-title {
826 font-size: 16px;
827 }
828
829 .wp2fa-wizard-method-label {
830 padding: 12px 14px;
831 }
832
833 .wp2fa-totp-setup-wrapper {
834 flex-direction: column;
835 align-items: center;
836 }
837
838 .wp2fa-totp-qr-code {
839 width: 160px;
840 height: 160px;
841 }
842
843 .wp2fa-totp-key-wrapper {
844 flex-wrap: wrap;
845 }
846
847 .wp2fa-totp-key-input {
848 width: 100%;
849 font-size: 12px;
850 }
851
852 .wp2fa-email-option-label {
853 padding: 12px 14px;
854 }
855
856 .wp2fa-wizard-btn {
857 padding: 8px 14px;
858 font-size: 13px;
859 }
860 }
861
862 @media screen and (max-width: 400px) {
863 .wp2fa-setup-wizard-header,
864 .wp2fa-setup-wizard-body,
865 .wp2fa-setup-wizard-footer {
866 padding-inline-start: 12px;
867 padding-inline-end: 12px;
868 }
869
870 .wp2fa-totp-qr-code {
871 width: 140px;
872 height: 140px;
873 }
874 }
875
876 /* -------------------------------------------------------
877 * Close confirmation dialog
878 * ------------------------------------------------------- */
879 .wp2fa-wizard-confirm-overlay {
880 position: absolute;
881 top: 0;
882 inset-inline-start: 0;
883 width: 100%;
884 height: 100%;
885 background: rgba(0, 0, 0, 0.55);
886 display: flex;
887 align-items: center;
888 justify-content: center;
889 z-index: 100;
890 border-radius: inherit;
891 }
892
893 .wp2fa-wizard-confirm-dialog {
894 background: #fff;
895 border-radius: 8px;
896 padding: 28px 32px 20px;
897 max-width: 400px;
898 width: 90%;
899 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
900 text-align: center;
901 color: #3c434a;
902 }
903
904 .wp2fa-wizard-confirm-body h3 {
905 margin: 0 0 8px;
906 font-size: 18px;
907 }
908
909 .wp2fa-wizard-confirm-body p {
910 margin: 0 0 4px;
911 color: #555;
912 }
913
914 .wp2fa-wizard-confirm-footer {
915 display: flex;
916 gap: 12px;
917 justify-content: center;
918 margin-top: 20px;
919 }
920
921 .wp2fa-wizard-confirm-footer .wp2fa-wizard-btn {
922 min-width: 80px;
923 }
924
925 .wp2fa-wizard-confirm-footer.wp2fa-profile__confirm-buttons--stacked {
926 flex-direction: column;
927 align-items: center;
928 }
929
930 /* =============================================
931 default_styling overrides
932 When the admin disables "Enable our CSS within user wizards",
933 the modal gets class `default_styling`. These rules strip cosmetic
934 styling (colors, shadows, rounded corners, backgrounds) so the
935 wizard inherits the WordPress / theme appearance while keeping
936 structural layout intact.
937 On the frontend, --wp-admin-theme-color is not available, so we
938 use `inherit` / `currentColor` to let the theme cascade apply.
939 ============================================= */
940
941 /* --- Modal container --- */
942 .default_styling.wp2fa-setup-wizard-modal {
943 background: #fff;
944 border-radius: 0;
945 box-shadow: none;
946 border: 1px solid #c3c4c7;
947 }
948
949 /* --- Header --- */
950 /* .default_styling .wp2fa-setup-wizard-header {
951 border-bottom: 1px solid #c3c4c7;
952 } */
953
954 .default_styling .wp2fa-setup-wizard-title {
955 color: inherit;
956 font-size: 1.3em;
957 }
958
959 .default_styling .wp2fa-setup-wizard-close {
960 color: #50575e;
961 }
962
963 .default_styling .wp2fa-setup-wizard-close:hover,
964 .default_styling .wp2fa-setup-wizard-close:focus {
965 color: #d63638;
966 }
967
968 /* --- Body text --- */
969 .default_styling .wp2fa-setup-wizard-body {
970 color: inherit;
971 }
972
973 /* --- Method cards --- */
974 .default_styling .wp2fa-wizard-method-label {
975 border: 1px solid #c3c4c7;
976 border-radius: 0;
977 background: #fff;
978 }
979
980 .default_styling .wp2fa-wizard-method-label:hover {
981 border-color: #8c8f94;
982 background-color: #f6f7f7;
983 }
984
985 .default_styling .wp2fa-wizard-method-label:has(.wp2fa-wizard-method-radio:checked) {
986 border-color: currentColor;
987 background-color: #f0f6fc;
988 }
989
990 .default_styling .wp2fa-wizard-method-radio {
991 accent-color: auto;
992 }
993
994 .default_styling .wp2fa-wizard-method-name {
995 color: inherit;
996 /* display: none; */
997 }
998
999 .default_styling .wp2fa-wizard-method-description {
1000 color: inherit;
1001 opacity: 0.75;
1002 }
1003
1004 /* --- Hint toggle --- */
1005 .default_styling .wp2fa-wizard-hint-toggle:hover,
1006 .default_styling .wp2fa-wizard-hint-toggle.wp2fa-wizard-hint-active {
1007 background: #dcdcde;
1008 border-radius: 0;
1009 }
1010
1011 .default_styling .wp2fa-wizard-method-hint {
1012 background: #f6f7f7;
1013 border-radius: 0;
1014 border: 1px solid #c3c4c7;
1015 }
1016
1017 /* --- Footer --- */
1018 .default_styling .wp2fa-setup-wizard-footer {
1019 border-top: 1px solid #c3c4c7;
1020 }
1021
1022 /* --- TOTP step numbers --- */
1023 .default_styling .wp2fa-totp-step-item::before {
1024 background-color: #50575e;
1025 border-radius: 0;
1026 }
1027
1028 /* --- Input fields --- */
1029 .default_styling .wp2fa-totp-verify-input:focus,
1030 .default_styling .wp2fa-email-verify-input:focus,
1031 .default_styling .wp2fa-email-custom-input:focus {
1032 border-color: #8c8f94;
1033 box-shadow: none;
1034 outline: 1px solid #8c8f94;
1035 }
1036
1037 .default_styling .wp2fa-totp-key-wrapper {
1038 border-radius: 0;
1039 }
1040
1041 .default_styling .wp2fa-totp-qr-code {
1042 border-radius: 0;
1043 }
1044
1045 /* --- Email option cards --- */
1046 .default_styling .wp2fa-email-option-label {
1047 border: 1px solid #c3c4c7;
1048 border-radius: 0;
1049 }
1050
1051 .default_styling .wp2fa-email-option-label:hover {
1052 border-color: #8c8f94;
1053 background-color: #f6f7f7;
1054 }
1055
1056 .default_styling .wp2fa-email-option-label:has(input:checked) {
1057 border-color: currentColor;
1058 background-color: #f0f6fc;
1059 }
1060
1061 .default_styling .wp2fa-email-option-radio {
1062 accent-color: auto;
1063 }
1064
1065 /* --- Email notice --- */
1066 .default_styling .wp2fa-email-notice {
1067 border-radius: 0;
1068 }
1069
1070 /* --- Verification response --- */
1071 .default_styling .wp2fa-wizard-verification-response {
1072 border-radius: 0;
1073 }
1074
1075 /* --- Links --- */
1076 .default_styling .wp2fa-resend-code-link {
1077 color: inherit;
1078 }
1079
1080 /* --- Spinner --- */
1081 .default_styling .wp2fa-wizard-spinner {
1082 border-top-color: currentColor;
1083 }
1084
1085 /* --- Backup codes --- */
1086 .default_styling .wp2fa-backup-codes-textarea {
1087 border-radius: 0;
1088 }
1089
1090 /* --- Confirm dialog --- */
1091 .default_styling .wp2fa-wizard-confirm-dialog {
1092 border-radius: 0;
1093 box-shadow: none;
1094 border: 1px solid #c3c4c7;
1095 }
1096