body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;margin:0;min-height:100dvh;padding:10px}*,:after,:before,body{box-sizing:border-box}.tab-navigation{border-bottom:2px solid #e0e0e0;display:flex;gap:10px;margin-bottom:20px}.tab-button{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:1em;min-height:44px;padding:10px 20px;transition:all .2s ease}.tab-button:hover{background-color:#f5f5f5;color:#333}.tab-button.active{border-bottom-color:#3b82f6;color:#3b82f6;font-weight:600}.start-recipe-button{background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;min-height:44px;padding:12px 24px;transition:all .2s ease}.start-recipe-button:hover{background-color:#2563eb;box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.start-recipe-button:active{transform:scale(.98)}.create-recipe-button{background-color:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-height:44px;padding:10px 20px;transition:all .2s ease}.create-recipe-button:hover{background-color:#059669;transform:translateY(-1px)}.create-recipe-button:active{transform:scale(.98)}.create-recipe-button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}.nav-bar{align-items:center;background-color:#fafbfc;border-bottom:2px solid #e5e7eb;border-radius:6px 6px 0 0;display:flex;gap:10px;justify-content:space-between;margin-bottom:12px;padding:4px 8px 8px}.nav-tabs{display:flex;gap:4px}.nav-tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:15px;font-weight:500;min-height:44px;padding:8px 20px;transition:all .2s ease}.nav-tab:hover{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#333}.nav-tab.active{border-bottom-color:#3b82f6;color:#3b82f6;font-weight:600}.nav-auth{align-items:center;display:flex;gap:10px}@media (max-width:600px){body{padding:6px}.tab-navigation{margin-bottom:12px}.tab-button{flex:1 1;font-size:.9em;padding:8px 12px;text-align:center}.start-recipe-button{font-size:.9em;padding:10px 16px;width:100%}.create-recipe-button{font-size:13px;padding:10px 16px}}.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#0000;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;background-color:var(--xy-background-color-default);background-color:var(--xy-background-color,var(--xy-background-color-default));direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:#0000;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:#0000;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-default);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{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.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-default);stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width-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-default);stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width-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;pointer-events:none;position:absolute}.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.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected-default);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;user-select:none}.react-flow__arrowhead polyline{fill:var(--xy-edge-stroke-default);fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke:var(--xy-edge-stroke-default);stroke: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{overflow:visible;position:absolute;z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:default;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.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{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background-color:var(--xy-handle-background-color-default);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%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:0;left:50%;top:auto;transform:translate(-50%,50%)}.react-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.react-flow__handle-left{left:0;top:50%;transform:translate(-50%,-50%)}.react-flow__handle-right{right:0;top:50%;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{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-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{background:var(--xy-attribution-background-color-default);background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{height:100%;left:0;position:absolute;top:0;-webkit-user-select:none;user-select:none;width:100%}.react-flow__minimap{background:var(--xy-minimap-background-color-default);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-default);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-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-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-default);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-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-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-dots-color-default);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-lines-color-default);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-cross-color-default);stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow-default);box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));display:flex;flex-direction:column}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{align-items:center;background:var(--xy-controls-button-background-color-default);background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;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-default);color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;display:flex;height:26px;justify-content:center;padding:4px;-webkit-user-select:none;user-select:none;width:26px}.react-flow__controls-button svg{fill:currentColor;max-height:12px;max-width:12px;width:100%}.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-group,.react-flow__node-input,.react-flow__node-output{background-color:var(--xy-node-background-color-default);background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));border:var(--xy-node-border,var(--xy-node-border-default));border-radius:var(--xy-node-border-radius-default);border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));color:var(--xy-node-color-default);color:var(--xy-node-color,var(--xy-node-color-default));font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover-default);box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.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{box-shadow:var(--xy-node-boxshadow-selected-default);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-default);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-default);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-default);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-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.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color-default);background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;height:5px;translate:-50% -50%;width:5px}.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.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color-default);fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color-default);fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.react-flow-node.compact{background-color:#fff;border:2px solid #e0e0e0;border-left-width:4px;border-radius:6px;box-shadow:0 1px 4px #00000014;cursor:pointer;font-family:inherit;overflow:visible;padding:0;transition:border-color .2s ease,box-shadow .2s ease}.react-flow-node.compact.node-green{border-left-color:#10b981}.react-flow-node.compact.node-amber{border-left-color:#f59e0b}.react-flow-node.compact.node-blue{border-left-color:#3b82f6}.react-flow-node.compact.node-rose{border-left-color:#f43f5e}.react-flow-node.compact.node-slate{border-left-color:#64748b}.react-flow-node.compact:hover{box-shadow:0 2px 8px #3b82f626}.react-flow-node.compact.node-green:hover{border-color:#10b981}.react-flow-node.compact.node-amber:hover{border-color:#f59e0b}.react-flow-node.compact.node-blue:hover{border-color:#3b82f6}.react-flow-node.compact.node-rose:hover{border-color:#f43f5e}.react-flow-node.compact.node-slate:hover{border-color:#64748b}.react-flow-node.compact .node-header{align-items:center;border-radius:4px;color:#1f2937;display:flex;font-size:.85em;font-weight:600;gap:6px;justify-content:space-between;line-height:1.3;padding:6px 10px}.react-flow-node.compact.node-green .node-header{background-color:#ecfdf5}.react-flow-node.compact.node-amber .node-header{background-color:#fffbeb}.react-flow-node.compact.node-blue .node-header{background-color:#eff6ff}.react-flow-node.compact.node-rose .node-header{background-color:#fff1f2}.react-flow-node.compact.node-slate .node-header{background-color:#f1f5f9}.react-flow-node.compact .node-header-text{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.react-flow-node.compact .node-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.react-flow-node.compact .node-time{font-size:.8em;font-weight:500;opacity:.7;white-space:nowrap}.react-flow-node.compact.node-green .node-time{color:#065f46}.react-flow-node.compact.node-amber .node-time{color:#92400e}.react-flow-node.compact.node-blue .node-time{color:#1e40af}.react-flow-node.compact.node-rose .node-time{color:#9f1239}.react-flow-node.compact.node-slate .node-time{color:#475569}.react-flow-node.compact .node-expand-icon{color:#9ca3af;flex-shrink:0;font-size:10px}.react-flow-node.compact.expanded{box-shadow:0 4px 16px #00000026}.react-flow-node.compact.expanded.node-green{border-color:#10b981}.react-flow-node.compact.expanded.node-amber{border-color:#f59e0b}.react-flow-node.compact.expanded.node-blue{border-color:#3b82f6}.react-flow-node.compact.expanded.node-rose{border-color:#f43f5e}.react-flow-node.compact.expanded.node-slate{border-color:#64748b}.react-flow-node.compact.expanded .node-header{border-bottom:1px solid #e5e7eb;border-radius:4px 4px 0 0}.react-flow-node.compact .node-details{background-color:#fff;border-radius:0 0 4px 4px;color:#4b5563;font-size:.8em;line-height:1.4;padding:8px 12px}.react-flow-node.compact .node-description{color:#666;margin:0 0 6px}.react-flow-node.compact .node-details .node-content{color:#4b5563;font-size:1em;margin-bottom:3px}.react-flow-node.compact .node-ingredients{border-top:1px solid #f3f4f6;margin-top:6px;padding-top:6px}.react-flow-node.compact .node-ingredients ul{margin:4px 0 0;padding-left:16px}.react-flow-node.compact .node-ingredients li{margin:2px 0}.react-flow__edge-text{color:#94a3b8;font-family:sans-serif;font-size:.75em}.react-flow-node.compact .react-flow__handle{border:none;height:6px;min-height:0;min-width:0;width:6px}.react-flow-node.compact.node-green .react-flow__handle{background:#10b981}.react-flow-node.compact.node-amber .react-flow__handle{background:#f59e0b}.react-flow-node.compact.node-blue .react-flow__handle{background:#3b82f6}.react-flow-node.compact.node-rose .react-flow__handle{background:#f43f5e}.react-flow-node.compact.node-slate .react-flow__handle{background:#64748b}.react-flow-node.compact .react-flow__handle-left,.react-flow-node.compact .react-flow__handle-right{height:5px;width:5px}@media (max-width:600px){.react-flow-node.compact .node-header{font-size:.8em;padding:5px 8px}.react-flow-node.compact .node-details{font-size:.75em;padding:6px 8px}}.recipe-view{display:flex;flex-direction:column;height:calc(100dvh - 120px);overflow:hidden}.recipe-view-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:10px 15px}.recipe-title{flex-shrink:0;font-size:1.5em;font-weight:700;text-align:left}.recipe-view-tabs{display:flex;gap:4px}.recipe-tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-size:14px;padding:6px 16px;transition:all .2s ease}.recipe-tab:hover{color:#333}.recipe-tab.active{border-bottom-color:#3b82f6;color:#3b82f6;font-weight:600}.recipe-tab-content{flex:1 1;min-height:0;overflow:hidden}.ingredients-panel{height:100%;overflow-y:auto;padding:15px}.ingredients-panel h3{color:#333;font-size:1.2em;margin-bottom:15px;margin-top:0}.ingredients-list{list-style-type:none;margin:0;padding:0}.ingredients-list li{border-bottom:1px solid #e0e0e0;color:#555;padding:8px 0}.ingredients-list li:last-child{border-bottom:none}.yields-list{list-style-type:none;margin:0 0 20px;padding:0}.yields-list li{border-bottom:1px solid #e0e0e0;color:#555;font-weight:500;padding:8px 0}.yields-list li:last-child{border-bottom:none}.graph-container{height:100%;min-width:0}@media (max-width:480px){.recipe-view{height:calc(100dvh - 140px)}.recipe-title{font-size:1.2em}.ingredients-panel{padding:10px}.ingredients-panel h3{font-size:1em;margin-bottom:10px}}.recipe-browser{display:flex;gap:16px;height:calc(100dvh - 80px)}.browser-sidebar{display:flex;flex-direction:column;flex-shrink:0;gap:8px;width:260px}.recipe-search-bar{border:1px solid #ddd;border-radius:6px;font-size:14px;min-height:44px;padding:10px 12px;width:100%}.recipe-search-bar:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.recipe-list{display:flex;flex:1 1;flex-direction:column;gap:2px;overflow-y:auto}.recipe-list-item{background:none;border:none;border-radius:4px;color:#333;cursor:pointer;display:block;font-size:14px;overflow:hidden;padding:10px 12px;text-align:left;text-overflow:ellipsis;transition:background-color .15s;white-space:nowrap;width:100%}.recipe-list-item:hover{background-color:#f0f0f0}.recipe-list-item.selected{background-color:#e3f2fd;color:#1565c0;font-weight:600}.recipe-list-empty{color:#999;font-size:14px;padding:16px;text-align:center}.browser-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.browser-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.browser-loading{align-items:center;color:#999;display:flex;flex:1 1;font-size:16px;justify-content:center}@media (max-width:768px){.recipe-browser{flex-direction:column;height:auto}.browser-sidebar{max-height:200px;width:100%}.browser-main{min-height:60dvh}}.recipe-creator-chat{display:flex;flex-direction:column;height:calc(100dvh - 80px)}.creator-bottom-bar{background:#fafbfc;border-top:2px solid #e5e7eb;flex-shrink:0}.creator-status{background-color:#f8fafc;border-left:3px solid #3b82f6;border-radius:0 4px 4px 0;color:#555;font-size:13px;margin:8px 12px 0;padding:8px 12px}.creator-loading{color:#888;font-style:italic}.chat-input-container{display:flex;gap:8px;padding:12px}.chat-input{border:1px solid #ddd;border-radius:8px;flex:1 1;font-family:inherit;font-size:14px;min-height:44px;padding:10px 12px;resize:none}.chat-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.chat-send-button{align-self:flex-end;background-color:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;min-height:44px;padding:10px 20px;transition:background-color .15s}.chat-send-button:hover:not(:disabled){background-color:#2563eb}.chat-send-button:disabled{background-color:#ccc;cursor:not-allowed}.recipe-preview{border:1px solid #e0e0e0;border-radius:8px;display:flex;flex:1 1;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.recipe-preview-empty{align-items:center;background-color:#fafbfc;border:2px dashed #d1d5db;border-radius:8px;color:#9ca3af;display:flex;flex:1 1;font-size:15px;justify-content:center;line-height:1.5;padding:40px;text-align:center}.recipe-preview-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.recipe-preview-header h3{font-size:16px;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-preview-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.recipe-preview-body{flex:1 1;min-height:0;overflow:hidden}.recipe-preview-graph{height:100%;min-height:0}.recipe-preview-tabs{display:flex;gap:4px}.save-recipe-button{background-color:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-height:36px;padding:8px 16px;transition:background-color .15s}.save-recipe-button:hover{background-color:#059669}.save-input-group{align-items:center;display:flex;gap:6px}.save-name-input{border:1px solid #ddd;border-radius:4px;font-size:13px;min-height:36px;min-width:180px;padding:6px 10px}.save-name-input:focus{border-color:#3b82f6;outline:none}.save-confirm-button{background-color:#10b981;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-height:36px;padding:6px 14px}.save-confirm-button:hover:not(:disabled){background-color:#059669}.save-confirm-button:disabled{background-color:#ccc;cursor:not-allowed}.save-cancel-button{background:none;border:1px solid #ccc;border-radius:4px;color:#666;cursor:pointer;font-size:13px;min-height:36px;padding:6px 14px}.save-cancel-button:hover:not(:disabled){background-color:#f5f5f5}.save-success{color:#10b981;font-size:14px;font-weight:600}.nav-to-browser-button{background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;min-height:36px;padding:8px 16px;transition:background-color .15s}.nav-to-browser-button:hover{background-color:#2563eb}.preview-error{background-color:#ffebee;border-bottom:1px solid #ef5350;color:#c62828;font-size:13px;padding:8px 16px}@media (max-width:768px){.recipe-preview-header{gap:8px;padding:8px 12px}.save-input-group{flex-wrap:wrap}.save-name-input{flex:1 1;min-width:120px}}.execution-view{box-sizing:border-box;margin:0 auto;max-width:600px;overflow-y:auto;padding:16px 16px 150px}.execution-view.wide{max-width:1200px}.execution-view.error,.execution-view.loading{color:#666;font-size:1.2em;padding:40px;text-align:center}.execution-header{background-color:#f8f9fa;border-left:4px solid #3b82f6;border-radius:8px;margin-bottom:16px;padding:10px 14px}.execution-end-time{color:#333;font-size:1em;font-weight:600}.steps-list{display:flex;flex-direction:column;gap:6px}.steps-columns{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:1fr 1fr 1fr}.steps-column{display:flex;flex-direction:column;gap:6px}.column-header{border-radius:6px;color:#fff;font-size:.9em;font-weight:600;margin-bottom:4px;padding:8px 12px}.column-header-yellow{background-color:#f59e0b}.column-header-green{background-color:#10b981}.column-header-blue{background-color:#3b82f6}.completion-card{background-color:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;margin-top:8px;padding:48px 24px;text-align:center}.completion-checkmark{align-items:center;background-color:#10b981;border-radius:50%;color:#fff;display:flex;font-size:32px;font-weight:700;height:64px;justify-content:center;margin:0 auto 16px;width:64px}.completion-title{color:#065f46;font-size:1.5em;font-weight:700;margin-bottom:8px}.completion-subtitle{color:#047857;font-size:.95em}.step-row{background-color:#fff;border-left:4px solid;border-radius:6px;box-shadow:0 1px 3px #00000014;transition:box-shadow .15s ease}.step-row:hover{box-shadow:0 2px 6px #0000001f}.step-row-yellow{border-left-color:#f59e0b}.step-row-green{border-left-color:#10b981}.step-row-blue{border-left-color:#3b82f6}.step-row-header{align-items:center;cursor:pointer;display:flex;gap:10px;min-height:44px;padding:12px 14px;-webkit-user-select:none;user-select:none}.step-row-description{color:#333;flex:1 1;font-size:.95em;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-row.expanded .step-row-description{white-space:normal}.step-row-timer{border-radius:4px;flex-shrink:0;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.85em;font-weight:600;padding:3px 8px;white-space:nowrap}.step-row-yellow .step-row-timer{background-color:#fef3c7;color:#92400e}.step-row-green .step-row-timer{background-color:#d1fae5;color:#065f46}.step-row-blue .step-row-timer{background-color:#dbeafe;color:#1e40af}.step-row-timer.urgent{animation:pulse 1.5s ease-in-out infinite;background-color:#fee2e2;color:#dc2626}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.step-row-action{border:none;border-radius:5px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.85em;font-weight:600;min-height:32px;padding:6px 14px;transition:background-color .15s ease;white-space:nowrap}.step-row-yellow .step-row-action{background-color:#f59e0b}.step-row-yellow .step-row-action:hover{background-color:#d97706}.step-row-green .step-row-action{background-color:#10b981}.step-row-green .step-row-action:hover{background-color:#059669}.step-row-blue .step-row-action{background-color:#3b82f6}.step-row-blue .step-row-action:hover{background-color:#2563eb}.step-row-action:active{transform:scale(.96)}.step-row-details{border-top:1px solid #f0f0f0;margin-top:0;padding:0 14px 14px}.step-ingredients{font-size:.9em;margin-bottom:10px;margin-top:10px}.step-ingredients strong{color:#555;display:block;margin-bottom:4px}.step-ingredients ul{list-style-type:disc;margin:0;padding-left:20px}.step-ingredients li{color:#666;margin-bottom:2px}.step-times{display:flex;font-size:.85em;gap:16px;margin-bottom:4px}.time-info{color:#666}.time-info strong{color:#555}@media (max-width:600px){.execution-view{padding:10px 10px 100px}.step-row-header{padding:10px 12px}.step-row-action{min-height:36px;padding:8px 14px}}
/*# sourceMappingURL=main.096b6cef.css.map*/