/* Профиль и безопасность: вертикальные вкладки на десктопе, строка вкладок на телефоне. */
.sao-vtabs .nav-link { color: var(--bs-body-color); }
.sao-vtabs .nav-link .bi { color: var(--bs-secondary-color); }
.sao-vtabs .nav-link.active, .sao-vtabs .nav-link.active .bi { color: #fff; }
.sao-check-ic { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; }
.sao-check-ic.is-ok { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.sao-check-ic.is-warn { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); }

/* Подключение 2FA: отдельная страница без меню, по центру. */
.sao-auth-body { background: var(--bs-tertiary-bg); }
.sao-auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem 1rem; }
.sao-auth-card { width: 100%; max-width: 34rem; }
.sao-stepper { gap: .25rem; flex-wrap: nowrap; }
.sao-stepper .nav-link { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .25rem; color: var(--bs-secondary-color); border-top: 3px solid var(--bs-border-color); border-radius: 0; font-size: .75rem; }
.sao-stepper .nav-link.active { color: var(--bs-primary); border-top-color: var(--bs-primary); }
.sao-step-n { font-weight: 700; }
.sao-step-t { text-align: center; line-height: 1.15; }
.sao-setup-key { font-size: 1rem; letter-spacing: .08em; word-break: normal; color: var(--bs-body-color); }
.sao-otp { font-family: var(--bs-font-monospace); letter-spacing: .3em; text-align: center; }
.sao-codes { display: grid; grid-template-columns: repeat(2, 1fr); gap: .4rem 1rem; text-align: center; }
.sao-codes code { font-size: .95rem; color: var(--bs-body-color); }

