|
|
/* pages/login/login.wxss */
.login-container { height: 100vh; width: 100%; position: relative; overflow: hidden; background: linear-gradient(180deg, #f8fafc 0%, #f0f9ff 100%);}
/* 波浪背景 */.wave-background { position: absolute; top: 0; left: 0; width: 100%; height: 400rpx; overflow: hidden;}
.wave { position: absolute; bottom: 0; width: 200%; height: 100%; background: linear-gradient(90deg, #86D8D0 0%, #A8E6CF 100%); border-radius: 0 0 50% 50%; animation: waveMove 15s linear infinite;}
.wave-1 { opacity: 0.7; animation-delay: 0s;}
.wave-2 { opacity: 0.5; animation-delay: 5s; background: linear-gradient(90deg, #7ACCC4 0%, #98D6C6 100%);}
.wave-3 { opacity: 0.3; animation-delay: 10s; background: linear-gradient(90deg, #6EC0B8 0%, #88C6BD 100%);}
@keyframes waveMove { 0% { transform: translateX(0) rotate(0deg); }
50% { transform: translateX(-25%) rotate(1deg); }
100% { transform: translateX(-50%) rotate(0deg); }}
/* 装饰元素 */.decorations { position: absolute; width: 100%; height: 100%; pointer-events: none;}
.cloud { position: absolute; background-color: rgba(255, 255, 255, 0.9); border-radius: 100rpx;}
.cloud-1 { width: 120rpx; height: 40rpx; top: 120rpx; left: 10%; box-shadow: 20rpx 0 0 0 rgba(255, 255, 255, 0.9), 40rpx 0 0 0 rgba(255, 255, 255, 0.9);}
.cloud-2 { width: 90rpx; height: 30rpx; top: 80rpx; right: 15%; box-shadow: 15rpx 0 0 0 rgba(255, 255, 255, 0.9), 30rpx 0 0 0 rgba(255, 255, 255, 0.9);}
.cloud-3 { width: 70rpx; height: 25rpx; top: 180rpx; left: 70%; box-shadow: 12rpx 0 0 0 rgba(255, 255, 255, 0.9), 24rpx 0 0 0 rgba(255, 255, 255, 0.9);}
.grass { position: absolute; bottom: 0; width: 8rpx; background-color: #86D8D0; border-radius: 4rpx 4rpx 0 0;}
.grass-1 { height: 80rpx; left: 20%;}
.grass-2 { height: 60rpx; left: 35%;}
.grass-3 { height: 100rpx; left: 50%;}
.grass:before,.grass:after { content: ''; position: absolute; width: 8rpx; background-color: #86D8D0; border-radius: 4rpx;}
.grass:before { height: 40rpx; transform: rotate(-30deg); top: -20rpx; left: -10rpx;}
.grass:after { height: 30rpx; transform: rotate(30deg); top: -15rpx; right: -10rpx;}
.sheep { position: absolute; bottom: 120rpx; right: 20%; width: 80rpx; height: 50rpx; background-color: white; border-radius: 50%; box-shadow: -15rpx -10rpx 0 0 white, 15rpx -8rpx 0 0 white;}
.sheep:before { content: ''; position: absolute; width: 20rpx; height: 20rpx; background-color: #333; border-radius: 50%; top: -5rpx; left: 15rpx;}
/* 主要内容区域 */.main-content { position: relative; z-index: 10; height: 100%; display: flex; flex-direction: column; padding: 0 60rpx; padding-top: 120rpx;}
/* Logo区域 */.logo-section { display: flex; flex-direction: column; align-items: center; margin-bottom: 120rpx;}
.logo-container { margin-bottom: 40rpx;}
.logo-circle { width: 180rpx; height: 180rpx; border-radius: 50%; background: linear-gradient(135deg, #86D8D0 0%, #6BC4BC 100%); display: flex; align-items: center; justify-content: center; box-shadow: 0 20rpx 40rpx rgba(134, 216, 208, 0.3), inset 0 -4rpx 8rpx rgba(107, 196, 188, 0.4), inset 0 4rpx 8rpx rgba(255, 255, 255, 0.8); position: relative;}
.logo-circle:before { content: ''; position: absolute; width: 160rpx; height: 160rpx; border-radius: 50%; border: 2rpx solid rgba(255, 255, 255, 0.3);}
.logo-inner { width: 140rpx; height: 140rpx; border-radius: 50%; background: white; display: flex; align-items: center; justify-content: center; box-shadow: inset 0 4rpx 8rpx rgba(134, 216, 208, 0.2), 0 4rpx 8rpx rgba(0, 0, 0, 0.1);}
.logo-text { font-size: 64rpx; font-weight: bold; color: #86D8D0; letter-spacing: 4rpx;}
.app-title { font-size: 56rpx; font-weight: 700; color: #333; margin-bottom: 16rpx; letter-spacing: 2rpx;}
/* 登录区域 */.login-section { display: flex; flex-direction: column; align-items: center;}
.welcome-text { text-align: center; margin-bottom: 80rpx;}
.welcome-main { display: block; font-size: 44rpx; font-weight: 600; color: #333; margin-bottom: 16rpx;}
.welcome-desc { display: block; font-size: 28rpx; color: #888; font-weight: 300;}
/* 手机号登录按钮 */.phone-login-btn { width: 100%; height: 100rpx; border-radius: 50rpx; background: linear-gradient(to right, #86D8D0, #6BC4BC); box-shadow: 0 12rpx 24rpx rgba(134, 216, 208, 0.3), 0 4rpx 12rpx rgba(0, 0, 0, 0.08); margin-bottom: 50rpx; transition: all 0.3s ease;}
.phone-btn-hover { transform: translateY(-4rpx); box-shadow: 0 16rpx 32rpx rgba(134, 216, 208, 0.4), 0 6rpx 16rpx rgba(0, 0, 0, 0.12);}
.btn-inner { display: flex; align-items: center; justify-content: center; height: 100%;}
.btn-inner image { width: 45rpx; height: 45rpx; padding: 0 20rpx;}
.btn-text { color: white; font-size: 34rpx; font-weight: 500; letter-spacing: 2rpx;}
/* 协议确认 */.agreement-section { display: flex; align-items: center; justify-content: center;}
.agreement-checkbox { width: 30rpx; height: 30rpx; border: 2rpx solid #ccc; border-radius: 6rpx; margin-right: 16rpx; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease;}
.agreement-checkbox.checked { background-color: #86D8D0; border-color: #86D8D0;}
.checkmark { color: white; font-size: 24rpx; font-weight: bold;}
.agreement-text { font-size: 24rpx; color: #888; display: flex; align-items: center;}
.link { color: #86D8D0;}
/* 底部装饰 */.bottom-decor { position: absolute; bottom: 0; left: 0; width: 100%; height: 60rpx; overflow: hidden;}
.bottom-wave { position: absolute; top: 0; left: 0; width: 200%; height: 200%; background: linear-gradient(90deg, #86D8D0 0%, #A8E6CF 100%); border-radius: 50% 50% 0 0; animation: bottomWave 20s linear infinite;}
@keyframes bottomWave { 0% { transform: translateX(0) rotate(0deg); }
50% { transform: translateX(-25%) rotate(0.5deg); }
100% { transform: translateX(-50%) rotate(0deg); }}
/* 协议弹窗 */.agreement-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; display: flex; align-items: center; justify-content: center;}
.modal-mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5);}
.modal-content { position: relative; width: 85%; max-height: 80%; background-color: white; border-radius: 24rpx; overflow: hidden; box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.15);}
.modal-header { padding: 40rpx; border-bottom: 1rpx solid #f0f0f0; display: flex; align-items: center; justify-content: space-between;}
.modal-title { font-size: 36rpx; font-weight: 600; color: #333;}
.modal-close { font-size: 48rpx; color: #999; line-height: 1;}
.modal-body { max-height: 600rpx; padding: 20rpx; box-sizing: border-box;}
.modal-text { font-size: 28rpx; color: #666; line-height: 1.8; padding: 20rpx 0;}
/* 加载提示 */.loading-mask { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; display: flex; align-items: center; justify-content: center;}
.loading-content { display: flex; flex-direction: column; align-items: center;}
.loading-spinner { width: 80rpx; height: 80rpx; border: 6rpx solid rgba(134, 216, 208, 0.2); border-top-color: #86D8D0; border-radius: 50%; animation: loadingSpin 1s linear infinite; margin-bottom: 30rpx;}
@keyframes loadingSpin { 0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }}
.loading-text { font-size: 28rpx; color: #fff; font-weight: 300;}
|