﻿/*通用*/
.fs-7 { font-size: 14px; }
.px-40 { padding-left: 40px !important; padding-right: 40px !important; }
.px-20 { padding-left: 20px !important; padding-right: 20px !important; }
.px-50 { padding-left: 50px !important; padding-right: 50px !important; }
.py-35 { padding-top: 35px !important; padding-bottom: 35px !important; }
.mb-35 { margin-bottom: 35px; }
.ml-10 { margin-left: 10px; }
.custom-secondary-border { border: 1px solid #c2c7cd; }


/*nav tab*/
.nav-pills .nav-link { height: 52px; color: #797d85; padding: 0.875rem 2rem; border: none !important; }
.nav-pills .nav-link.active { color: #fff; background: #0978f5; border: none; border-radius: 0.25rem; box-shadow: 0px 6px 25px rgba(0, 30, 60, 0.14); transition: 0.2s ease-in-out; }
.nav-pills .nav-link.active:hover { color: #fff; background-color: #0978f5; border-color: #005bc1; box-shadow: 0px 6px 25px rgba(0, 30, 60, 0.14); }
.nav-pills .nav-link:hover { color: #0978f5; background-color: #dfeeff; border: none; box-shadow: 0px 3px 10px rgba(0, 30, 60, 0.03); }

/*input*/
.login .form-control { color: #797d85 !important; border: 1px solid #c2c7cd; font-size: 0.875rem; outline: none !important; }
.login .text-input { border-radius: 4px; color: #797d85 !important; background-color: transparent !important; }
.login .text-input:focus { box-shadow: 0px 1px 4px rgba(0, 30, 60, 0.03) !important; -webkit-box-shadow: 0px 1px 4px rgba(0, 30, 60, 0.03) !important; border-color: #282c31 !important; }
.login ::-webkit-input-placeholder { color: #848d96 !important; }
.login ::-moz-placeholder { color: #848d96 !important; }
.login :-moz-placeholder { color: #848d96 !important; }
.login :-ms-input-placeholder { color: #848d96 !important; }

/*按钮*/
.login .custom-btn { height: 52px; border-radius: 4px !important; transition: all 0.2s ease-in-out; }
.login .custom-btn:hover, .custom-btn:active { cursor: pointer; box-shadow: none; transform: translateY(-2px); color: #fff !important; background-color: #0978f5 !important; border-color: #0978f5 !important; }

/*a标签*/
.custom-link { color: #0078ffc2; transition: 0.2s ease-in-out; text-decoration: none; }
.custom-link:hover, .custom-link:active, .custom-link:focus { color: #0074f7; text-decoration: none; }

/*选择按钮*/
.checkbox-primary input[type="checkbox"]:checked + label::before { background-color: #0978f5; border-color: #0978f5; }
.checkbox label { color: #565961; position: relative; }
.checkbox label::before { content: ""; display: inline-block; position: absolute; width: 25px; height: 25px; top: -2px; left: 0; margin-top: 0; margin-left: -27px; border: 1px solid #c2c7cd; border-radius: 0.1875rem; background-color: #fff; box-shadow: none; -webkit-transition: border 0.15s ease-in-out, color 0.15s ease-in-out; -o-transition: border 0.15s ease-in-out, color 0.15s ease-in-out; transition: border 0.15s ease-in-out, color 0.15s ease-in-out; }
.checkbox input[type="checkbox"]:checked + label::after { font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f00c"; color: #fff; }
.checkbox label::after { display: inline-block; position: absolute; width: 18px; height: 18px; left: 0; top: 0px; margin-top: 4px; margin-left: -19px; padding-left: 0; padding-top: 0; font-size: 9px; color: #848d96; }

/*验证*/
.login .form-control.is-invalid, .was-validated .form-control:invalid { border-color: #d72f40 !important; background-image: none !important; }
.login .form-control.is-valid, .was-validated .form-control:valid { border-color: #2cb34c !important; background-image: none !important; }

.custom-checkbox.input-validation-error + label::before { border-color: #d72f40 !important; }

/*忘记密码*/
/* 卡片基础样式 */
.forgot-password-card { max-width: 500px; margin: auto; border: none; }

.card-header { background: none; border-bottom: none; padding: 2rem 1.5rem 1rem; }

.card-header h3 { font-weight: 500; color: #333; }

/* 表单元素样式 */
.form-label { color: #555; font-weight: 500; font-size: 0.9rem; }

.form-control { border: 1px solid #e0e0e0; border-radius: 6px; padding: 0.75rem 1rem; transition: all 0.2s ease; }

.form-control:focus { border-color: #0d6efd; box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15); outline: none; }

/* 验证码输入框特殊样式 */
.verification-input { text-align: center; letter-spacing: 2px; font-size: 1.2rem; padding: 0.75rem; }

/* 按钮样式 */
.btn-sender { background-color: #0d6efd !important; color: #fff !important; border: none; padding: 0.75rem; border-radius: 6px; font-weight: 500; transition: all 0.2s ease; }

.btn-sender:hover { transform: translateX(3px); color: #fff; }

/* 文本样式 */
.verification-text { margin-bottom: 0.5rem; font-size: 0.95rem; line-height: 1.4; max-width: 90%; margin-left: auto; margin-right: auto; }

.text-muted { color: #666 !important; }

.text-muted:hover { color: #333 !important; }

/* 步骤导航样式 */
.steps-container { display: flex; justify-content: center; align-items: center; padding: 30px 20px; margin-top: 20px; margin-left: auto; margin-right: auto; }

.step { display: flex; flex-direction: column; align-items: center; position: relative; flex: 1; }

.step-number { width: 32px; height: 32px; border-radius: 50%; background-color: #f0f2f5; color: #8c98a8; display: flex; align-items: center; justify-content: center; font-weight: 500; margin-bottom: 10px; transition: all 0.2s ease; }

.step-line { height: 2px; background-color: #f0f2f5; width: 100%; position: absolute; top: 16px; left: 50%; z-index: -1; }

.step:last-child .step-line { display: none; }

.step-label { font-size: 14px; color: #8c98a8; text-align: center; }

.step.active .step-number,
.step.current .step-number { background-color: #0d6efd; color: white; }

.step.active .step-line { background-color: #0d6efd; }

.step.active .step-label,
.step.current .step-label { color: #0d6efd; font-weight: 500; }
