@layer fc.components {
.fc-tool {
display: flex;
flex-direction: column;
gap: var(--fc-space-2);
min-inline-size: 0;
background-color: var(--fc-color-bg-surface);
border: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
border-radius: var(--fc-radius-md);
padding: var(--fc-space-3);
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-xs);
color: var(--fc-color-text-default);
}
.fc-tool[data-fc-state="running"] {
border-inline-start: var(--fc-border-width-thick) solid var(--fc-color-accent-border);
background-color: var(--fc-color-accent-bg-subtle);
}
.fc-tool[data-fc-state="complete"] {
border-inline-start: var(--fc-border-width-thick) solid var(--fc-color-success-border);
}
.fc-tool[data-fc-state="error"] {
border-inline-start: var(--fc-border-width-thick) solid var(--fc-color-danger-border);
background-color: var(--fc-color-danger-bg-subtle);
}
.fc-tool[data-fc-state="denied"] {
border-inline-start: var(--fc-border-width-thick) solid var(--fc-color-warning-border);
background-color: var(--fc-color-warning-bg-subtle);
}
.fc-tool[data-fc-state="aborted"] {
border-inline-start: var(--fc-border-width-thick) solid var(--fc-color-border-strong);
}
.fc-tool__header {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: var(--fc-space-2);
min-inline-size: 0;
}
.fc-tool__name {
font-weight: var(--fc-font-weight-semibold);
color: var(--fc-color-text-default);
min-inline-size: 0;
}
.fc-tool__state {
display: inline-flex;
align-items: center;
gap: var(--fc-space-1);
padding-inline: var(--fc-space-2);
padding-block: var(--fc-space-0-5);
border-radius: var(--fc-radius-full);
border: var(--fc-border-width-thin) solid var(--fc-color-border-default);
background-color: var(--fc-color-bg-subtle);
color: var(--fc-color-text-default);
font-family: var(--fc-font-family-sans);
font-size: var(--fc-font-size-2xs);
letter-spacing: normal;
}
.fc-tool[data-fc-state="running"] .fc-tool__state {
border-color: var(--fc-color-accent-border);
color: var(--fc-color-accent-text);
background-color: var(--fc-color-accent-bg-subtle);
}
.fc-tool[data-fc-state="complete"] .fc-tool__state {
border-color: var(--fc-color-success-border);
color: var(--fc-color-success-text);
background-color: var(--fc-color-success-bg-subtle);
}
.fc-tool[data-fc-state="error"] .fc-tool__state {
border-color: var(--fc-color-danger-border);
color: var(--fc-color-danger-text);
background-color: var(--fc-color-danger-bg-subtle);
}
.fc-tool[data-fc-state="denied"] .fc-tool__state {
border-color: var(--fc-color-warning-border);
color: var(--fc-color-warning-text);
background-color: var(--fc-color-warning-bg-subtle);
}
.fc-tool__duration {
margin-inline-start: auto;
font-variant-numeric: tabular-nums;
color: var(--fc-color-text-muted);
}
.fc-tool__label {
color: var(--fc-color-text-muted);
font-family: var(--fc-font-family-sans);
font-size: var(--fc-font-size-2xs);
}
.fc-tool__payload {
margin: 0;
padding: var(--fc-space-2);
background-color: var(--fc-color-bg-sunken);
border-radius: var(--fc-radius-sm);
border: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
color: var(--fc-color-text-default);
white-space: pre-wrap;
overflow-wrap: anywhere;
max-block-size: 20rem;
overflow-y: auto;
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-xs);
}
.fc-tool__payload[data-fc-truncated="true"] {
max-block-size: 8rem;
mask-image: linear-gradient(to bottom, black 60%, transparent 100%);
}
.fc-tool__error {
padding: var(--fc-space-2);
border-radius: var(--fc-radius-sm);
background-color: var(--fc-color-danger-bg-subtle);
color: var(--fc-color-danger-text);
border: var(--fc-border-width-thin) solid var(--fc-color-danger-border);
white-space: pre-wrap;
overflow-wrap: anywhere;
}
.fc-tool__progress {
block-size: var(--fc-border-width-thick);
border-radius: var(--fc-radius-full);
background-color: var(--fc-color-bg-muted);
overflow: hidden;
}
.fc-tool__progress-bar {
block-size: 100%;
inline-size: var(--fc-tool-progress, 0%);
background-color: var(--fc-color-accent-bg);
transition: inline-size var(--fc-duration-normal) var(--fc-easing-standard);
}
.fc-tool[data-fc-state="running"] .fc-tool__progress-bar {
inline-size: 40%;
animation: fc-indeterminate 1.4s ease-in-out infinite;
}
@keyframes fc-indeterminate {
from {
transform: translateX(-100%);
}
to {
transform: translateX(250%);
}
}
:dir(rtl) .fc-tool[data-fc-state="running"] .fc-tool__progress-bar {
animation-name: fc-indeterminate-rtl;
}
@keyframes fc-indeterminate-rtl {
from {
transform: translateX(100%);
}
to {
transform: translateX(-250%);
}
}
@media (prefers-reduced-motion: reduce) {
.fc-tool[data-fc-state="running"] .fc-tool__progress-bar {
animation: none;
inline-size: 100%;
opacity: var(--fc-opacity-hover-overlay);
}
}
@media (prefers-reduced-motion: reduce) {
.fc-tool[data-fc-state="running"] .fc-tool__progress-bar {
inline-size: 100%;
animation: none;
background-image: repeating-linear-gradient(
135deg,
var(--fc-color-accent-bg) 0 0.5rem,
transparent 0.5rem 1rem
);
}
}
@media (forced-colors: active) {
.fc-tool {
border-color: CanvasText;
}
.fc-tool__progress-track {
background-color: Canvas;
border: var(--fc-border-width-thin) solid CanvasText;
}
.fc-tool__progress-bar {
background-color: Highlight;
}
.fc-tool[data-fc-state="error"] {
border-color: LinkText;
}
}
}