.login-page { min-height: 100vh; background: #fff; display: flex; flex-direction: column; box-sizing: border-box; } /* 顶部插画区 */ .hero { position: relative; height: 480rpx; background: #E8F2FF; border-radius: 0 0 48rpx 48rpx; overflow: hidden; } .hero-icon { position: absolute; color: #007AFF; opacity: 0.85; } .hero-1 { width: 140rpx; height: 140rpx; left: 60rpx; top: 120rpx; transform: rotate(-12deg); } .hero-2 { width: 120rpx; height: 120rpx; right: 80rpx; top: 80rpx; transform: rotate(10deg); color: #5856D6; } .hero-3 { width: 100rpx; height: 100rpx; left: 160rpx; top: 280rpx; transform: rotate(8deg); } .hero-4 { width: 110rpx; height: 110rpx; right: 170rpx; top: 260rpx; transform: rotate(-6deg); color: #5856D6; } .hero-5 { width: 70rpx; height: 70rpx; right: 60rpx; top: 340rpx; transform: rotate(15deg); } /* 品牌区 */ .brand { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 64rpx; } .brand-logo { width: 128rpx; height: 128rpx; border-radius: 32rpx; background: #007AFF; color: #fff; display: flex; align-items: center; justify-content: center; margin-bottom: 32rpx; box-shadow: 0 16rpx 40rpx rgba(0, 122, 255, 0.25); } .brand-logo .icon { width: 72rpx; height: 72rpx; } .brand-name { font-size: 48rpx; font-weight: 700; color: #000; } .brand-slogan { font-size: 28rpx; color: #8E8E93; margin-top: 16rpx; } /* 底部 */ .login-footer { padding: 0 64rpx; padding-bottom: calc(64rpx + env(safe-area-inset-bottom)); } .login-btn { width: 100%; } .wechat-icon { width: 44rpx; height: 44rpx; margin-right: 12rpx; background-color: #fff; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M9.5 3C5.36 3 2 5.69 2 9c0 1.87 1.03 3.54 2.62 4.65L4 16.5l3.27-1.72c.73.2 1.47.3 2.23.3h.5A6.2 6.2 0 0 1 9 12c0-3.3 3.36-6 7.5-6h.5A5.7 5.7 0 0 0 9.5 3z'/%3E%3Cpath d='M22 12c0-2.76-2.69-5-6-5s-6 2.24-6 5 2.69 5 6 5c.72 0 1.42-.1 2.06-.28L20.5 18l-.42-2.6c1.17-.88 1.92-2.06 1.92-3.4z'/%3E%3C/svg%3E") no-repeat center / 100% 100%; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M9.5 3C5.36 3 2 5.69 2 9c0 1.87 1.03 3.54 2.62 4.65L4 16.5l3.27-1.72c.73.2 1.47.3 2.23.3h.5A6.2 6.2 0 0 1 9 12c0-3.3 3.36-6 7.5-6h.5A5.7 5.7 0 0 0 9.5 3z'/%3E%3Cpath d='M22 12c0-2.76-2.69-5-6-5s-6 2.24-6 5 2.69 5 6 5c.72 0 1.42-.1 2.06-.28L20.5 18l-.42-2.6c1.17-.88 1.92-2.06 1.92-3.4z'/%3E%3C/svg%3E") no-repeat center / 100% 100%; } .agreement { margin-top: 24rpx; font-size: 22rpx; color: #8E8E93; text-align: center; } .link { color: #007AFF; } /* 新手礼包弹窗 */ .gift-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 300; display: flex; align-items: center; justify-content: center; } .gift-card { width: 560rpx; max-height: 80vh; overflow-y: auto; background: #fff; border-radius: 32rpx; padding: 48rpx 40rpx 40rpx; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; } .gift-badge { width: 96rpx; height: 96rpx; border-radius: 50%; background: linear-gradient(135deg, #FF9500, #FF2D55); color: #fff; display: flex; align-items: center; justify-content: center; margin-bottom: 24rpx; } .gift-badge .icon { width: 52rpx; height: 52rpx; } .gift-title { font-size: 36rpx; font-weight: 700; color: #000; } .gift-sub { font-size: 24rpx; color: #8E8E93; margin-top: 8rpx; margin-bottom: 32rpx; } .gift-list { width: 100%; margin-bottom: 40rpx; } .gift-item { display: flex; align-items: center; padding: 22rpx 0; border-bottom: 1rpx solid #F2F2F7; } .gift-item:last-child { border-bottom: none; } .gift-item-icon { width: 40rpx; height: 40rpx; color: #007AFF; margin-right: 20rpx; flex-shrink: 0; } .gift-item-name { flex: 1; font-size: 28rpx; color: #000; } .gift-item-val { font-size: 26rpx; color: #8E8E93; } .gift-btn { width: 100%; }