body{font-family:Inter,system-ui,-apple-system,sans-serif}.view-panel{display:none;animation:fadeIn .2s ease-in-out}.view-panel.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.input,.textarea,select{width:100%;background-color:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:0;padding:.625rem;font-size:1rem;line-height:1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.input:focus,.textarea:focus,select:focus{outline:none;border-color:#64748b;box-shadow:none}.input::placeholder,.textarea::placeholder{color:#94a3b8}.label{display:flex;align-items:center;gap:.25rem;font-size:1rem;font-weight:600;color:#0f172a;margin-bottom:.25rem}.helper-text{display:block;font-size:.875rem;color:#64748b;margin-bottom:.5rem;line-height:1.375}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;font-size:1rem;padding:.625rem 1.25rem;border-radius:0;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-primary{background-color:#1f1f1f;color:#fff;border:1px solid transparent}.btn-primary:hover{background-color:#000}.btn-outline{background-color:#fff;color:#334155;border:1px solid #cbd5e1}.btn-outline:hover{background-color:#f8fafc}.btn-destructive{background-color:#fff;color:#dc2626;border:1px solid #fecaca}.btn-destructive:hover{background-color:#fef2f2}.custom-scroll::-webkit-scrollbar{width:6px}.custom-scroll::-webkit-scrollbar-track{background:transparent}.custom-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:0}.sidebar-tab{padding:.7rem 0;font-size:.8125rem;font-weight:700;letter-spacing:.04em;color:#64748b;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s;text-transform:uppercase}.sidebar-tab:hover{color:#1e293b}.sidebar-tab.active{color:#2d6a2d;border-bottom-color:#2d6a2d;background-color:#fff6}.editor-tab{padding-bottom:.75rem;font-size:1rem;font-weight:500;color:#64748b;border:none;background:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s}.editor-tab:hover{color:#1e293b}.editor-tab.active{color:#2d6a2d;border-bottom-color:#2d6a2d}.tab-content{display:none}.tab-content.active{display:block;animation:fadeIn .2s ease-in-out}optgroup{font-weight:700;color:#0f172a;font-style:normal}option{font-weight:400;color:#1e293b}#sidebar{transition:margin-left .4s cubic-bezier(.4,0,.2,1)}#sidebar.collapsed{margin-left:-550px}#chat-drawer{transform:translate(100%);transition:transform .6s cubic-bezier(.4,0,.2,1),visibility 0s linear .6s;visibility:hidden}#chat-drawer.drawer-open{transform:translate(0);transition:transform .6s cubic-bezier(.4,0,.2,1),visibility 0s linear 0s;visibility:visible}#chat-drawer-tab{display:none}#chat-drawer-tab.tab-visible{display:flex}.tiptap{outline:none;min-height:100%;height:100%;--p-spacing: 1em;--p-indent: .5in;--t-align: justify}.tiptap p{margin-bottom:var(--p-spacing);text-indent:var(--p-indent);text-align:var(--t-align)}.tiptap p.is-editor-empty:first-child:before,.tiptap.is-editor-empty>p:first-child:before{color:#94a3b8;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.tiptap strong{font-weight:700}.tiptap em{font-style:italic}.codex-mention{border-bottom:1px dotted #94a3b8;cursor:pointer;transition:background-color .15s}.codex-mention:hover{background-color:#fefce8}#tiptap-editor.editor-dark .codex-mention{border-bottom-color:#d2b9918c!important}#tiptap-editor.editor-dark .codex-mention:hover{background-color:#ffd2641f!important}.scene-beat-box{transition:padding-bottom .2s ease-in-out;min-height:100px}.scene-beat-box:before,.scene-beat-box:after{content:none!important;display:none!important}.scene-beat-box.active-generation{padding-bottom:240px!important}.pb-model-option{display:block;width:100%;text-align:left;padding:8px 14px;font-size:13px;color:#1e293b;background:none;border:none;cursor:pointer;transition:background .1s}.pb-model-option:hover{background:#f8fafc}.pb-model-active{font-weight:600;color:#0f172a}#pb-scene-builder select{height:32px;padding-top:0;padding-bottom:0;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:32px}.pb-generation-mode-switch{display:inline-flex;gap:.125rem;padding:.125rem;border:1px solid #dbe5db;background:#f7faf7}.pb-generation-mode{padding:.35rem .55rem;border:0;background:transparent;color:#94a3b8;cursor:pointer;font-size:.625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.pb-generation-mode:hover{color:#2d6a2d}.pb-generation-mode.active{background:#2d6a2d;color:#fff}.pb-scene-flow-list{display:flex;flex-direction:column;gap:.75rem}.pb-scene-flow-item{border-bottom:1px solid #e2e8f0;padding-bottom:.75rem}.pb-scene-flow-item:last-child{border-bottom:0;padding-bottom:0}.pb-scene-flow-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.pb-scene-flow-label{color:#2d6a2d;font-size:.625rem;font-weight:800;letter-spacing:.1em;margin-bottom:.35rem;text-transform:uppercase}.pb-scene-flow-remove{padding:.2rem 0;border:0;background:transparent;color:#94a3b8;cursor:pointer;font-size:.625rem;font-weight:700}.pb-scene-flow-remove:hover{color:#ef4444}.pb-scene-flow-input{border:none;border-bottom:1px dashed #d1d5db;font-family:"Noto Serif",serif;font-size:15px;min-height:5.5rem;overflow-y:hidden}.pb-scene-flow-input:focus{border-bottom-color:#2d6a2d}.pb-add-scene-flow{width:100%;padding:.5rem;border:1px dashed #a8c8a8;background:#f7fcf7;color:#2d6a2d;cursor:pointer;font-size:.75rem;font-weight:700}.pb-add-scene-flow:hover{background:#edf6ed}[class*=rounded],[class*=rounded-]{border-radius:0!important}[class*=shadow]{box-shadow:none!important}.pb-tension-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;pointer-events:none}.pb-tension-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#475569;border:2px solid white;border-radius:50%;box-shadow:0 1px 3px #00000040;pointer-events:auto;cursor:pointer}.pb-tension-range::-moz-range-thumb{width:16px;height:16px;background:#475569;border:2px solid white;border-radius:50%;box-shadow:0 1px 3px #00000040;pointer-events:auto;cursor:pointer}.pb-tension-range::-webkit-slider-runnable-track{background:transparent}.pb-tension-range::-moz-range-track{background:transparent}input[type=checkbox].peer+div{border-radius:9999px!important}input[type=checkbox].peer+div:after{border-radius:9999px!important}.nav-novel-btn{transition:color .15s,background-color .15s}.nav-novel-btn.nav-active{background-color:#222;color:#fff!important;border-radius:6px;padding-top:.6rem;padding-bottom:.6rem}.nav-novel-btn.nav-active:hover{background-color:#333;color:#fff!important}.book-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:flex-end;justify-content:center;z-index:300;opacity:0;pointer-events:none;transition:opacity .3s ease}.book-modal-overlay.open{opacity:1;pointer-events:all}.book-modal-sheet{background:#fff;width:100%;max-width:520px;padding:2rem 2rem 2.5rem;border-top:1px solid #e2e8f0;transform:translateY(100%);transition:transform .38s cubic-bezier(.4,0,.2,1)}.book-modal-overlay.open .book-modal-sheet{transform:translateY(0)}.book-modal-handle{width:40px;height:4px;background:#cbd5e1;border-radius:9999px;margin:0 auto 1.5rem}.book-modal-title{font-size:1.25rem;font-weight:700;color:#0f172a;margin-bottom:1.5rem}.docx-drop-zone{border:2px dashed #cbd5e1;padding:2rem 1rem;text-align:center;cursor:pointer;transition:all .2s;background:#f8fafc}.docx-drop-zone:hover,.docx-drop-zone.dragover,.docx-drop-zone.has-file{border-color:#2d6a2d;background:#edf6ed}.plan-panel-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2eee2}.plan-panel-intro p{max-width:28rem;margin:0;color:#64748b;font-size:.8125rem;line-height:1.5;text-align:right}.plan-panel-kicker{color:#2d6a2d;font-size:.625rem;font-weight:800;letter-spacing:.12em;margin-bottom:.35rem;text-transform:uppercase}.plan-chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.25rem}.plan-chapter-card{background:#fff;border:1px solid #b8d8b8;border-left:3px solid #2d6a2d;overflow:hidden}.plan-chapter-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;-webkit-user-select:none;user-select:none;background:#edf6ed;border-bottom:1px solid #c5e0c5}.plan-collapse-trigger{display:flex;align-items:center;gap:.5rem;min-width:0;padding:0;border:0;background:transparent;color:#1e293b;cursor:pointer;text-align:left}.plan-collapse-trigger:hover{color:#2d6a2d}.plan-chapter-kicker{display:block;color:#64748b;font-size:.5625rem;font-weight:800;letter-spacing:.1em;line-height:1;text-transform:uppercase}.plan-chapter-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.plan-card-action{padding:.25rem .4rem;border:0;background:transparent;color:#94a3b8;cursor:pointer;font-size:.6875rem;font-weight:700}.plan-card-action:hover{color:#1e293b}.plan-card-action.delete:hover{color:#ef4444}.plan-chapter-body{padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem;background:#f9fdf9}.plan-chapter-body.collapsed{display:none}.plan-section-label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2d6a2d;margin-bottom:.5rem;opacity:.75}.plan-compact-select{background:#fff;border:1px solid #b8d8b8;font-size:.8125rem;padding:.3rem .5rem;color:#1e293b;cursor:pointer;height:32px}.plan-compact-select:focus{outline:none;border-color:#2d6a2d}.plan-scene-row{border:1px solid #c5e0c5;padding:.875rem;display:flex;flex-direction:column;gap:.6rem;background:#fff;position:relative;border-left:2px solid #7db87d}.plan-scene-row+.plan-scene-row{margin-top:.625rem}.plan-beat-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.25rem}.plan-beat-number{color:#2d6a2d;font-size:.625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.plan-beat-details{margin-top:.25rem;border-top:1px solid #e2eee2;padding-top:.5rem}.plan-beat-details summary{color:#64748b;cursor:pointer;font-size:.6875rem;font-weight:700;list-style-position:inside;text-transform:uppercase;letter-spacing:.06em}.plan-beat-details summary:hover{color:#2d6a2d}.plan-beat-settings{display:flex;flex-direction:column;gap:.5rem;margin-top:.625rem}.plan-beat-setting-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem}.plan-beat-setting{display:flex;align-items:center;min-width:0;gap:.25rem}.plan-beat-setting label{flex-shrink:0;color:#94a3b8;font-size:.5625rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.plan-beat-setting select{flex:1;min-width:0}.plan-scene-bullet{width:8px;height:8px;border-radius:50%;background:#2d6a2d;flex-shrink:0;margin-top:2px;opacity:.5}.plan-scene-goal-input{border:none;border-bottom:1px dashed #a8c8a8;background:transparent;font-size:.9375rem;color:#1e293b;padding:.25rem 0;width:100%;outline:none;line-height:1.6}.plan-scene-goal-input::placeholder{color:#94a3b8}.plan-scene-goal-input:focus{border-bottom-color:#2d6a2d}.plan-tome-tag{display:inline-flex;align-items:center;gap:.25rem;background:#edf6ed;border:1px solid #b8d8b8;color:#2d6a2d;font-size:.75rem;font-weight:600;padding:.2rem .5rem}.plan-header-select{flex:1;min-width:0;background:#fff;border:1px solid #b8d8b8;font-size:.8125rem;padding:.3rem .5rem;color:#1e293b;cursor:pointer;height:32px}.plan-header-select:focus{outline:none;border-color:#2d6a2d}@media(max-width:900px){.plan-chapter-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.plan-panel-intro{align-items:flex-start;flex-direction:column;gap:.5rem}.plan-panel-intro p{text-align:left}.plan-chapter-header{align-items:flex-start;padding:.875rem}.plan-chapter-actions{flex-wrap:wrap;justify-content:flex-end}.plan-chapter-actions>span{display:none}.plan-chapter-body{padding:.875rem}.plan-beat-setting-row{grid-template-columns:minmax(0,1fr)}}.alias-pill-box{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:42px;border:1px solid #cbd5e1;padding:5px 8px;cursor:text;background:#fff;transition:border-color .15s}.alias-pill-box:focus-within{border-color:#64748b}.alias-pill{display:inline-flex;align-items:center;gap:4px;background:#edf6ed;border:1px solid #b8d8b8;color:#2d6a2d;font-size:.75rem;font-weight:600;padding:.2rem .5rem}.alias-pill-remove{background:none;border:none;cursor:pointer;font-size:.6875rem;font-weight:700;color:#2d6a2d;opacity:.6;line-height:1;padding:0 1px}.alias-pill-remove:hover{opacity:1}#alias-text-input{border:none;outline:none;flex:1;min-width:120px;font-size:1rem;background:transparent;padding:2px 4px;color:#0f172a}#alias-text-input::placeholder{color:#94a3b8}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}body.app-dark-mode{background-color:#1a1a1a!important}body.app-dark-mode>div{background-color:#141414!important}body.app-dark-mode #editor-bg-wrapper{background-color:#1c1c1c!important}body.app-dark-mode #tiptap-editor{color:#f0ead6!important}.dyn-category-block{border:1px solid #cbd5e1;background:#f8fafc;margin-bottom:1rem}.dyn-category-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#f1f5f9;border-bottom:1px solid #cbd5e1;gap:.5rem}.dyn-category-label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#475569;cursor:pointer;border:1px solid transparent;padding:2px 4px;flex:1;background:transparent;outline:none;min-width:0}.dyn-category-label:focus{border-color:#94a3b8;background:#fff;text-transform:none;color:#0f172a}.dyn-category-body{padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.dyn-box-block{display:flex;flex-direction:column;gap:.25rem}.dyn-box-label{font-size:.625rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8;cursor:pointer;border:1px solid transparent;padding:1px 3px;background:transparent;outline:none;width:100%}.dyn-box-label:focus{border-color:#94a3b8;background:#fff;text-transform:none;color:#475569}.dyn-box-textarea{width:100%;border:1px solid #e2e8f0;background:#fff;color:#0f172a;font-size:.9375rem;line-height:1.6;padding:.5rem .625rem;resize:none;overflow:hidden;min-height:72px;font-family:inherit;transition:border-color .15s}.dyn-box-textarea:focus{outline:none;border-color:#64748b}.dyn-box-textarea::placeholder{color:#94a3b8}.dyn-remove-btn{background:none;border:none;cursor:pointer;color:#cbd5e1;font-size:1rem;line-height:1;padding:0 2px;transition:color .12s;flex-shrink:0}.dyn-remove-btn:hover{color:#ef4444}.dyn-add-box-btn{display:flex;align-items:center;gap:.35rem;background:none;border:1px dashed #cbd5e1;color:#94a3b8;font-size:.75rem;font-weight:600;padding:.35rem .6rem;cursor:pointer;transition:all .12s;width:100%;justify-content:center}.dyn-add-box-btn:hover{border-color:#64748b;color:#475569;background:#f1f5f9}.dyn-add-category-btn{display:flex;align-items:center;gap:.4rem;background:none;border:1px dashed #cbd5e1;color:#94a3b8;font-size:.8125rem;font-weight:600;padding:.5rem 1rem;cursor:pointer;transition:all .12s;width:100%;justify-content:center;margin-top:.25rem}.dyn-add-category-btn:hover{border-color:#64748b;color:#475569;background:#f1f5f9}.dyn-add-moodboard-btn{display:flex;align-items:center;gap:.4rem;background:none;border:1px dashed #b8d8b8;color:#7db87d;font-size:.8125rem;font-weight:600;padding:.5rem 1rem;cursor:pointer;transition:all .12s;width:100%;justify-content:center;margin-top:.25rem}.dyn-add-moodboard-btn:hover{border-color:#2d6a2d;color:#2d6a2d;background:#edf6ed}#chat-image-previews{display:flex;flex-wrap:wrap;gap:.4rem;padding:.25rem 0}#chat-image-previews:empty{display:none}.chat-img-preview-tile{position:relative;width:64px;height:64px;border:1px solid #c5e0c5;overflow:hidden;flex-shrink:0}.chat-img-preview-tile img{width:100%;height:100%;object-fit:cover;display:block}.chat-img-preview-remove{position:absolute;top:2px;right:2px;background:#0f172a99;border:none;color:#fff;font-size:.6rem;width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;line-height:1}.chat-img-preview-remove:hover{background:#ef4444}.chat-sent-image{max-width:100%;max-height:220px;object-fit:contain;display:block;border:1px solid #fef0d9}.dyn-moodboard-block{border:1px solid #cbd5e1;background:#f8fafc;margin-bottom:1rem}.dyn-moodboard-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:#f1f5f9;border-bottom:1px solid #cbd5e1;gap:.5rem}.dyn-moodboard-label{font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#475569;cursor:pointer;border:1px solid transparent;padding:2px 4px;flex:1;background:transparent;outline:none;min-width:0}.dyn-moodboard-label:focus{border-color:#94a3b8;background:#fff;text-transform:none;color:#0f172a}.dyn-moodboard-toggle-wrap{display:flex;align-items:center;gap:.3rem;font-size:.6875rem;font-weight:700;color:#64748b;white-space:nowrap;flex-shrink:0;cursor:pointer;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.dyn-moodboard-toggle-wrap.active{color:#2d6a2d}.dyn-moodboard-body{padding:.75rem}.dyn-moodboard-grid{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.dyn-moodboard-image-tile{position:relative;border:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;overflow:hidden}.dyn-moodboard-image-tile img{width:100%;height:auto;display:block}.dyn-moodboard-caption{border:none;border-top:1px solid #e2e8f0;background:transparent;font-size:.6875rem;color:#475569;padding:3px 5px;width:100%;resize:none;font-family:inherit;line-height:1.4;min-height:28px;overflow:hidden}.dyn-moodboard-caption:focus{outline:none;background:#f8fafc}.dyn-moodboard-caption::placeholder{color:#cbd5e1}.dyn-moodboard-remove-img{position:absolute;top:3px;right:3px;background:#0f172a8c;border:none;color:#fff;font-size:.625rem;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;font-weight:700}.dyn-moodboard-remove-img:hover{background:#ef4444}.dyn-add-image-btn{display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;background:none;border:1px dashed #cbd5e1;color:#94a3b8;font-size:.75rem;font-weight:600;padding:.4rem .75rem;cursor:pointer;transition:all .12s}.dyn-add-image-btn:hover{border-color:#64748b;color:#475569;background:#f1f5f9}.canopy-understory-card{border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px;cursor:pointer;background:#f8fafc;transition:all .15s;-webkit-user-select:none;user-select:none}.canopy-understory-card:hover{border-color:#94a3b8;background:#f1f5f9}.canopy-understory-card.active{border-color:#f59e0b;background:#fffbeb;box-shadow:0 0 0 2px #f59e0b26}.canopy-understory-indicator{width:12px;height:12px;border-radius:50%;border:2px solid #cbd5e1;flex-shrink:0;transition:all .15s}.canopy-understory-card.active .canopy-understory-indicator{border-color:#f59e0b;background:#f59e0b}#canopy-config-sections.understory-disabled{opacity:.35;pointer-events:none}.fg-template-opt{border:2px solid #e2e8f0;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;overflow:hidden;text-align:left;display:block;width:100%}.fg-template-opt:hover{border-color:#94a3b8}.fg-tpl-active{border-color:#2d6a2d!important;box-shadow:0 0 0 1px #2d6a2d;background:#f0fdf4!important}@keyframes canopyPulse{0%,to{opacity:1}50%{opacity:.35}}#canopy-viewer-content{color:#1a1a1a;font-family:EB Garamond,Georgia,serif;font-size:20px;line-height:1.5}#canopy-viewer-content h1{font-family:Inter,sans-serif;font-size:2.1em;font-weight:900;color:#0f172a;text-transform:uppercase;letter-spacing:.03em;margin-top:.2em;margin-bottom:.25em;border:none;padding:0}#canopy-viewer-content h2{font-family:Inter,sans-serif;font-size:1.18em;font-weight:700;color:#1e293b;border:none;padding:0;margin-top:2em;margin-bottom:.6em}#canopy-viewer-content h3{font-family:Inter,sans-serif;font-size:1em;font-weight:700;color:#1e293b;margin-top:1.5em;margin-bottom:.3em}#canopy-viewer-content strong{color:#0f172a;font-weight:700}#canopy-viewer-content em{color:#4a5568;font-style:italic}#canopy-viewer-content p{margin-bottom:.85em}#canopy-viewer-content ul,#canopy-viewer-content ol{padding-left:1.5em;margin-bottom:.85em}#canopy-viewer-content li{margin-bottom:.3em}#canopy-viewer-content hr{border:none;border-top:1px dashed #b0bec5;margin:2em 0}#canopy-viewer-content blockquote{border-left:2px solid #94a3b8;padding-left:1.1em;color:#4a5568;font-style:italic;margin:1em 0}#canopy-viewer-content code{background:#f1f5f9;padding:.15em .4em;border-radius:3px;font-size:.88em;color:#334155;font-family:Courier Prime,monospace}#canopy-viewer-content::-webkit-scrollbar{width:5px}#canopy-viewer-content::-webkit-scrollbar-track{background:transparent}#canopy-viewer-content::-webkit-scrollbar-thumb{background:#dde3ea;border-radius:0}
