.el-visual{border:1px solid var(--line);border-radius:12px;background:var(--panel2);padding:12px;overflow:auto}
.el-visual svg{display:block;width:100%;min-width:620px;height:auto;color:var(--txt)}
.el-visual text{font-family:var(--mono);font-size:13px;fill:var(--txt)}
.el-visual .dim{fill:var(--dim)}
.el-visual .wire{fill:none;stroke:var(--txt);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.el-visual .signal{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.el-visual .return{fill:none;stroke:var(--hot);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 7}
.el-visual .guide{fill:none;stroke:var(--line2);stroke-width:1.5;stroke-dasharray:4 5}
.el-visual .part{fill:var(--panel);stroke:var(--line2);stroke-width:1.5}
.el-visual .active{fill:color-mix(in srgb,var(--accent) 16%,var(--panel));stroke:var(--accent);stroke-width:2}
.el-visual .warn{fill:color-mix(in srgb,var(--hot) 14%,var(--panel));stroke:var(--hot);stroke-width:2}
.el-visual .good{fill:color-mix(in srgb,var(--on) 14%,var(--panel));stroke:var(--on);stroke-width:2}
.el-visual .sample{fill:var(--accent);stroke:var(--panel);stroke-width:1}
.el-visual .current{fill:none;stroke:var(--accent);stroke-width:4;stroke-dasharray:10 10;animation:el-current 1.2s linear infinite}
.el-key{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:9px;color:var(--dim);font-size:.78rem}
.el-key span{display:inline-flex;gap:6px;align-items:center}
.el-key i{width:18px;height:3px;background:var(--accent);display:inline-block}
.el-key .ret i{background:var(--hot)}
.el-key .limit i{background:var(--line2)}
@keyframes el-current{to{stroke-dashoffset:-20}}
@media (prefers-reduced-motion:reduce){.el-visual .current{animation:none}}
@media (max-width:720px){.el-visual{padding:9px}.el-visual svg{min-width:560px}}

