.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.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__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray: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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.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:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{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:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.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.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@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;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.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:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.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-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.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:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{--fond: #f7f5f2;--surface: #ffffff;--surface-2: #efece7;--surface-3: #e6e1da;--texte: #201a16;--texte-2: #5c534b;--bord: #e2ddd6;--trait: #8e857c;--accent: #c2410c;--accent-survol: #a8380a;--sur-accent: #ffffff;--accent-doux: #fde8db;--accent-texte: #9a3412;--ok: #1c7c46;--ok-fond: #e2f4e8;--alerte: #7a4a00;--alerte-fond: #fff1d1;--erreur: #b42318;--erreur-fond: #fde7e4;--info-fond: #e8eef8;--info-texte: #1b3f73;--test: #6b3fa0;--interrupteur: #8e857c;--ombre: 0 1px 2px rgb(32 26 22 / .06), 0 4px 14px rgb(32 26 22 / .06);--grille: #ddd7cf;--cat-declencheur: #1d6fa5;--cat-lecture: #556427;--cat-condition: #7a3e9d;--cat-enrichissement: #0f766e;--cat-transformation: #8a5300;--cat-routage: #4a5a9a;--cat-envoi: #9a3412;--cat-traitement: #5c534b;--police: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", system-ui, "Helvetica Neue", "Noto Sans", "Liberation Sans", sans-serif;--police-mono: ui-monospace, "SF Mono", Menlo, "Cascadia Mono", Consolas, "DejaVu Sans Mono", "Liberation Mono", monospace;--rayon: 10px;--rayon-l: 14px;color-scheme:light;font-family:var(--police);font-size:15px;line-height:1.5;color:var(--texte);background:var(--fond)}@media(prefers-color-scheme:dark){:root:not([data-theme=clair]){--fond: #171412;--surface: #211d1a;--surface-2: #2c2723;--surface-3: #37312c;--texte: #f2eee9;--texte-2: #bdb3a9;--bord: #3a342f;--trait: #857a70;--accent: #fb8a4c;--accent-survol: #fda06c;--sur-accent: #1a0e06;--accent-doux: #3a2214;--accent-texte: #fdb08a;--ok: #6cd49a;--ok-fond: #163222;--alerte: #f2b54b;--alerte-fond: #3a2c10;--erreur: #ff8a7a;--erreur-fond: #3d1a16;--info-fond: #1e2a3d;--info-texte: #b8ccf0;--test: #c9a6f2;--interrupteur: #7a7067;--ombre: none;--grille: #2f2925;color-scheme:dark}}:root[data-theme=sombre]{--fond: #171412;--surface: #211d1a;--surface-2: #2c2723;--surface-3: #37312c;--texte: #f2eee9;--texte-2: #bdb3a9;--bord: #3a342f;--trait: #857a70;--accent: #fb8a4c;--accent-survol: #fda06c;--sur-accent: #1a0e06;--accent-doux: #3a2214;--accent-texte: #fdb08a;--ok: #6cd49a;--ok-fond: #163222;--alerte: #f2b54b;--alerte-fond: #3a2c10;--erreur: #ff8a7a;--erreur-fond: #3d1a16;--info-fond: #1e2a3d;--info-texte: #b8ccf0;--test: #c9a6f2;--interrupteur: #7a7067;--ombre: none;--grille: #2f2925;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--fond);color:var(--texte)}a{color:var(--accent-texte);text-underline-offset:.18em}a:hover{color:var(--texte)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{line-height:1.25;text-wrap:balance}h1{font-size:1.85rem;font-weight:800;letter-spacing:-.015em;margin:.2rem 0 1rem}h2{font-size:1.2rem;font-weight:800;margin:1.4rem 0 .6rem}h3,h4{font-size:1rem;font-weight:700;margin:1rem 0 .45rem}p{text-wrap:pretty}code,.mono,pre,kbd,samp{font-family:var(--police-mono);font-size:.88em}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;padding:0 1rem;font:inherit;font-weight:700;color:var(--texte);background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--rayon);cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform 80ms ease-out}button:hover:not(:disabled),.button:hover{border-color:var(--trait);color:var(--texte)}button:active:not(:disabled),.button:active{transform:translateY(1px)}button:disabled{color:var(--texte-2);background:var(--surface-2);border-color:var(--bord);cursor:not-allowed}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--sur-accent)}button.primary:hover:not(:disabled),.button.primary:hover{background:var(--accent-survol);border-color:var(--accent-survol);color:var(--sur-accent)}button.primary:disabled{background:var(--surface-2);border-color:var(--bord);color:var(--texte-2)}button.danger{color:var(--erreur);border-color:var(--erreur);background:var(--surface)}button.danger:hover:not(:disabled){background:var(--erreur-fond);color:var(--erreur)}button.link{min-height:0;border:none;background:none;color:var(--accent-texte);padding:0 .2rem;font-weight:600;text-decoration:underline;text-underline-offset:.18em}button.link:hover:not(:disabled){color:var(--texte)}button.ghost{border-color:transparent;background:transparent;color:var(--accent-texte)}button.ghost:hover:not(:disabled){background:var(--accent-doux);border-color:transparent}.switch{gap:.6rem;padding:0 .6rem 0 .4rem}.switch .rail{position:relative;width:40px;height:24px;border-radius:999px;background:var(--interrupteur);flex:none}.switch .rail:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff}.switch.on .rail{background:var(--ok)}.switch.on .rail:after{left:19px}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:var(--rayon);background:var(--surface-2)}.segmented button{min-height:34px;border:0;background:transparent;color:var(--texte-2)}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--texte);box-shadow:var(--ombre)}input,select,textarea{font:inherit;color:var(--texte);background:var(--surface);border:1.5px solid var(--trait);border-radius:var(--rayon);padding:.45rem .65rem;min-height:40px;max-width:100%}textarea{min-height:0}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:1.05rem;height:1.05rem;min-height:0}input[type=file]{border-style:dashed;padding:.35rem}input[type=file]::file-selector-button{font:inherit;font-weight:700;color:var(--texte);background:var(--surface-2);border:1.5px solid var(--bord);border-radius:8px;padding:.3rem .8rem;margin-right:.7rem;cursor:pointer}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--erreur);border-width:2px}label{display:flex;flex-direction:column;gap:.3rem;margin:.45rem 0;font-weight:700}label input,label select,label textarea{font-weight:400}label.check,label.checkbox{flex-direction:row;align-items:center;gap:.5rem;font-weight:500}table{border-collapse:collapse;width:100%;margin:.6rem 0;background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--rayon-l);overflow:hidden}th,td{text-align:left;padding:.65rem .85rem;vertical-align:top}th{font-size:.8rem;font-weight:700;color:var(--texte-2);background:var(--surface);border-bottom:1.5px solid var(--bord)}td{border-bottom:1px solid var(--bord);font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}caption{text-align:left;font-weight:700;padding:.6rem .85rem 0}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:.4rem;background:var(--accent);color:var(--sur-accent);padding:.5rem .9rem;border-radius:var(--rayon);font-weight:700;z-index:100}.skip-link:focus{left:.5rem}.shell{display:flex;flex-wrap:wrap;min-height:100vh;min-height:100dvh}.sidebar{flex:1 0 248px;max-width:100%;background:var(--surface);border-right:1.5px solid var(--bord);padding:1rem .85rem;display:flex;flex-direction:column;gap:.35rem}.sidebar .brand{display:flex;align-items:center;gap:.6rem;padding:.2rem .6rem .8rem;font-weight:800;font-size:1.2rem;color:var(--texte);text-decoration:none}.sidebar .brand:before{content:"R";display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:var(--sur-accent);font-size:.95rem}.sidebar .space-switch{margin:0 0 .6rem;font-size:.8rem;color:var(--texte-2)}.sidebar .space-switch select{font-size:.95rem;font-weight:700;color:var(--texte)}.sidebar .new-flow{justify-content:flex-start;margin-bottom:.6rem}.sidebar ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sidebar .group-title{padding:.9rem .65rem .3rem;font-size:.78rem;font-weight:700;color:var(--texte-2)}.sidebar li a{display:flex;align-items:center;gap:.6rem;min-height:40px;padding:0 .65rem;border-radius:var(--rayon);color:var(--texte);font-weight:600;text-decoration:none}.sidebar li a:hover{background:var(--surface-2)}.sidebar li a[aria-current=page]{background:var(--accent-doux);color:var(--accent-texte)}.sidebar .account{margin-top:auto;padding-top:.9rem;border-top:1.5px solid var(--bord);display:flex;flex-direction:column;gap:.5rem}.sidebar .account .who{padding:0 .4rem;font-size:.9rem;color:var(--texte-2)}.sidebar .account .who strong{color:var(--texte)}.sidebar .account label{margin:0;font-size:.8rem;color:var(--texte-2)}.shell-main{flex:999 1 640px;min-width:0;display:flex;flex-direction:column}.page{width:100%;max-width:1200px;padding:1.6rem 2rem 3rem}.page.login{max-width:440px;margin:0 auto;padding-top:12vh}.page.login h1:before{content:"R";display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:1rem;border-radius:12px;background:var(--accent);color:var(--sur-accent);font-size:1.3rem}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.8rem 1.5rem;margin-bottom:1.2rem}.page-head h1{margin:0}.page-head .eyebrow{margin:0 0 .2rem;font-size:.85rem;font-weight:600;color:var(--texte-2)}.page>p,.card>p,.help,.empty{max-width:75ch}.card{border:1.5px solid var(--bord);border-radius:var(--rayon-l);padding:1rem 1.2rem;margin:.8rem 0;background:var(--surface)}.card>h2:first-child,.card>h3:first-child{margin-top:0}.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.cards>.card{margin:0}.cards>.card h2{margin:0 0 .3rem}.form{display:flex;flex-direction:column;gap:.2rem}.form.inline{max-width:440px}.row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:flex-end}.row>.card{align-self:stretch}.grow{flex:1}.plain{list-style:none;padding:0;margin:0}.help{color:var(--texte-2);margin:.2rem 0 .6rem}.alert{border-radius:var(--rayon);padding:.7rem .95rem;margin:.6rem 0;border:1.5px solid var(--bord);background:var(--surface)}.alert p{margin:.2rem 0}.alert-error{background:var(--erreur-fond);border-color:var(--erreur);color:var(--erreur)}.alert-avertissement{background:var(--alerte-fond);border-color:var(--alerte)}.alert-succes{background:var(--ok-fond);border-color:var(--ok)}.alert-info{background:var(--surface-2);border-color:var(--bord)}.licence-banner{margin:0;border-radius:0;border-width:0 0 1.5px;padding-left:2rem}.error-text{color:var(--erreur)}.field-errors{color:var(--erreur);margin:.2rem 0;padding-left:1.2rem}.loading{display:flex;align-items:center;gap:.7rem;color:var(--texte-2)}.loading:before{content:"";flex:none;width:2.6rem;height:.5rem;border-radius:999px;background:linear-gradient(90deg,var(--surface-3) 0 40%,var(--accent) 40% 60%,var(--surface-3) 60%) 0 0 / 200% 100%;animation:chargement 1s linear infinite}@keyframes chargement{to{background-position:-200% 0}}.empty{border:1.5px dashed var(--trait);border-radius:var(--rayon-l);padding:1rem 1.2rem;margin:.6rem 0;color:var(--texte-2)}.badge,.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap;background:var(--ok-fond);color:var(--ok)}.badge-error,.pill-erreur{background:var(--erreur-fond);color:var(--erreur)}.pill-alerte{background:var(--alerte-fond);color:var(--alerte)}.pill-neutre{background:var(--surface-2);color:var(--texte-2)}.badge-test{background:var(--info-fond);color:var(--test)}.tabs{display:flex;flex-wrap:wrap;gap:1.3rem;border-bottom:1.5px solid var(--bord);margin:.4rem 0 1rem}.tabs [role=tab]{min-height:42px;padding:0 .15rem;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:var(--texte-2)}.tabs [role=tab]:hover:not(:disabled){color:var(--texte)}.tabs [role=tab][aria-selected=true]{border-bottom-color:var(--accent);color:var(--texte)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--rayon-l);margin:0 0 1.4rem}.kpis>div{padding:1rem 1.2rem;border-right:1.5px solid var(--bord);display:flex;flex-direction:column}.kpis>div:last-child{border-right:0}.kpis dt{order:2;color:var(--texte-2);font-size:.9rem}.kpis dd{order:1;margin:0;font-size:1.7rem;font-weight:800;font-variant-numeric:tabular-nums}.dash{display:flex;flex-wrap:wrap;gap:1.4rem;align-items:flex-start}.dash>section{flex:1 1 360px;min-width:0;background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--rayon-l);padding:1rem 1.2rem}.dash>section.wide{flex:3 1 480px}.dash h2{margin:0 0 .6rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.dash h2 a{font-size:.9rem;font-weight:700}.list-rows{list-style:none;margin:0;padding:0}.list-rows>li{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;padding:.75rem 0;border-top:1.5px solid var(--bord)}.list-rows .grow{flex:1 1 220px;display:flex;flex-direction:column;min-width:0}.list-rows .sub{font-size:.88rem;color:var(--texte-2);overflow-wrap:anywhere}.editor{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:560px}.editor-bar{display:flex;flex-wrap:wrap;gap:.6rem .8rem;align-items:center;padding:.6rem 1.2rem;background:var(--surface);border-bottom:1.5px solid var(--bord)}.editor-bar h1{margin:0;font-size:1.2rem}.editor-bar .back{font-weight:700;text-decoration:none}.editor-bar .spacer{flex:1}.save-state{color:var(--texte-2);font-size:.88rem}.save-state.erreur{color:var(--erreur)}.editor-messages{padding:0 1rem;max-height:30vh;overflow:auto}.editor-status{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;padding:.35rem 1.2rem;border-bottom:1.5px solid var(--bord);min-height:2.6rem;background:var(--surface);font-size:.9rem}.status-erreurs{min-height:30px;color:var(--erreur);border-color:var(--erreur);background:var(--erreur-fond)}.status-ok,.status-succes{color:var(--ok);font-weight:700}.editor-body{flex:1;display:grid;grid-template-columns:250px minmax(0,1fr) 440px;min-height:0}.palette{background:var(--surface);border-right:1.5px solid var(--bord);padding:.9rem .7rem;overflow:auto}.palette h2{margin:0 .3rem .4rem;font-size:1rem}.palette>label{margin:.3rem .3rem .6rem;font-size:.85rem}.palette h3{margin:.8rem .4rem .25rem;font-size:.78rem;color:var(--texte-2)}.palette .insert-hint{margin:.2rem .3rem .6rem;padding:.6rem .7rem;border-radius:var(--rayon);background:var(--accent-doux);color:var(--texte);font-size:.88rem}.palette-item{width:100%;min-height:44px;justify-content:flex-start;gap:.6rem;padding:.35rem .55rem;border-color:transparent;background:transparent;text-align:left;white-space:normal;font-weight:600}.palette-item:hover:not(:disabled){background:var(--surface-2);border-color:var(--bord)}.palette-item .mono{display:block;color:var(--texte-2);font-size:.75rem;font-weight:400}.canvas{position:relative;min-height:0}.side{background:var(--surface);border-left:1.5px solid var(--bord);overflow:auto;padding:.4rem 1.1rem 1.2rem}.step-num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;color:#fff;font-weight:800;background:var(--cat-traitement)}.step-num.small{width:26px;height:26px;border-radius:7px;font-size:.78rem}.cat-declencheur{background:var(--cat-declencheur)}.cat-lecture{background:var(--cat-lecture)}.cat-condition{background:var(--cat-condition)}.cat-enrichissement{background:var(--cat-enrichissement)}.cat-transformation{background:var(--cat-transformation)}.cat-routage{background:var(--cat-routage)}.cat-envoi{background:var(--cat-envoi)}.cat-traitement{background:var(--cat-traitement)}.steps-view{overflow:auto;padding:1.6rem 1.2rem 3rem;background-color:var(--fond);background-image:radial-gradient(var(--grille) 1.2px,transparent 1.2px);background-size:22px 22px}.steps-view .steps{list-style:none;margin:0 auto;padding:0;max-width:600px;display:flex;flex-direction:column;align-items:stretch}.steps-view .steps>li{display:flex;flex-direction:column;align-items:center}.step-link{width:2px;height:14px;background:var(--trait)}.step-add{width:30px;min-height:30px;height:30px;padding:0;border-radius:50%;font-size:1.1rem;color:var(--texte-2);border-color:var(--trait)}.step-add:hover:not(:disabled),.step-add[aria-pressed=true]{border-color:var(--accent);color:var(--accent-texte);background:var(--accent-doux)}.step-card{width:100%;min-height:0;display:flex;align-items:flex-start;justify-content:flex-start;gap:.85rem;padding:.85rem 1rem;border-radius:var(--rayon-l);border:1.5px solid var(--bord);background:var(--surface);box-shadow:var(--ombre);text-align:left;white-space:normal;font-weight:400}.step-card:hover:not(:disabled){border-color:var(--trait)}.step-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-doux)}.step-card.has-errors{border-color:var(--erreur)}.step-card .step-body{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.step-card .step-cat{font-size:.8rem;font-weight:700;color:var(--texte-2)}.step-card .step-title{font-size:1.02rem;font-weight:800;overflow-wrap:anywhere}.step-card .step-type{font-size:.88rem;color:var(--texte-2)}.step-card .step-ports{margin-top:.35rem;display:flex;flex-wrap:wrap;gap:.3rem}.step-card .port-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.05rem .5rem;border-radius:7px;background:var(--surface-2);font-size:.8rem;font-weight:600;color:var(--texte-2)}.step-card .port-chip.error{background:var(--erreur-fond);color:var(--erreur)}.step-card .step-flags{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.steps-orphans{max-width:600px;margin:2rem auto 0}.steps-orphans h2{font-size:.95rem;color:var(--texte-2)}.steps-view .steps-orphans .steps{gap:.6rem}.steps-empty{max-width:520px;margin:2rem auto;text-align:center}.node-card{background:var(--surface);color:var(--texte);border:1.5px solid var(--bord);border-radius:14px;width:230px;padding:0;font-size:13px;box-shadow:var(--ombre)}.node-card.selected{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-doux)}.node-card.has-errors{border-color:var(--erreur);border-width:2px}.node-card.run-ok{border-color:var(--ok);border-width:2px}.node-card.run-error{border-color:var(--erreur);border-width:2px}.node-card.run-absent{opacity:.6}.node-head{display:flex;gap:.6rem;align-items:center;padding:.6rem .7rem .3rem}.node-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;color:#fff;font-size:16px;font-weight:800}.node-names{display:flex;flex-direction:column;min-width:0}.node-title{font-weight:800;font-size:14px;overflow-wrap:anywhere}.node-type{color:var(--texte-2);font-size:12px}.node-flags{display:flex;flex-wrap:wrap;gap:.3rem;padding:0 .7rem .4rem}.node-flags:empty{display:none}.badge-run{background:var(--ok-fond);color:var(--ok)}.badge-muted{background:var(--surface-2);color:var(--texte-2)}.node-ports{list-style:none;padding:.3rem 0;margin:0;border-top:1px solid var(--bord)}.port{position:relative;text-align:right;padding-right:.7rem;font-size:12px;height:20px;color:var(--texte-2)}.port-error{color:var(--erreur)}.react-flow__handle.handle-out,.react-flow__handle.handle-in{width:12px;height:12px;background:var(--accent);border:2px solid var(--surface)}.react-flow__handle.handle-out{right:-7px}.react-flow__handle.handle-error{background:var(--erreur)}.react-flow__edge-path{stroke:var(--trait);stroke-width:1.6}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent);stroke-width:2.6}.react-flow__edge.edge-error path{stroke:var(--erreur);stroke-dasharray:5 3}.react-flow__edge.edge-live .react-flow__edge-path{stroke:var(--ok);stroke-width:2.6}.react-flow__edge.edge-idle .react-flow__edge-path{opacity:.45}.react-flow__edge.edge-live .react-flow__edge-text{fill:var(--ok);font-weight:700}.react-flow__nodesselection-rect,.react-flow__selection{background:#c2410c14;border:1.5px dashed var(--accent)}.react-flow__edge-text{fill:var(--texte)}.react-flow__edge-textbg{fill:var(--surface)}.react-flow{--xy-controls-button-background-color-default: var(--surface);--xy-controls-button-background-color-hover-default: var(--surface-2);--xy-controls-button-color-default: var(--texte);--xy-controls-button-border-color-default: var(--bord);--xy-minimap-background-color-default: var(--surface);--xy-minimap-mask-background-color-default: rgb(120 110 100 / .18);--xy-minimap-node-background-color-default: var(--trait)}.react-flow__controls,.react-flow__minimap{border:1.5px solid var(--bord);border-radius:var(--rayon);overflow:hidden}.canvas{background-color:var(--fond);background-image:radial-gradient(var(--grille) 1.2px,transparent 1.2px);background-size:22px 22px}.test-tools{display:inline-flex;flex-wrap:wrap;gap:.4rem;padding-left:.6rem;border-left:1.5px solid var(--bord)}.test-tools .file-button button{max-width:16rem;overflow:hidden;text-overflow:ellipsis}.test-status{color:var(--texte-2)}.last-run{margin:.8rem 0;padding:.6rem .8rem;border-radius:var(--rayon);background:var(--ok-fond)}.last-run.failed{background:var(--erreur-fond)}.last-run.absent{background:var(--surface-2)}.last-run p{margin:.2rem 0}.last-run summary{cursor:pointer;font-weight:700}.side-panel h2{margin-top:.4rem}.panel-head{display:flex;align-items:center;gap:.75rem;margin:.6rem 0 .4rem}.panel-head h2{margin:0}.panel-head .step-cat{font-size:.82rem;font-weight:700;color:var(--texte-2)}.type-line{margin:.2rem 0}.ports-list{list-style:none;padding:0}.ports-list li{margin:.5rem 0;padding:.6rem .75rem;border:1.5px solid var(--bord);border-radius:var(--rayon)}.link-chip{display:inline-flex;gap:.25rem;align-items:center;border-radius:7px;padding:.05rem .5rem;margin-right:.3rem;background:var(--info-fond);color:var(--info-texte);font-weight:700;font-size:.88rem}.link-chip button.link{color:var(--info-texte)}.node-form .form-group{margin:.4rem 0}.node-form fieldset{border:1.5px solid var(--bord);border-radius:var(--rayon);margin:.5rem 0;padding:.4rem .8rem}.node-form legend{font-weight:700;padding:0 .3rem}.node-form .field-description,.node-form .field-description p{color:var(--texte-2);margin:.1rem 0;font-size:.9em;font-weight:400}.node-form .error-detail,.node-form .text-danger{color:var(--erreur);padding-left:1rem}.node-form .has-error input,.node-form .has-error select,.node-form .has-error textarea{border-color:var(--erreur);border-width:2px}.node-form .array-item{border-left:3px solid var(--bord);padding-left:.6rem;margin:.5rem 0}.node-form .array-item-toolbox .btn-group,.node-form .btn-group{display:flex;gap:.25rem}.node-form .glyphicon-plus:before{content:"+ Ajouter"}.node-form .glyphicon-remove:before{content:"Retirer"}.node-form .glyphicon-arrow-up:before{content:"↑"}.node-form .glyphicon-arrow-down:before{content:"↓"}.node-form .glyphicon-copy:before{content:"Copier"}details.execution{margin:1rem 0;padding:.6rem .8rem;border:1.5px solid var(--bord);border-radius:var(--rayon)}details.execution summary{cursor:pointer;font-weight:700}.proposal{border:1.5px dashed var(--trait);border-radius:var(--rayon);padding:.6rem .8rem;margin:.5rem 0}.proposal-list dt{font-weight:700}.proposal-list dd{margin:0 0 .4rem .6rem}.test-panel .steps{padding-left:1.2rem}.step summary{cursor:pointer}.envelope{border-left:3px solid var(--test);padding-left:.6rem;margin:.3rem 0 .6rem}.body-text{font-family:var(--police-mono);font-size:.85rem;background:var(--surface-2);border:1.5px solid var(--bord);border-radius:var(--rayon);padding:.5rem .65rem;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}.meta caption{text-align:left;font-weight:700}.mapper{padding:1rem 1.5rem 1.5rem}.mapper-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.6fr) minmax(300px,1.1fr);gap:1rem;align-items:start}.mapper-column{border:1.5px solid var(--bord);border-radius:var(--rayon-l);padding:.6rem .9rem .9rem;min-width:0;background:var(--surface)}.tree{list-style:none;padding:0;margin:0}.tree-field{display:flex;align-items:center;gap:.4rem;padding:.2rem .4rem;border-radius:7px;cursor:grab;border:1.5px solid transparent}.tree-field:hover,.tree-field.chosen{border-color:var(--accent);background:var(--accent-doux)}.tree-field .kind{color:var(--texte-2);font-size:.82em}.block{border:1.5px solid var(--bord);border-left:5px solid var(--cat-transformation);border-radius:var(--rayon);padding:.45rem .65rem;margin:.4rem 0;background:var(--surface)}.block.liste{border-left-color:var(--cat-routage)}.block.si{border-left-color:var(--cat-condition)}.block.has-error{border-color:var(--erreur);background:var(--erreur-fond)}.block.drop-target,.value-slot.drop-target{outline:2px dashed var(--accent);outline-offset:1px}.block-head{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.block-head input{width:9rem}.block-children{margin-left:1rem}.value-slot{border:1.5px dashed var(--trait);border-radius:var(--rayon);padding:.35rem .55rem;margin:.3rem 0;background:var(--surface-2)}.value-slot .value-kind{font-weight:700}.preview-output{font-family:var(--police-mono);font-size:.85rem;background:var(--surface-2);border:1.5px solid var(--bord);border-radius:var(--rayon);padding:.6rem;max-height:60vh;overflow:auto;white-space:pre-wrap;word-break:break-word}.structure-tree .field-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:flex-end;border-left:3px solid var(--bord);padding:.25rem 0 .25rem .55rem;margin:.25rem 0}.structure-tree .field-row label{margin:0}.structure-tree .field-row input[type=text]{width:9rem}.structure-children{margin-left:1.2rem}.mapper-column.sticky{position:sticky;top:.5rem;max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem);overflow:auto}.summary{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1.2rem;margin:.4rem 0 .8rem}.summary dt{font-weight:600;color:var(--texte-2)}.summary dd{margin:0;font-variant-numeric:tabular-nums}.run-head{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.run-head h1{margin:0;overflow-wrap:anywhere}.run-head .sub{color:var(--texte-2)}.timeline{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}.timeline>li{display:flex;gap:.85rem;align-items:flex-start;padding:.75rem .9rem;background:var(--surface);border:1.5px solid var(--bord);border-radius:var(--rayon-l)}.timeline>li.failed{border-color:var(--erreur)}.timeline .grow{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.timeline .sub{font-size:.88rem;color:var(--texte-2);overflow-wrap:anywhere}.log-fields{font-size:12px;word-break:break-word;max-width:40rem}tr.log-alerte td{background:var(--alerte-fond)}td.actions{display:flex;flex-wrap:wrap;gap:.3rem}.secret-key{align-items:flex-end}.secret-ref input{width:100%;font-family:var(--police-mono)}@media(max-width:1100px){.editor{height:auto}.editor-body{grid-template-columns:1fr}.canvas{min-height:520px}.palette,.side{border:0;border-top:1.5px solid var(--bord)}}@media(prefers-reduced-motion:reduce){button,.button{transition:none}button:active:not(:disabled),.button:active{transform:none}.loading:before{animation:none}.react-flow__edge.animated path{animation:none}}.folders-layout{display:grid;grid-template-columns:minmax(12rem,16rem) minmax(0,1fr);gap:1rem;align-items:start;margin-bottom:1rem}@media(max-width:760px){.folders-layout{grid-template-columns:minmax(0,1fr)}}.folder-tree{border:1px solid var(--bord);border-radius:var(--rayon);background:var(--surface);padding:.6rem .4rem}.folder-tree ul{list-style:none;margin:0;padding:0}.folder-tree ul ul{padding-left:1rem;border-left:1px solid var(--bord);margin-left:.5rem}.folder-tree li>button{display:block;width:100%;text-align:left;padding:.25rem .4rem;text-decoration:none;color:var(--texte);font-weight:500;overflow-wrap:anywhere}.folder-tree li>button[aria-current=true]{background:var(--accent-doux);color:var(--accent-texte);font-weight:700}.folder-content>h2{margin-top:0}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.7rem}
