/* =============================================================================
   agent-heartbeat.css — Shared "agent is alive" indicator (static, no spin)
   ==============================================================================
   Global stylesheet — shared between AgentStatusSurface (compact row) and
   MessageBubble (bubble surface).

   P9-S (2026-05-21): the rotating-ring animation was removed across all phases.
   The MM:SS elapsed counter in the bubble header is the sole "agent is working"
   signal during a turn; the streaming shimmer (agent-narrator-answer.css)
   covers the per-paragraph progress. The static colour-coded ring stays as a
   quiet phase-state indicator (blue=working, yellow=awaiting, amber=interrupted,
   red=errored, gray=cancelled) — informative without competing for attention.
   ============================================================================== */

.bec-agent-heartbeat {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid currentColor;
    color: var(--bec-info, #3b82f6);
    vertical-align: middle;
    flex-shrink: 0;
}

/* Working / Submitting / Resuming — static blue ring (no rotation) */
.bec-agent-heartbeat[data-phase="Working"],
.bec-agent-heartbeat[data-phase="Submitting"],
.bec-agent-heartbeat[data-phase="Resuming"] {
    color: var(--bec-info, #3b82f6);
}

/* AwaitingInput — static yellow ring */
.bec-agent-heartbeat[data-phase="AwaitingInput"] {
    color: var(--bec-warning, #eab308);
}

/* Interrupted — static amber ring with a soft glow */
.bec-agent-heartbeat[data-phase="Interrupted"] {
    color: var(--BEC-Warning-Main, #f59e0b);
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.4);
}

/* Cancelled — static muted ring */
.bec-agent-heartbeat[data-phase="Cancelled"] {
    color: var(--BEC-neutralSecondary, #9ca3af);
}

/* Errored — static red ring */
.bec-agent-heartbeat[data-phase="Errored"] {
    color: var(--bec-danger, #ef4444);
}

/* =============================================================================
   .att-card-prev-pill — "Previously uploaded" dedup indicator
   ==============================================================================
   Rendered inside .att-card-body on both the pre-send chip (ChatInput) and the
   sent-message card (MessageBubble). One global rule, no per-component
   duplication. Quiet gray styling so it never reads as an error — it's a
   neutral acknowledgement that the agent already has this content and skipped
   re-extraction. Tooltip explains the meaning on hover.
   ============================================================================== */
.att-card-prev-pill {
    display: inline-block;
    margin-top: 2px;
    padding: 1px 7px;
    background: var(--bec-surface-muted, #f3f4f6);
    color: var(--bec-text-secondary, #6b7280);
    border: 1px solid var(--bec-border-subtle, #e5e7eb);
    border-radius: 9999px;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.02em;
    white-space: nowrap;
    align-self: flex-start;
    cursor: help;
}

@media (prefers-color-scheme: dark) {
    .att-card-prev-pill {
        background: var(--bec-surface-muted, #1f2937);
        color: var(--bec-text-secondary, #9ca3af);
        border-color: var(--bec-border-subtle, #374151);
    }
}
