/* 全局 */ page { background: linear-gradient(135deg, #f5f7fa 0%, #e4e9f2 100%); height: 100vh; display: flex; flex-direction: column; } .page-container { flex: 1; display: flex; flex-direction: column; height: 100%; } /* 固定头部区域 */ .fixed-header { flex-shrink: 0; background: rgba(255,255,255,0.7); backdrop-filter: blur(20px); padding: 20rpx 30rpx 10rpx; z-index: 10; } .header-bar { display: flex; justify-content: space-between; align-items: center; } .title { font-size: 44rpx; font-weight: 700; color: #2c3e50; } .refresh-btn { width: 60rpx; height: 60rpx; border-radius: 50%; background: rgba(255,255,255,0.8); display: flex; align-items: center; justify-content: center; font-size: 36rpx; color: #5a6d7e; transition: all 0.3s; } .refresh-btn:active { background: rgba(200,200,200,0.5); } /* 搜索栏 */ .search-box { display: flex; margin: 15rpx 0; background: white; border-radius: 40rpx; padding: 8rpx 20rpx; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.05); } .search-input { flex: 1; height: 70rpx; font-size: 28rpx; } .search-icon { width: 70rpx; display: flex; align-items: center; justify-content: center; font-size: 36rpx; color: #7f8c8d; } /* 筛选行 */ .filter-row { display: flex; justify-content: space-between; align-items: center; margin-top: 5rpx; } .filter-item { display: flex; align-items: center; font-size: 26rpx; color: #2c3e50; } .picker-trigger { margin-left: 10rpx; background: rgba(255,255,255,0.8); border-radius: 20rpx; padding: 6rpx 20rpx; border: 1rpx solid #e0e0e0; min-width: 100rpx; text-align: center; } .filter-btn { background: linear-gradient(135deg, #6c8cbf, #8aa5d0); color: white; border-radius: 30rpx; padding: 10rpx 35rpx; font-size: 26rpx; font-weight: 500; } /* 统计卡片 */ .stats-cards { display: flex; justify-content: space-around; margin-top: 15rpx; margin-bottom: 10rpx; padding: 25rpx 0; background: rgba(255,255,255,0.65); backdrop-filter: blur(15px); border-radius: 24rpx; box-shadow: 0 8rpx 20rpx rgba(0,0,0,0.05); } .stat-item { display: flex; flex-direction: column; align-items: center; } .stat-num { font-size: 40rpx; font-weight: 700; color: #2c3e50; } .stat-label { font-size: 24rpx; color: #7f8c8d; margin-top: 8rpx; } /* 列表滚动区域(占据剩余高度) */ .list-scroll { flex: 1; padding: 0 30rpx; box-sizing: border-box; } /* 列表内部容器 */ .list-container { padding-bottom: 30rpx; } /* 打手卡片 */ .dashou-card { display: flex; align-items: center; background: rgba(255,255,255,0.75); backdrop-filter: blur(12px); border-radius: 24rpx; padding: 24rpx; margin-bottom: 20rpx; box-shadow: 0 6rpx 16rpx rgba(0,0,0,0.06); transition: transform 0.2s; } .dashou-card:active { transform: scale(0.99); } .avatar { width: 120rpx; height: 120rpx; border-radius: 50%; border: 3rpx solid rgba(255,255,255,0.8); box-shadow: 0 4rpx 10rpx rgba(0,0,0,0.1); margin-right: 20rpx; flex-shrink: 0; } .info-right { flex: 1; display: flex; flex-direction: column; } .row1 { display: flex; justify-content: space-between; align-items: center; } .nick { font-size: 32rpx; font-weight: 600; color: #1e272e; max-width: 200rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .badges { display: flex; gap: 10rpx; } .badge { padding: 4rpx 16rpx; border-radius: 20rpx; font-size: 22rpx; font-weight: 500; color: white; } .online { background: #27ae60; } .offline { background: #bdc3c7; } .normal { background: #2980b9; } .banned { background: #e74c3c; } .uid { font-size: 24rpx; color: #7f8c8d; margin: 6rpx 0; } .row2 { display: flex; flex-wrap: wrap; gap: 12rpx; margin: 6rpx 0; } .tag { background: #f0f3f7; padding: 4rpx 14rpx; border-radius: 16rpx; font-size: 22rpx; color: #34495e; } .contact-btn { margin-top: 8rpx; align-self: flex-end; background: linear-gradient(135deg, #f39c12, #e67e22); color: white; padding: 10rpx 28rpx; border-radius: 30rpx; font-size: 26rpx; font-weight: 500; box-shadow: 0 4rpx 8rpx rgba(243,156,18,0.3); } /* 加载状态 */ .load-state { text-align: center; padding: 30rpx; color: #95a5a6; font-size: 24rpx; } /* 加载更多按钮(新增) */ .load-more-btn { width: 280rpx; height: 80rpx; line-height: 80rpx; text-align: center; background: rgba(108, 140, 191, 0.15); backdrop-filter: blur(10px); border-radius: 40rpx; font-size: 28rpx; font-weight: 500; color: #5a6d7e; border: 1rpx solid rgba(108, 140, 191, 0.3); margin: 20rpx auto; } .load-more-btn:active { background: rgba(108, 140, 191, 0.25); transform: scale(0.97); } .empty { display: flex; flex-direction: column; align-items: center; padding-top: 80rpx; } .empty image { width: 240rpx; height: 240rpx; opacity: 0.5; } .empty text { margin-top: 30rpx; color: #b0b8c0; font-size: 28rpx; }