.chatbox { display: flex; flex-direction: column; height: 100%; gap: 0; } .messages { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 15px; } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; text-align: center; padding: 40px 20px; color: var(--gray-600); } .empty-icon { font-size: 64px; opacity: 0.6; } .empty-state h2 { color: var(--gray-900); font-size: 24px; } .empty-state p { color: var(--gray-500); font-size: 14px; } .suggestions { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; width: 100%; max-width: 300px; } .suggestion-btn { background: var(--gray-100); color: var(--gray-900); border: 1px solid var(--gray-300); padding: 10px 15px; border-radius: 20px; font-size: 13px; text-align: left; transition: all 0.2s ease; cursor: pointer; } .suggestion-btn:hover { background: var(--primary); color: white; border-color: var(--primary); } .message { display: flex; gap: 10px; animation: slideIn 0.3s ease; } @keyframes slideIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .message.user { justify-content: flex-end; } .message.assistant { justify-content: flex-start; } .message.error { opacity: 0.8; } .message-avatar { font-size: 20px; flex-shrink: 0; } .message-content { display: flex; flex-direction: column; gap: 5px; max-width: 70%; } .message.user .message-content { align-items: flex-end; } .message-text { padding: 12px 15px; border-radius: 15px; word-wrap: break-word; line-height: 1.5; font-size: 14px; } .message.user .message-text { background: var(--primary); color: white; border-bottom-right-radius: 4px; } .message.assistant .message-text { background: var(--gray-100); color: var(--gray-900); border-bottom-left-radius: 4px; } .message.error .message-text { background: var(--error); color: white; } .message-stats { font-size: 11px; color: var(--gray-500); padding: 0 15px; text-align: right; } .message.user .message-stats { text-align: right; } .message.assistant .message-stats { text-align: left; } /* Typing indicator */ .typing-indicator { display: flex; gap: 4px; padding: 12px 15px; } .typing-indicator span { width: 6px; height: 6px; border-radius: 50%; background: var(--gray-400); animation: typing 1.4s infinite; } .typing-indicator span:nth-child(2) { animation-delay: 0.2s; } .typing-indicator span:nth-child(3) { animation-delay: 0.4s; } @keyframes typing { 0%, 60%, 100% { opacity: 0.5; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-8px); } } .input-area { display: flex; gap: 10px; padding: 15px 20px; border-top: 1px solid var(--gray-200); background: var(--gray-50); } .input-area textarea { flex: 1; padding: 10px 12px; border: 1px solid var(--gray-300); border-radius: 8px; font-size: 14px; font-family: inherit; resize: none; max-height: 100px; } .input-area textarea:disabled { opacity: 0.6; cursor: not-allowed; } .send-btn { background: var(--primary); color: white; border: none; padding: 10px 20px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; align-self: flex-end; white-space: nowrap; } .send-btn:hover:not(:disabled) { background: var(--secondary); transform: translateY(-2px); box-shadow: var(--shadow-lg); } .send-btn:disabled { opacity: 0.5; cursor: not-allowed; } @media (max-width: 768px) { .message-content { max-width: 85%; } .input-area { flex-direction: column; gap: 10px; } .send-btn { align-self: stretch; } }