:root{--bg: #fbfaf7;--bg-app: #f4f3ef;--bg-panel: #ffffff;--bg-sidebar: #fafafb;--bg-hover: #f1f1f3;--bg-active: #e7e7ea;--bg-subtle: #f5f5f7;--border: #e4e4e8;--border-light: #eeeef1;--text: #1a1a2e;--text-muted: #6e6e7a;--text-faint: #b6b6c0;--accent: #2f6df0;--accent-soft: rgba(47, 109, 240, .1);--accent-text: #1f5bd6;--linked: rgba(47, 109, 240, .12);--linked-border: #2f6df0;--success: #1ea36c;--warn: #d97314;--danger: #e8352a;--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--shadow: 0 2px 16px rgba(20, 20, 40, .06);--shadow-md: 0 8px 32px rgba(20, 20, 40, .1);--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;background:var(--bg-app);font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{overflow:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}app-root{display:block;width:100%;height:100%}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:var(--font-mono)}.display{font-family:var(--font-display)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;border:2px solid var(--bg-panel)}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}input,textarea{border:1px solid var(--border);border-radius:7px;padding:0 12px;background:var(--bg-panel);height:42px;font-size:13px;color:var(--text);outline:none;transition:border-color .12s,box-shadow .12s;width:100%}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{height:auto;padding:10px 12px;font-family:var(--font-body);resize:vertical}.ProseMirror{outline:none;min-height:100%}.ProseMirror:focus{outline:none}.ProseMirror p{margin:0;padding:4px 0;line-height:1.6;font-size:13px}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-faint);pointer-events:none;height:0}.ProseMirror h1.chapter-title{font-family:var(--font-display, var(--font-body));font-size:24px;font-weight:700;color:var(--text);margin:0 0 12px;padding:0;line-height:1.2}.ProseMirror h1.chapter-title:empty:before{content:attr(data-placeholder,"Untitled chapter");color:var(--text-faint);font-style:italic}.ProseMirror h1.scene-heading{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;padding-top:12px;margin:0}.ProseMirror h2.character{font-family:var(--font-body);font-size:13px;font-weight:700;color:var(--text);text-align:center;padding-top:8px;letter-spacing:.04em;text-transform:uppercase;margin:0}.ProseMirror blockquote.dialogue{border-left:none;padding:0 56px;margin:0;font-size:13px;line-height:1.6}.ProseMirror p.action-line{font-family:var(--font-body);font-size:13px;line-height:1.6;color:var(--text);font-style:italic;margin:0;padding:4px 0}.ProseMirror u{text-decoration:underline}.ProseMirror .panel-link{cursor:pointer;border-radius:3px;padding:1px 0;transition:background .12s}
