body,html,#root{height:100%;margin:0;font-family:Work Sans,sans-serif}.app-container{display:flex;flex-direction:column;height:100vh}.main-content{display:flex;flex:1;overflow:hidden;min-height:0}.flow-wrapper{flex:1;position:relative;overflow:hidden;min-height:0}.right-panel{width:320px;border-left:1px solid #ccc;display:flex;flex-direction:column;background:#fff}.console-panel{height:160px;overflow-y:auto;padding:1rem;border-top:1px solid #ccc;background:#f9f9f9}.button-panel{position:absolute;top:60px;left:10px;z-index:10;display:flex;gap:.5rem}.button-generate{background-color:#2563eb;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.button-export{background-color:#f54242;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.button-save{background-color:#10b981;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.button-load{background-color:#f59e0b;color:#fff;border-radius:6px;padding:.5rem 1rem;cursor:pointer;display:inline-block}.button-load input[type=file]{display:none}.console-title{font-weight:700;margin-bottom:.5rem}.console-line{margin:.25rem 0}.layer-button{padding:.5rem 1rem;margin:.25rem 0;flex:1 1 100px;border:1px solid #ccc;border-radius:4px;background-color:#f3f4f6;cursor:grab;display:flex;align-items:center;justify-content:space-between}.layer-button-icon{margin-right:.5rem}.layer-button-text{flex-grow:1}.edge-valid{stroke:#4b5563;stroke-width:2}.edge-invalid{stroke:red;stroke-width:2}.edge-skip{stroke:#f59e0b;stroke-dasharray:5,5;stroke-width:2}.btn{color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:700;text-align:center}.btn.blue{background-color:#2563eb}.btn.red{background-color:#f54242}.btn.green{background-color:#10b981}.btn.orange{background-color:#f59e0b}.btn.gray{background-color:gray}.navbar{display:flex;flex-direction:row;align-items:center;padding:0;background-color:#000}.layer-navbar-list{display:flex;flex-direction:row;justify-content:start;align-items:center;width:100%;height:100%}.layer-navbar-item{display:flex;flex-direction:column;align-items:center;width:70px;cursor:grab;border:1px;border-radius:8px;background-color:transparent;transition:box-shadow .2s ease;width:70%;margin:.3rem}.layer-navbar-item:hover{box-shadow:0 0 4px #0003}.layer-navbar-item img{width:50px;height:50px;object-fit:contain}.layer-navbar-item span{font-size:.8rem;margin-top:.3rem;text-align:center}.side-panel{width:320px;border-left:1px solid #ccc;display:flex;flex-direction:column;overflow:hidden}.editor-panel{flex:1;overflow-y:auto;padding:1rem;min-height:0}.model-library-panel{padding:1rem;border-top:1px solid #ccc;background:#f5f5f5;height:200px;overflow-y:auto}.panel-heading{font-weight:700;margin-bottom:.5rem}.model-list{list-style:none;padding:0;margin:0}.model-item{margin-bottom:.5rem}.btn.violet{background-color:#8b5cf6;color:#fff;border:none;padding:.5rem .75rem;border-radius:6px;cursor:pointer;width:100%}.btn.violet:hover{background-color:#7c3aed}.model-header{position:absolute;top:10px;left:10px;z-index:11;background:#fff;border-radius:6px;box-shadow:0 2px 6px #0000001a;display:flex;align-items:center;flex-wrap:wrap;margin-bottom:.1rem}.model-header input{padding:.4rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;width:200px}.button-bar{position:absolute;top:calc(60px + .1rem);left:10px;display:flex;flex-wrap:wrap}.layer-label{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;padding:.2rem .4rem;font-size:.75rem;background-color:#f3f4f6;border-radius:4px;font-weight:700}.layer-label span{margin:0 4px}.react-flow__node-default{padding:0;border:none;border-radius:8px;background-color:#fff;font-size:.75rem;display:inline-flex;flex-direction:column;align-items:center;text-align:center;box-shadow:none;word-break:break-word;width:auto;max-width:100%}.layer-group{width:9%;margin-bottom:1rem;position:relative}.layer-group-toggle{text-align:center;font-weight:700;font-size:1.1rem;border:1px;border-radius:6px;background-color:transparent;cursor:pointer;transition:background-color .2s ease;position:relative;color:#fff}.layer-group-toggle:hover{background-color:#d1d5db}.layer-group-content{visibility:hidden;opacity:0;position:absolute;top:100%;left:0;background-color:#e0e0e0;border:none;z-index:1000;min-width:150px;padding:.5rem 0;box-shadow:0 4px 8px #0003,inset 0 0 10px #ffffff4d;background-image:linear-gradient(to bottom,#f9f9f9,#e0e0e0);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;transition:opacity .2s ease}.layer-group:hover .layer-group-content{visibility:visible;opacity:1}.network-canvas{padding:0!important;margin:0!important;background:none!important;border:none!important;box-shadow:none!important}.export-dropdown{position:relative;display:inline-block;z-index:20}.export-options{position:absolute;top:100%;left:0;background-color:#4b5563;min-width:150px;box-shadow:0 2px 8px #0003;display:none;flex-direction:column;border-radius:6px;padding:.5rem 0;z-index:30}.export-dropdown:hover .export-options{display:flex}.export-options button{background-color:#4b5563;color:#fff;border:none;padding:.5rem 1rem;text-align:left;cursor:pointer;width:100%}.export-options button:hover{background-color:#374151}h4{margin:.2rem}.navbar-logo{width:100px}p{color:#fff;text-align:center}.prompt-panel{padding:.75rem;border-bottom:1px solid #e5e7eb;background:#fafafa}.prompt-label{display:block;font-weight:600;margin-bottom:.4rem}.prompt-input{width:100%;resize:vertical;border:1px solid #d1d5db;border-radius:6px;padding:.5rem .6rem;font-size:.95rem;margin-bottom:.5rem}.prompt-actions{display:flex;gap:.5rem}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-vietnamese-400-normal-BxGuknnG.woff2) format("woff2"),url(/assets/work-sans-vietnamese-400-normal-DFZk_KN_.woff) format("woff");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:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-ext-400-normal-CjUdILUK.woff2) format("woff2"),url(/assets/work-sans-latin-ext-400-normal-BU0CIkwa.woff) format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/work-sans-latin-400-normal-CzmC_l3Q.woff2) format("woff2"),url(/assets/work-sans-latin-400-normal-DtsoZsT4.woff) format("woff");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:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}html,body,#root{height:100%;width:100%;margin:0;padding:0}*{box-sizing:border-box}.react-flow{width:100%;height:100%;position:relative;overflow:hidden}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selectionpane{z-index:5}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow .react-flow__connectionline{z-index:1001}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.inactive{pointer-events:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edge-path{fill:none}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-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__connection-path{fill:none}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box}.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}.react-flow__handle.connectable{pointer-events:all}.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__controls{position:absolute;z-index:5;bottom:20px;left:15px}.react-flow__controls-button{width:24px;height:24px;border:none}.react-flow__controls-button svg{width:100%}.react-flow__minimap{position:absolute;z-index:5;bottom:20px;right:15px}.react-flow__attribution{font-size:10px;position:absolute;z-index:1000;background:#ffffff80;padding:2px 3px;color:#999}.react-flow__attribution a{color:#555;text-decoration:none}.react-flow__attribution.top{top:0}.react-flow__attribution.bottom{bottom:0}.react-flow__attribution.left{left:0}.react-flow__attribution.right{right:0}.react-flow__attribution.center{left:50%;transform:translate(-50%)}.react-flow__edge.selected .react-flow__edge-path{stroke:#555}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1}.react-flow__edge-text{font-size:10px}.react-flow__edge-textbg{fill:#fff}.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1}.react-flow__node{cursor:-webkit-grab;cursor:grab}.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;background:#fff;border-color:#1a192b}.react-flow__node-default.selected,.react-flow__node-input.selected,.react-flow__node-output.selected,.react-flow__node-group.selected{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-default .react-flow__handle,.react-flow__node-input .react-flow__handle,.react-flow__node-output .react-flow__handle,.react-flow__node-group .react-flow__handle{background:#1a192b}.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-input.selectable.selected,.react-flow__node-output.selectable.selected,.react-flow__node-group.selectable.selected{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background:#f0f0f040;border-color:#1a192b}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__handle{width:6px;height:6px;background:#555;border:1px solid white;border-radius:100%}.react-flow__handle.connectable{cursor:crosshair}.react-flow__minimap{background-color:#fff}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{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;-ms-user-select:none;user-select:none;padding:5px}.react-flow__controls-button svg{max-width:12px;max-height:12px}.react-flow__controls-button:hover{background:#f4f4f4}
