*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Segoe UI,Roboto,sans-serif}:root{--ctc-scene:web;--ctc-intent:vivid;--ctc-bg:#f1f0ed;--ctc-title:#685e48;--ctc-body:#695e45;--ctc-button:#8076a3;--ctc-accent:#7cb9a8;--ctc-bg-light:#f5f4f2;--ctc-bg-white:#fafaf8;--ctc-border:#d8d6d2;--ctc-text-on-title:#f5f0e0}.vue-flow{z-index:0;direction:ltr;width:100%;height:100%;position:relative;overflow:hidden}.vue-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.vue-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{pointer-events:none;min-width:5px;min-height:5px;position:absolute}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{bottom:0;left:50%;transform:translate(-50%,50%)}.vue-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{z-index:5;margin:15px;position:absolute}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10px}}:root{--vf-node-bg:#fff;--vf-node-text:#222;--vf-connection-path:#b1b1b7;--vf-handle:#555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{text-align:center;width:150px;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-style:solid;border-width:1px;border-color:var(--vf-node-color);border-radius:3px;padding:10px;font-size:12px}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid #555;outline:none}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color:var(--vf-node-color,#0041d0);--vf-handle:var(--vf-node-color,#0041d0);--vf-box-shadow:var(--vf-node-color,#0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color,#0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{border:1px solid var(--vf-node-color,#0041d0);outline:none}.vue-flow__node-default{--vf-handle:var(--vf-node-color,#1a192b);--vf-box-shadow:var(--vf-node-color,#1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color,#1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{border:1px solid var(--vf-node-color,#1a192b);outline:none}.vue-flow__node-output{--vf-handle:var(--vf-node-color,#ff0072);--vf-box-shadow:var(--vf-node-color,#ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color,#ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid var(--vf-node-color,#ff0072);outline:none}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{background:var(--vf-handle);border:1px solid #fff;border-radius:100%;width:6px;height:6px}.modal-overlay[data-v-01a0e8ff]{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-01a0e8ff]{background:var(--ctc-bg-white);border:1px solid var(--ctc-border);width:440px;max-width:90vw;color:var(--ctc-body);border-radius:12px;box-shadow:0 8px 32px #0000001f}.modal-header[data-v-01a0e8ff]{justify-content:space-between;align-items:center;padding:16px 20px 0;display:flex}.modal-header h3[data-v-01a0e8ff]{color:var(--ctc-title);margin:0;font-size:18px;font-weight:700}.modal-close-btn[data-v-01a0e8ff]{color:var(--ctc-border);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1;transition:color .2s}.modal-close-btn[data-v-01a0e8ff]:hover{color:var(--ctc-title)}.modal-body[data-v-01a0e8ff]{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.form-group[data-v-01a0e8ff]{flex-direction:column;gap:4px;display:flex}.form-group label[data-v-01a0e8ff]{color:var(--ctc-title);font-size:13px;font-weight:600}.form-input[data-v-01a0e8ff],.form-textarea[data-v-01a0e8ff]{background:var(--ctc-bg);border:1px solid var(--ctc-border);color:var(--ctc-body);border-radius:6px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.form-input[data-v-01a0e8ff]:focus,.form-textarea[data-v-01a0e8ff]:focus{border-color:var(--ctc-accent)}.form-textarea[data-v-01a0e8ff]{resize:vertical;min-height:80px}.char-count[data-v-01a0e8ff]{text-align:right;color:var(--ctc-border);font-size:12px}.modal-footer[data-v-01a0e8ff]{justify-content:flex-end;gap:10px;padding:12px 20px 20px;display:flex}.btn[data-v-01a0e8ff]{cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .2s}.btn-cancel[data-v-01a0e8ff]{background:var(--ctc-bg);color:var(--ctc-body);border:1px solid var(--ctc-border)}.btn-cancel[data-v-01a0e8ff]:hover{background:var(--ctc-border)}.btn-save[data-v-01a0e8ff]{background:var(--ctc-button);color:#fff}.btn-save[data-v-01a0e8ff]:hover{background:#6a5f8c}.story-node[data-v-dad22674]{background:var(--ctc-bg-white);border:2px solid var(--ctc-border);cursor:pointer;border-radius:10px;min-width:180px;max-width:260px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.story-node.selected[data-v-dad22674]{border-color:var(--ctc-accent);box-shadow:0 0 0 1px var(--ctc-accent), 0 4px 16px #7cb9a859}.node-header[data-v-dad22674]{background:var(--ctc-title);color:var(--ctc-text-on-title);text-align:center;border-bottom:1px solid #00000014;padding:10px 14px;font-size:15px;font-weight:700}.node-props[data-v-dad22674]{border-bottom:1px solid var(--ctc-border);flex-direction:column;gap:3px;padding:6px 14px;display:flex}.prop-row[data-v-dad22674]{color:var(--ctc-body);align-items:center;gap:6px;font-size:12px;display:flex}.prop-icon[data-v-dad22674]{flex-shrink:0;font-size:11px}.prop-text[data-v-dad22674]{line-height:1.4}.node-summary[data-v-dad22674]{color:var(--ctc-body);opacity:.75;word-break:break-word;padding:8px 14px;font-size:12px;line-height:1.5}.handle-target[data-v-dad22674],.handle-source[data-v-dad22674]{transition:background .2s,transform .2s;border:2px solid var(--ctc-button)!important;background:var(--ctc-bg-white)!important;width:10px!important;height:10px!important}.handle-target[data-v-dad22674]:hover,.handle-source[data-v-dad22674]:hover{transform:scale(1.4);background:var(--ctc-button)!important}.modal-overlay[data-v-9856f0e9]{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-9856f0e9]{background:var(--ctc-bg-white);border:1px solid var(--ctc-border);width:380px;max-width:90vw;color:var(--ctc-body);border-radius:12px;box-shadow:0 8px 32px #0000001f}.modal-header[data-v-9856f0e9]{justify-content:space-between;align-items:center;padding:16px 20px 0;display:flex}.modal-header h3[data-v-9856f0e9]{color:var(--ctc-title);margin:0;font-size:18px;font-weight:700}.modal-close-btn[data-v-9856f0e9]{color:var(--ctc-border);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:24px;line-height:1;transition:color .2s}.modal-close-btn[data-v-9856f0e9]:hover{color:var(--ctc-title)}.modal-body[data-v-9856f0e9]{padding:16px 20px}.form-group[data-v-9856f0e9]{flex-direction:column;gap:4px;display:flex}.form-group label[data-v-9856f0e9]{color:var(--ctc-title);font-size:13px;font-weight:600}.form-input[data-v-9856f0e9]{background:var(--ctc-bg);border:1px solid var(--ctc-border);color:var(--ctc-body);border-radius:6px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.form-input[data-v-9856f0e9]:focus{border-color:var(--ctc-accent)}.form-hint[data-v-9856f0e9]{color:var(--ctc-border);margin:2px 0 0;font-size:12px}.modal-footer[data-v-9856f0e9]{justify-content:flex-end;gap:10px;padding:12px 20px 20px;display:flex}.btn[data-v-9856f0e9]{cursor:pointer;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .2s}.btn-cancel[data-v-9856f0e9]{background:var(--ctc-bg);color:var(--ctc-body);border:1px solid var(--ctc-border)}.btn-cancel[data-v-9856f0e9]:hover{background:var(--ctc-border)}.btn-save[data-v-9856f0e9]{background:var(--ctc-button);color:#fff}.btn-save[data-v-9856f0e9]:hover{background:#6a5f8c}html,body,#app{width:100%;height:100%;margin:0;padding:0;overflow:hidden}.app-container{background:var(--ctc-bg);flex-direction:column;width:100%;height:100%;display:flex}.toolbar{background:var(--ctc-button);color:#fff;z-index:10;border-bottom:1px solid #00000014;align-items:center;gap:14px;padding:10px 20px;display:flex}.toolbar-title{letter-spacing:.5px;color:#fff;font-size:16px;font-weight:700}.toolbar-actions{gap:8px;margin-left:auto;display:flex}.toolbar-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;border-radius:6px;padding:7px 18px;font-size:14px;font-weight:500;transition:background .2s}.toolbar-btn:hover{background:#ffffff1a}.toolbar-btn-primary{background:var(--ctc-accent);border-color:#0000}.toolbar-btn-primary:hover{background:var(--ctc-accent)}.flow-container{flex:1;width:100%;height:100%}.main-area{flex:1;display:flex;overflow:hidden}.sidebar{background:var(--ctc-bg-white);border-right:1px solid var(--ctc-border);white-space:nowrap;flex-direction:column;flex-shrink:0;transition:width .25s,border-color .25s,padding .25s;display:flex;position:relative;overflow:hidden}.sidebar.collapsed{border-right-color:#0000}.sidebar-header{justify-content:space-between;align-items:center;padding:12px 16px 8px;display:flex}.sidebar-header h3{color:var(--ctc-title);margin:0;font-size:15px;font-weight:700}.sidebar-count{color:var(--ctc-border);font-size:12px}.sidebar-resize-handle{cursor:col-resize;z-index:5;width:4px;height:100%;transition:background .15s;position:absolute;top:0;right:0}.sidebar-resize-handle:hover{background:var(--ctc-accent)}.sidebar-list{flex-direction:column;flex:1;gap:4px;padding:4px 8px 12px;display:flex;overflow-y:auto}.sidebar-item{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 12px;transition:background .15s}.sidebar-item:hover{background:var(--ctc-bg)}.sidebar-item.active{background:var(--ctc-bg);border-color:var(--ctc-accent)}.sidebar-item-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.sidebar-item-label{color:var(--ctc-title);word-break:break-word;font-size:14px;font-weight:600;line-height:1.3}.sidebar-item-delete{width:22px;height:22px;color:var(--ctc-border);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:background .15s,color .15s;display:flex}.sidebar-item:hover .sidebar-item-delete{opacity:1}.sidebar-item-delete:hover{color:#c85050;background:#c8505026}.sidebar-item-meta{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.sidebar-meta-tag{color:var(--ctc-body);opacity:.7;font-size:11px}.sidebar-empty{text-align:center;color:var(--ctc-border);padding:32px 16px;font-size:13px}.toolbar-icon-btn{padding:4px 10px;font-size:18px;line-height:1}
