/* AI助手Web客户端样式 - 100%还原原型设计 */ @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'); @import url('https://fonts.googleapis.com/css2?family=Pacifico&family=Inter:wght@300;400;500;600;700&display=swap'); /* 全局样式 */ body { min-height: 1024px; background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%); overflow: hidden; font-family: 'Inter', sans-serif; margin: 0; padding: 0; } /* 玻璃效果 */ .glass-effect { background: rgba(30, 41, 59, 0.3); backdrop-filter: blur(10px); border: 1px solid rgba(100, 100, 100, 0.2); } /* 霓虹边框 */ .neon-border { box-shadow: 0 0 10px rgba(99, 102, 241, 0.5), 0 0 20px rgba(99, 102, 241, 0.3); } /* 用户消息气泡 */ .user-bubble { background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); box-shadow: 0 0 15px rgba(99, 102, 241, 0.4); } /* AI消息气泡 */ .ai-bubble { background: linear-gradient(135deg, #06b6d4 0%, #10b981 100%); box-shadow: 0 0 15px rgba(6, 182, 212, 0.4); } /* 脉冲动画 */ .pulse { animation: pulse 2s infinite; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(99, 102, 241, 0); } 100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); } } /* 发光按钮 */ .glow-button { transition: all 0.3s ease; } .glow-button:hover { box-shadow: 0 0 15px rgba(99, 102, 241, 0.8); transform: translateY(-2px); } /* 粒子背景 */ .particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; } .particle { position: absolute; border-radius: 50%; background: rgba(99, 102, 241, 0.3); animation: float 6s infinite ease-in-out; } @keyframes float { 0%, 100% { transform: translateY(0) translateX(0); opacity: 0.3; } 50% { transform: translateY(-20px) translateX(10px); opacity: 0.8; } } /* 打字指示器 */ .typing-indicator { display: inline-flex; align-items: center; } .typing-dot { width: 8px; height: 8px; background: #10b981; border-radius: 50%; margin: 0 2px; animation: typing 1.4s infinite ease-in-out; } .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); } 30% { transform: translateY(-5px); } } /* 滑入动画 */ .slide-in { animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* 淡入动画 */ .fade-in { animation: fadeIn 0.5s ease-in; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* 通知徽章 */ .notification-badge { position: absolute; top: -5px; right: -5px; background: #ef4444; color: white; border-radius: 50%; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; font-size: 12px; animation: pulse 2s infinite; } /* 语音波形 */ .voice-wave { display: flex; align-items: center; justify-content: center; } .wave-bar { width: 2px; height: 10px; background: #6366f1; margin: 0 1px; animation: wave 1.2s infinite ease-in-out; } .wave-bar:nth-child(2) { animation-delay: 0.2s; } .wave-bar:nth-child(3) { animation-delay: 0.4s; } .wave-bar:nth-child(4) { animation-delay: 0.6s; } .wave-bar:nth-child(5) { animation-delay: 0.8s; } @keyframes wave { 0%, 100% { height: 10px; } 50% { height: 20px; } } /* 滚动条样式 */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: rgba(30, 41, 59, 0.3); } ::-webkit-scrollbar-thumb { background: rgba(99, 102, 241, 0.5); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(99, 102, 241, 0.7); } /* 主题颜色变量 */ :root { --primary: #6366f1; --secondary: #8b5cf6; --bg-dark: #0f172a; --bg-slate: #1e293b; --text-white: #ffffff; --text-slate: #94a3b8; } /* 响应式设计 */ @media (max-width: 768px) { .user-bubble, .ai-bubble { max-width: 80% !important; } } /* 隐藏元素 */ .hidden { display: none !important; } /* 加载动画 */ .loading { opacity: 0.6; pointer-events: none; }