:root,[data-theme=light]{--bg: #FAFAFA;--bg-1: #FFFFFF;--bg-2: #F5F5F5;--bg-3: #EBEBEB;--line: #E5E5E5;--line-soft: #EFEFEF;--text: #0A0A0A;--text-2: #525252;--text-3: #9A9A9A;--signal: #E84019;--signal-dim: #FFC4B5;--signal-bg: rgba(232, 64, 25, .07);--good: #15A555;--warn: #C97A1B;--error: #C92A2A;--paper: var(--bg);--panel: var(--bg-1);--ink: var(--text);--muted: var(--text-3);--accent: var(--signal);--border: var(--line);--sans: "Geist", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--topbar-h: 52px;--bottom-tabs-h: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--studio-prose-max: 880px;font-family:var(--sans)}[data-theme=dark]{--bg: #0A0A0A;--bg-1: #111111;--bg-2: #161616;--bg-3: #1C1C1C;--line: #262626;--line-soft: #1F1F1F;--text: #F5F5F5;--text-2: #A8A8A8;--text-3: #666666;--signal: #FF4F2B;--signal-dim: #7A2614;--signal-bg: rgba(255, 79, 43, .1);--good: #9DFF7A;--warn: #E8A33D;--error: #E07560}*,*:before,*:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}body{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14.5px;line-height:1.55;font-feature-settings:"ss01","ss02","cv11";letter-spacing:-.005em;overscroll-behavior:none;touch-action:manipulation}#root{height:100dvh;min-height:100dvh;overflow:hidden}::selection{background:#0000000f;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--text-2);color:inherit}[data-theme=dark] ::selection{background:#ffffff0d;text-decoration-color:var(--text-2)}.marked{background:#0000000a;border-bottom:1px solid var(--text-3);padding:0 1px;color:inherit}[data-theme=dark] .marked{background:#ffffff0a;border-bottom:1px solid var(--text-2)}a{color:inherit}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background-image:linear-gradient(to right,rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(0,0,0,.03) 1px,transparent 1px);background-size:64px 64px}[data-theme=dark] body:before{background-image:linear-gradient(to right,rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.018) 1px,transparent 1px)}body>*{position:relative;z-index:2}button{font:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shell{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;background:var(--bg-1);overscroll-behavior:none}.topbar{height:var(--topbar-h);display:flex;align-items:center;padding:0 14px;background:var(--bg-1);border-bottom:1px solid var(--line);flex-shrink:0;gap:10px}.brand{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;padding:5px 10px 5px 8px;border-radius:6px;color:var(--text);font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:-.012em;flex-shrink:1;min-width:0;max-width:52%;min-height:0;white-space:nowrap;cursor:pointer;transition:background .14s ease}.brand:hover{background:var(--bg-2)}.brand:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.brand-mark{width:12px;height:12px;border:1.5px solid var(--text);position:relative;flex-shrink:0;display:block;transition:transform .14s ease}.brand-mark:after{content:"";position:absolute;top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;background:var(--signal);pointer-events:none}.brand:hover .brand-mark{transform:scale(1.08)}.brand:active .brand-mark{transform:scale(.96)}.brand-title{overflow:hidden;text-overflow:ellipsis;min-width:0}.brand-caret{font-size:9px;color:var(--text-3);flex-shrink:0}.topbar-slot{flex:1;display:flex;align-items:center;min-width:0}.topbar-chapter-bar{display:flex;align-items:center;gap:2px;flex:1;min-width:0;padding-left:8px;border-left:1px solid var(--line)}.topbar-chapter-picker{flex:1;min-width:0;font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:-.01em;padding:5px 9px;border:1px solid transparent;background:transparent;color:var(--text);border-radius:5px;cursor:pointer}.topbar-chapter-picker:hover{background:var(--bg-2)}.topbar-chapter-picker:focus{border-color:var(--signal);outline:none;background:var(--bg-2)}.topbar-chapter-bar .ghost.icon{padding:4px 8px;min-height:28px;min-width:28px;font-family:var(--mono);font-size:13px;color:var(--text-3);border-radius:5px}.topbar-chapter-bar .ghost.icon:hover{color:var(--text);background:var(--bg-2)}.panes{flex:1;display:grid;grid-template-columns:1fr;overflow:hidden;min-height:0}.pane{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--bg-1)}.pane-studio{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--safe-bottom) + 8px);overscroll-behavior:contain}.pane-chat{padding-bottom:var(--safe-bottom)}.panel-content{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;overflow:hidden;overscroll-behavior:contain}.collapsed-panel-rail{display:none}@media(max-width:1023.98px){.topbar{gap:6px;padding:0 10px}.brand{max-width:56%;padding:4px 8px 4px 6px}.shell:not([data-active-tab=studio]) .mode-toggle{display:none}.mode-toggle .mode-full{display:none}.mode-toggle .mode-short{display:inline}.mode-toggle button{padding:0 8px}.pane-codex,.pane-studio,.pane-chat{grid-column:1;grid-row:1;display:none}.shell[data-active-tab=source] .pane-codex,.shell[data-active-tab=studio] .pane-studio,.shell[data-active-tab=chat] .pane-chat{display:flex}.pane-studio,.pane-chat,.pane-codex{padding-bottom:calc(var(--safe-bottom) + var(--bottom-tabs-h) + 8px)}.shell:not([data-active-tab=studio]) .selection-actions,.shell:not([data-active-tab=studio]) .prose-actions{display:none}.selection-actions,.prose-actions{bottom:calc(var(--safe-bottom) + var(--bottom-tabs-h) + 12px)}}.bottom-tabs{position:fixed;left:0;right:0;bottom:0;z-index:14;display:flex;align-items:stretch;height:calc(var(--bottom-tabs-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-1);border-top:1px solid var(--line)}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:0;border-top:2px solid transparent;margin-top:-1px;color:var(--text-3);font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease;-webkit-tap-highlight-color:transparent}.tab-btn:hover{color:var(--text);background:var(--bg-2)}.tab-btn:focus-visible{outline:2px solid var(--signal);outline-offset:-3px}.tab-btn.active{color:var(--signal);border-top-color:var(--signal);background:var(--bg-2)}.tab-glyph{position:relative;font-family:var(--mono);font-size:13px;line-height:1}.tab-label{font-size:10px;letter-spacing:.1em}.tab-dot{position:absolute;top:-3px;right:-7px;width:6px;height:6px;border-radius:50%;background:var(--signal)}.onboarding{max-width:600px;margin:80px auto 60px;padding:28px;display:flex;flex-direction:column;gap:28px}.onboarding-bar{display:flex;justify-content:flex-end;margin:-8px -8px 4px}.onboarding h1{font-family:var(--sans);font-weight:600;font-size:clamp(40px,7vw,72px);line-height:1;letter-spacing:-.045em;margin:0;color:var(--text)}.onboarding h1 em{font-style:normal;color:var(--signal)}.onboarding h1+.muted{font-size:16px;color:var(--text-2);max-width:56ch;margin-top:-4px;letter-spacing:-.01em}.onboarding section{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;padding:22px 24px}.onboarding section h3{margin:0 0 14px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);font-weight:500}.onboarding ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.onboarding ul button{text-align:left;width:100%;background:transparent;border:1px solid var(--line);padding:11px 14px;border-radius:5px;font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--text);letter-spacing:-.01em;transition:border-color .16s ease,color .16s ease,background .16s ease}.onboarding ul button:hover{border-color:var(--signal);color:var(--signal);background:var(--signal-bg)}.onboarding form{display:flex;gap:8px}.onboarding form input{flex:1}input,textarea,select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:var(--bg-1);color:var(--text);min-width:0;font-family:var(--sans);font-size:14px;letter-spacing:-.005em}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--signal)}textarea{font-family:var(--sans)}button{background:var(--bg-1);border:1px solid var(--line);border-radius:5px;padding:8px 14px;color:var(--text);min-height:34px;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:-.01em;transition:background .14s ease,color .14s ease,border-color .14s ease}button:hover{border-color:var(--text-3);background:var(--bg-2)}button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}button.primary:hover{background:var(--signal);border-color:var(--signal);color:var(--bg)}button.ghost{background:transparent;border-color:transparent;color:var(--text-2)}button.ghost:hover{background:var(--bg-2);color:var(--text);border-color:transparent}button.icon{padding:6px 10px;min-width:34px}button.small{font-family:var(--mono);font-size:11px;padding:4px 9px;min-height:24px;letter-spacing:.02em}button.block{width:100%}.muted{color:var(--text-3)}.small{font-size:12px}.row{display:flex;gap:8px;flex-wrap:wrap}.block{display:flex;flex-direction:column;gap:4px}.error{color:var(--error);font-size:12.5px}.demo-gate{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.demo-gate-card{width:min(100%,380px);display:flex;flex-direction:column;gap:14px}.demo-gate-mark{width:18px;height:18px;background:var(--signal);border-radius:4px}.demo-gate h1{margin:0;font-family:var(--sans);font-size:34px;line-height:1.05;font-weight:600;letter-spacing:0}.demo-gate p{margin:0 0 8px}.demo-gate-field{display:flex;flex-direction:column;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.demo-gate-field input{font-family:var(--sans);font-size:16px;letter-spacing:0;text-transform:none}.demo-gate-error{color:var(--error);font-size:13px}.empty{padding:64px 24px;text-align:center;color:var(--text-2)}.empty h2{font-family:var(--sans);font-weight:600;font-size:22px;letter-spacing:-.022em;margin:0 0 8px}.reader-index{max-width:720px;margin:0 auto;padding:32px 24px 24px}.story-title{font-family:var(--sans);font-weight:600;font-size:clamp(32px,5vw,44px);line-height:1.05;letter-spacing:-.035em;margin:0 0 8px;color:var(--text)}.story-subtitle{margin-bottom:28px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.chapter-cards{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0;counter-reset:ch;border-top:1px solid var(--line)}.chapter-cards li{counter-increment:ch}.chapter-card{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:14px 6px;display:grid;grid-template-columns:36px 1fr auto;gap:16px;align-items:baseline;transition:padding .16s ease,color .14s ease,background .14s ease;min-height:0}.chapter-card:before{content:"ch." counter(ch,decimal-leading-zero);font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--text-3)}.chapter-card:hover{background:var(--bg-2);padding-left:12px}.chapter-card:hover .chapter-card-title{color:var(--signal)}.chapter-card-title{font-family:var(--sans);font-weight:500;font-size:16px;line-height:1.25;letter-spacing:-.015em;color:var(--text);transition:color .14s ease}.chapter-card .muted.small{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--text-3)}.reader{max-width:660px;margin:0 auto;padding:16px 24px 64px}.reader-back{margin-bottom:16px;font-family:var(--mono);color:var(--text-3);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 6px;border-radius:4px}.reader-back:hover{color:var(--signal);background:var(--bg-2)}.reader-title{font-family:var(--sans);font-weight:600;font-size:clamp(28px,4.5vw,40px);line-height:1.05;letter-spacing:-.038em;margin:16px 0 36px}.studio-title{font-size:34px;line-height:1.08;letter-spacing:0;margin:8px 0 4px;overflow-wrap:anywhere}.reader-title .accent,.reader-title em{color:var(--signal);font-style:normal}.reader-body{font-family:var(--sans);font-size:16px;line-height:1.72;word-wrap:break-word;color:var(--text);letter-spacing:-.005em;text-rendering:optimizeLegibility;font-feature-settings:"kern","liga","calt","ss01","ss02";hanging-punctuation:first last}.reader-body p{margin:0 0 1.1em}.reader-body p:last-child{margin-bottom:0}.reader-body em{font-style:italic;letter-spacing:-.003em}.reader-body .speech,.prose-stream .speech,.msg-assistant .msg-bubble .speech{font-style:italic}.reader-body .speech em,.prose-stream .speech em,.msg-assistant .msg-bubble .speech em{font-style:normal}.reader-body .dq-open,.prose-stream .dq-open,.msg-assistant .msg-bubble .dq-open{margin-left:-.4em}.reader-body p:has(>.dq:first-child)+p:has(>.dq:first-child){margin-top:-.45em}.reader-body strong{font-weight:600}.reader-body blockquote{margin:1.4em 0;padding-left:18px;border-left:2px solid var(--line);color:var(--text-2);font-style:italic}.reader-body blockquote em{font-style:normal}.reader-body p:first-of-type:first-letter{font-family:var(--sans);font-weight:600;font-size:2.4em;line-height:.92;float:left;margin:.08em .1em 0 -.02em;color:var(--signal);letter-spacing:-.03em}.reader-body h1,.reader-body h2,.reader-body h3,.reader-body h4,.reader-body h5,.reader-body h6{font-family:var(--sans);font-weight:600;letter-spacing:-.018em;line-height:1.2;color:var(--text);margin:1.6em 0 .6em}.reader-body h1{font-size:28px}.reader-body h2{font-size:22px}.reader-body h3{font-size:18px}.reader-body h4{font-size:16px}.reader-body h5,.reader-body h6{font-size:15px}.reader-body :is(h1,h2,h3,h4,h5,h6)+*{margin-top:.4em}.reader-body :first-child:is(h1,h2,h3,h4,h5,h6){margin-top:0}.reader-body ul,.reader-body ol{margin:.9em 0;padding-left:1.6em}.reader-body li{margin:.25em 0;line-height:1.65}.reader-body li>p{margin:0}.reader-body li>ul,.reader-body li>ol{margin:.25em 0}.reader-body li input[type=checkbox]{margin-right:8px;vertical-align:-1px}.reader-body code{font-family:var(--mono);font-size:.92em;padding:1px 6px;border-radius:3px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);word-break:break-word}.reader-body pre{margin:1.1em 0;padding:14px 16px;background:var(--bg-2);border:1px solid var(--line);border-radius:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;line-height:1.55}.reader-body pre code{display:block;padding:0;border:0;border-radius:0;background:transparent;font-size:13.5px;white-space:pre;word-break:normal}.reader-body hr{margin:2em auto;border:0;width:24%;text-align:center;height:auto;position:relative}.reader-body hr:before{content:"· · ·";display:block;font-family:var(--sans);letter-spacing:.5em;font-size:13px;color:var(--text-3)}.reader-body a{color:var(--signal);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.reader-body a:hover{text-decoration-thickness:2px}.reader-body del{color:var(--text-3)}.reader-body table{margin:1.2em 0;border-collapse:collapse;font-size:14px;width:100%}.reader-body th,.reader-body td{border:1px solid var(--line);padding:7px 11px;text-align:left;vertical-align:top}.reader-body th{background:var(--bg-2);font-weight:600}.reader-nav{margin-top:48px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-family:var(--sans)}.reader-nav button{flex:1;font-size:12.5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;border-color:transparent;color:var(--text-2);letter-spacing:-.005em}.reader-nav button:hover{color:var(--signal);background:var(--bg-2);border-color:transparent}.reader-nav button:last-child{text-align:right}.reader-loading{padding:80px;text-align:center;color:var(--text-3);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.studio{max-width:740px;margin:0 auto;padding:16px 24px 120px;display:flex;flex-direction:column;gap:12px}.studio-read{padding-bottom:64px}.chapter-meta{padding:0 4px}.editor{width:100%;min-height:50vh;padding:14px 16px;font-family:var(--sans);font-size:16px;line-height:1.7;resize:vertical}.prose{display:block;width:100%;min-height:calc(100dvh - 200px);padding:8px 0 24px;font-family:var(--sans);font-size:16px;line-height:1.72;border:none;outline:none;background:transparent;color:var(--text);margin:0;box-sizing:border-box;letter-spacing:-.005em}textarea.prose{field-sizing:content;resize:none;overflow-y:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.prose:focus{outline:none}textarea.prose::placeholder{color:var(--text-3)}.chapter-meta-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0 8px;border-bottom:1px solid var(--line-soft);margin-bottom:4px;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--text-3)}.studio-read .chapter-meta-row{margin-bottom:18px}.save{font-family:var(--mono);font-size:11px;letter-spacing:.02em;display:inline-flex;align-items:center;gap:7px}.save:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--text-3)}.save-saved:before{background:var(--good)}.save-dirty:before{background:var(--warn)}.save-saving:before{background:var(--signal);animation:cursor-blink 1s steps(1) infinite}.save-error:before{background:var(--error)}.save-saved{color:var(--good)}.save-dirty{color:var(--warn)}.save-saving{color:var(--signal)}.save-error{color:var(--error)}.save button{padding:0 6px;min-height:0;font-size:11px}.prose-readonly{white-space:pre-wrap;word-wrap:break-word;cursor:default;-webkit-user-select:text;user-select:text}.prose-strike{text-decoration:line-through;text-decoration-color:var(--signal);color:var(--text-3)}.prose-stream{color:var(--signal)}.prose-cursor{display:inline-block;margin-left:1px;animation:cursor-blink 1s steps(1) infinite;color:var(--signal)}@keyframes cursor-blink{50%{opacity:0}}.prose-actions{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--safe-bottom) + 12px);z-index:5;width:calc(100% - 24px);max-width:712px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 32px -10px #00000029;flex-wrap:wrap}[data-theme=dark] .prose-actions{box-shadow:0 14px 32px -10px #0009}.prose-actions-buttons{display:flex;gap:6px}.prose-actions-buttons button{padding:6px 12px}.scene-beat{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:10px;margin:4px 0}.scene-beat-header{display:flex;align-items:center;justify-content:space-between}.scene-beat-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);font-weight:500}.scene-beat-hide{background:transparent;border:0;color:var(--text-3);font-family:var(--mono);font-size:11px;padding:2px 6px;min-height:0;letter-spacing:.02em}.scene-beat-hide:hover{color:var(--text)}.scene-beat-input{width:100%;border:none;background:transparent;padding:4px 0;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--text);resize:none;outline:none;min-height:38px;letter-spacing:-.005em}.scene-beat-input::placeholder{color:var(--text-3)}.scene-beat-input:focus{outline:none}.scene-beat-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:10px}.scene-beat-len{background:var(--bg-1);border:1px solid var(--line);border-radius:4px;padding:4px 9px;font-family:var(--mono);font-size:11px;color:var(--text-2);min-height:26px;letter-spacing:.04em}.scene-beat-len.active{border-color:var(--signal);background:var(--signal-bg);color:var(--signal)}.scene-beat-len-edit{background:var(--bg-1);border:1px solid var(--line);border-radius:4px;padding:4px 9px;font-family:var(--mono);font-size:11px;min-height:26px;color:var(--text-3)}.scene-beat-len-custom{width:70px;padding:4px 8px;font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:4px;min-height:26px}.scene-beat-spacer{flex:1}.scene-beat .scene-beat-go{font-family:var(--sans);font-size:12.5px;font-weight:600;padding:5px 12px 6px;min-height:28px;background:var(--signal);color:var(--bg);border-color:var(--signal);border-radius:4px;letter-spacing:-.01em}.scene-beat .scene-beat-go:hover{filter:brightness(1.08);background:var(--signal);border-color:var(--signal);color:var(--bg)}.scene-beat-collapsed{align-self:flex-start;background:transparent;border:1px dashed var(--line);border-radius:4px;padding:7px 12px;font-family:var(--mono);font-size:11.5px;color:var(--text-3);min-height:0;margin:4px 0 8px;letter-spacing:0;display:inline-flex;align-items:center;gap:6px}.scene-beat-collapsed:before{content:"+";color:var(--signal);font-weight:600}.scene-beat-collapsed:hover{color:var(--signal);border-color:var(--signal-dim)}[data-theme=dark] .scene-beat-collapsed:hover{border-color:var(--signal)}.selection-actions{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--safe-bottom) + 12px);z-index:5;width:calc(100% - 24px);max-width:712px;display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 32px -10px #00000029}[data-theme=dark] .selection-actions{box-shadow:0 14px 32px -10px #0009}.selection-actions-close{position:absolute;top:4px;right:4px;background:transparent;border:0;color:var(--text-3);font-family:var(--sans);font-size:16px;line-height:1;padding:4px 8px;border-radius:4px;cursor:pointer;min-height:0;z-index:1}.selection-actions-close:hover{color:var(--text);background:var(--bg-1)}.selection-actions-quote{font-family:var(--sans);font-size:13.5px;color:var(--text-2);border-left:2px solid var(--signal);padding-left:12px;padding-right:28px;white-space:pre-wrap;word-wrap:break-word;line-height:1.5;letter-spacing:-.005em}.selection-actions-input{width:100%;padding:8px 12px;font-family:var(--sans);font-size:13px;border:1px solid var(--line);border-radius:5px;background:var(--bg-1);color:var(--text);letter-spacing:-.005em}.selection-actions-input:focus{border-color:var(--signal);outline:none}.selection-actions-buttons{display:flex;gap:6px}.selection-actions-buttons button{flex:1;min-height:32px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:var(--bg-1);border:1px solid var(--line);border-radius:4px;padding:7px 10px;color:var(--text-2);transition:all .14s ease}.selection-actions-buttons button:hover{background:var(--signal-bg);border-color:var(--signal);color:var(--signal)}.selection-action-discuss{border-style:dashed!important;font-weight:400!important;color:var(--text-2)!important}.selection-action-discuss:hover{border-style:solid!important}.composer{display:flex;flex-direction:column;gap:8px;padding:8px 0}.composer-context{padding-left:2px;display:flex;gap:4px;align-items:baseline;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.composer-quote{font-family:var(--sans);color:var(--text-2);font-size:13.5px}.composer-row{display:flex;gap:6px;align-items:stretch}.composer-row input{flex:1;min-width:0}.composer-row button{white-space:nowrap}.studio-toolbar{display:flex;gap:8px;flex-wrap:wrap}.studio-toolbar button{flex:1;min-width:0}.studio-instruction{width:100%;margin-top:4px}.studio-empty{padding:48px 12px;display:flex;flex-direction:column;gap:14px;align-items:stretch;max-width:520px;margin:0 auto;text-align:center}.studio-empty .muted{font-family:var(--sans);font-size:14.5px;color:var(--text-2);letter-spacing:-.005em}.generating-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--signal);padding:16px 4px 8px}.generating .stream{font-family:var(--sans);font-size:16px;line-height:1.72;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:18px 20px;white-space:pre-wrap;word-wrap:break-word;min-height:50vh;margin:0;letter-spacing:-.005em}.studio-draft{padding:20px 24px 28px;display:flex;flex-direction:column;gap:14px;max-width:880px;margin:0 auto}.draft-banner{display:flex;align-items:center;gap:12px}.draft-badge{background:var(--signal-bg);color:var(--signal);border:1px solid var(--signal);font-family:var(--mono);font-size:10px;font-weight:500;padding:3px 8px;border-radius:4px;letter-spacing:.14em;text-transform:uppercase}.draft-title{margin:0;font-family:var(--sans);font-weight:600;font-size:28px;line-height:1.05;letter-spacing:-.032em}.draft-body{font-family:var(--sans);font-size:15.5px;line-height:1.72;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:18px 20px;white-space:pre-wrap;word-wrap:break-word;min-height:50vh;margin:0;letter-spacing:-.005em}.draft-toolbar{display:flex;gap:8px}.draft-toolbar button{flex:1}.thread-switcher{position:relative;display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--bg-1)}.thread-switcher-trigger{flex:1;display:flex;align-items:center;justify-content:space-between;gap:6px;background:transparent;border:1px solid transparent;padding:6px 10px;border-radius:5px;color:var(--text);font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:-.01em;min-width:0}.thread-switcher-trigger:hover{background:var(--bg-2)}.thread-switcher-trigger[aria-expanded=true]{background:var(--bg-2);border-color:var(--line)}.thread-switcher-title{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-switcher-caret{font-size:9px;color:var(--text-3);flex-shrink:0}.thread-switcher-new{width:32px;height:32px;padding:0;font-family:var(--mono);font-size:18px;line-height:1;color:var(--text-2);border-radius:5px;flex-shrink:0}.thread-switcher-new:hover{background:var(--bg-2);color:var(--text)}.thread-switcher-close{width:32px;height:32px;padding:0;border-radius:5px;flex-shrink:0;color:var(--text-3)}.thread-switcher-close:hover{background:var(--bg-2);color:var(--text)}.thread-switcher-popover{position:absolute;top:calc(100% + 4px);left:8px;right:8px;max-height:50vh;overflow-y:auto;z-index:30;background:var(--bg-1);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:4px}.thread-switcher-empty{padding:12px;text-align:center}.thread-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.thread-row{position:relative;display:flex;align-items:stretch;gap:2px;border-radius:5px}.thread-row:hover{background:var(--bg-2)}.thread-row.active{background:var(--signal-bg)}.thread-row-label{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:transparent;border:0;padding:8px 10px;text-align:left;font-family:var(--sans);font-size:13px;color:var(--text);min-width:0}.thread-row.active .thread-row-label{color:var(--signal)}.thread-row-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.thread-row-meta{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--text-3)}.thread-row-menu-btn{width:30px;font-family:var(--mono);font-size:14px;color:var(--text-3);background:transparent;border:0;border-radius:5px;flex-shrink:0}.thread-row-menu-btn:hover{color:var(--text);background:var(--bg-3)}.thread-row-menu{position:absolute;top:calc(100% - 4px);right:4px;z-index:1;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 20px #00000024;display:flex;flex-direction:column;min-width:140px;padding:4px}.thread-row-menu-rename{flex-direction:row;gap:6px;padding:6px;align-items:center;min-width:220px}.thread-row-menu-rename input{flex:1;font-family:var(--sans);font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-2);color:var(--text)}.thread-row-menu-item{text-align:left;background:transparent;border:0;padding:7px 10px;font-family:var(--sans);font-size:13px;color:var(--text);border-radius:4px}.thread-row-menu-item:hover{background:var(--bg-2)}.thread-row-menu-danger{color:var(--error)}.thread-row-menu-danger:hover{background:var(--bg-2);color:var(--error)}.chat{display:flex;flex-direction:column;height:100%;max-width:740px;margin:0 auto;width:100%}.chat-head{flex-shrink:0;background:var(--bg-1);border-bottom:1px solid var(--line)}.chat-head .thread-switcher{border-bottom:0}.chat-head-context{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 12px 8px}.chat-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border:1px solid var(--line);border-radius:4px;background:var(--bg-1);color:var(--text-2);font-family:var(--sans);font-size:12px;max-width:100%;min-width:0}.chat-chip-key{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;color:var(--text-3);padding:1px 4px;border-right:1px solid var(--line);margin-right:2px}.chat-chip-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chat-chip-pin .chat-chip-key{color:var(--signal)}.chat-chip-clear{margin-left:auto;background:transparent;border:0;padding:2px 6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);cursor:pointer;border-radius:3px}.chat-chip-clear:hover{color:var(--text);background:var(--bg-2)}.chat-pin-prompt{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border:1px dashed var(--line);border-radius:4px;background:transparent;color:var(--text-3);font-family:var(--sans);font-size:12px;cursor:pointer;max-width:100%;min-width:0;transition:color .12s ease,border-color .12s ease,background .12s ease}.chat-pin-prompt:hover{color:var(--signal);border-color:var(--signal);background:var(--signal-bg)}.chat-pin-prompt-key{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;padding:1px 4px;border-right:1px dashed currentColor;margin-right:2px;flex-shrink:0}.chat-pin-prompt-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chat-scroll{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.chat-empty{display:flex;flex-direction:column;gap:6px;padding:32px 4px;font-family:var(--sans)}.chat-empty-line{font-size:15px;color:var(--text);margin:0;letter-spacing:-.012em}.chat-empty-hint{font-size:13px;color:var(--text-3);margin:0}.msg{display:flex}.msg-user{justify-content:flex-end}.msg-assistant{justify-content:flex-start}.msg-bubble{max-width:82%;padding:10px 14px;border-radius:6px;white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.55;letter-spacing:-.005em}.msg-user .msg-bubble{background:var(--text);color:var(--bg);border-bottom-right-radius:2px}.msg-assistant .msg-bubble{background:transparent;border-left:2px solid var(--signal);border-radius:0;padding-left:14px;font-family:var(--sans);color:var(--text)}.msg-bubble.streaming{opacity:.92}.msg-assistant .msg-bubble>*:first-child{margin-top:0}.msg-assistant .msg-bubble>*:last-child{margin-bottom:0}.msg-assistant .msg-bubble p{margin:.55em 0;white-space:normal}.msg-assistant .msg-bubble h1,.msg-assistant .msg-bubble h2,.msg-assistant .msg-bubble h3,.msg-assistant .msg-bubble h4{margin:1em 0 .4em;font-family:var(--sans);font-weight:600;letter-spacing:-.012em;line-height:1.25;color:var(--text)}.msg-assistant .msg-bubble h1{font-size:17px}.msg-assistant .msg-bubble h2{font-size:15.5px}.msg-assistant .msg-bubble h3{font-size:14.5px}.msg-assistant .msg-bubble h4{font-size:14px}.msg-assistant .msg-bubble h1:first-child,.msg-assistant .msg-bubble h2:first-child,.msg-assistant .msg-bubble h3:first-child,.msg-assistant .msg-bubble h4:first-child{margin-top:0}.msg-assistant .msg-bubble ul,.msg-assistant .msg-bubble ol{margin:.5em 0;padding-left:1.4em}.msg-assistant .msg-bubble li{margin:.15em 0}.msg-assistant .msg-bubble li>p{margin:0}.msg-assistant .msg-bubble li>ul,.msg-assistant .msg-bubble li>ol{margin:.15em 0}.msg-assistant .msg-bubble li input[type=checkbox]{margin-right:6px;vertical-align:-1px}.msg-assistant .msg-bubble strong{font-weight:600;color:var(--text)}.msg-assistant .msg-bubble em{font-style:italic}.msg-assistant .msg-bubble del{color:var(--text-3)}.msg-assistant .msg-bubble a{color:var(--signal);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.msg-assistant .msg-bubble a:hover{text-decoration-thickness:2px}.msg-assistant .msg-bubble code{font-family:var(--mono);font-size:.92em;padding:1px 5px;border-radius:3px;background:var(--bg-2);color:var(--text);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word}.msg-assistant .msg-bubble pre{margin:.6em 0;padding:10px 12px;background:var(--bg-2);border:1px solid var(--line);border-radius:5px;overflow-x:auto;-webkit-overflow-scrolling:touch;line-height:1.5}.msg-assistant .msg-bubble pre code{display:block;padding:0;border:0;border-radius:0;background:transparent;font-size:12.5px;white-space:pre;word-break:normal}.msg-assistant .msg-bubble blockquote{margin:.5em 0;padding:2px 0 2px 12px;border-left:2px solid var(--line);color:var(--text-2);font-style:italic}.msg-assistant .msg-bubble hr{margin:1em 0;border:0;border-top:1px solid var(--line)}.msg-assistant .msg-bubble table{margin:.6em 0;border-collapse:collapse;font-size:13px;width:100%}.msg-assistant .msg-bubble th,.msg-assistant .msg-bubble td{border:1px solid var(--line);padding:5px 9px;text-align:left;vertical-align:top}.msg-assistant .msg-bubble th{background:var(--bg-2);font-weight:600}.msg-thinking{padding-top:10px;padding-bottom:10px}.thinking-dots{display:inline-flex;align-items:center;gap:5px}.thinking-dots span{display:block;width:5px;height:5px;border-radius:50%;background:var(--text-3);animation:thinking-pulse 1.2s ease-in-out infinite}.thinking-dots span:nth-child(2){animation-delay:.15s}.thinking-dots span:nth-child(3){animation-delay:.3s}@keyframes thinking-pulse{0%,80%,to{opacity:.25;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.chat-suggestions-bar{display:flex;gap:6px;padding:8px 14px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--bg-1)}.chat-suggestions-bar::-webkit-scrollbar{display:none}.chat-suggestion-chip{flex-shrink:0;font-family:var(--sans);font-size:12px;padding:5px 11px;border-radius:16px;background:var(--bg-2);border:1px solid var(--line);color:var(--text-2);white-space:nowrap;cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease}.chat-suggestion-chip:hover{color:var(--text);background:var(--bg-3);border-color:var(--text-3)}.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--bg-1)}.chat-input textarea{flex:1;resize:none;max-height:120px;padding:9px 12px;font-family:var(--sans);font-size:14px;line-height:1.45}.mic-btn{width:38px;flex-shrink:0;background:transparent;border:1px solid var(--line);border-radius:5px;font-size:14px;color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .14s ease,background .14s ease,border-color .14s ease}.mic-btn:hover{color:var(--text);background:var(--bg-2);border-color:var(--text-3)}.mic-btn.listening{color:var(--signal);border-color:var(--signal);background:var(--signal-bg);font-family:var(--mono);animation:mic-pulse 1.4s ease-in-out infinite}.mic-btn.listening:hover{background:var(--signal-bg);color:var(--signal)}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 var(--signal-bg)}50%{box-shadow:0 0 0 4px var(--signal-bg)}}@media(prefers-reduced-motion:reduce){.mic-btn.listening{animation:none}}.mic-stop-glyph{display:block;width:9px;height:9px;background:var(--signal)}.stop-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--line);border-radius:5px;background:var(--bg-1);color:var(--text);font-family:var(--sans);font-size:13px;cursor:pointer;flex-shrink:0;transition:color .12s ease,border-color .12s ease,background .12s ease}.stop-btn:hover{border-color:var(--signal);color:var(--signal);background:var(--signal-bg)}.stop-glyph{display:block;width:9px;height:9px;background:var(--signal);flex-shrink:0}.codex{display:flex;flex-direction:column;height:100%;overflow:hidden}.codex-head{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--signal);font-weight:500;flex-shrink:0}.codex-head-actions{display:inline-flex;align-items:center;gap:8px;min-width:0}.codex-head-meta{color:var(--text-3);letter-spacing:.04em;text-transform:none;font-size:10.5px;font-weight:400}.codex-sections{list-style:none;padding:0;margin:0;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.codex-section{border-bottom:1px solid var(--line-soft)}.codex-section.disabled .codex-section-header{color:var(--text-2)}.codex-section.disabled.open .codex-section-header{color:var(--text)}.codex-section-header{width:100%;background:transparent;border:0;border-radius:0;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--text);cursor:pointer;letter-spacing:-.012em;text-align:left;min-height:0;transition:background .14s ease,color .14s ease}.codex-section-header:hover{background:var(--bg-2);border-color:transparent}.codex-section.open .codex-section-header{color:var(--signal);background:var(--signal-bg)}.codex-section-caret{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--text-3);width:14px;text-align:center}.codex-section.open .codex-section-caret{color:var(--signal)}.codex-section-body{padding:4px 16px 14px}.codex-empty{display:flex;flex-direction:column;gap:6px;padding:6px 0 4px}.codex-empty p{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--text-3);letter-spacing:-.005em;margin:0}.codex-empty-tag{font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:.14em!important;text-transform:uppercase;color:var(--text-3)!important;border:1px solid var(--line);padding:3px 7px;align-self:flex-start;border-radius:3px;background:var(--bg-2);margin-top:4px}.codex-notes-wrap{display:flex;flex-direction:column;gap:6px;padding:4px 0 0}.codex-notes{width:100%;resize:vertical;font-family:var(--sans);font-size:13px;line-height:1.55;padding:9px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg-1);color:var(--text);min-height:160px;letter-spacing:-.005em}.codex-notes:focus{outline:none;border-color:var(--signal)}.codex-notes::placeholder{color:var(--text-3)}.codex-notes-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--text-3);padding:0 2px}.selection-presets{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;margin:0 -2px 2px;padding:2px 2px 4px;scrollbar-color:transparent transparent}.selection-presets:hover{scrollbar-color:var(--line) transparent}.selection-presets::-webkit-scrollbar{height:4px}.selection-presets::-webkit-scrollbar-track{background:transparent}.selection-presets::-webkit-scrollbar-thumb{background:transparent;border-radius:2px}.selection-presets:hover::-webkit-scrollbar-thumb{background:var(--line)}.selection-preset{flex-shrink:0;background:var(--bg-1);border:1px solid var(--line);border-radius:4px;padding:4px 9px;font-family:var(--sans);font-size:11.5px;font-weight:500;color:var(--text-2);cursor:pointer;letter-spacing:-.005em;white-space:nowrap;min-height:24px;transition:color .14s ease,border-color .14s ease,background .14s ease}.selection-preset:hover{color:var(--signal);border-color:var(--signal);background:var(--signal-bg)}.selection-preset-manage{font-family:var(--mono);font-weight:500;font-size:13px;color:var(--text-3);padding:0 9px;letter-spacing:.04em}.selection-preset-manage:hover{color:var(--text);border-color:var(--text-3);background:var(--bg-2)}.presets-manager{max-width:620px!important}.presets-manager>.muted.small{margin:-4px 0 4px;font-family:var(--sans);font-size:12px;color:var(--text-3);line-height:1.5;letter-spacing:-.005em}.presets-list{display:flex;flex-direction:column;gap:12px;max-height:52vh;overflow-y:auto;padding:4px 2px;margin:0 -2px}.presets-empty{text-align:center;padding:24px 0;color:var(--text-3)}.preset-row{display:grid;grid-template-columns:1fr;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--bg-1)}.preset-row-invalid{border-color:var(--error);background:#c92a2a0a}[data-theme=dark] .preset-row-invalid{background:#e075600f}.preset-validation-hint{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--error);margin-right:4px}.preset-label-input{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:-.012em;color:var(--text);background:transparent;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;padding:4px 0}.preset-label-input:focus{outline:none;border-bottom-color:var(--signal)}.preset-prompt-input{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:4px;padding:8px 10px;resize:vertical;min-height:50px;letter-spacing:-.005em}.preset-prompt-input:focus{outline:none;border-color:var(--signal)}.preset-row-controls{display:flex;gap:8px;align-items:center;justify-content:space-between}.preset-intent-select{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--text-2);background:var(--bg-2);border:1px solid var(--line);border-radius:4px;padding:3px 8px;min-height:26px;cursor:pointer}.preset-intent-select:focus{outline:none;border-color:var(--signal)}.preset-row-remove{font-family:var(--mono);font-size:11px;color:var(--text-3);letter-spacing:.04em;text-transform:lowercase;background:transparent;border:0;padding:3px 8px;cursor:pointer}.preset-row-remove:hover{color:var(--error)}.presets-manager-foot{display:flex;gap:8px;align-items:center;margin-top:8px;padding-top:12px;border-top:1px solid var(--line-soft);flex-wrap:wrap}@media(min-width:600px){.preset-row{grid-template-columns:220px 1fr;grid-template-areas:"label  prompt" "ctrls  prompt"}.preset-label-input{grid-area:label}.preset-prompt-input{grid-area:prompt;min-height:70px}.preset-row-controls{grid-area:ctrls}}.chapter-meta-actions{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.discuss-btn{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--text-2);background:transparent;border:1px solid var(--line);border-radius:4px;padding:3px 9px;min-height:22px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:color .14s ease,border-color .14s ease,background .14s ease}.discuss-btn:hover{color:var(--signal);border-color:var(--signal);background:var(--signal-bg)}.discuss-arrow{color:var(--signal);font-family:var(--mono);font-size:11px;margin-left:2px;line-height:1}.discuss-btn .discuss-arrow,.selection-action-discuss .discuss-arrow{transition:transform .16s ease}.discuss-btn:hover .discuss-arrow,.selection-action-discuss:hover .discuss-arrow{transform:translate(2px)}.ai-undo-btn{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--text-2);background:transparent;border:1px solid var(--line);border-radius:4px;padding:3px 9px;min-height:22px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:color .14s ease,border-color .14s ease,background .14s ease}.ai-undo-btn:hover{color:var(--text);border-color:var(--text-3);background:var(--bg-2)}.ai-undo-toast{position:fixed;z-index:18;bottom:calc(var(--safe-bottom) + 16px);left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:14px;padding:8px 8px 8px 16px;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 32px -10px #0000002e,0 2px 6px -2px #00000014;font-family:var(--sans);font-size:13px;color:var(--text);letter-spacing:-.005em;max-width:calc(100vw - 24px);animation:undo-toast-in .22s ease}[data-theme=dark] .ai-undo-toast{box-shadow:0 14px 32px -10px #000000b3,0 2px 6px -2px #0006}@keyframes undo-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.ai-undo-toast{animation:none}}.ai-undo-toast-label{display:inline-flex;align-items:center;gap:8px;color:var(--text-2);font-size:12.5px}.ai-undo-toast-dot{width:6px;height:6px;background:var(--signal);border-radius:50%;display:inline-block}.ai-undo-toast-action{background:transparent;border:0;border-bottom:1px solid var(--signal);color:var(--signal);font-family:var(--sans);font-size:12.5px;font-weight:500;letter-spacing:-.005em;padding:2px 0 1px;border-radius:0;min-height:0;cursor:pointer}.ai-undo-toast-action:hover{filter:brightness(.92)}.ai-undo-toast-close{background:transparent;border:0;color:var(--text-3);cursor:pointer;padding:2px 6px 3px;font-family:var(--sans);font-size:16px;line-height:1;border-radius:4px;min-height:0}.ai-undo-toast-close:hover{color:var(--text);background:var(--bg-2)}@media(min-width:1024px){.ai-undo-toast{left:auto;right:24px;bottom:24px;transform:none}@keyframes undo-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}.shortcuts-help{max-width:560px!important}.shortcuts-help header h3{font-family:var(--sans);font-weight:600;letter-spacing:-.022em;font-style:normal}.shortcuts-group{margin-top:8px}.shortcuts-group:first-of-type{margin-top:0}.shortcuts-group h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--signal);font-weight:500;margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}.shortcuts-table{width:100%;border-collapse:collapse}.shortcuts-table tr{border-bottom:1px solid var(--line-soft)}.shortcuts-table tr:last-child{border-bottom:0}.shortcuts-table td{padding:9px 0;vertical-align:middle}.shortcuts-keys{width:38%;white-space:nowrap;display:flex;gap:4px;align-items:center}.shortcuts-label{font-family:var(--sans);font-size:13.5px;color:var(--text);letter-spacing:-.01em}.shortcuts-foot{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--text-3);text-align:center;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line-soft)}kbd{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:2px 7px;display:inline-flex;align-items:center;justify-content:center;min-width:20px;letter-spacing:0;line-height:1.2}.modal-backdrop,.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:20;display:flex}[data-theme=dark] .modal-backdrop,[data-theme=dark] .drawer-backdrop{background:#000000a6}.modal-backdrop{align-items:center;justify-content:center;padding:16px}.modal{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;padding:22px 24px;width:min(640px,100%);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 50px -10px #00000040}[data-theme=dark] .modal{box-shadow:0 20px 50px -10px #000000b3}.modal.small{max-width:460px}.modal header{display:flex;justify-content:space-between;align-items:center}.modal header h3{margin:0;font-family:var(--sans);font-weight:600;font-size:18px;letter-spacing:-.025em}.modal form{display:flex;flex-direction:column;gap:12px}.quote{background:var(--bg-2);border-left:2px solid var(--signal);padding:10px 14px;margin:0;font-family:var(--sans);white-space:pre-wrap;word-wrap:break-word;max-height:160px;overflow-y:auto;color:var(--text-2);font-size:14px;line-height:1.55;border-radius:0 4px 4px 0}.preview{background:var(--bg-2);border:1px solid var(--line);padding:14px 16px;margin:0;border-radius:6px;font-family:var(--sans);font-size:14.5px;line-height:1.65;white-space:pre-wrap;word-wrap:break-word;max-height:360px;overflow-y:auto;letter-spacing:-.005em}.summary-draft-card{align-self:stretch;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg-2);max-width:100%}.summary-draft-ready{border-color:var(--signal);background:var(--signal-bg)}.summary-draft-accepted{opacity:.7}.summary-draft-discarded{opacity:.5}.summary-draft-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.summary-draft-ready .summary-draft-head{color:var(--signal)}.summary-draft-key{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;padding:1px 6px;border:1px solid currentColor;border-radius:3px;flex-shrink:0}.summary-draft-row{display:flex;flex-direction:column;gap:4px}.summary-draft-row-label{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.summary-draft-text{font-family:ui-serif,Georgia,Times New Roman,serif;font-size:14px;line-height:1.55;color:var(--text);white-space:pre-wrap;word-wrap:break-word;margin:0;padding:0}.summary-draft-text-prior{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--text-3);text-decoration-thickness:1px}.summary-draft-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.tool-status{align-self:flex-start;display:inline-flex;align-items:baseline;gap:6px;padding:2px 0;font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--text-3);max-width:88%}.tool-status-arrow{font-family:var(--mono);color:var(--text-3)}.tool-status-name{color:var(--text-2)}.tool-status-arg{color:var(--text-3);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60ch}.tool-status-running .tool-status-name:after{content:"…";color:var(--text-3);margin-left:1px}.draft-card{align-self:flex-start;max-width:88%;background:var(--bg-2);border:1px solid var(--signal);border-radius:6px;padding:12px 14px}.draft-card-row{display:flex;align-items:center;gap:12px}.draft-glyph{font-family:var(--mono);font-size:18px;line-height:1;color:var(--signal);font-weight:500}.draft-card-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.draft-card-title{font-family:var(--sans);font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);letter-spacing:-.012em}.draft-card .muted.small{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.drawer{background:var(--bg-1);width:min(360px,88vw);max-width:360px;height:100%;padding:18px 20px;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--line);box-shadow:4px 0 24px -8px #00000040}[data-theme=dark] .drawer{box-shadow:4px 0 24px -8px #0009}.drawer header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:12px;border-bottom:1px solid var(--line)}.drawer header h3{margin:0;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--signal)}.drawer-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}.drawer-list li{display:flex;gap:4px;align-items:center}.drawer-list li.active .drawer-item{border-color:var(--signal);color:var(--signal);background:var(--signal-bg)}.drawer-item{flex:1;text-align:left;background:transparent;border:1px solid var(--line);padding:10px 14px;border-radius:5px;font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text);letter-spacing:-.01em;transition:all .14s ease}.drawer-item:hover{border-color:var(--signal);color:var(--signal)}.panel-icon-btn{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;border-radius:5px;background:var(--bg-1);border:1px solid var(--line);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.panel-icon-btn:hover{color:var(--text);border-color:var(--text-3);background:var(--bg-2)}.panel-icon-btn.active{color:var(--signal);border-color:var(--signal);background:var(--signal-bg)}.panel-icon-shape{position:relative;display:block;width:15px;height:15px}.panel-icon-shape-codex{border:1.5px solid currentColor;border-radius:2px}.panel-icon-shape-codex:before{content:"";position:absolute;top:-1.5px;bottom:-1.5px;left:6px;border-left:1.5px solid currentColor}.panel-icon-shape-codex:after{content:"";position:absolute;top:4px;left:9px;width:3px;border-top:1.5px solid currentColor;box-shadow:0 4px 0 currentColor}.panel-icon-shape-chat{border:1.5px solid currentColor;border-radius:4px}.panel-icon-shape-chat:after{content:"";position:absolute;right:2px;bottom:-4px;width:6px;height:6px;background:var(--bg-1);border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(35deg)}.panel-icon-btn:hover .panel-icon-shape-chat:after,.panel-icon-btn.active .panel-icon-shape-chat:after{background:var(--bg-2)}.panel-icon-btn.active .panel-icon-shape-chat:after{background:var(--signal-bg)}.panel-close{width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3)}.panel-close:hover{color:var(--text);background:var(--bg-2)}.panel-icon-close{position:relative;display:block;width:14px;height:14px}.panel-icon-close:before,.panel-icon-close:after{content:"";position:absolute;left:1px;right:1px;top:6px;border-top:1.5px solid currentColor}.panel-icon-close:before{transform:rotate(45deg)}.panel-icon-close:after{transform:rotate(-45deg)}.mode-toggle{display:inline-flex;border:1px solid var(--line);border-radius:5px;background:var(--bg-1);flex-shrink:0;overflow:hidden;margin-right:6px}.mode-toggle button{background:transparent;border:0;padding:0 11px;min-height:26px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);cursor:pointer;border-radius:0;transition:background .14s ease,color .14s ease;min-width:0}.mode-toggle button+button{border-left:1px solid var(--line)}.mode-toggle button:hover{background:var(--bg-2);color:var(--text)}.mode-toggle button.active,.mode-toggle button.active:hover{background:var(--signal-bg);color:var(--signal)}.mode-toggle .mode-short{display:none}.theme-tog{background:var(--bg-1);border:1px solid var(--line);border-radius:4px;color:var(--text-3);font-family:var(--mono);font-size:11px;padding:4px 8px;min-height:26px;letter-spacing:.04em;display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.theme-tog:hover{color:var(--text);border-color:var(--text-3);background:var(--bg-2)}.theme-tog [data-when=dark],[data-theme=dark] .theme-tog [data-when=light]{display:none}[data-theme=dark] .theme-tog [data-when=dark]{display:inline}.focus-button-wrap{position:relative;flex-shrink:0}.focus-trigger{display:inline-flex;align-items:center;justify-content:center;width:30px;min-width:30px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.focus-trigger:hover{color:var(--text);background:var(--bg-2);border-color:var(--line)}.focus-trigger.active{color:var(--signal);background:var(--signal-bg);border-color:var(--signal-dim)}.focus-icon{position:relative;width:15px;height:15px;display:block}.focus-icon span{position:absolute;width:6px;height:6px;border-color:currentColor;border-style:solid;transition:inset .12s ease,transform .12s ease}.focus-icon span:nth-child(1){top:0;left:0;border-width:1.5px 0 0 1.5px}.focus-icon span:nth-child(2){top:0;right:0;border-width:1.5px 1.5px 0 0}.focus-icon span:nth-child(3){right:0;bottom:0;border-width:0 1.5px 1.5px 0}.focus-icon span:nth-child(4){bottom:0;left:0;border-width:0 0 1.5px 1.5px}.focus-icon-exit span:nth-child(1){top:3px;left:3px;transform:rotate(180deg)}.focus-icon-exit span:nth-child(2){top:3px;right:3px;transform:rotate(180deg)}.focus-icon-exit span:nth-child(3){right:3px;bottom:3px;transform:rotate(180deg)}.focus-icon-exit span:nth-child(4){bottom:3px;left:3px;transform:rotate(180deg)}.focus-hint{position:absolute;top:calc(100% + 6px);right:-38px;z-index:22;width:min(320px,calc(100vw - 20px));padding:9px 10px;display:flex;align-items:flex-start;gap:10px;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 28px -16px #00000052;color:var(--text-2);font-size:12.5px;line-height:1.35}[data-theme=dark] .focus-hint{box-shadow:0 12px 28px -14px #000000b3}.focus-hint span{flex:1;min-width:0}.focus-hint button{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent;border:0;border-radius:4px;color:var(--text-3);font-size:18px;line-height:1;padding:0}.focus-hint button:hover{background:var(--bg-2);color:var(--text)}.overflow-menu-wrap{position:relative;flex-shrink:0}.overflow-trigger{display:inline-flex;align-items:center;justify-content:center;width:30px;min-width:30px;height:28px;padding:0;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.overflow-trigger:hover{color:var(--text);background:var(--bg-2);border-color:var(--line)}.overflow-trigger.active{color:var(--text);background:var(--bg-2);border-color:var(--text-3)}.overflow-glyph{font-family:var(--mono);font-size:14px;letter-spacing:1px;line-height:1;transform:translateY(-3px)}.overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:200px;padding:4px;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 28px -16px #00000052;display:flex;flex-direction:column;gap:2px}[data-theme=dark] .overflow-menu{box-shadow:0 12px 28px -14px #000000b3}.overflow-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:transparent;border:0;border-radius:4px;font-family:var(--sans);font-size:13px;color:var(--text);text-align:left;cursor:pointer;min-height:0}.overflow-item:hover{background:var(--bg-2)}.overflow-item:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.overflow-item-label{flex:1;min-width:0}.overflow-item-glyph{font-size:13px;color:var(--text-3)}.overflow-item-shortcut{font-family:var(--mono);font-size:11px;color:var(--text-3);letter-spacing:.04em}@media(min-width:900px){.shell{max-width:1200px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}.topbar{padding:0 18px}}@media(min-width:1024px){.shell{max-width:none;margin:0;border-left:0;border-right:0}.panes{--col-codex: 280px;--col-chat: 340px;grid-template-columns:var(--col-codex) 1fr var(--col-chat)}.shell[data-codex-open=false] .panes{--col-codex: 36px}.shell[data-chat-open=false] .panes{--col-chat: 36px}.pane-codex{display:flex;border-right:1px solid var(--line)}.pane-chat{border-left:1px solid var(--line)}.shell[data-codex-open=false] .pane-codex .panel-content,.shell[data-chat-open=false] .pane-chat .panel-content{display:none}.shell[data-codex-open=false] .pane-codex .collapsed-panel-rail,.shell[data-chat-open=false] .pane-chat .collapsed-panel-rail{display:flex}.collapsed-panel-rail{width:100%;height:100%;align-items:flex-start;justify-content:center;padding-top:12px;background:var(--bg-1)}.collapsed-panel-rail-chat{border-left:0}.pane-codex,.pane-studio,.pane-chat{display:flex;padding-bottom:0}.shell[data-active-tab=chat] .topbar-slot{display:flex}.shell[data-active-tab=chat] .mode-toggle{display:inline-flex}.bottom-tabs{display:none}.studio,.reader,.reader-index{width:100%;max-width:none;margin:0}.studio{padding:24px 40px 96px}.reader{padding:32px 40px 80px}.reader-index{padding:32px 40px 40px}.studio>.reader-title,.studio>.chapter-meta-row,.studio>.scene-beat,.studio>textarea.prose,.studio>.prose-readonly,.studio>.reader-body,.studio>.reader-nav{width:100%;max-width:var(--studio-prose-max);margin-left:auto;margin-right:auto}.studio>.scene-beat-collapsed{margin-left:max(0px,calc((100% - var(--studio-prose-max)) / 2));max-width:var(--studio-prose-max)}.studio>.selection-actions,.studio>.prose-actions{bottom:24px;left:calc(var(--col-codex, 280px) + (100vw - var(--col-codex, 280px) - var(--col-chat, 340px)) / 2);transform:translate(-50%);width:auto;max-width:720px;min-width:420px}.reader>.reader-title,.reader>.reader-body,.reader>.reader-nav{width:100%;max-width:var(--studio-prose-max);margin-left:auto;margin-right:auto}.reader-index>.chapter-cards,.reader-index>.story-title,.reader-index>.story-subtitle{width:100%;max-width:1000px;margin-left:auto;margin-right:auto}.chat-context{padding:10px 16px}.chat-scroll{padding:16px}.chat-input{padding:10px 12px}}
