.typing-status {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 24px;
  flex: 0 0 24px;
  min-width: 0;
  padding: 0 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 20px;
}
.typing-text { display: flex; min-width: 0; white-space: nowrap; }
.typing-names { overflow: hidden; text-overflow: ellipsis; }
.typing-action { flex: 0 0 auto; }
.typing-dots { display: flex; gap: 3px; flex: 0 0 21px; visibility: hidden; }
.typing-dots i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.is-typing .typing-dots { visibility: visible; }
.is-typing .typing-dots i { animation: typing-pulse 1.2s ease-in-out infinite; }
.typing-dots i:nth-child(2) { animation-delay: .15s; }
.typing-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes typing-pulse { 0%, 70%, 100% { opacity: .4; transform: translateY(0); } 35% { opacity: 1; transform: translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .is-typing .typing-dots i { animation: none; } }
