.diagram{border:1px solid var(--surface-border);border-radius:var(--radius-md);background:linear-gradient(#141c3859,#070c1c40);margin:2rem 0;padding:1.4rem 1.4rem 1rem}:root[data-theme=light] .diagram{background:linear-gradient(#5a4fe00a,#0e92b808)}.diagram svg{width:100%;height:auto;display:block;overflow:visible}.diagram-caption{color:var(--muted);text-align:center;margin:.85rem 0 0;font-size:.86rem;line-height:1.5}.dg-panel{fill:var(--surface);stroke:var(--surface-border);stroke-width:1.2px}.dg-panel-strong{fill:var(--surface-strong);stroke:var(--surface-border);stroke-width:1.2px}.dg-label{fill:var(--text);font-family:Space Grotesk,Manrope,sans-serif;font-weight:700}.dg-sub{fill:var(--muted);font-family:Manrope,sans-serif;font-weight:500}.dg-mono{fill:var(--muted-strong);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dg-stroke{fill:none;stroke:var(--surface-border);stroke-width:2px}.dg-accent{fill:var(--primary)}.dg-accent-2{fill:var(--secondary)}.dg-flow{fill:none;stroke:var(--primary);stroke-width:2px;stroke-linecap:round}.dg-ok{fill:#22c55e}.dg-no{fill:#ef4444}.dg-travel{animation:3.4s linear infinite dg-travel}@keyframes dg-travel{0%{offset-distance:0%}to{offset-distance:100%}}.dg-dash{stroke-dasharray:6 8;animation:1.1s linear infinite dg-dash}@keyframes dg-dash{to{stroke-dashoffset:-14px}}.dg-pulse{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite dg-pulse}@keyframes dg-pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}.dg-appear-late{opacity:0;animation:3.6s ease-in-out infinite dg-appear-late}@keyframes dg-appear-late{0%,45%{opacity:0}60%,92%{opacity:1}to{opacity:0}}.dg-hold{animation:3.6s ease-in-out infinite dg-hold}@keyframes dg-hold{0%,8%{opacity:.15}20%,to{opacity:1}}.dg-spin{transform-box:fill-box;transform-origin:50%;animation:1.1s linear infinite dg-spin}@keyframes dg-spin{to{transform:rotate(360deg)}}.dg-blink{animation:1.6s step-end infinite dg-blink}@keyframes dg-blink{0%,50%{opacity:1}50.01%,to{opacity:.25}}.dg-delay-1{animation-delay:.4s}.dg-delay-2{animation-delay:.8s}.dg-delay-3{animation-delay:1.2s}.dg-delay-4{animation-delay:1.6s}@media (prefers-reduced-motion:reduce){.dg-travel,.dg-dash,.dg-pulse,.dg-appear-late,.dg-hold,.dg-spin,.dg-blink{animation:none}.dg-appear-late{opacity:1}}
