Files
Wechat/pages/dashouchongzhi/dashouchongzhi.wxss

1705 lines
33 KiB
Plaintext

/* pages/dashou-chongzhi/index.wxss - 完整保留原有样式,仅删除导航栏相关,调整间距和字体 */
/* ==================== 基础样式 ==================== */
.page-container {
min-height: 100vh;
background: linear-gradient(135deg, #0a0e2a 0%, #1a1f4e 30%, #0a0e2a 100%);
position: relative;
overflow-x: hidden;
padding-bottom: 40rpx;
}
.page-container::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(64, 156, 255, 0.1) 0%, transparent 50%),
radial-gradient(circle at 80% 70%, rgba(138, 43, 226, 0.08) 0%, transparent 50%),
linear-gradient(45deg, transparent 49%, rgba(64, 156, 255, 0.05) 50%, transparent 51%),
linear-gradient(-45deg, transparent 49%, rgba(64, 156, 255, 0.05) 50%, transparent 51%);
background-size: 100% 100%, 100% 100%, 60rpx 60rpx, 60rpx 60rpx;
z-index: 0;
pointer-events: none;
}
/* ❌ 删除 .custom-navbar 及其所有子样式 */
/* 顶部三区域网格 */
.tech-grid {
display: flex;
justify-content: space-between;
padding: 20rpx 30rpx;
gap: 20rpx;
position: relative;
z-index: 1;
}
/* 科技卡片 */
.tech-card {
flex: 1;
background: rgba(16, 20, 48, 0.8);
border-radius: 20rpx;
padding: 20rpx 25rpx;
position: relative;
overflow: hidden;
border: 1px solid rgba(64, 156, 255, 0.2);
box-shadow:
0 10rpx 30rpx rgba(0, 10, 30, 0.5),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
min-height: 260rpx;
display: flex;
flex-direction: column;
}
.tech-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 20rpx;
padding: 2rpx;
background: linear-gradient(135deg,
rgba(64, 156, 255, 0.4) 0%,
rgba(64, 156, 255, 0.1) 50%,
rgba(64, 156, 255, 0.4) 100%);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
}
/* 卡片头部 */
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
padding: 0 5rpx;
}
.card-title {
display: flex;
align-items: center;
gap: 12rpx;
flex: 1;
white-space: nowrap;
}
.title-icon {
width: 32rpx;
height: 32rpx;
filter: drop-shadow(0 0 8rpx rgba(64, 156, 255, 0.6));
}
.title-text {
font-size: 26rpx;
font-weight: bold;
color: #e0f0ff;
text-shadow: 0 0 10rpx rgba(64, 156, 255, 0.5);
white-space: nowrap;
}
/* ===== 会员区域(优化后) ===== */
.huiyuan-scroll {
flex: 1;
margin-bottom: 15rpx;
overflow-y: scroll;
}
.huiyuan-item {
margin-bottom: 12rpx;
}
.huiyuan-tag {
background: linear-gradient(90deg,
rgba(64, 156, 255, 0.15),
rgba(64, 156, 255, 0.08));
border: 1px solid rgba(64, 156, 255, 0.3);
border-radius: 16rpx;
padding: 15rpx 20rpx;
position: relative;
overflow: hidden;
min-height: 70rpx;
display: flex;
flex-direction: column;
justify-content: center;
}
.tag-triangle {
position: absolute;
top: 10rpx;
left: 10rpx;
width: 0;
height: 0;
border-top: 10rpx solid #409cff;
border-right: 10rpx solid transparent;
}
.tag-name {
display: block;
font-size: 24rpx;
color: #fff;
font-weight: bold;
margin-bottom: 5rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.tag-time {
display: block;
font-size: 20rpx;
color: #ffd166;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.tag-glow {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.15),
transparent);
animation: techGlide 3s infinite;
}
.empty-huiyuan {
height: 100rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.empty-icon {
width: 50rpx;
height: 50rpx;
opacity: 0.5;
margin-bottom: 8rpx;
}
.empty-text {
color: #6688cc;
font-size: 22rpx;
}
.card-footer {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: auto;
padding-top: 10rpx;
}
.footer-text {
font-size: 20rpx;
color: #a0c8ff;
}
.footer-line {
flex: 1;
height: 1px;
background: linear-gradient(90deg,
rgba(64, 156, 255, 0.3),
transparent);
margin-left: 15rpx;
}
/* 押金区域 */
.yajin-display {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 15rpx 0;
}
.amount-container {
display: flex;
align-items: baseline;
margin-bottom: 8rpx;
}
.amount-symbol {
font-size: 28rpx;
color: #ffd166;
margin-right: 6rpx;
}
.amount-number {
font-size: 56rpx;
font-weight: bold;
background: linear-gradient(90deg, #40a9ff, #36cfc9);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
text-shadow: 0 0 20rpx rgba(64, 169, 255, 0.4);
}
.amount-unit {
font-size: 22rpx;
color: #a0c8ff;
}
.tech-line {
height: 2rpx;
background: linear-gradient(90deg,
transparent,
rgba(64, 156, 255, 0.5),
transparent);
margin: 15rpx 0;
}
/* 积分区域 */
.jifen-card .card-title {
flex-direction: row;
}
.score-badge {
background: rgba(64, 156, 255, 0.2);
border: 1px solid rgba(64, 156, 255, 0.5);
padding: 5rpx 14rpx;
border-radius: 20rpx;
font-size: 22rpx;
color: #409cff;
font-weight: bold;
}
.jifen-display {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 10rpx 0;
}
.circle-progress {
width: 140rpx;
height: 140rpx;
position: relative;
margin-bottom: 20rpx;
}
.circle-bg {
width: 100%;
height: 100%;
border: 6rpx solid rgba(255, 255, 255, 0.05);
border-radius: 50%;
box-sizing: border-box;
}
.circle-mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 6rpx solid transparent;
border-top-color: #409cff;
border-right-color: #409cff;
border-radius: 50%;
box-sizing: border-box;
transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.circle-fill {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 6rpx solid transparent;
border-top-color: #36cfc9;
border-right-color: #36cfc9;
border-radius: 50%;
box-sizing: border-box;
transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
filter: drop-shadow(0 0 15rpx rgba(54, 207, 201, 0.6));
}
.circle-center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
.jifen-value {
display: block;
font-size: 42rpx;
font-weight: bold;
color: #fff;
text-shadow: 0 0 10rpx rgba(64, 156, 255, 0.8);
}
.jifen-label {
display: block;
font-size: 20rpx;
color: #a0c8ff;
margin-top: 5rpx;
}
.circle-dots {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.circle-dot {
position: absolute;
top: 0;
left: 50%;
width: 5rpx;
height: 5rpx;
background: rgba(64, 156, 255, 0.6);
border-radius: 50%;
transform-origin: 0 70rpx;
}
.jifen-status {
text-align: center;
}
.status-text {
font-size: 22rpx;
color: #ff9d66;
}
.status-text.full {
color: #36cfc9;
}
/* 科技按钮 */
.action-container {
margin-top: auto;
}
.tech-btn {
height: 70rpx;
border-radius: 35rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
font-size: 26rpx;
font-weight: bold;
color: #fff;
transition: all 0.3s ease;
line-height: 1;
}
.tech-btn:active {
transform: scale(0.98);
}
.btn-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 35rpx;
}
.yajin-btn .btn-bg {
background: linear-gradient(135deg, #1e4b8f, #409cff);
}
.jifen-btn .btn-bg {
background: linear-gradient(135deg, #0f2c5c, #36cfc9);
}
.jifen-btn[data-disabled="true"] .btn-bg {
background: linear-gradient(135deg, #333, #666);
opacity: 0.7;
}
.btn-text {
position: relative;
z-index: 1;
display: flex;
align-items: center;
gap: 8rpx;
text-align: center;
width: 100%;
justify-content: center;
height: 100%;
}
.btn-arrow {
font-size: 22rpx;
margin-left: 6rpx;
color: #fff;
}
.btn-energy {
position: absolute;
top: 50%;
right: 25rpx;
transform: translateY(-50%);
display: flex;
gap: 4rpx;
}
.btn-energy .energy-dot {
width: 6rpx;
height: 6rpx;
background: #ffd166;
border-radius: 50%;
animation: energyPulse 1s infinite;
}
.btn-energy .energy-dot:nth-child(2) { animation-delay: 0.2s; }
.btn-energy .energy-dot:nth-child(3) { animation-delay: 0.4s; }
.btn-glow {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.3),
transparent);
animation: techShine 2s infinite;
}
/* VIP会员区域 */
.vip-section {
margin: 30rpx 30rpx; /* 🔥 移除导航栏后,无需额外 margin-top */
background: rgba(16, 20, 48, 0.8);
border-radius: 30rpx;
padding: 30rpx;
border: 1px solid rgba(64, 156, 255, 0.2);
box-shadow:
0 20rpx 40rpx rgba(0, 10, 30, 0.6),
inset 0 1px 0 rgba(255, 255, 255, 0.1);
position: relative;
z-index: 1;
}
.section-header {
text-align: center;
margin-bottom: 40rpx;
}
.header-decoration {
display: flex;
align-items: center;
justify-content: center;
gap: 15rpx;
margin-bottom: 12rpx;
}
.dec-line {
width: 50rpx;
height: 2rpx;
background: linear-gradient(90deg,
rgba(64, 156, 255, 0.5),
rgba(64, 156, 255, 0.1));
}
.dec-diamond {
width: 14rpx;
height: 14rpx;
background: #409cff;
transform: rotate(45deg);
box-shadow: 0 0 10rpx rgba(64, 156, 255, 0.6);
}
.dec-text {
font-size: 32rpx;
font-weight: bold;
background: linear-gradient(90deg, #40a9ff, #36cfc9);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
text-shadow: 0 0 20rpx rgba(64, 169, 255, 0.4);
}
.section-subtitle {
font-size: 22rpx;
color: #a0c8ff;
letter-spacing: 4rpx;
}
/* 会员卡片滑动区域 */
.vip-swiper {
height: 350rpx;
margin-bottom: 40rpx;
}
.vip-card {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
position: relative;
}
.vip-card.active {
transform: scale(1.08);
z-index: 10;
}
.vip-card:not(.active) {
opacity: 0.6;
transform: scale(0.85);
}
/* 机甲风格卡片边框 */
.card-frame {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.frame-corner {
position: absolute;
width: 40rpx;
height: 40rpx;
}
.frame-corner.tl {
top: 0;
left: 0;
border-top: 4rpx solid #409cff;
border-left: 4rpx solid #409cff;
border-top-left-radius: 20rpx;
}
.frame-corner.tr {
top: 0;
right: 0;
border-top: 4rpx solid #409cff;
border-right: 4rpx solid #409cff;
border-top-right-radius: 20rpx;
}
.frame-corner.bl {
bottom: 0;
left: 0;
border-bottom: 4rpx solid #409cff;
border-left: 4rpx solid #409cff;
border-bottom-left-radius: 20rpx;
}
.frame-corner.br {
bottom: 0;
right: 0;
border-bottom: 4rpx solid #409cff;
border-right: 4rpx solid #409cff;
border-bottom-right-radius: 20rpx;
}
.frame-line {
position: absolute;
background: rgba(64, 156, 255, 0.3);
}
.frame-line.top {
top: 0;
left: 40rpx;
right: 40rpx;
height: 2rpx;
}
.frame-line.right {
right: 0;
top: 40rpx;
bottom: 40rpx;
width: 2rpx;
}
.frame-line.bottom {
bottom: 0;
left: 40rpx;
right: 40rpx;
height: 2rpx;
}
.frame-line.left {
left: 0;
top: 40rpx;
bottom: 40rpx;
width: 2rpx;
}
.vip-card.active .frame-corner {
border-color: #36cfc9;
}
.vip-card.active .frame-line {
background: rgba(54, 207, 201, 0.5);
}
.card-content {
position: relative;
z-index: 1;
text-align: center;
padding: 30rpx 25rpx;
width: 100%;
}
.vip-badge {
position: absolute;
top: 25rpx;
right: 25rpx;
background: linear-gradient(135deg, #ff6b9d, #ff8e53);
padding: 5rpx 14rpx;
border-radius: 20rpx;
font-size: 20rpx;
color: #fff;
font-weight: bold;
box-shadow: 0 0 15rpx rgba(255, 107, 157, 0.4);
z-index: 20;
}
.vip-title {
margin-bottom: 25rpx;
}
.title-text {
display: block;
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 8rpx;
text-shadow: 0 0 10rpx rgba(64, 156, 255, 0.8);
}
.title-underline {
width: 50rpx;
height: 4rpx;
background: linear-gradient(90deg, #409cff, #36cfc9);
margin: 0 auto;
border-radius: 2rpx;
}
.vip-price {
margin-bottom: 30rpx;
}
.price-symbol {
font-size: 26rpx;
color: #ffd166;
margin-right: 5rpx;
}
.price-number {
font-size: 50rpx;
font-weight: bold;
color: #ffd166;
text-shadow: 0 0 15rpx rgba(255, 209, 102, 0.6);
}
.price-unit {
font-size: 22rpx;
color: #a0c8ff;
margin-left: 6rpx;
}
.vip-features {
margin-top: 25rpx;
}
.feature-item {
display: flex;
align-items: center;
justify-content: center;
gap: 8rpx;
margin-bottom: 12rpx;
}
.feature-icon {
width: 20rpx;
height: 20rpx;
}
.feature-text {
font-size: 22rpx;
color: #e0f0ff;
}
.card-indicator {
position: absolute;
bottom: -35rpx;
left: 50%;
transform: translateX(-50%);
}
.indicator-triangle {
width: 0;
height: 0;
border-left: 15rpx solid transparent;
border-right: 15rpx solid transparent;
border-top: 25rpx solid #409cff;
filter: drop-shadow(0 5rpx 5rpx rgba(0, 0, 0, 0.3));
}
.indicator-glow {
position: absolute;
top: -25rpx;
left: 50%;
transform: translateX(-50%);
width: 30rpx;
height: 30rpx;
background: radial-gradient(circle, rgba(64, 156, 255, 0.6), transparent 70%);
border-radius: 50%;
animation: pulseGlow 2s infinite;
}
/* 会员详细介绍 */
.vip-detail {
background: rgba(10, 14, 42, 0.9);
border-radius: 20rpx;
padding: 25rpx;
border: 1px solid rgba(64, 156, 255, 0.3);
}
.detail-header {
display: flex;
align-items: center;
gap: 15rpx;
margin-bottom: 25rpx;
}
.detail-icon {
width: 36rpx;
height: 36rpx;
filter: drop-shadow(0 0 8rpx rgba(64, 156, 255, 0.6));
}
.detail-title .title-text {
font-size: 28rpx;
color: #e0f0ff;
text-shadow: 0 0 10rpx rgba(64, 156, 255, 0.5);
}
.detail-tech {
flex: 1;
height: 2rpx;
background: linear-gradient(90deg, rgba(64, 156, 255, 0.5), transparent);
}
.detail-content {
margin-bottom: 30rpx;
}
.detail-scroll {
max-height: 180rpx;
}
.detail-text {
font-size: 24rpx;
color: #b8d4ff;
line-height: 1.5;
margin-bottom: 25rpx;
}
.detail-rules {
margin-top: 25rpx;
}
.rule-item {
display: flex;
align-items: flex-start;
gap: 15rpx;
margin-bottom: 15rpx;
}
.rule-number {
width: 32rpx;
height: 32rpx;
background: rgba(64, 156, 255, 0.2);
border: 1px solid rgba(64, 156, 255, 0.5);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 20rpx;
color: #409cff;
flex-shrink: 0;
font-weight: bold;
}
.rule-text {
font-size: 22rpx;
color: #a0c8ff;
line-height: 1.4;
flex: 1;
}
/* 购买区域 */
.buy-section {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 25rpx;
border-top: 1px solid rgba(64, 156, 255, 0.2);
}
.buy-info {
display: flex;
flex-direction: column;
}
.price-display {
display: flex;
align-items: baseline;
gap: 8rpx;
margin-bottom: 8rpx;
}
.price-label {
font-size: 24rpx;
color: #a0c8ff;
}
.price-value {
font-size: 32rpx;
font-weight: bold;
color: #ffd166;
text-shadow: 0 0 10rpx rgba(255, 209, 102, 0.4);
}
.buy-desc {
font-size: 20rpx;
color: #6688cc;
}
/* 🔥 新增:到期日期文字加大 */
.expire-date {
font-size: 26rpx;
color: #ffd166;
font-weight: bold;
}
/* 购买按钮 */
.tech-buy-btn {
width: 220rpx;
height: 80rpx;
border-radius: 40rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
font-size: 28rpx;
font-weight: bold;
color: #fff;
transition: all 0.3s ease;
line-height: 1;
}
.tech-buy-btn:active {
transform: scale(0.98);
}
.buy-btn-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: 40rpx;
background: linear-gradient(135deg, #1e4b8f, #409cff);
}
.tech-buy-btn.renew .buy-btn-bg {
background: linear-gradient(135deg, #0f2c5c, #36cfc9);
}
.buy-btn-glow {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.3),
transparent);
animation: techShine 2s infinite;
}
.buy-btn-text {
position: relative;
z-index: 1;
display: flex;
align-items: center;
gap: 10rpx;
text-align: center;
width: 100%;
justify-content: center;
height: 100%;
}
.buy-btn-energy {
position: absolute;
top: 50%;
right: 25rpx;
transform: translateY(-50%);
display: flex;
flex-direction: column;
gap: 3rpx;
}
.buy-btn-energy .energy-dot {
width: 5rpx;
height: 5rpx;
background: #ffd166;
border-radius: 50%;
animation: energyPulse 1s infinite;
}
.buy-btn-energy .energy-dot:nth-child(2) { animation-delay: 0.2s; }
.buy-btn-energy .energy-dot:nth-child(3) { animation-delay: 0.4s; }
/* ==================== 弹窗样式(保留原有,删除 tip-content 相关) ==================== */
.tech-modal {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
.modal-backdrop {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 5, 20, 0.85);
backdrop-filter: blur(10rpx);
}
.modal-container {
width: 650rpx;
background: rgba(16, 20, 48, 0.95);
border-radius: 30rpx;
border: 2px solid rgba(64, 156, 255, 0.4);
box-shadow:
0 30rpx 80rpx rgba(0, 10, 30, 0.8),
0 0 0 1px rgba(64, 156, 255, 0.2) inset;
position: relative;
z-index: 1;
overflow: hidden;
}
.modal-header {
padding: 40rpx 40rpx 30rpx;
text-align: center;
position: relative;
}
.modal-corner {
position: absolute;
width: 30rpx;
height: 30rpx;
}
.modal-corner.tl {
top: 10rpx;
left: 10rpx;
border-top: 3rpx solid #409cff;
border-left: 3rpx solid #409cff;
border-top-left-radius: 10rpx;
}
.modal-corner.tr {
top: 10rpx;
right: 10rpx;
border-top: 3rpx solid #409cff;
border-right: 3rpx solid #409cff;
border-top-right-radius: 10rpx;
}
.modal-corner.bl {
bottom: 10rpx;
left: 10rpx;
border-bottom: 3rpx solid #409cff;
border-left: 3rpx solid #409cff;
border-bottom-left-radius: 10rpx;
}
.modal-corner.br {
bottom: 10rpx;
right: 10rpx;
border-bottom: 3rpx solid #409cff;
border-right: 3rpx solid #409cff;
border-bottom-left-radius: 10rpx;
}
.modal-title {
display: block;
font-size: 36rpx;
font-weight: bold;
background: linear-gradient(90deg, #40a9ff, #36cfc9);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
margin-bottom: 10rpx;
text-shadow: 0 0 20rpx rgba(64, 169, 255, 0.4);
}
.modal-subtitle {
display: block;
font-size: 22rpx;
color: #a0c8ff;
letter-spacing: 4rpx;
}
.modal-close {
position: absolute;
top: 30rpx;
right: 30rpx;
width: 60rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #6688cc;
cursor: pointer;
transition: all 0.3s ease;
}
.modal-close:active {
transform: scale(0.9);
}
.modal-body {
padding: 0 40rpx 40rpx;
}
/* 输入框区域(押金弹窗) */
.input-section {
margin-bottom: 40rpx;
}
.input-label {
display: flex;
align-items: center;
gap: 15rpx;
margin-bottom: 25rpx;
}
.label-icon {
width: 32rpx;
height: 32rpx;
filter: drop-shadow(0 0 8rpx rgba(64, 156, 255, 0.6));
}
.label-text {
font-size: 28rpx;
color: #e0f0ff;
font-weight: bold;
}
.input-container {
display: flex;
align-items: center;
background: rgba(10, 14, 42, 0.8);
border-radius: 20rpx;
border: 1px solid rgba(64, 156, 255, 0.5);
padding: 25rpx 30rpx;
margin-bottom: 20rpx;
position: relative;
}
.input-prefix {
font-size: 40rpx;
color: #ffd166;
margin-right: 20rpx;
font-weight: bold;
}
.yajin-input {
flex: 1;
font-size: 40rpx;
color: #fff;
min-height: 60rpx;
}
.input-placeholder {
color: #6688cc;
font-size: 28rpx;
}
.input-underline {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 2rpx;
background: linear-gradient(90deg, #409cff, #36cfc9);
transform: scaleX(0);
transition: transform 0.3s ease;
}
.yajin-input:focus + .input-underline {
transform: scaleX(1);
}
.input-tip {
display: block;
font-size: 22rpx;
color: #a0c8ff;
text-align: right;
}
.quick-section {
margin-top: 40rpx;
}
.quick-title {
display: block;
font-size: 26rpx;
color: #e0f0ff;
margin-bottom: 25rpx;
font-weight: bold;
}
.quick-buttons {
display: flex;
gap: 20rpx;
}
.quick-btn {
flex: 1;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
background: rgba(10, 14, 42, 0.8);
border: 1px solid rgba(64, 156, 255, 0.3);
border-radius: 15rpx;
font-size: 26rpx;
color: #a0c8ff;
transition: all 0.3s ease;
}
.quick-btn.active {
background: linear-gradient(135deg, #1e4b8f, #409cff);
color: #fff;
border-color: rgba(64, 156, 255, 0.8);
box-shadow: 0 0 20rpx rgba(64, 156, 255, 0.4);
transform: translateY(-2rpx);
}
.quick-text {
font-weight: bold;
}
.modal-footer {
display: flex;
border-top: 1px solid rgba(64, 156, 255, 0.3);
}
.modal-btn {
flex: 1;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.cancel-btn {
color: #a0c8ff;
background: rgba(10, 14, 42, 0.5);
}
.cancel-btn:active {
background: rgba(10, 14, 42, 0.8);
}
.modal-divider {
width: 1px;
background: rgba(64, 156, 255, 0.3);
}
.confirm-btn {
background: linear-gradient(135deg, #1e4b8f, #409cff);
color: #fff;
}
.confirm-btn:active {
background: linear-gradient(135deg, #0f2c5c, #3080e0);
}
.btn-sparkle {
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent);
animation: techShine 2s infinite;
}
/* 支付方式选择弹窗(小尺寸) */
.modal-container.small {
width: 550rpx;
}
.pay-method-list {
padding: 20rpx 0;
}
.pay-method-item {
display: flex;
align-items: center;
padding: 30rpx 20rpx;
background: rgba(10, 14, 42, 0.5);
border: 1px solid rgba(64, 156, 255, 0.2);
border-radius: 20rpx;
margin-bottom: 20rpx;
transition: all 0.2s;
}
.pay-method-item:active {
background: rgba(64, 156, 255, 0.1);
border-color: rgba(64, 156, 255, 0.5);
transform: scale(0.98);
}
.method-icon {
width: 60rpx;
height: 60rpx;
margin-right: 20rpx;
}
.method-name {
flex: 1;
font-size: 30rpx;
color: #e0f0ff;
font-weight: bold;
}
.method-desc {
font-size: 24rpx;
color: #a0c8ff;
margin-right: 10rpx;
}
/* 余额抵扣身份列表 */
.balance-list {
max-height: 600rpx;
overflow-y: auto;
}
.balance-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 20rpx;
background: rgba(10, 14, 42, 0.5);
border: 1px solid rgba(64, 156, 255, 0.2);
border-radius: 20rpx;
margin-bottom: 20rpx;
transition: all 0.2s;
}
.balance-item:active {
background: rgba(64, 156, 255, 0.1);
border-color: rgba(64, 156, 255, 0.5);
transform: scale(0.98);
}
.balance-info {
display: flex;
flex-direction: column;
}
.balance-name {
font-size: 28rpx;
color: #e0f0ff;
font-weight: bold;
margin-bottom: 8rpx;
}
.balance-amount {
font-size: 24rpx;
color: #ffd166;
}
.balance-arrow {
font-size: 32rpx;
color: #409cff;
transform: scaleX(1.2);
}
/* 会员详情弹窗 */
.member-detail {
padding: 30rpx 20rpx;
}
.detail-row {
display: flex;
align-items: baseline;
margin-bottom: 25rpx;
padding-bottom: 15rpx;
border-bottom: 1px solid rgba(64, 156, 255, 0.2);
}
.detail-row:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
.detail-label {
width: 150rpx;
font-size: 28rpx;
color: #a0c8ff;
}
.detail-value {
flex: 1;
font-size: 30rpx;
color: #ffd166;
font-weight: bold;
}
/* ❌ 删除 .tip-content 等相关样式 */
/* ==================== 加载动画 ==================== */
.tech-loading {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
}
.loading-backdrop {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 5, 20, 0.9);
backdrop-filter: blur(20rpx);
}
.loading-content {
position: relative;
z-index: 1;
text-align: center;
}
.loading-spinner {
width: 150rpx;
height: 150rpx;
position: relative;
margin: 0 auto 40rpx;
}
.spinner-ring {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border: 8rpx solid transparent;
border-radius: 50%;
animation: spinRing 2s linear infinite;
}
.spinner-ring.ring-1 {
border-top-color: #409cff;
animation-delay: 0s;
}
.spinner-ring.ring-2 {
border-right-color: #36cfc9;
animation-delay: 0.5s;
}
.spinner-ring.ring-3 {
border-bottom-color: #ffd166;
animation-delay: 1s;
}
.spinner-core {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 40rpx;
height: 40rpx;
background: radial-gradient(circle, #409cff, #1e4b8f);
border-radius: 50%;
box-shadow: 0 0 30rpx rgba(64, 156, 255, 0.8);
}
.spinner-energy {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
border: 4rpx solid rgba(64, 156, 255, 0.3);
border-radius: 50%;
animation: pulseEnergy 1.5s ease-in-out infinite;
}
.loading-text {
display: block;
font-size: 32rpx;
color: #fff;
margin-bottom: 15rpx;
font-weight: bold;
text-shadow: 0 0 10rpx rgba(64, 156, 255, 0.8);
}
.loading-subtext {
display: block;
font-size: 22rpx;
color: #a0c8ff;
}
/* ==================== 底部装饰 ==================== */
.tech-footer {
text-align: center;
margin-top: 40rpx;
padding: 0 30rpx;
}
.footer-line {
height: 1px;
background: linear-gradient(90deg,
transparent,
rgba(64, 156, 255, 0.3),
transparent);
margin-bottom: 20rpx;
}
.footer-text {
font-size: 20rpx;
color: #6688cc;
letter-spacing: 4rpx;
}
/* ==================== 动画定义 ==================== */
@keyframes techGlide {
0% { left: -100%; }
50% { left: 100%; }
100% { left: 100%; }
}
@keyframes techShine {
0% { left: -100%; }
20% { left: 100%; }
100% { left: 100%; }
}
@keyframes spinRing {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes pulseEnergy {
0% {
width: 60rpx;
height: 60rpx;
opacity: 0.5;
}
50% {
width: 80rpx;
height: 80rpx;
opacity: 0.8;
}
100% {
width: 60rpx;
height: 60rpx;
opacity: 0.5;
}
}
@keyframes dotPulse {
0%, 100% { opacity: 0.3; }
50% { opacity: 1; }
}
@keyframes energyPulse {
0%, 100% { opacity: 0.3; transform: scale(0.8); }
50% { opacity: 1; transform: scale(1.2); }
}
@keyframes pulseGlow {
0%, 100% { opacity: 0.5; }
50% { opacity: 1; }
}
/* ==================== 响应式调整 ==================== */
@media screen and (max-width: 750rpx) {
.tech-grid {
flex-direction: column;
gap: 20rpx;
}
.tech-card {
width: 100%;
}
.vip-swiper {
height: 320rpx;
}
.modal-container {
width: 90%;
margin: 0 5%;
}
.quick-buttons {
flex-wrap: wrap;
}
.quick-btn {
flex: 0 0 calc(50% - 10rpx);
}
}
/* ==================== 按钮垂直居中最终修复(覆盖) ==================== */
.tech-btn {
height: 70rpx;
border-radius: 35rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
font-size: 26rpx;
font-weight: bold;
color: #fff;
transition: all 0.3s ease;
}
.tech-btn .btn-text {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
.yajin-btn .btn-arrow {
display: none !important;
}
.tech-buy-btn {
width: 220rpx;
height: 80rpx;
border-radius: 40rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
font-size: 28rpx;
font-weight: bold;
color: #fff;
transition: all 0.3s ease;
}
.tech-buy-btn .buy-btn-text {
position: relative;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
.tech-btn .btn-bg,
.tech-btn .btn-glow,
.tech-buy-btn .buy-btn-bg,
.tech-buy-btn .buy-btn-glow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
pointer-events: none;
}
.buy-btn-energy {
position: absolute;
right: 20rpx;
top: 50%;
transform: translateY(-50%);
z-index: 2;
}
.btn-text, .buy-btn-text {
display: flex !important;
align-items: center !important;
justify-content: center !important;
height: 100% !important;
}
.tech-buy-btn .buy-btn-text {
display: flex !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
height: 100% !important;
line-height: 0.4 !important;
}
.tech-buy-btn {
display: flex !important;
align-items: center !important;
justify-content: center !important;
}