.builder{flex-direction:column;display:flex}.rbcanvas{background:radial-gradient(hsl(var(--hairline-3) / .5) 1px, transparent 1.4px) 0 0 / 26px 26px, hsl(var(--paper-2));aspect-ratio:1000/560;border-bottom:1.5px solid #b6b6b6;position:relative;overflow:hidden}.rb-edges{z-index:1;width:100%;height:100%;position:absolute;inset:0}.rb-edges path{fill:none;stroke:#b6b6b6;stroke-width:2px;transition:stroke .4s}.rb-edges path.accent{stroke:hsl(var(--primary-500) / .55)}.rb-edges path.loop{stroke-dasharray:7 6;stroke:hsl(var(--riso-teal) / .7)}.rbcanvas[data-state=compiling] .rb-edges path,.rbcanvas[data-state=compiled] .rb-edges path{stroke:hsl(var(--ink-3))}.rbcanvas[data-state=compiled] .rb-edges path.accent{stroke:hsl(var(--primary-600))}.rbcanvas[data-state=compiled] .rb-edges path.loop{stroke:hsl(var(--riso-teal))}.rb-edges path.flowing{stroke-dasharray:8 7;animation:.7s linear infinite edgeflow}@keyframes edgeflow{to{stroke-dashoffset:-30px}}.rb-grp{z-index:1;border:1.6px dashed hsl(var(--riso-teal) / .7);background:hsl(var(--riso-teal) / .05);border-radius:14px;position:absolute}.rb-grp .gl{font:700 9px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--riso-teal));background:hsl(var(--paper-2));border:1.4px solid hsl(var(--riso-teal) / .55);border-radius:4px;align-items:center;gap:6px;padding:3px 7px;display:inline-flex;position:absolute;top:-11px;left:16px}.rb-grp .gl svg{width:11px;height:11px}.rb-node{z-index:2;background:hsl(var(--card));border:1.5px solid var(--ink-line);min-width:116px;box-shadow:var(--shadow-float);border-radius:10px;flex-direction:column;gap:3px;padding:11px 13px;transition:box-shadow .3s,border-color .3s,transform .3s;display:flex;position:absolute;transform:translate(-50%,-50%)}.rb-node .nk{font:700 8px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--ink-5))}.rb-node .nt{align-items:center;gap:8px;display:flex}.rb-node .nt svg{flex-shrink:0;width:16px;height:16px}.rb-node .nt b{font:600 12.5px/1.05 var(--font-sans);color:hsl(var(--ink-0));white-space:nowrap}.rb-node .nmeta{font:500 9.5px/1 var(--font-mono);color:hsl(var(--ink-4))}.rb-node .nbadge{min-width:18px;height:18px;font:700 9px/1 var(--font-mono);color:#fff;background:hsl(var(--primary-500));border:1.5px solid var(--ink-line);box-shadow:var(--shadow-float);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;display:none;position:absolute;top:-9px;right:-9px}.rb-node.term{background:hsl(var(--ink-1));border-color:var(--ink-line);border-radius:22px;min-width:0;padding:9px 15px}.rb-node.term .nt b,.rb-node.term .nt svg{color:hsl(var(--paper-2))}.rb-node.end{background:hsl(var(--mod-emerald))}.rb-node.cond{width:132px;min-width:0;height:92px;box-shadow:none;background:0 0;border:0;padding:0}.rb-node.cond .dia{background:hsl(var(--primary-100));border:1.5px solid var(--ink-line);box-shadow:var(--shadow-float);border-radius:8px;position:absolute;inset:14px 30px;transform:rotate(45deg)}.rb-node.cond .clab{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:100%;display:flex;position:relative}.rb-node.cond .clab .nk{color:hsl(var(--primary-700))}.rb-node.cond .clab b{font:600 11.5px/1 var(--font-sans);color:hsl(var(--ink-0))}.rb-node .ic-mill{color:hsl(var(--ink-1))}.rb-node .ic-rew{color:hsl(var(--primary-600))}.rb-node .ic-insp{color:hsl(var(--ink-1))}.rb-node .ic-pdf{color:hsl(var(--mod-purple))}.rbcanvas.run .rb-node.lit{border-color:hsl(var(--primary-500));box-shadow:var(--shadow-float);transform:translate(-50%,-50%)scale(1.04)}.rbcanvas.run .rb-node.cond.lit .dia{border-color:hsl(var(--primary-600));box-shadow:var(--shadow-float);background:hsl(var(--primary-300))}.rbcanvas.run .rb-node.cond.lit{box-shadow:none}.rbcanvas[data-state=compiled] .rb-node.has-rca .nbadge{display:inline-flex}.rb-elabel{z-index:2;font:700 8.5px/1 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;border:1.4px solid var(--ink-line);background:hsl(var(--card));color:hsl(var(--ink-3));box-shadow:var(--shadow-float);border-radius:5px;padding:4px 7px;position:absolute;transform:translate(-50%,-50%)}.rb-elabel.yes{color:hsl(var(--mod-emerald));border-color:hsl(var(--mod-emerald) / .55)}.rb-elabel.no{color:hsl(var(--primary-700));border-color:hsl(var(--primary-500) / .55)}.rb-elabel.rep{color:hsl(var(--riso-teal));border-color:hsl(var(--riso-teal) / .55)}.rb-valid{z-index:6;font:600 11px/1 var(--font-mono);letter-spacing:.02em;border:1.5px solid var(--ink-line);background:hsl(var(--card));color:hsl(var(--ink-3));box-shadow:var(--shadow-float);border-radius:8px;align-items:center;gap:9px;padding:9px 13px;transition:color .25s,border-color .25s;display:inline-flex;position:absolute;top:16px;left:16px}.rb-valid .vdot{background:hsl(var(--ink-5));border-radius:50%;width:8px;height:8px;transition:background .25s}.rbcanvas[data-state=validating] .rb-valid{color:hsl(var(--primary-700));border-color:hsl(var(--primary-500))}.rbcanvas[data-state=validating] .rb-valid .vdot{background:hsl(var(--primary-500));animation:.8s ease-in-out infinite rbpulse}.rbcanvas[data-state=compiling] .rb-valid{color:hsl(var(--primary-700));border-color:hsl(var(--primary-500))}.rbcanvas[data-state=compiling] .rb-valid .vdot{background:hsl(var(--primary-500));animation:.8s ease-in-out infinite rbpulse}.rbcanvas[data-state=compiled] .rb-valid{color:hsl(var(--mod-emerald));border-color:hsl(var(--mod-emerald))}.rbcanvas[data-state=compiled] .rb-valid .vdot{background:hsl(var(--mod-emerald))}@keyframes rbpulse{0%,to{opacity:1}50%{opacity:.25}}.rb-valid .vtxt:after{content:attr(data-idle)}.rbcanvas[data-state=validating] .rb-valid .vtxt:after{content:"Validating graph…"}.rbcanvas[data-state=compiling] .rb-valid .vtxt:after{content:"Compiling rules…"}.rbcanvas[data-state=compiled] .rb-valid .vtxt:after{content:"Compiled · no errors"}.rb-controls{background:hsl(var(--paper-2));justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.rb-cstatus{align-items:center;gap:10px;min-width:0;display:flex}.rb-cdot{background:hsl(var(--ink-5));border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:background .25s}.rbcanvas-wrap[data-state=validating] .rb-cdot,.rbcanvas-wrap[data-state=compiling] .rb-cdot{background:hsl(var(--primary-500));animation:.8s ease-in-out infinite rbpulse}.rbcanvas-wrap[data-state=compiled] .rb-cdot{background:hsl(var(--mod-emerald))}.rb-ctx{font:500 11px/1.3 var(--font-mono);letter-spacing:.02em;color:hsl(var(--ink-4));white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rb-cbtns{flex-shrink:0;gap:10px;display:flex}.rb-cbtns .rbbtn{flex:none;padding:0 20px}.rbbtn{white-space:nowrap;background:hsl(var(--primary-500));color:#fff;border-color:var(--ink-line);box-shadow:var(--shadow-float);justify-content:center}.rbbtn:hover:not(:disabled){box-shadow:var(--shadow-float);transform:translate(-1px,-1px)}.rbbtn:active:not(:disabled){box-shadow:none;transform:translate(1.5px,1.5px)}.rbbtn:disabled{cursor:default}.rbcanvas-wrap[data-state=validating] .rbbtn,.rbcanvas-wrap[data-state=compiling] .rbbtn{background:hsl(var(--ink-3))}.rbcanvas-wrap[data-state=compiled] .rbbtn{background:hsl(var(--mod-emerald))}.rbbtn-spin{width:15px;height:15px;animation:.7s linear infinite rbspin;display:none}.rbcanvas-wrap[data-state=validating] .rbbtn-spin,.rbcanvas-wrap[data-state=compiling] .rbbtn-spin{display:inline-block}.rbcanvas-wrap[data-state=validating] .rbbtn-ic,.rbcanvas-wrap[data-state=compiling] .rbbtn-ic{display:none}@keyframes rbspin{to{transform:rotate(360deg)}}.rbbtn .lbl-idle:after{content:"Save & Compile"}.rbcanvas-wrap[data-state=validating] .rbbtn .lbl-idle:after{content:"Validating…"}.rbcanvas-wrap[data-state=compiling] .rbbtn .lbl-idle:after{content:"Compiling…"}.rbcanvas-wrap[data-state=compiled] .rbbtn .lbl-idle:after{content:"Re-compile"}.rbreset{border:1.5px solid var(--ink-line);border-radius:var(--radius-sm);background:hsl(var(--paper-2));width:46px;color:hsl(var(--ink-3));box-shadow:var(--shadow-float);flex-shrink:0;place-items:center;transition:transform .1s,box-shadow .1s,color .14s;display:grid}.rbreset svg{width:17px;height:17px}.rbreset:hover{color:hsl(var(--ink-0));box-shadow:var(--shadow-float);transform:translate(-1px,-1px)}.rbreset:active{box-shadow:none;transform:translate(1.5px,1.5px)}@media (width<=560px){.rb-controls{flex-direction:column;align-items:stretch;gap:12px}.rb-cbtns{justify-content:flex-end}}.rbcanvas--embed{width:100%;height:100%}
