@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-a5d38fe99f93.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/font-9fea608a947e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-a5d38fe99f93.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-9fea608a947e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-a5d38fe99f93.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-9fea608a947e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/font-a5d38fe99f93.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/font-9fea608a947e.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-da49e14ae1d4.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-a81082707b85.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-54c4728aa0fd.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-c3de01b5144e.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-d10ccbbd0dc4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/font-382475f38242.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-da49e14ae1d4.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-a81082707b85.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-54c4728aa0fd.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-c3de01b5144e.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-d10ccbbd0dc4.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/font-382475f38242.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans,Arial,sans-serif;color:#242844;background:#fff;font-synthesis:none;font-size:13px;--blue: #00008f;--line: #e5e8ef;--muted: #788197}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#333b58;cursor:pointer;font-weight:550;transition:background .15s,border-color .15s,box-shadow .15s}button:hover{background:#f1f3fc;border-color:#b9bfe0}button:focus-visible,a:focus-visible{outline:3px solid #8989ed;outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:#1919a9;color:#fff}button svg{flex-shrink:0}.muted{color:var(--muted);line-height:1.65}h2,h3,p{margin-top:0}h3{font-size:16px}header{height:78px;display:flex;align-items:center;padding:0 28px;border-top:3px solid var(--blue);border-bottom:1px solid var(--line);gap:60px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--blue);font-size:22px;letter-spacing:-.5px}.brand img{width:46px;height:46px}.brand b{font-weight:450}.brand small{display:block;font-size:8px;font-weight:650;letter-spacing:2px;margin-top:5px;color:#69728d}nav{display:flex;height:100%;gap:20px}nav button{border:0;border-radius:0;font-size:13px;padding:0 10px;color:#737b90}nav .nav-active{color:var(--blue);border-bottom:3px solid var(--blue)}.header-right{display:flex;margin-left:auto;align-items:center;gap:24px}.prototype{display:flex;align-items:center;gap:8px;color:#6c748b;font-size:11px}.prototype>span{width:6px;height:6px;border-radius:50%;background:#a2a9b8}.avatar{border-radius:50%;background:#eeeef8;color:var(--blue);width:34px;height:34px;display:grid;place-items:center;font-size:11px;font-weight:650}.titlebar{height:122px;display:flex;justify-content:space-between;align-items:center;padding:18px 28px;background:#fff}.breadcrumbs{display:flex;align-items:center;gap:8px;color:#9097aa;font-size:10px;margin-bottom:7px}.breadcrumbs span{color:#535e7b}.title-row{display:flex;align-items:center;gap:14px}.title-row input{border:1px solid transparent;background:transparent;font-size:24px;letter-spacing:-.7px;font-weight:600;padding:2px 0;width:400px;color:#232746}.title-row input:hover{border-color:#e3e6ef}.draft{border:1px solid #e4e5ee;background:#f8f8fb;font-size:10px;border-radius:4px;padding:3px 7px;color:#858b9f}.save-status{display:flex;align-items:center;gap:7px;color:#858ca0;font-size:10px;margin-top:7px}.save-status svg{color:#608876}.actions{display:flex;gap:9px}.actions button{font-size:11px;height:39px}.actions svg{width:16px}main{display:grid;grid-template-columns:255px minmax(360px,1fr) 300px;height:calc(100dvh - 232px);min-height:500px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}aside{min-width:0;background:#fff}.library{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:20px 16px 0}.panel-heading{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:650;min-height:25px}.count{font-size:10px;color:#808aa1;background:#f4f5f9;padding:3px 6px;border-radius:4px}.library>p{font-size:11px;margin:7px 0 17px;max-width:200px}.search{display:flex;align-items:center;gap:8px;background:#f8f9fc;border:1px solid var(--line);border-radius:5px;padding:9px;color:#8f98af}.search input{width:100%;border:0;outline:none;background:transparent;font-size:11px}.search kbd{font-size:10px;border:1px solid #dce0eb;border-radius:3px;padding:0 4px}.chips{display:flex;flex-wrap:wrap;gap:5px;padding:13px 0 15px}.chips button{border:0;padding:5px 8px;font-size:10px;color:#7e889f}.chips .active{background:#eaeafa;color:var(--blue)}.component-list{overflow-y:auto;min-height:0;flex:1;padding-bottom:10px}.component{display:flex;width:100%;text-align:left;padding:12px 6px;gap:10px;border:1px solid transparent;background:#fff;margin-bottom:4px;justify-content:flex-start;cursor:grab}.component>span:nth-child(2){min-width:0;flex:1}.component strong{display:block;font-size:11px;font-weight:600}.component small{display:block;color:#8c94a8;font-size:9px;line-height:1.5;margin-top:4px}.component>svg{color:#bac0d0;opacity:0}.component:hover>svg{opacity:1}.icon-tile{width:34px;height:34px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.blue{color:#3236a7;background:#eeeefb}.purple{color:#8660ba;background:#f1ecfa}.teal{color:#358579;background:#e9f5f1}.amber{color:#b98223;background:#fff5e0}.large{width:46px;height:46px;border-radius:12px}.library-foot{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);font-size:9px;color:#9098aa;padding:15px 0}.canvas-area{display:flex;flex-direction:column;position:relative;min-width:0;background:#f7f8fc}.canvas-toolbar{height:54px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:#fcfcfe;border-bottom:1px solid var(--line)}.canvas-label{display:flex;align-items:center;gap:8px;font-size:11px;color:#545d7c}.canvas-label svg{color:#7978b4}.tools{display:flex;align-items:center;gap:3px}.tools button{border:0;background:transparent;font-size:10px;padding:7px}.divider{height:18px;background:var(--line);width:1px;margin:0 5px}.flow{flex:1;position:relative;min-height:0}.pipeline-node{width:220px;padding:16px 16px 0;border:1px solid #d8deeb;border-radius:12px;background:#fff;box-shadow:0 4px 9px #2f426009;transition:box-shadow .2s,border-color .2s}.pipeline-node.selected{border:1.5px solid #00008f;box-shadow:0 0 0 4px #00008f0c,0 7px 22px #24234c12}.node-top{display:flex;align-items:center;gap:10px;margin-bottom:13px}.node-top>svg{color:#a4acc0;margin-left:auto}.node-kind{font-size:10px;color:#949cb0}.pipeline-node>strong{display:block;font-size:13px;font-weight:600;color:#343b58;line-height:1.5}.pipeline-node>small{display:block;font-size:10px;color:#98a0b4;margin-top:3px;margin-bottom:16px}.node-bottom{display:flex;align-items:center;gap:5px;border-top:1px solid #eef0f5;padding:10px 0;color:#788899;font-size:9px}.node-bottom>span:last-child{margin-left:auto;color:#a1a9b9}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#5a9e8b}.react-flow__handle{width:9px;height:9px;background:#fff;border:2px solid #999dc2}.react-flow__handle:hover{background:#00008f}.react-flow__edge.selected .react-flow__edge-path{stroke:#00008f!important;stroke-width:3!important}.react-flow__controls{box-shadow:0 2px 9px #232b4e0c;border:1px solid #e2e5ef;border-radius:7px;overflow:hidden;bottom:15px;left:10px}.react-flow__controls button{border-radius:0;width:29px;height:29px;color:#7d86a0;background:#fff}.react-flow__minimap{width:115px!important;height:75px!important;border:1px solid #e1e5ef;border-radius:8px;overflow:hidden;bottom:15px!important;right:8px!important}.canvas-guide{position:absolute;top:20px;left:20px;display:flex;align-items:center;gap:7px;font-size:9px;color:#99a1b3;pointer-events:none}.canvas-guide button{pointer-events:auto;padding:3px 6px;font-size:9px}.canvas-bottom{height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;font-size:9px;color:#9aa2b5;border-top:1px solid var(--line);background:#fcfcff}.canvas-bottom>span{display:flex;align-items:center;gap:5px}.canvas-bottom button{font-size:10px;border:0;background:none;padding:5px}.inspector{border-left:1px solid var(--line);padding:20px 20px 0;display:flex;flex-direction:column;overflow-y:auto}.inspector .panel-heading button{border:0;padding:0;color:#9ca3b5}.overview-hero{margin:23px 0 17px;padding:23px 19px;position:relative;overflow:hidden;background:linear-gradient(135deg,#f3f3fd,#f9faff);border:1px solid #ededf8;border-radius:10px}.eyebrow{font-size:8px;letter-spacing:1.6px;color:#7878b3;font-weight:650}.overview-hero h2{font-family:"Source Serif 4",Georgia,serif;font-size:27px;line-height:1.18;letter-spacing:-1px;font-weight:500;color:#171757;margin:13px 0}.overview-hero p{font-size:10px;color:#8489a5;line-height:1.7;margin-bottom:0}.overview-hero>svg{position:absolute;right:-9px;top:35px;color:#dadaef;transform:rotate(-10deg);opacity:.6}.overview-stats{display:flex;margin:0 0 23px}.overview-stats span{flex:1;text-align:center;color:#9199ad;font-size:8px;border-right:1px solid var(--line)}.overview-stats span:last-child{border:0}.overview-stats b{display:block;font-size:22px;font-weight:500;color:#414967;margin-bottom:4px}label{display:block;font-size:11px;font-weight:550;color:#646e88;margin:0 0 17px}label input,label select,label textarea{display:block;width:100%;margin-top:8px;border:1px solid #dde2ed;border-radius:5px;padding:10px;color:#4a5470;background:#fff;font-size:11px;outline:none;line-height:1.5}label input:focus,label select:focus,label textarea:focus{border-color:#7777c7;box-shadow:0 0 0 2px #eef}label textarea{resize:vertical}.next-tip{display:flex;gap:11px;margin:4px 0 22px}.next-tip>svg{flex-shrink:0;color:#8f8db7;margin-top:2px}.next-tip strong{font-size:11px;color:#5b6380}.next-tip p{font-size:10px;line-height:1.7;color:#959db0;margin:6px 0}.wide{width:100%;font-size:10px;justify-content:space-between;margin-bottom:23px}.validation-summary{margin-top:auto;margin-bottom:15px;padding:11px 9px;text-align:left;border:1px solid #dfece7;background:#f5faf8;color:#528172;width:100%;flex-shrink:0}.validation-summary>span{flex:1}.validation-summary strong{display:block;font-size:10px;font-weight:550}.validation-summary small{display:block;font-size:8px;color:#8b9e97;margin-top:3px}.validation-summary.warning{color:#a9782c;background:#fffbf2;border-color:#efe2c8}.issues{font-size:10px;line-height:1.7;max-height:180px;overflow:auto;margin-bottom:14px;color:#78819a}.issues button{display:flex;text-align:left;font-size:10px;padding:8px;width:100%;margin-bottom:4px;color:#a47224}.inspector-intro{display:flex;align-items:center;gap:11px;margin:22px 0 12px}.inspector-intro h3{font-size:14px;margin:0 0 5px}.inspector-intro p{font-size:10px;color:#959db0;margin:0}.inspector>.muted{font-size:11px;margin-bottom:22px}.form-scroll{overflow-y:auto;min-height:100px;flex:1;padding-right:3px}.info-box{display:flex;gap:8px;font-size:9px;line-height:1.65;color:#8b91ab;background:#f7f8fc;padding:12px;border-radius:6px;margin:5px 0 20px}.info-box svg{flex-shrink:0}.inspector-foot{display:flex;gap:6px;border-top:1px solid var(--line);padding:12px 0;flex-shrink:0}.inspector-foot button{font-size:10px;padding:8px}.danger{color:#b95555}.connection-config{padding-top:25px}.connection-config p{font-size:12px;line-height:1.7}footer{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:8px;color:#9a9fb0}footer span{display:flex;align-items:center;gap:6px}.empty-canvas{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:350px;display:flex;align-items:center;flex-direction:column;gap:12px}.empty-icon{width:76px;height:76px;background:#eaeaf8;color:#6161b6;display:grid;place-items:center;border-radius:22px;margin-bottom:9px}.empty-canvas h2{font-family:"Source Serif 4",Georgia,serif;font-size:29px;color:#22225a;margin:0;letter-spacing:-.8px}.empty-canvas p{line-height:1.8;color:#9199ac;font-size:11px}.empty-canvas button{font-size:11px}.toast{position:fixed;bottom:44px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#22234f;color:#fff;box-shadow:0 5px 25px #17173b30;padding:13px 20px;border-radius:8px;z-index:100;font-size:12px;max-width:80vw}.backdrop{position:fixed;inset:0;background:#11132e66;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:35px;z-index:50}.modal{width:min(780px,95vw);max-height:90dvh;display:flex;flex-direction:column;background:#fff;border-radius:15px;box-shadow:0 25px 100px #15164440;padding:28px;outline:0;overflow:auto}.json-modal{width:min(1000px,95vw)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;gap:20px}.modal-head h2{font-family:"Source Serif 4",Georgia,serif;font-size:27px;letter-spacing:-.7px;margin:7px 0;color:#242459;font-weight:500}.modal-head button{border:0;padding:6px;color:#969bb0}.modal-sub{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#717994;padding:12px 0 17px}.modal-sub .dot{margin-right:6px}.code{background:#f7f8fc;border:1px solid #e5e8f2;border-radius:8px;margin:0;overflow:auto;padding:18px 0;font-size:11px;line-height:1.9;min-height:100px;max-height:55vh;color:#68748c}.line-number{display:inline-block;width:50px;text-align:right;margin-right:22px;color:#bac0d1;-webkit-user-select:none;user-select:none}.json-string{color:#4446a1}.modal-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:20px}.modal-actions>.muted{margin-right:auto;font-size:10px;max-width:400px}.modal-actions button{font-size:12px}.upload-zone{border:1px dashed #b4b8db;border-radius:9px;background:#f9f9ff;display:flex;flex-direction:column;padding:24px;color:#7775bb;margin-bottom:20px;gap:10px}.upload-zone span{font-size:10px;color:#9a9eb6}.json-input{font-family:monospace!important;background:#f9faff!important}.error{background:#fff1f1;color:#b44a4a;padding:12px;border-radius:6px;font-size:12px}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:15px 0}.template-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;padding:25px;gap:15px;border-radius:11px;background:#fafaff;line-height:1.7}.template-card h3{font-size:17px;color:#343762;line-height:1.4;margin:0}.template-card p{font-size:12px;font-weight:400;color:#818ba4;margin:0}.template-card small{color:#929ab0;font-size:10px;font-weight:400}.template-card>span:last-child{display:flex;align-items:center;gap:10px;color:var(--blue);font-size:11px;margin-top:10px}.react-flow__attribution{font-size:7px!important;background:transparent!important;bottom:0!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#d4d9e6;border-radius:5px}@media(min-width:1600px){main{grid-template-columns:280px minmax(360px,1fr) 330px}.library{padding-left:22px;padding-right:22px}.inspector{padding-left:25px;padding-right:25px}.component{padding:15px 6px}.component strong{font-size:12px}.component small{font-size:10px}}@media(max-width:1150px){main{grid-template-columns:220px minmax(300px,1fr) 260px}.title-row input{width:310px;font-size:20px}.titlebar{padding:16px}.actions button{font-size:10px;padding:9px}.header-right .prototype{display:none}header{gap:30px}.library{padding-left:12px;padding-right:12px}.inspector{padding-left:14px;padding-right:14px}.canvas-label b{display:none}}@media(max-width:850px){main{grid-template-columns:190px minmax(300px,1fr);height:700px}.inspector{grid-column:1/-1;min-height:400px;border-top:1px solid var(--line);padding:20px;overflow:visible}.titlebar{height:auto;gap:16px;flex-wrap:wrap}.header-right{display:none}header{padding:0 15px;gap:20px}nav{gap:0}.brand{font-size:18px}.brand img{width:38px;height:38px}footer{display:none}.overview-hero{display:none}.overview-stats,.validation-summary{margin-top:20px}.template-grid{grid-template-columns:1fr}.modal{padding:20px}.modal-head h2{font-size:22px}.modal-actions{flex-wrap:wrap}.modal-sub{line-height:1.6}.modal-sub .muted{display:block}}main{grid-template-rows:minmax(0,1fr)}.library,.inspector,.canvas-area{min-height:0}.pipeline-node{box-shadow:0 5px 18px #2f426010}main.focus-mode{grid-template-columns:1fr}main.focus-mode>.library,main.focus-mode>.inspector{display:none}.inspector>*{flex-shrink:0}.inspector .form-scroll{flex-shrink:1}.overview-hero{min-height:195px}.inspector{scrollbar-gutter:stable}.library .component{padding:9px 4px}.component small{line-height:1.4}.library .component-list{scrollbar-gutter:stable}header{height:66px}.titlebar{height:108px}main{height:calc(100dvh - 206px);min-height:440px}.react-flow__minimap{opacity:.78;width:90px!important;height:55px!important;bottom:8px!important;right:7px!important}.overview-hero{margin-top:18px;padding:18px;min-height:180px}.overview-hero h2{font-size:25px}.overview-stats{margin-bottom:17px}@media(max-width:850px){.titlebar{height:auto}main{height:700px}}.app-shell{display:contents}.muted,.library>p,.save-status,.component small,.next-tip p,.info-box,.canvas-bottom,.library-foot,.overview-hero p,.node-kind,.pipeline-node>small,.breadcrumbs,.component-list .component>svg{color:#66728a}.component small{font-size:10px}.pipeline-node>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.port-legend{display:flex;justify-content:space-between;gap:6px;font-size:9px;border-top:1px solid #edf0f7;padding:8px 0;color:#425b93}.port-legend span:last-child{color:#906521}.no-results{text-align:center;padding:26px 10px;color:#647089;font-size:11px}.no-results>svg{display:block;margin:0 auto 14px}.no-results p{line-height:1.7}.layout-settings{margin:10px 0 18px;color:#717c94;font-size:11px}.layout-settings summary{cursor:pointer;margin-bottom:12px}.next-steps{border-top:1px solid var(--line);padding-top:14px}.next-steps h4{font-size:12px;margin:0 0 8px}.next-steps p{font-size:10px}.issues button{min-height:36px}.component>svg{opacity:.6}.react-flow__handle{width:12px;height:12px}.react-flow__handle:focus-visible{outline:3px solid #00008f;outline-offset:4px}.react-flow__node:focus-visible{outline:2px solid #00008f;border-radius:12px;outline-offset:3px}.form-scroll{padding-right:8px}.inspector .validation-summary{margin-top:8px}.inspector .form-scroll{flex-basis:0}.pipeline-node{min-height:150px}.title-row{max-width:100%}.title-row input{max-width:calc(100vw - 110px)}@media(max-width:850px){.inspector .form-scroll{flex-basis:auto}.inspector{max-height:620px;overflow:auto}.titlebar{height:auto}.actions{flex-wrap:wrap}.inspector-foot{background:#fff;position:sticky;bottom:0}}@media(max-width:650px){header{height:auto;min-height:70px;flex-wrap:wrap;gap:12px;padding:10px 15px}header nav{height:35px}main{display:flex;flex-direction:column;height:auto;min-height:0}.library{height:280px;flex-shrink:0;border-bottom:1px solid var(--line)}.library>p,.library-foot{display:none}.library .chips{padding:6px 0}.library .component-list{display:grid;grid-template-columns:1fr 1fr}.canvas-area{height:540px;flex-shrink:0}.inspector{height:600px;max-height:600px}.inspector .form-scroll{flex:1;min-height:100px}.canvas-bottom>span{font-size:8px;max-width:60%}.modal-sub{flex-wrap:wrap}.modal{max-height:95dvh}.backdrop{padding:12px}.title-row input{font-size:20px}.header-right{display:none}.modal-actions>.muted{width:100%;max-width:none}.toast{max-width:95vw;width:max-content;font-size:11px}}.nav-count{background:#ededfa;color:#00008f;padding:2px 6px;font-size:10px;border-radius:4px}.save-button{color:#00008f;border-color:#bfbfe0}.library-note{display:flex;align-items:center;gap:10px;background:#f5f6fb;padding:13px;border-radius:7px;color:#68748d;font-size:11px;line-height:1.7;margin-bottom:20px}.library-note svg{flex-shrink:0}.library-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.library-controls .search{flex:1;min-width:220px;background:#fff}.library-controls select{font:inherit;border:1px solid #dfe3ed;padding:9px;border-radius:5px;background:#fff;color:#535f7a;font-size:11px}.library-controls button{font-size:11px}.library-total{font-size:10px;color:#838ba1}.pipeline-table-wrap{overflow:auto;max-height:50vh}.pipeline-table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}.pipeline-table th{padding:12px 10px;background:#f7f8fc;color:#78829b;font-size:10px;font-weight:550;white-space:nowrap;position:sticky;top:0;z-index:1}.pipeline-table td{padding:15px 10px;border-bottom:1px solid var(--line);color:#55617c;vertical-align:middle}.pipeline-table td:first-child{min-width:230px;max-width:320px}.pipeline-table td>p{font-size:10px;line-height:1.6;margin:5px 0 8px;max-width:300px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#7c879d}.pipeline-name{border:0;background:none;padding:0;justify-content:flex-start;font-size:12px;text-align:left;color:#27276a}.pipeline-name:hover{background:none;text-decoration:underline}.pipeline-name svg{flex-shrink:0}.status-pill{font-size:8px;padding:3px 6px;background:#eaf5ef;color:#467d64;border-radius:4px;display:inline-block;white-space:nowrap}.draft-status{background:#fff3d9;color:#947127}.pipeline-table td>small{font-size:9px;margin-left:8px;color:#9199ab}.row-actions{display:flex;gap:5px}.row-actions button{font-size:10px;padding:7px}.version-link{font-size:10px;padding:5px;color:#00008f}.library-empty{text-align:center;padding:40px;color:#8b93a7}.library-empty svg{color:#a0a5c3;margin-bottom:16px}.library-empty h3{color:#505a79}.library-empty p{font-size:11px}.back-library{padding:6px 0;border:0;color:#717a96;font-size:11px}.history-summary{display:flex;align-items:start;justify-content:space-between;gap:20px;margin:22px 0}.history-summary h3{font-size:20px;color:#292952;margin-bottom:10px}.history-summary p{font-size:12px;color:#7a859e;line-height:1.7;margin-bottom:0}.history-summary>span{font-size:10px;border:1px solid #e0e4ee;border-radius:5px;padding:5px 9px;white-space:nowrap;color:#777d99}.metadata-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:17px;background:#f8f9fc;border-radius:8px;margin:0 0 20px}.metadata-grid dt{font-size:9px;color:#8790a7;margin-bottom:6px}.metadata-grid dd{margin:0;color:#47516e;font-size:11px}.history-list{max-height:35vh;overflow:auto}.version-row{display:flex;align-items:center;gap:15px;padding:16px 4px;border-bottom:1px solid var(--line)}.version-row>div{flex:1}.version-row strong{font-size:12px;font-weight:550;color:#46516c}.version-row p{margin:5px 0 0;font-size:10px;color:#8c94aa}.version-row button{font-size:10px}.version-chip{display:grid;place-items:center;min-width:37px;height:37px;background:#eeeefa;border-radius:9px;color:#6761b3;font-weight:600}.library-caption{font-size:10px;color:#858da5;line-height:1.7;margin-top:20px}.save-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.save-version{display:flex;flex-direction:column;justify-content:center;padding-bottom:18px;color:#7a849e}.save-version small{font-size:10px}.save-version strong{font-size:23px;color:#292980;margin-top:5px}.pipeline-metadata{font-size:10px;color:#75809a;display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 18px}.pipeline-metadata span:first-child{color:#00008f}.pipeline-metadata button{padding:0;border:0;font-size:10px;color:#00008f;width:100%;justify-content:flex-start}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1150px){header{gap:20px}header nav{gap:5px}header nav button{font-size:11px}.titlebar{height:auto;min-height:108px;flex-wrap:wrap;gap:12px}.actions{flex-wrap:wrap}}@media(max-width:650px){.save-form-grid{grid-template-columns:1fr}.metadata-grid{grid-template-columns:1fr 1fr}.version-row{flex-wrap:wrap}.library-controls .search{min-width:100%}.library-total{display:none}.history-summary{flex-wrap:wrap}}.react-flow__edgelabel-renderer{z-index:6;isolation:isolate}.edge-label{position:absolute;pointer-events:all;z-index:1;background:#fff;color:#455572;border:1px solid #dce3ef;border-radius:5px;padding:5px 9px;font-size:11px;font-weight:550;line-height:1.35;white-space:nowrap;box-shadow:0 1px 4px #2e3d5110}.edge-label:hover{background:#fff;border-color:#7477b7}.edge-label.review-label{background:#fff8e9;border-color:#e5cd9c;color:#825b17}.edge-label.review-label:hover{background:#fff3d6;border-color:#b68a35}.edge-label.selected-label{border-color:#00008f;box-shadow:0 0 0 2px #00008f14}.secure-access{max-width:620px;margin:12vh auto;padding:40px;border:1px solid var(--line);border-radius:20px;box-shadow:0 20px 70px #00008f0d}.secure-access img{width:54px}.secure-access h1{font-size:34px;color:var(--blue)}.secure-access p{line-height:1.7}.secure-access a{display:inline-block;padding:14px 22px;text-decoration:none;border-radius:8px}.audit-evidence{white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f5fa;padding:20px;max-height:330px;overflow:auto}.large-json{display:block;width:100%;height:55vh;resize:vertical;white-space:pre}.session-lock{position:fixed;inset:0;z-index:10000;background:#eef2f8;display:grid;place-items:center;padding:24px;overflow:auto}.session-lock section{width:min(640px,100%);background:#fff;border-top:6px solid #00008f;border-radius:12px;padding:32px;box-shadow:0 16px 60px #00008f14;outline:none}.session-lock h1{font-size:28px;color:#00008f}.session-lock .modal-actions{flex-wrap:wrap}.session-lock a{padding:12px;text-decoration:none;border-radius:6px}.save-fields{border:0;margin:0;padding:0;min-width:0}.access-page{min-height:100dvh;background:#f7f8fc;color:#20243e;padding:30px clamp(24px,5vw,80px) 22px;display:flex;flex-direction:column}.access-brand{display:flex;align-items:center;gap:18px;color:#00008f;font-size:20px;font-weight:700;max-width:1380px;width:100%;margin:0 auto 32px}.access-brand img{width:52px;height:52px}.access-brand-note{margin-left:auto;font-size:10px;letter-spacing:2px;color:#626a83;font-weight:500}main.access-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,1fr);grid-template-rows:auto;height:auto;min-height:610px;border:1px solid #e0e5f0;border-radius:24px;overflow:hidden;width:100%;max-width:1380px;margin:auto;box-shadow:0 20px 70px #15295a09}.access-story{padding:clamp(32px,4vw,64px);background:radial-gradient(ellipse at 85% 100%,#3737ab 0,transparent 65%),linear-gradient(130deg,#08085b,#00008f);color:#fff;display:flex;flex-direction:column;justify-content:center}.access-eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;margin:0 0 22px}.access-story .access-eyebrow{color:#bfcaff}.access-story h1{font-size:clamp(34px,3.7vw,54px);line-height:1.12;letter-spacing:-1.9px;color:#fff;margin:0;max-width:650px}.access-story h1 em{font-style:normal;color:#bfc8ff}.access-intro{max-width:430px;font-size:15px;line-height:1.8;color:#d3d9f6;margin:24px 0 34px}.access-illustration{padding:21px 20px 16px;border-radius:16px;background:#ffffff09;border:1px solid #ffffff26}.access-flow-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;letter-spacing:1.4px;color:#d3d9f6;margin-bottom:24px}.access-flow-badge{letter-spacing:0;border:1px solid #ffffff28;border-radius:20px;padding:5px 9px;color:#e2e7ff}.access-flow{display:flex;align-items:center}.access-node{flex:1;min-width:0;display:flex;align-items:center;flex-direction:column;gap:7px;text-align:center;padding:15px 5px;background:#ffffff0c;border:1px solid #ffffff22;border-radius:11px}.access-node>svg{width:23px;height:23px;color:#cbd4ff;margin-bottom:5px}.access-node strong{font-size:12px;color:#fff}.access-node span{font-size:9px;color:#d2d8f7}.access-node-focus{background:#ffffff19;border-color:#a9baff99;box-shadow:0 0 22px #aebcff12}.access-wire{display:flex;align-items:center;width:28px;color:#aebaff;flex-shrink:0}.access-wire svg{width:100%;height:17px}.access-code{border-top:1px solid #ffffff1a;margin-top:20px;padding-top:14px;font-family:monospace;font-size:10px;color:#d4dafa;line-height:1.8}.access-code b{color:#a6ccff;font-weight:400}.access-code i{color:#cbd8a8;font-style:normal}.access-features{display:flex;flex-wrap:wrap;gap:12px 18px;color:#c5cef4;font-size:10px;margin-top:24px}.access-features span:before{content:"·";color:#ff888f;font-weight:700;margin-right:7px}.access-signin{background:#fff;padding:clamp(32px,4.2vw,68px);display:flex;flex-direction:column;justify-content:center}.access-lock{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;color:#00008f;background:#f0f2ff;margin-bottom:28px}.access-signin .access-eyebrow{color:#666c88;margin-bottom:13px}.access-signin h2{margin:0;color:#000068;font-size:clamp(30px,3vw,42px);letter-spacing:-1.2px;line-height:1.15}.access-description{color:#626b82;font-size:14px;line-height:1.8;margin:18px 0 28px;max-width:340px}.access-action-area{min-height:110px}.access-cta{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:17px 18px;border:1px solid #00008f;border-radius:9px;background:#00008f;color:#fff;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 5px 12px #00008f15;transition:background .2s,box-shadow .2s}.access-cta:hover{background:#1717ac;color:#fff;box-shadow:0 7px 20px #00008f25}.access-cta:focus-visible{outline:3px solid #688dff;outline-offset:4px}.access-signin-hint{font-size:11px;color:#6d7488;text-align:center;margin:12px 0 0}.access-assurance{display:flex;gap:12px;border-top:1px solid #e7eaf3;margin-top:26px;padding-top:24px;color:#5d6884}.access-assurance>svg{flex-shrink:0;color:#00008f}.access-assurance strong{font-size:11px;color:#343d5a}.access-assurance p{margin:6px 0 0;font-size:11px;line-height:1.7}.access-footer{max-width:1380px;width:100%;margin:24px auto 0;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#6b748b}.access-loading{display:flex;flex-direction:column;gap:8px;color:#00008f;padding:5px 0}.access-loading strong{font-size:12px}.access-loading>span{font-size:11px;color:#6b748b}.access-loading-track{position:relative;display:flex;justify-content:space-between;height:12px;margin:0 0 12px;background:linear-gradient(#e4e8fb,#e4e8fb) center/100% 2px no-repeat}.access-loading-track i{width:12px;height:12px;border:3px solid white;border-radius:50%;background:#00008f;box-shadow:0 0 0 1px #d5dcf8;animation:access-pulse 1.5s ease-in-out infinite}.access-loading-track i:nth-child(2){animation-delay:.25s}.access-loading-track i:nth-child(3){animation-delay:.5s}@keyframes access-pulse{0%,75%,to{transform:scale(.8);background:#a7b6e8;box-shadow:0 0 0 1px #d5dcf8}35%{transform:scale(1.25);background:#00008f;box-shadow:0 0 0 5px #e8ecff}}.access-error p{font-size:12px;line-height:1.7;color:#a42b3d;margin:0 0 14px}@media(max-width:1000px){main.access-layout{grid-template-columns:minmax(0,1.1fr) minmax(320px,1fr)}.access-story,.access-signin{padding:32px}.access-node span{display:none}.access-story h1{font-size:38px}.access-illustration{padding:16px 12px}.access-wire{width:20px}}@media(max-width:760px){.access-page{padding:20px}.access-brand{margin-bottom:22px;font-size:17px}.access-brand img{width:42px;height:42px}.access-brand-note{display:none}main.access-layout{display:flex;flex-direction:column;min-height:0;border-radius:18px}.access-story{padding:30px}.access-story h1{font-size:34px;letter-spacing:-1px}.access-intro{margin:16px 0 0;font-size:13px}.access-illustration,.access-features{display:none}.access-story .access-eyebrow{margin-bottom:14px}.access-signin{padding:30px}.access-lock{display:none}.access-signin h2{font-size:30px}.access-signin h2 br{display:none}.access-description{margin:14px 0 22px}.access-action-area{min-height:95px}.access-assurance{margin-top:12px;padding-top:20px}.access-footer{font-size:9px}}@media(prefers-reduced-motion:reduce){.access-loading-track i{animation:none}.access-cta{transition:none}}.access-story{position:relative;isolation:isolate;overflow:hidden}.access-story:before{content:"";position:absolute;z-index:-1;pointer-events:none;width:460px;height:460px;right:-200px;bottom:-200px;border-radius:50%;background:radial-gradient(circle,#879bff50,transparent 68%);animation:access-aurora 12s ease-in-out infinite alternate}.access-node{animation:access-node-light 6s ease-in-out infinite}.access-node:nth-child(3){animation-delay:2s}.access-node:nth-child(5){animation-delay:4s}.access-wire{position:relative}.access-wire:after{content:"";position:absolute;top:calc(50% - 3px);left:0;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 9px 3px #a8c6ff88;opacity:0;animation:access-signal 6s linear infinite}.access-wire:nth-child(4):after{animation-delay:2s}.access-code:after{content:"";display:inline-block;height:10px;width:5px;background:#b8d7ff;margin-left:6px;vertical-align:middle;animation:access-cursor 1.6s steps(2,end) infinite}.access-motion-toggle{background:transparent;border:0;padding:0;color:#606b86;font-size:10px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.access-motion-toggle:focus-visible{outline:2px solid #00008f;outline-offset:5px}@keyframes access-node-light{0%,32%,to{transform:translateY(0);box-shadow:0 0 #aebcff00}10%,22%{transform:translateY(-4px);box-shadow:0 0 22px #aebcff45;border-color:#cad9ff}}@keyframes access-signal{0%,18%{opacity:0;left:0}20%{opacity:1;left:0}33%{opacity:1;left:calc(100% - 6px)}35%,to{opacity:0;left:calc(100% - 6px)}}@keyframes access-aurora{to{transform:translate(-150px,-100px) scale(1.25);opacity:.5}}@keyframes access-cursor{50%{opacity:0}}.access-motion-paused .access-node,.access-motion-paused .access-wire:after,.access-motion-paused .access-story:before,.access-motion-paused .access-code:after{animation-play-state:paused}@media(max-width:760px){.access-illustration{display:block;margin-top:24px}.access-flow-heading{margin-bottom:15px}.access-code{display:none}.access-node{padding:12px 4px}.access-footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.access-node,.access-wire:after,.access-story:before,.access-code:after{animation:none}.access-motion-toggle{display:none}}
