/* Shared AI feedback owns only its decorative slot and internal text layout.
   The status host keeps its existing typography, colour, margins and visibility. */
.ai-orb,.ai-status,[data-ai-phase]{--ai-orb-size:24px}
.ai-orb[data-orb-size="64"],[data-ai-phase][data-ai-orb-size="64"]{--ai-orb-size:64px}
.ai-orb{position:relative;display:inline-block;flex:0 0 auto;inline-size:var(--ai-orb-size);block-size:var(--ai-orb-size);vertical-align:middle;pointer-events:none;contain:layout paint;opacity:1;transition:opacity var(--dur-state) var(--ease-standard)}
.ai-orb[data-orb-active="false"]:not([data-orb-result]){opacity:0}
.ai-orb__canvas{position:absolute;inset:0;display:block;inline-size:100%;block-size:100%;opacity:0;transition:opacity var(--dur-state) var(--ease-standard)}
.ai-orb__canvas[data-orb-layer="current"]{opacity:1}
.ai-status,[data-ai-phase]:where(:not(.ai-status):not(:empty):not([hidden]):not([data-ai-phase="idle"])){display:flex;align-items:flex-start;gap:var(--gap-control);min-inline-size:0}
.ai-status>.ai-orb{margin-block-start:calc((1lh - var(--ai-orb-size))/2)}
.ai-status[data-ai-phase="idle"]>.ai-orb{display:none}
/* The initial HTML and late module hydration reserve the same decorative slot. */
[data-ai-phase]:where(:not(.ai-status):not(:empty):not([hidden])){overflow-wrap:anywhere}
[data-ai-phase]:where(:not(.ai-status):not(:empty):not([hidden]):not([data-ai-phase="idle"]))::before{content:"";display:block;inline-size:var(--ai-orb-size);block-size:var(--ai-orb-size);flex:0 0 var(--ai-orb-size);margin-block-start:calc((1lh - var(--ai-orb-size))/2)}
.ai-orb>[data-orb-result-icon]{position:absolute;inset:0;display:none;inline-size:100%;block-size:100%;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ai-orb[data-orb-result]{color:var(--ok-ink)}
.ai-orb[data-orb-result="error"]{color:var(--danger-ink)}
.ai-orb[data-orb-result]>[data-orb-result-icon]{display:block}
.ai-orb[data-orb-result]>.ai-orb__canvas{opacity:0}
.ai-status[hidden]{display:none}
.ai-status>[data-ai-status-text]{min-inline-size:0;overflow-wrap:anywhere}
[data-ai-submit-status]{min-block-size:max(24px,1lh);margin:0}
.ai-action-icon{display:inline-grid;inline-size:24px;block-size:24px;flex:0 0 24px}
.ai-action-icon>svg,.ai-action-icon>.ai-orb{grid-area:1/1;inline-size:24px;block-size:24px}
.ai-action-icon>svg{stroke-width:1.75;opacity:1;transition:opacity var(--dur-press) var(--ease-standard)}
.ai-action-icon>.ai-orb,.ai-action-icon .ai-orb__canvas{transition-duration:var(--dur-press)}
[data-ai-running="true"] .ai-action-icon>svg{opacity:0}
@media (prefers-reduced-motion:reduce){.ai-orb,.ai-orb__canvas,.ai-action-icon>svg{transition:none}}
@media (forced-colors:active){.ai-orb__canvas{visibility:hidden}.ai-orb,.ai-orb[data-orb-result]{color:CanvasText}.ai-orb:not([data-orb-result])::after{content:"";position:absolute;inset:var(--space-unit);border:1px dotted currentColor;border-radius:var(--radius-pill)}}
@media print{.ai-orb{display:none}}
