/* Keep reply metrics fixed; animate newly received text, not its container. */
.xa-agent [data-agent-stream-live] .xa-stream-fragment {
  animation: xa-stream-soft-reveal 380ms cubic-bezier(.16,1,.3,1) both;
  animation-delay: var(--stream-reveal-delay,0ms);
}
@keyframes xa-stream-soft-reveal {
  from { opacity: .38; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .xa-agent [data-agent-stream-live] .xa-stream-fragment { animation: none; opacity: 1; }
}

/* Reserve the final action row before completion; hover never moves text. */
.xa-agent .xa-message:has(>.xa-reply:not([hidden])):not(:has(>.xa-reply-actions))::after{content:"";display:block;height:37px}
.xa-agent .xa-task-turn:has(>[data-cloud-stream]:not([hidden]))>.xa-task-stamp{display:none}
.xa-agent .xa-reply-actions{box-sizing:border-box;min-height:28px;height:28px;margin-top:9px;transform:none;transition:opacity .18s ease;flex-wrap:nowrap}
.xa-agent .xa-reply-actions .xa-reply-more{left:0;bottom:32px}
.xa-agent .xa-reply-actions>button>span{width:auto!important;white-space:nowrap}
.xa-agent .xa-reply-actions time{margin-left:auto;white-space:nowrap}
