@keyframes typing {
    0%, 60%, 100% { opacity: 0.3; transform: scale(0.8); }
    30% { opacity: 1; transform: scale(1); }
}

@keyframes shimmer {
    0% { opacity: 0.4; }
    50% { opacity: 0.7; }
    100% { opacity: 0.4; }
}

@keyframes pulse-border {
    0%, 100% { border-left-color: #dc2626; }
    50% { border-left-color: #fca5a5; }
}

.typing-indicator { display: inline-flex; gap: 4px; padding: 4px 0; }
.typing-indicator span { width: 6px; height: 6px; border-radius: 50%; background: #94a3b8; 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; }

.health-card--loading { animation: shimmer 1.5s ease-in-out infinite; }
.health-card--unhealthy { animation: pulse-border 2s ease-in-out infinite; }
