.dq-ml{--ml-accent:#0066cc;--ml-accent-soft:#e6f0fa;--ml-loop:#b45309;--ml-ink:#1b2430;--ml-muted:#5b6675;--ml-line:#c9d3de;--ml-paper:#f7f9fc;--ml-grid:#e8edf3;
  margin:2rem 0;color:var(--ml-ink);font-size:1rem;line-height:1.55}
.dq-ml-title{margin:0 0 .35rem;font-size:1.35rem}
.dq-ml-lead{margin:0 0 1rem;color:var(--ml-muted);max-width:65ch}
.dq-ml-tour{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}
.dq-ml button{font:inherit;font-size:.92rem;border-radius:6px;padding:.4rem .9rem;cursor:pointer;border:1px solid var(--ml-line);background:#fff;color:var(--ml-ink)}
.dq-ml button:hover{border-color:var(--ml-accent);color:var(--ml-accent)}
.dq-ml .dq-ml-tour-start,.dq-ml .dq-ml-tour-next{background:var(--ml-accent);border-color:var(--ml-accent);color:#fff}
.dq-ml .dq-ml-tour-start:hover,.dq-ml .dq-ml-tour-next:hover{background:#0052a3;color:#fff}
.dq-ml button:focus-visible{outline:2px solid var(--ml-accent);outline-offset:2px}
.dq-ml-canvas{overflow-x:auto;border:1px solid var(--ml-line);border-radius:10px;background-color:var(--ml-paper);
  background-image:linear-gradient(var(--ml-grid) 1px,transparent 1px),linear-gradient(90deg,var(--ml-grid) 1px,transparent 1px);background-size:20px 20px}
.dq-ml-svg{display:block;width:100%;min-width:860px;height:auto}
.dq-ml-band{fill:var(--ml-accent-soft);opacity:.55}
.dq-ml-band.is-prod{fill:#fdf1e3}
.dq-ml-bandlabel{font-size:12px;font-weight:600;fill:var(--ml-muted)}
.dq-ml-col{font-size:12px;fill:var(--ml-muted)}
.dq-ml-edge{fill:none;stroke:var(--ml-accent);stroke-width:1.6;stroke-dasharray:6 5;animation:dq-ml-flow 1.2s linear infinite;opacity:.75}
.dq-ml-edge.is-loop{stroke:var(--ml-loop);stroke-width:2}
.dq-ml-edge.is-dim{opacity:.12}
.dq-ml-looplabel{font-size:12px;font-weight:600;fill:var(--ml-loop)}
@keyframes dq-ml-flow{to{stroke-dashoffset:-11}}
.dq-ml-node{cursor:pointer;outline:none}
.dq-ml-node rect{fill:#fff;stroke:var(--ml-line);stroke-width:1.4}
.dq-ml-node.is-feature rect{stroke:var(--ml-accent)}
.dq-ml-node:hover rect:last-of-type,.dq-ml-node:focus-visible rect:last-of-type{stroke:var(--ml-accent);stroke-width:2.4}
.dq-ml-node.is-active rect:last-of-type{fill:var(--ml-accent-soft);stroke:var(--ml-accent);stroke-width:2.6}
.dq-ml-node .dq-ml-l{font-size:13.5px;font-weight:600;fill:var(--ml-ink)}
.dq-ml-node .dq-ml-s{font-size:11px;fill:var(--ml-muted)}
.dq-ml-info{margin:.75rem 0;border-left:3px solid var(--ml-accent);padding:.6rem 1rem;background:var(--ml-paper);border-radius:0 8px 8px 0;min-height:4.5rem}
.dq-ml-info h4{margin:0 0 .25rem;font-size:1.05rem}
.dq-ml-info p{margin:0 0 .35rem}
.dq-ml-info .dq-ml-step{color:var(--ml-accent);font-size:.85rem;font-weight:600;margin:0 0 .15rem}
.dq-ml-info .dq-ml-why{color:var(--ml-muted);font-size:.9rem;margin:0}
.dq-ml-info-empty{color:var(--ml-muted);margin:0}
.dq-ml-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}
.dq-ml-count{color:var(--ml-muted);font-size:.9rem}
.dq-ml-options{border:1px solid var(--ml-line);border-radius:10px;padding:.9rem 1rem;margin:0 0 .75rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.5rem 1rem}
.dq-ml-options legend{padding:0 .4rem;font-weight:600}
.dq-ml-options label{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.dq-ml-options input{width:1.05rem;height:1.05rem;accent-color:var(--ml-accent)}
@media (prefers-reduced-motion:reduce){.dq-ml-edge{animation:none}}
