.tb-password-field { position: relative; }
.tb-password-field .form-control { padding-right: 50px; }
.tb-password-field [data-password-toggle] { position: absolute; top: 50%; right: 8px; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 0; border-radius: 10px; color: #718096; background: transparent; transform: translateY(-50%); }
.tb-password-field [data-password-toggle]:hover, .tb-password-field [data-password-toggle]:focus-visible { color: #176bff; background: #eef5ff; outline: 0; }
.tb-forgot-password, .tb-recovery-link, .tb-recovery-back { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 36px; padding: 4px 0; border: 0; color: #176bff; background: transparent; font-weight: 800; font-size: .82rem; }
.tb-forgot-password { width: 100%; justify-content: flex-end; margin: 0 0 13px; }
.tb-recovery-back { width: 100%; margin-top: 10px; color: #718096; }
.tb-recovery-link { width: 100%; margin-top: 7px; }
.tb-recovery-card { animation: tb-recovery-in .24s ease both; }
.tb-recovery-progress { display: flex; align-items: center; justify-content: center; margin: 4px 0 22px; }
.tb-recovery-progress span { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #dce5f1; border-radius: 50%; color: #8a98aa; background: #fff; font-size: .74rem; font-weight: 900; transition: .2s ease; }
.tb-recovery-progress span.active, .tb-recovery-progress span.complete { color: #fff; border-color: #176bff; background: #176bff; box-shadow: 0 7px 18px rgba(23,107,255,.22); }
.tb-recovery-progress i { width: 42px; height: 2px; background: #e5ebf3; }
.tb-recovery-timer { display: flex; align-items: center; gap: 7px; margin-bottom: 14px; padding: 11px 13px; border-radius: 12px; color: #9a620d; background: #fff8e8; font-size: .78rem; font-weight: 750; }
.tb-recovery-timer strong { margin-left: auto; font-variant-numeric: tabular-nums; }
.tb-recovery-timer.expired { color: #a93640; background: #fff0f2; }
.tb-recovery-code { text-align: center; font-size: 1.45rem; font-weight: 900; letter-spacing: .35em; font-variant-numeric: tabular-nums; }
@keyframes tb-recovery-in { from { opacity: 0; transform: translateY(7px); } }
@media (max-width: 760px) { .tb-forgot-password { min-height: 42px; } .tb-recovery-progress i { width: 30px; } }
@media (prefers-reduced-motion: reduce) { .tb-recovery-card { animation: none; } }
