@layer fc.components {
.fc-agent-status {
display: inline-flex;
align-items: center;
gap: var(--fc-space-2);
min-block-size: var(--fc-size-target-min);
max-inline-size: 100%;
font-size: var(--fc-font-size-sm);
color: var(--fc-color-text-muted);
}
.fc-agent-status__label {
min-inline-size: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fc-agent-status__meta {
flex-shrink: 0;
color: var(--fc-color-text-subtle);
font-size: var(--fc-font-size-xs);
font-variant-numeric: tabular-nums;
}
.fc-agent-status:is([data-fc-state="pending"], [data-fc-state="running"], [data-fc-state="streaming"], [data-fc-state="queued"]) .fc-agent-status__label {
background-image: linear-gradient(
90deg,
var(--fc-color-text-muted) 0%,
var(--fc-color-text-muted) 35%,
var(--fc-color-text-default) 50%,
var(--fc-color-text-muted) 65%,
var(--fc-color-text-muted) 100%
);
background-size: 250% 100%;
background-clip: text;
color: transparent;
animation: fc-agent-status-shimmer 2s linear infinite;
}
.fc-agent-status:is([data-fc-state="pending"], [data-fc-state="running"], [data-fc-state="streaming"], [data-fc-state="queued"]):dir(rtl) .fc-agent-status__label {
animation-direction: reverse;
}
@keyframes fc-agent-status-shimmer {
from {
background-position: 100% 0;
}
to {
background-position: 0% 0;
}
}
.fc-agent-status:is([data-fc-state="complete"], [data-fc-state="error"], [data-fc-state="aborted"], [data-fc-state="denied"]) .fc-spinner {
display: none;
}
.fc-agent-status[data-fc-state="complete"]::before {
content: "\2713" / "";
color: var(--fc-color-success-text);
font-weight: var(--fc-font-weight-bold);
}
.fc-agent-status[data-fc-state="error"]::before,
.fc-agent-status[data-fc-state="denied"]::before {
content: "\2715" / "";
color: var(--fc-color-danger-text);
font-weight: var(--fc-font-weight-bold);
}
.fc-agent-status[data-fc-state="aborted"]::before {
content: "\25A0" / "";
color: var(--fc-color-warning-text);
}
.fc-agent-status[data-fc-state="error"] .fc-agent-status__label {
color: var(--fc-color-danger-text);
}
@media (prefers-reduced-motion: reduce) {
.fc-agent-status:is([data-fc-state="pending"], [data-fc-state="running"], [data-fc-state="streaming"], [data-fc-state="queued"]) .fc-agent-status__label {
animation: none;
background-image: none;
color: var(--fc-color-text-muted);
}
}
@media (forced-colors: active) {
.fc-agent-status:is([data-fc-state="pending"], [data-fc-state="running"], [data-fc-state="streaming"], [data-fc-state="queued"]) .fc-agent-status__label {
background-image: none;
color: CanvasText;
animation: none;
}
}
}