.node-card[data-v-86cb87b4]{background:#16213e;border:2px solid #555;border-radius:6px;padding:.5rem .75rem;width:220px;min-height:80px;font-family:system-ui,sans-serif;color:#e0e0e0;transition:border-color .1s;cursor:pointer}.node-type-narrative[data-v-86cb87b4]{border-color:#555}.node-type-prompt[data-v-86cb87b4]{border-color:#a06020}.node-type-dialogue[data-v-86cb87b4]{border-color:#4a90d9}.node-selected[data-v-86cb87b4]{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d9}.node-start[data-v-86cb87b4]{border-top:4px solid #4caf50}.badge[data-v-86cb87b4]{display:inline-block;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;color:#ccc;margin-bottom:.35rem}.node-preview[data-v-86cb87b4]{font-size:.75rem;color:#bbb;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.4}.node-choice-row[data-v-86cb87b4]{box-sizing:border-box;height:26px;display:flex;align-items:center;border-top:1px solid #1e3a6e;padding-right:14px}.node-choice-text[data-v-86cb87b4]{font-size:.7rem;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}[data-v-86cb87b4] .choice-handle{width:10px;height:10px;border-radius:50%;background:#4a90d9;border:2px solid #16213e}[data-v-86cb87b4] .charm-handle{width:10px;height:10px;border-radius:2px;transform:rotate(45deg);background:#e94560;border:2px solid #16213e}.node-dev-id[data-v-86cb87b4]{font-size:.6rem;color:#4caf50;font-family:monospace;margin-bottom:.2rem;height:17px;box-sizing:border-box}.node-dev-next[data-v-86cb87b4]{font-size:.6rem;color:#888;font-family:monospace;margin-left:.3rem;white-space:nowrap}.charm-label[data-v-9adfb3a3]{position:absolute;display:flex;align-items:center;gap:2px;background:#16213e;border:1px solid #e94560;border-radius:4px;padding:1px 4px;font-size:.65rem}.charm-threshold[data-v-9adfb3a3]{color:#e94560;cursor:pointer;-webkit-user-select:none;user-select:none}.charm-threshold[data-v-9adfb3a3]:hover{text-decoration:underline}.charm-remove[data-v-9adfb3a3]{background:none;border:none;color:#644;font-size:.75rem;cursor:pointer;padding:0;line-height:1}.charm-remove[data-v-9adfb3a3]:hover{color:#e94560}.charm-input[data-v-9adfb3a3]{width:40px;background:#1a1a2e;border:1px solid #e94560;border-radius:3px;color:#e0e0e0;font-size:.65rem;padding:1px 3px}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top: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{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.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;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;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{position:absolute;z-index:5;margin:15px}.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:10}}: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{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.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{outline:none;border:1px solid #555}.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{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.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{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.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{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;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;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:#1a1a2e;color:#e0e0e0;height:100vh;overflow:hidden}#app{height:100vh;display:flex;flex-direction:column}header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#16213e;border-bottom:1px solid #0f3460;flex-shrink:0}header h1{font-size:1rem;color:#e94560;margin-right:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.save-status{font-size:.75rem;color:#666;white-space:nowrap}.save-status.unsaved{color:#e9a030}.save-status.saved{color:#4caf50}.btn{padding:.35rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:600;background:#0f3460;color:#e0e0e0}.btn:hover{background:#1a4a8a}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-danger{background:#6b1a1a}.btn-danger:hover{background:#8a2222}.btn-active{background:#2a5a9e}.charm-route-row{display:flex;gap:.4rem;align-items:center;font-size:.75rem;color:#888;padding:.15rem 0}.charm-route-label{color:#e94560;font-weight:600}.charm-route-target{color:#aaa;font-family:monospace}.editor-body{display:flex;flex:1;overflow:hidden;min-height:0}.canvas-area{flex:1;position:relative;min-width:0}.flow-wrap{width:100%;height:100%}.sidebar{width:320px;flex-shrink:0;background:#16213e;border-left:1px solid #0f3460;display:flex;flex-direction:column;overflow:hidden}.sidebar-scroll{flex:1;overflow-y:auto;padding:1rem}.sidebar-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid #0f3460;flex-shrink:0}.sidebar-header h2{font-size:.9rem;color:#e0e0e0;margin-right:auto;text-transform:capitalize}.sidebar-close{background:none;border:none;color:#666;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .25rem}.sidebar-close:hover{color:#e0e0e0}.field-group{margin-bottom:1rem}.field-group label{display:block;font-size:.75rem;color:#888;margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.field-group textarea,.field-group input[type=text],.field-group input[type=number],.field-group select{width:100%;background:#1a1a2e;border:1px solid #0f3460;border-radius:4px;color:#e0e0e0;padding:.4rem .5rem;font-size:.8rem;font-family:inherit;resize:vertical}.field-group textarea:focus,.field-group input:focus,.field-group select:focus{outline:none;border-color:#4a90d9}.section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#4a90d9;margin:1.25rem 0 .5rem;border-bottom:1px solid #0f3460;padding-bottom:.25rem}.danger-zone{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #2a1a1a}.variant-readonly{font-size:.75rem;color:#888;font-style:italic;padding:.4rem .5rem;background:#1a1a2e;border:1px solid #0f3460;border-radius:4px}.choice-card{background:#1a1a2e;border:1px solid #0f3460;border-radius:6px;padding:.75rem;margin-bottom:.75rem}.choice-card-header{display:flex;align-items:center;margin-bottom:.5rem}.choice-card-header span{font-size:.75rem;color:#888;margin-right:auto}.choice-remove{background:none;border:none;color:#644;font-size:.9rem;cursor:pointer}.choice-remove:hover{color:#e94560}.mutation-row{display:flex;gap:.4rem;margin-bottom:.4rem;align-items:center}.mutation-row select,.mutation-row input{flex:1;background:#1a1a2e;border:1px solid #0f3460;border-radius:4px;color:#e0e0e0;padding:.3rem .4rem;font-size:.78rem}.mutation-remove{background:none;border:none;color:#644;font-size:.9rem;cursor:pointer;flex-shrink:0}.mutation-remove:hover{color:#e94560}.fab-container{position:absolute;bottom:1.5rem;left:1.5rem;z-index:10}.fab{width:48px;height:48px;border-radius:50%;background:#e94560;border:none;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 2px 8px #00000080;display:flex;align-items:center;justify-content:center}.fab:hover{background:#c73450}.fab-menu{position:absolute;bottom:56px;left:0;background:#16213e;border:1px solid #0f3460;border-radius:6px;overflow:hidden;min-width:140px;box-shadow:0 2px 12px #00000080}.fab-menu button{display:block;width:100%;background:none;border:none;color:#e0e0e0;padding:.6rem 1rem;font-size:.85rem;text-align:left;cursor:pointer}.fab-menu button:hover{background:#0f3460}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:1.5rem;min-width:340px;max-width:480px;width:100%}.modal h2{font-size:1rem;margin-bottom:1.25rem;color:#e94560}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;color:#888;font-size:1rem}.charm-variant-card{background:#1a1a2e;border:1px solid #0f3460;border-radius:6px;padding:.6rem;margin-bottom:.5rem}.charm-variant-header{display:flex;align-items:center;margin-bottom:.4rem}.charm-variant-header span{font-size:.75rem;color:#888;margin-right:auto}.dev-info-row{display:flex;gap:.5rem;align-items:baseline;padding:.2rem 0;border-bottom:1px solid #0f3460;margin-bottom:.15rem}.dev-info-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:#4a90d9;flex-shrink:0;width:2.5rem}.dev-info-value{font-size:.72rem;color:#4caf50;font-family:monospace;word-break:break-all}
