.container-box { display: flex; flex-direction: column; height: 100vh; overflow: hidden; } /* 专家卡片*/ .expert-card { background-image: linear-gradient(to top, #48c6ef 0%, #6f86d6 100%); padding: 36rpx 32rpx; display: flex; align-items: center; color: white; box-shadow: 0 8rpx 24rpx rgba(0, 30, 10, 0.25); flex-shrink: 0; position: relative; } .avatar-wrapper { position: relative; margin-right: 28rpx; flex-shrink: 0; } .avatar { width: 140rpx; height: 140rpx; border-radius: 70rpx; border: 4rpx solid rgba(255, 255, 255, 0.25); background-color: #e6f0ea; box-shadow: 0 6rpx 16rpx rgba(0, 0, 0, 0.15); transition: transform 0.2s; } .avatar:active { transform: scale(0.98); } .online-status { position: absolute; bottom: 6rpx; right: 6rpx; width: 28rpx; height: 28rpx; border-radius: 14rpx; border: 4rpx solid #1a4b2e; background-color: #a0a0a0; transition: background-color 0.2s; } .online-status.online { background-color: #4caf50; box-shadow: 0 0 0 2rpx rgba(76, 175, 80, 0.3); } .online-status.offline { background-color: #9e9e9e; } .info { flex: 1; display: flex; flex-direction: column; min-width: 0; } .name-row { display: flex; align-items: center; margin-bottom: 12rpx; flex-wrap: wrap; gap: 16rpx; } .name { font-size: 44rpx; font-weight: 600; line-height: 1.2; letter-spacing: 1rpx; text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.2); } .online-text { font-size: 24rpx; background-color: rgba(255, 255, 255, 0.2); padding: 3rpx 14rpx; border-radius: 30rpx; backdrop-filter: blur(4px); border: 1rpx solid rgba(255, 255, 255, 0.15); font-weight: 400; color: #ffecb3; } .specialty { font-size: 26rpx; opacity: 0.95; margin-bottom: 16rpx; display: flex; align-items: center; background-color: rgba(255, 255, 255, 0.1); padding: 8rpx 20rpx; border-radius: 40rpx; width: fit-content; backdrop-filter: blur(4px); border: 1rpx solid rgba(255, 255, 255, 0.1); } .experience-tag { display: flex; align-items: center; background-color: rgba(255, 255, 255, 0.1); padding: 8rpx 22rpx 8rpx 18rpx; border-radius: 60rpx; width: fit-content; } .tag-text { font-size: 26rpx; font-weight: 400; } /* 列表头部 */ .list-header { padding: 28rpx 32rpx 20rpx; display: flex; justify-content: space-between; align-items: center; background-color: transparent; flex-shrink: 0; } .list-title-wrap { display: flex; align-items: baseline; gap: 12rpx; } .list-title { font-size: 34rpx; font-weight: 600; color: #1f2d3d; letter-spacing: 0.5rpx; } .list-count { font-size: 28rpx; color: #5f6b7a; background-color: #e9ecf0; padding: 4rpx 16rpx; border-radius: 30rpx; font-weight: 500; } /* 滚动区域 */ .apply-scroll { flex: 1; overflow-y: auto; padding: 0 32rpx; background-color: transparent; box-sizing: border-box; } .apply-list { padding: 8rpx 0 30rpx; } /* 申请项卡片 */ .apply-item { background-color: #ffffff; border-radius: 32rpx; padding: 32rpx 28rpx; margin-bottom: 20rpx; display: flex; align-items: flex-start; box-shadow: 0 8rpx 24rpx rgba(0, 20, 10, 0.04); transition: all 0.25s ease; border: 1rpx solid #edf2f7; position: relative; backdrop-filter: blur(2px); } .apply-item:active { background-color: #fafdff; transform: translateY(-4rpx); box-shadow: 0 16rpx 32rpx rgba(30, 60, 40, 0.08); border-color: #cbd5e0; } .user-avatar { width: 96rpx; height: 96rpx; border-radius: 10rpx; background-color: #dde5ed; margin-right: 28rpx; flex-shrink: 0; border: 2rpx solid #e2e8f0; transition: border-color 0.2s; } .apply-item:active .user-avatar { border-color: #2b6c4e; } .apply-content { flex: 1; min-width: 0; } .apply-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16rpx; } .user-info { display: flex; align-items: center; gap: 16rpx; flex-wrap: wrap; flex: 1; min-width: 0; } .user-name { font-size: 34rpx; font-weight: 600; color: #1e293b; max-width: 240rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .apply-time { font-size: 24rpx; color: #94a3b8; flex-shrink: 0; margin-left: 16rpx; background-color: #f8fafc; padding: 4rpx 16rpx; border-radius: 30rpx; } .message-area { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22rpx; } .message-preview { font-size: 28rpx; color: #475569; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0; margin-right: 16rpx; line-height: 1.4; } .unread-badge { background: linear-gradient(145deg, #ff5f6d, #ff7b89); color: white; font-size: 22rpx; font-weight: 600; min-width: 40rpx; height: 40rpx; line-height: 40rpx; text-align: center; border-radius: 40rpx; padding: 0 12rpx; flex-shrink: 0; box-shadow: 0 4rpx 8rpx rgba(255, 95, 109, 0.25); border: 2rpx solid rgba(255, 255, 255, 0.5); } /* 空状态 */ .empty-state { text-align: center; padding: 80rpx 0; color: #94a3b8; display: flex; flex-direction: column; align-items: center; } .empty-text { font-size: 32rpx; font-weight: 500; color: #64748b; margin-bottom: 8rpx; } .empty-subtext { font-size: 26rpx; color: #a0afbe; } /* 加载更多 */ .loading-more { text-align: center; padding: 30rpx 0 40rpx; color: #5f7d9c; font-size: 26rpx; display: flex; align-items: center; justify-content: center; gap: 16rpx; } .loading-spinner { width: 32rpx; height: 32rpx; border: 4rpx solid #d1d9e6; border-top-color: #2b6c4e; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .no-more { text-align: center; padding: 30rpx 0; color: #9aa9b9; font-size: 26rpx; position: relative; } .no-more::before, .no-more::after { content: ''; position: absolute; top: 50%; width: 60rpx; height: 1rpx; background-color: #dce3ec; } .no-more::before { left: 60rpx; } .no-more::after { right: 60rpx; }