/* 休闲文娱页面样式 - 玫瑰紫版 v3.0 */ page { background: #fff; } .page-container { min-height: 100vh; background: #fff; position: relative; } /* 顶部导航栏已移除,改用全局 unified-header */ /* 内容滚动区域 */ .content-scroll { height: 100vh; box-sizing: border-box; } .content-scroll::-webkit-scrollbar { display: none; } /* 顶部轮播区域 - 与服务页保持一致 */ .banner-section { padding: 24rpx 32rpx; } .banner-swiper { width: 100%; height: 400rpx; border-radius: 32rpx; overflow: hidden; box-shadow: 0 8rpx 24rpx -8rpx rgba(243, 244, 246, 1), 0 20rpx 30rpx -6rpx rgba(243, 244, 246, 1); } /* 防止轮播图闪烁 */ swiper-item { will-change: transform; backface-visibility: hidden; -webkit-backface-visibility: hidden; } .banner-card { width: 100%; height: 100%; border-radius: 32rpx; overflow: hidden; position: relative; cursor: pointer; /* 防止闪烁 */ transform: translateZ(0); -webkit-transform: translateZ(0); } /* Banner图片 - 优化加载性能 */ .banner-image { width: 100%; height: 100%; position: absolute; top: 0; left: 0; /* 防止图片闪烁 */ backface-visibility: hidden; -webkit-backface-visibility: hidden; transform: translateZ(0); -webkit-transform: translateZ(0); } .banner-bg-gradient { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%); } .banner-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(0deg, rgba(26, 26, 26, 0.4) 0%, rgba(26, 26, 26, 0) 50%); } /* 轮播指示器已移除 */ /* 功能入口 - 与服务页面统一的图标风格 */ .category-section { display: flex; flex-wrap: wrap; justify-content: space-between; width: 718rpx; margin: 0 auto; padding: 24rpx 0; row-gap: 64rpx; background: transparent; } .category-item { width: 218rpx; min-height: 208rpx; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 24rpx; padding: 0; box-sizing: border-box; cursor: pointer; transition: transform 0.2s ease; } .category-item:active { transform: scale(0.95); } /* 图标容器:圆形图片 */ .category-icon-container { width: 168rpx; height: 168rpx; border-radius: 9999rpx; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* 图标图片 */ .icon-svg { width: 168rpx; height: 168rpx; border-radius: 9999rpx; } .category-name { font-family: Arial, sans-serif; font-size: 36rpx; font-weight: 700; color: #364153; line-height: 1.56; text-align: center; width: 218rpx; transition: color 0.2s ease; } .category-item:active .category-name { color: #914584; } /* 滚动公告栏 */ .notice-bar { margin: 32rpx; padding: 28rpx 32rpx; background: #fff; border-radius: 40rpx; border: 2rpx solid #F3F4F6; box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04); display: flex; align-items: center; gap: 24rpx; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .notice-bar:active { transform: scale(0.98); box-shadow: 0 2rpx 12rpx rgba(145, 69, 132, 0.12); } .notice-icon { width: 72rpx; height: 72rpx; background: linear-gradient(135deg, #FEF2F2 0%, #FFE2E2 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 2rpx 8rpx rgba(251, 44, 54, 0.15); border: 2rpx solid rgba(251, 44, 54, 0.1); } .heart-icon { width: 44rpx; height: 44rpx; filter: drop-shadow(0 1rpx 2rpx rgba(251, 44, 54, 0.2)); } .notice-content { flex: 1; height: 56rpx; overflow: hidden; } .notice-swiper { height: 56rpx; } .notice-text { font-size: 36rpx; font-weight: 600; color: #1A1A1A; line-height: 56rpx; } .notice-text rich-text { line-height: 56rpx; } .notice-bar-empty { height: 0; margin: 0 32rpx; } .notice-arrow { width: 40rpx; height: 40rpx; opacity: 0.5; } /* 活动标签切换 - 横向滚动 */ .tab-section { padding: 32rpx 0; background: #fff; margin: 0 32rpx 32rpx; border-radius: 48rpx; box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04); position: relative; z-index: 1; } .tab-scroll { width: 100%; white-space: nowrap; } .tab-scroll::-webkit-scrollbar { display: none; } .tab-list { display: inline-flex; gap: 20rpx; padding: 0 32rpx; } .tab-item { padding: 20rpx 48rpx; border-radius: 100rpx; font-size: 36rpx; font-weight: 700; color: #6A7282; background: #F3F4F6; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; position: relative; z-index: 2; flex-shrink: 0; white-space: nowrap; } .tab-item:active { transform: scale(0.96); } .tab-item.active { color: #fff; background: linear-gradient(135deg, #914584 0%, #7A3A6F 100%); box-shadow: 0 16rpx 32rpx rgba(145, 69, 132, 0.3); transform: scale(1.02); } /* 活动列表 */ .activity-list { padding: 0 32rpx; } .activity-card { background: #fff; border-radius: 48rpx; margin-bottom: 32rpx; overflow: hidden; box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; } .activity-card:active { transform: translateY(-2rpx) scale(0.98); box-shadow: 0 2rpx 12rpx rgba(145, 69, 132, 0.12); } .activity-image-wrap { width: 100%; height: 400rpx; position: relative; overflow: hidden; border-radius: 32rpx 32rpx 0 0; } /* 活动实际图片 */ .activity-image { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; } /* 活动图片渐变背景(降级方案) */ .activity-image-gradient { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%); } /* 点赞徽章 */ .like-badge { position: absolute; top: 32rpx; right: 32rpx; display: flex; align-items: center; gap: 12rpx; padding: 12rpx 28rpx 12rpx 16rpx; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(8px); border-radius: 100rpx; box-shadow: 0 4rpx 16rpx rgba(145, 69, 132, 0.12); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; } .like-badge:active { transform: scale(0.92); } .like-badge.liked { background: rgba(254, 242, 242, 0.98); box-shadow: 0 4rpx 16rpx rgba(251, 44, 54, 0.3); } .like-icon { width: 36rpx; height: 36rpx; transition: transform 0.25s cubic-bezier(0.68, -0.55, 0.265, 1.55); } .like-badge.liked .like-icon { transform: scale(1.25); animation: heartBeat 0.5s ease; } @keyframes heartBeat { 0%, 100% { transform: scale(1.25); } 50% { transform: scale(1.4); } } .like-count { font-size: 32rpx; font-weight: 700; color: #4A5565; transition: color 0.25s ease; } .like-badge.liked .like-count { color: #FB2C36; } /* 价格标签 */ .price-tag { position: absolute; bottom: 32rpx; left: 32rpx; padding: 12rpx 28rpx; border-radius: 100rpx; font-size: 32rpx; font-weight: 700; backdrop-filter: blur(4px); } .price-tag.paid { background: linear-gradient(135deg, #F97316 0%, #EA580C 100%); color: #fff; box-shadow: 0 4rpx 16rpx rgba(249, 115, 22, 0.35); } .price-tag.free { background: linear-gradient(135deg, #4ADE80 0%, #16A34A 100%); color: #fff; box-shadow: 0 4rpx 16rpx rgba(74, 222, 128, 0.35); } /* 活动信息 */ .activity-info { padding: 40rpx; } .activity-title { font-size: 44rpx; font-weight: 700; color: #1A1A1A; line-height: 1.3; margin-bottom: 24rpx; display: block; } .activity-meta { display: flex; flex-direction: column; gap: 20rpx; margin-bottom: 24rpx; } .meta-row { display: flex; align-items: center; justify-content: space-between; width: 100%; } .meta-item { display: flex; align-items: center; gap: 20rpx; } .meta-icon { width: 40rpx; height: 40rpx; opacity: 0.6; } .meta-text { font-size: 32rpx; color: #4A5565; font-weight: 500; } /* 热度显示样式 */ .heat-item { margin-left: auto; } .heat-text { color: #F97316; font-weight: 700; } /* 活动底部 */ .activity-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 24rpx; border-top: 3rpx solid #F3F4F6; } .participants { display: flex; align-items: center; gap: 24rpx; } .avatar-stack { display: flex; } .mini-avatar { width: 64rpx; height: 64rpx; border-radius: 50%; background: linear-gradient(135deg, #F5E6ED 0%, #FAF5F8 100%); border: 3rpx solid #fff; margin-left: -16rpx; } .mini-avatar:first-child { margin-left: 0; } .participant-text { font-size: 32rpx; color: #6A7282; } .signup-btn { width: 240rpx; height: 80rpx; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #914584 0%, #7A3A6F 100%); border-radius: 100rpx; font-size: 32rpx; font-weight: 700; color: #fff; box-shadow: 0 16rpx 32rpx rgba(145, 69, 132, 0.3); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; white-space: nowrap; flex-shrink: 0; } .signup-btn:active { transform: scale(0.96); box-shadow: 0 8rpx 24rpx rgba(145, 69, 132, 0.4); } .signup-btn.signed { background: linear-gradient(135deg, #9CA3AF 0%, #6B7280 100%); box-shadow: 0 4rpx 16rpx rgba(156, 163, 175, 0.25); } /* 空状态 */ .empty-state { padding: 200rpx 0; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; } .empty-icon { width: 240rpx; height: 240rpx; margin: 0 auto 32rpx; opacity: 0.5; } .empty-text { font-size: 32rpx; color: #99A1AF; } /* 列表底部 */ .list-footer { padding: 60rpx 0; text-align: center; } .footer-text { font-size: 36rpx; color: #6A7282; } /* 底部占位 */ .bottom-placeholder { height: 240rpx; } /* 自定义底部导航栏 */ .custom-tabbar { position: fixed; bottom: 0; left: 0; right: 0; height: 194rpx; background: #FFFFFF; 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; } /* 二维码引导弹窗 */ .qrcode-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; visibility: hidden; opacity: 0; transition: all 0.3s ease; } .qrcode-modal.show { visibility: visible; opacity: 1; } .qrcode-modal .modal-mask { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4rpx); } .qrcode-modal .modal-content { position: relative; width: 600rpx; background: #FFFFFF; border-radius: 48rpx; padding: 60rpx 40rpx; display: flex; flex-direction: column; align-items: center; z-index: 1; transform: scale(0.8); transition: all 0.3s ease; } .qrcode-modal.show .modal-content { transform: scale(1); } .qrcode-modal .close-btn { position: absolute; top: 30rpx; right: 30rpx; width: 60rpx; height: 60rpx; display: flex; align-items: center; justify-content: center; } .qrcode-modal .close-icon { width: 32rpx; height: 32rpx; } .qrcode-modal .modal-title { font-size: 40rpx; font-weight: bold; color: #333; margin-bottom: 12rpx; } .qrcode-modal .modal-subtitle { font-size: 28rpx; color: #666; margin-bottom: 40rpx; } .qrcode-modal .qrcode-container { width: 400rpx; height: 400rpx; background: #f9f9f9; border: 2rpx solid #eee; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; margin-bottom: 24rpx; overflow: hidden; } .qrcode-modal .qrcode-image { width: 360rpx; height: 360rpx; } .qrcode-modal .modal-tips { font-size: 24rpx; color: #999; margin-bottom: 40rpx; } .qrcode-modal .save-btn { width: 100%; height: 88rpx; background: #07C160; color: #fff; border-radius: 44rpx; display: flex; align-items: center; justify-content: center; font-size: 32rpx; font-weight: bold; } .qrcode-modal .save-btn:active { opacity: 0.8; }