.spine{background:hsl(var(--bg));color:hsl(var(--text));height:100vh;display:flex;overflow:hidden}.spine,.spine *{font-family:Nanum Square,Nanum Gothic,sans-serif}.spine ::-webkit-scrollbar{display:none}.spine *{scrollbar-width:none}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px;color:hsl(var(--sidebar-muted));transition:all .15s;white-space:nowrap}.nav-item:hover{background:hsl(var(--surface-2));color:hsl(var(--sidebar-text))}.nav-item.active{background:hsl(var(--surface-2));font-weight:700}.nav-item.active,.nav-item.active i{color:hsl(var(--sidebar-active))}.tag-badge{background:hsl(var(--surface-2));border:1px solid hsl(var(--border));border-radius:20px;font-size:11px;padding:2px 8px}.chapter-item,.tag-badge{color:hsl(var(--text-muted))}.chapter-item{padding:7px 12px;border-radius:7px;cursor:pointer;font-size:12px;transition:all .15s}.chapter-item.active,.chapter-item:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.chapter-item.active{font-weight:700}.side-section-title{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--text-subtle));margin-bottom:8px;padding:0 2px}.action-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:9px;font-size:12px;cursor:pointer;border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));transition:all .15s;font-weight:700}.action-btn:hover{border-color:hsl(var(--text-muted));color:hsl(var(--text));background:hsl(var(--surface-2))}.primary-btn{background:hsl(var(--accent));color:hsl(var(--accent-fg));border:none;padding:8px 20px;border-radius:10px;font-size:12px;font-weight:900;cursor:pointer;display:flex;align-items:center;gap:7px;transition:opacity .15s,transform .1s}.primary-btn:hover{opacity:.85;transform:translateY(-1px)}.toolbar-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:7px;color:hsl(var(--text-muted));cursor:pointer;transition:all .15s;border:none;background:transparent}.toolbar-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.toolbar-btn.active{background:hsl(var(--accent)/.1);color:hsl(var(--accent))}.section-tab,.tab-btn,.view-tab-btn{padding:6px 14px;border-radius:8px;font-size:12px;cursor:pointer;color:hsl(var(--text-subtle));font-weight:700;transition:all .15s;border:none;background:transparent}.section-tab.active,.section-tab:hover,.tab-btn.active,.tab-btn:hover,.view-tab-btn.active,.view-tab-btn:hover{color:hsl(var(--text));background:hsl(var(--surface-2))}.completeness-bar,.mini-progress{height:5px;background:hsl(var(--border));border-radius:10px;overflow:hidden}.completeness-fill,.mini-progress-fill{height:100%;border-radius:10px;transition:width .5s ease;background:hsl(var(--text))}.stat-bar-wrap{display:flex;align-items:center;gap:8px;margin-bottom:8px}.stat-bar-label{font-size:11px;color:hsl(var(--text-muted));font-weight:700;width:48px;flex-shrink:0}.stat-bar,.stat-bar-track{flex:1;height:6px;background:hsl(var(--surface-2));border-radius:10px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:10px}.stat-bar-val{font-size:11px;color:hsl(var(--text));font-weight:900;width:24px;text-align:right;flex-shrink:0}.score-bar{height:6px;background:hsl(var(--surface-2));border-radius:10px;overflow:hidden}.score-bar-fill{height:100%;border-radius:10px;background:hsl(var(--text))}.lore-input{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:9px 13px;font-size:13px;color:hsl(var(--text));outline:none;transition:border-color .15s,box-shadow .15s;font-family:Nanum Square,sans-serif}.lore-input,.lore-input:focus{background:hsl(var(--surface))}.lore-input:focus{border-color:hsl(var(--text-muted));box-shadow:0 0 0 3px hsl(var(--text)/.06)}.lore-textarea{width:100%;border:1px solid hsl(var(--border));border-radius:10px;padding:10px 13px;font-size:13px;color:hsl(var(--text));background:hsl(var(--surface));outline:none;transition:border-color .15s,box-shadow .15s;font-family:Nanum Square,sans-serif;resize:vertical;line-height:1.75}.lore-textarea:focus{border-color:hsl(var(--text-muted));box-shadow:0 0 0 3px hsl(var(--text)/.06);background:hsl(var(--surface))}.lore-field-label{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--text-subtle));margin-bottom:5px}.search-input{width:100%;border:1px solid hsl(var(--border));border-radius:9px;padding:7px 12px 7px 32px;font-size:12px;color:hsl(var(--text));background:hsl(var(--surface));outline:none;transition:border-color .15s;font-family:Nanum Square,sans-serif}.search-input:focus{border-color:hsl(var(--text-muted));background:hsl(var(--surface))}.quick-input-area{width:100%;border:1px solid hsl(var(--border));border-radius:12px;padding:12px 14px;font-size:13px;color:hsl(var(--text));background:hsl(var(--surface));outline:none;transition:border-color .15s,box-shadow .15s;font-family:Nanum Square,sans-serif;resize:none;line-height:1.6}.quick-input-area:focus{border-color:hsl(var(--text-muted));box-shadow:0 0 0 3px hsl(var(--text)/.06)}.category-btn,.category-filter{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;cursor:pointer;font-size:12px;color:hsl(var(--text-muted));transition:all .15s;border:1px solid transparent;background:transparent;font-weight:700;width:100%}.category-btn.active,.category-btn:hover,.category-filter.active,.category-filter:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.category-btn.active,.category-filter.active{border-color:hsl(var(--border))}.category-filter .count-chip{margin-left:auto;background:hsl(var(--surface-2));color:hsl(var(--text-subtle));font-size:10px;padding:1px 7px;border-radius:20px;font-weight:900}.category-filter.active .count-chip{background:hsl(var(--border));color:hsl(var(--text-muted))}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));white-space:nowrap}.filter-chip.active,.filter-chip:hover{border-color:hsl(var(--text-muted));color:hsl(var(--text))}.ai-badge,.ai-suggest-chip,.filter-chip.active{background:hsl(var(--surface-2))}.ai-badge,.ai-suggest-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;color:hsl(var(--text-muted));border:1px solid hsl(var(--border));cursor:pointer;transition:all .15s}.ai-suggest-chip:hover{border-color:hsl(var(--text-muted));color:hsl(var(--text))}.suggestion-item{padding:11px 13px;border-radius:12px;background:hsl(var(--surface));border:1px solid hsl(var(--border));font-size:12px;color:hsl(var(--text-muted));line-height:1.55;transition:all .15s;cursor:pointer}.suggestion-item:hover{border-color:hsl(var(--text-muted));background:hsl(var(--surface-2))}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin-anim{animation:spin 1s linear infinite}.brief-section-card,.char-card,.idea-card,.plot-card,.rel-card,.scene-card,.world-card{background:hsl(var(--surface));border:1.5px solid hsl(var(--border));border-radius:14px;transition:box-shadow .2s,border-color .2s;cursor:pointer}.brief-section-card:hover,.char-card:hover,.idea-card:hover,.plot-card:hover,.rel-card:hover,.scene-card:hover,.world-card:hover{box-shadow:0 2px 16px rgba(0,0,0,.07);border-color:hsl(var(--border))}.brief-section-card.selected,.char-card.selected,.idea-card.selected,.plot-card.selected,.scene-card.selected,.world-card.selected{box-shadow:0 0 0 1px hsl(var(--text)/.5)}.idea-card.pinned{border-color:hsl(var(--border));background:hsl(var(--surface))}.scene-card.dragging{opacity:.6;box-shadow:0 8px 24px hsl(var(--text)/.12)}.scene-card.drag-over{border-color:hsl(var(--accent));border-style:dashed}.drop-zone{border:2px dashed hsl(var(--border));border-radius:14px;background:transparent;transition:all .15s;cursor:pointer}.drop-zone:hover{border-color:hsl(var(--accent));background:hsl(var(--surface-2))}.add-scene-btn{border:1px dashed hsl(var(--border));border-radius:14px;background:hsl(var(--surface));display:flex;align-items:center;justify-content:center;gap:6px;color:hsl(var(--text-muted));font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;padding:14px}.add-scene-btn:hover{border-color:hsl(var(--accent)/.5)}.add-scene-btn:hover,.scene-number{color:hsl(var(--accent));background:hsl(var(--surface-2))}.scene-number{width:22px;height:22px;border-radius:7px;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}.word-count-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:10px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.act-label{font-size:11px;font-weight:900;padding:3px 10px;border-radius:20px}.act-label.act1{background:#e8fff0;color:hsl(var(--text))}.act-label.act2{background:#fff8e8;color:#a07830}.act-label.act3{background:#ffe8e8;color:#a05c5c}.char-list-item,.conflict-item,.entry-item,.idea-list-item,.idea-source-item,.plot-list-item,.rule-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:all .15s;border:1.5px solid transparent}.char-list-item:hover,.conflict-item:hover,.entry-item:hover,.idea-list-item:hover,.idea-source-item:hover,.plot-list-item:hover,.rule-item:hover{background:hsl(var(--surface-2))}.char-list-item.active,.entry-item.active,.idea-list-item.active,.plot-list-item.active{background:hsl(var(--surface-2));border-color:hsl(var(--border))}.source-idea-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--accent));border:1px solid hsl(var(--border))}.event-type-badge,.idea-type-badge,.phase-badge,.role-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:900}.idea-type-badge.type-plot{background:hsl(var(--surface-2));color:hsl(var(--accent))}.idea-type-badge.type-character{background:#f3e8ff;color:#7b5ea7}.idea-type-badge.type-world{background:#e8f4ff;color:#5c8bc0}.idea-type-badge.type-dialogue{background:#e8fff0;color:#5ca77b}.idea-type-badge.type-emotion{background:#fff0e8;color:#c0765c}.idea-type-badge.type-misc{background:hsl(var(--surface-2));color:hsl(var(--text-muted))}.note-list-item{padding:10px 12px;border-radius:9px;cursor:pointer;border:1.5px solid transparent;transition:all .15s;background:hsl(var(--surface));margin-bottom:4px}.note-list-item:hover{border-color:hsl(var(--border));background:hsl(var(--surface-2))}.note-list-item.active{border-color:hsl(var(--accent));background:hsl(var(--surface-2))}.note-list-item .pin-btn{opacity:0;transition:opacity .15s}.note-list-item:hover .pin-btn{opacity:1}.note-list-item.pinned .pin-btn{opacity:1;color:hsl(var(--accent))}.sort-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:7px;font-size:11px;cursor:pointer;color:hsl(var(--text-muted));transition:all .15s;border:none;background:transparent}.sort-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.sort-btn.active{background:hsl(var(--surface-2));color:hsl(var(--accent))}.view-toggle-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:7px;font-size:11px;cursor:pointer;border:1px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));transition:all .15s}.view-toggle-btn.active,.view-toggle-btn:hover{background:hsl(var(--surface-2))}.view-toggle-btn.active{color:hsl(var(--accent));border-color:hsl(var(--border));font-weight:700}.tag-input{outline:none;background:transparent;font-size:11px;color:hsl(var(--text));min-width:55px}.tag-input::-moz-placeholder{color:hsl(var(--text-subtle))}.tag-input::placeholder{color:hsl(var(--text-subtle))}.char-count{font-size:10px;color:hsl(var(--text-subtle))}.category-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-prose{min-height:220px;font-size:13px;line-height:1.8;color:hsl(var(--text))}.note-prose,.note-prose:focus{outline:none}.note-prose p{margin:0 0 10px}.note-prose ul{list-style:disc}.note-prose ol,.note-prose ul{margin-left:18px;margin-bottom:10px}.note-prose ol{list-style:decimal}.note-prose li{margin-bottom:3px}.note-prose blockquote{border-left:3px solid hsl(var(--border));padding-left:12px;color:hsl(var(--text-muted));margin:0 0 10px}.note-prose strong{font-weight:800;color:#2e2e2e}.note-prose em{font-style:italic}.note-prose mark{background:#fff3a0;border-radius:3px;padding:0 2px}.note-prose h2{font-size:16px;font-weight:800;color:#2e2e2e;margin:6px 0 8px}.note-prose p.is-editor-empty:first-child:before,.note-prose.is-editor-empty:first-child:before{content:attr(data-placeholder);color:hsl(var(--text-subtle));float:left;height:0;pointer-events:none}.emotion-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.emotion-tag.tension{background:#ffe8e8;color:#a05c5c;border-color:#e8b8b8}.emotion-tag.calm{background:#e8f4ff;color:#5c8bc0;border-color:#b8d8f0}.emotion-tag.sad{background:hsl(var(--surface-2));color:hsl(var(--accent));border-color:hsl(var(--border))}.emotion-tag.joy{background:#fff8e8;color:#a07830;border-color:#f0d8a0}.emotion-tag.conflict{background:#ffe8f0;color:#c2185b;border-color:#f0b8d0}.theme-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:20px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--accent));border:1px solid hsl(var(--border))}.theme-tag.alt{background:#f3e8ff;color:#9c27b0;border-color:#e0c0f0}.theme-tag.green{background:#e8fff0;color:hsl(var(--text));border-color:#b0e0c0}.theme-tag.amber{background:#fff8e8;color:#a07830;border-color:#f0d8a0}.trait-tag{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.trait-tag.green{background:#e8fff0;color:hsl(var(--text));border-color:#b0e0c0}.trait-tag.amber{background:#fff8e8;color:#a07830;border-color:#f0d8a0}.trait-tag.red{background:#ffe8e8;color:#a05c5c;border-color:#e8b8b8}.trait-tag.purple{background:#f3e8ff;color:#9c27b0;border-color:#e0c0f0}.term-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.link-badge{gap:3px;padding:2px 8px;font-size:10px;color:hsl(var(--accent))}.link-badge,.version-chip{display:inline-flex;align-items:center;border-radius:20px;font-weight:700;background:hsl(var(--surface-2));cursor:pointer}.version-chip{gap:4px;padding:3px 10px;font-size:11px;color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.version-chip.active{background:hsl(var(--surface-2));color:hsl(var(--accent));border-color:hsl(var(--border))}.progress-ring{transform:rotate(-90deg)}.progress-ring circle{transition:stroke-dashoffset .5s ease}.ms-doc-wrap{background:hsl(var(--surface-2))}.ms-editor{background:hsl(var(--surface))}.editor-content{font-size:16px;line-height:2;color:hsl(var(--text))}.editor-content p{margin-bottom:20px}.editor-content:focus{outline:none}.webnovel-preview{font-family:Nanum Gothic,Apple SD Gothic Neo,sans-serif;font-size:16px;line-height:1.9;color:#1e1e1e;word-break:keep-all;overflow-wrap:break-word}.webnovel-preview p{margin:0 0 .1em;text-indent:0}.webnovel-preview h1{font-size:1.5em;font-weight:900;margin:1.5em 0 .6em;color:#111}.webnovel-preview h2{font-size:1.25em;font-weight:800;margin:1.3em 0 .5em;color:#111}.webnovel-preview h3{font-size:1.1em;font-weight:700;margin:1.2em 0 .4em;color:#222}.webnovel-preview strong{font-weight:800}.webnovel-preview em{font-style:italic}.webnovel-preview blockquote{border-left:3px solid #ccc;margin:1.2em 0;padding:.5em 1em;color:#555;font-style:italic}.webnovel-preview img{max-width:100%;border-radius:8px;margin:1em 0}.webnovel-preview hr{border:none;border-top:1px solid rgba(0,0,0,.1);margin:2em 0}.spine .ms-editor .ProseMirror h1.ms-doc-title{font-size:2em;font-weight:900;color:#2e2e2e;line-height:1.4;margin:0 0 .8em;padding-bottom:.4em;border-bottom:1px solid hsl(var(--surface-2));position:relative;min-height:1.4em}.spine .ms-editor .ProseMirror h1.ms-doc-title.is-editor-empty:before,.spine .ms-editor .ProseMirror h1.ms-doc-title.is-empty:before{content:attr(data-placeholder);position:absolute;left:0;top:0;color:hsl(var(--text-subtle));pointer-events:none}.spine .ms-editor .ProseMirror{font-size:var(--ms-fs,16px);line-height:1.2;color:hsl(var(--text));caret-color:hsl(var(--accent));font-family:var(--ms-ff,"Nanum Square","Nanum Gothic",sans-serif);font-size:var(--ms-fs,11px);outline:none;border:none!important;letter-spacing:var(--ms-ls,normal)}.spine .ms-editor .ProseMirror p{margin:0 0 var(--ms-pg,1.5em);text-indent:var(--ms-ind,0)}.spine .ms-editor .ProseMirror :is(p,h1,h2,h3){caret-color:hsl(var(--accent))}.spine .ms-editor .ProseMirror h1{font-size:1.7em;font-weight:900;color:#2e2e2e;margin:.6em 0 .4em}.spine .ms-editor .ProseMirror h2{font-size:1.4em;font-weight:800;color:#2e2e2e;margin:.6em 0 .4em}.spine .ms-editor .ProseMirror h3{font-size:1.2em;font-weight:800;color:#2e2e2e;margin:.6em 0 .4em}.spine .ms-editor .ProseMirror blockquote{padding-left:2em;border-left:3px solid hsl(var(--surface-2));color:hsl(var(--accent));font-style:italic}.spine .ms-editor .ProseMirror ul{list-style:disc;padding-left:1.4em}.spine .ms-editor .ProseMirror ol{list-style:decimal;padding-left:1.4em}.spine .ms-editor .ProseMirror .is-editor-empty:first-child:before{color:hsl(var(--text-subtle))}.spine .ms-editor .has-focus{outline:none!important;box-shadow:none!important;background:transparent!important}.spine .ms-editor .ProseMirror-focused{outline:none!important}.spine .ms-editor .ProseMirror-gapcursor{display:block;pointer-events:none;position:relative}.spine .ms-editor .ProseMirror-gapcursor:after{content:"";display:block;position:absolute;top:0;left:0;width:2px;height:1.2em;background:currentColor;opacity:.6;border-radius:1px;animation:pm-cursor-blink 1.1s steps(2,start) infinite}@keyframes pm-cursor-blink{to{visibility:hidden}}.spine .ms-editor .ProseMirror ::-moz-selection{background:hsl(var(--text)/.1)}.spine .ms-editor .ProseMirror ::selection{background:hsl(var(--text)/.1)}.spine .ms-editor .ProseMirror .pm-selection-persist{background:hsl(var(--text)/.1)}.spine .ms-tb-select{-moz-appearance:none;appearance:none;-webkit-appearance:none}@media (max-width:767px){.scrollbar-none{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-none::-webkit-scrollbar{display:none}.scrollbar-none .ms-tb-select,.scrollbar-none .toolbar-btn,.scrollbar-none>*,.scrollbar-none>div{flex-shrink:0}.spine .ms-doc-wrap{padding:0}.spine .ms-mode-manuscript .ms-editor,.spine .ms-mode-web .ms-editor{max-width:100%!important;width:100%!important}.spine .ms-mode-manuscript .ms-editor .ProseMirror,.spine .ms-mode-web .ms-editor .ProseMirror{padding:12px 12px 100px!important;border-radius:0!important;border:none!important;box-shadow:none!important;font-size:var(--ms-fs,11px)!important}.spine .ms-mode-page .ms-doc-wrap-inner{transform-origin:top center}}.spine .ms-doc-wrap{display:flex;flex-direction:column;align-items:center;flex:1 0 auto}.spine .ms-mode-manuscript .ms-editor,.spine .ms-mode-web .ms-editor{width:100%;max-width:var(--ms-w,760px);flex:1 1 auto;display:flex;flex-direction:column}.spine .ms-mode-manuscript .ms-editor>div,.spine .ms-mode-web .ms-editor>div{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.spine .ms-mode-manuscript .ms-editor .ProseMirror,.spine .ms-mode-web .ms-editor .ProseMirror{width:100%!important;border:unset!important;border-radius:12px;background:hsl(var(--surface));box-shadow:unset;flex:1 1 auto;box-sizing:border-box}.spine .ms-mode-manuscript .ms-editor .ProseMirror p{text-indent:var(--ms-ind,1em)}.ms-goal-bar,.spine .progress-bar{height:4px;background:hsl(var(--surface-2));border-radius:2px;overflow:hidden}.ms-goal-fill,.spine .progress-fill{height:100%;background:hsl(var(--accent));border-radius:2px;transition:width .4s ease}.editor-toolbar-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:hsl(var(--text-muted));cursor:pointer;transition:all .15s;border:none;background:transparent;font-size:13px}.editor-toolbar-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.editor-toolbar-btn.active{background:hsl(var(--surface-2));color:hsl(var(--accent))}.brief-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:9px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;border:1.5px solid hsl(var(--border));background:hsl(var(--surface));color:hsl(var(--text-muted));width:100%}.brief-action-btn:hover{border-color:hsl(var(--border));color:hsl(var(--accent));background:hsl(var(--surface-2))}.generate-btn-main{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:12px;font-size:13px;font-weight:900;cursor:pointer;background:hsl(var(--text));color:hsl(var(--accent-fg));border:none;width:100%;transition:opacity .15s,transform .1s}.generate-btn-main:hover{opacity:.92;transform:translateY(-1px)}.event-node{position:absolute;display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:5}.event-node-dot{width:14px;height:14px;border-radius:50%;border:2.5px solid white;box-shadow:0 1px 5px rgba(0,0,0,.15);transition:transform .15s}.event-node:hover .event-node-dot{transform:scale(1.35)}.event-node-label{font-size:9px;font-weight:900;color:hsl(var(--text));white-space:nowrap}.tension-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:900;background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.spine .pill-tabs{display:flex;align-items:center;gap:4px}.spine .pill-tab{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:9px;font-size:10px;font-weight:800;color:hsl(var(--text-muted));background:transparent;border:none;cursor:pointer;transition:all .15s}.spine .pill-tab i{font-size:12px}.spine .pill-tab:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.spine .pill-tab.active{background:#eef0fb;color:hsl(var(--text));box-shadow:0 1px 2px rgba(0,0,0,.05)}.spine .pill-tab.active i{color:hsl(var(--accent))}.spine .db-toolbar{display:flex;align-items:center;gap:2px}.spine .db-tool{width:28px;height:27px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:hsl(var(--text-muted));background:transparent;border:none;cursor:pointer;transition:all .15s}.spine .db-tool:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.spine .new-btn{width:110px;display:inline-flex;align-items:center;gap:6px;height:27.5px;padding:0 12px;border-radius:8px;background:hsl(var(--accent));color:hsl(var(--accent-fg));font-size:12px;font-weight:800;border:none;cursor:pointer;transition:opacity .15s}.spine .new-btn:hover{opacity:.9}.spine .db-table{width:100%}.spine .db-head{display:grid;align-items:center;padding:0 8px;border-bottom:1px solid hsl(var(--surface-2));height:36px;font-size:12px;color:hsl(var(--text-muted));font-weight:700}.spine .db-th{display:flex;align-items:center;gap:6px;padding:0 10px}.spine .db-th i{font-size:11px;color:hsl(var(--text-subtle))}.spine .db-row{display:grid;align-items:center;padding:0 8px;border-bottom:1px solid #f2f2f2;min-height:40px;cursor:pointer;transition:background .12s}.spine .db-row:hover{background:hsl(var(--surface-2))}.spine .db-cell{padding:7px 10px;font-size:13px;color:hsl(var(--text));min-width:0}.spine .db-title-cell{display:flex;align-items:center;gap:8px;font-weight:600}.spine .db-title-cell i{color:hsl(var(--text-subtle));font-size:12px;flex-shrink:0}.spine .db-title-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine .db-newrow{display:flex;align-items:center;gap:8px;padding:9px 18px;font-size:13px;color:hsl(var(--text-muted));cursor:pointer;transition:background .12s}.spine .db-newrow:hover{background:hsl(var(--surface-2));color:hsl(var(--accent))}.spine .event-table-shell{border:1px solid hsl(var(--surface-2));border-radius:12px;overflow:hidden;background:hsl(var(--surface))}.spine .db-filterbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}@media (max-width:767px){.spine .db-filterbar{display:none}}.spine .db-filter-left,.spine .db-filter-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spine .db-search-wrap{width:320px;max-width:100%;display:flex;align-items:center;gap:8px;border:1px solid hsl(var(--border));border-radius:10px;background:white;padding:0 10px;height:34px}.spine .db-search-wrap i{font-size:12px;color:hsl(var(--text-muted))}.spine .db-search-input{border:none;outline:none;background:transparent;width:100%;font-size:13px;color:hsl(var(--text))}.spine .db-pill-select{height:34px;border:1px solid hsl(var(--border));border-radius:10px;padding:0 10px;background:white;color:hsl(var(--text-muted));font-size:12px;font-weight:700;outline:none}.spine .db-pill-select:focus{border-color:hsl(var(--border));box-shadow:0 0 0 2px hsl(var(--text)/.07)}.spine .db-inline-link{border:none;background:transparent;color:hsl(var(--text-muted));font-size:11px;font-weight:700;cursor:pointer}.spine .db-inline-link:hover{color:hsl(var(--accent))}.spine .event-status-select{height:30px;border-radius:8px;border:1px solid hsl(var(--border));padding:0 8px;font-size:12px;font-weight:800;outline:none;background:hsl(var(--surface-2));color:hsl(var(--text-muted))}.spine .event-status-select.unplaced{background:#f1f2fa;color:hsl(var(--accent));border-color:#d5d9f8}.spine .event-status-select.act_placed{background:#eaf8ee;color:#2f8a4d;border-color:#c9ebd3}.spine .event-status-select.scene_linked{background:#eaf4ff;color:#2d73b8;border-color:#c8defa}.spine .event-status-select.causally_linked{background:#fff5e8;color:#b7791f;border-color:#f2d7b0}.spine .event-status-select.needs_review{background:#ffecec;color:#b84747;border-color:#f4c1c1}.spine .event-stars{display:inline-flex;gap:3px;color:hsl(var(--accent));font-size:12px}.spine .event-stars .fa-regular{color:#d2d6f2}.spine .db-more-btn{width:24px;height:24px;border-radius:6px;border:none;background:transparent;color:hsl(var(--text-muted));cursor:pointer}.spine .db-more-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.spine .arc-chip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap}.spine .arc-bar{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:12px}@media (max-width:767px){.spine .arc-bar{display:none}}.spine .arc-bar-label{gap:5px;font-size:11px;font-weight:900;letter-spacing:.04em;margin-right:2px}.spine .arc-bar-label,.spine .arc-pill{display:inline-flex;align-items:center;color:hsl(var(--text-muted))}.spine .arc-pill{gap:6px;padding:5px 11px;border-radius:20px;border:1.5px solid hsl(var(--border));background:hsl(var(--surface));font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap}.spine .arc-pill:hover{border-color:hsl(var(--border))}.spine .arc-pill-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.spine .arc-pill-count{font-size:10px;font-weight:800;opacity:.7}.spine .arc-bar-editchip{display:inline-flex;align-items:center;gap:5px;padding:3px 5px;border-radius:10px;border:1px solid hsl(var(--border));background:hsl(var(--surface-2))}.spine .arc-bar-input{width:90px;border:none;background:transparent;font-size:12px;font-weight:700;color:#3a3a48;outline:none;padding:2px 4px}.spine .arc-bar-del{width:20px;height:20px;border-radius:6px;color:hsl(var(--text-subtle));display:inline-flex;align-items:center;justify-content:center}.spine .arc-bar-del:hover:not(:disabled){background:#fbe9e9;color:#e05656}.spine .arc-bar-del:disabled{opacity:.35;cursor:not-allowed}.spine .arc-bar-add,.spine .arc-bar-clear,.spine .arc-bar-toggle{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;font-size:11px;font-weight:800;cursor:pointer;border:1.5px dashed #c8c8d8;background:hsl(var(--surface));color:#8b8b9e;transition:all .15s}.spine .arc-bar-toggle{border-style:solid;border-color:hsl(var(--border));color:hsl(var(--accent));background:hsl(var(--surface-2))}.spine .arc-bar-add:hover,.spine .arc-bar-clear:hover,.spine .arc-bar-toggle:hover{border-color:hsl(var(--accent));color:hsl(var(--accent))}.spine .arc-bar-clear{border-style:solid}.spine .seg-toggle{display:inline-flex;border:1.5px solid hsl(var(--border));border-radius:9px;overflow:hidden}.spine .seg-toggle button{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:700;color:hsl(var(--text-muted));background:hsl(var(--surface));border:none;cursor:pointer;transition:all .15s}.spine .seg-toggle button+button{border-left:1px solid hsl(var(--border))}.spine .seg-toggle button.active{background:hsl(var(--surface-2));color:hsl(var(--accent))}.spine .seg-toggle button:hover:not(.active){background:hsl(var(--surface-2));color:hsl(var(--text))}.spine .tl-wrap{max-width:860px;margin:0 auto;padding:4px 0 24px}.spine .tl-group{margin-bottom:20px}.spine .tl-date-head,.spine .tl-group-head{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:hsl(var(--text-muted));margin-bottom:10px;padding-left:2px}.spine .tl-group-dot{width:10px;height:10px;border-radius:50%}.spine .tl-group-count{font-size:10px;font-weight:800;color:hsl(var(--text-subtle));background:hsl(var(--surface-2));border-radius:10px;padding:1px 8px}.spine .tl-rail{position:relative}.spine .tl-item{position:relative;display:flex;gap:14px;padding-bottom:12px;cursor:pointer}.spine .tl-node{position:relative;width:16px;flex-shrink:0;display:flex;justify-content:center}.spine .tl-node:before{content:"";position:absolute;top:6px;bottom:-12px;left:50%;transform:translateX(-50%);width:2px;background:hsl(var(--border))}.spine .tl-item:last-child .tl-node:before{display:none}.spine .tl-dot{width:11px;height:11px;border-radius:50%;border:2px solid hsl(var(--surface));margin-top:5px;z-index:1}.spine .tl-card{flex:1;min-width:0;border:1px solid #ececf3;border-radius:11px;padding:11px 14px;background:hsl(var(--surface));transition:border-color .15s,box-shadow .15s}.spine .tl-item:hover .tl-card{border-color:hsl(var(--border));box-shadow:0 2px 8px rgba(60,70,160,.07)}.spine .tl-card-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.spine .tl-label{font-size:13px;font-weight:800;color:#2b2b36}.spine .tl-time{margin-left:auto;font-size:11px;color:hsl(var(--text-muted));font-weight:700;white-space:nowrap}.spine .tl-summary{font-size:12px;color:hsl(var(--text-muted));line-height:1.5;margin-bottom:7px}.spine .tl-metarow{display:flex;align-items:center;gap:10px}.spine .tl-tension{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#e0a23c}.spine .swim-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:14px}.spine .swim{display:grid;align-items:stretch;min-width:-moz-min-content;min-width:min-content;border-top:1px solid hsl(var(--border));border-left:1px solid hsl(var(--border));border-radius:12px 12px 0 0;background:hsl(var(--surface))}.spine .swim-corner{left:0;z-index:3;display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:12px 0 0 0}.spine .swim-corner,.spine .swim-timehead{position:sticky;top:0;font-size:11px;font-weight:800;color:hsl(var(--text-muted));background:hsl(var(--surface-2));border-bottom:1px solid hsl(var(--border))}.spine .swim-timehead{z-index:1;padding:9px 10px;text-align:center;white-space:nowrap;border-left:1px dashed hsl(var(--border))}.spine .swim-lane-label{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:12px;font-weight:800;color:#2b2b36;background:hsl(var(--surface));border-bottom:1px solid hsl(var(--border));border-left:3px solid transparent}.spine .swim-lane-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.spine .swim-lane-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine .swim-lane-count{margin-left:auto;flex-shrink:0;font-size:10px;font-weight:800;color:hsl(var(--text-subtle));background:hsl(var(--surface-2));border-radius:10px;padding:1px 7px}.spine .swim-cell{position:relative;display:flex;flex-direction:column;gap:6px;padding:8px;min-height:58px;border-bottom:1px solid hsl(var(--border));border-left:1px dashed hsl(var(--border))}.spine .swim-cell:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:hsl(var(--border));opacity:.45;z-index:0}.spine .swim-ev{position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;text-align:left;padding:7px 9px;cursor:pointer;background:hsl(var(--surface));border:1px solid #ececf3;border-left:3px solid #9a9aae;border-radius:9px;transition:border-color .15s,box-shadow .15s}.spine .swim-ev:hover{border-color:hsl(var(--border));box-shadow:0 2px 8px rgba(60,70,160,.1)}.spine .swim-ev-label{font-size:12px;font-weight:800;color:#2b2b36;line-height:1.3}.spine .swim-ev-sum{font-size:11px;color:hsl(var(--text-muted));line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.spine .swim-ev-meta{display:flex;margin-top:2px}.spine .axis-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:8px}.spine .axis-track{position:relative;display:flex;align-items:stretch;padding:10px 24px;min-height:372px}.spine .axis-line{position:absolute;left:24px;right:24px;top:50%;transform:translateY(-50%);height:2px;border-radius:2px;background:hsl(var(--border))}.spine .axis-col{position:relative;width:200px;flex-shrink:0}.spine .axis-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;border:2.5px solid hsl(var(--surface));z-index:3}.spine .axis-stem{position:absolute;left:50%;transform:translateX(-50%);width:2px;opacity:.55;z-index:1}.spine .axis-stem.up{bottom:50%;height:40px}.spine .axis-stem.down{top:50%;height:40px}.spine .axis-time{position:absolute;left:50%;transform:translateX(-50%);font-size:15px;font-weight:800;letter-spacing:.2px;white-space:nowrap;z-index:2}.spine .axis-time.up{bottom:calc(50% + 12px)}.spine .axis-time.down{top:calc(50% + 12px)}.spine .axis-card{position:absolute;left:50%;transform:translateX(-50%);width:178px;display:flex;flex-direction:column;gap:4px;text-align:left;padding:10px 12px;cursor:pointer;background:hsl(var(--surface));border:1px solid #ececf3;border-radius:12px;box-shadow:0 1px 3px rgba(60,70,160,.05);transition:border-color .15s,box-shadow .15s,transform .15s;z-index:2}.spine .axis-card.up{bottom:calc(50% + 44px)}.spine .axis-card.down{top:calc(50% + 44px)}.spine .axis-card:hover{border-color:hsl(var(--border));box-shadow:0 4px 14px rgba(60,70,160,.12)}.spine .axis-card-title{font-size:13px;font-weight:800;color:#2b2b36;line-height:1.3}.spine .axis-card-sum{font-size:11px;color:hsl(var(--text-muted));line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.spine .axis-card-meta{display:flex;margin-top:2px}.spine .axis-arcs{display:flex;flex-direction:column}.spine .axis-arc-group{border-top:1px solid hsl(var(--border))}.spine .axis-arc-group:first-child{border-top:none}.spine .axis-arc-head{display:flex;align-items:center;gap:8px;margin:10px 0 -6px 4px;padding:4px 0 4px 10px;border-left:3px solid transparent;font-size:13px;font-weight:800;color:#2b2b36}.spine .axis-arc-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.spine .axis-arc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine .axis-arc-count{font-size:10px;font-weight:800;color:hsl(var(--text-subtle));background:hsl(var(--surface-2));border-radius:10px;padding:1px 8px}.spine .axis-arc-group .axis-track{min-height:300px}.spine .axis-arc-group .axis-card-sum{-webkit-line-clamp:2;line-clamp:2}.spine .axis-empty{padding:26px;text-align:center;font-size:12px;color:hsl(var(--text-subtle))}.spine .arc-color-input{width:28px;height:28px;padding:0;border:1px solid hsl(var(--border));border-radius:7px;background:none;cursor:pointer;flex-shrink:0}.spine .arc-color-input::-webkit-color-swatch-wrapper{padding:2px}.spine .arc-color-input::-webkit-color-swatch{border:none;border-radius:5px}.spine .time-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));color:hsl(var(--text-muted))}.spine .ava-stack{display:flex;align-items:center}.spine .ava-stack img{width:22px;height:22px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:1.5px solid white;margin-left:-6px}.spine .ava-stack img:first-child{margin-left:0}.spine .ava-more{font-size:11px;color:hsl(var(--text-muted));margin-left:4px;font-weight:700}.spine .nb-overlay{position:fixed;inset:0;z-index:60;background:rgba(15,15,20,.45);display:flex;align-items:flex-start;justify-content:center;padding:48px 24px}@media (min-width:768px){.spine .nb-overlay.md\:hidden{display:none!important}}@media (max-width:767px){.spine .nb-overlay{align-items:flex-end;padding:0;overflow:hidden}}.spine .nb-card{width:100%;max-width:880px;max-height:calc(100vh - 96px);overflow-y:auto;background:hsl(var(--surface));border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.28);display:flex;flex-direction:column}@media (max-width:767px){.spine .nb-card{width:100%;max-width:100%;height:95dvh;max-height:95dvh;overflow:hidden;border-radius:16px 16px 0 0}}.spine .nb-card-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:12px 16px;border-bottom:1px solid hsl(var(--border));flex-shrink:0}.spine .nb-head-title-input{flex:1;min-width:0;font-size:15px;font-weight:800;color:hsl(var(--text));border:none;background:transparent;padding:4px 2px}.spine .nb-head-title-input:focus{outline:none;border-bottom:1.5px solid hsl(var(--accent))}.spine .nb-head-title-input::-moz-placeholder{color:hsl(var(--text-muted));font-weight:500}.spine .nb-head-title-input::placeholder{color:hsl(var(--text-muted));font-weight:500}.spine .nb-body{padding:8px 64px 56px;overflow-y:auto;flex:1}@media (max-width:767px){.spine .nb-body{padding:8px 20px 40px}.spine .nb-title-input{font-size:24px}.spine .prop-row{grid-template-columns:90px 1fr}}.spine .nb-title-input{width:100%;border:none;outline:none;background:transparent;font-size:34px;font-weight:900;color:hsl(var(--text));padding:8px 0 14px;line-height:1.2}.spine .nb-title-input::-moz-placeholder{color:hsl(var(--border))}.spine .nb-title-input::placeholder{color:hsl(var(--border))}.spine .prop-row{grid-template-columns:160px 1fr;align-items:center;min-height:36px}.spine .prop-label{color:hsl(var(--text-muted));font-weight:600}.spine .prop-label i{font-size:12px;color:hsl(var(--text-subtle))}.spine .prop-value{font-size:13px;color:hsl(var(--text))}.spine .nb-divider{height:1px;background:#eee;margin:14px 0}.spine .kanban-wrap{display:flex;gap:14px;align-items:flex-start;height:100%;overflow-x:auto;overflow-y:hidden;padding:16px;background:hsl(var(--surface-2))}.spine .kanban-col{width:280px;flex-shrink:0;display:flex;flex-direction:column;max-height:100%}.spine .kanban-act-head{background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:12px;padding:14px;margin-bottom:10px}.spine .kanban-act-title{font-size:14px;font-weight:900;color:#2e2e2e;margin-bottom:6px}.spine .kanban-act-desc{font-size:11px;color:hsl(var(--text-muted));line-height:1.6}.spine .kanban-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-bottom:8px}.spine .kanban-list.drag-over{border:1px dashed hsl(var(--border));border-radius:12px;background:#f6f7ff;padding:6px}.spine .scene-card{background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:12px;padding:13px;transition:border-color .15s;cursor:default}.spine .scene-card:hover{border-color:hsl(var(--border))}.spine .kanban-list .scene-card.dragging{opacity:.72;border-color:hsl(var(--accent));box-shadow:0 10px 24px hsl(var(--text)/.1)}.spine .kanban-list .scene-card.drag-over{border-color:#7c89d6;border-style:dashed;background:#f5f7ff}.spine .scene-card-title{font-size:13px;font-weight:800;color:#37352f;margin-bottom:6px}.spine .scene-card-desc{font-size:11px;color:hsl(var(--text-muted));line-height:1.55;margin-bottom:10px}.spine .scene-meta-label{font-size:10px;font-weight:800;letter-spacing:.06em;color:hsl(var(--text-muted));margin:8px 0 5px}.spine .scene-doc-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:7px;background:hsl(var(--surface-2));border:1px solid #d7dcf7;font-size:11px;color:#4e5faf;text-decoration:none}.spine .scene-doc-chip:hover{border-color:#aeb8ee;color:#36448b}.spine .scene-char-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 3px;border-radius:20px;background:hsl(var(--surface-2));border:1px solid hsl(var(--border));font-size:11px;color:hsl(var(--text-muted))}.spine .scene-char-chip img{width:18px;height:18px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spine .scene-tag-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:7px;font-size:11px;font-weight:700;background:hsl(var(--surface-2));border:1px solid hsl(var(--border));color:hsl(var(--text-muted))}.spine .kanban-add{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;border:1px dashed #c8c8d8;background:hsl(var(--surface));color:#8b8b9e;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;width:100%}.spine .kanban-add:hover{border-color:hsl(var(--accent));color:hsl(var(--accent));background:#f6f7ff}.spine .ep-card{border:1px solid hsl(var(--border));border-radius:14px;background:hsl(var(--surface));padding:12px;display:flex;flex-direction:column;gap:10px}.spine .ep-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media (max-width:767px){.spine .ep-card-head{gap:6px}.spine .ep-title-input{order:-1;width:100%;flex-basis:100%}.spine .ep-card-meta{flex-wrap:wrap;gap:6px}.spine .ep-total-chip{margin-left:0}}.spine .ep-no-chip{flex-shrink:0;font-size:11px;font-weight:800;color:#fff;background:hsl(var(--accent));border-radius:8px;padding:4px 9px}.spine .ep-title-input{flex:1;min-width:0;font-size:13px;font-weight:800;color:#2b2b36;border:none;background:transparent;padding:4px 2px}.spine .ep-title-input:focus{outline:none;border-bottom:1.5px solid hsl(var(--accent))}.spine .ep-card-meta{display:flex;align-items:center;gap:8px}.spine .ep-total-chip{margin-left:auto;font-size:11px;font-weight:700;color:hsl(var(--text-muted))}.spine .ep-empty{font-size:12px;color:hsl(var(--text-muted));text-align:center;padding:14px;border:1px dashed hsl(var(--border));border-radius:10px}.spine .ep-tree{gap:8px;padding-left:4px;border-left:2px solid #ececf3;margin-left:4px}.spine .ep-act,.spine .ep-tree{display:flex;flex-direction:column}.spine .ep-act{gap:4px}.spine .ep-act-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:hsl(var(--accent));padding:2px 0 2px 8px}.spine .ep-act-sub{font-weight:600;color:hsl(var(--text-muted))}.spine .ep-scene{display:flex;align-items:center;gap:8px;margin-left:18px;padding:6px 8px;border-radius:8px;background:hsl(var(--surface-2));cursor:pointer;transition:background .12s}.spine .ep-scene:hover{background:#eef0fb}.spine .ep-scene-no{flex-shrink:0;font-size:11px;font-weight:800;color:hsl(var(--accent));font-style:italic;min-width:30px}.spine .ep-scene-desc{flex:1;min-width:0;font-size:12px;color:#3a3a48;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine .ep-scene-tag{flex-shrink:0;font-size:10px;font-weight:700;color:hsl(var(--text-muted));background:#e7e7f0;border-radius:6px;padding:2px 7px}.spine .ep-scene-del{flex-shrink:0;width:20px;height:20px;border-radius:6px;color:hsl(var(--text-subtle));display:inline-flex;align-items:center;justify-content:center}.spine .ep-scene-del:hover{background:#fbe9e9;color:#e05656}.spine .ep-assign{width:auto;align-self:flex-start;font-size:12px}.spine .ep-card.drop-over{border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--text)/.08);background:#f6f7ff}.spine .ep-scene .serial-grip{color:#c6c6cc;font-size:10px;cursor:grab;flex-shrink:0}.spine .ep-scene.dragging{opacity:.45}.spine .serial-tree-panel{max-height:450px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px}.spine .serial-tree-act{display:flex;flex-direction:column;gap:4px}.spine .serial-tree-act-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:hsl(var(--accent))}.spine .serial-tree-act-sub{font-weight:600;color:hsl(var(--text-muted))}.spine .serial-tree-act-count{margin-left:auto;font-size:10px;font-weight:700;color:hsl(var(--text-muted))}.spine .serial-tree-empty{font-size:11px;color:hsl(var(--text-subtle));margin-left:18px;padding:2px 0}.spine .serial-scene{display:flex;align-items:center;gap:7px;margin-left:14px;padding:6px 8px;border-radius:8px;border:1px solid #e8e8f0;background:hsl(var(--surface));cursor:grab;transition:border-color .12s,box-shadow .12s}.spine .serial-scene:hover{border-color:#c4c9ec;box-shadow:0 1px 4px rgba(60,70,160,.08)}.spine .serial-scene.dragging{opacity:.45;cursor:grabbing}.spine .serial-scene .serial-grip{color:#c6c6cc;font-size:10px;flex-shrink:0}.spine .serial-scene-no{flex-shrink:0;font-size:11px;font-weight:800;color:hsl(var(--accent));font-style:italic;min-width:28px}.spine .serial-scene-title{flex:1;min-width:0;font-size:12px;color:#3a3a48;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spine .serial-scene-badge{flex-shrink:0;font-size:10px;font-weight:700;color:hsl(var(--text-subtle));background:hsl(var(--surface-2));border-radius:6px;padding:2px 7px}.spine .serial-scene-badge.assigned{color:#fff;background:hsl(var(--accent))}.spine .serial-unassigned{border-radius:12px;border:1px solid var(--surface-border,hsl(var(--border)));background:rgba(247,247,251,.5);padding:12px;transition:border-color .12s,box-shadow .12s,background .12s}.spine .serial-unassigned.drop-over{border-color:hsl(var(--accent));border-style:dashed;box-shadow:0 0 0 3px hsl(var(--text)/.07);background:#f6f7ff}.spine .plot-graph-white,.spine .plot-graph-white .react-flow__background{background:hsl(var(--surface))}.spine .plot-graph-white .react-flow__controls button{background:#1f1f2a;border-bottom:1px solid #2a2a36;color:hsl(var(--text-subtle));fill:hsl(var(--text-subtle))}.spine .plot-graph-white .react-flow__minimap{background:#1c1c24}.spine .plot-graph-white .react-flow__attribution{background:transparent;color:#44444f}.spine .react-flow .react-flow__edges{z-index:1}.spine .graph-group-label{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:800;white-space:nowrap}.spine .nb-input{width:100%;border:1px solid transparent;border-radius:6px;background:transparent;padding:5px 8px;font-size:13.5px;color:#37352f;outline:none;transition:background .12s,border-color .12s;font-family:Nanum Square,sans-serif}.spine .nb-input:hover{background:#f3f3f1}.spine .nb-input:focus{background:hsl(var(--surface));border-color:hsl(var(--border));box-shadow:0 0 0 2px hsl(var(--text)/.07)}.spine select.nb-input{cursor:pointer}.spine textarea.nb-input{resize:vertical;line-height:1.7}.spine .prop-row{display:grid;grid-template-columns:168px 1fr;align-items:start;padding:2px 0;min-height:34px}.spine .prop-row+.prop-row{margin-top:1px}.spine .prop-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#9b9a97;font-weight:500;padding:7px 8px;border-radius:6px;cursor:default}.spine .prop-label i{font-size:13px;color:#b5b3ae;width:16px;text-align:center}.spine .prop-value{font-size:13.5px;display:flex;flex-wrap:wrap;min-height:34px}.spine .nb-chip,.spine .prop-value{color:#37352f;align-items:center;gap:6px}.spine .nb-chip{display:inline-flex;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;background:#f1f1ef;border:1px solid #ececea}.spine .nb-chip.removable{padding-right:5px}.spine .nb-chip button{color:#9b9a97;display:inline-flex}.spine .nb-chip button:hover{color:#37352f}.spine .nb-add-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:6px;font-size:12px;font-weight:600;color:#9b9a97;background:transparent;border:1px dashed #ddd;cursor:pointer}.spine .nb-add-chip:hover{color:hsl(var(--accent));border-color:hsl(var(--border));background:#f7f8ff}.spine .nb-block-area{margin-top:6px}.spine .nb-block-area .note-prose{min-height:160px}.spine .side-peek{max-width:460px;width:100%;flex-shrink:0;border-left:1px solid #ececea;background:hsl(var(--surface));display:flex;flex-direction:column;overflow:hidden;box-shadow:-8px 0 24px rgba(0,0,0,.06)}.spine .side-peek-head{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:10px 14px;border-bottom:1px solid #f2f2f0;flex-shrink:0}.spine .side-peek-body{flex:1;overflow-y:auto;padding:8px 28px 48px}@media (max-width:767px){.spine .side-peek-body{padding:8px 18px 40px}}.spine .change-card{border:1px solid #ececea;border-radius:10px;padding:10px 12px;background:#fbfbfa}.spine .change-card+.change-card{margin-top:8px}.spine .change-card-head{display:flex;align-items:center;gap:7px;margin-bottom:9px}.spine .change-card-head img{width:22px;height:22px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spine .change-card-name{font-size:12.5px;font-weight:800;color:#37352f}.spine .change-type-chip{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:20px;background:#eef0fb;color:hsl(var(--accent))}.spine .change-flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:8px}.spine .change-state{border:1px solid #e8e8e4;border-radius:8px;padding:7px 9px;background:hsl(var(--surface))}.spine .change-state-label{font-size:9px;font-weight:900;letter-spacing:.08em;color:#b0afab;margin-bottom:3px}.spine .change-state-label.after{color:hsl(var(--accent))}.spine .change-arrow{display:flex;align-items:center;color:hsl(var(--border));font-size:14px}.spine .change-mini-input{width:100%;border:none;outline:none;background:transparent;font-size:12.5px;color:#37352f;resize:none;line-height:1.5}.spine .scene-card{cursor:pointer}.spine .scene-card-titleinput{color:#37352f;font-size:13px;font-weight:800}.spine .kanban-act-title-input,.spine .scene-card-titleinput{width:100%;border:none;outline:none;background:transparent;font-family:Nanum Square,sans-serif}.spine .kanban-act-title-input{color:#2e2e2e;font-size:14px;font-weight:900}.spine .kanban-act-sub-input{width:100%;border:none;outline:none;background:transparent;color:hsl(var(--text-muted));font-size:11px;margin-top:4px;font-family:Nanum Square,sans-serif;line-height:1.5}.spine .kanban-col-menu{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;color:#8f8fa0;cursor:pointer}.spine .kanban-col-menu:hover{background:hsl(var(--surface-2));color:hsl(var(--accent))}.spine .scene-card-del{color:hsl(var(--text-muted));cursor:pointer}.spine .scene-card-del:hover{color:#e58a8a}.spine .graph-topbar{position:absolute;top:10px;left:10px;z-index:10;align-items:center;flex-wrap:wrap;gap:6px;background:hsl(var(--surface));box-shadow:0 0 0 2px hsl(var(--accent)/.12);border-radius:10px;padding:6px 8px;backdrop-filter:blur(8px)}.spine .pg-tb-divider{width:1px;align-self:stretch;background:hsl(var(--border));margin:0 2px}.spine .pg-tb-presets{display:flex;gap:3px}.spine .pg-tb-preset{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));border-radius:6px;padding:4px 9px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.spine .pg-tb-preset.active{background:#eef0fb;color:hsl(var(--text));border:unset}.spine .pg-tb-toggle{display:inline-flex;align-items:center;gap:4px;background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));border-radius:6px;padding:4px 9px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.spine .pg-tb-toggle.active{background:#eef0fb;color:hsl(var(--text));border:unset}.spine .pg-tb-select{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));border-radius:6px;font-size:11px;padding:4px 6px;outline:none;font-family:Nanum Square,sans-serif;font-weight:700;max-width:130px}.spine .pg-tb-sections{position:relative}.spine .pg-tb-sections-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:20;width:240px;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 24px rgba(0,0,0,.4)}.spine .pg-tb-section-row{display:flex;align-items:center;gap:6px}.spine .pg-tb-section-color{width:18px;height:18px;border:none;background:none;padding:0;cursor:pointer;flex-shrink:0}.spine .pg-tb-section-label{flex:1;min-width:0;background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));border-radius:6px;font-size:11px;padding:3px 6px}.spine .pg-tb-section-add{background:hsl(var(--accent));color:#fff;border:none;border-radius:6px;padding:5px;font-size:11px;font-weight:800;cursor:pointer}.spine .pg-tb-section-add:hover{opacity:.9}.spine .pg-palette-item[draggable=true]{cursor:grab}.spine .pg-palette-item.dragging{opacity:.5}.spine .plot-graph-dark.pg-drop-active:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;border:2px dashed hsl(var(--accent));border-radius:8px;background:rgba(47,111,237,.06)}.spine .pg-node{width:248px;border-radius:12px;padding:10px 12px;font-size:12px;box-shadow:0 4px 16px rgba(0,0,0,.15)}.spine .react-flow__node.selected{outline:none!important}.spine .react-flow__node.selected .pg-node{box-shadow:0 0 0 2px hsl(var(--accent)),0 0 0 5px hsl(var(--text)/.1),0 4px 16px rgba(0,0,0,.15)}.spine .pg-handle{width:8px!important;height:8px!important;background:#6b8aff!important;border:2px solid #1c1c24!important}.spine .pg-node-char{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text))}.spine .pg-char-head{display:flex;gap:8px;align-items:center}.spine .pg-char-avatar{width:36px;height:36px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.spine .pg-char-name{font-weight:800;font-size:13px}.spine .pg-char-role{font-size:10px;color:hsl(var(--text-muted))}.spine .pg-char-tagline{margin-top:6px;font-size:11px;color:hsl(var(--text-muted));line-height:1.35}.spine .pg-char-foot{margin-top:8px;font-size:10px;color:hsl(var(--text-muted))}.spine .pg-node-event{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text))}.spine .pg-event-head{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.spine .pg-event-time{font-size:10px;color:#8a98c8;font-weight:700}.spine .pg-event-arc{font-weight:800;border:1px solid}.spine .pg-event-arc,.spine .pg-event-status{font-size:9px;border-radius:4px;padding:1px 5px}.spine .pg-event-status{color:hsl(var(--text-muted));background:hsl(var(--surface));border:1px solid hsl(var(--border))}.spine .pg-event-label{font-weight:800;line-height:1.3}.spine .pg-event-summary{margin-top:4px;font-size:11px;color:#9aa6c8;line-height:1.35}.spine .pg-event-avatars{display:flex;margin-top:6px}.spine .pg-event-ava{width:20px;height:20px;border-radius:50%;border:2px solid #1a1f33;margin-left:-4px;-o-object-fit:cover;object-fit:cover}.spine .pg-event-ava:first-child{margin-left:0}.spine .pg-node-change{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text))}.spine .pg-change-head{font-weight:800;margin-bottom:6px}.spine .pg-change-states{display:flex;align-items:center;gap:6px;font-size:11px;flex-wrap:wrap}.spine .pg-change-before{color:hsl(var(--text))}.spine .pg-change-after{color:hsl(var(--text));font-weight:700}.spine .pg-node-scene{background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));width:200px}.spine .pg-scene-no{font-size:10px;font-weight:800;color:hsl(var(--text-muted))}.spine .pg-scene-title{font-weight:700;margin-top:2px}.spine .pg-scene-summary{margin-top:4px;font-size:10px;color:hsl(var(--text-muted))}.spine .pg-edge-label{font-size:10px;font-weight:700;background:hsl(var(--surface));border:1px solid;border-radius:6px;padding:2px 6px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;transition:box-shadow .15s ease}.spine .pg-edge-label:hover{box-shadow:0 2px 8px rgba(0,0,0,.25)}.spine .pg-edge-label--dragging{box-shadow:0 4px 16px rgba(0,0,0,.35);opacity:.9}.spine .pg-edge-label-reset-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.45;margin-left:4px;vertical-align:middle;position:relative;top:-1px}.spine .pg-diag-panel{margin:10px}.spine .pg-diag-toggle{display:flex;width:90px;position:absolute;right:10px;top:10px;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));font-size:11px;font-weight:800;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3)}.spine .pg-diag-toggle.has-issues{border-color:#3a3050}.spine .pg-diag-toggle:hover{border-color:#3a4470}.spine .pg-diag-clean{color:#5ca77b}.spine .pg-diag-counts{display:flex;align-items:center;gap:8px}.spine .pg-diag-count{display:inline-flex;align-items:center;gap:4px}.spine .pg-diag-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.spine .pg-diag-dot-muted{width:8px;height:8px;background:hsl(var(--text-muted))}.spine .pg-diag-body{margin-top:40px;width:320px;max-height:380px;overflow-y:auto;background:hsl(var(--surface));border:1px solid hsl(var(--border));color:hsl(var(--text));border-radius:12px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.4)}.spine .pg-diag-empty{padding:14px;text-align:center;font-size:12px;color:hsl(var(--text-muted));display:flex;gap:6px;justify-content:center;align-items:center}.spine .pg-diag-list{display:flex;flex-direction:column;gap:2px}.spine .pg-diag-item{width:100%;display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px;background:transparent;border:none;color:hsl(var(--text));font-size:12px;line-height:1.45;text-align:left;cursor:pointer}.spine .pg-diag-item:hover{background:hsl(var(--surface-2))}.spine .pg-diag-msg{flex:1;min-width:0}.spine .pg-diag-jump{color:#6b8aff;opacity:0;align-self:center}.spine .pg-diag-item:hover .pg-diag-jump{opacity:1}.spine .pg-diag-marktoggle{display:flex;align-items:center;gap:6px;padding:4px 8px 8px;font-size:11px;color:hsl(var(--text));border-bottom:1px solid hsl(var(--border));margin-bottom:4px;cursor:pointer}.spine .pg-diag-marktoggle input{accent-color:#6b8aff}.spine .pg-node-diag{position:absolute;top:-5px;right:-5px;width:12px;height:12px;border-radius:50%;border:2px solid #14141a;box-shadow:0 0 0 1px rgba(0,0,0,.4);z-index:6;pointer-events:none}.spine .pg-edge-handle{width:15px;height:15px;border-radius:50%;background:#1c1c24;border:2.5px solid;cursor:grab;opacity:1;box-shadow:0 0 0 3px rgba(0,0,0,.35);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:background .12s ease,box-shadow .12s ease,transform .08s ease}.spine .pg-edge-handle:hover{background:hsl(var(--surface));box-shadow:0 0 0 5px rgba(255,255,255,.2)}.spine .pg-edge-handle:active{cursor:grabbing;background:hsl(var(--surface))}.spine .pg-wp-handle{width:12px;height:12px;border-radius:50%;background:#1c1c24;border:2px solid;cursor:grab;box-shadow:0 0 0 3px rgba(0,0,0,.4);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:background .1s ease,transform .08s ease}.spine .pg-wp-handle:hover{background:hsl(var(--surface));transform:scale(1.3)}.spine .pg-wp-handle:active{cursor:grabbing;background:hsl(var(--surface))}.spine .pg-wp-handle--selected{transform:scale(1.3);box-shadow:0 0 0 3px rgba(0,0,0,.4),0 0 0 5px rgba(255,255,255,.25)}.spine .pg-seg-handle{width:10px;height:10px;border-radius:3px;background:rgba(28,28,36,.7);border:1.5px solid;opacity:.55;box-shadow:0 0 0 2px rgba(0,0,0,.3);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:opacity .1s ease,transform .08s ease,background .1s ease}.spine .pg-seg-handle:hover{opacity:1;transform:scale(1.3);background:hsl(var(--surface))}.spine .pg-seg-handle.draggable:hover{opacity:1}.spine .pg-seg-handle:active{background:hsl(var(--surface));opacity:1}.spine .pg-ep-handle{width:12px;height:12px;border-radius:50%;background:hsl(var(--accent));border:2px solid hsl(var(--surface));cursor:grab;touch-action:none;transition:transform .1s,box-shadow .1s;box-shadow:0 0 0 3px hsl(var(--text)/.15)}.spine .pg-ep-handle--target{background:#e6925a;box-shadow:0 0 0 3px rgba(230,146,90,.35)}.spine .pg-ep-handle:hover{transform:scale(1.4);box-shadow:0 0 0 5px hsl(var(--text)/.18)}.spine .pg-ep-handle--target:hover{box-shadow:0 0 0 5px rgba(230,146,90,.4)}.spine .pg-ep-handle:active{cursor:grabbing;transform:scale(1.2)}.spine .pg-ep-snap-preview{width:10px;height:10px;border-radius:50%;background:hsl(var(--text)/.12);border:2px dashed hsl(var(--accent));animation:ep-snap-pulse .55s ease-in-out infinite alternate}.spine .pg-ep-snap-preview--target{background:rgba(230,146,90,.25);border-color:#e6925a;animation-name:ep-snap-pulse-target}@keyframes ep-snap-pulse{0%{box-shadow:0 0 0 0 hsl(var(--text)/.22)}to{box-shadow:0 0 0 6px hsl(var(--text)/0)}}@keyframes ep-snap-pulse-target{0%{box-shadow:0 0 0 0 rgba(230,146,90,.5)}to{box-shadow:0 0 0 6px rgba(230,146,90,0)}}.spine .pg-selection-bbox{border:1.5px dashed hsl(var(--text)/.25);border-radius:10px;background:hsl(var(--text)/.03);pointer-events:none}.spine .pg-draw-overlay{position:absolute;inset:0;z-index:100;cursor:crosshair;background:transparent}.spine .pg-draw-preview{position:absolute;border:2px dashed hsl(var(--accent));background:hsl(var(--text)/.06);border-radius:8px;pointer-events:none}.spine .pg-edge-custom-chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;border-radius:5px;border:1.5px solid;padding:1px 6px;cursor:default}.spine .pg-edge-chip-x{background:none;border:none;cursor:pointer;padding:0;font-size:12px;line-height:1;opacity:.6}.spine .pg-edge-chip-x:hover{opacity:1}.spine .pg-edge-label-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.spine .pg-edge-label-add-btn{font-size:10px;padding:1px 7px;border-radius:5px;border:1px dashed #3a3a50;background:transparent;color:hsl(var(--text-muted));cursor:pointer}.spine .pg-edge-label-add-btn:hover{border-color:hsl(var(--accent));color:hsl(var(--accent))}.spine .pg-edge-label-form{display:flex;align-items:center;gap:4px}.spine .pg-tb-section-actions{display:flex;gap:4px;margin-top:4px}.spine .pg-tb-section-add.active{background:#e05656}.spine .pg-rel-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:hsl(var(--surface-2));border-radius:8px;border-left:3px solid;margin-bottom:6px}.spine .pg-relation-modal{max-width:400px}.spine .pg-relation-checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:hsl(var(--accent));cursor:pointer}.spine .pg-palette{width:240px;flex-shrink:0;background:hsl(var(--surface));display:flex;flex-direction:column;overflow:hidden}.spine .pg-palette-head{padding:12px 12px 4px;display:flex;justify-content:space-between;align-items:baseline}.spine .pg-palette-hint{padding:0 12px 10px;font-size:10px;line-height:1.4;color:hsl(var(--text-muted))}.spine .pg-palette-tabs{display:flex;gap:2px;padding:0 8px 8px}.spine .pg-palette-tab{flex:1;background:transparent;border:none;color:hsl(var(--text-muted));font-size:10px;font-weight:700;padding:6px 4px;border-radius:6px;cursor:pointer}.spine .pg-palette-tab.active{background:#eef0fb;color:hsl(var(--text))}.spine .pg-palette-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.spine .pg-palette-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border-radius:8px;background:hsl(var(--surface));border:1px solid hsl(var(--border));cursor:pointer;transition:border-color .15s}.spine .pg-palette-item:hover{border-color:#6b8aff}.spine .pg-palette-ava{width:28px;height:28px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.spine .pg-palette-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.spine .pg-palette-create{width:100%;padding:8px;border-radius:8px;border:1px dashed hsl(var(--border));background:transparent;color:#8ab4ff;font-size:11px;font-weight:700;cursor:pointer;margin-bottom:4px}.spine .pg-palette-empty{font-size:11px;color:hsl(var(--text-muted));padding:12px 8px;line-height:1.5}.spine .pg-empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;z-index:5}.spine .pg-role-region{width:100%;height:100%;border-radius:16px;border:1px solid;opacity:.9}.spine .pg-role-region-label{position:absolute;top:8px;left:12px;font-size:10px;font-weight:700;padding:3px 10px;border-radius:6px;pointer-events:none}.spine .react-flow__node-section .pg-role-region-label{pointer-events:all;cursor:text;-webkit-user-select:none;-moz-user-select:none;user-select:none}.spine .react-flow__node-section .pg-role-region-label:hover{background:rgba(0,0,0,.08)}.spine .edge-editor{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:10;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:12px;padding:10px 14px;min-width:290px;max-width:380px;box-shadow:0 8px 32px rgba(0,0,0,.55);color:hsl(var(--text-subtle));font-size:12px}.spine .pg-wp-add-btn{width:20px;height:20px;border-radius:50%;background:#1c1c24;border:1.5px solid hsl(var(--accent));color:#9aa6e8;font-size:14px;font-weight:900;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,transform .08s;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.spine .pg-wp-add-btn:hover{background:#2a2a36;transform:scale(1.25)}.spine .pg-handle-dir-btn{width:22px;height:22px;border-radius:4px;border:1px solid #2a2a36;background:#131318;color:hsl(var(--text-muted));font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s}.spine .pg-handle-dir-btn:hover{border-color:hsl(var(--accent));color:#9aa6e8;background:#1c1c24}.spine .pg-handle-dir-btn.active{border-color:hsl(var(--accent));background:#1a1a30;color:#9aa6e8}.spine .confirm-overlay{position:fixed;inset:0;z-index:70;background:rgba(15,15,20,.4);display:flex;align-items:center;justify-content:center;padding:16px}.spine .confirm-card{width:100%;max-width:360px;background:hsl(var(--surface));border-radius:14px;border:1px solid #ececea;box-shadow:0 20px 50px rgba(0,0,0,.25);padding:18px}.char-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:99px;background:hsl(var(--border));color:hsl(var(--accent));font-size:11px;font-weight:600;border:1px solid #e0e4f8}.char-tag.editable button{background:none;border:none;padding:0 0 0 2px;cursor:pointer;color:#9096c8;font-size:12px;line-height:1}.char-tag.editable button:hover{color:#ef4444}.char-role-filter-btn{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:8px;border:none;background:transparent;font-size:12px;color:hsl(var(--text-muted));cursor:pointer;transition:background .1s;width:100%}.char-role-filter-btn:hover{background:hsl(var(--border))}.char-role-filter-btn.active{background:hsl(var(--surface-2));color:hsl(var(--accent));font-weight:700}.char-role-count{margin-left:auto;font-size:10px;font-weight:700;color:#9096c8;background:hsl(var(--border));border-radius:99px;padding:1px 5px}.char-modal{width:min(920px,96vw);height:min(86vh,840px);background:hsl(var(--surface));border-radius:16px;border:1px solid hsl(var(--border));box-shadow:0 24px 80px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden}@media (max-width:767px){.char-modal{width:100vw;height:95dvh;border-radius:16px 16px 0 0;align-self:flex-end}.char-modal-header{padding:14px 16px 12px;gap:10px}.char-page-name-input{max-width:180px;font-size:15px}.char-modal-info-left{padding:12px 16px}.char-tab{padding:8px;font-size:11px}.char-tab-bar{overflow-x:auto;scrollbar-width:none}.char-tab-bar::-webkit-scrollbar{display:none}}.char-modal-header{display:flex;align-items:flex-start;gap:14px;padding:20px 20px 16px;border-bottom:1px solid hsl(var(--border));flex-shrink:0}.char-modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.char-modal-info-split{flex:1;display:flex;overflow:hidden;min-height:0}.char-modal-info-left{width:256px;flex-shrink:0;overflow-y:auto;padding:16px 20px;border-right:1px solid #f0f0f8}@media (max-width:640px){.char-modal-info-split{flex-direction:column;overflow-y:auto}.char-modal-info-left{width:100%;border-right:none;border-bottom:1px solid #f0f0f8;overflow-y:visible}}.char-modal-info-grid{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}@media (max-width:767px){.char-modal-info-grid{grid-template-columns:1fr}}.char-modal-rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;padding-top:8px}.char-modal-event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;padding-top:8px}.char-detail-panel{width:380px;flex-shrink:0;border-left:1px solid hsl(var(--border));background:hsl(var(--surface));display:flex;flex-direction:column;overflow:hidden}.char-page-header{display:flex;align-items:flex-start;gap:14px;padding:18px 18px 14px;border-bottom:1px solid hsl(var(--border));flex-shrink:0}.char-page-avatar{width:88px;height:88px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex-shrink:0}.char-page-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.char-page-name-input{font-size:16px;font-weight:900;color:hsl(var(--text));border:none;outline:none;background:transparent;font-family:inherit;min-width:0;max-width:160px}.char-page-name-input:focus{border-bottom:1.5px solid hsl(var(--accent))}.char-page-subtitle{font-size:11px;color:hsl(var(--text-muted));margin-top:5px;line-height:1.5}.char-tab-bar{display:flex;align-items:center;border-bottom:1px solid hsl(var(--border));padding:0 6px;flex-shrink:0;gap:2px}.char-tab{display:inline-flex;align-items:center;gap:4px;padding:9px 10px;font-size:12px;font-weight:700;color:hsl(var(--text-muted));cursor:pointer;background:transparent;border:none;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap;margin-bottom:-1px}.char-tab:hover{color:hsl(var(--text))}.char-tab.active{color:hsl(var(--accent));border-bottom-color:hsl(var(--accent))}.char-tab-count{font-size:10px;font-weight:900;background:hsl(var(--surface-2));color:hsl(var(--accent));border-radius:99px;padding:1px 5px}.char-panel-content{flex:1;overflow-y:auto;padding:12px 14px 16px}.cprop-section-head{font-size:10px;font-weight:900;color:hsl(var(--text-subtle));text-transform:uppercase;letter-spacing:.08em;padding:10px 8px 4px}.cprop-divider{height:1px;background:hsl(var(--border));margin:10px 0 4px}.cprop-row{display:flex;align-items:center;min-height:32px;border-radius:6px;transition:background .1s}.cprop-row:hover{background:hsl(var(--surface-2))}.cprop-label{display:flex;align-items:center;gap:6px;width:84px;flex-shrink:0;font-size:12px;color:hsl(var(--text-muted));font-weight:600;padding:0 8px;white-space:nowrap}.cprop-label i{font-size:11px;color:hsl(var(--text-subtle));width:13px;text-align:center;flex-shrink:0}.cprop-val{flex:1;display:flex;align-items:center;flex-wrap:wrap;padding:4px 6px}.cprop-input,.cprop-val{font-size:13px;color:hsl(var(--text));min-width:0}.cprop-input{border:none;outline:none;background:transparent;font-family:inherit;width:100%}.cprop-input::-moz-placeholder{color:hsl(var(--text-subtle))}.cprop-input::placeholder{color:hsl(var(--text-subtle))}.cprop-select{border:none;outline:none;background:transparent;font-size:13px;color:hsl(var(--text));font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpolyline points='1,1 5,6 9,1' fill='none' stroke='%239a9a9a' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0 center}.char-memo-block{border-left:3px solid hsl(var(--border));padding:8px 12px;background:hsl(var(--surface-2));border-radius:0 8px 8px 0;margin:6px 0}.char-memo-textarea{width:100%;border:none;outline:none;background:transparent;font-size:12px;color:#6b6b8a;font-family:inherit;resize:none;line-height:1.75;font-style:italic}.char-memo-textarea::-moz-placeholder{color:hsl(var(--text-subtle));font-style:italic}.char-memo-textarea::placeholder{color:hsl(var(--text-subtle));font-style:italic}.char-rel-item{align-items:center}.char-event-item,.char-rel-item{display:flex;gap:10px;padding:8px 10px;border-radius:10px;background:#fafafe;border:1px solid #eeeef8}.char-event-item{align-items:flex-start}.char-event-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}.char-tab-empty{display:flex;flex-direction:column;justify-content:center;padding:40px 20px;color:hsl(var(--text-subtle));text-align:center}.char-tab-empty,.nrs-trigger{align-items:center;font-size:12px}.nrs-trigger{display:inline-flex;gap:4px;padding:3px 8px 3px 10px;border-radius:6px;font-weight:700;cursor:pointer;transition:filter .12s;white-space:nowrap}.nrs-trigger:hover{filter:brightness(.95)}.nrs-popup{position:fixed;width:220px;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.14);z-index:9999;overflow:hidden}.nrs-search{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid hsl(var(--border))}.nrs-search-input{flex:1;border:none;outline:none;font-size:12px;color:#3a3a5c;background:transparent;font-family:inherit}.nrs-search-input::-moz-placeholder{color:hsl(var(--text-subtle))}.nrs-search-input::placeholder{color:hsl(var(--text-subtle))}.nrs-options{max-height:220px;overflow-y:auto;padding:4px}.nrs-option{display:flex;align-items:center;width:100%;padding:5px 8px;border-radius:6px;cursor:pointer;transition:background .1s;gap:6px}.nrs-option:hover{background:hsl(var(--surface-2))}.nrs-option.selected{background:hsl(var(--border))}.nrs-pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:5px;font-size:11px;font-weight:700}.nrs-empty{padding:10px;text-align:center;font-size:11px;color:hsl(var(--text-subtle))}.nrs-create-area{border-top:1px solid hsl(var(--border));padding:4px}.nrs-create-btn{display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;border-radius:6px;font-size:11px;color:hsl(var(--accent));cursor:pointer;transition:background .1s}.nrs-create-btn:hover{background:hsl(var(--border))}.nrs-create-preview{margin-left:auto;padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700}.char-panel-header{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 12px;border-bottom:1px solid hsl(var(--border));flex-shrink:0}.char-panel-body{padding:0 16px 8px}.char-section{margin-bottom:16px}.char-section-label{font-size:10px;font-weight:800;color:#9096c8;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.nb-block-card{border:1px solid hsl(var(--border));border-radius:10px;overflow:hidden;background:hsl(var(--surface))}.nb-block-header{display:flex;align-items:center;gap:7px;padding:8px 10px;cursor:pointer;background:hsl(var(--surface-2));-webkit-user-select:none;-moz-user-select:none;user-select:none}.nb-block-header:hover{background:hsl(var(--border))}.nb-block-type-dot{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:hsl(var(--accent-fg));flex-shrink:0}.nb-block-title-input{flex:1;font-size:12px;font-weight:700;color:hsl(var(--text));background:transparent;border:none;outline:none;min-width:0}.nb-block-del-btn{width:18px;height:18px;border:none;background:transparent;color:hsl(var(--text-subtle));cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0}.nb-block-del-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text))}.nb-block-body{padding:8px 10px 10px}.nb-block-textarea{width:100%;font-size:12px;color:hsl(var(--text));background:transparent;border:none;outline:none;resize:none;line-height:1.6;font-family:inherit}.nb-block-textarea::-moz-placeholder{color:hsl(var(--text-subtle))}.nb-block-textarea::placeholder{color:hsl(var(--text-subtle))}.nb-block-links{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;min-height:4px}.nb-link-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:99px;font-size:10px;font-weight:600}.nb-link-chip button{background:none;border:none;cursor:pointer;padding:0;font-size:11px;line-height:1;opacity:.6}.nb-link-chip button:hover{opacity:1}.nb-link-char{background:hsl(var(--surface-2));color:hsl(var(--accent));border:1px solid hsl(var(--border))}.nb-link-event,.nb-link-scene{background:hsl(var(--surface-2));color:hsl(var(--text-muted));border:1px solid hsl(var(--border))}.nb-block-add-links{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}.nb-add-link-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:6px;border:1px dashed hsl(var(--border));background:transparent;color:hsl(var(--text-muted));font-size:10px;cursor:pointer;transition:border-color .1s,color .1s}.nb-add-link-btn:hover{border-color:hsl(var(--accent));color:hsl(var(--accent))}.nb-picker-popup{position:absolute;top:calc(100% + 4px);left:0;z-index:50;background:hsl(var(--surface));border:1px solid hsl(var(--border));border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);min-width:140px;max-height:320px;overflow-y:auto;padding:4px}.nb-picker-empty{padding:8px 10px;font-size:11px;color:#bbb;text-align:center}.nb-add-block-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.nb-add-block-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:7px;border:1.5px dashed hsl(var(--border));color:hsl(var(--text-muted));background:transparent;font-size:11px;font-weight:600;cursor:pointer;transition:color .1s,background .1s,border-color .1s}.nb-add-block-btn:hover{background:hsl(var(--surface-2));color:hsl(var(--text));border-color:hsl(var(--text-muted))}.char-conn-group-label{font-size:10px;font-weight:700;color:hsl(var(--text-subtle));margin-bottom:5px}.char-relation-row{display:flex;align-items:center;gap:6px;padding:4px 8px;background:hsl(var(--surface-2));border-radius:7px;margin-bottom:3px}.char-relation-name{font-size:12px;font-weight:700;color:#3a3a50}.char-relation-label{font-size:11px;color:#9096c8;background:#eeeef8;padding:1px 6px;border-radius:5px}.char-role-label-custom{font-weight:700;padding:2px 8px;border-radius:20px;border:1px solid;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-role-cat-chip,.char-role-label-custom{display:inline-flex;align-items:center;font-size:11px;background:transparent}.char-role-cat-chip{padding:3px 9px;border-radius:6px;border:1px solid hsl(var(--border));color:#888;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.char-role-cat-chip:hover{border-color:hsl(var(--border));color:hsl(var(--accent));background:hsl(var(--surface-2))}.char-role-cat-chip.active{font-weight:700}.nb-picker-rel-header{font-size:10px;font-weight:700;color:#9098b8;text-transform:uppercase;letter-spacing:.04em;padding:6px 10px 4px}.nb-picker-rel-chips{display:flex;flex-wrap:wrap;gap:4px;padding:0 8px 6px}.nb-rel-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;border:1px solid hsl(var(--border));background:transparent;font-size:11px;color:#6b6b8a;cursor:pointer;transition:all .1s}.nb-rel-chip:hover{border-color:hsl(var(--accent));color:hsl(var(--accent));background:hsl(var(--border))}.nb-rel-chip.active{background:hsl(var(--accent));color:#fff;border-color:hsl(var(--accent));font-weight:700}.nb-picker-custom-rel{display:block;width:calc(100% - 16px);margin:0 8px 6px;padding:5px 8px;border:1px solid hsl(var(--border));border-radius:6px;font-size:12px;color:#3a3a50;outline:none}.nb-picker-custom-rel:focus{border-color:hsl(var(--accent))}.nb-picker-divider{height:1px;background:hsl(var(--surface-2));margin:2px 0 4px}.nb-picker-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;font-size:12px;color:#3a3a50;cursor:pointer;border-radius:5px}.nb-picker-item:hover{background:hsl(var(--border));color:hsl(var(--accent))}.nb-picker-item-rel{font-size:10px;font-weight:700;color:#9098b8;background:#eeeef8;padding:1px 5px;border-radius:4px;flex-shrink:0}.nb-link-rel{font-weight:700;opacity:.8}.nb-link-chip.nb-link-overflow{background:#f3f3f8;color:#888;border:1px solid hsl(var(--border));cursor:pointer}.nb-link-chip.nb-link-overflow:hover{background:#e8e8f8;color:hsl(var(--accent))}@media (max-width:767px){.view-toggle-btn span{display:none}.view-toggle-btn{padding:4px 7px}}