.sw-wrap{display:flex;flex-direction:column;height:calc(100vh - 140px);background:var(--bg);border-radius:12px;overflow:hidden}
.sw-toolbar{background:var(--surface);padding:.5rem 1rem;display:flex;align-items:center;gap:.6rem;border-bottom:1px solid var(--surface2);flex-wrap:wrap}
.sw-main{flex:1;display:flex;overflow:hidden;position:relative}
#graphCanvas{flex:1;display:block;cursor:grab}
#graphCanvas.dragging{cursor:grabbing}
.sw-side-panel{width:360px;background:var(--surface);border-left:1px solid var(--surface2);display:flex;flex-direction:column;overflow:hidden;transition:width .2s}
.sw-side-panel.collapsed{width:0;border:none}
.panel-header{padding:.8rem 1rem;border-bottom:1px solid var(--surface2);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.panel-header h3{font-size:.9rem;margin:0}
.panel-body{flex:1;overflow-y:auto;padding:1rem}
.sw-status{font-size:.75rem;color:var(--muted)}
.sw-node-edit label{display:block;font-size:.8rem;color:var(--muted);margin:.6rem 0 .2rem}
.sw-node-edit input,.sw-node-edit select,.sw-node-edit textarea{width:100%;padding:.4rem .6rem;background:var(--surface);color:var(--text);border:1px solid var(--surface2);border-radius:6px;font-size:.85rem}
.sw-node-edit textarea{min-height:60px;resize:vertical}
.context-menu{position:fixed;background:var(--surface);border:1px solid var(--surface2);border-radius:8px;padding:.3rem 0;z-index:1000;min-width:140px;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.context-menu-item{padding:.4rem 1rem;font-size:.85rem;cursor:pointer;color:var(--text)}
.context-menu-item:hover{background:var(--surface2)}
.context-menu-item.danger{color:var(--red)}
.story-result{margin-bottom:1rem}
.story-result h4{font-size:.85rem;color:var(--purple);margin-bottom:.3rem;font-family:"DM Sans",sans-serif}
.story-result p,.story-result ul{font-size:.82rem;line-height:1.5;color:var(--text)}
.story-result ul{padding-left:1.2rem}
.story-text{background:rgba(139,92,246,.08);border:1px solid rgba(139,92,246,.15);border-radius:8px;padding:.8rem;font-size:.9rem;line-height:1.6;margin-bottom:.8rem;white-space:pre-wrap}
.plot-idea{background:var(--bg);border-radius:6px;padding:.5rem .7rem;margin-bottom:.3rem;font-size:.85rem}
.suggested-node{background:var(--surface2);border-radius:8px;padding:.6rem;margin:.4rem 0;display:flex;align-items:center;justify-content:space-between}
.suggested-node .add-btn{background:var(--green);color:var(--text-on-color);border:none;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;cursor:pointer}
.node-form label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.2rem;margin-top:.5rem}
.node-form input,.node-form select,.node-form textarea{font-size:.85rem;margin-bottom:.3rem}
.node-form textarea{min-height:60px;resize:vertical}
.sw-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--surface2);color:var(--text);padding:.6rem 1.2rem;border-radius:8px;font-size:.85rem;z-index:100;opacity:0;transition:opacity .3s}
.sw-toast.show{opacity:1}.sw-toast.error{border:1px solid var(--red)}
.sw-mobile-hint{display:none}
@media(max-width:768px){.sw-wrap{height:auto;min-height:300px}.sw-main{display:none}.sw-mobile-hint{display:block;padding:2rem;text-align:center;color:var(--muted)}.sw-side-panel{display:none}}
