.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%}:root{--canvas-handle-size: 16px;--canvas-handle-size-hover: 18px;--canvas-handle-size-valid: 24px;--canvas-handle-border-width: 2px;--canvas-accent-primary: #8b5cf6;--canvas-accent-success: #10b981;--canvas-accent-info: #3b82f6;--canvas-accent-error: #ef4444;--canvas-bg-dark-primary: #0f172a;--canvas-bg-dark-secondary: #1e293b;--canvas-bg-dark-elevated: #334155;--canvas-bg-light-primary: #f8fafc;--canvas-bg-light-secondary: #ffffff;--canvas-transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--canvas-transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--canvas-transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}.react-flow .react-flow__handle{width:var(--canvas-handle-size);height:var(--canvas-handle-size);border-radius:50%;border:var(--canvas-handle-border-width) solid rgba(255,255,255,.5);background:linear-gradient(135deg,rgba(139,92,246,.95),var(--canvas-accent-primary));box-shadow:0 0 12px #8b5cf699,0 0 24px #8b5cf633,inset 0 2px 3px #ffffff40;opacity:.85;transition:all var(--canvas-transition-fast);cursor:crosshair;z-index:10}.react-flow .react-flow__handle.source{background:linear-gradient(135deg,rgba(52,211,153,.95),var(--canvas-accent-success));box-shadow:0 0 12px #10b98199,0 0 24px #10b98140,inset 0 2px 3px #ffffff40}.react-flow .react-flow__handle.target{background:linear-gradient(135deg,rgba(167,139,250,.95),var(--canvas-accent-primary));box-shadow:0 0 12px #8b5cf699,0 0 24px #8b5cf640,inset 0 2px 3px #ffffff40}.react-flow .react-flow__handle:hover{width:var(--canvas-handle-size-hover);height:var(--canvas-handle-size-hover);opacity:1;border-color:#fffc;transform:scale(1.1)}.react-flow .react-flow__handle.source:hover{box-shadow:0 0 20px #10b981e6,0 0 36px #10b98180,0 0 60px #10b98133,inset 0 2px 4px #ffffff59}.react-flow .react-flow__handle.target:hover{box-shadow:0 0 20px #8b5cf6e6,0 0 36px #8b5cf680,0 0 60px #8b5cf633,inset 0 2px 4px #ffffff59}.react-flow .react-flow__connection-line{stroke:var(--canvas-accent-primary);stroke-width:4px;filter:drop-shadow(0 0 6px rgba(139,92,246,.7)) drop-shadow(0 0 12px rgba(139,92,246,.4))}.react-flow.connecting .react-flow__handle.target{animation:handleBreathe .8s ease-in-out infinite;opacity:1}.react-flow .react-flow__handle.connectingto,.react-flow .react-flow__handle.valid{width:var(--canvas-handle-size-valid);height:var(--canvas-handle-size-valid);border-width:3px;border-color:#fff;background:linear-gradient(135deg,#00e676,#00c864);box-shadow:0 0 24px #00e676,0 0 48px #00e67699,0 0 72px #00e6764d,inset 0 2px 4px #fff6;opacity:1;animation:handleMagnet .4s ease-in-out infinite;z-index:100}.react-flow .react-flow__handle.connectingto:before,.react-flow .react-flow__handle.valid:before{content:"";position:absolute;top:50%;left:50%;width:60px;height:60px;border-radius:50%;border:2px dashed rgba(0,230,118,.6);background:radial-gradient(circle,rgba(0,230,118,.15) 0%,transparent 70%);transform:translate(-50%,-50%);animation:snapRing 1s ease-out infinite;pointer-events:none}@keyframes handleBreathe{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}@keyframes handleMagnet{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes handlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes snapRing{0%{width:40px;height:40px;opacity:.8;border-color:#00e676cc}to{width:80px;height:80px;opacity:0;border-color:#00e67600}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes contextGlow{0%,to{box-shadow:0 0 8px #10b98166,0 0 16px #10b98133,0 8px 24px -8px #0006}50%{box-shadow:0 0 16px #10b98199,0 0 32px #10b9814d,0 8px 24px -8px #0006}}@keyframes contextPulse{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}@keyframes flowPulse{0%{stroke-dashoffset:0}to{stroke-dashoffset:-20}}@media(prefers-reduced-motion:reduce){.react-flow .react-flow__handle,.react-flow .react-flow__node,.react-flow .react-flow__edge-path,.react-flow__controls-button{transition:none;animation:none}.react-flow .react-flow__handle.connectingto,.react-flow .react-flow__handle.valid,.react-flow.connecting .react-flow__handle.target{animation:none}.react-flow .react-flow__handle.connectingto:before,.react-flow .react-flow__handle.valid:before{animation:none;display:none}}.react-flow__background{background-color:var(--canvas-bg-light-primary)}@media(prefers-color-scheme:dark){.react-flow__background{background-color:var(--canvas-bg-dark-primary)}}.react-flow__controls,.react-flow__minimap{box-shadow:0 8px 32px #0000001f,0 0 0 1px #ffffff1a;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.react-flow__controls{padding:6px;background:linear-gradient(135deg,#ffffffe6,#fffc);box-shadow:0 4px 20px #0000001f}.react-flow__controls-button{background:transparent;border:none;border-radius:10px;transition:all var(--canvas-transition-normal);margin-bottom:2px;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.react-flow__controls-button:hover{background:#8b5cf61a;transform:scale(1.05)}.react-flow__controls-button:active{transform:scale(.95)}.react-flow__minimap{background:linear-gradient(135deg,#ffffffe6,#ffffffd9)}.dark .react-flow__controls,.dark .react-flow__minimap{background:linear-gradient(135deg,#1e293bf2,#0f172ae6);border-color:#ffffff1a;box-shadow:0 8px 32px #0000004d,0 0 0 1px #ffffff0d}.dark .react-flow__controls-button{fill:#e2e8f0}.dark .react-flow__controls-button:hover{background:#8b5cf633;fill:#a78bfa}.react-flow__resize-control.line{border-color:#8b5cf680}.react-flow__resize-control.handle{background-color:var(--canvas-accent-primary);border-color:#fff}.react-flow__node.dragging{box-shadow:0 20px 60px #0003,0 8px 24px #00000026,0 0 0 2px #8b5cf64d;z-index:1000;filter:brightness(1.02)}.react-flow__node:hover:not(.dragging){z-index:100}.react-flow__node.selected{box-shadow:0 0 0 2px #8b5cf6e6,0 0 20px #8b5cf64d,0 8px 24px #00000026}.react-flow__node.selected:after{content:"";position:absolute;inset:-3px;border-radius:inherit;border:2px solid transparent;background:linear-gradient(135deg,#8b5cf680,#3b82f680) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.react-flow__selection{background:linear-gradient(135deg,#8b5cf614,#3b82f614);border:2px dashed rgba(139,92,246,.5);border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.react-flow__nodesselection-rect{background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border:2px solid rgba(139,92,246,.6);border-radius:12px;box-shadow:0 0 20px #8b5cf633}.react-flow__edge-path{transition:stroke var(--canvas-transition-normal),stroke-width var(--canvas-transition-normal),filter var(--canvas-transition-normal);stroke-linecap:round;stroke-linejoin:round}.react-flow__edge:hover .react-flow__edge-path{stroke-width:5px;filter:drop-shadow(0 0 6px currentColor) drop-shadow(0 0 12px currentColor)}.react-flow__edge.selected .react-flow__edge-path{stroke-width:4px;stroke:var(--canvas-accent-primary);filter:drop-shadow(0 0 8px rgba(139,92,246,.6))}.react-flow__edge.context-active .react-flow__edge-path{stroke:var(--canvas-accent-success);stroke-width:3px;stroke-dasharray:5,5;animation:flowPulse .5s linear infinite}.react-flow__edge.context-inactive .react-flow__edge-path{stroke:#64748b;stroke-width:1px;opacity:.3}.react-flow__pane{cursor:default}.react-flow__pane.dragging,.react-flow-panning .react-flow__pane{cursor:grabbing}.react-flow-pan-mode .react-flow__pane{cursor:grab}.react-flow-pan-mode .react-flow__pane.dragging{cursor:grabbing}.pan-mode-indicator{position:absolute;top:16px;left:50%;transform:translate(-50%);background:#6366f1e6;color:#fff;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;box-shadow:0 4px 12px #6366f14d;display:flex;align-items:center;gap:8px;z-index:1000;pointer-events:none;animation:fadeIn .15s ease}.react-flow-snap-mode .react-flow__background pattern circle{fill:#6366f14d}.context-preview-panel{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(16,185,129,.3);border-radius:12px;padding:12px 20px;color:#e2e8f0;font-size:13px;box-shadow:0 8px 32px #0000004d,0 0 0 1px #10b98133;z-index:1000;max-width:500px;animation:fadeIn .2s ease}.context-preview-panel h4{margin:0 0 8px;color:var(--canvas-accent-success);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}.context-preview-panel ul{margin:0;padding:0 0 0 16px;list-style:none}.context-preview-panel li{position:relative;padding:2px 0;color:#94a3b8}.context-preview-panel li:before{content:"";position:absolute;left:-12px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--canvas-accent-success);transform:translateY(-50%)}.context-preview-panel .token-count{color:var(--canvas-accent-success);font-weight:600;margin-left:8px}.context-preview-panel .total-tokens{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-weight:600}.context-preview-panel .total-tokens .value{color:var(--canvas-accent-success)}html{font-size:clamp(14px,1vw + .5rem,18px);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{line-height:1.6;letter-spacing:.01em;overflow-x:hidden}.container-responsive{max-width:min(100% - 2rem,1200px);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}@media(hover:none)and (pointer:coarse){.MuiButton-root{min-height:44px!important;min-width:44px!important;padding:clamp(12px,3vw,16px) clamp(20px,5vw,32px)!important}.MuiIconButton-root{min-height:44px!important;min-width:44px!important;padding:clamp(10px,2.5vw,12px)!important}}.text-responsive-sm{font-size:clamp(.75rem,2vw,.875rem)}.text-responsive-base{font-size:clamp(.875rem,2.5vw,1rem)}.text-responsive-lg{font-size:clamp(1rem,3vw,1.25rem)}.text-responsive-xl{font-size:clamp(1.25rem,4vw,1.5rem)}.text-responsive-2xl{font-size:clamp(1.5rem,5vw,2rem)}.spacing-responsive-sm{margin:clamp(.5rem,2vw,1rem)}.spacing-responsive-md{margin:clamp(1rem,3vw,1.5rem)}.spacing-responsive-lg{margin:clamp(1.5rem,4vw,2rem)}.grid-responsive{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(1rem,3vw,2rem)}.grid-responsive-sm{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(.75rem,2vw,1.25rem)}.MuiButton-root:focus-visible,.MuiIconButton-root:focus-visible,.MuiTextField-root:focus-within{outline:2px solid #667eea;outline-offset:2px}.MuiCard-root{margin:clamp(.5rem,2vw,1rem) 0}.MuiCardContent-root{padding:clamp(1rem,4vw,1.5rem)!important}.MuiDialog-paper{margin:clamp(1rem,4vw,2rem);max-height:calc(100vh - clamp(2rem,8vw,4rem))}@media(max-width:600px){.MuiTabs-root{min-height:44px}.MuiTab-root{min-height:44px;padding:clamp(8px,2vw,12px) clamp(12px,3vw,16px)}}.MuiTableContainer-root{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#667eea rgba(0,0,0,.1)}.MuiTableContainer-root::-webkit-scrollbar{height:8px}.MuiTableContainer-root::-webkit-scrollbar-track{background:#0000000d;border-radius:4px}.MuiTableContainer-root::-webkit-scrollbar-thumb{background:#667eea;border-radius:4px}.MuiTableContainer-root::-webkit-scrollbar-thumb:hover{background:#4d5fb7}.image-responsive{max-width:100%;height:auto;object-fit:cover;border-radius:8px}.loading-skeleton{background:linear-gradient(90deg,#667eea1a 25%,#667eea33,#667eea1a 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-contrast:high){.MuiButton-root,.MuiIconButton-root{border:2px solid currentColor}.MuiCard-root{border:1px solid rgba(0,0,0,.2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;height:100%}#root{height:100%}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0000000d;border-radius:10px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#764ba2,#667eea)}html{scroll-behavior:smooth}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #667eeab3}50%{transform:scale(1.02);box-shadow:0 0 0 8px #667eea00}}@keyframes glow{0%,to{box-shadow:0 0 5px #667eea80,0 0 10px #667eea4d}50%{box-shadow:0 0 10px #667eeacc,0 0 20px #667eea80}}*:focus-visible{outline:2px solid #667eea;outline-offset:2px;border-radius:4px}button:focus-visible,a:focus-visible{outline:2px solid #667eea;outline-offset:2px}.ocr-language-menu-high-z,.MuiPopover-root,.MuiMenu-paper{z-index:9999!important}
