@layer numeria-flow-engine {

.ln{margin:8px 0 28px;color:var(--text);position:relative;width:min(1560px,calc(100vw - 48px));left:50%;transform:translateX(-50%)}
.ln-title{font-size:20px;letter-spacing:-.01em;color:var(--heading);margin:0 0 4px}
.ln-desc{color:var(--muted);max-width:72ch;margin:0 0 14px}
.ln-fallback{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:6px 20px 14px}
.ln-fallback h4{margin:16px 0 4px;color:var(--heading)}
.ln-fallback ol{margin:6px 0 0;padding-left:22px}
.ln-fallback li{margin:6px 0;color:var(--soft)}
.ln-fallback em{font-style:normal;color:var(--muted)}
.ln-live .ln-fallback{display:none}
.ln-top{display:flex;align-items:flex-end;justify-content:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.ln-tabs{display:flex;gap:6px;background:var(--bg2);border:1px solid var(--line);padding:5px;border-radius:14px;flex-wrap:wrap}
.ln-tab{appearance:none;border:0;background:transparent;font:inherit;cursor:pointer;color:var(--muted);padding:9px 16px;border-radius:10px;text-align:left;line-height:1.2;transition:background .25s,color .25s,box-shadow .25s}
.ln-tab b{display:block;font-size:14.5px;font-weight:650;color:inherit}
.ln-tab span{font-size:12px;opacity:.8}
.ln-tab:hover{color:var(--heading)}
.ln-tab[aria-selected="true"]{background:var(--card2);color:var(--heading);box-shadow:inset 0 -2px 0 var(--cyan),0 8px 20px -12px rgba(0,0,0,.6)}
.ln-tab:focus-visible,.ln-btn:focus-visible,.ln-seg button:focus-visible,.ln-prog button:focus-visible,.ln-scroll:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.ln-bound{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:0 0 14px}
.ln-bound:empty{display:none}
.ln-bcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px 16px;display:flex;gap:12px;align-items:flex-start}
.ln-bcard i{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px;box-shadow:0 0 10px currentColor}
.ln-bcard small{display:block;color:var(--muted);font-size:12.5px;margin-bottom:2px}
.ln-bcard p{font-size:14px;font-weight:550;line-height:1.4;color:var(--soft);margin:0}
.ln-t-blue{color:var(--blue);background:var(--blue)}.ln-t-cyan{color:var(--cyan);background:var(--cyan)}.ln-t-green{color:var(--green);background:var(--green)}
.ln-t-amber{color:var(--amber);background:var(--amber)}.ln-t-red{color:var(--red);background:var(--red)}
.ln-stagebox{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 28px 60px -36px rgba(0,0,0,.75)}
.ln-toolbar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;background:var(--bg2)}
.ln-btn{appearance:none;border:1px solid var(--line);background:var(--card2);border-radius:10px;font:inherit;font-size:13.5px;font-weight:550;padding:7px 13px;cursor:pointer;color:var(--text);display:inline-flex;gap:7px;align-items:center;transition:background .2s,border-color .2s,opacity .2s}
.ln-btn:hover:not(:disabled){border-color:var(--muted)}
.ln-btn:disabled{opacity:.4;cursor:default}
.ln-btn.primary{background:var(--cyan);border-color:var(--cyan);color:var(--ink-on);font-weight:650}
.ln-btn svg{width:14px;height:14px}
.ln-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ln-seg button{appearance:none;border:0;background:var(--card2);font:inherit;font-size:12.5px;padding:7px 10px;cursor:pointer;color:var(--muted)}
.ln-seg button+button{border-left:1px solid var(--line)}
.ln-seg button[aria-pressed="true"]{background:var(--heading);color:var(--ink-on);font-weight:650}
.ln-legend{margin-left:auto;display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.ln-legend span{display:inline-flex;align-items:center;gap:6px}
.ln-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
.ln-scroll{overflow-x:auto}
.ln-map{display:block;width:100%;min-width:1100px;height:auto;user-select:none}
.ln-prog{display:flex;gap:3px;padding:2px 14px 12px}
.ln-prog button{flex:1;height:6px;border:0;border-radius:3px;background:var(--line);cursor:pointer;padding:0;transition:background .25s}
.ln-prog button.past{background:rgba(var(--blue-rgb),.55)}
.ln-prog button.now{background:var(--cyan)}
.ln-prog button:hover{background:var(--muted)}
.ln-caption{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;padding:18px 22px 22px;border-top:1px solid var(--line);background:linear-gradient(var(--card),var(--bg2));min-height:136px}
.ln-stg{font-size:12.5px;color:var(--cyan);font-weight:650;margin-bottom:4px;min-height:1em}
.ln-caption h4{font-size:21px;line-height:1.2;letter-spacing:-.02em;font-weight:650;color:var(--heading);margin:0}
.ln-caption p{margin:6px 0 0;color:var(--soft);font-size:15.5px;max-width:64ch}
.ln-chips{display:flex;flex-direction:column;gap:7px;align-content:flex-start}
.ln-chip{display:flex;gap:10px;align-items:baseline;font-size:13.5px}
.ln-chip em{font-style:normal;color:var(--muted);min-width:84px;font-size:12.5px}
.ln-chip b{font-weight:600;color:var(--heading)}
.ln-lane{fill:var(--card)}
.ln-lane.alt{fill:var(--bg2)}
.ln-lane-line{stroke:var(--line);stroke-width:1}
.ln-lane-name{font-size:13px;font-weight:650;fill:var(--heading)}
.ln-lane-sub{font-size:11px;fill:var(--muted)}
.ln-sc rect{fill:var(--card2);transition:fill .3s}
.ln-sc text{font-size:12.5px;font-weight:600;fill:var(--muted);transition:fill .3s}
.ln-sc.cur rect{fill:var(--cyan)}
.ln-sc.cur text{fill:var(--ink-on)}
.ln-col{stroke:rgba(var(--muted-rgb),.16);stroke-width:1;stroke-dasharray:3 5}
.ln-edge{fill:none;stroke:rgba(var(--muted-rgb),.45);stroke-width:1.6;transition:stroke .4s}
.ln-edge.used{stroke:var(--blue)}
.ln-edge.loop{stroke:rgba(var(--red-rgb),.5);stroke-dasharray:5 5}
.ln-edge.ret{stroke:rgba(var(--blue-rgb),.6);stroke-dasharray:6 5}
.ln-edge.ret.used{stroke:var(--blue)}
.ln-edge.opt{stroke:rgba(var(--muted-rgb),.3);stroke-dasharray:3 6}
.ln-edge.opt.used{stroke:var(--blue);stroke-dasharray:none}
.ln-edge.opt.ret.used{stroke:var(--blue);stroke-dasharray:6 5}
.ln-edge.loop.hit{stroke:var(--red)}
.ln-node{transition:opacity .45s}
.ln-node.future{opacity:.4}
.ln-node .body{fill:var(--card2);stroke:rgba(var(--muted-rgb),.4);stroke-width:1.4;transition:stroke .3s}
.ln-node .t{font-size:12.5px;font-weight:650;fill:var(--heading)}
.ln-node .s{font-size:10.5px;fill:var(--muted)}
.ln-node .mchip rect{fill:var(--bg);stroke:rgba(var(--muted-rgb),.4);stroke-width:1}
.ln-node .mchip text{font-size:10.5px;font-weight:600;fill:var(--muted)}
.ln-node.agent .bar{fill:var(--blue)}
.ln-node.mech .bar{fill:var(--muted)}
.ln-node.human .bar{fill:var(--cyan)}
.ln-node.active .body{stroke:var(--blue);stroke-width:2;filter:drop-shadow(0 0 10px rgba(var(--blue-rgb),.55))}
.ln-node.active.mech .body{stroke:var(--muted);filter:drop-shadow(0 0 10px rgba(var(--muted-rgb),.4))}
.ln-node.active.human .body,.ln-node.wait .body{stroke:var(--cyan);stroke-width:2.4;filter:drop-shadow(0 0 12px rgba(var(--cyan-rgb),.6))}
.ln-node.wait .body,.ln-node.wait .shape{animation:ln-pulse 1.4s ease-in-out infinite}
.ln-node.done .body{stroke:var(--green);stroke-width:1.6;filter:none}
.ln-node .tick{opacity:0;transition:opacity .3s}
.ln-node.done .tick{opacity:1}
.ln-node .tick circle{fill:var(--green);stroke:var(--card);stroke-width:2}
.ln-node .tick path{fill:none;stroke:var(--ink-on);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ln-node .newtag{opacity:0}
.ln-node.isnew .newtag{opacity:1}
.ln-node .newtag rect{fill:var(--cyan)}
.ln-node .newtag text{font-size:9px;font-weight:700;fill:var(--ink-on)}
.ln-node.opt .body{stroke-dasharray:5 4}
.ln-node.opt.active .body,.ln-node.opt.done .body{stroke-dasharray:none}
.ln-gate .shape{fill:var(--card2);stroke:rgba(var(--muted-rgb),.5);stroke-width:1.6;transition:stroke .3s}
.ln-gate.opt .shape{stroke-dasharray:4 3}
.ln-gate.opt.active .shape,.ln-gate.opt.wait .shape,.ln-gate.opt.done .shape{stroke-dasharray:none}
.ln-gate.human .shape{fill:var(--cyan);stroke:var(--cyan)}
.ln-gate .ico{stroke:var(--text);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ln-gate.human .ico{stroke:var(--ink-on)}
.ln-gate .glabel{font-size:11px;font-weight:600;fill:var(--soft);text-anchor:middle}
.ln-gate .gsub{font-size:10.5px;fill:var(--muted);text-anchor:middle}
.ln-gate.active .shape{stroke:var(--blue);stroke-width:2.4;filter:drop-shadow(0 0 10px rgba(var(--blue-rgb),.6))}
.ln-gate.wait .shape{stroke:var(--cyan);stroke-width:3;filter:drop-shadow(0 0 12px rgba(var(--cyan-rgb),.8))}
.ln-gate.done .shape{stroke:var(--green)}
@keyframes ln-pulse{50%{opacity:.7}}
.ln-token{pointer-events:none}
.ln-token rect{fill:var(--card);stroke:var(--blue);stroke-width:1.6;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}
.ln-token text{font-size:11.5px;font-weight:650;fill:var(--heading)}
.ln-token.bad rect{stroke:var(--red)}
.ln-token.bad text{fill:var(--red)}
.ln-loop-label{font-size:11px;font-weight:650;fill:var(--red);text-anchor:middle;opacity:0;transition:opacity .3s;paint-order:stroke;stroke:var(--card);stroke-width:4px}
.ln-loop-label.ret{fill:var(--blue)}
.ln-loop-label.show{opacity:1}
@media (max-width:900px){.ln-caption{grid-template-columns:1fr}.ln-legend{margin-left:0}}
@media (prefers-reduced-motion:reduce){.ln *{animation:none!important;transition:none!important}}
@media print{.ln-live .ln-app{display:none}.ln-live .ln-fallback{display:block}}

}
