.chat-message {
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.typing-dots span {
    animation: blink 1.4s infinite both;
}

.typing-dots span:nth-child(2) {
    animation-delay: 0.2s;
}

.typing-dots span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes blink {
    0%, 80%, 100% { opacity: 0; }
    40% { opacity: 1; }
}

.markdown-content ul {
    list-style-type: disc;
    padding-left: 1.5rem;
    margin: 0.5rem 0;
}

.markdown-content ol {
    list-style-type: decimal;
    padding-left: 1.5rem;
    margin: 0.5rem 0;
}

.markdown-content li {
    margin: 0.25rem 0;
}

.markdown-content p {
    margin: 0.5rem 0;
}

.markdown-content strong {
    font-weight: 700;
}

.markdown-content h3 {
    font-weight: 700;
    font-size: 1.1rem;
    margin: 0.75rem 0 0.25rem;
}
