/* pages/support/support.wxss */ /* 样式复用自 AI聊天详情页 (pages/chat-detail/chat-detail.wxss) 以保持一致体验 */ /* 页面容器 */ .page-container { min-height: 100vh; background: #F5F2FD; display: flex; flex-direction: column; position: relative; } /* 聊天区域包装器 - 使用固定定位确保正确布局 */ .chat-area-wrapper { position: fixed; left: 0; right: 0; bottom: 120rpx; display: flex; flex-direction: column; overflow: hidden; } /* 面板打开时的透明遮罩层 */ .panel-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: transparent; z-index: 98; } /* 状态栏区域 */ .status-bar-area { position: fixed; top: 0; left: 0; right: 0; background: rgba(242, 237, 255, 0.6); z-index: 101; } /* 顶部导航栏 */ .nav-header { position: fixed; left: 0; right: 0; background: rgba(255, 255, 255, 0.95); border-bottom: 2rpx solid #F3F4F6; z-index: 100; } .nav-content { display: flex; align-items: center; justify-content: space-between; height: 98rpx; padding: 0 16rpx; } /* 返回按钮 */ .nav-back { display: flex; align-items: center; gap: 4rpx; padding: 16rpx; min-width: 160rpx; } .back-icon { width: 56rpx; height: 56rpx; } .back-text { font-size: 34rpx; font-weight: 700; color: #914584; } /* 中间角色信息 */ .nav-center { display: flex; align-items: center; gap: 16rpx; } .nav-avatar-wrap { width: 64rpx; height: 64rpx; border-radius: 50%; overflow: hidden; border: 2rpx solid #E5E7EB; display: flex; align-items: center; justify-content: center; background: #F3F4F6; } .nav-avatar { width: 80%; height: 80%; } .nav-name { font-size: 34rpx; font-weight: 700; color: #101828; } .online-dot { width: 16rpx; height: 16rpx; background: #00C950; border-radius: 50%; } .nav-right-placeholder { min-width: 160rpx; } /* 聊天内容区域 */ .chat-scroll { height: 100%; padding: 0 32rpx; padding-top: 20rpx; padding-bottom: 20rpx; box-sizing: border-box; } .chat-scroll::-webkit-scrollbar { display: none; width: 0; height: 0; } .encrypt-hint { text-align: center; padding: 32rpx 0 48rpx; } .encrypt-hint text { font-size: 24rpx; color: #99A1AF; } .chat-list { display: flex; flex-direction: column; gap: 48rpx; } .chat-item { display: flex; gap: 24rpx; align-items: flex-start; } .chat-item.me { justify-content: flex-end; } .avatar-wrap { width: 88rpx; height: 88rpx; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2rpx solid rgba(255, 255, 255, 0.5); box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1); display: flex; align-items: center; justify-content: center; background: #FFFFFF; } .chat-avatar { width: 100%; height: 100%; } .chat-item.other .chat-avatar { width: 70%; height: 70%; } .message-content { max-width: 540rpx; display: flex; flex-direction: column; gap: 8rpx; } .message-content.me { align-items: flex-end; } .chat-bubble { padding: 24rpx 40rpx; word-break: break-all; box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1); } .chat-bubble.other { background: #FFFFFF; border-radius: 12rpx 44rpx 44rpx 44rpx; } .chat-bubble.me { background: #914584; border-radius: 44rpx 12rpx 44rpx 44rpx; } .chat-text { font-size: 34rpx; line-height: 1.625; } .chat-bubble.other .chat-text { color: #1E2939; } .chat-bubble.me .chat-text { color: #FFFFFF; } .message-time { font-size: 22rpx; color: #99A1AF; padding: 0 8rpx; } .message-actions { display: flex; align-items: center; gap: 16rpx; } /* 正在输入动画 */ .chat-bubble.typing { display: flex; gap: 12rpx; padding: 28rpx 40rpx; } .typing-dot { width: 16rpx; height: 16rpx; background: #9CA3AF; border-radius: 50%; animation: typing 1.4s infinite ease-in-out; } .typing-dot:nth-child(1) { animation-delay: 0s; } .typing-dot:nth-child(2) { animation-delay: 0.2s; } .typing-dot:nth-child(3) { animation-delay: 0.4s; } @keyframes typing { 0%, 60%, 100% { transform: translateY(0); opacity: 0.4; } 30% { transform: translateY(-12rpx); opacity: 1; } } .chat-bottom-space { height: 40rpx; } /* 底部输入区域 */ .bottom-input-area { position: fixed; bottom: 0; left: 0; right: 0; background: #FFFFFF; border-top: 2rpx solid #F3F4F6; box-shadow: 0 -10rpx 40rpx rgba(0, 0, 0, 0.03); z-index: 100; padding-bottom: env(safe-area-inset-bottom); } .input-container { display: flex; align-items: center; gap: 16rpx; padding: 24rpx 32rpx; padding-bottom: 16rpx; } /* Figma设计样式 - 底部输入区域 */ .figma-input-container { display: flex; align-items: center; gap: 16rpx; padding: 24rpx 20rpx; padding-bottom: 20rpx; } .figma-voice-btn { width: 80rpx; height: 80rpx; background: #F3F4F6; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .figma-btn-icon { width: 80rpx; height: 80rpx; } .figma-input-wrap { flex: 1; background: #F9FAFB; border: 2rpx solid #F3F4F6; border-radius: 32rpx; padding: 0 32rpx; height: 96rpx; display: flex; align-items: center; } .figma-text-input { width: 100%; height: 100%; font-size: 36rpx; color: #101828; font-family: Arial, sans-serif; } .figma-emoji-btn { width: 80rpx; height: 80rpx; background: transparent; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .figma-emoji-btn.active { background: #E9D5FF; } .figma-send-btn { width: 80rpx; height: 80rpx; background: #914584; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .figma-send-btn .figma-btn-icon { width: 44rpx; height: 44rpx; } .figma-add-btn { width: 80rpx; height: 80rpx; background: transparent; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .figma-add-btn.active { background: #FCE7F3; } /* 面板面板显示时,移除底部安全区域 */ .bottom-input-area.panel-open { padding-bottom: 0; } /* 语音录制按钮 */ .voice-record-btn { flex: 1; background: #F3F4F6; border: 2rpx solid #E5E7EB; border-radius: 32rpx; height: 96rpx; display: flex; align-items: center; justify-content: center; font-size: 32rpx; font-weight: 500; color: #374151; transition: all 0.15s; } .voice-record-btn:active, .voice-record-btn.recording { background: #E5E7EB; transform: scale(0.98); } /* 录音提示浮层 */ .voice-recording-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.3); display: flex; align-items: center; justify-content: center; z-index: 200; } .voice-recording-popup { width: 320rpx; height: 320rpx; background: rgba(0, 0, 0, 0.8); border-radius: 32rpx; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24rpx; } .voice-recording-popup.cancel { background: rgba(220, 38, 38, 0.9); } .cancel-icon { width: 80rpx; height: 80rpx; filter: brightness(0) invert(1); } .voice-wave { display: flex; align-items: center; justify-content: center; gap: 12rpx; height: 100rpx; } .wave-bar { width: 12rpx; height: 40rpx; background: #22C55E; border-radius: 6rpx; animation: wave 0.8s ease-in-out infinite; } .wave-bar:nth-child(1) { animation-delay: 0s; height: 40rpx; } .wave-bar:nth-child(2) { animation-delay: 0.1s; height: 60rpx; } .wave-bar:nth-child(3) { animation-delay: 0.2s; height: 80rpx; } .wave-bar:nth-child(4) { animation-delay: 0.3s; height: 60rpx; } .wave-bar:nth-child(5) { animation-delay: 0.4s; height: 40rpx; } @keyframes wave { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.5); } } .voice-tip { font-size: 28rpx; color: #FFFFFF; } .voice-duration-tip { font-size: 48rpx; font-weight: 700; color: #FFFFFF; } /* 表情面板 */ .emoji-panel { background: #FFFFFF; border-top: 2rpx solid #F3F4F6; } .emoji-scroll { height: 480rpx; padding: 24rpx; box-sizing: border-box; } .emoji-grid { display: flex; flex-wrap: wrap; } .emoji-item { width: 12.5%; height: 88rpx; display: flex; align-items: center; justify-content: center; } .emoji-text { font-size: 56rpx; line-height: 1; } .emoji-item:active { background: #F3F4F6; border-radius: 16rpx; } /* 更多功能面板 */ .more-panel { background: #F5F5F5; border-top: 2rpx solid #E5E7EB; } .more-panel-content { padding: 40rpx 32rpx 24rpx; } .more-grid { display: flex; justify-content: space-between; } .more-grid.ai-chat-grid { justify-content: center; gap: 90rpx; padding: 0 48rpx; } .more-item { display: flex; flex-direction: column; align-items: center; gap: 16rpx; width: 25%; } .more-icon-wrap { width: 112rpx; height: 112rpx; background: #FFFFFF; border-radius: 24rpx; display: flex; align-items: center; justify-content: center; position: relative; } .more-icon-wrap.figma-style { width: 128rpx; height: 128rpx; background: transparent; border-radius: 0; box-shadow: none; } .figma-action-icon { width: 128rpx; height: 128rpx; } .more-text { font-size: 28rpx; font-weight: 700; color: #4A5565; } .more-panel-safe { height: env(safe-area-inset-bottom); background: #F5F5F5; } /* 图片消息气泡 */ .chat-bubble-image { max-width: 400rpx; border-radius: 24rpx; overflow: hidden; box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1); } .chat-bubble-image.other { border-radius: 12rpx 24rpx 24rpx 24rpx; } .chat-bubble-image.me { border-radius: 24rpx 12rpx 24rpx 24rpx; } .message-image { width: 100%; min-width: 200rpx; max-width: 400rpx; display: block; } /* 语音消息气泡 */ .chat-bubble.voice { display: flex; align-items: center; gap: 16rpx; min-width: 160rpx; padding: 24rpx 32rpx; } .chat-bubble.voice.other { flex-direction: row; } .chat-bubble.voice.me { flex-direction: row-reverse; } .voice-waves { display: flex; align-items: center; gap: 6rpx; height: 40rpx; } .voice-wave-bar { width: 6rpx; height: 20rpx; border-radius: 3rpx; background: #9CA3AF; } .chat-bubble.voice.me .voice-wave-bar { background: rgba(255, 255, 255, 0.7); } .voice-wave-bar:nth-child(1) { height: 16rpx; } .voice-wave-bar:nth-child(2) { height: 28rpx; } .voice-wave-bar:nth-child(3) { height: 20rpx; } .chat-bubble.voice.playing .voice-wave-bar { animation: voiceWave 0.8s ease-in-out infinite; } .chat-bubble.voice.playing .voice-wave-bar:nth-child(1) { animation-delay: 0s; } .chat-bubble.voice.playing .voice-wave-bar:nth-child(2) { animation-delay: 0.2s; } .chat-bubble.voice.playing .voice-wave-bar:nth-child(3) { animation-delay: 0.4s; } @keyframes voiceWave { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.8); } } .voice-duration { font-size: 28rpx; color: #6B7280; } .chat-bubble.voice.me .voice-duration { color: rgba(255, 255, 255, 0.9); }