/* One small local animation; the WebView and browser use the same controls. */
#workspace-execution-feed.live-execution{color:var(--b1x-text,#19342b);background:var(--b1x-solid,#f7faf8);border:1px solid var(--b1x-border,#dbe4df);border-radius:14px;margin:0 0 6px;min-width:0;max-height:min(34dvh,280px);overflow:auto;font:12px/1.45 var(--sans,system-ui);box-shadow:none;overscroll-behavior:contain}
#workspace-execution-feed.live-execution[hidden]{display:none!important}
.live-execution>summary{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;cursor:pointer;list-style:none;position:sticky;top:0;background:inherit;z-index:1;box-sizing:border-box}
.live-execution>summary::-webkit-details-marker{display:none}
.live-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-count{color:var(--b1x-muted,#667b72);font-size:11px;white-space:nowrap}
.live-activity-label{color:var(--b1x-accent,#a54d30);font-weight:600}
.live-activity-label::after{content:' ⌄'}
.live-execution[open] .live-activity-label::after{content:' ⌃'}
.live-ink{position:relative;width:22px;height:12px;flex:0 0 22px;border-bottom:1px solid currentColor;color:var(--b1x-accent,#a54d30);opacity:.8}
.live-ink::after{content:'';position:absolute;left:1px;bottom:2px;width:3px;height:8px;background:currentColor;transform:rotate(20deg)}
.live-execution[data-feed-state=active] .live-ink::after{animation:live-ink-travel 2.8s ease-in-out infinite}
@keyframes live-ink-travel{50%{transform:translateX(16px) rotate(20deg);opacity:.45}}
.live-execution[data-feed-state=failed] .live-ink{color:var(--red,#b15b36)}
.live-execution[data-feed-state=done] .live-ink{color:var(--b1x-muted,#667b72)}
.live-execution[data-surface=visual] .live-ink::after{width:5px;border-radius:0 0 3px 3px}
.live-execution[data-paused=true] .live-ink::after{animation-play-state:paused}
.live-execution ol{list-style:none;padding:0 12px;margin:0;max-height:160px;overflow:auto;overscroll-behavior:contain}
.live-execution li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--b1x-border,#dbe4df)}
.live-execution li>span{flex:1;min-width:0;overflow-wrap:anywhere}
.live-execution time{font-size:10px;color:var(--b1x-muted,#667b72);white-space:nowrap}
.live-execution li:last-child{font-weight:600}
.live-execution button{font:inherit;min-height:48px;min-width:48px;padding:8px 12px;border:1px solid var(--b1x-border,#dbe4df);border-radius:10px;background:var(--b1x-control,#edf3ef);color:inherit;cursor:pointer}
.live-execution button[hidden],.live-execution .live-lanes[hidden]{display:none!important}
.live-actions,.live-lanes{display:flex;gap:8px;padding:6px 12px;flex-wrap:wrap}
.live-lanes>button{flex:1;min-width:0;overflow-wrap:anywhere}
.live-execution :is(button,summary):focus-visible{outline:2px solid var(--b1x-accent,#a54d30);outline-offset:-3px}
@media(max-width:700px){.live-count{display:none}.live-execution>summary{padding-inline:10px}.live-lanes>button{font-size:11px}.live-execution time{font-size:9px}
 :root[data-theme] body #shell.unified-shell #composer#composer#composer#composer#composer .composer-presence-toggle,
 :root[data-theme] body #shell.unified-shell #composer#composer#composer#composer#composer .composer-toolbar :is(#stop,#send){min-height:48px!important;height:48px!important;min-width:48px!important}
}
/* Prefer the event-driven cue over a second decorative composer animation. */
body:has(.live-execution:not([hidden])) #composer[data-presence=running]::before{animation:none!important;display:none!important}
@media(prefers-reduced-motion:reduce){.live-execution .live-ink::after{animation:none!important}}
:root[data-motion=reduced] .live-execution .live-ink::after{animation:none!important}
