/* ========================================== 天梯排名页面 - 浅色高级感设计 ========================================== */ .page-container { min-height: 100vh; background: var(--bg-page); position: relative; overflow: hidden; } /* 顶部装饰背景 */ .hero-section { position: relative; padding: 32rpx 24rpx 24rpx; background: linear-gradient(180deg, #FFF5F0 0%, var(--bg-page) 100%); } .hero-pattern { position: absolute; top: -80rpx; right: -60rpx; width: 300rpx; height: 300rpx; background: radial-gradient(circle, rgba(255, 107, 53, 0.1) 0%, transparent 70%); border-radius: 50%; animation: pulse 4s ease-in-out infinite; } .hero-pattern-2 { position: absolute; top: 120rpx; left: -80rpx; width: 200rpx; height: 200rpx; background: radial-gradient(circle, rgba(0, 201, 167, 0.06) 0%, transparent 70%); border-radius: 50%; } /* 门店信息头部 */ .store-header { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin-bottom: 20rpx; animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1); } .store-info { display: flex; align-items: center; gap: 12rpx; } .store-dot { width: 12rpx; height: 12rpx; border-radius: 50%; background: var(--accent); animation: pulse 2s ease-in-out infinite; } .store-name { font-size: 28rpx; font-weight: 600; color: var(--text-primary); } .change-store-btn { display: flex; align-items: center; gap: 6rpx; padding: 12rpx 20rpx; background: var(--bg-white); border-radius: var(--radius-full); box-shadow: var(--shadow-sm); transition: all 0.3s ease; } .change-store-btn:active { transform: scale(0.96); } .change-store-text { font-size: 24rpx; color: var(--text-secondary); } .change-store-arrow { font-size: 20rpx; color: var(--text-muted); } /* 页面标题 */ .page-header { position: relative; z-index: 1; text-align: center; margin-bottom: 8rpx; } .page-title { display: block; font-size: 44rpx; font-weight: 700; color: var(--text-primary); margin-bottom: 8rpx; letter-spacing: 2rpx; } .page-subtitle { display: block; font-size: 26rpx; color: var(--text-muted); } /* 主要内容区域 */ .main-content { padding: 0 24rpx; } /* 筛选标签栏 */ .filter-bar { display: flex; gap: 16rpx; margin-bottom: 24rpx; } .filter-item { flex: 1; padding: 20rpx; background: var(--bg-white); border-radius: var(--radius-full); text-align: center; font-size: 26rpx; color: var(--text-secondary); box-shadow: var(--shadow-sm); transition: all 0.3s ease; } .filter-item.active { background: var(--primary-gradient); color: var(--text-white); box-shadow: var(--shadow-primary); } .filter-item:active { transform: scale(0.96); } /* 排名列表 */ .ranking-list { } .ranking-scroll { } .ranking-item { display: flex; align-items: center; padding: 20rpx 24rpx; background: var(--bg-white); border-radius: var(--radius-lg); margin-bottom: 12rpx; box-shadow: var(--shadow-sm); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .ranking-item:active { transform: scale(0.98); } .ranking-item.top-rank { background: linear-gradient(135deg, #FFFBF8, var(--bg-white)); border: 1rpx solid rgba(255, 107, 53, 0.1); } /* 排名徽章 */ .rank-badge { width: 52rpx; height: 52rpx; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 26rpx; font-weight: 700; margin-right: 16rpx; flex-shrink: 0; } .rank-badge.top1 { background: linear-gradient(135deg, #FFE082 0%, #FFD700 100%); color: #8B4513; box-shadow: 0 4rpx 16rpx rgba(255, 215, 0, 0.4); font-size: 28rpx; } .rank-badge.top2 { background: linear-gradient(135deg, #F5F5F5 0%, #C0C0C0 100%); color: #4A4A4A; box-shadow: 0 4rpx 12rpx rgba(192, 192, 192, 0.4); font-size: 28rpx; } .rank-badge.top3 { background: linear-gradient(135deg, #DEB887 0%, #CD853F 100%); color: #5C4033; box-shadow: 0 4rpx 12rpx rgba(205, 133, 63, 0.4); font-size: 28rpx; } .rank-badge.normal { background: var(--bg-soft); color: var(--text-muted); } /* 选手头像 */ .player-avatar { width: 72rpx; height: 72rpx; border-radius: 50%; margin-right: 16rpx; border: 2rpx solid var(--bg-white); box-shadow: var(--shadow-sm); flex-shrink: 0; } /* 选手信息 */ .player-info { flex: 1; overflow: hidden; } .player-name { display: block; font-size: 28rpx; font-weight: 600; color: var(--text-primary); margin-bottom: 6rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .player-meta { display: flex; align-items: center; gap: 12rpx; } .player-level { display: inline-flex; padding: 4rpx 12rpx; border-radius: var(--radius-full); font-size: 20rpx; font-weight: 600; } .player-level.lv1 { background: #E8F5E9; color: #2E7D32; } .player-level.lv2 { background: #E3F2FD; color: #1565C0; } .player-level.lv3 { background: #FFF3E0; color: #E65100; } .player-level.lv4 { background: #FCE4EC; color: #C2185B; } .player-level.lv5 { background: #F3E5F5; color: #7B1FA2; } .player-stats { font-size: 22rpx; color: var(--text-muted); } /* 战力值 */ .player-power { text-align: right; flex-shrink: 0; } .power-value { display: block; font-size: 32rpx; font-weight: 700; color: var(--primary); } .power-label { font-size: 22rpx; color: var(--text-muted); } /* 空状态 */ .empty-state { display: flex; flex-direction: column; align-items: center; padding: 80rpx 48rpx; } .empty-icon { width: 160rpx; height: 160rpx; margin-bottom: 24rpx; opacity: 0.7; } .empty-title { font-size: 28rpx; color: var(--text-secondary); margin-bottom: 8rpx; } .empty-desc { font-size: 24rpx; color: var(--text-muted); } /* 加载状态 */ .loading-state { display: flex; align-items: center; justify-content: center; padding: 48rpx; color: var(--text-muted); font-size: 26rpx; } /* 加载更多 */ .load-more { text-align: center; padding: 32rpx; color: var(--text-muted); font-size: 26rpx; } /* 底部安全区域 */ .safe-bottom { height: 80rpx; }