784 lines
14 KiB
Plaintext
784 lines
14 KiB
Plaintext
page {
|
||
background: #E8C3D4;
|
||
min-height: 100vh;
|
||
box-sizing: border-box;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||
}
|
||
|
||
.page {
|
||
padding-top: 194rpx;
|
||
padding-bottom: 200rpx; /* Extra space for TabBar */
|
||
}
|
||
|
||
/* Custom Nav已移除,改用全局 unified-header */
|
||
|
||
.btn-reset {
|
||
padding: 0;
|
||
margin: 0;
|
||
line-height: inherit;
|
||
background: transparent;
|
||
border-radius: 0;
|
||
text-align: center;
|
||
width: auto !important;
|
||
min-width: 0 !important;
|
||
}
|
||
.btn-reset::after { border: none; }
|
||
|
||
/* Common Card Styles */
|
||
.section-wrapper {
|
||
padding: 0 32rpx;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.white-card {
|
||
background: #FFFFFF;
|
||
border-radius: 48rpx;
|
||
padding: 42rpx;
|
||
box-shadow: 0 2rpx 4rpx -2rpx rgba(0, 0, 0, 0.1), 0 2rpx 6rpx 0 rgba(0, 0, 0, 0.1);
|
||
border: 2rpx solid #F9FAFB;
|
||
}
|
||
|
||
.main-title {
|
||
font-size: 48rpx;
|
||
font-weight: 700;
|
||
color: #101828;
|
||
}
|
||
|
||
.card-title-row {
|
||
margin-bottom: 32rpx;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.border-bottom {
|
||
border-bottom: 2rpx solid #F9FAFB;
|
||
padding-bottom: 2rpx;
|
||
margin-bottom: 40rpx;
|
||
}
|
||
|
||
/* Header Profile */
|
||
.profile-outer {
|
||
padding: 16rpx 32rpx 32rpx;
|
||
}
|
||
|
||
.profile-card {
|
||
background: #FFFFFF;
|
||
border-radius: 48rpx;
|
||
padding: 40rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 32rpx;
|
||
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.02);
|
||
border: 2rpx solid #F9FAFB;
|
||
}
|
||
|
||
.avatar-wrap {
|
||
width: 140rpx;
|
||
height: 140rpx;
|
||
border-radius: 50%;
|
||
border: 4rpx solid #F3D1EA;
|
||
padding: 4rpx;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.avatar {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.profile-info {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.name-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 24rpx;
|
||
margin-bottom: 16rpx;
|
||
}
|
||
|
||
.nickname {
|
||
font-size: 40rpx;
|
||
font-weight: 900;
|
||
color: #111827;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.vip-badge {
|
||
background: linear-gradient(90deg, #B06AB3, #8E44AD); /* Default/fallback */
|
||
padding: 4rpx 20rpx;
|
||
border-radius: 999rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
box-shadow: 0 2rpx 4rpx rgba(0,0,0,0.1);
|
||
}
|
||
|
||
.vip-badge.vip-soulmate {
|
||
background: linear-gradient(90deg, #F472B6, #991B1B); /* Pink to Deep Red */
|
||
}
|
||
|
||
.vip-badge.vip-guardian {
|
||
background: linear-gradient(90deg, #FFD700, #DAA520); /* Gold */
|
||
}
|
||
|
||
.vip-badge.vip-companion {
|
||
background: linear-gradient(90deg, #9B59B6, #8E44AD); /* Purple (Similar to main, maybe slightly distinct) -> Let's try Deep Blue/Purple */
|
||
background: linear-gradient(90deg, #6C5CE7, #a29bfe); /* Soft Royal Blue/Purple */
|
||
}
|
||
|
||
.vip-badge.vip-listener {
|
||
background: linear-gradient(90deg, #2ecc71, #27ae60); /* Green */
|
||
}
|
||
|
||
.vip-badge.vip-partner {
|
||
background: linear-gradient(90deg, #E84393, #D63031); /* Pink/Red */
|
||
}
|
||
|
||
.vip-badge.vip-normal {
|
||
background: linear-gradient(90deg, #B06AB3, #8E44AD); /* Standard VIP Color */
|
||
}
|
||
|
||
.vip-text {
|
||
color: #FFFFFF;
|
||
font-size: 24rpx;
|
||
font-weight: 700;
|
||
}
|
||
|
||
.id-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12rpx;
|
||
color: #9CA3AF;
|
||
font-size: 28rpx;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/* Wallet Section Specifics */
|
||
.wallet-stack {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 24rpx;
|
||
}
|
||
|
||
.inner-card {
|
||
border-radius: 32rpx;
|
||
padding: 40rpx;
|
||
position: relative;
|
||
overflow: hidden;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* VIP Inner Card */
|
||
.vip-card {
|
||
background: linear-gradient(180deg, #EEB8DD, #D489BE);
|
||
box-shadow: 0 10rpx 15rpx -3rpx rgba(238, 184, 221, 0.3);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
height: 200rpx;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.vip-content {
|
||
position: relative;
|
||
z-index: 2;
|
||
}
|
||
|
||
.vip-header-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16rpx;
|
||
margin-bottom: 4rpx;
|
||
opacity: 0.95;
|
||
}
|
||
|
||
.vip-label {
|
||
color: #FFFFFF;
|
||
font-size: 28rpx;
|
||
font-weight: 700;
|
||
}
|
||
|
||
.vip-main-text {
|
||
color: #FFFFFF;
|
||
font-size: 44rpx;
|
||
font-weight: 900;
|
||
letter-spacing: -1rpx;
|
||
}
|
||
|
||
.vip-action-btn {
|
||
background: rgba(0, 0, 0, 0.15);
|
||
color: #FFFFFF;
|
||
padding: 16rpx 0;
|
||
border-radius: 999rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 800;
|
||
box-shadow: 0 2rpx 4rpx rgba(0,0,0,0.1);
|
||
position: relative;
|
||
z-index: 2;
|
||
width: 160rpx !important;
|
||
margin-left: auto;
|
||
margin-right: 0 !important;
|
||
}
|
||
|
||
.vip-card::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: -20rpx;
|
||
right: -20rpx;
|
||
width: 140rpx;
|
||
height: 140rpx;
|
||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9H4.5a2.5 2.5 0 0 1 0-5H6'/%3E%3Cpath d='M18 9h1.5a2.5 2.5 0 0 0 0-5H18'/%3E%3Cpath d='M4 22h16'/%3E%3Cpath d='M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22'/%3E%3Cpath d='M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22'/%3E%3Cpath d='M18 2H6v7a6 6 0 0 0 12 0V2Z'/%3E%3C/svg%3E");
|
||
background-repeat: no-repeat;
|
||
background-size: contain;
|
||
opacity: 0.15;
|
||
transform: rotate(-15deg);
|
||
pointer-events: none;
|
||
}
|
||
|
||
/* Earnings Inner Card */
|
||
.earnings-card {
|
||
background: #FFFFFF;
|
||
border: 2rpx solid #F3F4F6;
|
||
}
|
||
|
||
.earnings-header-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.earnings-title {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #111827;
|
||
}
|
||
|
||
.commission-btn {
|
||
background: #FDF4F9;
|
||
padding: 12rpx 24rpx;
|
||
border-radius: 999rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 4rpx;
|
||
color: #B06AB3;
|
||
font-size: 26rpx;
|
||
font-weight: 700;
|
||
}
|
||
|
||
.earnings-body-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: flex-end;
|
||
width: 100%;
|
||
}
|
||
|
||
.earnings-info {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.earnings-label {
|
||
font-size: 24rpx;
|
||
color: #9CA3AF;
|
||
font-weight: 500;
|
||
margin-bottom: 8rpx;
|
||
}
|
||
|
||
.earnings-amount {
|
||
font-size: 60rpx;
|
||
font-weight: 900;
|
||
color: #B06AB3;
|
||
line-height: 1;
|
||
}
|
||
|
||
.withdraw-btn {
|
||
background: linear-gradient(135deg, #B06AB3 0%, #9B4D9E 100%);
|
||
color: #FFFFFF;
|
||
height: 72rpx;
|
||
border-radius: 999rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 800;
|
||
box-shadow: 0 16rpx 32rpx rgba(176, 106, 179, 0.25);
|
||
width: 160rpx !important;
|
||
margin-left: auto;
|
||
margin-right: 0 !important;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
/* Stats Grid New Design */
|
||
.stats-grid {
|
||
display: flex;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.stats-grid .stat-card + .stat-card {
|
||
margin-left: 32rpx;
|
||
}
|
||
|
||
.stat-card {
|
||
flex: 1;
|
||
min-width: 0;
|
||
border-radius: 32rpx;
|
||
padding: 42rpx 42rpx 36rpx;
|
||
background: linear-gradient(180deg, #FDF4F9 0%, #FFF0F5 100%);
|
||
border: 2rpx solid rgba(243, 209, 234, 0.5);
|
||
position: relative;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.card-top {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 3rpx;
|
||
margin-bottom: 14rpx;
|
||
}
|
||
|
||
.icon-wrap-sm {
|
||
width: 50rpx;
|
||
height: 50rpx;
|
||
background: rgba(255, 255, 255, 0.8);
|
||
border-radius: 28rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
box-shadow: 0 2rpx 4rpx -2rpx rgba(0, 0, 0, 0.1), 0 2rpx 6rpx 0 rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.card-name {
|
||
font-size: 36rpx;
|
||
font-weight: 900;
|
||
color: #101828;
|
||
}
|
||
|
||
.card-bottom {
|
||
display: flex;
|
||
align-items: baseline;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.card-num {
|
||
font-size: 50rpx;
|
||
font-weight: 900;
|
||
color: #B06AB3;
|
||
line-height: 1;
|
||
}
|
||
|
||
.card-unit {
|
||
font-size: 28rpx;
|
||
font-weight: 700;
|
||
color: #6A7282;
|
||
}
|
||
|
||
.card-icon-img {
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
}
|
||
|
||
/* Menu List */
|
||
.menu-card {
|
||
padding: 24rpx 0;
|
||
}
|
||
|
||
.menu-item {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 32rpx 48rpx;
|
||
}
|
||
|
||
.menu-divider {
|
||
height: 2rpx;
|
||
background: #F9FAFB;
|
||
margin: 0 40rpx;
|
||
}
|
||
|
||
.menu-left {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 32rpx;
|
||
}
|
||
|
||
.menu-text {
|
||
font-size: 32rpx;
|
||
font-weight: 700;
|
||
color: #374151;
|
||
}
|
||
|
||
.menu-right {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16rpx;
|
||
}
|
||
|
||
.tag-pink {
|
||
background: #FDF4F9;
|
||
color: #B06AB3;
|
||
font-size: 24rpx;
|
||
font-weight: 700;
|
||
padding: 8rpx 24rpx;
|
||
border-radius: 999rpx;
|
||
}
|
||
|
||
.safe-bottom-spacer {
|
||
height: 200rpx;
|
||
}
|
||
|
||
/* 自定义底部导航栏 */
|
||
.custom-tabbar {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
height: 194rpx;
|
||
background: #fff;
|
||
display: flex;
|
||
align-items: flex-start;
|
||
justify-content: space-around;
|
||
padding-top: 24rpx;
|
||
z-index: 999;
|
||
border-top: 2rpx solid #F3F4F6;
|
||
}
|
||
|
||
.tabbar-item {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 12rpx;
|
||
width: 150rpx;
|
||
height: 120rpx;
|
||
}
|
||
|
||
.tabbar-icon {
|
||
width: 68rpx;
|
||
height: 68rpx;
|
||
}
|
||
|
||
.tabbar-text {
|
||
font-family: Arial, sans-serif;
|
||
font-size: 40rpx;
|
||
font-weight: 700;
|
||
color: #A58AA5;
|
||
line-height: 1;
|
||
}
|
||
|
||
.tabbar-text.active {
|
||
color: #B06AB3;
|
||
}
|
||
|
||
.message-icon-wrapper {
|
||
position: relative;
|
||
width: 68rpx;
|
||
height: 68rpx;
|
||
}
|
||
|
||
.message-icon-wrapper .tabbar-icon {
|
||
width: 68rpx;
|
||
height: 68rpx;
|
||
}
|
||
|
||
.message-badge {
|
||
position: absolute;
|
||
top: -10rpx;
|
||
right: -16rpx;
|
||
min-width: 36rpx;
|
||
height: 36rpx;
|
||
padding: 0 8rpx;
|
||
background: #FB2C36;
|
||
border: 3rpx solid #fff;
|
||
border-radius: 18rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.message-badge text {
|
||
font-size: 22rpx;
|
||
font-weight: 600;
|
||
color: #fff;
|
||
line-height: 1;
|
||
}
|
||
|
||
/* ==================== 弹窗样式 ==================== */
|
||
.modal-mask {
|
||
position: fixed;
|
||
inset: 0;
|
||
background: rgba(0,0,0,0.6);
|
||
backdrop-filter: blur(8rpx);
|
||
z-index: 2000;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 40rpx;
|
||
}
|
||
|
||
.promoter-modal {
|
||
width: 100%;
|
||
max-width: 640rpx;
|
||
background: #FFFFFF;
|
||
border-radius: 48rpx;
|
||
padding: 48rpx;
|
||
position: relative;
|
||
animation: modalPop 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
||
}
|
||
|
||
@keyframes modalPop {
|
||
from { opacity: 0; transform: scale(0.95); }
|
||
to { opacity: 1; transform: scale(1); }
|
||
}
|
||
|
||
.modal-close-btn {
|
||
position: absolute;
|
||
top: 32rpx;
|
||
right: 32rpx;
|
||
padding: 16rpx;
|
||
z-index: 10;
|
||
}
|
||
|
||
.modal-header {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
margin-bottom: 48rpx;
|
||
}
|
||
|
||
.modal-icon-bg {
|
||
width: 128rpx;
|
||
height: 128rpx;
|
||
background: #FDF4F9;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.modal-title {
|
||
font-size: 40rpx;
|
||
font-weight: 900;
|
||
color: #111827;
|
||
margin-bottom: 12rpx;
|
||
}
|
||
|
||
.modal-subtitle {
|
||
font-size: 28rpx;
|
||
color: #6B7280;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.benefits-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 24rpx;
|
||
margin-bottom: 48rpx;
|
||
}
|
||
|
||
.benefit-item {
|
||
display: flex;
|
||
align-items: flex-start;
|
||
gap: 24rpx;
|
||
padding: 32rpx;
|
||
background: #F9FAFB;
|
||
border-radius: 32rpx;
|
||
border: 2rpx solid #F3F4F6;
|
||
}
|
||
|
||
.benefit-num {
|
||
width: 48rpx;
|
||
height: 48rpx;
|
||
background: #B06AB3;
|
||
color: #FFFFFF;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 28rpx;
|
||
font-weight: 800;
|
||
flex-shrink: 0;
|
||
margin-top: 4rpx;
|
||
}
|
||
|
||
.benefit-info {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 8rpx;
|
||
}
|
||
|
||
.benefit-title {
|
||
font-size: 32rpx;
|
||
font-weight: 800;
|
||
color: #111827;
|
||
}
|
||
|
||
.benefit-desc {
|
||
font-size: 28rpx;
|
||
color: #4B5563;
|
||
line-height: 1.4;
|
||
}
|
||
|
||
.apply-btn {
|
||
width: 100%;
|
||
background: #B06AB3;
|
||
padding: 32rpx 0;
|
||
border-radius: 32rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 8rpx;
|
||
box-shadow: 0 16rpx 32rpx rgba(176, 106, 179, 0.25);
|
||
}
|
||
|
||
.apply-text {
|
||
font-size: 34rpx;
|
||
font-weight: 800;
|
||
color: #FFFFFF;
|
||
letter-spacing: 2rpx;
|
||
}
|
||
|
||
.apply-subtext {
|
||
font-size: 24rpx;
|
||
color: rgba(255,255,255,0.9);
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* Success Modal Specifics */
|
||
.success-modal .qr-container {
|
||
display: flex;
|
||
justify-content: center;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.qr-placeholder {
|
||
padding: 32rpx;
|
||
border: 8rpx solid #B06AB3;
|
||
border-radius: 40rpx;
|
||
background: #FFFFFF;
|
||
}
|
||
|
||
.qr-grid {
|
||
width: 300rpx;
|
||
height: 300rpx;
|
||
background: #F3F4F6;
|
||
border-radius: 24rpx;
|
||
display: grid;
|
||
grid-template-columns: repeat(8, 1fr);
|
||
gap: 8rpx;
|
||
padding: 24rpx;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.qr-dot {
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 4rpx;
|
||
}
|
||
|
||
.qr-logo {
|
||
position: absolute;
|
||
inset: 0;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.qr-logo app-icon {
|
||
background: #FFFFFF;
|
||
border-radius: 16rpx;
|
||
padding: 12rpx;
|
||
box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.1);
|
||
}
|
||
|
||
.success-desc {
|
||
text-align: center;
|
||
color: #9CA3AF;
|
||
font-size: 28rpx;
|
||
line-height: 1.6;
|
||
margin-bottom: 48rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.close-btn {
|
||
width: 100%;
|
||
background: #B06AB3;
|
||
padding: 28rpx 0;
|
||
border-radius: 24rpx;
|
||
font-size: 32rpx;
|
||
font-weight: 800;
|
||
color: #FFFFFF;
|
||
box-shadow: 0 8rpx 24rpx rgba(176, 106, 179, 0.2);
|
||
}
|
||
|
||
/* ==================== GF100 弹窗样式 ==================== */
|
||
.gf100-mask {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
background: rgba(0, 0, 0, 0.75);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
z-index: 2000;
|
||
backdrop-filter: blur(5px);
|
||
}
|
||
|
||
.gf100-content {
|
||
position: relative;
|
||
width: 62.5%;
|
||
max-width: 480rpx;
|
||
animation: gf100In 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
|
||
}
|
||
|
||
@keyframes gf100In {
|
||
from {
|
||
transform: scale(0.5);
|
||
opacity: 0;
|
||
}
|
||
to {
|
||
transform: scale(1);
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
.gf100-image {
|
||
width: 100%;
|
||
display: block;
|
||
border-radius: 20rpx;
|
||
box-shadow: 0 20rpx 60rpx rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
.gf100-close {
|
||
position: absolute;
|
||
top: -80rpx;
|
||
right: 0;
|
||
width: 60rpx;
|
||
height: 60rpx;
|
||
border: 2rpx solid #fff;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
.close-icon {
|
||
color: #fff;
|
||
font-size: 40rpx;
|
||
line-height: 1;
|
||
}
|
||
|