:root{--bg: #f4f6f9;--surface: #ffffff;--surface-2: #f0f3f7;--text: #1c2330;--text-muted: #5b6675;--border: #dde3ea;--primary: #0a6ed1;--grid: #e3e8ef;--happy: #0a8754;--alt: #c77700;--exc: #c0392b;--lane-0: #fbfcfe;--lane-1: #f1f5fb;--shadow: 0 1px 3px rgba(20, 30, 50, .12), 0 4px 12px rgba(20, 30, 50, .06)}:root[data-theme=dark]{--bg: #0e1420;--surface: #161d2b;--surface-2: #1d2535;--text: #e6ebf2;--text-muted: #97a3b6;--border: #2a3447;--primary: #4aa3ff;--grid: #232c3d;--happy: #3ecf8e;--alt: #e8a33d;--exc: #ff6b5e;--lane-0: #141b29;--lane-1: #1a2230;--shadow: 0 1px 3px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}.loading{display:grid;place-items:center;height:100%;font-size:2rem;color:var(--text-muted)}.layout{display:flex;flex-direction:column;height:100vh}.appbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);z-index:10}.appbar__brand{display:flex;align-items:center;gap:.7rem}.appbar__logo{background:var(--primary);color:#fff;font-weight:800;letter-spacing:.5px;padding:.4rem .55rem;border-radius:8px;font-size:.95rem}.appbar__title{font-weight:700;font-size:1.02rem}.appbar__sub{font-size:.76rem;color:var(--text-muted)}.appbar__controls{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.search{position:relative;display:flex;align-items:stretch;gap:0}.search__mod{border:1px solid var(--border);border-right:0;border-radius:7px 0 0 7px;background:var(--surface-2);color:var(--text);font-size:.78rem;padding:0 .4rem;max-width:92px}.search__input{border:1px solid var(--border);border-radius:0 7px 7px 0;background:var(--surface);color:var(--text);padding:.45rem .6rem;font-size:.84rem;min-width:230px}.search__results{position:absolute;top:105%;left:0;right:0;z-index:30;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-height:320px;overflow-y:auto}.search__results li button{display:flex;align-items:center;gap:.4rem;width:100%;text-align:left;background:none;border:0;padding:.4rem .5rem;border-radius:7px;cursor:pointer;color:var(--text);font-size:.82rem}.search__results li button:hover{background:var(--surface-2)}.search__results .muted{margin-left:auto;font-size:.72rem}.search__empty{padding:.5rem;color:var(--text-muted);font-size:.82rem}.field{display:flex;flex-direction:column;gap:2px;font-size:.72rem;color:var(--text-muted)}.field select{font-size:.86rem;padding:.4rem .5rem;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);min-width:260px}.toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.toggle button{border:0;background:var(--surface);color:var(--text-muted);padding:.45rem .7rem;cursor:pointer;font-weight:600;font-size:.8rem}.toggle button.on{background:var(--primary);color:#fff}.iconbtn{border:1px solid var(--border);background:var(--surface);color:var(--text);width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:1rem}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.45rem .8rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.82rem}.btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn--primary:hover{filter:brightness(1.07)}.main{flex:1;display:grid;grid-template-columns:1fr 360px;min-height:0}.canvas{position:relative;min-width:0;min-height:420px;border-right:1px solid var(--border)}.swimlane{position:absolute;top:0;right:0;bottom:0;left:0}.layout--clean .main{grid-template-columns:1fr}.layout--clean .canvas{border-right:0}.canvas__tools{position:absolute;top:10px;right:12px;z-index:6;display:flex;gap:.5rem}.tool{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.4rem .7rem;border-radius:8px;cursor:pointer;font-size:.78rem;font-weight:600;box-shadow:var(--shadow)}.tool--exit{background:var(--primary);color:#fff;border-color:var(--primary)}.hidebtn{border:0;cursor:pointer;border-radius:50%;line-height:1;display:grid;place-items:center;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border)}.hidebtn--node{position:absolute;top:-8px;right:-8px;width:18px;height:18px;font-size:.6rem;opacity:0;transition:opacity .1s}.txnode:hover .hidebtn--node{opacity:1}.hidebtn--node:hover{color:var(--exc);border-color:var(--exc)}.hidebtn--lane{width:18px;height:18px;font-size:.7rem;margin-left:auto}.hidebtn--lane:hover{color:var(--exc);border-color:var(--exc)}.legend{position:absolute;top:10px;left:10px;z-index:5;display:flex;gap:.9rem;padding:.4rem .7rem;font-size:.74rem;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.legend__item{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot--happy{background:var(--happy)}.dot--exc{background:var(--exc)}.dot--alt{background:var(--alt)}.lane-band{height:100%;border-bottom:1px dashed var(--border);position:relative}.lane-band--0{background:var(--lane-0)}.lane-band--1{background:var(--lane-1)}.lane-band__label{position:absolute;left:0;top:0;bottom:0;width:168px;display:flex;align-items:center;gap:.4rem;padding:0 .7rem;font-weight:700;font-size:.82rem;color:var(--text);border-right:2px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,transparent)}.textwrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:1.2rem 1.4rem}.textflow{max-width:820px;margin:0 auto}.textflow__head h1{font-size:1.3rem;margin:0 0 .3rem}.textflow__head p{color:var(--text-muted);margin:0 0 1rem;line-height:1.5}.textflow__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.8rem;counter-reset:step}.textflow__item{border:1px solid var(--border);border-left:6px solid var(--border);border-radius:10px;padding:.7rem .9rem;background:var(--surface);box-shadow:var(--shadow)}.textflow__item--happy{border-left-color:var(--happy)}.textflow__item--alternativo{border-left-color:var(--alt)}.textflow__item--excepcion{border-left-color:var(--exc);border-style:dashed}.textflow__item.is-sel{outline:3px solid color-mix(in srgb,var(--primary) 45%,transparent)}.textflow__title{display:flex;align-items:center;gap:.5rem;background:none;border:0;cursor:pointer;color:var(--text);font-size:1rem;padding:0}.textflow__title:before{counter-increment:step;content:counter(step) ". ";font-weight:700;color:var(--text-muted)}.textflow__lane{font-size:.82rem;margin:.3rem 0;display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.textflow__desc{margin:.3rem 0;line-height:1.5;font-size:.9rem}.textflow__steps{margin:.4rem 0;padding-left:1.2rem;font-size:.88rem;line-height:1.5}.textflow__next{font-size:.82rem;color:var(--text);margin-top:.4rem}.txnode{position:relative;width:200px;height:78px;border-radius:10px;padding:.5rem .6rem;background:var(--surface);border:1.5px solid var(--border);border-left-width:6px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:transform .08s,box-shadow .08s}.txnode:hover{transform:translateY(-1px)}.txnode--happy{border-left-color:var(--happy)}.txnode--alternativo{border-left-color:var(--alt)}.txnode--excepcion{border-left-color:var(--exc);border-style:dashed}.txnode--selected{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent)}.txnode__top{display:flex;align-items:center;justify-content:space-between;gap:4px}.txnode__module{font-size:.62rem;font-weight:700;color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent);padding:1px 6px;border-radius:5px}.txnode__integ{font-size:.58rem;font-weight:700;color:var(--alt);background:color-mix(in srgb,var(--alt) 14%,transparent);padding:1px 5px;border-radius:5px;white-space:nowrap}.txnode__title{font-size:.82rem;font-weight:600;line-height:1.15;color:var(--text)}.txnode__tcode{font-size:.68rem;color:var(--text-muted);font-family:Cascadia Code,Consolas,monospace;margin-top:auto}.panel{overflow-y:auto;padding:1rem 1.1rem;background:var(--surface)}.panel--empty{color:var(--text-muted);display:flex;align-items:center;justify-content:center;text-align:center}.panel__head{border-bottom:1px solid var(--border);padding-bottom:.7rem;margin-bottom:.4rem}.panel__head h2{font-size:1.1rem;margin:.2rem 0}.panel__meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.panel h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:1rem 0 .4rem}.panel p{margin:0;line-height:1.5;font-size:.9rem}.panel ul,.panel ol{margin:0;padding-left:1.1rem;font-size:.9rem;line-height:1.5}.panel section{animation:fade .15s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.pill{display:inline-block;width:36px;height:5px;border-radius:3px}.pill--happy{background:var(--happy)}.pill--alternativo{background:var(--alt)}.pill--excepcion{background:var(--exc)}.chip{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:6px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary)}.chip--ghost{background:var(--surface-2);color:var(--text-muted)}.badge{font-size:.66rem;padding:2px 7px;border-radius:6px;border:1px solid var(--border);color:var(--text-muted)}.badge--manual{color:var(--happy);border-color:color-mix(in srgb,var(--happy) 50%,var(--border))}.badge--inferido{color:var(--alt);border-color:color-mix(in srgb,var(--alt) 50%,var(--border))}.badge--sap_oficial{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 50%,var(--border))}.tags{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.copywrap{display:inline-flex;align-items:center;gap:3px}.app-name{display:inline-flex;align-items:center;gap:5px}.copybtn{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);width:20px;height:20px;border-radius:5px;cursor:pointer;font-size:.72rem;line-height:1;display:inline-grid;place-items:center;flex:0 0 auto}.copybtn:hover{color:var(--primary);border-color:var(--primary)}.copybtn--done{color:var(--happy);border-color:var(--happy)}.role,.tcode{font-family:Cascadia Code,Consolas,monospace;font-size:.76rem;background:var(--surface-2);padding:2px 7px;border-radius:6px;border:1px solid var(--border)}.apps{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.apps li{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem}.app-meta{display:flex;gap:.4rem;align-items:center;margin-top:.3rem}.app-meta code{font-family:Cascadia Code,Consolas,monospace;font-size:.72rem}.muted{color:var(--text-muted)}.extlink{font-size:.66rem;font-weight:700;color:var(--primary);text-decoration:none;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));padding:1px 5px;border-radius:5px}.extlink:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}.rf-dim{opacity:.28;transition:opacity .2s}.present-bar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.present-bar__step{font-size:.8rem;font-weight:700;min-width:86px;text-align:center}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#080e188c;display:grid;place-items:center;z-index:50;padding:1rem}.modal__card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);width:min(560px,100%);max-height:90vh;overflow-y:auto}.modal__head{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border)}.modal__head h2{margin:0;font-size:1.05rem}.quiz__body,.quiz__result{padding:1rem 1.1rem}.quiz__meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted);margin-bottom:.6rem}.quiz__prompt{font-size:1.02rem;font-weight:600;margin:0 0 .8rem;line-height:1.4}.quiz__opts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.quiz__opt{width:100%;text-align:left;padding:.6rem .8rem;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);cursor:pointer;font-size:.9rem}.quiz__opt:hover:not(:disabled){border-color:var(--primary)}.quiz__opt--ok{background:color-mix(in srgb,var(--happy) 18%,var(--surface));border-color:var(--happy)}.quiz__opt--bad{background:color-mix(in srgb,var(--exc) 16%,var(--surface));border-color:var(--exc)}.quiz__fb{display:flex;align-items:center;justify-content:space-between;margin-top:.9rem}.quiz__fb .ok{color:var(--happy);font-weight:700}.quiz__fb .bad{color:var(--exc);font-weight:700}.quiz__result{text-align:center}.quiz__score{font-size:1.3rem;font-weight:700;margin:.5rem 0 1rem}.quiz__actions{display:flex;gap:.6rem;justify-content:center}.integ{list-style:none;padding:0;display:flex;flex-direction:column;gap:.45rem}.integ__item{border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;background:var(--surface-2);font-size:.86rem;line-height:1.4}.integ__item--requiere{border-left:4px solid var(--alt)}.integ__item--alimenta{border-left:4px solid var(--happy)}.integ__head{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.integ__dir{font-size:.7rem;font-weight:700}.integ__dir--requiere{color:var(--alt)}.integ__dir--alimenta{color:var(--happy)}.textflow__integ{list-style:none;padding:.3rem 0 0;margin:.3rem 0;display:flex;flex-direction:column;gap:.25rem;font-size:.82rem}.steps{list-style:decimal;display:flex;flex-direction:column;gap:.4rem}.steps li{display:flex;flex-direction:column}.step-actor{font-weight:700;font-size:.74rem;color:var(--primary)}.link{border:0;background:none;color:var(--primary);cursor:pointer;font-size:.85rem;padding:0 4px}@media (max-width: 880px){.main{grid-template-columns:1fr;grid-template-rows:1fr auto}.panel{max-height:45vh;border-top:1px solid var(--border)}}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}
