page { width: 100%; overflow-x: hidden; background: #fff; } .page-container { min-height: 100vh; display: flex; flex-direction: column; width: 100%; overflow-x: hidden; background: #fff; } /* 顶部导航栏已移除,改用全局 unified-header */ /* 免费畅聊提醒条 (嵌入式) */ .free-chat-banner { margin: 20rpx 40rpx 10rpx; padding: 24rpx 32rpx; background: #FFF5F5; border-radius: 20rpx; border: 2rpx solid #FFE4E4; } .free-chat-banner-content { display: flex; align-items: center; gap: 16rpx; } .banner-clock-icon { width: 32rpx; height: 32rpx; } .banner-text { font-size: 28rpx; color: #FF4D4F; font-weight: 500; } /* 消息列表 */ .message-list { flex: 1; padding-top: 174rpx; /* 只留出 header 的位置 */ padding-bottom: 160rpx; } .message-item { display: flex; align-items: flex-start; padding: 32rpx 40rpx; border-bottom: 2rpx solid #f3f4f6; gap: 32rpx; } /* 头像区域 */ .avatar-section { position: relative; flex-shrink: 0; } .avatar-wrapper { width: 136rpx; height: 136rpx; border-radius: 32rpx; overflow: hidden; } .avatar-wrapper.ai { border: 2rpx solid #f3f4f6; box-shadow: 0 2rpx 6rpx rgba(0, 0, 0, 0.1), 0 2rpx 4rpx -2rpx rgba(0, 0, 0, 0.1); } .avatar-wrapper.system { display: flex; align-items: center; justify-content: center; box-shadow: 0 8rpx 12rpx -2rpx rgba(0, 0, 0, 0.1); } .avatar-wrapper.system.pink { background: linear-gradient(180deg, #ff9a9e 0%, #fecfef 100%); } .avatar-wrapper.system.purple { background: linear-gradient(180deg, #a18cd1 0%, #fbc2eb 100%); } .avatar-image { width: 100%; height: 100%; } .avatar-icon { width: 56rpx; height: 56rpx; } .badge { position: absolute; top: -16rpx; right: -8rpx; min-width: 48rpx; height: 48rpx; background: #ff3b30; border: 2rpx solid #fff; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; padding: 0 14rpx; box-shadow: 0 2rpx 6rpx rgba(0, 0, 0, 0.1), 0 2rpx 4rpx -2rpx rgba(0, 0, 0, 0.1); font-size: 26rpx; font-weight: bold; color: #fff; } /* 内容区域 */ .message-content { flex: 1; min-width: 0; overflow: hidden; padding-top: 12rpx; } .message-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 8rpx; } .message-name { font-size: 36rpx; font-weight: bold; color: #101828; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .message-time { font-size: 26rpx; color: #99a1af; flex-shrink: 0; margin-left: 16rpx; } .message-preview { font-size: 30rpx; color: #6a7282; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } /* 底部导航栏 - 完全匹配Figma设计 */ .custom-tabbar { position: fixed; bottom: 0; left: 0; right: 0; height: 194rpx; background: #fff; 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 { width: 68rpx; height: 68rpx; } .message-icon-wrapper .tabbar-icon { width: 68rpx; height: 68rpx; } /* 加载状态 */ .loading-tip { display: flex; justify-content: center; padding: 40rpx; color: #99a1af; font-size: 28rpx; } /* 空状态 */ .empty-tip { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 40rpx; color: #99a1af; font-size: 30rpx; } .empty-sub { font-size: 26rpx; margin-top: 16rpx; color: #c0c5ce; } /* 滑动删除样式 */ .swipe-container { position: relative; overflow: hidden; } .swipe-content { position: relative; z-index: 2; background: #fff; transition: transform 0.2s ease-out; } .swipe-content.swiped { transform: translateX(-160rpx); } .swipe-actions { position: absolute; top: 0; right: 0; bottom: 0; width: 160rpx; display: flex; align-items: stretch; z-index: 1; opacity: 0; transition: opacity 0.2s ease-out; } .swipe-actions.show { opacity: 1; } .action-btn { flex: 1; display: flex; align-items: center; justify-content: center; } .action-btn.delete { background: linear-gradient(135deg, #ff6b6b 0%, #ee5a5a 100%); } .action-btn text { color: #fff; font-size: 28rpx; font-weight: 500; }