@keyframes auth-card-enter{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-page{display:flex;align-items:center;justify-content:center;width:100%;min-height:min(540px,calc(100vh - 145px));padding:12px 16px;animation:auth-card-enter .45s cubic-bezier(.23,1,.32,1) both}.front-layout-content:has(.auth-page){display:flex;align-items:center;justify-content:center;padding-top:12px;padding-bottom:12px;background:linear-gradient(180deg,#f0f5ff,#fafafa 320px)}.front-layout:has(.auth-page) .front-footer{margin-top:0}.auth-card.ant-card{display:flex;flex-direction:column;width:100%;max-width:440px;min-height:min(360px,calc(100vh - 170px));overflow:hidden;border:1px solid #e5e6eb;border-radius:12px;background:#fff;box-shadow:0 2px 12px #1f23290d}.auth-card .ant-card-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:0}.auth-header{position:relative;padding:26px 32px 14px;text-align:center;background:#fff;border-bottom:1px solid #f2f3f5}.auth-header-title{position:relative;z-index:1;font-size:22px;font-weight:700;line-height:30px;letter-spacing:.01em;color:#1677ff}.auth-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:20px 32px 24px}.auth-form{display:flex;flex:1;flex-direction:column;gap:16px}.auth-field{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;column-gap:4px}.auth-label{display:flex;align-items:center;min-height:42px;margin:0;color:#1f2329;font-size:13px;font-weight:500;white-space:nowrap}.auth-required{margin-left:2px;color:#ff4d4f}.auth-card .ant-input{height:42px;border-radius:8px;font-size:14px}.auth-card .ant-input-affix-wrapper{min-height:42px;padding-top:0;padding-bottom:0;border-radius:8px;font-size:14px}.auth-card .ant-input-affix-wrapper .ant-input{height:auto;padding-top:0;padding-bottom:0}.auth-card .ant-input:hover,.auth-card .ant-input-affix-wrapper:hover{border-color:#69b1ff}.auth-card .ant-input:focus,.auth-card .ant-input-affix-wrapper-focused{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.auth-grid-captcha,.auth-grid-email-code{display:grid;align-items:center;gap:12px}.auth-grid-captcha{grid-template-columns:minmax(0,1fr) 120px}.auth-grid-email-code{grid-template-columns:minmax(0,1fr) auto}.auth-captcha-img{width:120px;height:42px;cursor:pointer;border:1px solid #dcdfe6;border-radius:8px;object-fit:cover;transition:border-color .2s ease}.auth-captcha-img:hover{border-color:#1677ff}.auth-register-section{display:flex;flex-direction:column;gap:16px}.auth-message.ant-alert{margin:0;border-radius:8px;font-size:13px}.auth-btn-primary.ant-btn-primary{height:44px;border:0;border-radius:8px;font-size:15px;font-weight:600;background:#1677ff}.auth-btn-primary.ant-btn-primary:hover,.auth-btn-primary.ant-btn-primary:focus-visible{background:#4096ff}.auth-btn-send-code.ant-btn-primary{min-width:116px;height:42px;border-radius:8px;font-size:13px}.auth-btn-toggle.ant-btn{height:42px;color:#4e5969;border-color:#dcdfe6;border-radius:8px;background:#f7f8fa;font-size:14px;font-weight:500}.auth-btn-toggle.ant-btn:hover,.auth-btn-toggle.ant-btn:focus-visible{color:#1677ff;border-color:#69b1ff;background:#f0f7ff}.auth-recovery-action{display:flex;justify-content:flex-end;min-height:20px;margin-top:-8px;margin-bottom:-4px}.auth-forgot-password.ant-btn-link{height:auto;padding:0;color:#86909c;font-size:13px}.auth-forgot-password.ant-btn-link:hover,.auth-forgot-password.ant-btn-link:focus-visible{color:#1677ff}.auth-page--register .auth-card{min-height:min(548px,calc(100vh - 170px))}.auth-page--register .auth-header{padding-top:20px;padding-bottom:10px}.auth-page--register .auth-body{padding-top:14px;padding-bottom:16px}.auth-page--register .auth-form,.auth-page--register .auth-register-section{gap:10px}.auth-page--register .auth-label,.auth-page--register .auth-card .ant-input-affix-wrapper{min-height:38px}.auth-page--register .auth-card .ant-input,.auth-page--register .auth-captcha-img,.auth-page--register .auth-btn-send-code.ant-btn-primary,.auth-page--register .auth-btn-primary.ant-btn-primary,.auth-page--register .auth-btn-toggle.ant-btn{height:38px}.auth-bind-modal .ant-modal-content{border-radius:12px}.auth-bind-modal-grid-captcha,.auth-bind-modal-grid-code{display:grid;align-items:stretch;gap:12px;grid-template-columns:minmax(0,1fr) 132px}.auth-bind-modal-captcha-img{display:block;width:132px;height:40px;cursor:pointer;border:1px solid #dcdfe6;border-radius:8px;object-fit:fill}.auth-bind-modal-captcha-img:hover{border-color:#1677ff}.auth-modal-send-code.ant-btn{width:132px;height:40px;border-radius:8px;font-size:14px;font-weight:500}@media (max-width: 640px){.auth-page{min-height:auto;padding:12px}.auth-card.ant-card{min-height:0;border-radius:10px}.auth-header{padding:20px 20px 12px}.auth-body{padding:18px 20px 20px}.auth-field{grid-template-columns:76px minmax(0,1fr)}.auth-label{font-size:12px}.auth-bind-modal-grid-captcha,.auth-bind-modal-grid-code{grid-template-columns:minmax(0,1fr) 108px;gap:8px}.auth-bind-modal-captcha-img,.auth-modal-send-code.ant-btn{width:108px}}
