/* 现代聊天界面样式 */ .data-v-3fea99d8:root { --primary: #4CAF50; --bg: #f5f5f5; --user-bg: #e3f2fd; --ai-bg: #ffffff; --tabbar-height: 50px; } .chat-container.data-v-3fea99d8 { max-width: 800px; margin: 0 auto; background: white; height: 100vh; display: flex; flex-direction: column; } .messages.data-v-3fea99d8 { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 15px; } .message.data-v-3fea99d8 { max-width: 70%; padding: 12px 16px; border-radius: 18px; -webkit-animation: fadeIn-data-v-3fea99d8 0.3s ease; animation: fadeIn-data-v-3fea99d8 0.3s ease; } .user-message.data-v-3fea99d8 { background: var(--user-bg); align-self: flex-end; border-bottom-right-radius: 4px; } .ai-message.data-v-3fea99d8 { background: var(--ai-bg); align-self: flex-start; border-bottom-left-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .loading-dots.data-v-3fea99d8 { display: inline-block; font-size: 24px; } .loading-dots.data-v-3fea99d8::after { content: '...'; -webkit-animation: dots-data-v-3fea99d8 1.5s infinite; animation: dots-data-v-3fea99d8 1.5s infinite; } .input-area.data-v-3fea99d8 { padding: 20px; border-top: 1px solid #eee; display: flex; gap: 10px; } input.data-v-3fea99d8 { flex: 1; padding: 12px; border: 1px solid #ddd; border-radius: 25px; font-size: 16px; outline: none; transition: 0.3s; } input.data-v-3fea99d8:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(76,175,80,0.1); } button.data-v-3fea99d8 { padding: 12px 24px; background: var(--primary); border: none; border-radius: 25px; color: white; cursor: pointer; transition: 0.3s; } button.data-v-3fea99d8:disabled { opacity: 0.7; cursor: not-allowed; } .input-placeholder.data-v-3fea99d8 { color: #999; } /* 动画 */ @-webkit-keyframes dots-data-v-3fea99d8 { 0%, 20% { content: '.'; } 40% { content: '..'; } 60%, 100% { content: '...'; } } @keyframes dots-data-v-3fea99d8 { 0%, 20% { content: '.'; } 40% { content: '..'; } 60%, 100% { content: '...'; } } @-webkit-keyframes fadeIn-data-v-3fea99d8 { from { opacity: 0; -webkit-transform: translateY(10px); transform: translateY(10px); } to { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes fadeIn-data-v-3fea99d8 { from { opacity: 0; -webkit-transform: translateY(10px); transform: translateY(10px); } to { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } }