@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;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:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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: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;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{z-index:5;margin:15px;position:absolute}.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{background:#ffffff80;margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.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{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.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 #0059dccc}.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{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.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{background-color:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.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.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{color:#15223b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6fa;font-family:Manrope,PingFang SC,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 86% -20%,#e1ecff 0,#0000 34%),#f4f6fa;min-width:1120px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{color:#dce9ff;background:#10213d;flex-direction:column;flex:0 0 250px;width:250px;padding:28px 16px 20px;display:flex;box-shadow:12px 0 34px #20355d14}.brand{align-items:center;gap:12px;padding:0 12px 38px;display:flex}.brand-mark{color:#10213d;background:#91e7d0;border-radius:12px;place-items:center;width:38px;height:38px;font-size:22px;font-weight:800;display:grid;box-shadow:0 0 0 5px #91e7d01f}.brand strong{letter-spacing:-.02em;font-size:14px;display:block}.brand small{color:#7e96ba;letter-spacing:.07em;margin-top:3px;font:10px DM Mono,monospace;display:block}.sidebar-label,.eyebrow,.mini-heading,.result-label{letter-spacing:.13em;text-transform:uppercase;font:10px DM Mono,monospace}.sidebar-label{color:#7790b4;padding:0 12px 10px}nav{gap:6px;display:grid}.nav-item{text-align:left;color:#aabddb;background:0 0;border:0;border-radius:12px;grid-template-columns:30px 1fr 18px;align-items:center;gap:9px;width:100%;padding:12px;transition:all .2s;display:grid}.nav-item:hover{color:#fff;background:#ffffff0f}.nav-item.active{color:#fff;background:linear-gradient(110deg,#71e0c630,#4779bf33);box-shadow:inset 3px 0 #91e7d0}.nav-icon{color:#8ee4ce;text-align:center;font-size:17px}.nav-item strong,.nav-item small{display:block}.nav-item strong{font-size:13px;font-weight:700}.nav-item small{color:#7189ae;margin-top:3px;font-size:10px}.nav-arrow{color:#627a9f;font-size:16px}.sidebar-footer{color:#93a7c5;border-top:1px solid #ffffff14;margin-top:auto;padding:16px 12px 4px;font-size:11px;line-height:1.7}.sidebar-footer small{color:#647eaa}.pulse,.connection-dot{background:#f4bb70;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 4px #f4bb701f}.pulse{background:#91e7d0;box-shadow:0 0 0 4px #91e7d01f}.main-content{flex:1;min-width:0;padding:0 36px 48px}.topbar{border-bottom:1px solid #e2e7f0;justify-content:space-between;align-items:center;gap:24px;min-height:123px;display:flex}.eyebrow{color:#6c82a4;font-size:9px;display:block}h1,h2,h3,p{margin:0}h1{letter-spacing:-.055em;margin-top:7px;font-size:30px;line-height:1}h2{letter-spacing:-.04em;margin-top:7px;font-size:19px}h3{letter-spacing:-.035em;margin-top:6px;font-size:17px}.context-panel{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:9px;display:flex}.context-panel label{color:#7386a4;text-transform:uppercase;letter-spacing:.05em;font:9px DM Mono,monospace}.context-panel input,.context-panel select{color:#273c5d;background:#fff;border:1px solid #d8e0ed;border-radius:7px;outline:none;width:108px;margin-top:5px;padding:7px 8px;font:11px DM Mono,monospace;display:block}.context-panel select{width:135px}.connection{color:#8493a9;white-space:nowrap;align-self:center;margin-left:4px;font-size:10px}.connection-dot.online{background:#54c79d;box-shadow:0 0 0 4px #54c79d1f}.notice{z-index:5;color:#23443e;background:#d5f6eb;border-radius:10px;max-width:430px;padding:11px 16px;font-size:12px;position:fixed;top:22px;right:34px;box-shadow:0 12px 30px #23443e1f}.notice.error{color:#692b37;background:#ffe1e4}.page-grid{grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr);align-items:start;gap:20px;padding-top:24px;display:grid}.prompt-grid{grid-template-columns:minmax(355px,.67fr) minmax(620px,1.33fr)}.workflow-grid{grid-template-columns:minmax(350px,.72fr) minmax(600px,1.28fr)}.panel{background:#ffffffdb;border:1px solid #e3e8f0;border-radius:17px;min-width:0;padding:24px;box-shadow:0 10px 38px #20355d0e}.panel-header{justify-content:space-between;align-items:start;gap:12px;padding-bottom:18px;display:flex}.panel-caption{color:#72839e;background:#f7fafc;border:1px solid #e5edf4;border-radius:9px;padding:11px 13px;font-size:11px;line-height:1.5}.model-list-filters{gap:8px;margin:12px 0;display:flex}.model-list-filters input{flex:1}.model-list-filters select{width:112px}.primary-button,.secondary-button,.danger-button{border:0;border-radius:8px;padding:10px 14px;font-size:11px;font-weight:700;transition:all .18s}.primary-button{color:#10213d;background:#91e7d0;box-shadow:0 5px 12px #56b39b26}.primary-button:hover{background:#b0f0df;transform:translateY(-1px)}.secondary-button{color:#2a476e;background:#e9f0fa}.secondary-button:hover{background:#dce8f8}.danger-button{color:#88424a;background:#ffebed}.danger-button:hover{background:#ffdce0}.stack-list{gap:7px;margin-top:16px;display:grid}.list-row{color:#213753;text-align:left;background:#f8fafc;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;width:100%;min-height:61px;padding:10px 11px;transition:all .18s;display:flex}.list-row:hover,.list-row.selected{background:#f0fbf7;border-color:#b9eadd}.provider-badge,.prompt-mark,.workflow-mark{color:#315f87;background:#dcecf8;border-radius:9px;flex:0 0 33px;place-items:center;width:33px;height:33px;font:11px DM Mono,monospace;display:grid}.prompt-mark{color:#7650a5;background:#eee7fa;font-size:16px}.workflow-mark{color:#2e7a69;background:#dff5ee;font-size:17px}.row-main{flex:1;min-width:0}.row-main strong,.row-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row-main strong{font-size:12px}.row-main small{color:#8393a9;margin-top:4px;font-size:10px}.status-pill{white-space:nowrap;border-radius:20px;flex:none;padding:5px 7px;font-size:9px;font-weight:800}.status-pill.enabled,.status-pill.published{color:#21745e;background:#d9f5ea}.status-pill.disabled,.status-pill.inactive{color:#8b5860;background:#fbe3e7}.status-pill.draft{color:#82621f;background:#fff1cf}.version-label{color:#6d82a1;font:10px DM Mono,monospace}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:16px;display:grid}.field{min-width:0;margin-bottom:16px;display:block}.field>span,.toggle-field>span{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px;display:flex}.field strong,.toggle-field strong{color:#4c6180;font-size:11px}.field small,.toggle-field small{color:#9aa9bb;font-size:9px}.field input,.field textarea,.field select{color:#1d3455;background:#fbfcfe;border:1px solid #dce4ef;border-radius:8px;outline:none;width:100%;padding:10px 11px;font-size:12px;transition:all .15s}.field input:focus,.field textarea:focus,.field select:focus,.context-panel input:focus{border-color:#82d8c1;box-shadow:0 0 0 3px #82d8c124}.field input:disabled{color:#8897aa;background:#f1f4f8}.field select{appearance:auto}.code-input{resize:vertical;min-height:122px;font:11px/1.65 DM Mono,monospace!important}.code-input.short{min-height:86px}.prompt-content{min-height:210px}.snapshot-input{min-height:225px}.preview-input{min-height:170px}.toggle-field{background:#fbfcfe;border:1px solid #e1e8f0;border-radius:9px;flex-direction:column;justify-content:center;min-height:65px;padding:0 12px;display:flex}.toggle-field input{display:none}.toggle-field i{background:#cdd7e4;border-radius:20px;width:33px;height:18px;transition:all .2s;position:relative}.toggle-field i:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-field input:checked+i{background:#59c9a7}.toggle-field input:checked+i:after{left:17px}.form-actions{align-items:center;gap:8px;padding-top:2px;display:flex}.dify-import-preview{background:linear-gradient(135deg,#f5f9ff,#fff);border:1px solid #bcd8ff;border-radius:16px;margin:22px 0;padding:20px}.dify-import-preview .section-heading{margin-bottom:14px}.import-diagnostics{color:#53647f;gap:7px;margin-top:16px;font-size:12px;display:grid}.diagnostic-warning{color:#9a6811}.diagnostic-error{color:#bb3b4b}.diagnostic-info{color:#3c6e9f}.metadata-strip{color:#8b9ab0;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5;gap:22px;margin:3px 0 18px;padding:12px 13px;font-size:10px;display:flex}.metadata-strip strong{color:#48617f;margin-left:5px;font:10px DM Mono,monospace}.secret-status{color:#48617f;background:#fbfcfe;border:1px solid #e1e8f0;border-radius:9px;flex-direction:column;gap:5px;margin:3px 0 18px;padding:13px;display:flex}.secret-status strong{font-size:12px}.secret-status small{color:#8b9ab0;font-size:10px}.loading{color:#8494ab;justify-content:center;align-items:center;gap:9px;min-height:180px;font-size:12px;display:flex}.spinner{border:2px solid #dce7f0;border-top-color:#65cbae;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{color:#8292a9;text-align:center;flex-direction:column;align-items:center;gap:7px;padding:57px 22px;font-size:11px;line-height:1.5;display:flex}.empty-state strong{color:#4c6380;font-size:13px}.empty-icon{color:#4d9d86;background:#e0f6ee;border-radius:13px;place-items:center;width:38px;height:38px;margin-bottom:4px;font-size:23px;display:grid}.version-list,.change-log{border-top:1px solid #edf1f6;margin-top:23px;padding-top:18px}.mini-heading{color:#8394ae;margin-bottom:10px;font-size:9px}.version-row{color:#637590;text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:31px 10px 1fr auto;align-items:center;gap:7px;width:100%;padding:8px 9px;font-size:10px;display:grid}.version-row:hover,.version-row.selected{color:#244266;background:#f0f7f6}.version-row>span:first-child{font:700 10px DM Mono,monospace}.version-row small{color:#9ba9bb;font-size:9px}.status-dot{background:#e9c265;border-radius:50%;width:7px;height:7px}.status-dot.published{background:#5bc7a2}.status-dot.inactive{background:#d98b99}.preview-card{background:linear-gradient(135deg,#f3fbfa,#f6f8fd);border:1px solid #dcebe9;border-radius:13px;margin-top:27px;padding:19px}.section-heading,.inspector-header{justify-content:space-between;align-items:start;gap:15px;margin-bottom:17px;display:flex}.mock-badge,.snapshot-lock{color:#31826e;white-space:nowrap;background:#e4f8f1;border:1px solid #bfe7db;border-radius:5px;padding:5px 7px;font:9px DM Mono,monospace}.preview-columns{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;display:grid}.result-box{background:#fff;border:1px solid #dfe7ef;border-radius:8px;min-width:0;padding:12px}.result-label{color:#7890a8;margin-bottom:7px;font-size:9px}.result-box pre{white-space:pre-wrap;color:#294a65;min-height:64px;max-height:154px;margin:0 0 16px;font:11px/1.6 DM Mono,monospace;overflow:auto}.mock-result{color:#3e6f64;font-size:11px;line-height:1.5}.preview-meta{color:#8b9cab;margin-top:11px;font:9px DM Mono,monospace}.change-row{color:#6b7f9b;border-bottom:1px solid #f0f2f6;grid-template-columns:1.3fr 44px 1fr auto;align-items:center;gap:8px;padding:8px 5px;font-size:10px;display:grid}.change-action{color:#4a6383;font-weight:700}.change-row small{color:#a0adbc;font-size:9px}.workflow-inspector{background:#f9fbfd;border:1px solid #e1e8f0;border-radius:12px;margin-top:26px;padding:18px}.workflow-inspector pre{color:#39516e;max-height:260px;margin:0 0 18px;font:11px/1.65 DM Mono,monospace;overflow:auto}.binding-grid{border-top:1px solid #e6edf3;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding-top:14px;display:grid}.binding-grid div{flex-direction:column;gap:4px;display:flex}.binding-grid small{color:#8b9bae;font-size:9px}.binding-grid strong{color:#38516f;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.project-home{padding-top:28px}.project-home-header{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}.project-home-description{color:#71829c;max-width:680px;margin-top:12px;font-size:13px;line-height:1.6}.project-home-actions,.editor-page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.project-card-grid{grid-template-columns:repeat(3,minmax(250px,1fr));gap:16px;display:grid}.project-card{background:#ffffffe6;border:1px solid #e0e7f0;border-radius:18px;min-height:224px;transition:all .2s;overflow:hidden;box-shadow:0 12px 34px #20355d0e}.project-card:hover{border-color:#b8d9e8;transform:translateY(-2px);box-shadow:0 18px 40px #20355d1a}.project-card:before{content:"";background:#91e7d0;height:4px;display:block}.project-card.blue:before{background:#8f9bea}.project-card.amber:before{background:#f0c27b}.project-card-open{color:#1f3655;text-align:left;background:0 0;border:0;flex-direction:column;width:100%;min-height:220px;padding:18px 19px 16px;display:flex}.project-card-topline,.project-card-meta,.project-card-footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-icon{color:#2d7e70;background:#e1f7f0;border-radius:11px;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.project-card.blue .project-icon{color:#5264aa;background:#e8ebff}.project-card-copy{min-width:0;margin-top:18px}.project-card-copy strong,.project-card-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.project-card-copy strong{letter-spacing:-.03em;font-size:16px}.project-card-copy span{color:#8292aa;margin-top:5px;font:10px DM Mono,monospace}.project-card-copy p{color:#71829c;min-height:34px;margin-top:12px;font-size:11px;line-height:1.55}.project-card-meta{color:#66809e;margin-top:auto;padding-top:14px;font-size:10px}.project-card-meta span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-card-footer{color:#9aa8ba;border-top:1px solid #edf1f6;margin-top:14px;padding-top:12px;font-size:10px}.project-card-arrow{color:#4d9c8b;font-size:18px;transition:transform .2s}.project-card:hover .project-card-arrow{transform:translate(3px)}.project-home-empty,.project-home-state{color:#8292a9;text-align:center;border:1px dashed #d3dfeb;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:320px;font-size:12px;display:flex}.project-home-empty h3{color:#405a7b}.project-home-empty p{max-width:440px;line-height:1.6}.empty-illustration{color:#4a9a87;background:#e0f6ee;border-radius:16px;place-items:center;width:50px;height:50px;margin-bottom:5px;font-size:28px;display:grid}.editor-page{min-width:0;padding-top:20px}.editor-page-toolbar{grid-template-columns:minmax(180px,.65fr) minmax(300px,1fr) minmax(180px,.65fr);align-items:center;gap:16px;min-height:58px;margin-bottom:16px;padding:0 2px;display:grid}.back-button{color:#54708e;background:0 0;border:0;width:fit-content;font-size:11px;font-weight:700}.back-button:hover{color:#2b5d78}.editor-page-title{justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.editor-page-title .eyebrow{color:#7c8fa9}.editor-page-title strong{color:#233d60;text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.editor-page .detail-panel{max-width:none;padding:25px 28px 30px}.editor-page .panel-header{display:none}.editor-page .form-grid{border-bottom:1px solid #edf1f6;grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:12px}.flow-canvas-shell{height:var(--flow-canvas-height,520px);background:#f8fbfd;border:1px solid #dce7ef;border-radius:14px;position:relative;overflow:hidden}.flow-canvas-shell .react-flow{background:radial-gradient(circle at 1px 1px,#dbe5ef 1px,#0000 0) 0 0/22px 22px,#f8fbfd}.flow-canvas-shell .react-flow__controls{border:1px solid #d7e3ee;border-radius:9px;overflow:hidden;box-shadow:0 5px 14px #30496914}.flow-canvas-shell .react-flow__controls-button{color:#58738e;background:#fff;border-bottom:1px solid #e4ebf2;width:28px;height:28px}.flow-canvas-shell .react-flow__minimap{background:#ffffffd1;border:1px solid #d7e3ee;border-radius:9px;bottom:14px;right:14px;overflow:hidden}.flow-react-node{color:#254361;background:#fffffff7;border:1px solid #c7d8e7;border-radius:12px;width:190px;min-height:82px;padding:12px 14px;transition:all .16s;position:relative;box-shadow:0 8px 20px #2f53781f}.flow-react-node.selected{border-color:#54c79d;box-shadow:0 0 0 3px #54c79d29,0 8px 20px #2f53781f}.flow-react-node.approval{background:#fcf9ff;border-color:#d6b8e7}.flow-react-node.大模型{background:#fafaff;border-color:#9ba7e4}.flow-react-node-type{color:#6797a0;letter-spacing:.12em;margin-bottom:6px;font:700 8px DM Mono,monospace}.flow-react-node.approval .flow-react-node-type{color:#986bb5}.flow-react-node strong,.flow-react-node small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.flow-react-node strong{font-size:13px}.flow-react-node small{color:#8495aa;margin-top:6px;font:9px DM Mono,monospace}.flow-handle{background:#76b8aa;border:2px solid #fff;width:8px;height:8px}.editor-page .validation-panel{margin-top:16px}.editor-page .node-inspector,.editor-page .edge-editor,.editor-page .local-run-panel{margin-top:22px;padding:21px 0 0}.editor-page .run-panel{background:linear-gradient(135deg,#f3fbfa,#f6f8fd);border:1px solid #dcebe9;border-radius:14px;margin-top:26px;padding:21px}@media (width<=1180px){.project-card-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}.editor-page-toolbar{grid-template-columns:1fr auto}.editor-page-title{grid-area:1/1/auto/-1;justify-content:flex-start}.editor-page-actions{grid-area:2/2}.back-button{grid-area:2/1}.editor-page .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1280px){body{min-width:980px}.sidebar{flex-basis:220px;width:220px}.main-content{padding-left:25px;padding-right:25px}.topbar{flex-direction:column;justify-content:center;align-items:start;padding:20px 0}.context-panel{justify-content:flex-start}.page-grid{grid-template-columns:minmax(310px,.65fr) minmax(500px,1.35fr)}}button:disabled{cursor:not-allowed;opacity:.48;transform:none!important}.clone-button{color:#39718a;background:#f4fafc;border:1px dashed #a8c6d8;border-radius:9px;width:100%;margin-top:13px;padding:10px;font-size:11px;font-weight:700}.workflow-detail-panel{overflow:hidden}.editor-heading{justify-content:space-between;align-items:center;gap:12px;margin:7px 0 11px;display:flex}.editor-actions{gap:7px;display:flex}.workflow-canvas{background:radial-gradient(circle at 1px 1px,#dce7ef 1px,#0000 0) 0 0/20px 20px,#f8fbfd;border:1px solid #dfe8f0;border-radius:12px;height:360px;position:relative;overflow:hidden}.workflow-edges{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.workflow-edges line{stroke:#90a6be;stroke-width:1.5px}.workflow-edges text{fill:#7890aa;font:8px DM Mono,monospace}.workflow-node{z-index:1;color:#254361;-webkit-user-select:none;user-select:none;background:#fffffff5;border:1px solid #c9d9e8;border-radius:10px;width:164px;min-height:70px;padding:10px 11px;position:absolute;box-shadow:0 7px 18px #2f53781a}.workflow-node[draggable=true]{cursor:grab}.workflow-node[draggable=true]:active{cursor:grabbing}.workflow-node.selected{border-color:#54c79d;box-shadow:0 0 0 3px #54c79d29,0 7px 18px #2f53781a}.workflow-node.approval{background:#fcf9ff;border-color:#d6b8e7}.workflow-node .node-type{color:#6698a0;letter-spacing:.12em;margin-bottom:5px;font:8px DM Mono,monospace}.workflow-node.approval .node-type{color:#986bb5}.workflow-node strong,.workflow-node small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.workflow-node strong{font-size:12px}.workflow-node small{color:#8495aa;margin-top:5px;font:9px DM Mono,monospace}.validation-panel{border-radius:9px;flex-direction:column;gap:4px;margin-top:12px;padding:11px 13px;font-size:10px;line-height:1.45;display:flex}.validation-panel strong{font-size:11px}.validation-panel.valid{color:#286c5c;background:#f0fbf7;border:1px solid #c8ecdf}.validation-panel.invalid{color:#8b3c4a;background:#fff5f6;border:1px solid #f0cbd1}.node-inspector,.edge-editor,.local-run-panel{border-top:1px solid #edf1f6;margin-top:20px;padding-top:18px}.node-input{min-height:95px}.field-error{color:#b54d5a;margin-top:-9px;margin-bottom:10px;font-size:10px;display:block}.field-hint{color:#8d9caf;margin:-7px 0 10px;font-size:10px;display:block}.edge-row-editor{color:#8292a7;grid-template-columns:minmax(100px,1fr) 18px minmax(100px,1fr) minmax(150px,1.2fr) 27px;align-items:end;gap:7px;margin-bottom:9px;display:grid}.edge-field{flex-direction:column;gap:4px;display:flex}.edge-field>span{color:#8090a4;font-size:9px}.edge-row-editor select{color:#31506f;background:#fbfcfe;border:1px solid #dce4ef;border-radius:7px;width:100%;padding:7px 6px;font-size:10px}.edge-arrow{text-align:center;padding-bottom:8px}.icon-button{color:#a04f5e;background:#ffebed;border:0;border-radius:7px;width:27px;height:27px;font-size:16px}.local-run-panel{padding-bottom:4px}.local-run-panel>.panel-caption{margin-bottom:12px}.run-summary{color:#7890a8;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 10px;font:10px DM Mono,monospace;display:flex}.run-summary strong{color:#38516f}.status-pill.run-succeeded{color:#21745e;background:#d9f5ea}.status-pill.run-running,.status-pill.run-created,.status-pill.run-waiting_approval{color:#82621f;background:#fff1cf}.status-pill.run-failed,.status-pill.run-canceled{color:#8b5860;background:#fbe3e7}.live-badge{color:#226d88;letter-spacing:.04em;background:#dff5fb;border-radius:999px;align-items:center;padding:5px 8px;font:9px DM Mono,monospace;display:inline-flex}.model-result{background:#f4fbfd;border:1px solid #cfe8f0;border-radius:9px;margin-top:15px;padding:12px}.model-result pre{white-space:pre-wrap;color:#2b5871;max-height:180px;margin:8px 0;font-size:11px;line-height:1.55;overflow:auto}.model-meta{color:#7390a4;flex-wrap:wrap;gap:7px 14px;font:9px DM Mono,monospace;display:flex}.error-text{color:#a14958}.run-timeline{gap:6px;display:grid}.run-item{background:#fbfcfe;border:1px solid #e6edf3;border-radius:8px;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;display:grid}.run-icon{color:#37856f;background:#e2f6ef;border-radius:6px;place-items:center;width:20px;height:20px;font-weight:800;display:grid}.run-item strong,.run-item small{display:block}.run-item strong{color:#365271;font-size:11px}.run-item small{color:#8c9bae;margin-top:3px;font:9px DM Mono,monospace}.run-item code,.artifact-row code{color:#7991aa;font:9px DM Mono,monospace}.approval-box,.artifact-box{background:#fff;border:1px solid #e3eaf1;border-radius:9px;margin-top:15px;padding:12px}.approval-row,.artifact-row{border-bottom:1px solid #f0f2f5;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.approval-row:last-child,.artifact-row:last-child{border-bottom:0}.approval-row strong,.approval-row small,.artifact-row strong,.artifact-row small{display:block}.approval-row strong{color:#4b6683;font-size:10px}.approval-row small,.artifact-row small,.artifact-box>span{color:#8d9caf;margin-top:3px;font:9px DM Mono,monospace}.approval-actions{gap:6px;display:flex}.approval-actions button{padding:7px 9px}.artifact-row{justify-content:flex-start}.artifact-row strong{color:#3e6e64;min-width:100px;font-size:10px}.login-page{background:linear-gradient(160deg,#eef3f8 0%,#f8fafc 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border:1px solid #e5eaf0;border-radius:14px;flex-direction:column;gap:14px;width:360px;padding:32px 28px;display:flex;box-shadow:0 18px 40px #1e37551a}.login-brand{flex-direction:column;align-items:center;gap:6px;margin-bottom:10px;display:flex}.login-brand strong{color:#1f3a5f;font-size:18px}.login-brand small{color:#8d9caf;font-size:12px}.login-submit{width:100%;padding:12px;font-size:14px}.login-hint{color:#8d9caf;text-align:center;margin:0;font-size:11px}.dev-mode-link{color:#4b89b8;cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.dev-mode-link:hover{color:#1f3a5f}.accounts-grid{grid-template-columns:minmax(420px,1.2fr) minmax(320px,1fr)}.session-identity{flex-direction:column;gap:2px;min-width:180px;display:flex}.session-identity strong{color:#1f3a5f;font-size:12px}.session-identity small{color:#8d9caf;font-size:10px}.account-form{border-bottom:1px solid #eef1f5;flex-direction:column;gap:12px;margin-bottom:8px;padding:14px 0;display:flex}.role-badges{flex-wrap:wrap;gap:6px;display:flex}.role-badge{color:#2e5a86;background:#eaf1f8;border-radius:999px;padding:3px 8px;font:10px DM Mono,monospace}.role-check{color:#4b6683;cursor:pointer;border:1px solid #dce4ec;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font:11px DM Mono,monospace;display:inline-flex}.account-meta{margin-top:10px}.account-actions{margin-top:16px}.modal-backdrop{z-index:40;background:#18283e73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:420px;max-width:calc(100vw - 32px);padding:22px;display:flex;box-shadow:0 20px 50px #14233c40}.modal-card .panel-caption{margin:0}.token-value{color:#1f3a5f;word-break:break-all;background:#f4f7fa;border-radius:8px;padding:12px;font:12px DM Mono,monospace;display:block}.flow-mark{color:#0f4c3c;background:#c9f0e2;border-radius:9px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:14px;display:grid}.session-flow-node.start{background:#f2fbf7;border-color:#9fd3c0}.session-flow-node.start .node-type{color:#2f8f73}.session-flow-node.llm{background:#f5f8fe;border-color:#a9c6ee}.session-flow-node.llm .node-type{color:#4777b8}.session-flow-node.answer{background:#fcf9ff;border-color:#d6b8e7}.session-flow-node.answer .node-type{color:#986bb5}.system-variables{color:#5f7794;background:#f6f9fc;border:1px dashed #bcd3e8;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.system-variables .eyebrow{width:100%;margin-bottom:2px}.system-variables code{color:#2f6aa8;background:#e8f2fb;border-radius:5px;padding:2px 6px;font:11px DM Mono,monospace}.run-panel{border-top:1px solid #e3ebf2;margin-top:18px;padding-top:16px}.run-hint{color:#8a6420;background:#fff7e8;border-radius:8px;margin:8px 0;padding:8px 10px;font-size:12px}.session-selector{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.session-chip{color:#254361;background:#f8fbfd;border:1px solid #d4e1ed;border-radius:9px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;font-size:12px;display:flex}.session-chip.active{background:#eefaf5;border-color:#54c79d}.session-chip small{color:#8495aa;font-size:10px}.chat-window{background:#f8fbfd;border:1px solid #dfe8f0;border-radius:12px;flex-direction:column;gap:10px;min-height:220px;max-height:460px;padding:12px;display:flex;overflow-y:auto}.chat-empty{color:#9aabc0;align-self:center;margin:auto;font-size:13px}.message-row{display:flex}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start}.message-bubble{background:#fff;border:1px solid #dbe5ee;border-radius:12px;max-width:78%;padding:9px 12px;box-shadow:0 4px 12px #2f53780f}.message-row.user .message-bubble{background:#e6f6ef;border-color:#bfe6d5}.message-role{color:#8495aa;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font:9px DM Mono,monospace}.message-row.user .message-role{color:#2f8f73}.message-content{color:#254361;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.55}.turn-strip{color:#8495aa;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:flex}.status-pill.turn-succeeded{color:#2f8f73;background:#e2f5ec}.status-pill.turn-failed{color:#b4524e;background:#fdeaea}.status-pill.turn-running{color:#4777b8;background:#e8f0fb}.status-pill.turn-canceled{color:#8a6420;background:#fff3d9}.chat-input-row{gap:8px;display:flex}.chat-input-row input{flex:1}.canvas-hint{color:#8396ac;align-self:center;font-size:11px}.edge-summary-row{align-items:center;gap:8px;padding:6px 0;display:flex}.edge-summary{color:#365976;text-align:left;background:#f8fbfd;border:1px solid #dbe6ef;border-radius:9px;flex:1;align-items:center;gap:9px;padding:10px 12px;font-size:12px;display:flex}.edge-summary:not(:disabled):hover{background:#f0fbf6;border-color:#76cdb2}.edge-summary span{color:#79bda9}.edge-summary code{color:#66809e;margin-left:auto;font-size:10px}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f254057;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.config-modal{background:#fff;border:1px solid #d6e3ef;border-radius:16px;width:min(720px,100%);max-height:min(820px,100vh - 48px);overflow:auto;box-shadow:0 24px 70px #2045693d}.config-modal-header,.config-modal-footer{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.config-modal-header{border-bottom:1px solid #e8eef4}.config-modal-header h2{color:#173554;margin:5px 0 0;font-size:19px}.config-modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.config-modal-footer{background:#fbfdff;border-top:1px solid #e8eef4;justify-content:flex-end}.modal-json-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-label{color:#36526f;flex-direction:column;gap:6px;font-size:12px;font-weight:700;display:flex}.field-label small{color:#8495aa;font-size:11px;font-weight:400}.modal-code-input{resize:vertical;min-height:180px}.connection-preview{color:#315675;background:#f7fafc;border:1px solid #dbe7f1;border-radius:10px;align-items:center;gap:12px;padding:14px 16px;display:flex}.connection-preview span{color:#65bda5;font-size:18px}.edge-condition-modal{width:min(520px,100%)}@media (width<=720px){.modal-json-grid{grid-template-columns:1fr}.modal-backdrop{padding:12px}}
