.page { min-height: 100vh; background: linear-gradient(180deg, #fff 0%, #f0f1f6 60%, #f0f1f6 100%); display: flex; flex-direction: column; } .nav { position: fixed; top: 0; left: 0; right: 0; background: #fff; display: flex; flex-direction: row; align-items: flex-end; padding-left: 24rpx; padding-right: 24rpx; padding-bottom: 16rpx; box-sizing: border-box; z-index: 100; } .nav-back { width: 60rpx; height: 64rpx; display: flex; align-items: center; justify-content: center; } .nav-back-icon { width: 20rpx; height: 20rpx; border-left: 4rpx solid #333; border-bottom: 4rpx solid #333; transform: rotate(45deg); } .nav-title { font-size: 30rpx; font-weight: 600; color: #222; margin-left: 16rpx; line-height: 64rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160rpx; flex-shrink: 0; } .nav-right { flex: 1; display: flex; flex-direction: row; align-items: center; justify-content: flex-end; gap: 6px; // 小程序需要为右侧胶囊按钮留出空间 /* #ifdef MP-WEIXIN */ padding-right: 100px; /* #endif */ } .nav-btn { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 4px; padding: 4px 10px; height: 28px; background: rgba(107, 186, 231, 0.8); border: none; border-radius: 14px; box-sizing: border-box; white-space: nowrap; flex-shrink: 0; margin: 0; line-height: 1; } .nav-btn::after { border: none; } .nav-btn-text { color: #173294; font-size: 12px; font-weight: 500; line-height: 1; } .meeting-btn { background: linear-gradient(90deg, #52c41a 0%, #73d13d 100%); } .meeting-text { color: #fff; } .chat-area { flex: 1; margin-top: 176rpx; padding: 24rpx; padding-bottom: 180rpx; } .message-list { display: flex; flex-direction: column; } .msg { display: flex; margin-bottom: 20rpx; } .msg.ai { justify-content: flex-start; } .msg.user { justify-content: flex-end; } .message-row { display: flex; flex-direction: row; align-items: flex-start; gap: 16rpx; } .other-row { justify-content: flex-start; } .self-row { justify-content: flex-end; } .avatar { width: 72rpx; height: 72rpx; border-radius: 50%; background: linear-gradient(145deg, #e8f7ff 0%, #c5e4ff 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .self-avatar { background: linear-gradient(145deg, #e9f1ff 0%, #c5d9ff 100%); } .avatar-text { font-size: 28rpx; font-weight: 600; color: #173294; } .message-content { display: flex; flex-direction: column; max-width: 480rpx; } .self-row .message-content { align-items: flex-end; } .sender-name { font-size: 24rpx; color: #999; margin-bottom: 8rpx; } .bubble { max-width: 480rpx; padding: 18rpx 20rpx; border-radius: 18rpx; font-size: 28rpx; line-height: 1.6; } .other-bubble { background: #fff; color: #222; } .self-bubble { background: #e9f1ff; color: #173294; } .message-text { font-size: 28rpx; line-height: 1.6; white-space: pre-wrap; } .message-time { font-size: 22rpx; color: #999; margin-top: 8rpx; } .footer { position: fixed; left: 0; right: 0; bottom: 0; background: #f0f1f6; padding: 20rpx 24rpx 40rpx; z-index: 50; } .input-row { position: relative; display: flex; align-items: center; background: #fff; border-radius: 50rpx; padding: 10rpx 96rpx 10rpx 18rpx; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.04); } .chat-input { flex: 1; font-size: 28rpx; color: #222; } .send-btn { position: absolute; right: 12rpx; top: 50%; transform: translateY(-50%); width: 60rpx; height: 60rpx; border-radius: 30rpx; border: 2rpx solid #8dbbff; background: #e9f1ff; display: flex; align-items: center; justify-content: center; } .send-text { font-size: 24rpx; color: #4b87ff; }