.auth-bg{position:relative;min-height:100vh;overflow:hidden;background:#f4f7fd}.auth-bg:after,.auth-bg:before{content:"";position:absolute;border-radius:50%;filter:blur(90px);opacity:.32;z-index:0;pointer-events:none}.auth-bg:before{width:480px;height:480px;background:var(--color-vhu-primary);top:-140px;left:-120px;animation:authBlobFloat1 18s ease-in-out infinite}.auth-bg:after{width:420px;height:420px;background:var(--color-vhu-accent);bottom:-150px;right:-100px;animation:authBlobFloat2 20s ease-in-out infinite}@keyframes authBlobFloat1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,40px) scale(1.12)}}@keyframes authBlobFloat2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,-30px) scale(1.15)}}.auth-bg>*{position:relative;z-index:1}.auth-bg .ant-btn{transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.auth-bg .ant-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.015);box-shadow:0 6px 16px rgba(29,65,138,.18)}.auth-bg .ant-btn:active:not(:disabled){transform:scale(.97)}.auth-bg .ant-btn-loading{opacity:.85}.auth-bg .ant-input,.auth-bg .ant-input-affix-wrapper{transition:border-color .2s ease,box-shadow .2s ease}.auth-bg .ant-input-affix-wrapper-focused,.auth-bg .ant-input-affix-wrapper:focus-within{box-shadow:0 0 0 3px rgba(29,65,138,.12)!important;border-color:var(--color-vhu-primary)!important}.auth-back-btn{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:9px 18px 9px 14px;margin-bottom:12px;border-radius:999px;background:#ffffff;border:1px solid #e5e7eb;color:var(--color-vhu-primary);font-weight:600;font-size:14px;text-decoration:none;box-shadow:0 1px 3px rgba(17,24,39,.08);transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.auth-back-btn:hover{background:#f4f7fd;box-shadow:0 6px 14px rgba(29,65,138,.18);transform:translateY(-1px)}.auth-steps{display:flex;align-items:center;gap:8px;margin-bottom:8px}.auth-steps__label{font-size:13px;font-weight:600;color:var(--color-vhu-primary);margin-right:2px}.auth-steps__dot{height:6px;width:8px;border-radius:999px;background:#d8dee9;transition:width .25s ease,background .25s ease}.auth-steps__dot--active{width:26px;background:var(--color-vhu-primary)}@keyframes authEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.auth-enter{animation:authEnter .45s cubic-bezier(.22,1,.36,1) both}