/* استانداردسازی فرم‌های ورود، ورود با کد و بازیابی رمز (ظاهر کلی صفحه بدون تغییر؛ فقط فرم‌ها) */
.af-head { width: 350px; margin: 4px auto 12px; text-align: center; }
.af-head h2 { margin: 0 0 4px; font-size: 18px; font-weight: bold; color: #3b1f6e; }
.af-head p { margin: 0; font-size: 12.5px; line-height: 1.9; color: #6b6b80; }

.af-steps { display: flex; gap: 6px; width: 330px; margin: 0 auto 10px; padding: 0; list-style: none; }
.af-steps li { flex: 1; padding-top: 6px; border-top: 3px solid #e4e0ee; font-size: 11px; color: #9a9ab0; text-align: center; }
.af-steps li.done, .af-steps li.active { border-color: #573098; color: #573098; }
.af-steps li.active { font-weight: bold; }

form .form-group input[type=text], form .form-group input[type=password], form .form-group input[type=tel] {
    height: 46px; padding: 8px 12px; border: 1px solid #d6d3e0; border-radius: 10px; background: #fafafe;
    font-size: 15px; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
form .form-group input:focus { outline: none; border-color: #573098; background: #fff; box-shadow: 0 0 0 3px rgba(87,48,152,.15); }
form .form-group input.af-icon { padding-right: 38px !important; }
form .form-group input.af-eye-pad { padding-left: 42px !important; }
form .form-group > label { right: 12px; }
form .form-group > label .zmdi { color: #8b84a3; }
form .form-group input:focus ~ label .zmdi, form .form-group input:focus + label .zmdi { color: #573098; }

.af-eye { position: absolute; left: 6px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; padding: 0; border: 0; border-radius: 8px; background: none; color: #8b84a3; cursor: pointer; }
.af-eye:hover, .af-eye:focus { background: #f0ecf8; color: #573098; outline: none; }
.af-eye .zmdi { color: inherit; }

.form-submit { height: 46px; border-radius: 10px; font-size: 15px; font-weight: bold; transition: background-color .15s ease, opacity .15s ease; }
.form-submit:focus { outline: none; box-shadow: 0 0 0 3px rgba(87,48,152,.25); }
.form-submit[disabled] { opacity: .7; cursor: wait; }
.form-submit.af-busy { position: relative; color: transparent !important; }
.form-submit.af-busy:after { content: ''; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: af-spin .7s linear infinite; }
@keyframes af-spin { to { transform: rotate(360deg); } }

.af-hint { display: none; margin: 6px 4px 0; font-size: 12px; color: #b45309; }
.af-hint.show { display: block; }
.af-hint.error { color: #b42318; }

.af-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 16px; margin: 4px 10px 0; padding-top: 12px; border-top: 1px solid #ece9f3; overflow: visible; }
.af-links .link { display: inline-block; margin: 0; padding: 4px 0; font-size: 13px; }
.af-links .link:hover, .af-links .link:focus { text-decoration: underline; outline: none; }
.af-links.af-secondary { border-top: 0; padding-top: 0; }

/* کد تأیید: شمارندهٔ زمان داخل کادر و ارقام با فاصله */
.af-code input[type=text] { padding-left: 84px !important; padding-right: 12px !important; text-align: center; letter-spacing: 6px; font-size: 20px !important; direction: ltr; }
.af-code input::placeholder { letter-spacing: 0; font-size: 13px; }
.af-code #timer { right: auto; left: 6px; padding: 6px 10px; border-radius: 8px; background: #efeaf8; color: #573098; font-size: 13px; direction: ltr; min-width: 46px; text-align: center; }
.af-code #timer.expired { background: #fdecec; color: #b42318; }

.captcha-wrapper .af-refresh { flex-shrink: 0; width: 36px; height: 40px; border: 1px solid #d6d3e0; border-radius: 8px; background: #fafafe; color: #573098; cursor: pointer; }
.captcha-wrapper input[type=text] { height: 40px; border-radius: 8px; }

.validation-summary-valid { display: none; }
.validation-summary-errors ul { margin: 0 10px 4px; padding: 0; list-style: none; }
.validation-summary-errors ul li { padding: 8px 12px; border: 1px solid #f5c2c2; border-radius: 8px; background: #fdecec; color: #9b1c1c; font-size: 12.5px; line-height: 1.9; }

.loader { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 5; border-radius: 10px; background: rgba(255,255,255,.7); }

@media only screen and (max-width: 900px) {
    .af-head, .af-steps { width: auto; max-width: 350px; }
    form { width: auto; max-width: 350px; }
    .main .wrapper { width: calc(100% - 24px); max-width: 410px; }
}

.af-head h2, .af-head p, .af-steps li, .af-hint, .af-code #timer, .form-submit, .validation-summary-errors ul li { font-family: sahel, NotoSansArabic, tahoma; }
.af-code input::placeholder { text-align: center; }
