.funnel-row,.source-row{cursor:pointer;transition:background .15s,transform .15s}.funnel-row:hover,.source-row:hover,.funnel-row:focus-visible,.source-row:focus-visible{background:var(--accent2);outline:none}.funnel-row.chart-selected,.source-row.chart-selected{background:var(--accent2);transform:translateX(2px)}
/* Softer tracks replace the striped empty area while preserving the comparison. */
.funnel-row>i,.source-row>div{background:rgba(124,132,80,.12)!important;border-color:rgba(124,132,80,.28)!important;overflow:hidden}
.funnel-row>i:after,.source-row>div i{transition:filter .15s,opacity .15s;animation:chartGrow .9s cubic-bezier(.22,.8,.3,1) both;background:#dfe65a!important}
.funnel-row:nth-child(2)>i:after,.source-row:nth-child(2)>div i{animation-delay:.08s}.funnel-row:nth-child(3)>i:after,.source-row:nth-child(3)>div i{animation-delay:.16s}.funnel-row:nth-child(4)>i:after,.source-row:nth-child(4)>div i{animation-delay:.24s}.funnel-row:nth-child(5)>i:after,.source-row:nth-child(5)>div i{animation-delay:.32s}.funnel-row:nth-child(6)>i:after{animation-delay:.4s}
.funnel-row:hover>i:after,.source-row:hover>div i,.chart-selected>i:after,.chart-selected>div i{filter:saturate(1.25);opacity:.9}
@keyframes chartGrow{from{transform:scaleX(0);transform-origin:left center}to{transform:scaleX(1);transform-origin:left center}}
@media(prefers-reduced-motion:reduce){.funnel-row>i:after,.source-row>div i{animation:none}}
.chart-tooltip{position:fixed;z-index:120;pointer-events:none;display:grid;gap:2px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--text);color:var(--surface);box-shadow:var(--shadow);font-size:11px;opacity:0;transform:translateY(3px);transition:opacity .12s,transform .12s}.chart-tooltip.visible{opacity:1;transform:none}.chart-tooltip strong{font-size:11px;font-weight:600}.chart-tooltip span{font-size:12px;color:#d8dccb}[data-theme=dark] .chart-tooltip{background:#f0f1ea;color:#202319}[data-theme=dark] .chart-tooltip span{color:#555d39}
