666 lines
12 KiB
Plaintext
666 lines
12 KiB
Plaintext
/* 卡若创业派对 - 代付详情页(参考 yulan 深色主题、青绿主色) */
|
|
.page {
|
|
min-height: 100vh;
|
|
background: #050505;
|
|
position: relative;
|
|
}
|
|
|
|
.nav-bar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 100;
|
|
background: rgba(5, 5, 5, 0.6);
|
|
backdrop-filter: blur(40rpx);
|
|
-webkit-backdrop-filter: blur(40rpx);
|
|
border-bottom: 1rpx solid rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.nav-content {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 24rpx;
|
|
height: 88rpx;
|
|
}
|
|
|
|
.nav-back {
|
|
width: 72rpx;
|
|
height: 72rpx;
|
|
border-radius: 50%;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.nav-back:active {
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.back-arrow {
|
|
font-size: 36rpx;
|
|
color: rgba(255, 255, 255, 0.9);
|
|
}
|
|
|
|
.nav-title {
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
letter-spacing: 0.2em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.content {
|
|
padding: 24rpx 24rpx 200rpx;
|
|
}
|
|
|
|
/* 骨架屏 */
|
|
.skeleton-wrap {
|
|
padding: 24rpx 0;
|
|
}
|
|
|
|
.skeleton-hero {
|
|
background: rgba(24, 24, 27, 0.8);
|
|
border-radius: 32rpx;
|
|
padding: 40rpx;
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.skeleton-hero-badge {
|
|
width: 120rpx;
|
|
height: 40rpx;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
border-radius: 8rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.skeleton-hero-title {
|
|
width: 80%;
|
|
height: 48rpx;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
border-radius: 8rpx;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.skeleton-hero-desc {
|
|
width: 60%;
|
|
height: 32rpx;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
border-radius: 8rpx;
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.skeleton-hero-amount {
|
|
width: 200rpx;
|
|
height: 64rpx;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
.skeleton-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24rpx;
|
|
padding: 32rpx;
|
|
background: rgba(24, 24, 27, 0.6);
|
|
border-radius: 24rpx;
|
|
}
|
|
|
|
.skeleton-avatar {
|
|
width: 96rpx;
|
|
height: 96rpx;
|
|
border-radius: 50%;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.skeleton-info {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16rpx;
|
|
}
|
|
|
|
.skeleton-info .skeleton-line {
|
|
height: 32rpx;
|
|
background: linear-gradient(90deg, #1c1c1e 25%, #2c2c2e 50%, #1c1c1e 75%);
|
|
background-size: 200% 100%;
|
|
animation: skeleton-shimmer 1.5s ease-in-out infinite;
|
|
border-radius: 8rpx;
|
|
}
|
|
|
|
.skeleton-info .skeleton-line { width: 70%; }
|
|
.skeleton-info .skeleton-line.short { width: 45%; }
|
|
|
|
@keyframes skeleton-shimmer {
|
|
0% { background-position: 200% 0; }
|
|
100% { background-position: -200% 0; }
|
|
}
|
|
|
|
/* 产品 Hero 卡片 */
|
|
.hero-card {
|
|
position: relative;
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.hero-glow {
|
|
position: absolute;
|
|
inset: -4rpx;
|
|
background: linear-gradient(180deg, rgba(20, 184, 166, 0.2) 0%, transparent 100%);
|
|
border-radius: 40rpx;
|
|
filter: blur(24rpx);
|
|
opacity: 0.5;
|
|
}
|
|
|
|
.hero-inner {
|
|
position: relative;
|
|
background: rgba(24, 24, 27, 0.8);
|
|
border: 1rpx solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 40rpx;
|
|
padding: 48rpx;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.hero-decor {
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
padding: 24rpx;
|
|
opacity: 0.1;
|
|
}
|
|
|
|
.hero-decor-img {
|
|
width: 96rpx;
|
|
height: 96rpx;
|
|
}
|
|
|
|
.hero-badge {
|
|
display: inline-block;
|
|
font-size: 20rpx;
|
|
font-weight: 900;
|
|
letter-spacing: 0.2em;
|
|
color: #14b8a6;
|
|
background: rgba(20, 184, 166, 0.1);
|
|
border: 1rpx solid rgba(20, 184, 166, 0.2);
|
|
padding: 6rpx 24rpx;
|
|
border-radius: 999rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.hero-title {
|
|
display: block;
|
|
font-size: 36rpx;
|
|
font-weight: 700;
|
|
color: #fff;
|
|
line-height: 1.3;
|
|
letter-spacing: -0.5rpx;
|
|
margin: 0 0 16rpx;
|
|
}
|
|
|
|
.hero-desc {
|
|
display: block;
|
|
font-size: 28rpx;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
line-height: 1.5;
|
|
margin: 0;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 4;
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
|
|
.hero-footer {
|
|
margin-top: 40rpx;
|
|
padding-top: 32rpx;
|
|
border-top: 1rpx solid rgba(255, 255, 255, 0.05);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.hero-amount-wrap {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8rpx;
|
|
}
|
|
|
|
.hero-amount-label {
|
|
font-size: 20rpx;
|
|
font-weight: 700;
|
|
letter-spacing: 0.2em;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.hero-amount-row {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 4rpx;
|
|
}
|
|
|
|
.gift-quantity-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16rpx;
|
|
margin: 12rpx 0;
|
|
}
|
|
|
|
.create-tip {
|
|
margin-top: 16rpx;
|
|
font-size: 24rpx;
|
|
color: rgba(255, 255, 255, 0.45);
|
|
}
|
|
|
|
.gift-quantity-input {
|
|
width: 120rpx;
|
|
height: 64rpx;
|
|
padding: 0 20rpx;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border: 1rpx solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 12rpx;
|
|
font-size: 32rpx;
|
|
font-weight: 600;
|
|
color: #fff;
|
|
text-align: center;
|
|
}
|
|
|
|
.hero-currency {
|
|
font-size: 36rpx;
|
|
font-weight: 700;
|
|
color: #14b8a6;
|
|
}
|
|
|
|
.hero-amount {
|
|
font-size: 60rpx;
|
|
font-weight: 700;
|
|
font-family: 'JetBrains Mono', 'SF Mono', monospace;
|
|
color: #fff;
|
|
letter-spacing: -1rpx;
|
|
}
|
|
|
|
.hero-arrow-wrap {
|
|
width: 96rpx;
|
|
height: 96rpx;
|
|
border-radius: 32rpx;
|
|
background: rgba(20, 184, 166, 0.1);
|
|
border: 1rpx solid rgba(20, 184, 166, 0.2);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.hero-arrow {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
filter: invert(72%) sepia(45%) saturate(800%) hue-rotate(130deg);
|
|
}
|
|
|
|
/* 发起人信息卡片 */
|
|
.requester-card {
|
|
background: rgba(24, 24, 27, 0.3);
|
|
border: 1rpx solid rgba(255, 255, 255, 0.05);
|
|
border-radius: 48rpx;
|
|
padding: 24rpx;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
|
|
.requester-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 32rpx;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
|
|
.requester-header:active {
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.requester-avatar {
|
|
width: 96rpx;
|
|
height: 96rpx;
|
|
border-radius: 50%;
|
|
background: linear-gradient(180deg, #3f3f46 0%, #18181b 100%);
|
|
border: 1rpx solid rgba(255, 255, 255, 0.1);
|
|
overflow: hidden;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.avatar-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.icon-avatar {
|
|
padding: 24rpx;
|
|
filter: brightness(0) invert(0.6);
|
|
}
|
|
|
|
.requester-info {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.requester-name {
|
|
display: block;
|
|
font-size: 28rpx;
|
|
font-weight: 700;
|
|
color: rgba(255, 255, 255, 0.9);
|
|
margin-bottom: 4rpx;
|
|
}
|
|
|
|
.requester-label {
|
|
font-size: 20rpx;
|
|
font-weight: 700;
|
|
letter-spacing: 0.2em;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.requester-msg-wrap {
|
|
position: relative;
|
|
padding-left: 20rpx;
|
|
}
|
|
|
|
.requester-msg-bar {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 4rpx;
|
|
background: rgba(20, 184, 166, 0.3);
|
|
border-radius: 2rpx;
|
|
}
|
|
|
|
.requester-msg {
|
|
font-size: 28rpx;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
font-style: italic;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
/* 安全徽章 */
|
|
.security-badge {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 16rpx;
|
|
padding: 32rpx 0;
|
|
}
|
|
|
|
.security-icon {
|
|
font-size: 32rpx;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.security-text {
|
|
font-size: 20rpx;
|
|
font-weight: 700;
|
|
letter-spacing: 0.2em;
|
|
color: rgba(255, 255, 255, 0.35);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
/* 空状态 */
|
|
.empty {
|
|
text-align: center;
|
|
padding: 120rpx 0;
|
|
font-size: 28rpx;
|
|
color: rgba(255, 255, 255, 0.45);
|
|
}
|
|
|
|
/* 底部浮动操作栏 */
|
|
.footer-bar {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 20;
|
|
padding: 32rpx;
|
|
}
|
|
|
|
.footer-bg {
|
|
position: absolute;
|
|
inset: 0;
|
|
background: rgba(24, 24, 27, 0.9);
|
|
backdrop-filter: blur(40rpx);
|
|
-webkit-backdrop-filter: blur(40rpx);
|
|
border-top: 1rpx solid rgba(255, 255, 255, 0.1);
|
|
border-radius: 50rpx;
|
|
box-shadow: 0 -20rpx 100rpx rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
.footer-inner {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 32rpx;
|
|
padding: 24rpx 24rpx 24rpx 48rpx;
|
|
}
|
|
|
|
.footer-summary {
|
|
flex: 1;
|
|
}
|
|
|
|
.footer-label {
|
|
display: block;
|
|
font-size: 20rpx;
|
|
font-weight: 700;
|
|
letter-spacing: 0.2em;
|
|
color: rgba(255, 255, 255, 0.4);
|
|
text-transform: uppercase;
|
|
margin-bottom: 4rpx;
|
|
}
|
|
|
|
.footer-amount {
|
|
font-size: 40rpx;
|
|
font-weight: 700;
|
|
font-family: 'JetBrains Mono', 'SF Mono', monospace;
|
|
color: #fff;
|
|
letter-spacing: -1rpx;
|
|
}
|
|
|
|
.footer-currency {
|
|
font-size: 28rpx;
|
|
color: #14b8a6;
|
|
margin-right: 4rpx;
|
|
}
|
|
|
|
.footer-btn {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 16rpx;
|
|
padding: 32rpx 48rpx;
|
|
border-radius: 36rpx;
|
|
font-size: 28rpx;
|
|
font-weight: 900;
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
border: none;
|
|
box-shadow: 0 16rpx 40rpx rgba(20, 184, 166, 0.3);
|
|
}
|
|
|
|
.footer-btn::after {
|
|
border: none;
|
|
}
|
|
|
|
.share-btn {
|
|
background: #14b8a6;
|
|
color: #000;
|
|
}
|
|
|
|
.pay-btn {
|
|
background: #14b8a6;
|
|
color: #000;
|
|
}
|
|
|
|
.pay-btn[disabled] {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.redeem-btn {
|
|
background: #14b8a6;
|
|
color: #000;
|
|
}
|
|
|
|
.redeem-btn[disabled] {
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.footer-tip-single {
|
|
flex: 1;
|
|
font-size: 24rpx;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
text-align: center;
|
|
padding: 0 24rpx;
|
|
}
|
|
|
|
.footer-btn-disabled {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
color: rgba(255, 255, 255, 0.5);
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.footer-btn:active {
|
|
transform: scale(0.98);
|
|
}
|
|
|
|
.btn-icon {
|
|
width: 40rpx;
|
|
height: 40rpx;
|
|
}
|
|
|
|
.share-btn .btn-icon,
|
|
.pay-btn .btn-icon,
|
|
.redeem-btn .btn-icon {
|
|
filter: brightness(0);
|
|
}
|
|
|
|
/* 背景光效 */
|
|
.bg-effects {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
pointer-events: none;
|
|
z-index: -1;
|
|
}
|
|
|
|
.bg-glow {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
filter: blur(150rpx);
|
|
}
|
|
|
|
.bg-glow-1 {
|
|
top: -20%;
|
|
left: -10%;
|
|
width: 80%;
|
|
height: 60%;
|
|
background: rgba(20, 184, 166, 0.05);
|
|
animation: pulse-slow 8s infinite;
|
|
}
|
|
|
|
.bg-glow-2 {
|
|
bottom: -10%;
|
|
right: -10%;
|
|
width: 60%;
|
|
height: 50%;
|
|
background: rgba(20, 184, 166, 0.05);
|
|
}
|
|
|
|
@keyframes pulse-slow {
|
|
0%, 100% { opacity: 0.3; }
|
|
50% { opacity: 0.6; }
|
|
}
|
|
|
|
.bg-dots {
|
|
position: absolute;
|
|
inset: 0;
|
|
background-image: radial-gradient(rgba(255,255,255,0.02) 1rpx, transparent 1rpx);
|
|
background-size: 64rpx 64rpx;
|
|
}
|
|
|
|
/* 登录弹窗 */
|
|
.modal-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: rgba(0, 0, 0, 0.7);
|
|
z-index: 1000;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 48rpx;
|
|
}
|
|
.modal-content.login-modal {
|
|
width: 100%;
|
|
max-width: 600rpx;
|
|
background: #1c1c1e;
|
|
border-radius: 32rpx;
|
|
padding: 48rpx;
|
|
text-align: center;
|
|
position: relative;
|
|
}
|
|
.modal-close {
|
|
position: absolute;
|
|
top: 24rpx;
|
|
right: 24rpx;
|
|
font-size: 32rpx;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
}
|
|
.login-icon { font-size: 96rpx; display: block; margin-bottom: 24rpx; }
|
|
.login-title { font-size: 36rpx; font-weight: 700; color: #fff; display: block; margin-bottom: 16rpx; }
|
|
.login-desc { font-size: 26rpx; color: rgba(255, 255, 255, 0.6); display: block; margin-bottom: 48rpx; }
|
|
.btn-wechat {
|
|
width: 100%;
|
|
padding: 28rpx;
|
|
background: #07c160;
|
|
color: #fff;
|
|
font-size: 30rpx;
|
|
font-weight: 600;
|
|
border-radius: 24rpx;
|
|
border: none;
|
|
}
|
|
.btn-wechat-disabled { opacity: 0.5; }
|
|
.btn-wechat-icon { font-weight: 700; margin-right: 8rpx; }
|
|
.privacy-wechat-row { margin: 24rpx 0; padding: 24rpx; background: rgba(0,206,209,0.1); border-radius: 16rpx; }
|
|
.privacy-wechat-desc { display: block; font-size: 26rpx; color: rgba(255,255,255,0.8); margin-bottom: 16rpx; }
|
|
.privacy-agree-btn { width: 100%; padding: 20rpx; background: #07C160; color: #fff; font-size: 28rpx; border-radius: 16rpx; border: none; }
|
|
.privacy-agree-btn::after { border: none; }
|
|
.login-agree-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-top: 32rpx;
|
|
font-size: 22rpx;
|
|
color: rgba(255, 255, 255, 0.5);
|
|
}
|
|
.agree-checkbox {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
border: 2rpx solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 8rpx;
|
|
margin-right: 12rpx;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 24rpx;
|
|
}
|
|
.agree-checked { background: #14b8a6; border-color: #14b8a6; }
|
|
.agree-link { color: #14b8a6; }
|