.login-page { position: relative; min-height: 100vh; padding: 120rpx 48rpx 48rpx; box-sizing: border-box; background: radial-gradient(600rpx 300rpx at 15% 8%, var(--brand-soft), transparent 60%), radial-gradient(600rpx 300rpx at 90% 92%, var(--brand-tint), transparent 60%), #fdfafa; overflow: hidden; } .bg-grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(to right, rgba(230, 57, 70, 0.06) 1rpx, transparent 1rpx), linear-gradient(to bottom, rgba(230, 57, 70, 0.06) 1rpx, transparent 1rpx); background-size: 80rpx 80rpx; } .bg-glow { position: absolute; left: 50%; bottom: -200rpx; transform: translateX(-50%); width: 900rpx; height: 900rpx; border-radius: 50%; background: radial-gradient(circle, rgba(230, 57, 70, 0.18), transparent 70%); pointer-events: none; } .login-card { position: relative; /* background: rgba(255, 255, 255, 0.92); */ /* border-radius: 24rpx; */ padding: 60rpx 48rpx 48rpx; /* box-shadow: 0 20rpx 60rpx rgba(230, 57, 70, 0.12); */ /* border: 1rpx solid rgba(230, 57, 70, 0.08); */ } .brand { text-align: center; margin-bottom: 48rpx; } .logo { display: inline-flex; align-items: center; justify-content: center; width: 120rpx; height: 120rpx; border-radius: 28rpx; background: linear-gradient(135deg, var(--brand), var(--brand-dark)); color: #fff; font-size: 56rpx; font-weight: 600; box-shadow: 0 12rpx 32rpx rgba(230, 57, 70, 0.35); } .title { margin-top: 24rpx; font-size: 40rpx; color: var(--brand); letter-spacing: 4rpx; font-weight: 600; } .subtitle { margin-top: 8rpx; font-size: 24rpx; color: var(--muted); letter-spacing: 2rpx; } .form { display: flex; flex-direction: column; gap: 28rpx; } .field { display: flex; flex-direction: column; gap: 12rpx; } .label { font-size: 26rpx; color: #555; padding-left: 20rpx; } .input { height: 84rpx; padding: 0 24rpx; border: 1rpx solid var(--line); border-radius: 14rpx; font-size: 28rpx; background: #fff; box-sizing: border-box; } .row { display: flex; gap: 16rpx; align-items: center; } .flex-1 { flex: 1; } .code-btn { flex: 0 0 auto; min-width: 0; width: auto; height: 84rpx; line-height: 84rpx; padding: 0 14rpx; border: 1rpx solid var(--brand); color: var(--brand); background: #fff; border-radius: 14rpx; font-size: 22rpx; white-space: nowrap; width: fit-content!important; } .code-btn.disabled { border-color: var(--line); color: var(--muted); } .submit-btn { height: 88rpx; line-height: 88rpx; background: var(--brand); color: #fff; border-radius: 14rpx; font-size: 30rpx; margin-top: 12rpx; box-shadow: 0 8rpx 24rpx rgba(230, 57, 70, 0.28); } .submit-btn.disabled { opacity: 0.6; box-shadow: none; } .tip { margin-top: 16rpx; text-align: center; font-size: 22rpx; color: var(--muted); } .divider { display: flex; align-items: center; gap: 16rpx; margin: 24rpx 0 8rpx; color: var(--muted); font-size: 22rpx; } .divider::before, .divider::after { content: ''; flex: 1; height: 1rpx; background: var(--line); } .wechat-entry { display: flex; flex-direction: column; align-items: center; gap: 12rpx; margin-top: 8rpx; } .wechat-icon-btn { width: 96rpx; height: 96rpx; padding: 0; border-radius: 50%; background: transparent; display: flex; align-items: center; justify-content: center; line-height: normal; } .wechat-icon-btn::after { border: none; } .wechat-icon-btn.disabled { opacity: 0.5; } .wechat-icon-img { width: 96rpx; height: 96rpx; } .wechat-entry-tip { font-size: 24rpx; color: var(--muted); }