:root{color:#30382e;font-synthesis:none;--green:#526b45;--dark:#34442d;--line:#e3e5db;--muted:#808477;background:#f5f3ed;font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-size:14px;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid #688450}button{cursor:pointer}button,.button{color:var(--dark);background:#fff;border:1px solid #d7dccf;border-radius:6px;padding:9px 15px;text-decoration:none;transition:background .15s,border-color .15s}button:hover,.button:hover{background:#eef1e8;border-color:#9aaa8c}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#415738;border-color:#415738}.wide{width:100%}.text-button,.icon-button{background:0 0;border:none;padding:5px 7px}.text-button{font-size:12px}.icon-button{font-size:22px;line-height:1}.danger{color:#9e4d40}.danger-button{color:#fff;background:#9f5046;border-color:#9f5046}.danger-button:hover{background:#884238}.quiet-link,.back-link{color:var(--muted);text-decoration:none}.quiet-link:hover,.back-link:hover{color:var(--green)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:550;line-height:1.4}h1{letter-spacing:.02em;font-size:32px}h2{font-size:20px}h3{font-size:16px}.muted{color:var(--muted)}.eyebrow{letter-spacing:.15em;color:#89927f;margin-bottom:13px;font-size:11px}.helper-text{color:#929789;font-size:12px;line-height:1.8}.section-label{color:#7b8374;letter-spacing:.06em;justify-content:space-between;align-items:center;margin:0 0 18px;font-size:12px;display:flex}.section-label span{color:#969d8e;font-size:11px}label{color:#57614f;margin:0 0 19px;font-size:13px;display:block}input,textarea{color:#343c31;resize:vertical;background:#fff;border:1px solid #dfe3d8;border-radius:6px;width:100%;margin-top:8px;padding:11px 12px;display:block}input:focus,textarea:focus{outline-offset:1px;border-color:#9bad8c;outline:2px solid #b8c7a4}textarea::placeholder,input::placeholder{color:#a2a699}label small{color:#8b9383;margin-top:5px;font-size:11px;display:block}a{color:var(--green)}.notice{color:#61734d;background:#eff3e8;border:1px solid #e0e8d8;border-radius:5px;margin:10px 0;padding:11px 14px;font-size:12px;line-height:1.8}.notice-error{color:#985541;background:#fcf2ed;border-color:#efdcd0}.loading{color:#8a947e;justify-content:center;align-items:center;gap:10px;min-height:220px;display:flex}.loading-dot{background:#81966b;border-radius:50%;width:7px;height:7px;animation:1.2s infinite pulse}@keyframes pulse{50%{opacity:.25}}.empty-state{text-align:center;color:#89917f;max-width:660px;margin:auto;padding:76px 25px}.empty-state h2{color:#4f5d44}.empty-glyph{color:#a4b194;margin-bottom:25px;font:60px/1.2 Georgia,serif}.brand{color:var(--dark);letter-spacing:.08em;align-items:center;gap:12px;font-size:19px;font-weight:650;text-decoration:none;display:flex}.brand-symbol{background:var(--green);color:#fff;letter-spacing:0;border-radius:8px;place-items:center;width:38px;height:38px;font-family:SimSun,serif;font-size:24px;font-weight:400;display:grid}.brand small{letter-spacing:.13em;color:#8d9683;font-size:9px;font-weight:400;display:block}.app-header{border-bottom:1px solid var(--line);background:#fbfcf8;justify-content:space-between;align-items:center;height:72px;padding:0 35px;display:flex}.app-header nav{align-items:center;gap:25px;font-size:12px;display:flex}.balance{color:#8c9483;border-right:1px solid var(--line);padding-right:25px;font-size:11px}.balance strong{color:#657852;margin-left:7px;font-weight:500}.user-name{color:#69765c}.login-page{grid-template-columns:1.08fr 1fr;min-height:100dvh;display:grid}.login-intro{background:#e9eddf;padding:55px 11%;position:relative;overflow:hidden}.login-intro .brand{margin-bottom:100px}.login-intro .eyebrow{margin-bottom:27px;font-size:12px}.login-intro h1{color:#48583b;letter-spacing:.05em;font-family:Noto Serif SC,SimSun,serif;font-size:clamp(30px,3.5vw,51px);font-weight:400;line-height:1.65}.login-intro em{color:#83916f;font-style:normal}.login-intro>p:not(.eyebrow){color:#8d977f;font-size:13px;line-height:2}.intro-foot{color:#8a967b;letter-spacing:.15em;font-size:11px;position:absolute;bottom:42px}.book-lines{opacity:.28;pointer-events:none;width:37%;height:25%;position:absolute;bottom:5%;right:8%;transform:rotate(-10deg)}.book-lines i{border-bottom:1px solid #9dab89;width:100%;height:16%;display:block}.book-lines i:nth-child(2n){width:77%}.login-form{background:#fbfcf8;justify-content:center;align-items:center;padding:60px 40px;display:flex}.login-form>div{width:100%;max-width:335px}.login-form h2{margin-bottom:10px;font-size:27px}.login-form .muted{margin-bottom:32px;font-size:12px}.login-form .text-button{color:#859376;margin:20px auto;display:block}.dashboard{max-width:1200px;margin:auto;padding:62px 50px}.page-heading{justify-content:space-between;align-items:center;margin-bottom:45px;display:flex}.page-heading h1{margin-bottom:12px}.page-heading p{margin-bottom:0}.page-heading .eyebrow{margin-bottom:9px}.page-heading .muted{font-size:12px}.dashboard .section-label{border-bottom:1px solid var(--line);padding-bottom:13px}.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;display:grid}.project-card{color:inherit;text-decoration:none;transition:transform .2s}.project-card:hover{transform:translateY(-4px)}.book-cover{background:#dbe1ca;border:1px solid #d3dac2;border-radius:3px 9px 9px 3px;flex-direction:column;align-items:flex-start;height:265px;padding:24px 24px 25px 32px;display:flex;position:relative;box-shadow:5px 6px 15px #3242200d,inset 7px 0 #ffffff25}.book-cover:before{content:"";border-left:1px solid #59664622;height:100%;position:absolute;top:0;left:10px}.book-cover>span:first-child{letter-spacing:.15em;color:#73825f;font-size:10px}.book-cover h2{-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:32px;font-family:SimSun,serif;font-size:27px;line-height:1.65;display:-webkit-box;overflow:hidden}.cover-line{border-bottom:1px solid #66745688;width:30px;margin-top:auto}.book-cover small{letter-spacing:.16em;opacity:.6;margin-top:12px;font-size:9px}.tone-1{color:#77674e;background:#e5dfd0;border-color:#dbd3bf}.tone-2{color:#496657;background:#d9e2de;border-color:#cbd9d2}.tone-3{color:#775d59;background:#e5dcda;border-color:#d7ccca}.project-card-info{padding:18px 2px}.project-card-info h3{margin-bottom:7px}.project-card-info p{color:#979e8d;font-size:10px}.project-card-info p span{margin:0 5px}.workspace{height:calc(100dvh - 72px);display:flex;overflow:hidden}.chapter-sidebar{border-right:1px solid var(--line);background:#f0f2e9;flex-direction:column;flex-shrink:0;width:226px;padding:26px 0 15px;display:flex}.back-link{margin:0 23px 29px;font-size:11px}.sidebar-book{color:inherit;border-bottom:1px solid #dfe4d5;padding:0 23px 26px;text-decoration:none;display:block}.genre-label{letter-spacing:.1em;color:#8a967a;margin-bottom:10px;font-size:10px;display:inline-block}.sidebar-book h2{overflow-wrap:anywhere;margin-bottom:7px;font-family:SimSun,serif;font-size:21px}.sidebar-book small{color:#9aa28f;font-size:10px}.chapter-list-heading{color:#7d896e;justify-content:space-between;align-items:center;padding:20px 21px 13px;font-size:11px;display:flex}.chapter-list-heading small{color:#9fa892;margin-left:6px;font-size:10px}.chapter-list{flex:1;overflow-y:auto}.chapter-list>a{color:#747f67;border-left:3px solid #0000;align-items:baseline;gap:13px;padding:13px 18px 13px 22px;font-size:12px;text-decoration:none;display:flex}.chapter-list>a:hover{background:#e9eddf}.chapter-list>a.active{color:#465d35;background:#e2e8d7;border-left-color:#738957}.chapter-list>a>span:last-child{overflow-wrap:anywhere;min-width:0}.chapter-index{color:#a0a991;font-variant-numeric:tabular-nums;font-size:10px}.chapter-list small{color:#99a18e;margin-top:4px;font-size:9px;display:block}.sidebar-foot{text-align:center;color:#a0a891;letter-spacing:.1em;padding-top:30px;font-size:10px}.sidebar-empty{text-align:center;color:#9aa48b;flex:1;padding:30px 15px;font-size:12px;line-height:1.9}.project-overview{width:100%;padding:65px 8%;overflow-y:auto}.project-overview h1{font-family:SimSun,serif;font-size:37px}.overview-meta{color:#929c86;gap:22px;margin-bottom:50px;font-size:12px;display:flex}.overview-summary{border-top:1px solid var(--line);max-width:650px;margin-bottom:30px;padding:32px 0}.overview-summary h2{color:#7f8a70;font-size:14px}.overview-summary p{white-space:pre-wrap;color:#6c7760;margin:24px 0;line-height:2}.overview-footer{color:#9ba58e;justify-content:space-between;align-items:center;max-width:700px;margin-top:75px;display:flex}.overview-footer small{font-size:10px}.chapter-workbench{flex:1;min-width:0;display:flex}.editor-pane{scrollbar-gutter:stable;background:#fcfcf8;flex:1;min-width:0;position:relative;overflow-y:auto}.chapter-topbar{z-index:2;background:#fcfcf8f5;border-bottom:1px solid #eef0e7;justify-content:space-between;align-items:center;min-height:52px;padding:12px 27px;display:flex;position:sticky;top:0}.chapter-topbar>div{align-items:center;gap:6px;display:flex}.save-state{color:#a0aa93;white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:flex}.save-state i{background:#8da273;border-radius:50%;width:5px;height:5px}.save-state small{color:#b1b8a7;margin-left:4px;font-size:9px}.save-error,.save-conflict{color:#a65f48}.save-error i,.save-conflict i{background:#b9785c}.save-saving i{animation:1s infinite pulse}.editor-pane>.notice{margin:12px 28px}.manuscript-heading{max-width:760px;margin:0 auto;padding:45px 49px 17px}.manuscript-heading .eyebrow{margin-bottom:17px;font-size:10px}.manuscript-heading h1{color:#37412f;overflow-wrap:anywhere;margin-bottom:12px;font-family:SimSun,serif;font-size:28px;line-height:1.6}.outline-preview{color:#a6ae9a;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:11px;overflow:hidden}.editor-toolbar{border-bottom:1px solid #eef0e7;justify-content:space-between;align-items:center;max-width:760px;margin:0 auto;padding:6px 39px;display:flex}.editor-toolbar>div{align-items:center;gap:2px;display:flex}.editor-toolbar button{color:#96a187;background:0 0;border:none;border-radius:4px;min-width:30px;padding:4px 10px;font-size:12px}.editor-toolbar button:hover,.editor-toolbar button[aria-pressed=true]{color:#5d7745;background:#edf1e5}.toolbar-separator{border-left:1px solid var(--line);height:14px;margin:0 6px}.word-count{color:#a3ac96;white-space:nowrap;font-size:10px}.manuscript{max-width:760px;min-height:53vh;margin:auto;padding:25px 49px 50px}.tiptap{color:#49523e;letter-spacing:.025em;white-space:pre-wrap;overflow-wrap:anywhere;min-height:44vh;font-family:Noto Serif SC,SimSun,serif;font-size:18px;line-height:2.1}.tiptap:focus{outline:none}.tiptap p{margin:0 0 1.3em}.tiptap p.is-editor-empty:first-child:before{content:"在这里，写下故事的第一句…";float:left;color:#c0c6b5;pointer-events:none;height:0}.tiptap h2{margin:1em 0;font-size:24px}.tiptap pre{white-space:pre-wrap;background:#f0f3e9;border-radius:5px;padding:14px}.tiptap blockquote{color:#89967b;border-left:2px solid #bac7a9;padding-left:18px}.tiptap span[data-source=ai]{background:#eaf1e3;border-bottom:1px solid #cbdcbc}.tiptap span[data-source=mixed]{background:#f7efdc;border-bottom:1px solid #e4d5ac}.editor-locked{opacity:.75}.editor-foot{color:#a5ae98;border-top:1px solid #eef0e7;justify-content:space-between;gap:15px;padding:20px 30px;font-size:9px;display:flex}.source-legend{flex-wrap:wrap;gap:15px;display:flex}.source-legend span{align-items:center;gap:5px;display:flex}.source-legend i{background:#d9dfcf;border-radius:50%;width:6px;height:6px;display:inline-block}.source-legend .ai{background:#a6bc8b}.source-legend .mixed{background:#d7c187}.backup-link{color:#a8b09c;margin:0 25px 15px;font-size:9px}.conflict-actions{flex-wrap:wrap;gap:10px;padding:5px 28px;display:flex}.ai-panel select{width:100%;color:inherit;background:#faf9f6;border:1px solid #dcd8cf;border-radius:8px;padding:10px}.input-view{min-width:0}.input-view details{margin:10px 0}.input-view summary,.input-preview>summary{cursor:pointer;font-size:12px}.input-view pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;font:inherit;background:#f4f2ed;border-radius:8px;padding:10px;font-size:12px;line-height:1.7;overflow:auto}.input-preview{margin:10px 0}.ai-panel{border-left:1px solid var(--line);background:#f8f9f3;flex-shrink:0;width:322px;padding:28px 25px;overflow-y:auto}.ai-heading{align-items:center;gap:12px;margin-bottom:30px;display:flex}.ai-symbol{color:#879f6d;text-align:center;width:35px;font-size:27px}.ai-heading h2{letter-spacing:.05em;margin:0 0 3px;font-size:15px}.ai-heading small{color:#9ba88c;font-size:10px}.ai-panel label{color:#75846a;margin-bottom:10px;font-size:12px}.ai-panel textarea{background:#fffefa;border-color:#e1e6d7;padding:13px;font-size:12px;line-height:1.9}.ai-panel .primary{font-size:12px}.ai-panel .primary span{margin-left:12px}.ai-panel form{margin-bottom:27px}.ai-panel .helper-text{margin:12px 0 17px;font-size:10px}.ai-panel .section-label{letter-spacing:.04em;margin-bottom:13px;font-size:11px}.stop-button{color:#8f5e46;background:#fbf5eb;border-color:#dfceba}.generation-result{border-top:1px solid var(--line);padding-top:24px}.result-prose{white-space:pre-wrap;overflow-wrap:anywhere;color:#718063;min-height:100px;max-height:330px;padding:5px 0;font-family:SimSun,serif;font-size:14px;line-height:2;overflow-y:auto}.result-empty{color:#abb49d;padding:30px 4px;font-family:inherit;font-size:11px}.usage-note{color:#a3ae95;flex-direction:column;gap:3px;padding:12px 0;font-size:9px;display:flex}.result-actions{flex-wrap:wrap;gap:9px;margin:14px 0;display:flex}.result-actions button{padding:8px 12px;font-size:11px}.generation-history{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.history-item{text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;width:100%;margin:0 0 6px;padding:11px;display:block}.history-item.selected{background:#eff3e7;border-color:#dbe4ce}.history-item>span{text-overflow:ellipsis;white-space:nowrap;color:#77886a;font-size:11px;font-weight:400;display:block;overflow:hidden}.history-item small{color:#a3af95;margin-top:5px;font-size:9px;display:block}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#26321c55;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}dialog[open]{color:#637355;background:#fcfdf8;border:1px solid #dfe5d4;border-radius:10px;width:440px;max-width:100%;max-height:85dvh;margin:0;padding:26px 30px 29px;display:block;position:relative;overflow-y:auto;box-shadow:0 15px 70px #22301526}.modal-title{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-title h2{margin:0;font-size:20px}.modal-title .icon-button{color:#9aa98a}.modal-backdrop p{font-size:13px;line-height:1.9}@media (width>=1600px){.chapter-sidebar{width:250px}.ai-panel{width:355px;padding-left:30px;padding-right:30px}.manuscript-heading,.manuscript,.editor-toolbar{max-width:850px}}@media (width<=1150px){.chapter-sidebar{width:190px}.ai-panel{width:275px;padding:22px 18px}.manuscript,.manuscript-heading{padding-left:28px;padding-right:28px}.editor-toolbar{padding-left:19px;padding-right:19px}.chapter-topbar{padding:12px 16px}.save-state small{display:none}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.editor-foot{padding:17px 20px}.editor-foot>small{display:none}}@media (width<=850px){.workspace{height:auto;min-height:calc(100dvh - 72px);display:block;overflow:visible}.chapter-sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;padding:15px 20px 0;display:block}.sidebar-book{border:0;padding:0;display:inline-block}.sidebar-book h2{margin:0 10px;font-family:inherit;font-size:16px;display:inline}.sidebar-book small,.sidebar-foot,.sidebar-book .genre-label{display:none}.back-link{margin:0 15px 0 0;font-size:10px}.chapter-list-heading{float:right;gap:12px;padding:0;display:inline-flex}.chapter-list{margin:10px -20px 0;padding:0 10px;display:flex;overflow-x:auto}.chapter-list>a{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;padding:13px 16px}.chapter-list>a.active{border-bottom-color:#738957}.chapter-list small,.chapter-index{display:none}.sidebar-empty{margin:0;padding:5px 0 10px;font-size:11px}.sidebar-empty br{display:none}.editor-pane{overflow:visible}.chapter-workbench{min-height:80vh}.ai-panel{width:280px}.project-overview{padding:40px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard{padding:40px 30px}.login-intro{padding-left:40px;padding-right:30px}.login-intro h1{font-size:32px}.login-intro .brand{margin-bottom:80px}}@media (width<=650px){.app-header{height:62px;padding:0 17px}.app-header nav{gap:12px}.app-header .brand{gap:9px;font-size:16px}.brand-symbol{width:31px;height:31px;font-size:20px}.app-header .brand small,.user-name{display:none}.balance{border:0;padding-right:0;font-size:9px}.app-header .quiet-link{font-size:11px}.chapter-workbench{display:block}.ai-panel{border-left:0;border-top:1px solid var(--line);width:100%;padding:28px}.manuscript{min-height:46vh;padding:20px 27px}.manuscript-heading{padding-top:32px}.manuscript-heading h1{font-size:24px}.chapter-topbar{gap:10px;padding:9px 15px;top:0}.tiptap{min-height:35vh;font-size:17px}.editor-foot{padding:15px 23px}.source-legend{gap:11px;font-size:8px}.chapter-list-heading>span{display:none}.dashboard{padding:35px 22px}.page-heading{gap:16px;margin-bottom:30px}.page-heading h1{font-size:26px}.page-heading .muted{display:none}.page-heading .primary{white-space:nowrap;padding:9px 12px;font-size:11px}.project-grid{gap:18px}.book-cover{height:215px;padding:20px 17px 20px 25px}.book-cover h2{margin-top:20px;font-size:22px}.book-cover small{font-size:7px}.project-card-info h3{font-size:13px}.project-card-info p{font-size:8px}.project-overview{padding:35px 25px}.project-overview h1{font-size:29px}.login-page{display:block}.login-intro{padding:27px 28px 25px}.login-intro .brand{margin-bottom:28px}.login-intro h1{margin-bottom:7px;font-size:28px;line-height:1.6}.login-intro .eyebrow,.login-intro>p:not(.eyebrow),.intro-foot,.book-lines{display:none}.login-form{padding:32px 28px 40px}.login-form h2{font-size:22px}.login-form .muted{margin-bottom:22px}.modal-backdrop{padding:18px}dialog[open]{padding:22px}.overview-footer{gap:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
