/* Local quality fixes only: transparent wrapper and mathematically matching curves.
   Existing sender outline, colors, shadows and inner geometry are preserved. */
#waimao .waimao-official-hero{background:transparent}
#waimao .waimao-official-hero .ai-sender-editor__inner{border-radius:23px;overflow:hidden}
/* One shared 24px node column + 16px gap. All content starts on column two. */
.execution{--node-column:24px;--column-gap:16px;--rail-width:2px}
.execution-heading{display:grid;grid-template-columns:var(--node-column) minmax(0,1fr);column-gap:var(--column-gap)}
.execution-dot{justify-self:center}
.execution-log{--execution-row-height:60px;--execution-node-mid:14px;position:relative;display:grid;row-gap:20px;margin-left:0;padding-left:0;border-left:0}
/* No continuous rail: each node owns only its outgoing connector. */
.execution-log::before,.execution-log::after{content:none;display:none}
.execution-log .log-row{position:relative;display:grid;grid-template-columns:var(--node-column) minmax(0,1fr);grid-template-rows:28px 28px;column-gap:var(--column-gap);row-gap:4px;height:var(--execution-row-height);margin-bottom:0}
.execution-log .log-row>div{grid-column:2}
.execution-log .log-row>div:not(.log-detail):not(.filter-bar){grid-row:1}
.execution-log .log-detail{grid-row:2;margin-top:0}
.execution-node{grid-column:1;grid-row:1 / span 2;position:relative;width:24px;height:28px;z-index:2}
.execution-node img{position:absolute;inset:0;margin:auto;width:14px;height:10px;background:#fff}
.execution-pending{position:absolute;left:4px;top:6px;width:16px;height:16px;border:2px solid #6765e1;border-radius:50%;background:#fff;opacity:calc(1 - var(--completion,0))}
.execution-pending::after{content:"";position:absolute;inset:0;margin:auto;width:6px;height:6px;background:#6765e1;border-radius:50%}
.filter-complete{--completion:1}
.filter-step::before,.filter-step::after,.research-step::before,.research-step::after{display:none}
.execution-log .log-row>.filter-bar{position:absolute;grid-column:auto;grid-row:auto;left:calc(var(--node-column) + var(--column-gap));top:68px;margin-top:0}

/* Check height 10px => half-height 5px, plus 8px clear space at both ends.
   Adjacent centers are 60px row + 20px gap = 80px apart:
   start = 14 + 5 + 8 = 27px, connector length = 80 - 2*(5+8) = 54px.
   Pending 16px circles also stay clear (5px minimum) throughout state changes. */
.execution-node{--segment-start:13}
.log-row:nth-child(2)>.execution-node{--segment-start:93}
.log-row:not(:last-child)>.execution-node::before,
.log-row:not(:last-child)>.execution-node::after{content:"";position:absolute;left:calc((var(--node-column) - var(--rail-width))/2);top:27px;width:var(--rail-width);height:54px;pointer-events:none;opacity:var(--rail-alpha,0);transform-origin:top}
.log-row:not(:last-child)>.execution-node::before{background:#efeff6}
.log-row:not(:last-child)>.execution-node::after{background:#9c99e8;transform:scaleY(clamp(0,calc((var(--rail-progress,0)*160 - var(--segment-start))/54),1))}

