/* © 2026 阜阳市颍州区伏笔网络科技工作室 (Fuyang Yingzhou Fubi Network Technology Studio). 保留所有权利。
   「伏笔 · 长篇创作工作台」的源码、界面与品牌资产归著作权人所有；未经书面许可，不得复制、传播或二次销售。
   源码存证与授权说明见仓库根目录 COPYRIGHT.md。 */
:root{--bg:#f7f8f4;--paper:#fff;--sidebar:#f0f2eb;--ink:#283e33;--text:#3e4942;--muted:#8a938a;--green:#2d5944;--green-soft:#e6eee5;--line:#e5e9e1;--gold:#b69050;--gold-bg:#faf3e5;--red:#b86d57;--radius:13px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:1rem;line-height:1.6}button,input,textarea,select{font:inherit}button{cursor:pointer;transition:background .16s,box-shadow .16s,transform .16s;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:3px solid #97b2a0;outline-offset:3px}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}button{border:0;background:transparent}.icon{height:19px;width:19px;flex-shrink:0;vertical-align:middle}#app{min-height:100dvh;display:flex}.sidebar{width:252px;flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--line);height:100dvh;position:sticky;top:0;display:flex;flex-direction:column;padding:33px 20px 18px}/* 第226批（备案已通过 2026-10-09）：页脚备案号 —— 入口页 / 工作台侧栏 / 首页底部都用这一份长相 */
.site-beian{margin-top:auto;padding-top:10px;font-size:12px;line-height:1.8;color:#7b8a83}
.site-beian a{color:inherit;text-decoration:none}
.site-beian a:hover{text-decoration:underline}
/* 第233批（公安联网备案已通过 2026-10-12）：图标在前、编号在右（全国互联网安全管理服务平台的格式要求） */
.site-beian .site-gongan{display:inline-flex;align-items:center;gap:4px}
.site-beian .site-gongan-icon{width:16px;height:17px;display:block}
.site-beian-fixed{position:fixed;left:0;right:0;bottom:6px;margin:0;padding:0;text-align:center;z-index:3}
.brand{display:flex;align-items:center;gap:12px;padding:0 10px;margin-bottom:45px}.brand img{width:43px;height:43px;border-radius:12px}.brand strong{display:block;font-size:1.5625rem;font-weight:650;letter-spacing:5px;color:var(--ink);line-height:1.2}.brand small{display:block;font-size:0.875rem;letter-spacing:.6px;color:#8a9589;margin-top:7px}.workspace-label{font-size:0.875rem;font-weight:600;letter-spacing:1px;color:#8b958b;margin:0 12px 13px;display:flex;justify-content:space-between}.workspace-label span{font-size:0.875rem;letter-spacing:1.7px;opacity:.8}nav{display:flex;flex-direction:column;gap:6px}.nav-item{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:8px;text-align:left;color:#69786c;position:relative}.nav-item .icon{width:18px;height:18px}.nav-item:hover{background:#e6ebe2}.nav-item.active{background:#dfe8dc;color:#31543b;font-weight:600}.nav-item.active i{width:5px;height:5px;background:#456d4b;border-radius:50%;margin-left:auto}.books-heading{display:flex;align-items:center;gap:8px;margin:38px 12px 11px;font-size:0.875rem;color:#839081}.books-heading>span{font-size:0.875rem;background:#e1e7dd;border-radius:4px;padding:0 5px}.books-heading .icon-button{margin-left:auto}.icon-button{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;min-height:30px;min-width:30px}.icon-button:hover{background:#e8ede5}.icon-button .icon{height:16px;width:16px}.book-list{display:flex;flex-direction:column;gap:7px;overflow-y:auto;max-height:34vh}.book-item{display:flex;gap:10px;align-items:center;text-align:left;padding:11px 10px;border-radius:9px;width:100%;min-width:0}.book-item.selected{background:#fff;box-shadow:0 2px 6px #27372804;border:1px solid #e5e9e1}.book-item:hover{background:#fafbf8}.book-item>div{min-width:0}.book-item strong{display:block;font-size:0.875rem;font-weight:600;color:#445443;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:132px}.book-item small{display:block;font-size:0.875rem;color:#94a090;margin-top:3px}.book-cover{height:36px;width:29px;flex-shrink:0;border-radius:3px 6px 6px 3px;background:#dce6d5;border-left:3px solid #becdb6;display:grid;place-items:center;color:#6b8064}.book-cover .icon{width:16px;height:16px}.cover-1{background:#e5dfd2;color:#9b8f77;border-color:#d1c7b5}.cover-2{background:#dde4ec;color:#758699;border-color:#bdcbd7}.book-dot{width:5px;height:5px;flex-shrink:0;border-radius:50%;background:#618054;margin-left:auto}.add-book{display:flex;align-items:center;justify-content:center;gap:6px;font-size:0.875rem;color:#81907c;width:100%;border:1px dashed #d4ddcd;border-radius:7px;margin-top:15px;padding:8px}.add-book .icon{width:14px;height:14px}.add-book:hover{background:#e6ebe2}.sidebar-bottom{margin-top:auto;padding-top:35px}.private-note{display:flex;gap:9px;padding:13px 9px 18px;color:#71826c;font-size:0.875rem}.private-note>.icon{width:15px;height:15px;margin-top:3px}.private-note small{display:block;color:#98a190;font-size:0.875rem;margin-top:3px}.utility{width:100%;display:flex;align-items:center;gap:8px;font-size:0.875rem;color:#829079;padding:13px 9px;border-top:1px solid #dfe5d9}.utility>.icon{width:15px;height:15px}.utility>.icon:last-child{margin-left:auto;width:13px}.owner{display:flex;align-items:center;gap:9px;margin-top:12px;padding:12px 6px 0;border-top:1px solid #dfe5d9;font-size:0.875rem;color:#586b51}.owner small{display:block;font-size:0.875rem;color:#97a28f;margin-top:2px}.avatar{display:grid;place-items:center;width:31px;height:31px;background:#dde6d5;border:1px solid #cedbc4;border-radius:50%;font-size:0.875rem}.online-dot{width:5px;height:5px;background:#719360;border-radius:50%;margin-left:auto;margin-right:5px}main{flex:1;min-width:0}.topbar{height:74px;display:flex;align-items:center;gap:19px;padding:0 44px;border-bottom:1px solid var(--line);background:#fcfcf9}.breadcrumb{font-size:0.875rem;color:#7f8c7c;letter-spacing:.3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.breadcrumb span{color:#bec5b7;margin:0 11px}.sync{display:flex;gap:6px;align-items:center;font-size:0.875rem;color:#84917e;margin-left:auto;white-space:nowrap}.sync .icon{width:15px;height:15px}.private-pill{display:flex;gap:5px;align-items:center;font-size:0.875rem;color:#718069;padding:3px 7px;border:1px solid #e0e6d9;border-radius:4px;white-space:nowrap}.private-pill .icon{width:11px;height:11px}.content{max-width:1500px;margin:auto;padding:37px 44px 18px}.book-intro{display:flex;justify-content:space-between;gap:25px;align-items:center;padding-bottom:31px}.eyebrow{font-size:0.875rem;letter-spacing:2px;color:#8f9b87;font-weight:650;display:flex;align-items:center;gap:9px}.eyebrow span{height:1px;width:22px;background:#aabc9c}.title-row{display:flex;gap:13px;align-items:center;margin:9px 0 8px}.title-row h1{font-size:2rem;letter-spacing:1px;line-height:1.4;font-weight:650;color:#30462f;overflow-wrap:anywhere}.sample-tag{color:#938363;background:#eeeadd;font-size:0.875rem;border:1px solid #e5dfcc;border-radius:4px;padding:2px 6px;flex-shrink:0}.book-intro p{font-size:0.875rem;color:#8c9686}.book-meta{display:flex;gap:17px;align-items:center;margin-top:17px;font-size:0.875rem;color:#87917e}.book-meta span,.book-meta button{display:flex;gap:6px;align-items:center}.book-meta button{border-left:1px solid #dde3d6;padding-left:17px;font-size:0.875rem;color:#718169}.book-meta .icon{width:13px;height:13px}.progress-box{background:#edf1e7;border:1px solid #e0e7d5;border-radius:9px;width:223px;padding:16px 18px;flex-shrink:0}.progress-box>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:0.875rem;color:#7b8b6d}.progress-box button{color:#91a083;padding:0}.progress-box .icon{width:12px;height:12px}.progress-box strong{font-size:1.25rem;display:block;font-weight:600;color:#4b6643;margin:6px 0 8px}.progress-box strong small{font-size:0.875rem;font-weight:400;color:#9ca98f}.progress-box>small{font-size:0.875rem;color:#8c9b7e;display:block;margin-top:7px}.progress-track{height:4px;border-radius:8px;background:#dce5d0;overflow:hidden}.progress-track span{height:100%;display:block;border-radius:8px;background:#78916b}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:28px}.stat{text-align:left;padding:17px 20px 15px;background:#fff;border:1px solid var(--line);border-radius:10px}.stat:hover{border-color:#b6c5af;box-shadow:0 3px 14px #31452f08;transform:translateY(-1px)}.stat>div{font-size:0.875rem;color:#7b8776;display:flex;justify-content:space-between;align-items:center}.stat>div>span{display:grid;place-items:center;width:27px;height:27px;background:#f4f6ef;border-radius:7px;color:#829079}.stat .icon{width:15px;height:15px}.stat strong{display:block;font-size:1.8125rem;line-height:1.2;font-weight:550;letter-spacing:1px;color:#41523b;margin:5px 0 8px;font-variant-numeric:tabular-nums}.stat>small{font-size:0.875rem;color:#9da593;letter-spacing:.1px}.stat.warm{background:#fcfaf3;border-color:#eae4d3}.stat.warm>div>span{background:#f6edda;color:#b39a66}.stat.warm strong{color:#a98b50}.stat.green>div>span{background:#eaf1e5;color:#7b9870}.board{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 10px #263d2302}.board-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 25px 18px}.board-title h2{font-size:1rem;font-weight:600;color:#3a4c32;letter-spacing:.5px}.board-title p{font-size:0.875rem;color:#a0a792;margin-top:3px}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:7px;font-size:0.875rem;font-weight:500;padding:10px 16px;line-height:1.5;white-space:nowrap;min-height:37px}.primary{background:#325b43;color:#fff;box-shadow:0 2px 3px #3053420f}.primary:hover{background:#254a36;box-shadow:0 3px 10px #254a3622}.primary .icon,.secondary .icon{width:14px;height:14px}.secondary{background:white;border:1px solid #dce3d7;color:#63765a}.secondary:hover{background:#f1f5ed}.danger{background:#a95e4c;color:#fff}.danger:hover{background:#934b3c}.filter-tabs{display:flex;gap:22px;padding:0 25px;border-bottom:1px solid #e9ede4;overflow-x:auto}.filter-tab{padding:12px 0 11px;font-size:0.875rem;position:relative;color:#8c9783;white-space:nowrap;display:flex;gap:6px;align-items:center}.filter-tab span:not(.ai-unread-dot){font-size:0.875rem;background:#f1f4ec;border-radius:4px;padding:0 5px;color:#9ca691;min-width:19px;text-align:center}.filter-tab.active{color:#3e5d36;font-weight:600}.filter-tab.active:after{content:'';height:2px;background:#688957;position:absolute;bottom:0;left:0;right:0;border-radius:2px}.filter-tab.active span:not(.ai-unread-dot){background:#e8f0df;color:#72915c}.filter-bar{padding:19px 25px;display:flex;gap:10px;align-items:center}.search-field{display:flex;align-items:center;gap:8px;border:1px solid #e6ebdf;background:#fafbf8;border-radius:6px;padding:7px 11px;flex:1;min-width:110px;max-width:390px;height:35px;color:#9ba891}.search-field>.icon{width:14px;height:14px}.search-field input{border:0;outline:none;background:none;width:100%;font-size:0.875rem;color:#576c4e;min-width:0;padding:0}.search-field input::placeholder{color:#a4ad9b}.filter-bar select{font-size:0.875rem;color:#798972;border:1px solid #e3e9db;background:#fff;border-radius:6px;padding:7px 25px 7px 10px;height:35px;max-width:205px}.reset-button{border:1px solid #e3e9db;height:35px;width:35px;margin-left:auto;color:#90a082}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;table-layout:auto;text-align:left;white-space:nowrap}th{font-size:0.875rem;font-weight:500;color:#96a18c;background:#f9faf6;padding:11px 15px;border-top:1px solid #eff1eb;border-bottom:1px solid #e9ede2}th:first-child,td:first-child{padding-left:26px}th.clue-col{width:36%}td{padding:17px 15px;border-bottom:1px solid #eff1eb;font-size:0.875rem;vertical-align:middle}tbody tr{cursor:pointer;transition:background .15s}tbody tr:hover{background:#f7faf3}tbody tr:last-child td{border-bottom:0}.clue-title{display:flex;gap:8px;align-items:center}.clue-title strong{font-size:0.875rem;font-weight:500;color:#475b3e;max-width:320px;overflow:hidden;text-overflow:ellipsis}.priority-marker{width:5px;height:5px;background:#a0b094;transform:rotate(45deg);flex-shrink:0}.priority-marker.high{background:#b99959}.priority-marker.low{background:#c1cabb}.clue-sub{font-size:0.875rem!important;color:#a4ad9a!important;margin-left:13px;max-width:320px;overflow:hidden;text-overflow:ellipsis}.clue-sub b{margin:0 5px;font-weight:400}.chapter-cell{font-size:0.875rem;color:#718166;font-variant-numeric:tabular-nums}td>small{display:block;color:#a0ac94;font-size:0.875rem;margin-top:4px}.due-late{color:#ba7c67!important}.due-near{color:#b2975f!important}.badge{display:inline-flex;align-items:center;gap:5px;font-size:0.875rem;padding:3px 7px;border-radius:5px;background:#f1f3ed;color:#8a967e;white-space:nowrap;line-height:1.5}.badge>span{width:4px;height:4px;background:currentColor;border-radius:50%}.badge.open{background:#f1f3eb;color:#8d997f}.badge.resolved{background:#eaf2e4;color:#829975}.badge.partial{background:#eeedf5;color:#9c91b2}.badge.abandoned{background:#f1f1ee;color:#a4a89d}.person-chips{display:flex;gap:4px;align-items:center}.person-chips>span{font-size:0.875rem;color:#8e9b81;background:#f2f5ed;border:1px solid #eaf0e1;padding:2px 6px;border-radius:4px}.person-chips small{font-size:0.875rem;color:#a3ad99}.person-chips .more-people{background:transparent;border:0;font-size:0.875rem;padding:0 2px}.row-arrow{width:34px;padding-right:20px;padding-left:0;color:#bcc6b3}.row-arrow .icon{width:13px;height:13px}.board-foot{border-top:1px solid #e8ede1;display:flex;align-items:center;justify-content:space-between;padding:13px 25px;font-size:0.875rem;color:#a1ac96}.board-foot label{display:flex;gap:8px;align-items:center}.board-foot select{border:0;color:#8d9b82;background:none;font-size:0.875rem;padding-right:2px}.sample-note{display:flex;align-items:center;gap:8px;padding:15px 2px;font-size:0.875rem;color:#a2ad97}.sample-note>.icon{width:13px;height:13px}.sample-note button{display:flex;align-items:center;gap:5px;font-size:0.875rem;color:#8da27b;white-space:nowrap;margin-left:auto;padding-right:0}.sample-note button .icon{width:12px;height:12px}footer{padding:9px 45px 23px;color:#acb5a2;font-size:0.875rem;display:flex;justify-content:space-between;max-width:1500px;margin:auto}footer span{font-size:0.875rem;letter-spacing:.3px}.empty{text-align:center;padding:65px 20px;color:#8b9a80}.empty>.icon{width:32px;height:32px;color:#aebda2}.empty h3{font-size:0.9375rem;font-weight:500;margin-top:15px;color:#66785b}.empty p{font-size:0.875rem;margin:8px 0 19px}.empty-work{padding:100px 20px}.empty-work img{width:56px;border-radius:13px;margin-bottom:20px}.empty-work h1{font-size:1.5625rem;font-weight:500}.initial{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;width:100%;gap:20px;color:#697b5f}.initial img{width:55px}.initial p{max-width:450px;padding:0 20px;text-align:center}.timeline-legend{display:flex;gap:17px;font-size:0.875rem;color:#9aa98e;align-items:center;padding:0 25px 20px;flex-wrap:wrap}.timeline-legend>span{display:flex;align-items:center;gap:5px}.dot{height:5px;width:5px;border-radius:50%;display:inline-block}.dot.planted{background:#849c72}.dot.planned{background:#c4ab77}.dot.actual{background:#5f9376}.timeline-legend .timeline-now{margin-left:auto;border:1px solid #e3eadb;border-radius:5px;padding:3px 7px}.timeline{padding:0 25px 20px}.timeline-row{position:relative;display:grid;grid-template-columns:126px 25px 1fr;gap:0;min-height:110px}.timeline-chapter{padding:7px 15px 20px 0;text-align:right}.timeline-chapter strong{display:block;color:#627952;font-size:0.875rem;font-weight:550}.timeline-chapter small{display:block;font-size:0.875rem;color:#91a181;margin-top:3px;overflow-wrap:anywhere}.timeline-chapter span{display:block;font-size:0.875rem;color:#afbaa2;margin-top:2px}.timeline-chapter b{display:inline-block;font-size:0.875rem;font-weight:500;color:#68895b;background:#e7efdd;border-radius:4px;padding:2px 5px;margin-top:5px}.timeline-dot{position:relative;border-left:1px solid #e0e8d7;margin:0 0 0 12px}.timeline-dot:before{content:'';position:absolute;width:7px;height:7px;background:#bacbac;border:3px solid white;box-sizing:content-box;border-radius:50%;left:-7px;top:11px}.timeline-row.current .timeline-dot:before{background:#648a52;box-shadow:0 0 0 3px #edf3e6}.timeline-row:last-child .timeline-dot{border-left-color:transparent}.timeline-items{display:flex;flex-direction:column;gap:8px;padding:0 0 24px 15px}.timeline-card{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #e6eddc;border-radius:8px;padding:13px 14px}.timeline-card:hover{background:#f6f9f0}.timeline-card strong{font-size:0.875rem;font-weight:500;color:#5c7250;flex:1;overflow-wrap:anywhere}.event-kind{font-size:0.875rem;min-width:44px}.event-kind.planted{color:#8caa73}.event-kind.planned{color:#b9a270}.event-kind.actual{color:#759d7a}.timeline-card>.icon{width:12px;height:12px;color:#adbda1}.people-layout{display:grid;grid-template-columns:200px 1fr;border-top:1px solid #f0f3e9;min-height:450px}.people-list{padding:18px 12px;border-right:1px solid #eaf0e2;background:#fcfdf9}.list-label{font-size:0.875rem;color:#98a788;display:flex;justify-content:space-between;padding:0 10px 13px}.person-select{display:flex;align-items:center;gap:9px;width:100%;padding:12px 10px;text-align:left;border-radius:7px;margin-bottom:5px}.person-select.active{background:#eaf1e0}.person-select:hover{background:#f0f5e8}.person-avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e1ebd5;color:#859970;font-size:0.875rem;flex-shrink:0}.avatar-1{background:#eee7d9;color:#a69677}.avatar-2{background:#e7e2ee;color:#9f8cae}.avatar-3{background:#dfe9ec;color:#8299a4}.person-select strong{font-size:0.875rem;font-weight:550;color:#6d835e;display:block}.person-select small{font-size:0.875rem;color:#a3b090;display:block;margin-top:2px}.person-select>.icon{width:12px;height:12px;color:#a8ba96;margin-left:auto}.graph-area{min-width:0;padding:20px}.graph-heading{display:flex;align-items:center;justify-content:space-between}.graph-heading h3{font-size:0.875rem;color:#6a805b;font-weight:550}.graph-heading>span{font-size:0.875rem;color:#a6b394}.graph-wrap{width:100%;overflow-x:auto;margin-top:14px;border:1px solid #edf2e4;border-radius:8px;background:#fcfdf8}.relation-graph{width:100%;min-width:500px;display:block}.relation-graph g{cursor:pointer}.relation-graph g:hover rect{fill:#f3f8eb;stroke:#b5c6a5}.graph-caption{font-size:0.875rem;color:#a7b396;margin:10px 0 18px}.shared-people{display:flex;flex-wrap:wrap;gap:8px}.shared-people>small{width:100%;font-size:0.875rem;color:#93a37f;margin-bottom:3px}.shared-people button{font-size:0.875rem;display:flex;gap:6px;align-items:center;background:#f5f8ed;border:1px solid #e6edda;border-radius:5px;padding:6px 9px;color:#8da275}.shared-people .icon{width:12px;height:12px}.shared-people button span{font-size:0.875rem;color:#aaba92;margin-left:6px}.all-related{margin-top:20px;font-size:0.875rem;color:#7b9465}.all-related summary{cursor:pointer}.all-related button{display:flex;justify-content:space-between;gap:12px;width:100%;font-size:0.875rem;color:#789060;padding:10px 0;border-bottom:1px solid #edf2e5;text-align:left}.modal-overlay{position:fixed;inset:0;z-index:50;background:#142e2359;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px}.modal{max-width:520px;width:100%;max-height:calc(100dvh - 48px);overflow-y:auto;background:#fff;border-radius:15px;box-shadow:0 30px 80px #122d2530;position:relative}.modal.wide{max-width:740px}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e7ebe3;padding:23px 28px;background:#fcfdf9;position:sticky;top:0;z-index:2}.modal-head h2{font-size:1.25rem;font-weight:550;color:#345237;margin-top:5px}.modal-head .eyebrow{font-size:0.875rem}.modal-head>.icon-button{color:#849a77}.modal-body{padding:24px 28px}.modal-foot{border-top:1px solid #e6ecde;padding:17px 28px;display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;bottom:0;background:#fff;z-index:2}.modal-foot>div{display:flex;gap:9px}.modal label:not(.file-picker){display:block;font-size:0.875rem;color:#617854;margin:0 0 17px}.modal label em{color:#a68d65;font-style:normal}.modal input:not([type=file]),.modal select,.modal textarea{width:100%;display:block;border:1px solid #dce5d4;border-radius:7px;padding:10px 11px;margin-top:7px;font-size:0.875rem;color:#486039;background:#fcfdf9;outline:none}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#8da57d;box-shadow:0 0 0 3px #ebf2e3}.modal input:disabled{background:#f1f3ed;color:#b3bca8}.modal input::placeholder,.modal textarea::placeholder{color:#a7b099}.modal textarea{resize:vertical;line-height:1.8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid.three{grid-template-columns:1fr 1fr 1fr}.form-context{color:#8f9f82;font-size:0.875rem;margin-bottom:20px}.form-error{font-size:0.875rem;color:#a35f4f;background:#fcf1ec;border-radius:6px;padding:9px 12px;margin-bottom:16px}.form-error:empty{display:none}.save-hint{display:flex;gap:5px;align-items:center;font-size:0.875rem;color:#9dad8d}.save-hint .icon{width:14px;height:14px}.label-row{display:flex;align-items:center;justify-content:space-between;margin:5px 0 5px}.label-row h4{font-weight:500;font-size:0.875rem;color:#65804f}.small-button{font-size:0.875rem;color:#7b9568;display:flex;gap:4px;align-items:center}.small-button .icon{width:13px;height:13px}.muted{color:#9dac8f;font-size:0.875rem}.field-note{font-size:0.875rem;margin-bottom:9px}.volume-row{display:flex;gap:8px;align-items:center;margin-bottom:10px}.volume-row input{margin:0!important;min-width:0}.volume-row input[name=volume-title]{flex:1}.volume-row input[type=number]{width:75px}.volume-row>span{font-size:0.875rem;color:#9eb18c}.volume-row .icon-button{color:#adba9f}#volume-rows{margin-bottom:20px}.text-danger{color:#b88970;font-size:0.875rem;display:flex;align-items:center;gap:5px}.text-danger .icon{width:13px;height:13px}.detail-top{display:flex;gap:10px;align-items:center;margin-bottom:14px}.priority-text{font-size:0.875rem;color:#a99975}.detail-title{font-size:1.375rem;font-weight:550;color:#3a5736;margin-bottom:15px;overflow-wrap:anywhere}.detail-copy{font-size:0.875rem;color:#7a8f69;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.detail-chapters{display:grid;grid-template-columns:repeat(3,1fr);padding:20px 17px;background:#f6f9f0;border:1px solid #e7eedc;border-radius:10px;gap:15px;margin:22px 0}.detail-chapters>div{display:flex;flex-direction:column;gap:5px}.detail-chapters small{font-size:0.875rem;color:#97a885}.detail-chapters strong{font-size:1rem;font-weight:500;color:#688452}.detail-chapters span{font-size:0.875rem;color:#9aac87}.detail-section{margin-top:23px}.detail-section h4{font-size:0.875rem;font-weight:500;color:#7a9166;margin-bottom:10px}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.tag{display:flex;gap:6px;align-items:center;font-size:0.875rem;color:#7e9868;border:1px solid #e2ebd6;background:#f5f9ed;border-radius:5px;padding:5px 9px}.tag .icon{width:12px;height:12px}.note-copy{background:#fcfcf6;border-left:3px solid #e4e8d5;padding:12px 15px;font-size:0.875rem}.inline-confirm{position:sticky;bottom:0;z-index:3;background:#faf3e3;padding:20px;display:flex;gap:10px;align-items:center;border-top:1px solid #ddd4bc;font-size:0.875rem;box-shadow:0 -5px 10px #4137200d}.inline-confirm>span{flex:1;color:#9d7e47}.backup-block{display:flex;gap:16px;padding:5px 0 24px;margin-bottom:20px;border-bottom:1px solid #e8eedf}.backup-block>.icon{width:25px;height:25px;color:#8fa773;margin-top:2px}.backup-block h3{font-size:0.875rem;font-weight:500;color:#6d8957}.backup-block p{font-size:0.875rem;color:#98a987;margin:5px 0 15px}.file-picker{border:1px dashed #bacba8;color:#819d69;background:#f8fbf2;cursor:pointer;padding:9px 14px;border-radius:6px;display:inline-block;font-size:0.875rem}.file-picker input{display:block;font-size:0.875rem;max-width:240px;margin-top:8px}.import-preview{padding:16px;background:#f4f9eb;border:1px solid #dfeacd;border-radius:8px;color:#88a06e}.import-preview h4{font-size:0.875rem}.import-preview p{font-size:0.875rem;margin:9px 0}.import-preview button{margin-top:10px}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,15px);background:#2f5140;color:#fff;font-size:0.875rem;border-radius:9px;padding:12px 21px;box-shadow:0 4px 24px #203d2620;opacity:0;pointer-events:none;z-index:100;transition:opacity .2s,transform .2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.error{background:#9c6250}
@media(min-width:1550px){.content{padding-top:46px}.stat{padding:22px 24px}.title-row h1{font-size:2.25rem}.board-top{padding-top:26px;padding-bottom:22px}td{padding-top:20px;padding-bottom:20px}.clue-title strong{font-size:0.875rem}.sidebar{width:264px}}
@media(max-width:1150px){.sidebar{width:210px;padding-left:14px;padding-right:14px}.content{padding:27px}.topbar{padding:0 27px}.stats{gap:10px}.stat{padding:15px}.clue-title strong{max-width:220px}.filter-bar{gap:7px}.filter-bar select{max-width:160px}.brand{padding-left:6px}.brand strong{font-size:1.375rem}.brand small{font-size:0.875rem}.book-item strong{max-width:100px}.people-layout{grid-template-columns:165px 1fr}footer{padding-left:27px;padding-right:27px}}
@media(max-width:900px){.sidebar{width:180px;padding-left:10px;padding-right:10px}.brand{gap:8px}.brand img{width:34px;height:34px}.brand small{font-size:0.875rem;letter-spacing:0}.nav-item{font-size:0.875rem;gap:8px}.book-item strong{max-width:80px}.book-cover{width:24px}.private-note{font-size:0.875rem;padding-left:4px;gap:6px}.private-note small{font-size:0.875rem}.content{padding:23px}.book-intro{gap:18px;align-items:flex-start}.title-row h1{font-size:1.625rem}.progress-box{width:182px;padding:12px 14px}.stats{grid-template-columns:repeat(4,1fr);gap:8px}.stat{padding:12px}.stat>div{font-size:0.875rem}.stat>div>span{width:23px;height:23px}.stat strong{font-size:1.5625rem}.stat>small{font-size:0.875rem}.filter-tabs{gap:16px}.filter-bar{flex-wrap:wrap}.search-field{max-width:none;flex-basis:100%}.filter-bar select{flex:1;max-width:none}.clue-title strong{max-width:230px}.people-layout{grid-template-columns:145px 1fr}.person-select{gap:6px;padding:10px 6px}.person-avatar{width:25px;height:25px}.person-select>.icon{display:none}.topbar{gap:12px}.private-pill{display:none}.book-intro p{max-width:260px}.sample-note{align-items:flex-start;flex-wrap:wrap}.sample-note>span{flex:1}.sample-note>button{margin-left:20px}.graph-area{padding:13px}.board-top{padding:20px}.board-title p{font-size:0.875rem}.filter-tabs,.filter-bar{padding-left:20px;padding-right:20px}th:first-child,td:first-child{padding-left:20px}}
@media(max-width:680px){#app{display:block}.sidebar{position:relative;width:100%;height:auto;padding:18px 18px 0;display:block;border-right:0;border-bottom:1px solid #e1e8d7}.brand{margin:0 0 18px;padding:0;gap:9px}.brand img{width:34px;height:34px}.brand strong{font-size:1.375rem;letter-spacing:4px}.brand small{font-size:0.875rem}.workspace-label,.books-heading,.add-book,.sidebar-bottom{display:none}nav{position:absolute;top:19px;right:14px;flex-direction:row;gap:3px}.nav-item{padding:9px 8px;font-size:0.875rem;gap:4px}.nav-item .icon{width:14px;height:14px}.nav-item.active i{display:none}.book-list{display:flex;flex-direction:row;max-height:none;overflow-x:auto;padding-bottom:12px;gap:7px}.book-item{width:auto;flex-shrink:0;padding:7px 10px;gap:6px;border:1px solid transparent}.book-item strong{font-size:0.875rem;max-width:170px}.book-item small{display:none}.book-cover{height:25px;width:21px}.book-cover .icon{width:12px;height:12px}.book-dot{margin-left:4px;width:4px;height:4px}.topbar{height:43px;padding:0 18px;gap:8px}.breadcrumb{font-size:0.875rem}.breadcrumb span{margin:0 5px}.sync{font-size:0.875rem;padding-right:0}.sync .icon{width:12px;height:12px}.content{padding:23px 16px 8px}.book-intro{flex-direction:column;gap:18px;padding-bottom:22px}.book-intro>div:first-child{width:100%}.eyebrow{font-size:0.875rem}.title-row{margin-top:7px}.title-row h1{font-size:1.8125rem}.book-intro p{font-size:0.875rem;max-width:none}.book-meta{font-size:0.875rem;margin-top:12px}.book-meta button{font-size:0.875rem}.progress-box{width:100%;padding:12px 15px;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.progress-box>div:first-child{font-size:0.875rem;grid-column:1}.progress-box>strong{grid-column:1;grid-row:2;font-size:1.0625rem;margin-bottom:0;margin-top:2px}.progress-track{grid-column:2;grid-row:1;align-self:center}.progress-box>small{grid-column:2;grid-row:2;align-self:center;margin-top:0;font-size:0.875rem}.progress-box>div:first-child button{margin-left:10px;margin-right:auto}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:22px}.stat{padding:14px 16px}.stat>div{font-size:0.875rem}.stat strong{font-size:1.6875rem;margin:3px 0 6px}.stat>small{font-size:0.875rem}.board{border-radius:10px}.board-top{padding:18px 16px}.board-title h2{font-size:0.9375rem}.board-title p{font-size:0.875rem;max-width:210px}.primary,.secondary{font-size:0.875rem;padding:9px 12px;min-height:35px}.filter-tabs{padding-left:16px;padding-right:16px;gap:20px}.filter-tab{font-size:0.875rem;padding-top:10px}.filter-tab span:not(.ai-unread-dot){font-size:0.875rem;min-width:15px;padding:0 3px}.filter-bar{padding:14px 16px;gap:8px}.search-field{height:35px}.filter-bar select{font-size:0.875rem;width:100px}.table-wrap{border-top:1px solid #edf1e6}table{min-width:740px}th{font-size:0.875rem}td{padding-top:15px;padding-bottom:15px}.clue-title strong{font-size:0.875rem;max-width:260px}.clue-sub{font-size:0.875rem!important}.chapter-cell{font-size:0.875rem}.person-chips>span{font-size:0.875rem}.badge{font-size:0.875rem}.board-foot{padding:12px 16px;font-size:0.875rem}.board-foot select{font-size:0.875rem}.sample-note{font-size:0.875rem;padding-top:13px}.sample-note button{font-size:0.875rem}.sample-note>.icon{width:11px;height:11px}footer{font-size:0.875rem;padding:12px 18px 24px;gap:10px}footer span{font-size:0.875rem}.modal-overlay{padding:10px}.modal{border-radius:12px;max-height:calc(100dvh - 20px)}.modal-head{padding:18px}.modal-head h2{font-size:1.1875rem}.modal-body{padding:20px 18px}.modal-foot{padding:14px 18px}.form-grid{gap:12px}.form-grid.three{grid-template-columns:1fr 1fr}.form-grid.three label:last-child{grid-column:1/-1}.modal label{font-size:0.875rem!important}.modal input:not([type=file]),.modal textarea,.modal select{font-size:1rem;padding:9px;margin-top:5px}.form-grid .muted{font-size:0.875rem;display:block}.save-hint{font-size:0.875rem;max-width:100px}.save-hint .icon{display:none}.volume-row{gap:5px}.volume-row input[name=volume-title]{font-size:0.875rem}.volume-row input[type=number]{width:64px;font-size:0.875rem}.volume-row .icon-button{min-width:22px}.detail-title{font-size:1.3125rem}.detail-chapters{padding:16px 12px;gap:10px}.detail-chapters strong{font-size:0.875rem}.detail-chapters span{font-size:0.875rem}.modal-foot>div{gap:7px}.text-danger{font-size:0.875rem}.timeline-legend{padding:0 16px 16px;font-size:0.875rem;gap:11px}.timeline-legend .timeline-now{margin-left:0}.timeline{padding:0 13px 10px}.timeline-row{grid-template-columns:74px 20px 1fr;min-height:100px}.timeline-chapter{padding-right:5px}.timeline-chapter strong{font-size:0.875rem}.timeline-chapter small{font-size:0.875rem}.timeline-items{padding-left:10px;gap:7px}.timeline-card{padding:10px;gap:4px;flex-wrap:wrap}.timeline-card strong{font-size:0.875rem;order:2;flex-basis:100%;margin-top:3px}.timeline-card .badge{margin-left:auto}.timeline-card>.icon{display:none}.event-kind{font-size:0.875rem}.people-layout{display:block}.people-list{display:flex;overflow-x:auto;gap:6px;padding:12px;align-items:center;border-right:0;border-bottom:1px solid #e5edde}.list-label{display:none}.person-select{width:auto;white-space:nowrap;flex-shrink:0;margin:0;padding:8px}.person-select strong{font-size:0.875rem}.person-select small{font-size:0.875rem}.graph-area{padding:16px}.graph-wrap{overflow-x:auto}.relation-graph{min-width:470px}.graph-caption{font-size:0.875rem}.inline-confirm{flex-wrap:wrap;padding:15px}.inline-confirm>span{flex-basis:100%}.empty{padding:48px 15px}.empty p{font-size:0.875rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(min-width:681px){.clue-title strong{font-size:0.875rem}.chapter-cell{font-size:0.875rem}th{font-size:0.875rem}.clue-sub{font-size:0.875rem!important}.badge{font-size:0.875rem}.person-chips>span{font-size:0.875rem}.filter-tab{font-size:0.875rem}.search-field input,.filter-bar select{font-size:0.875rem}.stat>small{font-size:0.875rem}.stat>div{font-size:0.875rem}.book-intro p{font-size:0.875rem}.book-meta,.book-meta button{font-size:0.875rem}.board-title p{font-size:0.875rem}.book-item strong{font-size:0.875rem}.book-item small{font-size:0.875rem}.primary,.secondary{font-size:0.875rem}.board-foot{font-size:0.875rem}td>small{font-size:0.875rem}.sync{font-size:0.875rem}.timeline-card strong{font-size:0.875rem}.detail-copy{font-size:0.875rem}.modal label:not(.file-picker){font-size:0.875rem}}

@media(max-width:680px){.sidebar{padding-bottom:8px}.add-book{display:flex;width:auto;position:absolute;right:18px;bottom:21px;margin:0;padding:6px 9px;background:#f0f2eb;font-size:0.875rem}.book-list{padding-right:94px}.sidebar .add-book .icon{width:11px;height:11px}}

/* Story bible and outline workspace */
[hidden]{display:none!important}
.sidebar{overflow-y:auto}.sidebar nav{flex-shrink:0}.planning-counts{display:flex;gap:32px;padding:18px 28px;border:1px solid #e0e7d8;border-radius:12px;background:#eef3e7}.planning-counts>div{display:flex;flex-direction:column;align-items:center;gap:3px}.planning-counts strong{font-size:1.6875rem;font-weight:550;color:#526e44;font-variant-numeric:tabular-nums}.planning-counts span{font-size:0.875rem;color:#93a083}.plan-intro{padding-bottom:26px}.plan-space{min-width:0}.plan-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:23px}.plan-module{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e4eadd;border-radius:9px;padding:15px 13px;text-align:left;min-width:0}.plan-module:last-child{grid-column:span 2}.plan-module:hover{border-color:#a9bc98;background:#fafcf7}.plan-module.active{background:#e8efdf;border-color:#bdcfaa;box-shadow:0 2px 4px #2d472107}.module-icon{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:8px;background:#f1f5ec;color:#91a77a}.module-icon .icon{height:16px;width:16px}.plan-module.active .module-icon{background:#d8e5c9;color:#719459}.module-label{font-size:0.875rem;font-weight:500;color:#708560}.plan-module.active .module-label{color:#446834;font-weight:600}.plan-module b{margin-left:auto;font-size:0.875rem;color:#a4b195;font-weight:500}.plan-top-actions{display:flex;gap:10px;align-items:center}.plan-top-actions>.icon-button{color:#9bad8c}.plan-board{min-height:380px}.plan-filter .search-field{max-width:none}.plan-filter{border-bottom:1px solid #eff3e8}.plan-filter>.icon-button{color:#9bad8c;flex-shrink:0}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:23px}.setting-card{display:flex;flex-direction:column;text-align:left;background:#fff;border:1px solid #e5ecdb;border-radius:10px;padding:19px;min-width:0;transition:border-color .15s,box-shadow .15s}.setting-card:hover{background:#fcfdf9;border-color:#b8cba5;box-shadow:0 3px 15px #46662b08}.setting-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.setting-card-top>span:first-child{display:flex;align-items:center;gap:6px;font-size:0.875rem;color:#a0b08e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-card-top .icon{width:13px;height:13px}.setting-status{display:inline-block;flex-shrink:0;font-size:0.875rem;border-radius:4px;padding:3px 7px;line-height:1.4;background:#f0f3e9;color:#9aaa8a}.setting-status.review{background:#faf0dd;color:#b89b5c}.setting-status.confirmed{background:#e8f1df;color:#789c5b}.setting-status.archived{background:#eeeef0;color:#a0a0ad}.setting-card h3{font-size:1rem;font-weight:550;color:#4e6d3c;line-height:1.55;margin-bottom:9px;overflow-wrap:anywhere}.setting-card>p{font-size:0.875rem;color:#93a482;line-height:1.8;min-height:38px;overflow-wrap:anywhere}.setting-snippets{padding:13px 0;display:flex;flex-direction:column;gap:7px}.setting-snippets>div{display:flex;gap:11px;align-items:baseline;font-size:0.875rem}.setting-snippets span{flex-shrink:0;color:#a5b594;max-width:44%}.setting-snippets b{font-size:0.875rem;font-weight:400;color:#7e9967;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setting-card-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #eff3e8;padding-top:12px;margin-top:auto;color:#a6b497;font-size:0.875rem}.setting-card-bottom>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setting-card-bottom>span:last-child{display:flex;align-items:center;gap:7px;flex-shrink:0}.setting-card-bottom .icon{width:12px;height:12px}.planning-foot{display:flex;gap:15px;align-items:center;justify-content:space-between;font-size:0.875rem;padding:17px 0;color:#9bab89}.planning-foot>span,.planning-foot>button{display:flex;gap:6px;align-items:center}.planning-foot>button{font-size:0.875rem;color:#8da676;white-space:nowrap}.planning-foot .icon{height:12px;width:12px}.plan-pagination{display:flex;gap:13px;align-items:center}.plan-pagination button{border:1px solid #e3eadd;border-radius:4px;display:grid;place-items:center;width:26px;height:23px;color:#8fa677}.plan-pagination .icon{width:12px;height:12px}.setting-empty{padding:60px 20px 70px}.setting-editor{max-width:880px!important}.plan-title-fields{grid-template-columns:1fr 150px}.editor-tabs{display:flex;gap:5px;border-bottom:1px solid #e1ead6;margin:8px 0 22px}.editor-tabs>button{font-size:0.875rem;padding:10px 16px;border-bottom:2px solid transparent;color:#9aaa89}.editor-tabs>button.active{color:#67844e;border-bottom-color:#839d6b}.plan-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px}.modal .plan-fields-grid textarea{font-size:0.875rem;min-height:95px;line-height:1.75}.modal .link-picker{border:1px solid #e1ead5;border-radius:8px;margin:0 0 13px;padding:11px 13px}.link-picker summary{font-size:0.875rem;color:#7e9667;cursor:pointer}.selection-count{float:right;background:#f0f5e8;padding:1px 6px;border-radius:4px;font-size:0.875rem;color:#95a983}.modal .picker-options{max-height:200px;overflow-y:auto;padding-top:8px}.modal .picker-option{display:flex!important;gap:8px;align-items:center;padding:7px;margin:0!important;border-radius:5px}.modal .picker-option[hidden]{display:none!important}.modal .picker-option:hover{background:#f8fbf3}.modal .picker-option input[type=checkbox]{display:inline-block;width:15px;height:15px;padding:0;margin:0;flex-shrink:0;box-shadow:none;accent-color:#71925b}.modal .picker-option>span{font-size:0.875rem;color:#819a6c;overflow-wrap:anywhere}.modal .picker-option>small{font-size:0.875rem;color:#b0bfa1;margin-left:auto;white-space:nowrap}.modal .picker-search{font-size:0.875rem!important;padding:8px!important;background:#f8fbf4!important}.md-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:0.875rem;color:#a6b496;margin-bottom:10px}.md-toolbar button{font-size:0.875rem;color:#79965f;border:1px solid #dfebd3;border-radius:5px;padding:5px 9px}.modal .markdown-input{font-family:ui-monospace,SFMono-Regular,Consolas,"PingFang SC",monospace;font-size:0.875rem;line-height:1.85;min-height:350px;padding:17px;tab-size:2}.body-counter{text-align:right;color:#a6b698;font-size:0.875rem;margin-top:8px}.markdown-output{font-size:0.875rem;line-height:1.9;color:#607e4c;overflow-wrap:anywhere;background:#fbfdf7;border:1px solid #e7efdd;border-radius:8px;padding:20px 24px}.markdown-output h2,.markdown-output h3,.markdown-output h4,.markdown-output h5,.markdown-output h6{color:#4d7138;font-weight:550;line-height:1.65;margin:20px 0 11px}.markdown-output h2{font-size:1.375rem}.markdown-output h3{font-size:1.125rem}.markdown-output h4{font-size:0.9375rem}.markdown-output>:first-child{margin-top:0}.markdown-output p{margin:8px 0}.markdown-output ul,.markdown-output ol{padding-left:25px;margin:12px 0}.markdown-output li{padding:2px 0}.markdown-output blockquote{padding:8px 14px;border-left:3px solid #bfcea9;background:#f2f7e9;margin:13px 0;color:#91a778}.markdown-output pre{white-space:pre-wrap;padding:15px;border-radius:7px;background:#edf2e4;overflow-wrap:anywhere;font-size:0.875rem}.markdown-output code{font-size:.9em;padding:2px 4px;background:#edf3e3;border-radius:3px}.markdown-output a{color:#588d42;text-decoration:underline}.markdown-output hr{border:0;border-top:1px solid #dce8cf;margin:19px 0}.md-table{overflow-x:auto;margin:15px 0}.markdown-output table{white-space:normal;min-width:300px;border:1px solid #dfead3}.markdown-output th,.markdown-output td{padding:8px 10px!important;font-size:0.875rem;border:1px solid #e0ebd4}.setting-detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.setting-detail-fields>div{padding:15px 17px;border:1px solid #e8efdd;border-radius:8px;background:#fafcf6}.setting-detail-fields h4{font-size:0.875rem;font-weight:500;color:#9aaf86;margin-bottom:7px}.setting-detail-fields p{font-size:0.875rem;line-height:1.85;color:#78935f;white-space:pre-wrap;overflow-wrap:anywhere}.setting-links{display:flex;flex-direction:column;gap:6px}.setting-links button{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e6efd9;border-radius:6px;text-align:left;color:#85a26b;font-size:0.875rem}.setting-links button:hover{background:#f5f9ed}.setting-links button>span{flex:1;overflow-wrap:anywhere}.setting-links button small{font-size:0.875rem;color:#aabf94}.setting-links .icon{width:13px;height:13px;flex-shrink:0}.bond-list{padding:21px 24px}.relationship-note{display:flex;align-items:center;gap:8px;color:#9eb58a;font-size:0.875rem;margin-bottom:19px}.relationship-note .icon{width:14px;height:14px}.bond-card{display:block;width:100%;text-align:left;border:1px solid #e1ecd3;border-radius:9px;padding:17px 19px;background:#fbfdf7;margin:0 0 13px}.bond-card:hover{border-color:#b6cba2;background:#f7fbf0}.bond-card>div:first-child{display:flex;gap:13px;align-items:center;flex-wrap:wrap}.bond-card strong{font-size:0.875rem;color:#789c5d;font-weight:550}.bond-type{font-size:0.875rem;color:#a4b992;display:flex;align-items:center;gap:7px}.bond-type .icon{width:14px;height:14px}.bond-card p{font-size:0.875rem;color:#94ae7e;line-height:1.8;margin:10px 0 13px}.bond-meta{display:flex;justify-content:space-between;gap:15px;font-size:0.875rem;color:#aec39a}.bond-detail-names{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.bond-detail-names button{font-size:1.1875rem;color:#6e914f;font-weight:550;text-align:left}.bond-detail-names span{font-size:0.875rem;color:#a7bc91;display:flex;gap:8px;align-items:center}.bond-detail-names .icon{height:15px;width:15px}.bond-graph-area{padding:20px 24px}.bond-graph-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:17px}.bond-graph-toolbar label{font-size:0.875rem;color:#95af80}.bond-graph-toolbar select{border:1px solid #dfeace;padding:6px 10px;border-radius:6px;color:#839f6c;background:#fff;font-size:0.875rem;margin-left:8px;max-width:210px}.bond-graph-toolbar>span{font-size:0.875rem;color:#afc198}.bond-graph-scroll{overflow-x:auto;background:radial-gradient(#e1eaca .7px,transparent .7px) 0 0/18px 18px #fbfdf6;border:1px solid #e7efda;border-radius:9px}.bond-graph{width:100%;min-width:580px;display:block}.bond-graph g[role=button]{cursor:pointer}.bond-graph g[role=button]:hover rect{stroke:#a8c189;fill:#f5fae9}.bond-graph-records{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bond-graph-records .bond-card{margin:0}.chapter-settings-links{display:flex;flex-wrap:wrap;gap:5px}.chapter-settings-links button{display:flex;align-items:center;gap:4px;padding:4px 7px;border-radius:5px;border:1px dashed #dde8d0;color:#9bb184;font-size:0.875rem;text-align:left}.chapter-settings-links button:hover{background:#f3f8eb}.chapter-settings-links .icon{width:11px;height:11px}.chapter-settings-links button:only-child{margin-bottom:4px}
@media(min-width:1500px){.module-label{font-size:0.875rem}.setting-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.setting-card{padding:20px}.plan-modules{grid-template-columns:repeat(7,minmax(0,1fr))}.plan-module{flex-wrap:wrap;gap:8px;padding:15px}.plan-module:last-child{grid-column:auto}.module-label{width:100%;order:3}.plan-module b{align-self:flex-start}}
@media(max-width:1100px){.planning-counts{gap:20px;padding:15px 20px}.plan-module{gap:7px;padding:12px 10px}.module-label{font-size:0.875rem}.module-icon{width:24px;height:24px}.module-icon .icon{width:14px;height:14px}.setting-grid{gap:12px;padding:19px}.setting-card{padding:16px}.setting-card h3{font-size:0.875rem}.plan-board .board-title p{max-width:340px}.planning-counts strong{font-size:1.5rem}.plan-intro .title-row h1{font-size:1.6875rem}}
@media(max-width:900px){.plan-modules{grid-template-columns:repeat(2,minmax(0,1fr))}.setting-grid{grid-template-columns:1fr}.plan-intro{flex-wrap:wrap}.planning-counts{gap:30px}.planning-counts span{font-size:0.875rem}.bond-graph-records{grid-template-columns:1fr}.bond-graph-toolbar{align-items:flex-start;flex-direction:column;gap:7px}}
@media(max-width:680px){.sidebar{padding-bottom:0;overflow:visible}.sidebar .brand{margin-bottom:12px}.sidebar nav{position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding-bottom:11px}.sidebar .nav-item{padding:8px 3px;justify-content:center;gap:4px;white-space:nowrap;font-size:0.875rem}.sidebar .nav-item .icon{width:12px;height:12px}.sidebar .book-list{padding-right:0;margin-bottom:0;padding-bottom:8px}.sidebar .add-book{position:static;float:none;width:auto;margin:0 0 11px;padding:5px 8px;font-size:0.875rem}.planning-counts{width:100%;justify-content:space-around;padding:13px 16px;gap:15px}.planning-counts>div{flex-direction:row;gap:9px;align-items:baseline}.planning-counts strong{font-size:1.375rem}.planning-counts span{font-size:0.875rem}.plan-intro{gap:16px;padding-bottom:19px}.plan-intro .title-row h1{font-size:1.75rem}.plan-modules{gap:8px;margin-bottom:20px}.plan-module{padding:11px 12px;gap:8px}.module-label{font-size:0.875rem}.module-icon{width:27px;height:27px}.plan-module b{font-size:0.875rem}.plan-top-actions{gap:4px}.plan-top-actions>.icon-button{min-width:27px}.plan-board .board-top{gap:8px}.plan-board .board-title h2{font-size:0.875rem}.plan-board .board-title p{font-size:0.875rem;max-width:190px}.plan-top-actions .primary{font-size:0.875rem;padding:8px 10px}.plan-filter .search-field{flex-basis:100%}.plan-filter{padding-top:12px;padding-bottom:12px}.setting-grid{padding:15px;gap:13px}.setting-card{padding:16px}.setting-card h3{font-size:1rem}.setting-card-top>span:first-child{font-size:0.875rem}.setting-card>p{font-size:0.875rem}.setting-snippets span{font-size:0.875rem}.planning-foot{align-items:flex-start;font-size:0.875rem;gap:10px}.planning-foot>button{font-size:0.875rem}.planning-foot>span{align-items:flex-start}.planning-foot .icon{flex-shrink:0;margin-top:2px}.plan-title-fields{grid-template-columns:1fr 108px}.plan-fields-grid{grid-template-columns:1fr}.modal .plan-fields-grid textarea{font-size:1rem;min-height:100px}.editor-tabs>button{font-size:0.875rem;padding:9px 14px}.setting-editor .modal-body{padding:18px 16px}.setting-editor .modal-foot{padding:13px 16px}.modal .markdown-input{font-size:1rem;padding:13px;min-height:350px}.md-toolbar{font-size:0.875rem;align-items:flex-start}.md-toolbar button{white-space:nowrap;font-size:0.875rem}.modal .picker-option>span{font-size:0.875rem}.modal .picker-search{font-size:1rem!important}.markdown-output{font-size:0.875rem;padding:16px}.markdown-output h2{font-size:1.3125rem}.markdown-output table{min-width:280px}.setting-detail-fields{grid-template-columns:1fr;gap:12px}.setting-detail-fields p{font-size:0.875rem}.setting-links button{gap:7px;font-size:0.875rem}.setting-links button small{display:none}.bond-list,.bond-graph-area{padding:16px}.relationship-note{font-size:0.875rem;align-items:flex-start}.bond-card{padding:15px}.bond-card>div:first-child{gap:9px}.bond-card strong{font-size:0.875rem}.bond-graph{min-width:550px}.bond-graph-toolbar label{font-size:0.875rem}.bond-graph-toolbar select{font-size:0.875rem}.bond-detail-names button{font-size:1.125rem}.character-tabs{gap:20px}.chapter-settings-links{gap:4px}.chapter-settings-links button{font-size:0.875rem}.chapter-settings-links button .icon{width:10px;height:10px}}
/* Writing surface: a quiet page with an evidence rail. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.writing-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:8px 0 28px}.writing-intro h1{font-size:1.875rem;line-height:1.45;color:#294639;margin:7px 0}.writing-intro p{font-size:0.875rem;color:#6d7d71}.writing-total{display:flex;align-items:center;gap:25px}.writing-total strong{font-size:1.4375rem;font-weight:550;color:#355f49}.writing-total small{display:block;font-size:0.875rem;font-weight:400;margin-top:5px;color:#748578}.writing-shell{display:grid;grid-template-columns:185px minmax(300px,1fr) 325px;border:1px solid #dce5d8;background:#fff;border-radius:12px;overflow:hidden;min-height:780px;box-shadow:0 5px 24px #253e2606}.writing-directory{padding:18px 12px;background:#f4f7ef;border-right:1px solid #dde6d7;min-width:0}.writing-directory-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.writing-directory h2{font-size:0.9375rem;color:#465e49;font-weight:600}.writing-directory>input,.writing-directory>select{width:100%;font-size:0.875rem;color:#475c4a;background:#fff;border:1px solid #dbe3d4;border-radius:6px;padding:8px;margin-bottom:8px}.writing-directory>.secondary{width:100%;font-size:0.875rem;margin-top:14px}#writing-list{max-height:720px;overflow:auto;margin:10px -5px}.writing-chapter{display:block;width:100%;padding:12px 10px;text-align:left;border-radius:7px;margin-bottom:6px;transition:background .15s}.writing-chapter:hover{background:#eaf0e2}.writing-chapter.selected{background:#e2ecd8;box-shadow:inset 3px 0 #4e7552}.writing-chapter>span{display:flex;justify-content:space-between;gap:5px;color:#607356;font-size:0.875rem}.writing-chapter small{font-size:0.875rem}.writing-chapter strong{display:block;font-size:0.875rem;color:#324d37;font-weight:550;margin:8px 0;line-height:1.5;overflow-wrap:anywhere}.writing-chapter em{font-style:normal;font-size:0.875rem;color:#7a886d}.writing-empty-small{font-size:0.875rem;line-height:1.8;color:#7d8877;padding:8px 0}.writing-page{display:flex;flex-direction:column;min-width:0;background:#fffefb}.writing-page-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 28px 15px;color:#65795f;font-size:0.875rem}.writing-page-head b{font-weight:400;font-size:0.875rem;margin-left:8px;padding:4px 7px;background:#edf2e5;border-radius:4px}.writing-text-button{display:inline-flex;align-items:center;gap:5px;color:#587355;font-size:0.875rem;padding:5px 0}.writing-text-button .icon{width:15px;height:15px}.writing-title{display:block;width:calc(100% - 56px);margin:0 28px!important;padding:12px 0!important;border:none!important;box-shadow:none!important;background:transparent!important;font-size:1.5625rem!important;font-weight:550;line-height:1.5;color:#263e2d!important;border-radius:0!important}.writing-context{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:5px 28px 20px;color:#8a9484;font-size:0.875rem;border-bottom:1px solid #edf0e8}.writing-context button{display:flex;align-items:center;gap:4px;font-size:0.875rem;color:#6c815d}.writing-context .icon{width:12px;height:12px}.writing-body{display:block;width:100%;min-height:590px;flex:1;resize:vertical;border:0!important;box-shadow:none!important;border-radius:0!important;background:transparent!important;color:#303e32!important;padding:28px!important;font-family:Georgia,'Noto Serif SC','Songti SC','SimSun',serif;font-size:1.125rem!important;line-height:2.05;letter-spacing:.03em;tab-size:2}.writing-body::placeholder{color:#a4ad9b}.writing-save-row{display:flex;justify-content:space-between;gap:12px;padding:13px 25px;color:#778771;border-top:1px solid #edf0e8;font-size:0.875rem}.writing-save-row .save-failed{color:#ac4237;max-width:65%}.writing-actions{padding:16px 23px;border-top:1px solid #e6ece0;background:#f8faf4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.writing-actions>span{font-size:0.875rem;color:#7f8d76;margin-right:auto;align-self:center}.writing-actions>div{display:flex;gap:8px}.writing-actions .primary,.writing-actions .secondary{font-size:0.875rem;padding:10px 13px}.writing-empty{padding:100px 35px;text-align:center}.writing-empty>div{display:inline-flex;padding:20px;border-radius:50%;background:#eef4e4;color:#78985c;margin-bottom:20px}.writing-empty>div .icon{width:30px;height:30px}.writing-empty h2{font-size:1.4375rem;color:#3b573d;margin-bottom:16px}.writing-empty p{font-size:1rem;line-height:1.9;color:#78876e;max-width:360px;margin:0 auto 27px}.calibration-panel{border-left:1px solid #dce5d8;background:#f9fbf6;min-width:0;max-height:1100px;overflow-y:auto}.calibration-head{padding:22px 20px;border-bottom:1px solid #e4eade;position:sticky;top:0;background:#f5f8ef;z-index:1}.calibration-head>div{display:flex;gap:9px;align-items:center;color:#4d6b41}.calibration-head h2{font-size:1rem;font-weight:600;color:#385533}.calibration-mode{display:block;font-size:0.875rem;margin-top:10px;color:#748265}.calibration-empty,.calibration-summary{padding:20px;border-bottom:1px solid #e5ebdf}.calibration-empty p,.calibration-summary>p{font-size:0.875rem;line-height:1.8;color:#65765e;white-space:pre-wrap;overflow-wrap:anywhere}.calibration-scope{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.calibration-scope span{font-size:0.875rem;padding:5px 8px;border:1px solid #dce5d0;color:#7a8c69;border-radius:5px}.calibration-empty .writing-help{font-size:0.875rem;color:#8a967e}.calibration-report-meta{font-size:0.875rem;color:#819273;margin-bottom:10px}.calibration-summary .calibration-warning{background:#fff3db;color:#8b642d;border:1px solid #ead8b3;padding:12px;border-radius:6px;font-size:0.875rem}.calibration-summary>.writing-text-button{margin-top:12px}.calibration-summary>small{display:block;font-size:0.875rem;color:#829077;line-height:1.7;margin-top:10px}.calibration-facts,.calibration-reminders,.calibration-suggestions{padding:20px;border-bottom:1px solid #e5ebdf}.calibration-panel h3{font-size:0.875rem;font-weight:600;color:#48633f;margin-bottom:15px}.calibration-panel h3 small{font-size:0.875rem;font-weight:400;display:inline-block;color:#87957b;margin-left:4px}.calibration-fact-group{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:12px 0}.calibration-fact-group>span{font-size:0.875rem;color:#647d55;flex-basis:100%}.calibration-fact-group button{font-size:0.875rem;line-height:1.6;border:1px solid #dfe8d7;padding:3px 6px;border-radius:4px;color:#527146;background:#fff}.calibration-fact-group>small{font-size:0.875rem;color:#939d8a}.calibration-reminders>button{display:block;text-align:left;width:100%;margin:8px 0;padding:10px;background:#fff9eb;border:1px solid #ece1c4;border-radius:6px}.calibration-reminders strong{display:block;font-size:0.875rem;color:#836c43;line-height:1.5;font-weight:500}.calibration-reminders span{font-size:0.875rem;color:#94815e;display:block;line-height:1.7;margin-top:6px}.calibration-title-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.calibration-title-row select{font-size:0.875rem;border:1px solid #dfe6d6;background:#fff;border-radius:4px;padding:4px;color:#738663;max-width:100px}.calibration-card{padding:16px 13px;border:1px solid #dce5d4;background:#fff;border-radius:8px;margin-top:15px}.calibration-card-meta{display:flex;justify-content:space-between;font-size:0.875rem;color:#6c8755;gap:6px}.calibration-card-meta small{font-size:0.875rem;color:#96a28b}.calibration-card h4{font-size:0.9375rem;font-weight:550;line-height:1.65;margin:10px 0;color:#3e6034;overflow-wrap:anywhere}.calibration-card>p{font-size:0.875rem;line-height:1.8;color:#7a8870;overflow-wrap:anywhere}.calibration-card details{margin:13px 0}.calibration-card summary{font-size:0.875rem;color:#6d845a;cursor:pointer}.calibration-before,.calibration-after{padding:10px;margin-top:8px;border-radius:5px;background:#f5f6f2}.calibration-after{background:#eef5e5}.calibration-card details small{font-size:0.875rem;color:#879578}.calibration-card details p{font-size:0.875rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;color:#53654a;margin:7px 0}.calibration-card blockquote{font-size:0.875rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;border-left:2px solid #c7d5b6;padding:8px 10px;margin:15px 0;color:#8a967f;max-height:190px;overflow-y:auto}.calibration-card-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.calibration-card-actions button{font-size:0.875rem;color:#88997a;padding:6px 0}.calibration-card-actions button:first-child{margin-right:auto}.calibration-card-actions button.accept{background:#527744;color:#fff;padding:6px 10px;border-radius:4px}.calibration-card-actions button:disabled{opacity:.4;cursor:not-allowed}.writing-timeline{margin:8px 0 14px;padding:12px 14px;background:#f2f7eb;border:1px solid #dfe8d3;border-radius:7px}.writing-timeline>button{display:flex;gap:7px;align-items:center;font-size:0.875rem;color:#5b7948}.writing-timeline .icon{width:15px;height:15px}.writing-timeline>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.writing-timeline span{font-size:0.875rem;padding:3px 6px;border-radius:4px;color:#83956f;background:#fff}.writing-timeline small{font-size:0.875rem;color:#83956f;flex-basis:100%;margin-top:5px}
@media(min-width:1700px){.writing-shell{grid-template-columns:220px minmax(430px,1fr) 370px}.writing-body{padding:35px 46px!important}.writing-title{width:calc(100% - 92px);margin:0 46px!important}.writing-page-head,.writing-context{padding-left:46px;padding-right:46px}}
@media(max-width:1300px){.writing-shell{grid-template-columns:160px minmax(280px,1fr)}.calibration-panel{grid-column:1/-1;border-top:1px solid #dce5d8;border-left:0;max-height:none}.calibration-head{position:static}.calibration-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.calibration-title-row{grid-column:1/-1}.calibration-card{margin-top:0}.calibration-facts{display:flex;flex-wrap:wrap;gap:10px 25px}.calibration-facts>h3{flex-basis:100%;margin-bottom:0}.calibration-fact-group{flex:1;min-width:120px}.writing-intro{align-items:flex-start}.writing-total{flex-wrap:wrap;justify-content:flex-end;gap:16px}.writing-total strong{font-size:1.25rem}}
@media(max-width:680px){.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:6px}.sidebar .nav-item{font-size:0.875rem;padding:9px 4px}.writing-intro{flex-direction:column;gap:18px}.writing-intro h1{font-size:1.6875rem}.writing-total{width:100%;justify-content:space-between;gap:12px}.writing-total strong{font-size:1.25rem}.writing-total .primary{font-size:0.875rem}.writing-shell{display:block;margin:0 -10px;border-radius:8px}.writing-directory{border-right:0;border-bottom:1px solid #dde6d7;padding:16px}.writing-directory-head{margin-bottom:8px}.writing-directory>input,.writing-directory>select{display:inline-block;width:calc(50% - 5px);font-size:1rem}.writing-directory>select{margin-left:5px}#writing-list{display:flex;overflow-x:auto;max-height:none;gap:8px;margin:7px 0}.writing-chapter{min-width:160px;max-width:190px}.writing-directory>.secondary{width:auto;margin-top:3px}.writing-page-head{padding:19px 20px 10px}.writing-title{font-size:1.4375rem!important;width:calc(100% - 40px);margin:0 20px!important}.writing-body{min-height:560px;padding:24px 20px!important;font-size:1.125rem!important}.writing-context{padding:5px 20px 17px}.writing-actions{padding:15px}.writing-actions>span{flex-basis:100%}.writing-actions>div{width:100%}.writing-actions .primary{flex:1}.writing-save-row{padding:12px 16px;flex-wrap:wrap;font-size:0.875rem}.calibration-suggestions{grid-template-columns:1fr}.calibration-title-row{grid-column:auto}.calibration-panel{max-height:none}.writing-empty{padding:60px 24px}.writing-empty p{font-size:1rem}}
.md-transfer .backup-block{align-items:flex-start}.md-transfer .backup-block h3{font-size:1rem;color:#466239}.md-transfer .backup-block p{font-size:0.875rem;line-height:1.8;color:#748a63}.md-transfer .secondary,.md-transfer .file-picker{font-size:0.875rem}.md-transfer-buttons{display:flex;gap:8px;flex-wrap:wrap}.md-import-box{padding:22px;border:1px solid #dce7d1;background:#f8fbf3;border-radius:9px;margin-top:8px}.md-import-box>h3{font-size:1.1875rem;font-weight:550;color:#446337}.md-import-file-count{font-size:0.875rem;color:#8b9c7a;margin:12px 0 18px}.md-import-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.modal .md-import-options label,.modal .md-import-row-fields label{font-size:0.875rem;color:#748d60;margin:0}.modal .md-import-options input,.modal .md-import-options select,.modal .md-import-row-fields input{font-size:0.9375rem;background:#fff;border-color:#d9e6cc;padding:10px 11px}.modal .md-import-checkbox{display:flex;align-items:center;gap:9px;font-size:0.875rem;color:#607f48;margin:18px 0 8px}.modal .md-import-checkbox input{width:17px;height:17px;flex-shrink:0;margin:0;padding:0;accent-color:#66894c}.md-import-hint{font-size:0.875rem!important;line-height:1.85;color:#8c9e78}.md-import-row{border:1px solid #dfe9d4;border-radius:7px;padding:16px;background:#fff;margin:13px 0}.md-import-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:0.875rem;color:#789361;margin-bottom:13px}.md-import-row-top>span{overflow-wrap:anywhere;min-width:0}.md-import-row-top>small{font-size:0.875rem;white-space:nowrap;color:#a1b08f}.md-import-row-fields{display:grid;grid-template-columns:minmax(0,1fr) 105px;gap:12px}.md-import-row-fields:has(>label:only-child){grid-template-columns:1fr}.md-import-row details{margin-top:13px}.md-import-row summary{font-size:0.875rem;color:#8b9f76;cursor:pointer;line-height:1.7}.md-import-preview-body{margin-top:12px;max-height:320px;overflow:auto;font-size:1rem;color:#657e51}.md-import-ready{display:flex;gap:7px;align-items:center;font-size:0.875rem;color:#648847;line-height:1.7;padding:12px 0}.md-import-ready .icon{width:17px;height:17px;flex-shrink:0}#md-import-validation .form-error{display:block;font-size:0.875rem;line-height:1.8;margin:13px 0}#md-import-validation .primary{font-size:0.875rem}#md-import-validation .primary:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:680px){.md-import-box{padding:16px 12px}.md-import-options{grid-template-columns:1fr;gap:13px}.md-import-row{padding:13px 10px}.modal .md-import-options input,.modal .md-import-options select,.modal .md-import-row-fields input{font-size:1rem}.md-import-row-fields{grid-template-columns:minmax(0,1fr) 83px;gap:9px}.md-import-row-top{flex-wrap:wrap;gap:4px}.md-import-preview-body{padding:13px}.md-transfer-buttons{flex-direction:column;align-items:flex-start}}
.plan-modules .plan-module{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}.plan-module-select{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;flex:1;width:100%;padding:15px 12px;text-align:left;color:inherit}.plan-module-select .module-label{font-size:0.875rem;line-height:1.6;min-width:0;width:auto;order:initial;white-space:normal;overflow-wrap:anywhere}.plan-module-select .module-icon{width:28px;height:28px}.plan-module-select b{align-self:center;margin:0;font-size:0.875rem}.plan-module-create{display:flex;justify-content:center;align-items:center;gap:7px;width:100%;min-height:42px;padding:9px 12px;border-top:1px solid #dfe8d5;color:#57793f;font-size:0.875rem;background:#f8fbf3}.plan-module.active .plan-module-create{background:#e1ecd6;border-color:#cbdcbb;color:#426c2c}.plan-module-create:hover{background:#e9f2dd;color:#315c21}.plan-module-create .icon{width:16px;height:16px;flex-shrink:0}.plan-module-select:focus-visible,.plan-module-create:focus-visible{outline:2px solid #648948;outline-offset:-3px}@media(max-width:680px){.plan-module-select{padding:13px 10px;gap:7px}.plan-module-select .module-label{font-size:0.875rem}.plan-module-create{min-height:44px}}
.md-import-errors{margin:16px 0;border:1px solid #e8c6b6;border-radius:8px;background:#fff8f1;overflow:hidden}.md-error-heading{display:flex;gap:8px;align-items:center;padding:13px 15px;color:#9c573d;font-size:0.875rem;line-height:1.7}.md-error-heading .icon{width:17px;height:17px}.md-error-list{max-height:300px;overflow-y:auto;overscroll-behavior:contain}#md-import-validation .md-error-link{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;width:100%;border-radius:0;border:0;border-top:1px solid #efddd0;background:transparent;color:#ab6044;font-size:0.875rem;line-height:1.75;padding:13px 15px;margin:0;min-height:54px}.md-error-link>span:first-child{min-width:0;overflow-wrap:anywhere}.md-error-link strong{display:block;font-size:0.875rem;font-weight:600;margin-bottom:4px}.md-error-link strong small{font-size:0.875rem;font-weight:400}.md-error-link .md-error-jump{display:flex;align-items:center;gap:6px;font-size:0.875rem;flex-shrink:0}.md-error-jump .icon{width:16px;height:16px}#md-import-validation .md-error-link:hover{background:#fceadf}.md-error-link:focus-visible{outline:2px solid #b77252;outline-offset:-3px}.md-import-row.md-row-invalid{border-color:#dbaa91}.md-import-row.md-row-target{background:#fffaf3;box-shadow:0 0 0 3px #eac5a96b}.modal .md-import-row-fields input[aria-invalid=true],.modal .md-import-options input[aria-invalid=true],.modal .md-import-options select[aria-invalid=true]{border-color:#c78464;background:#fffaf5}.md-row-errors p{font-size:0.875rem;line-height:1.8;color:#ad664a;overflow-wrap:anywhere;margin:10px 0 0}.md-error-navigation{display:flex;align-items:center;gap:18px;margin-top:12px}.md-error-navigation[hidden]{display:none}.md-error-navigation button{font-size:0.875rem;color:#8b7258;min-height:36px;text-decoration:underline;text-underline-offset:3px}.md-import-row input,.md-import-row summary,#md-import-validation{scroll-margin-block:90px}@media(max-width:680px){.md-error-heading{font-size:0.875rem;padding:12px}.md-error-list{max-height:240px}#md-import-validation .md-error-link{padding:12px;font-size:0.875rem;gap:9px}.md-error-link strong{font-size:0.875rem}.md-error-link .md-error-jump{font-size:0.875rem}.md-error-navigation{gap:14px;flex-wrap:wrap}.md-error-navigation button{min-height:42px;font-size:0.875rem}}

.setting-card{padding:0;overflow:hidden}
.md-import-volumes{border:1px solid #d7e2cb;border-radius:8px;padding:15px;background:#fff;margin:16px 0}.md-import-volumes>summary{font-size:0.9375rem;color:#5b7848;font-weight:550;cursor:pointer}.md-import-volumes>summary>span{font-size:0.875rem;font-weight:400;color:#8b9d7b;margin-left:10px}.md-import-volumes>.md-import-hint{margin:12px 0}.md-volume-row{display:grid;grid-template-columns:minmax(120px,1fr) 90px 90px 40px;align-items:end;gap:10px;margin:14px 0}.modal .md-volume-row label{font-size:0.875rem;margin:0;color:#7a9067}.modal .md-volume-row input{font-size:0.9375rem;line-height:1.7;background:#fbfdf7;border-color:#d9e5cd;padding:9px 10px}.modal .md-volume-row input[aria-invalid=true]{border-color:#c78464;background:#fffaf5}.md-volume-row .icon-button{margin-bottom:7px}.md-volume-existing{font-size:0.875rem;color:#97a887;padding-bottom:13px;text-align:center}.md-import-volumes>.secondary{font-size:0.875rem;margin-top:4px}.md-row-placement{font-size:0.875rem;line-height:1.8;color:#6c8857;background:#f2f7eb;border-radius:5px;margin-top:12px;padding:7px 10px;overflow-wrap:anywhere}.chapter-volume-imports{padding:20px 25px 24px;background:#fafcf6;border-top:1px solid #e5ebdd;border-bottom:1px solid #e5ebdd}.chapter-volume-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.chapter-volume-heading h3{font-size:1.0625rem;font-weight:550;color:#577342}.chapter-volume-heading p{font-size:0.875rem;color:#8c9e7a;line-height:1.8;margin-top:5px}.chapter-volume-heading .secondary{font-size:0.875rem;flex-shrink:0}.chapter-volume-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:360px;overflow-y:auto;padding:3px}.chapter-volume-card{display:flex;flex-direction:column;justify-content:space-between;gap:14px;border:1px solid #dce7d0;border-radius:8px;background:#fff;padding:16px;min-width:0}.chapter-volume-card h4{font-size:0.9375rem;line-height:1.7;color:#557244;font-weight:550;overflow-wrap:anywhere}.chapter-volume-card p{font-size:0.875rem;color:#8b9f78;line-height:1.8;margin-top:5px}.chapter-volume-card .secondary{font-size:0.875rem;justify-content:center;min-height:39px}.plan-top-actions>.secondary{font-size:0.875rem}@media(max-width:1200px){.chapter-volume-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-volume-heading{align-items:flex-start;flex-wrap:wrap}.plan-top-actions{flex-wrap:wrap;justify-content:flex-end}.plan-top-actions>.secondary{font-size:0.875rem}}@media(max-width:680px){.md-import-volumes{padding:13px 10px}.md-import-volumes>summary{font-size:0.9375rem}.md-import-volumes>summary>span{display:block;margin:5px 0 0;font-size:0.875rem}.md-volume-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 35px;gap:8px;padding:12px 0;border-bottom:1px solid #e7eedf}.md-volume-row label:first-child{grid-column:1/-1}.modal .md-volume-row input{font-size:1rem;min-width:0}.md-import-volumes>.secondary{min-height:42px}.md-row-placement{font-size:0.875rem}.chapter-volume-imports{padding:18px 15px}.chapter-volume-grid{grid-template-columns:1fr;max-height:440px}.chapter-volume-card{padding:15px;gap:11px}.chapter-volume-card h4{font-size:1rem}.chapter-volume-card .secondary{font-size:0.875rem;min-height:42px}.chapter-volume-heading h3{font-size:1.0625rem}.chapter-volume-heading .secondary{font-size:0.875rem;min-height:42px}.plan-top-actions>.secondary{font-size:0.875rem;min-height:38px}}
.sidebar{overflow-y:auto}.sidebar nav,.sidebar .brand,.sidebar .workspace-label,.sidebar .books-heading,.sidebar .add-book,.sidebar .sidebar-bottom{flex-shrink:0}.sidebar .book-list{flex-shrink:0}
.corpus-subnav{display:grid;gap:4px;margin:0 0 0 21px;padding-left:11px;border-left:1px solid #cedbc4}.corpus-subnav button{display:flex;align-items:center;gap:8px;padding:9px 7px;text-align:left;font-size:0.875rem;line-height:1.5;color:#72846b;border-radius:6px}.corpus-subnav button.active{background:#e5edde;color:#426238}.corpus-subnav .icon{width:14px;height:14px}
.corpus-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:8px 0 30px}.corpus-intro h1{font-size:2rem;line-height:1.5;color:#294639;margin:7px 0}.corpus-intro p{font-size:0.9375rem;line-height:1.9;color:#73836a}.corpus-intro-actions{display:flex;gap:10px;flex-shrink:0}.corpus-intro .primary,.corpus-intro .secondary{font-size:0.875rem;min-height:44px}.corpus-board{background:#fffefb;border:1px solid #dce5d8;border-radius:12px;overflow:hidden}.corpus-tabs{display:flex;gap:30px;padding:0 28px;background:#f2f6ed;border-bottom:1px solid #dfe7d8}.corpus-tabs>button{display:flex;align-items:center;gap:10px;padding:20px 0 17px;font-size:1rem;color:#829079;border-bottom:3px solid transparent}.corpus-tabs>button.active{color:#3f6035;font-weight:600;border-color:#5d7f48}.corpus-tabs>button>span{font-size:0.875rem;font-weight:400;padding:1px 7px;border-radius:5px;background:#e2ead9;color:#728763}.corpus-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px 18px}.corpus-heading h2{font-size:1.25rem;font-weight:600;color:#3d5935;margin:0 0 8px}.corpus-heading p{font-size:0.875rem;line-height:1.9;color:#829175}.corpus-heading>.secondary{font-size:0.875rem;flex-shrink:0}.corpus-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:0 28px 19px;border-bottom:1px solid #e8ecdf}.corpus-filters .search-field{flex:1;min-width:220px;background:#fff}.corpus-filters .search-field input{font-size:0.875rem;width:100%}.corpus-filters>select{max-width:170px;border:1px solid #dce5d3;border-radius:7px;background:#fff;color:#6e835f;padding:10px 12px;font-size:0.875rem;min-height:43px}.corpus-result-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 28px;color:#84947a;font-size:0.875rem}.corpus-result-bar label{display:flex;align-items:center;gap:7px}.corpus-result-bar select{background:transparent;border:0;color:#748b65;font-size:0.875rem}.corpus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 28px 28px}.corpus-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #dfe7d7;border-radius:9px;overflow:hidden;transition:box-shadow .15s,border-color .15s}.corpus-card:hover{border-color:#b7cba4;box-shadow:0 5px 16px #36532408}.corpus-card-open{flex:1;width:100%;display:flex;flex-direction:column;text-align:left;padding:20px}.corpus-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;width:100%;min-width:0}
.corpus-card-book{padding:1px 8px;border:1px solid #dfe7d7;border-radius:10px;color:#6f8a5c;background:#f4f8ef}.corpus-card-meta>span{font-size:0.875rem;color:#63854a;background:#eef5e5;padding:3px 8px;border-radius:4px;overflow-wrap:anywhere}.corpus-card-meta small{font-size:0.875rem;color:#92a080;flex-shrink:0}.corpus-card h3{font-size:1.0625rem;line-height:1.75;font-weight:600;color:#3e5934;overflow-wrap:anywhere;margin-bottom:10px}.corpus-card-open>p{font-size:0.875rem;line-height:1.85;color:#879479;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-bottom:17px}.corpus-tags{display:flex;flex-wrap:wrap;gap:6px;font-size:0.875rem;color:#83946f}.corpus-tags>span{background:#f3f6ee;border:1px solid #e7eddf;padding:2px 6px;border-radius:4px;overflow-wrap:anywhere}.corpus-card-open>.corpus-tags{margin-top:auto}.corpus-card-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;border-top:1px solid #eaf0e3;background:#fbfcf7;font-size:0.875rem;min-height:47px;color:#97a287}.corpus-card-foot>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.corpus-card-foot button{display:flex;align-items:center;gap:5px;flex-shrink:0;color:#738f5c;padding:5px}.corpus-card-foot .icon{height:14px;width:14px}.corpus-empty{padding:65px 25px 75px;text-align:center}.corpus-empty>.icon{height:32px;width:32px;color:#9aaf87;margin-bottom:18px}.corpus-empty h3{font-size:1.375rem;color:#547047;margin-bottom:12px;font-weight:550}.corpus-empty p{font-size:0.9375rem;color:#8b9b7b;line-height:1.9;margin-bottom:24px}.corpus-empty .secondary{font-size:0.9375rem}.corpus-pagination{display:flex;justify-content:center;align-items:center;gap:18px;padding:0 24px 28px;font-size:0.875rem;color:#859776}.corpus-pagination .secondary{font-size:0.875rem}.corpus-footnote{display:flex;align-items:center;gap:7px;font-size:0.875rem;color:#98a58b;padding:20px 0;line-height:1.9}.corpus-footnote .icon{width:14px;height:14px}
.modal .corpus-editor label,.modal .corpus-import label{font-size:0.875rem;color:#748c61}.modal .corpus-editor input,.modal .corpus-editor select,.modal .corpus-editor textarea,.modal .corpus-import input,.modal .corpus-import select{font-size:1rem;line-height:1.75;color:#49643c}.corpus-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 10px}.corpus-editor-heading label{margin:0}.corpus-editor-heading .secondary{font-size:0.875rem;padding:7px 10px}.modal #corpus-body{font-family:ui-monospace,'PingFang SC','Microsoft YaHei',monospace;line-height:1.95;min-height:300px}.corpus-editor .markdown-output{margin-top:15px}.corpus-editor .markdown-output[hidden]{display:none}.corpus-detail-kicker{font-size:0.875rem;color:#8a9d76;line-height:1.9;margin-bottom:12px}.corpus-detail>h3{font-size:1.5625rem;line-height:1.7;color:#3c5832;margin-bottom:15px;overflow-wrap:anywhere}.corpus-summary{font-size:1rem;color:#7b9167;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 17px}.corpus-detail .corpus-source{font-size:0.875rem;color:#98a887;line-height:1.9;margin:17px 0 24px;overflow-wrap:anywhere}.corpus-detail .markdown-output{font-size:1rem;line-height:2}.corpus-import .form-context{font-size:0.875rem;line-height:1.9}.corpus-import .file-picker{font-size:0.875rem}.corpus-import .md-import-row h3{font-size:1rem;color:#688451;overflow-wrap:anywhere}
@media(max-width:1250px){.corpus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.corpus-intro{align-items:flex-start;flex-wrap:wrap}.corpus-heading{align-items:flex-start}.corpus-filters .search-field{flex-basis:100%}.corpus-intro h1{font-size:1.875rem}}
@media(max-width:680px){.sidebar{overflow-y:visible}.corpus-subnav{grid-column:1/-1;grid-template-columns:1fr 1fr;border:0;margin:0;padding:0}.corpus-subnav button{justify-content:center;min-height:40px;font-size:0.875rem}.corpus-intro{gap:20px;margin-bottom:22px}.corpus-intro p{font-size:0.9375rem}.corpus-intro-actions{width:100%}.corpus-intro-actions>button{flex:1}.corpus-tabs{gap:18px;padding:0 16px}.corpus-tabs>button{font-size:0.875rem;gap:7px;min-height:66px}.corpus-tabs>button>.icon{width:16px;height:16px}.corpus-tabs>button>span{font-size:0.875rem;padding:1px 5px}.corpus-heading{padding:22px 18px 19px;flex-direction:column;gap:13px}.corpus-heading h2{font-size:1.25rem}.corpus-heading>.secondary{font-size:0.875rem}.corpus-filters{padding:0 18px 18px;gap:8px}.corpus-filters .search-field{min-width:0}.corpus-filters .search-field input{font-size:1rem;min-width:0}.corpus-filters>select{max-width:calc(50% - 4px);font-size:1rem;flex:1;min-width:100px}.corpus-result-bar{padding:17px 18px;font-size:0.875rem}.corpus-result-bar select{font-size:0.875rem}.corpus-grid{grid-template-columns:1fr;padding:0 18px 22px;gap:14px}.corpus-card h3{font-size:1.125rem}.corpus-card-open{padding:19px}.corpus-card-foot button{min-height:34px;font-size:0.875rem}.corpus-empty{padding:40px 20px 50px}.corpus-empty h3{font-size:1.25rem}.corpus-footnote{align-items:flex-start;font-size:0.875rem}.corpus-footnote .icon{margin-top:3px}.corpus-detail>h3{font-size:1.4375rem}.corpus-detail .markdown-output{font-size:1rem}.corpus-import .form-grid{grid-template-columns:1fr}}
.setting-card-open{display:flex;flex:1;flex-direction:column;width:100%;min-width:0;padding:19px;text-align:left}
.setting-card-open>p{font-size:0.875rem;color:#93a482;line-height:1.8;min-height:38px;overflow-wrap:anywhere}
.setting-document-row{display:flex;align-items:center;gap:9px;padding:10px 13px 10px 18px;border-top:1px solid #e9efe2;background:#fafcf7;min-height:48px}
.setting-document,.setting-document-empty{display:flex;align-items:center;gap:6px;min-width:0;flex:1;color:#829974;font-size:0.875rem;text-align:left}
.setting-document:hover{color:#4d7141}
.setting-document .icon{width:13px;height:13px}
.setting-document span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setting-document-empty{color:#a6b29e}
.setting-upload{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;border:1px solid #d8e4ce;border-radius:6px;padding:6px 8px;background:#fff;color:#5f8050;font-size:0.875rem;font-weight:550}
.setting-upload:hover{background:#edf4e7;border-color:#b9cca9}
.setting-upload .icon{width:13px;height:13px}
.document-upload-summary{display:flex;align-items:center;gap:14px;padding:15px 16px;margin-bottom:18px;border:1px solid #dce7d3;border-radius:9px;background:#f6f9f1;color:#5c7b4e}
.document-upload-summary>.icon{width:24px;height:24px;flex-shrink:0}
.document-upload-summary>div{min-width:0}
.document-upload-summary strong,.document-upload-summary span{display:block;overflow-wrap:anywhere}
.document-upload-summary strong{font-size:0.875rem;font-weight:600;color:#45633c}
.document-upload-summary span{margin-top:3px;font-size:0.875rem;color:#889a7b}
.document-overwrite{margin-top:15px;padding:10px 12px;border:1px solid #ead9b7;border-radius:7px;background:#fff8e8;color:#8b6f3e;font-size:0.875rem;line-height:1.7}
@media(min-width:1700px){.setting-card-open{padding:20px}}
@media(max-width:1300px){.setting-card-open{padding:16px}}
@media(max-width:680px){.setting-document-row{padding:10px 12px 10px 16px}.setting-upload{min-height:36px;font-size:0.875rem}.setting-document,.setting-document-empty{font-size:0.875rem}}

.md-import-scope{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf4e5;border-radius:7px;padding:14px 16px;color:#506f3c}.md-import-scope strong{font-size:1rem;font-weight:550}.md-import-scope p,.md-import-plan p{font-size:0.875rem;line-height:1.8;margin-top:5px;color:#7c926a}.md-import-scope .secondary{flex-shrink:0}.md-import-plan{padding:16px;background:#eef5e6;border:1px solid #d9e5cc;border-radius:7px;margin:18px 0;color:#577441}.md-import-plan strong{font-size:0.9375rem;font-weight:550;line-height:1.8}.md-import-plan ul{padding-left:20px;margin:8px 0;font-size:0.875rem;line-height:1.9}.md-import-plan .primary{margin-top:12px;font-size:0.875rem}.md-skip-badge{display:block;color:#889878;font-size:0.875rem}@media(max-width:680px){.md-import-scope{align-items:flex-start;flex-direction:column}.md-import-plan{padding:14px}.md-import-plan .primary{width:100%;justify-content:center}}

/* Shared reading preferences and explicit deletion controls. */
:root{--muted:#65725f;--red:#ac3029}
.topbar{height:auto;min-height:74px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:12px}.breadcrumb{flex:1 1 12rem;white-space:normal;overflow-wrap:anywhere}.sync{margin-left:0}
.font-size-picker,.modal .font-size-picker{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#355440;white-space:nowrap;margin:0}.font-size-picker select,.modal .font-size-picker select{font:inherit;width:auto;min-width:7.5rem;margin:0;padding:.4rem .55rem;border:1px solid #9aad91;border-radius:6px;color:#2d4938;background:#fff}
.modal-head{gap:14px;flex-wrap:wrap}.modal-head-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.modal-head .eyebrow{display:none}.modal-head h2{margin:0}.modal-head-actions>.icon-button{min-height:40px;min-width:40px}.modal{max-width:calc(100vw - 24px)}.modal-foot,.modal-foot>div{flex-wrap:wrap}.modal-body{overflow-wrap:anywhere}
button.danger-outline,button.text-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 12px;border:1px solid #be463a;border-radius:7px;background:#fff0ed;color:#a32820;font-size:.875rem;font-weight:600;line-height:1.5;white-space:normal;text-align:center}
button.danger-outline:hover,button.text-danger:hover{background:#ffe0d9;border-color:#9c251d;color:#8c201a}button.danger{background:#b32f27;color:#fff;border:1px solid #9a251e;font-size:.875rem;white-space:normal}button.danger:hover{background:#94231d}button.danger-outline .icon,button.text-danger .icon{width:1em;height:1em}button.danger-outline:focus-visible,button.danger:focus-visible{outline-color:#ae342a}
.delete-scope{padding:18px;border:1px solid #e0aaa1;border-left:4px solid #b32f27;border-radius:8px;background:#fff3ef;color:#7d3027;margin-bottom:18px}.delete-scope>strong{font-size:1.125rem;overflow-wrap:anywhere}.delete-scope p{margin-top:8px;line-height:1.8}.delete-scope b{font-size:1.25rem;color:#a3231c}.delete-current-book{margin-top:12px;width:100%;flex-shrink:0}
.card-delete-row{display:flex;justify-content:flex-end;gap:10px;padding:10px 15px;border-top:1px solid #e6eadd;background:#fff}.setting-document-row{flex-wrap:wrap}.setting-document-empty{flex:1}.setting-upload{margin-left:auto}.chapter-volume-card{gap:12px}.chapter-volume-card>.danger-outline{width:100%}.plan-top-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.board-top{flex-wrap:wrap;align-items:flex-start}.board-title{min-width:0}
.bond-card-wrap{border:1px solid #dce5d3;border-radius:9px;overflow:hidden;background:#fff}.bond-card-wrap .bond-card{width:100%;margin:0;border:0;border-radius:0}.corpus-card-foot{flex-wrap:wrap;gap:10px}.corpus-card-foot>span{flex:1 1 100%;max-width:100%}
.writing-chapter-card{margin:10px 0;border:1px solid #dce5d3;border-radius:7px;overflow:hidden;background:#fff}.writing-chapter-card>.writing-chapter{width:100%;border:0;border-radius:0;margin:0}.writing-chapter-delete{margin:4px 8px 10px}.writing-directory-head,.writing-page-head,.writing-total,.writing-actions,.writing-actions>div{flex-wrap:wrap}.writing-page-head>span{line-height:1.8}.writing-title{height:auto;min-width:0}.writing-help,.calibration-mode,.writing-empty-small{color:#657558}
.setting-grid,.corpus-grid,.chapter-volume-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}.setting-card-open>p,.chapter-volume-heading p,.chapter-volume-card p,.md-import-hint,.md-import-file-count,.md-volume-existing,.corpus-card-meta,.corpus-card-meta small,.corpus-card-foot>span{color:#60774e}.setting-card-top,.setting-document-empty,.book-item small,.brand small,.board-title p,.book-intro p,.stat>small,.book-meta,.book-meta button{color:#617158}
.book-item strong{white-space:normal;max-width:none;overflow-wrap:anywhere}.sidebar{width:16rem}.sidebar .brand{flex-wrap:wrap}.sidebar .book-list{max-height:none;overflow:visible}.sidebar nav{min-width:0}.nav-item{white-space:normal}.book-meta,.book-meta span,.filter-tabs,.board-foot,.corpus-tabs{flex-wrap:wrap}.filter-bar select,.corpus-filters>select{height:auto}.book-intro,.corpus-intro,.corpus-intro-actions,.corpus-heading{flex-wrap:wrap}.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}.primary,.secondary{white-space:normal}.form-grid,.md-import-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.relation-graph{width:59.5rem;min-width:100%;max-width:none}.bond-graph{width:68.25rem;min-width:100%;max-width:none}.graph-wrap,.bond-graph-scroll{overflow:auto}
html[data-font-size=larger] .writing-shell,html[data-font-size=huge] .writing-shell,html[data-font-size=maximum] .writing-shell{display:block}html[data-font-size=larger] #writing-list,html[data-font-size=huge] #writing-list,html[data-font-size=maximum] #writing-list{max-height:18rem;overflow:auto}html[data-font-size=huge] .sidebar,html[data-font-size=maximum] .sidebar{width:13rem}html[data-font-size=maximum] .modal{width:calc(100vw - 24px)}html[data-font-size=maximum] .people-layout{display:block}
@media(max-width:1000px){.sidebar{width:13rem}.private-pill{display:none}.modal-foot>div{width:100%}.modal-foot>div>button{flex:1}.md-import-row-fields{grid-template-columns:minmax(0,1fr)}.progress-box{max-width:100%}}
@media(max-width:680px){.sidebar,html[data-font-size=huge] .sidebar,html[data-font-size=maximum] .sidebar{width:100%;height:auto;padding:16px;overflow:visible}.sidebar nav{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:5px;margin-bottom:16px}.sidebar .nav-item{justify-content:flex-start;font-size:.875rem;padding:10px 8px}.sidebar .add-book{position:static;display:flex;width:100%;margin-top:10px}.sidebar .book-list{overflow:auto;padding:0 0 8px;max-height:none}.sidebar .book-item{max-width:16rem}.sidebar .book-item strong{white-space:normal;max-width:none}.sidebar .book-item small{display:block}.delete-current-book{width:100%;margin-top:8px}.topbar{height:auto;min-height:74px;padding:12px 16px}.breadcrumb{flex-basis:100%}.font-size-picker{flex:1}.sync{white-space:normal}.modal-head-actions{width:100%;justify-content:space-between}.font-size-picker select,.modal .font-size-picker select{min-width:0;max-width:100%}.modal-head .font-size-picker{min-width:0}.modal-foot>div{flex-direction:column}.modal-foot>div>button{width:100%}.plan-top-actions{width:100%;justify-content:flex-start}.plan-top-actions>button{flex:1 1 auto}.chapter-volume-heading{flex-direction:column}.writing-shell{margin:0}.writing-directory>input,.writing-directory>select{width:100%;margin-left:0}.writing-actions>div{width:100%}.writing-actions>div>button{flex:1}.corpus-tabs>button{flex-wrap:wrap;white-space:normal;padding:12px 0}.corpus-tabs{gap:12px}.corpus-intro-actions{flex-wrap:wrap}.title-row{flex-wrap:wrap}.content{padding:20px 12px}.progress-box{display:block;width:100%}.people-layout{display:block}.form-grid,.md-import-options{grid-template-columns:1fr}}

/* Keep the writing-panel chapter directory dense and scannable. */
.writing-order-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid #dce6d5;border-radius:7px;background:#f7faf4;color:#819477;font-size:.75rem;white-space:nowrap}
.writing-order-switch>span{padding:0 4px}
.writing-order-switch button{padding:4px 7px;border-radius:5px;color:#78906d;font-size:.75rem}
.writing-order-switch button:hover{background:#e9f0e3}
.writing-order-switch button.active{background:#dcebd4;color:#315b3b;font-weight:600;box-shadow:0 1px 2px #2d472114}
.writing-directory[data-layout="list"] #writing-list{margin:8px -2px;max-height:720px}
.writing-directory[data-layout="list"] .writing-chapter-card{display:flex;align-items:stretch;margin:3px 0;border:0;border-radius:6px;background:transparent;overflow:visible}
.writing-directory[data-layout="list"] .writing-chapter-card>.writing-chapter{display:grid;grid-template-columns:3.5rem minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;padding:7px 6px;border-radius:6px}
.writing-directory[data-layout="list"] .writing-chapter>span{display:block;min-width:0;white-space:nowrap;font-size:.75rem}
.writing-directory[data-layout="list"] .writing-chapter>span small{display:block;margin-top:2px;font-size:.6875rem}
.writing-directory[data-layout="list"] .writing-chapter strong{min-width:0;margin:0;font-size:.8125rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.writing-directory[data-layout="list"] .writing-chapter em{min-width:0;font-size:.6875rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.writing-directory[data-layout="list"] .writing-chapter-delete{flex:0 0 auto;margin:0 0 0 3px;padding:5px 6px;min-height:30px;font-size:.6875rem;border-radius:5px}
.writing-directory[data-layout="list"] .writing-chapter-delete .icon{width:11px;height:11px}
@media(max-width:680px){.writing-directory-head{align-items:flex-start}.writing-order-switch{margin-left:auto}.writing-directory[data-layout="list"] #writing-list{display:block;overflow-y:auto;overflow-x:hidden;max-height:400px;margin:7px 0}.writing-directory[data-layout="list"] .writing-chapter-card{width:100%;margin:3px 0}.writing-directory[data-layout="list"] .writing-chapter-card>.writing-chapter{grid-template-columns:3.5rem minmax(0,1fr) auto;padding:7px 6px}.writing-directory[data-layout="list"] .writing-chapter-delete{margin-left:2px}}

.setting-card-open>p,.corpus-card-open>p{font-size:1rem}.detail-copy{font-size:1rem}.sidebar .book-list{flex-shrink:0}.chapter-volume-grid{max-height:32rem}

/* Chapter-to-card synchronization and live chapter sources. */
.sync-entry-button{border-color:#819a71!important;color:#315e3e!important;background:#edf6e7!important}.sync-entry-button:hover{background:#dfefd5!important}.card-delete-row{flex-wrap:wrap;justify-content:space-between}.card-delete-row>.sync-entry-button{flex:1}
.chapter-sync-dialog{font-size:1rem}.sync-scope-banner{padding:17px 20px;background:#eaf3e3;border:1px solid #cbdcbd;border-radius:8px;margin-bottom:15px;color:#3a5d34}.sync-scope-banner>strong{font-size:1.125rem}.sync-scope-banner>p{margin-top:5px;line-height:1.8}.sync-explanation{font-size:.875rem;line-height:1.9;color:#5c7052;margin:10px 0}.sync-format-help{border:1px solid #dce6d4;border-radius:7px;padding:13px 15px;margin:16px 0}.sync-format-help summary,.sync-candidate summary{cursor:pointer;color:#47673c;font-size:.875rem;line-height:1.8}.sync-format-help p{font-size:.875rem;line-height:1.8;margin:12px 0}.sync-format-help pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:.875rem;background:#f2f6ed;padding:13px;line-height:1.9}.sync-selection-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 12px}.sync-selection-bar>span{margin-left:auto;color:#587447;font-size:.875rem}.sync-category-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.sync-category-filters>span{font-size:.875rem;color:#5b734d;background:#f0f5e9;border-radius:5px;padding:5px 9px}.sync-category-filters b{font-weight:500;margin-left:5px}.sync-candidate{border:1px solid #d6e3c9;border-radius:8px;margin:12px 0;padding:15px;background:#fff}.sync-candidate.already-synced{background:#f6f8f3}.modal .sync-candidate-label{display:flex;align-items:flex-start;gap:11px;margin:0}.modal .sync-candidate-label input{width:20px;height:20px;flex-shrink:0;margin:6px 0 0;accent-color:#447439}.sync-candidate-label>span:nth-child(2){flex:1;min-width:0}.sync-candidate-label small{display:block;font-size:.875rem;color:#687e59}.sync-candidate-label strong{display:block;margin-top:5px;overflow-wrap:anywhere;font-size:1rem;color:#395b31}.sync-source-count{font-size:.875rem;color:#658351;white-space:nowrap;margin-top:5px}.sync-candidate details{margin-top:12px}.sync-candidate details>p{font-size:.875rem;line-height:1.9;margin:10px 0;color:#647659}.sync-candidate .markdown-output{font-size:.875rem;max-height:260px;overflow:auto;padding:12px;background:#f6f9f1;border-radius:5px}.sync-notes{font-size:.875rem;line-height:1.8;background:#fff4dc;padding:15px;color:#885a23;border-radius:7px}
.chapter-source-panel{border:1px solid #cdddbf;background:#f6faf0;border-radius:9px;padding:19px;margin:22px 0}.chapter-source-panel>h4{font-size:1.125rem;color:#3c6032}.chapter-source-panel>h4>span{font-size:.875rem;font-weight:400;margin-left:10px}.chapter-source-item{padding:13px 0;border-top:1px solid #dde8d3}.chapter-source-item summary{font-size:1rem;line-height:1.8;color:#3a6131;cursor:pointer;overflow-wrap:anywhere}.chapter-source-item>.markdown-output{margin:12px 0;background:#fff;padding:14px;border-radius:6px;font-size:1rem;max-height:420px;overflow:auto}.chapter-source-item>.secondary{margin:8px 0}.source-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid #dde8d3;font-size:.875rem}.chapter-timeline-item p{font-size:.875rem;color:#596d50;line-height:1.8;margin:5px 0 12px}
@media(max-width:680px){.sync-candidate{padding:13px}.chapter-source-panel{padding:14px}.sync-candidate-label{flex-wrap:wrap}.sync-source-count{margin-left:31px}.card-delete-row{gap:9px}.card-delete-row>button{flex:1 1 100%}.sync-selection-bar>span{width:100%;margin:0}.sync-scope-banner{padding:15px}}

/* Work list disclosure and password dialog inherit the global font scale. */
.sidebar .books-heading{display:flex;margin:24px 0 10px;gap:4px}.books-toggle{display:flex;align-items:center;gap:8px;padding:10px 4px;flex:1;text-align:left;color:var(--ink);min-height:44px}.books-triangle{font-size:.875rem;color:var(--green)}.books-count{background:#e1e7dd;border-radius:4px;padding:0 5px;font-size:.875rem}#my-books-panel{flex-shrink:0;min-width:0}#my-books-panel[hidden],[data-books-add][hidden]{display:none!important}.security-overlay{position:fixed;inset:0;z-index:300;background:rgba(25,45,34,.42);display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.security-dialog{width:min(100%,38rem);max-height:calc(100dvh - 40px);overflow:auto;margin:auto;background:var(--paper);border:1px solid var(--line);box-shadow:0 22px 65px #192d2238}.security-summary{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--green-soft);margin-bottom:18px;overflow-wrap:anywhere}.security-explanation{font-size:.875rem;line-height:1.8;margin:8px 0 14px}.security-rules{font-size:1rem;line-height:1.8;margin:10px 0;color:var(--ink)}.security-dialog .security-show{display:flex;align-items:center;gap:10px;margin-top:18px}.security-show input{width:20px;height:20px;margin:0}.security-dialog .modal-foot{flex-wrap:wrap;gap:12px}.security-dialog .modal-foot button{flex:1;min-width:8rem}.sidebar .utility{min-height:44px}.security-dialog input{font-size:1rem}
@media(max-width:680px){.security-overlay{padding:10px}.security-dialog{max-height:calc(100dvh - 20px)}.sidebar .books-heading{margin-top:6px}.sidebar .sidebar-bottom{display:block}.sidebar .sidebar-bottom .private-note,.sidebar .sidebar-bottom .owner{display:none}}

.security-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 20px}.security-methods button{padding:10px 6px;border:1px solid var(--line);border-radius:7px;font-size:.875rem;min-height:44px}.security-methods button.selected{border-color:var(--green);background:var(--green-soft);font-weight:600}.security-contact-state{font-weight:600;overflow-wrap:anywhere;margin-bottom:12px}.security-service-note{background:#faf3e5;color:#705b2f;border:1px solid #e2d4b5;padding:15px;border-radius:8px;line-height:1.8}.security-code-row{display:flex;align-items:flex-end;gap:12px;margin-top:15px}.security-code-row label{flex:1;min-width:0;margin:0}.security-code-row button{min-height:46px;margin-bottom:0;flex-shrink:0}.security-text-button{padding:12px 0;text-decoration:underline;color:var(--green)}@media(max-width:500px){.security-methods{grid-template-columns:1fr}.security-code-row{align-items:stretch;flex-direction:column}.security-code-row button{width:100%}}

.sidebar .private-note,.sidebar .owner{width:100%;text-align:left;border-radius:8px;min-height:48px}.sidebar .private-note:hover,.sidebar .owner:hover{background:var(--green-soft)}.sidebar .owner>.icon{margin-left:auto}.account-login-panel{text-align:center}.account-login-mark{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 16px;background:var(--green-soft);color:var(--green);border-radius:18px}.account-login-mark .icon{width:28px;height:28px}.account-login-panel h3{font-size:1.375rem}.account-login-copy{margin:10px 0 22px;line-height:1.8}.account-session-card{display:flex;align-items:center;flex-direction:column;gap:8px;padding:18px;border:1px solid var(--line);background:var(--bg);border-radius:10px}.account-session-state{display:flex;align-items:center;gap:6px;color:var(--green);font-weight:600}.account-email{overflow-wrap:anywhere;max-width:100%}#account-session{font-size:1rem}.account-login-actions{display:flex;flex-direction:column;gap:12px;margin-top:22px}.account-login-actions>a,.account-login-actions>button{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:10px}.account-auth-link:focus-visible,.account-signout:focus-visible{outline:3px solid #97b2a0;outline-offset:3px}.account-signout{font-size:.875rem;text-decoration:underline;color:var(--muted)}.account-login-note{margin-top:18px;font-size:.875rem;line-height:1.8}.account-password-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:10px 0;color:var(--green);text-decoration:underline;font-size:.875rem}.sidebar .sidebar-bottom .owner,.sidebar .sidebar-bottom .private-note{display:flex}

.account-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.account-methods button{padding:12px 8px;border:1px solid var(--line);border-radius:8px}.account-methods button.selected{background:var(--green-soft);border-color:var(--green);font-weight:600}#account-form{text-align:left;margin-top:18px}#account-form label{display:block;margin-bottom:16px}#account-form input,#account-form select{width:100%;min-height:44px}#account-form .account-show{display:flex;align-items:center;gap:8px}.account-show input{width:18px!important;min-height:18px!important;height:18px}.account-contact-row{display:flex;gap:8px}.account-contact-row select{flex:0 0 9rem;width:9rem!important}.account-contact-row input{min-width:0}.account-submit{width:100%;justify-content:center;margin-top:10px}.account-small{font-size:.875rem;line-height:1.8;margin:10px 0}.account-switches{display:flex;justify-content:space-between;gap:12px;margin-top:18px}.account-switches button,.account-inline{color:var(--green);text-decoration:underline;padding:8px;font-size:.875rem}.account-session-card>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.account-entry{margin:auto}.account-entry>button{margin-top:20px}.account-session-state{justify-content:center;margin:12px 0}@media(max-width:500px){.account-contact-row{flex-direction:column}.account-contact-row select{flex:auto;width:100%!important}.account-methods{gap:5px}}

@media(max-width:500px){.account-methods{grid-template-columns:1fr}.account-switches{flex-wrap:wrap}}

/* Member badge beside the workspace brand. */
.brand-row{display:flex;align-items:center;gap:6px;padding:0 4px;margin-bottom:8px;min-width:0}.brand-row .brand{flex:1;min-width:0;gap:9px;padding:0 6px;margin-bottom:0}.brand-row .brand img{width:41px;height:41px}.brand-row .brand strong{font-size:1.35rem;letter-spacing:4px}.brand-row .brand small{font-size:.75rem;letter-spacing:.2px;white-space:nowrap}.member-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:3px;border:0;border-radius:8px;background:transparent;color:var(--member-crown-ink,#102b40);box-shadow:none;line-height:1}.member-icon:hover{background:#b99a591a}.member-icon:focus-visible{outline:2px solid #b99a59;outline-offset:3px}.member-crown{display:block;width:100%;height:100%;flex:none}.member-signature{display:flex;flex-direction:column;align-items:flex-end;width:calc(100% - 8px);margin:0 4px 26px;padding:4px 6px 8px;color:#84652f;text-align:right;border-bottom:1px solid #dedfce}.member-signature:hover{background:#e8eee3;border-radius:6px}.member-line{font-size:.8rem;font-weight:600;letter-spacing:.6px;line-height:1.5}.member-signature small{font-size:.7rem;color:#9a9a83;letter-spacing:.2px;line-height:1.5;white-space:nowrap}.member-profile-preview{display:flex;align-items:center;gap:13px;padding:15px 16px;margin-bottom:18px;border:1px solid #ead9ad;border-radius:9px;background:linear-gradient(135deg,#fffaf0,#f8f4e8);color:#73572c}.member-profile-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:2px;border:0;border-radius:0;background:transparent;color:#102b40}.member-profile-preview strong,.member-profile-preview small{display:block}.member-profile-preview strong{font-size:1.05rem}.member-profile-preview small{margin-top:4px;color:#9a8a69;font-size:.8rem}

.member-center-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 0 10px}.member-center-heading h3{font-size:1.1rem;color:var(--ink)}.member-center-heading>span{font-size:.8125rem;color:var(--muted)}.member-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}.member-plan-card{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0;padding:16px;text-align:left;border:1px solid #dfd6bf;border-radius:10px;background:#fffdf7;color:var(--ink);font:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.member-plan-card:hover{border-color:#c5a35f;transform:translateY(-1px)}.member-plan-card.selected{border-color:#a98648;box-shadow:0 0 0 2px #b9965450;background:#fff8e8}.member-plan-card.featured{background:linear-gradient(145deg,#fbf7e8,#f3ead1)}.member-plan-label{font-weight:700;color:#6d542b}.member-plan-price{display:flex;align-items:baseline;gap:5px;color:#6a4c1f}.member-plan-price strong{font-size:1.9rem;line-height:1.15}.member-plan-price small{font-size:.8125rem;color:#8b7552}.member-plan-note{font-size:.8125rem;color:#87785f}.member-plan-cta{margin-top:4px;padding:5px 9px;border-radius:5px;background:#f0e6cc;color:#80602b;font-size:.8125rem;font-weight:600}.member-plan-card.selected .member-plan-cta{background:#ead29c;color:#67491d}.member-plan-status{margin:0 0 5px;padding:10px 12px;border:1px solid #ead9ad;border-radius:7px;background:#fff9eb;color:#806633;font-size:.8125rem;line-height:1.7}@media(max-width:520px){.member-plan-grid{grid-template-columns:1fr}.member-center-heading{align-items:flex-start;flex-direction:column;gap:3px}}

 .member-test-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:13px 0 15px;padding:12px;border:1px dashed #b9c9b0;border-radius:8px;background:#f4f8f0}.member-test-switch strong{display:block;color:#4b6840;font-size:.875rem}.member-test-switch p{margin:3px 0 0;color:#7b8d74;font-size:.75rem;line-height:1.5}.member-test-buttons{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.member-test-buttons button{padding:6px 8px;border:1px solid #d3dfcc;border-radius:5px;background:#fff;color:#5f7655;font:inherit;font-size:.75rem;cursor:pointer}.member-test-buttons button.selected{border-color:#6f9363;background:#dfead8;color:#355b42;font-weight:600}@media(max-width:520px){.member-test-switch{align-items:flex-start;flex-direction:column}.member-test-buttons{justify-content:flex-start}}

/* Personal workspace and single-use model credentials. */
.personal-heading,.personal-card-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.personal-heading{margin-bottom:28px}.personal-heading h1{font-size:2rem;line-height:1.4}.personal-heading p{margin-top:10px;line-height:1.8}.personal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:22px;align-items:start}.personal-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;min-width:0}.personal-card-head{margin-bottom:20px}.personal-card h2{font-size:1.25rem}.personal-card-head>span{font-size:.875rem;color:var(--muted)}.personal-card label{display:block;font-size:1rem;margin:18px 0 8px}.personal-card input,.personal-card select,.personal-card textarea{display:block;width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fff;min-height:46px;color:var(--ink)}.personal-card textarea{resize:vertical;line-height:1.9;min-height:14rem}.personal-card input:focus,.personal-card select:focus,.personal-card textarea:focus{outline:2px solid #88a893;outline-offset:2px}.personal-hint{font-size:.875rem;color:#566657;line-height:1.8;margin:12px 0}.personal-doc-link{color:var(--green);font-size:.875rem;display:inline-flex;gap:8px;align-items:center;line-height:1.8;text-decoration:underline}.model-test{width:100%;justify-content:center;margin-top:20px}.model-status{padding:0;line-height:1.8;font-size:1rem;overflow-wrap:anywhere}.model-status:not(:empty){padding:14px;border-radius:8px;margin-top:16px}.model-status.success{background:#e8f3e7;color:#2d5834;border:1px solid #a3c19e}.model-status.error{background:#fff0eb;color:#923d29;border:1px solid #d8a090}.personal-source-label{margin-top:14px;line-height:1.8}.personal-card [type=submit]{width:100%;justify-content:center;margin-top:18px}.extraction-output{margin-top:24px}.personal-card-head>div,.extraction-links,.personal-shortcuts{display:flex;gap:12px;flex-wrap:wrap}.personal-shortcuts{margin-top:24px}.extraction-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:14px;margin-top:18px}.extraction-groups details{border:1px solid var(--line);border-radius:8px;padding:16px}.extraction-groups summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;font-size:1rem;list-style:none}.extraction-groups summary::-webkit-details-marker{display:none}.extraction-summary-label{min-width:0}.extraction-summary-tools{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:.875rem}.extraction-chevron{display:inline-block;color:var(--green);font-size:.9rem;line-height:1;transition:transform .18s ease}.extraction-groups details[open] .extraction-chevron{transform:rotate(180deg)}.extraction-count{min-width:1.5em;text-align:right}.extraction-groups article{padding:14px 0;border-top:1px solid var(--line);margin-top:12px}.extraction-groups p,.extraction-groups blockquote{line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.extraction-groups blockquote{margin:10px 0 0;padding-left:12px;border-left:3px solid var(--line);font-size:.875rem;color:var(--muted)}.extraction-save-state{font-weight:600;color:var(--green);margin-bottom:14px}.extraction-links{margin-top:20px}.personal-page [hidden]{display:none!important}@media(max-width:1100px){.personal-grid{grid-template-columns:1fr}}@media(max-width:680px){.personal-card{padding:18px}.personal-heading h1{font-size:1.75rem}.personal-shortcuts>button{width:100%;justify-content:center}}

.source-picker{position:relative}.source-picker-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.source-picker-toggle:focus,.source-group-toggle:focus,.source-picker-option:focus{outline:2px solid #88a893;outline-offset:2px}.source-picker-toggle-chevron,.source-group-chevron{display:inline-block;color:var(--green);font-size:.8rem;line-height:1;transition:transform .18s ease}.source-picker-toggle[aria-expanded=true] .source-picker-toggle-chevron,.source-group-toggle[aria-expanded=true] .source-group-chevron{transform:rotate(180deg)}.source-picker-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:24rem;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 12px 28px #234a3b22}.source-picker-menu[hidden],.source-group-options[hidden]{display:none!important}.source-picker-option,.source-group-toggle{width:100%;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.source-picker-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:6px;line-height:1.5}.source-picker-option:hover,.source-picker-option[aria-selected=true]{background:#eaf2e7;color:var(--green);font-weight:600}.source-picker-option small{flex:0 0 auto;color:var(--muted);font-size:.75rem;font-weight:400}.source-picker-group{border-top:1px solid var(--line);margin-top:6px;padding-top:5px}.source-picker-group:first-of-type{border-top:0;margin-top:0;padding-top:0}.source-group-toggle{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--ink);font-weight:700;line-height:1.5}.source-group-toggle:hover{background:#f2f6ef}.source-group-count{margin-left:auto;color:var(--muted);font-size:.8125rem;font-weight:400}.source-group-options{padding-left:8px}.model-diagnostic summary{cursor:pointer}.model-diagnostic p{overflow-wrap:anywhere;user-select:text;margin-top:10px}
.member-locked-content{display:grid;justify-items:center;gap:10px;padding:34px 20px 28px;text-align:center;border:1px dashed #d8c99f;border-radius:9px;background:linear-gradient(145deg,#fffaf0,#f8f5ea);color:#766137}.member-lock-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f2dfab;color:#987335}.member-lock-mark .icon{width:22px;height:22px}.member-locked-content strong{font-size:1.1rem;color:#6f5529}.member-locked-content p{max-width:26rem;font-size:.875rem;line-height:1.8;color:#8b7c61}.member-locked-content .secondary{margin-top:3px}
.personal-credit-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 14px;padding:14px 16px;border:1px solid var(--gold);border-radius:10px;background:var(--gold-bg)}
.personal-credit-notice strong{display:block;font-size:.9375rem;color:var(--ink);margin-bottom:4px}
.personal-credit-notice p{margin:0;font-size:.8125rem;line-height:1.7;color:var(--muted)}
.personal-credit-actions{display:flex;gap:8px;flex-shrink:0}
.batch-limits{margin:10px 0 0;padding:10px 12px;border:1px solid var(--gold);border-radius:8px;background:var(--gold-bg);font-size:.8125rem;line-height:1.7;color:var(--muted)}
.calibration-stale-note{margin:10px 0 0;padding:9px 12px;border:1px solid var(--gold);border-radius:8px;background:var(--gold-bg);font-size:.8125rem;line-height:1.7;color:var(--muted)}
.zhuque-card{margin-top:24px}.zhuque-intro{max-width:58rem;margin-top:-8px}.zhuque-card textarea{min-height:13rem}.zhuque-check{display:flex!important;align-items:center;gap:8px;margin:16px 0 0!important;color:var(--ink)}.zhuque-check input{display:inline-block!important;width:18px!important;min-height:18px!important;padding:0!important;accent-color:var(--green)}.zhuque-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}.zhuque-actions button{margin-top:0!important}.zhuque-actions .personal-doc-link{margin-left:auto}.zhuque-diagnostic{overflow-wrap:anywhere}.zhuque-result{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.zhuque-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.zhuque-metrics>div{padding:13px 14px;border:1px solid #dfe5dc;border-radius:8px;background:#f7faf5}.zhuque-metrics span,.zhuque-metrics strong{display:block}.zhuque-metrics span{font-size:.8125rem;color:var(--muted);line-height:1.6}.zhuque-metrics strong{margin-top:5px;font-size:1.35rem;color:var(--green)}.zhuque-result-heading{display:flex;justify-content:space-between;gap:12px;margin:20px 0 10px}.zhuque-result-heading span{font-size:.875rem;color:var(--muted)}.zhuque-segments{display:grid;gap:10px}.zhuque-segments article{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fff}.zhuque-segments article>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.zhuque-label{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:.8125rem;font-weight:600}.zhuque-label.human{background:#e8f3e7;color:#2d5834}.zhuque-label.ai{background:#fff0eb;color:#923d29}.zhuque-label.suspected{background:#fff6d9;color:#806633}.zhuque-label.unknown{background:#eef1ed;color:#566657}.zhuque-confidence{font-size:.8125rem;color:var(--muted)}.zhuque-segments p{margin:8px 0 0;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.zhuque-disclaimer{margin-bottom:0}@media(max-width:760px){.zhuque-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.zhuque-actions .personal-doc-link{margin-left:0;width:100%}}

/* Planning density, layout switch, and single-chapter merge controls. */
.plan-view-controls{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap}.plan-layout-switch,.plan-order-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid #dce6d5;border-radius:7px;background:#f7faf4;color:#819477;font-size:.8125rem;white-space:nowrap}
.plan-layout-switch>span,.plan-order-switch>span{padding:0 6px}.plan-layout-switch button,.plan-order-switch button{padding:5px 9px;border-radius:5px;color:#78906d;font-size:.8125rem}.plan-layout-switch button:hover,.plan-order-switch button:hover{background:#e9f0e3}.plan-layout-switch button.active,.plan-order-switch button.active{background:#dcebd4;color:#315b3b;font-weight:600;box-shadow:0 1px 2px #2d472114}
.plan-board:not([data-plan-layout="list"]) .setting-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:12px;padding:16px}
.setting-card{padding:0}
.setting-card-open{padding:14px 15px}
.setting-card-top{margin-bottom:9px}.setting-card>p,.setting-card-open>p{min-height:30px;line-height:1.65}.setting-snippets{padding:9px 0;gap:5px}.setting-card-bottom{padding-top:9px}.setting-document-row{padding:7px 11px 7px 14px;min-height:42px}.card-delete-row{padding:7px 11px;gap:8px}
.plan-board[data-plan-layout="list"] .setting-grid{grid-template-columns:1fr;gap:8px;padding:12px 16px}
.plan-board[data-plan-layout="list"] .setting-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:stretch}
.plan-board[data-plan-layout="list"] .setting-card-open{grid-row:1 / span 2}.plan-board[data-plan-layout="list"] .setting-document-row{grid-column:2;grid-row:1;min-width:180px;border-top:0;border-left:1px solid #e9efe2}.plan-board[data-plan-layout="list"] .card-delete-row{grid-column:2;grid-row:2;align-self:end;border-top:1px solid #e6eadd}
.single-merge-dialog label{display:block;margin:18px 0 8px}.single-merge-dialog select{display:block;width:100%;min-height:44px;padding:9px 11px;border:1px solid #dce6d5;border-radius:7px;background:#fff;color:var(--ink)}.merge-target{display:grid;gap:4px;padding:14px 16px;border:1px solid #d7e5ce;border-radius:9px;background:#f3f8ef}.merge-target span{font-size:.8125rem;color:#8b9d83}.merge-target strong{display:flex;align-items:center;gap:7px;font-size:1.0625rem;color:#365b3c;overflow-wrap:anywhere}.merge-target strong .icon{width:16px;height:16px}.merge-target small{color:#71866b;font-size:.8125rem}
@media(max-width:680px){.plan-view-controls{order:2;width:100%;justify-content:flex-start}.plan-board[data-plan-layout="list"] .setting-card{display:flex}.plan-board[data-plan-layout="list"] .setting-card-open{padding:13px 14px}.plan-board[data-plan-layout="list"] .setting-document-row{border-left:0;border-top:1px solid #e9efe2;min-width:0}.plan-board[data-plan-layout="list"] .card-delete-row{border-top:1px solid #e6eadd}}
.chapter-group-list{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.chapter-entry-group{border:1px solid #dfe9d7;border-radius:8px;background:#fbfdf8;overflow:hidden}.chapter-entry-group>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;padding:12px 14px;color:#648052}.chapter-entry-group>summary::-webkit-details-marker{display:none}.chapter-entry-group>summary:hover{background:#f3f8ee}.chapter-group-caret{display:grid;place-items:center;width:18px;height:18px;transform:rotate(0deg);transition:transform .15s ease}.chapter-entry-group[open]>summary .chapter-group-caret{transform:rotate(90deg)}.chapter-group-caret .icon{width:13px;height:13px}.chapter-group-title{display:flex;align-items:baseline;gap:10px;min-width:0;flex:1}.chapter-group-title strong{font-size:.95rem;color:#547443;white-space:nowrap}.chapter-group-title small{font-size:.8rem;color:#94a985;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-group-merge{flex-shrink:0;font-size:.8rem;padding:6px 9px}.chapter-group-merge:hover{background:#eaf3e3}.chapter-group-items{display:flex;flex-direction:column;gap:7px;padding:0 10px 10px;border-top:1px solid #e8efe2}.chapter-group-items .setting-card{border:0;border-bottom:1px solid #edf2e9;border-radius:0;background:#fff}.chapter-group-items .setting-card:last-child{border-bottom:0}.chapter-group-items .setting-card-open{padding:12px 10px}.chapter-group-items .setting-document-row,.chapter-group-items .card-delete-row{padding-left:10px;padding-right:10px}.chapter-merge-dialog .merge-target{margin-bottom:16px}.chapter-merge-dialog select{width:100%}@media(max-width:680px){.chapter-group-list{padding:10px 12px}.chapter-entry-group>summary{align-items:flex-start;flex-wrap:wrap;padding:11px}.chapter-group-title{flex-basis:calc(100% - 30px)}.chapter-group-merge{margin-left:28px}.chapter-group-items{padding:0 6px 6px}}
.zhuque-guide-float{position:fixed;right:28px;bottom:28px;z-index:30;display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid #c9d9c4;border-radius:999px;background:#315b44;color:#fff;box-shadow:0 8px 24px #294b371f;font-size:.875rem;font-weight:650;letter-spacing:.2px}.zhuque-guide-float:hover{background:#254a36;transform:translateY(-1px);box-shadow:0 10px 28px #294b3730}.zhuque-guide-mark{display:grid;place-items:center;width:20px;height:20px;border:1px solid #dcebd8;border-radius:50%;font-size:.8125rem;line-height:1}.zhuque-guide-panel{position:fixed;right:28px;bottom:82px;z-index:31;width:min(380px,calc(100vw - 32px));max-height:min(76vh,620px);overflow:auto;padding:20px;background:#fff;border:1px solid #dce5d8;border-radius:14px;box-shadow:0 18px 50px #294b3726}.zhuque-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #e8eee5}.zhuque-guide-head h2{margin-top:3px;font-size:1.1rem;line-height:1.4;color:var(--ink)}.zhuque-guide-kicker{font-size:.7rem;letter-spacing:1.5px;color:#91a78b;font-weight:700}.zhuque-guide-steps{display:grid;gap:15px;margin:17px 0 0;padding-left:25px}.zhuque-guide-steps li{padding-left:3px;color:#4b5d4e}.zhuque-guide-steps li::marker{color:#6f966d;font-weight:700}.zhuque-guide-steps strong{display:block;color:#314d38;font-size:.9375rem}.zhuque-guide-steps p{margin-top:3px;font-size:.875rem;line-height:1.75;color:#788879}.zhuque-guide-steps a,.zhuque-guide-foot a{display:inline-flex;align-items:center;gap:4px;margin-top:5px;color:#527c59;font-size:.8125rem;font-weight:600}.zhuque-guide-steps a:hover,.zhuque-guide-foot a:hover{text-decoration:underline}.zhuque-guide-steps .icon,.zhuque-guide-foot .icon{width:13px;height:13px}.zhuque-guide-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:18px;padding-top:13px;border-top:1px solid #e8eee5}.zhuque-guide-foot span{font-size:.75rem;line-height:1.6;color:#98a498}.zhuque-guide-foot a{margin-top:0;flex-shrink:0}.zhuque-next-step{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding:16px 18px;border:1px solid #d8e4d3;border-radius:11px;background:linear-gradient(105deg,#f4f8ef,#fbfcf8)}.zhuque-next-step.locked{border-color:#eadfca;background:linear-gradient(105deg,#fffaf0,#fffdf8)}.zhuque-next-step-copy{min-width:0}.zhuque-next-step-kicker{display:block;font-size:.75rem;letter-spacing:.6px;color:#78936f;font-weight:700}.zhuque-next-step.locked .zhuque-next-step-kicker{color:#aa8d5c}.zhuque-next-step strong{display:block;margin-top:3px;color:#35543b;font-size:.95rem}.zhuque-next-step.locked strong{color:#6c5732}.zhuque-next-step p{margin-top:4px;color:#7d8b7c;font-size:.8125rem;line-height:1.7}.zhuque-next-step .primary,.zhuque-next-step .secondary{flex-shrink:0}.zhuque-card .personal-card-head span{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:680px){.zhuque-guide-float{right:16px;bottom:16px}.zhuque-guide-panel{right:16px;bottom:70px;width:calc(100vw - 32px);max-height:72vh}.zhuque-guide-foot{display:grid}.zhuque-next-step{align-items:stretch;flex-direction:column;gap:12px}.zhuque-next-step .primary,.zhuque-next-step .secondary{width:100%}}
.calibration-people-group{display:block}.calibration-person-list{display:grid;gap:8px;margin-top:7px}.calibration-person{padding:10px;border:1px solid #dfe8d7;border-radius:7px;background:#fff}.calibration-person-main{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.calibration-person-name{font-weight:600!important;color:#4f7445!important;border:0!important;padding:0!important;background:transparent!important}.calibration-person-main>span{font-size:.875rem;line-height:1.7;color:#53654a}.calibration-person-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px}.calibration-person-actions small{font-size:.8125rem;color:#8a987f}.calibration-person-create{font-size:.8125rem;color:#6c8458;padding:2px 0}.calibration-person-remove{font-size:.8125rem;color:#a05443;padding:2px 0}.calibration-person-remove:disabled{opacity:.45;cursor:not-allowed}
.skin-button{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--muted);font-size:.875rem;white-space:nowrap}.skin-button:hover{background:var(--green-soft);color:var(--green)}.skin-button .icon{width:15px;height:15px}.skin-section-title{font-size:.875rem;font-weight:600;color:var(--green);margin:20px 0 10px}.skin-current-note{padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--green-soft);color:var(--text);font-size:.875rem}.skin-current-note strong{color:var(--green)}.skin-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:9px}.skin-preset{display:flex;align-items:center;gap:7px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--text);font-size:.8125rem;text-align:left}.skin-preset:hover,.skin-preset.active{border-color:var(--green);background:var(--green-soft);color:var(--green)}.skin-preset .icon{width:15px;height:15px}.skin-preset-swatch{width:14px;height:14px;flex:0 0 14px;border-radius:50%;background:var(--swatch);border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line)}.skin-color-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.skin-color-field{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin:0!important;padding:9px 10px;border:1px solid var(--line);border-radius:7px;background:var(--paper)}.skin-color-field>span{min-width:0}.skin-color-field strong,.skin-color-field small{display:block}.skin-color-field strong{font-size:.8125rem;color:var(--text)}.skin-color-field small{margin-top:2px;font-size:.75rem;color:var(--muted)}.skin-color-field input[type=color]{width:35px;height:28px;padding:2px;border:1px solid var(--line);border-radius:5px;background:var(--paper);cursor:pointer}.primary{background:var(--green)}.primary:hover{background:var(--green-deep)}.nav-item.active{background:var(--green-soft);color:var(--green)}.nav-item.active i{background:var(--green)}.filter-tab.active{color:var(--green)}.filter-tab.active:after{background:var(--green)}.filter-tab.active span:not(.ai-unread-dot){background:var(--green-soft);color:var(--green)}.secondary:hover{background:var(--green-soft)}.progress-track span{background:var(--green)}.writing-chapter.selected{background:var(--green-soft);box-shadow:inset 3px 0 var(--green)}.zhuque-guide-float{background:var(--green)}.zhuque-guide-float:hover{background:var(--green-deep)}@media(max-width:680px){.skin-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skin-color-grid{grid-template-columns:1fr}.skin-button{font-size:.8125rem;padding:6px 8px}}
.topbar,.stat,.board,.modal,.modal-foot,.modal-head,.book-item.selected,.search-field,.filter-bar select,.table-wrap{background:var(--paper)}.modal-head{background:var(--paper)}.title-row h1,.board-title h2,.modal-head h2,.detail-title,.personal-heading h1,.corpus-intro h1,.corpus-heading h2,.writing-title{color:var(--ink)}.breadcrumb,.workspace-label,.board-title p,.book-intro p,.personal-card-head>span,.corpus-intro p{color:var(--muted)}.book-item.selected{border-color:var(--line)}.topbar{background:var(--paper)}
.chapter-volume-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:0;text-align:left;color:inherit}.chapter-volume-toggle:hover{color:var(--green)}.chapter-volume-toggle-copy{display:flex;align-items:flex-start;gap:9px;min-width:0}.chapter-volume-toggle-copy>span:last-child{min-width:0}.chapter-volume-toggle-copy strong,.chapter-volume-toggle-copy small{display:block}.chapter-volume-toggle-copy strong{font-size:.9375rem;line-height:1.7;color:#557244;font-weight:550;overflow-wrap:anywhere}.chapter-volume-toggle-copy small{font-size:.8125rem;color:#8b9f78;line-height:1.8;margin-top:3px}.chapter-volume-caret{display:grid;place-items:center;width:19px;height:19px;margin-top:3px;color:#91a583;transition:transform .16s ease}.chapter-volume-caret .icon{width:13px;height:13px}.chapter-volume-card.is-open{border-color:#a9c29c;box-shadow:0 3px 12px #53754514}.chapter-volume-card.is-open .chapter-volume-caret{transform:rotate(90deg)}.chapter-volume-toggle-label{flex-shrink:0;font-size:.75rem;color:#7d966d;white-space:nowrap}.chapter-volume-actions{display:flex;flex-direction:column;gap:8px}.chapter-volume-actions .secondary,.chapter-volume-actions .danger-outline{width:100%;font-size:.875rem;justify-content:center;min-height:36px}.chapter-volume-detail{border-top:1px solid #e5ebdd;background:#fff}.chapter-volume-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 25px 12px}.chapter-volume-detail-heading h3{font-size:.9375rem;font-weight:600;color:#577342}.chapter-volume-detail-heading p{font-size:.8125rem;color:#8b9f78;margin-top:3px}.chapter-volume-detail-heading .secondary{font-size:.8125rem;padding:6px 10px;min-height:31px}.chapter-volume-empty{display:grid;justify-items:center;gap:7px;padding:50px 20px;color:#8b9a80;text-align:center}.chapter-volume-empty .icon{width:28px;height:28px;color:#aebda2}.chapter-volume-empty strong{font-size:.9375rem;font-weight:550;color:#66785b}.chapter-volume-empty p{font-size:.8125rem;color:#93a188}.chapter-volume-detail .chapter-group-list{padding-top:4px}@media(max-width:680px){.chapter-volume-toggle-label{font-size:.6875rem}.chapter-volume-detail-heading{padding:15px 15px 10px}.chapter-volume-detail-heading h3{font-size:.875rem}.chapter-volume-detail .chapter-group-list{padding-left:10px;padding-right:10px}}
.plan-board[data-plan-layout="list"] .chapter-volume-grid{grid-template-columns:1fr;gap:8px;padding:12px 16px}
.plan-board[data-plan-layout="list"] .chapter-volume-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:0;padding:0}
.plan-board[data-plan-layout="list"] .chapter-volume-card>.chapter-volume-toggle{padding:15px}
.plan-board[data-plan-layout="list"] .chapter-volume-card>.chapter-volume-actions{grid-column:2;grid-row:1;padding:12px;min-width:180px;border-left:1px solid #e9efe2}
.plan-board:not([data-plan-layout="list"]) .chapter-group-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:10px;padding:10px}
.plan-board:not([data-plan-layout="list"]) .chapter-group-items .setting-card{border:1px solid #e5ecdb;border-radius:8px;background:#fff}
@media(max-width:680px){
.plan-board[data-plan-layout="list"] .chapter-volume-card{display:flex;gap:11px;padding:15px}
.plan-board[data-plan-layout="list"] .chapter-volume-card>.chapter-volume-toggle{padding:0}
.plan-board[data-plan-layout="list"] .chapter-volume-card>.chapter-volume-actions{padding:0;min-width:0;border-left:0}
}
.artifacts-page{max-width:1100px;margin:0 auto}
.artifact-categories{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.artifact-categories button{padding:8px 12px;border:1px solid var(--line);border-radius:7px;font-size:.875rem;overflow-wrap:anywhere}
.artifact-categories button.active{background:var(--green-soft);border-color:var(--green);color:var(--ink)}
.artifact-count{margin:16px 0;color:var(--muted);font-size:.875rem}
.artifact-preview-list{display:grid;gap:14px;max-height:55vh;overflow:auto}
.artifact-preview-row{border:1px solid var(--line);border-radius:8px;padding:14px;overflow-wrap:anywhere}
.artifact-preview-row small{font-size:.875rem;color:var(--muted)}
.artifact-preview-row details{margin-top:10px}
.artifact-preview-row summary{cursor:pointer}
.artifact-entry h3,.artifact-entry .corpus-card-meta{overflow-wrap:anywhere}
.artifacts-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:28px}
.artifacts-intro h1{margin-top:9px;font-size:2rem;line-height:1.4;color:var(--ink);letter-spacing:1px}
.artifacts-intro p{margin-top:8px;color:var(--muted);font-size:1rem}
.artifacts-board{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 3px 10px #263d2302}
.artifacts-card{padding:25px}
.artifacts-card .personal-card-head{margin-bottom:12px}
.artifacts-card h2{font-size:1.25rem;color:var(--ink)}
.artifacts-card .personal-card-head>span{font-size:.875rem;color:var(--muted)}
.artifacts-copy{max-width:760px;color:var(--muted);line-height:1.8}
.artifacts-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:12px;margin-top:22px}
.artifacts-category{display:flex;align-items:flex-start;gap:11px;min-height:88px;padding:15px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}
.artifacts-category-icon{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:8px;background:var(--green-soft);color:var(--green)}
.artifacts-category-icon .icon{width:16px;height:16px}
.artifacts-category strong{display:block;color:var(--ink);font-size:1rem}
.artifacts-category p{margin-top:3px;color:var(--muted);font-size:.875rem;line-height:1.7}
.artifacts-empty{display:grid;justify-items:center;gap:7px;margin-top:24px;padding:42px 20px;border-top:1px solid var(--line);color:var(--muted);text-align:center}
.artifacts-empty .icon{width:28px;height:28px;color:#aebda2}
.artifacts-empty strong{font-size:1rem;color:var(--text)}
.artifacts-empty p{font-size:.875rem}
@media(max-width:680px){.artifacts-page{width:100%}.artifacts-intro{align-items:flex-start;flex-direction:column;gap:14px;padding-bottom:20px}.artifacts-intro h1{font-size:1.75rem}.artifacts-intro .secondary{width:100%}.artifacts-card{padding:18px}.artifacts-category-grid{grid-template-columns:1fr}.artifacts-category{min-height:0}}
/* 写作页右栏：上一章结尾 / 人物速览 / 本章进度 / 可参考的写法 */
.ref-block{padding:14px 16px;border-top:1px solid var(--line)}
.ref-block h3{font-size:.9375rem;margin:0 0 8px}
.ref-block p{margin:0 0 6px}
.ref-block small{color:var(--muted);font-size:.8125rem;display:block;margin-top:6px}
.ref-previous>summary{cursor:pointer;font-weight:600;margin-bottom:6px;list-style-position:inside}
.ref-block>summary{cursor:pointer;font-weight:600;margin-bottom:6px;list-style-position:inside}
.ref-block>summary h3{margin:0}
.ref-count{color:var(--muted);font-size:.8125rem;font-weight:400;margin-left:8px}
.ref-corpus-head .ref-count{margin-right:auto}
.ref-tail{white-space:pre-wrap;color:var(--muted);line-height:1.8;margin:0}
.ref-bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin:0 0 8px}
.ref-bar span{display:block;height:100%;background:var(--green);border-radius:6px}
.ref-corpus-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ref-corpus-card{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0 0 8px}
.ref-corpus-card>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;list-style-position:inside}
.ref-corpus-card>summary span{color:var(--muted);font-size:.8125rem}
.ref-corpus-summary{color:var(--muted);font-size:.875rem;margin:6px 0}
.ref-corpus-body{white-space:pre-wrap;font-family:inherit;font-size:.8125rem;background:var(--paper);border-radius:6px;padding:8px;margin:0;max-height:180px;overflow:auto}
.ref-corpus-use{margin-top:8px}
.ref-sample-body{white-space:pre-wrap;font-family:inherit;font-size:.9375rem;line-height:1.9;background:var(--paper);border-radius:8px;padding:10px;margin:0;max-height:46vh;overflow:auto}
.ref-person{border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:0 0 6px}
.ref-person>summary{cursor:pointer}
.ref-person p{font-size:.8125rem;color:var(--muted);margin:4px 0}
.ref-person p b{color:var(--ink);margin-right:6px}

/* 写作页右栏：只有参考资料时，用一行小提示代替原来那整块校准卡 */
.writing-side-hint{padding:16px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.875rem}
.writing-side-hint p{margin:0 0 6px}
.writing-side-hint small{color:var(--muted);opacity:.85}

/* 台账页顶部的「该回收了」提示条：沿用首页那张卡的样式，只调一下外边距 */
.ledger-due{margin:0 0 20px}

/* Keep backfill reminders distinct from status and selection indicators. */
.ai-unread-dot{display:inline-block;flex:none;width:8px;height:8px;min-width:8px;margin-left:7px;border-radius:50%;background:#dc3545;box-shadow:0 0 0 2px #fff;vertical-align:middle}
.nav-item>.ai-unread-dot{margin-left:auto;margin-right:6px}
.extraction-destination{display:block;color:var(--muted,#738567);font-size:11px;font-weight:400;margin-bottom:3px}
.extraction-links button{text-align:left}
.planning-source-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 8px}.planning-source-heading h3{margin:0;font-size:1rem}.planning-source-heading>span,.extracted-group-toggle small{font-size:.875rem;opacity:.8}.planning-extracted-section{border-top:1px solid var(--border,#dce6d2);padding-bottom:16px}.extracted-volumes{display:grid;gap:10px;padding:10px 16px}.extracted-volume{border:1px solid var(--border,#dce6d2);border-radius:8px;overflow:hidden}.extracted-group-toggle{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:14px 16px;font-size:.9375rem;background:var(--surface,#f8faf5);color:inherit}.extracted-group-toggle strong{flex:1;min-width:0;overflow-wrap:anywhere}.extracted-group-toggle:hover{filter:brightness(.98)}.extracted-group-toggle:focus-visible{outline:2px solid currentColor;outline-offset:-3px}.extracted-chapters{padding:0 12px 12px}.extracted-chapter{border-top:1px solid var(--border,#dce6d2)}.extracted-chapter>.extracted-group-toggle{background:transparent}.planning-source-empty{padding:0 18px;font-size:.875rem}.extracted-caret{flex:none}.extracted-chapters .setting-grid{padding:10px!important}@media(max-width:680px){.planning-source-heading{flex-wrap:wrap}.extracted-group-toggle{gap:6px;padding:12px 10px}.extracted-group-toggle small{max-width:40%;font-size:.8125rem}.extracted-volumes{padding:8px}.extracted-chapters{padding:0 6px 6px}}
.inbox-unread-count{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:0 5px;margin-left:auto;background:#c52d42;color:white;border-radius:12px;font-size:.75rem;font-weight:600}.inbox-unread-count[hidden]{display:none}.inbox-actions{display:flex;gap:8px}.inbox-filters{flex-wrap:wrap;gap:14px}.inbox-list{padding:0 18px}.inbox-row{display:flex;align-items:center;gap:14px;width:100%;padding:20px 4px;border-bottom:1px solid var(--border,#e1e8d9);text-align:left;color:inherit}.inbox-row:hover{background:var(--surface,#f8faf5)}.inbox-row-copy{min-width:0;flex:1;display:grid;gap:8px}.inbox-row-meta{display:flex;gap:12px;justify-content:space-between;font-size:.875rem;opacity:.8}.inbox-row-copy>strong{font-size:1rem;font-weight:500}.inbox-row.is-unread strong{font-weight:700}.inbox-row-dot{width:8px;height:8px;flex:none;border-radius:50%;background:transparent}.inbox-row.is-unread .inbox-row-dot{background:#c52d42}.inbox-preview{font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}.inbox-message-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:1rem}.inbox-message-detail h3{font-size:1.2rem;margin:18px 0}.inbox-message-meta{font-size:.875rem;opacity:.8}.inbox-error{padding:16px;color:#a6293a}.inbox-loading{padding:12px 18px;font-size:.875rem}@media(max-width:680px){.inbox-row-meta{flex-wrap:wrap;gap:4px}.inbox-list{padding:0 12px}.inbox-row{gap:9px}.inbox-board .board-top{flex-wrap:wrap}.inbox-filters{gap:12px}.inbox-actions{flex-wrap:wrap}}
:root .character-library{padding:24px;border-bottom:1px solid var(--line,#dce3d6);background:var(--paper,#fafbf7)}
.character-library-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.character-library-heading h3{margin:0 0 8px;font-size:18px}.character-library-heading p,.character-library-hint{font-size:12px;color:var(--muted,#7d8d75);margin:0}.character-library-hint{margin:10px 0 20px}.character-library-actions{display:flex;gap:8px;flex-wrap:wrap}.character-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}.character-profile-card{background:var(--paper);border:1px solid var(--line,#dce3d6);border-radius:10px;overflow:hidden;min-width:0}.character-profile-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line,#dce3d6)}.character-name{display:flex;align-items:center;gap:10px;min-width:0;text-align:left}.character-name strong{overflow-wrap:anywhere}.character-profile-card header small{color:var(--muted,#7d8d75);white-space:nowrap}.character-profile-card dl{margin:0;padding:0 16px}.character-profile-card dl>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line,#edf0e7);font-size:13px}.character-profile-card dt{font-weight:600}.character-profile-card dt small{display:block;font-weight:400;font-size:10px;line-height:1.5;margin-top:4px;color:var(--muted,#7d8d75)}.character-profile-card dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;max-height:140px;overflow:auto;line-height:1.7}.profile-missing{color:var(--muted,#7d8d75)}.character-profile-card footer{display:flex;flex-wrap:wrap;gap:7px;padding:14px}.character-profile-card footer button{font-size:11px;padding:8px}.profile-summary{margin:14px 16px;color:var(--muted,#7d8d75);font-size:12px}.profile-empty{padding:24px 16px;text-align:center;color:var(--muted,#7d8d75);line-height:1.8}.profile-fill-options label{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line,#dce3d6)}.profile-fill-options input{width:auto;flex-shrink:0;align-self:flex-start}.profile-fill-options p{white-space:pre-wrap;overflow-wrap:anywhere}.profile-evidence dd{margin:5px 0 15px}.character-more{display:block;margin:20px auto 0}@media(max-width:700px){.character-library{padding:16px!important}.character-library-heading{align-items:flex-start;flex-direction:column}.character-profile-card header{padding:12px}}
.ledger-group-toolbar{padding:16px 20px;border-bottom:1px solid var(--line,#dce3d6);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ledger-group-toolbar strong{font-size:.875rem}.ledger-group-toolbar p{font-size:.75rem;color:var(--muted,#7d8d75);margin:6px 0 0}.ledger-group-controls{display:flex;gap:8px;flex-wrap:wrap}.ledger-volume-groups{padding:16px;display:grid;gap:12px}/* 第207批：整块台账区套进标准卡片后，里面这几块不要再来一圈左右内边距（不然缩进两圈） */
/* 第208批修：这条之前写成 .ledger-fold>div.ledger-card-body（跟 .home-due>div:last-child 同权重），
   而那条 max-width:640px 排在文件更后面 → 它赢，卡片里只占 640px、右边一片空。
   改成 details.ledger-fold>div.ledger-card-body（权重 0,2,2 > 0,2,1）→ 跟文件顺序无关，必定赢。 */
details.ledger-fold>div.ledger-card-body{display:block;max-width:none;width:100%}
.ledger-card-body .ledger-group-toolbar{padding:0 0 14px}
.ledger-card-body .filter-bar{padding:14px 0}
.ledger-card-body .filter-tabs{padding:0}
.ledger-card-body .ledger-volume-groups{padding:0}
/* 第207批顺手：容器一窄，右边那串统计（flex-shrink:0）会把分卷标题挤成"一列一个字"。
   本机实测：老样子在 648px 容器下标题就是 0×331 竖排 —— 不是卡片造成的，但卡片会更容易撞上。
   改成"统计让一让"：标题不许换行、统计可以换行右对齐（宽窗口下长相不变）。 */
.ledger-card-body .ledger-group-label{flex:0 1 auto;white-space:nowrap}
.ledger-card-body .ledger-group-count{flex:1 1 auto;min-width:0;margin-left:12px;text-align:right;overflow-wrap:anywhere}.ledger-volume-group{border:1px solid var(--line,#dce3d6);border-radius:8px;overflow:hidden;background:var(--paper)}.ledger-volume-group>summary,.ledger-chapter-group>summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none;background:var(--green-soft,#f1f5eb)}.ledger-volume-group>summary::-webkit-details-marker,.ledger-chapter-group>summary::-webkit-details-marker{display:none}.ledger-group-label{display:grid;gap:5px;min-width:0;overflow-wrap:anywhere}.ledger-group-label strong{font-size:.875rem}.ledger-group-label small,.ledger-group-count{font-size:.75rem;color:var(--muted,#7d8d75)}.ledger-group-count{margin-left:auto;flex-shrink:0}.ledger-group-chevron{font-size:.625rem;flex-shrink:0;transition:transform .15s}.ledger-volume-group[open]>summary>.ledger-group-chevron,.ledger-chapter-group[open]>summary>.ledger-group-chevron{transform:rotate(90deg)}.ledger-chapter-groups{padding:12px;display:grid;gap:10px}.ledger-chapter-group{border:1px solid var(--line,#dce3d6);border-radius:6px;overflow:hidden}.ledger-chapter-group>summary{background:var(--paper,#fafbf7);padding:13px 14px}.ledger-volume-group>summary:focus-visible,.ledger-chapter-group>summary:focus-visible{outline:2px solid var(--green,#2d5944);outline-offset:-3px}.ledger-chapter-group .table-wrap{border-top:1px solid var(--line,#dce3d6)}@media(max-width:680px){.ledger-group-toolbar{padding:14px 12px}.ledger-volume-groups{padding:10px}.ledger-chapter-groups{padding:6px}.ledger-volume-group>summary,.ledger-chapter-group>summary{flex-wrap:wrap;gap:8px;padding:12px}.ledger-group-count{flex-basis:100%;margin-left:20px}.ledger-group-label{flex:1}.ledger-group-controls{width:100%}}
.timeline-whole-book{padding:16px 16px 0}.timeline-book-group,.timeline-volume-group{border:1px solid var(--line,#dce3d6);border-radius:8px;overflow:hidden;background:var(--paper)}.timeline-book-group{border-color:var(--green,#2d5944)}.timeline-chapter-group{border:1px solid var(--line,#dce3d6);border-radius:6px;overflow:hidden}.timeline-book-group>summary,.timeline-volume-group>summary,.timeline-chapter-group>summary{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none;background:var(--green-soft,#f1f5eb)}.timeline-chapter-group>summary{padding:13px 14px;background:var(--paper,#fafbf7)}.timeline-book-group>summary::-webkit-details-marker,.timeline-volume-group>summary::-webkit-details-marker,.timeline-chapter-group>summary::-webkit-details-marker{display:none}.timeline-book-group[open]>summary>.ledger-group-chevron,.timeline-volume-group[open]>summary>.ledger-group-chevron,.timeline-chapter-group[open]>summary>.ledger-group-chevron{transform:rotate(90deg)}.timeline-book-group>summary:focus-visible,.timeline-volume-group>summary:focus-visible,.timeline-chapter-group>summary:focus-visible{outline:2px solid var(--green,#2d5944);outline-offset:-3px}.timeline-whole-scroll{max-height:65vh;overflow:auto;padding-top:12px}.timeline-book-group>.timeline-legend{padding-top:16px}.timeline-group-items{padding:14px!important}.timeline-group-empty{padding:24px 18px;color:var(--muted,#7d8d75);font-size:.875rem;line-height:1.8}@media(max-width:680px){.timeline-whole-book{padding:10px 10px 0}.timeline-book-group>summary,.timeline-volume-group>summary,.timeline-chapter-group>summary{flex-wrap:wrap;gap:8px;padding:12px}.timeline-group-items{padding:10px!important}}
.story-timeline-record{border:1px solid var(--line,#dce3d6);border-radius:7px;padding:12px;display:flex;flex-direction:column;gap:8px}.story-timeline-record .timeline-card{width:100%;border:0;padding:0;background:transparent;white-space:normal}.story-timeline-record.chapter-settings-links{display:flex;flex-direction:column;align-items:stretch}.story-event-facts{max-height:14rem;overflow:auto;font-size:.875rem;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}.story-event-facts p{margin:0 0 6px}.story-timeline-record>small{color:var(--muted,#7d8d75);font-size:.75rem}.story-timeline-board .timeline-group-items{gap:10px}.story-timeline-board .timeline-whole-scroll{padding-top:18px}

.story-axis-guide{padding:18px 22px 10px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--text)}.story-axis-guide>span{display:flex;gap:7px;align-items:center}.story-axis-guide small{color:var(--muted)}.story-axis-legend{display:flex;gap:18px;flex-wrap:wrap;padding:0 22px 8px;font-size:.75rem;color:var(--muted)}.story-axis-legend span{display:flex;gap:6px;align-items:center}.story-axis-legend i{width:8px;height:8px;border-radius:50%;background:var(--event-color)}[data-story-kind=manuscript]{--event-color:#397c69}[data-story-kind=chapter]{--event-color:#527ca8}[data-story-kind=plot]{--event-color:#ae7a27}[data-story-kind=subplot]{--event-color:#9164a6}
.story-axis-scroll{overflow-x:auto;overscroll-behavior-x:contain;scroll-padding:24px;padding-bottom:8px;background:var(--paper);background-image:radial-gradient(var(--line) .65px,transparent .65px);background-size:16px 16px}.story-axis-track{display:flex;list-style:none;margin:0;padding:18px 20px 24px;width:max-content;min-width:100%}.story-axis-stop{position:relative;flex:0 0 210px;width:210px;padding:0 12px;min-width:0}.story-axis-stop::before{content:"";position:absolute;top:35px;height:3px;left:0;right:0;background:var(--line)}.story-axis-stop:first-child::before{left:38px}.story-axis-stop:last-child::before{right:calc(100% - 38px)}.story-axis-stop.unplaced::before{height:0;border-top:2px dashed var(--line);background:none}.story-axis-volume{display:block;height:24px;max-width:185px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;color:var(--muted);padding-left:9px}
.story-axis-node{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-align:left;margin-top:30px;width:100%;min-height:160px;padding:17px 14px;background:var(--paper);border:1px solid var(--line);border-radius:9px;box-shadow:0 3px 9px #20362b06;color:var(--ink)}.story-axis-node::before{content:"";position:absolute;left:24px;top:-19px;width:2px;height:18px;background:var(--line)}.story-axis-pin{position:absolute;left:16px;top:-27px;width:18px;height:18px;border-radius:50%;background:var(--paper);border:3px solid var(--green);z-index:1}.story-axis-chapter{font-size:.75rem;font-weight:600;color:var(--green);display:flex;gap:8px;align-items:center}.story-axis-chapter b{font-size:.6rem;border-radius:3px;background:var(--green-soft);padding:2px 5px}.story-axis-node>strong{font-size:.875rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.story-axis-time{font-size:.75rem;color:var(--text)}.story-axis-node>small{font-size:.7rem;color:var(--muted);margin-top:auto}.story-axis-stop.selected .story-axis-node{border:2px solid var(--green);padding:16px 13px;box-shadow:0 5px 15px #20362b12}.story-axis-stop.selected .story-axis-pin{background:var(--green);box-shadow:0 0 0 5px var(--green-soft)}.story-axis-stop.current .story-axis-volume{font-weight:600;color:var(--green)}.story-axis-stop.current:not(.selected) .story-axis-pin{box-shadow:0 0 0 4px var(--green-soft)}.story-axis-node:hover{border-color:var(--green);background:var(--green-soft)}.story-axis-node:focus-visible,.story-axis-scroll:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.story-axis-selection{margin:0 20px 20px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:18px}.story-axis-selection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.story-axis-selection-head h3{font-size:1rem;line-height:1.7;margin:4px 0 0}.story-axis-selection-head>span{font-size:.75rem;color:var(--muted);white-space:nowrap}.story-axis-selection .story-event-axis{max-height:27rem;overflow:auto;padding-right:6px}
.story-event-axis{display:flex;flex-direction:column;gap:20px;width:100%}.story-event-step{display:grid;grid-template-columns:96px minmax(0,1fr);gap:24px;position:relative}.story-event-step:not(:last-child)::before{content:"";position:absolute;left:95px;top:15px;bottom:-24px;width:2px;background:var(--line)}.story-event-stamp{position:relative;padding:3px 17px 0 0;text-align:right;font-size:.72rem;line-height:1.7;color:var(--text);overflow-wrap:anywhere}.story-event-pin{position:absolute;right:-6px;top:6px;width:13px;height:13px;border:3px solid var(--paper);outline:2px solid var(--event-color);background:var(--event-color);border-radius:50%;z-index:1}.story-event-content{min-width:0}.story-event-content>.story-timeline-record,.story-event-content>.writing-timeline{border-left:3px solid var(--event-color);background:var(--paper);box-shadow:0 2px 6px #20362b06}.story-event-content .event-kind{color:var(--event-color);font-weight:600}.story-time-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;font-size:.7rem}.story-time-tags span{padding:3px 8px;background:var(--green-soft);border-radius:12px}.story-event-content .story-event-facts{font-size:.8rem;max-height:10rem}.story-event-content .story-event-facts p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.story-timeline-board .visual-chapter-rail{position:relative;padding:18px 16px 18px 34px;gap:15px}.visual-chapter-rail::before{content:"";position:absolute;left:16px;top:30px;bottom:30px;width:2px;background:var(--green)}.visual-chapter-rail>.timeline-chapter-group{position:relative;overflow:visible}.visual-chapter-rail>.timeline-chapter-group::before{content:"";position:absolute;left:-24px;top:21px;width:11px;height:11px;background:var(--paper);border:3px solid var(--green);border-radius:50%;z-index:1}.visual-chapter-rail>.timeline-chapter-group[open]::before{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.visual-chapter-rail>.timeline-chapter-group>summary{border-radius:6px}
@media(max-width:680px){.story-axis-guide{padding:14px 12px 8px}.story-axis-legend{padding-left:12px;gap:12px}.story-axis-track{padding-left:10px;padding-right:10px}.story-axis-stop{width:180px;flex-basis:180px}.story-axis-selection{margin:0 10px 12px;padding:12px}.story-event-step{grid-template-columns:66px minmax(0,1fr);gap:15px}.story-event-step:not(:last-child)::before{left:65px}.story-event-stamp{font-size:.65rem;padding-right:12px}.story-axis-selection-head{align-items:flex-start}.story-timeline-board .visual-chapter-rail{padding-right:8px;padding-left:27px}.visual-chapter-rail::before{left:12px}.visual-chapter-rail>.timeline-chapter-group::before{left:-21px}.story-event-content .timeline-card{flex-wrap:wrap}.story-event-content .story-event-facts{font-size:.75rem}}

/* Feedback form: clear field hierarchy, optional contacts, compact history. */
.feedback-board{margin-bottom:24px;overflow:hidden}.feedback-board>.board-top{padding:22px 28px;border-bottom:1px solid var(--line);gap:16px;align-items:center}.feedback-required-note{font-size:.875rem;color:var(--muted);white-space:nowrap}.feedback-board em{font-style:normal;color:var(--red)}
.feedback-form{padding:26px 28px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,3fr);gap:24px}.feedback-form label{display:flex;flex-direction:column;gap:9px;min-width:0;font-size:.9375rem}.feedback-label{display:flex;align-items:center;gap:5px;min-height:24px;font-weight:550;color:var(--ink)}.feedback-label small{margin-left:auto;font-size:.875rem;font-weight:400;color:var(--muted)}
.feedback-form input,.feedback-form select,.feedback-form textarea{display:block;width:100%;min-width:0;min-height:46px;margin:0;padding:11px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--text);font:inherit;line-height:1.5;transition:border-color .15s,box-shadow .15s}.feedback-form input:hover,.feedback-form select:hover,.feedback-form textarea:hover{border-color:var(--muted)}.feedback-form input:focus,.feedback-form select:focus,.feedback-form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.feedback-form input::placeholder,.feedback-form textarea::placeholder{color:var(--muted);opacity:1}.feedback-form textarea{min-height:160px;resize:vertical}.feedback-form input:disabled,.feedback-form select:disabled,.feedback-form textarea:disabled{opacity:.65}
.feedback-body-label,.feedback-contacts,.feedback-submit{grid-column:1/-1}.feedback-contacts{min-width:0;margin:0;padding:16px 20px 20px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.feedback-contacts legend{padding:0 8px;font-size:.9375rem;font-weight:600;color:var(--ink)}.feedback-contacts legend span{font-size:.875rem;font-weight:400;color:var(--muted);margin-left:8px}.feedback-contacts>p{font-size:.875rem;color:var(--muted);margin:0 0 16px}.feedback-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.feedback-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:6px}.feedback-submit>.primary{min-height:46px;min-width:136px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 20px}#feedback-result{margin:0;font-size:.9375rem;white-space:pre-wrap;overflow-wrap:anywhere;flex:1}#feedback-result:empty{display:none}.feedback-submit>.primary{margin-left:auto}
.feedback-summary{padding:14px 28px;color:var(--muted);font-size:.875rem;background:var(--bg)}.feedback-record{border-top:1px solid var(--line)}.feedback-record>summary{display:flex;align-items:center;gap:18px;padding:20px 28px;cursor:pointer;list-style:none}.feedback-record>summary:before{content:'▸';color:var(--green)}.feedback-record[open]>summary:before{content:'▾'}.feedback-record-title{display:grid;gap:6px;min-width:0;flex:1}.feedback-record-title strong{font-size:1rem;overflow-wrap:anywhere}.feedback-record-title small,.feedback-record-title time{font-size:.875rem;color:var(--muted)}.feedback-status{font-size:.875rem;padding:5px 10px;background:var(--green-soft);color:var(--green);border-radius:5px;white-space:nowrap}.feedback-status.pending{background:#fff3dd;color:#825912}.feedback-record-detail{padding:0 28px 24px 48px}.feedback-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.8}.feedback-management{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px}.feedback-management>span{font-size:.875rem;color:var(--muted);margin-right:4px}.feedback-history .empty{min-height:0;padding:32px 20px}.feedback-history .empty h3{font-size:1rem}.feedback-history .empty p{font-size:.875rem;margin-top:6px}.feedback-contact-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;padding:16px;background:var(--bg);border-radius:8px;margin:18px 0}.feedback-contact-details dt{font-size:.875rem;color:var(--muted)}.feedback-contact-details dd{margin:3px 0 0;overflow-wrap:anywhere;font-size:.9375rem}
@media(max-width:700px){.feedback-board>.board-top{padding:18px;flex-wrap:wrap}.feedback-form{grid-template-columns:1fr;padding:18px;gap:20px}.feedback-contact-grid,.feedback-contact-details{grid-template-columns:1fr}.feedback-contacts{padding:12px 14px 16px}.feedback-record>summary{padding:16px;gap:10px}.feedback-record-detail{padding:0 16px 20px}.feedback-summary{padding:12px 18px}.feedback-status{padding:4px 7px}.feedback-submit{flex-wrap:wrap}#feedback-result:not(:empty){flex-basis:100%}.feedback-required-note{white-space:normal}}
.feedback-admin-response{margin-top:18px;padding:16px;border-left:3px solid var(--green);background:var(--bg);border-radius:6px}.feedback-admin-response p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}
/* Writer-first home and recovery surfaces use the active skin. */
.home-page{max-width:1180px;margin:0 auto}.home-heading,.home-actions,.home-section-head,.home-book-row,.home-resume,.home-reminders,.recovery-actions,.recovery-pagination{display:flex;align-items:center;justify-content:space-between;gap:20px}.home-heading{margin:12px 0 30px}.home-heading h1{font-size:2rem;margin:5px 0 0}.home-welcome{color:var(--muted);font-size:.9375rem}.home-actions{justify-content:flex-start;flex-wrap:wrap;gap:10px}.home-resume{padding:32px;border:1px solid var(--line);border-left:5px solid var(--green);border-radius:12px;background:var(--paper);margin-bottom:26px}.home-resume h2{font-size:1.65rem;margin:10px 0 12px}.home-resume p{font-size:1.0625rem;margin-bottom:12px}.home-resume small,.home-book-copy small{font-size:.875rem;color:var(--muted)}.home-books{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.home-section-head{padding:20px 24px;border-bottom:1px solid var(--line)}.home-section-head h2,.home-reminders h2{font-size:1.0625rem}.home-section-head small{font-weight:400;color:var(--muted);margin-left:8px}.home-book-row{padding:22px 24px;border-bottom:1px solid var(--line)}.home-book-row:last-child{border:0}.home-book-copy{flex:1;min-width:0;overflow-wrap:anywhere}.home-book-copy h3{font-size:1.0625rem;margin-bottom:7px}.home-book-copy h3 small{margin-left:10px}.home-book-copy p{font-size:.9375rem;margin:0 0 5px;color:var(--muted)}.home-book-symbol{display:grid;place-items:center;width:46px;height:58px;background:var(--green-soft);color:var(--green);border-radius:4px 8px 8px 4px;flex-shrink:0}.home-reminders{padding:20px 24px;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-bottom:26px;align-items:start}.home-reminders p{font-size:.875rem;color:var(--muted);margin-top:6px}.home-reminders>div:last-child{flex:1;max-width:640px}.home-reminders button{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:10px;border:0;border-bottom:1px solid var(--line);background:transparent}.home-reminders button span{color:var(--muted);font-size:.875rem;white-space:nowrap}.home-reminders button strong{flex:1;font-weight:500}.home-stats{padding:20px 24px;background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-bottom:26px}.home-stats-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.home-stats-head h2{margin:0;font-size:1.0625rem;color:var(--ink)}.home-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0 4px}.stat-figure{display:grid;gap:5px;padding:14px 16px;background:var(--bg);border:1px solid var(--line);border-radius:9px}.stat-figure strong{font-size:1.5rem;font-weight:600;color:var(--ink);line-height:1.2}.stat-figure small{font-size:.8125rem;color:var(--muted)}.stat-goal{height:6px;margin-top:4px;border-radius:99px;background:var(--green-soft);overflow:hidden}.stat-goal>span{display:block;height:100%;border-radius:99px;background:var(--green);transition:width .3s}.stat-bars{display:flex;align-items:flex-end;gap:8px;height:72px;margin-top:16px}.stat-bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.stat-bar>span{display:block;width:100%;min-height:3px;border-radius:5px 5px 0 0;background:var(--green-soft)}.stat-bar:hover>span{background:var(--green)}.stat-bar small{font-size:11px;color:var(--muted);line-height:1}.home-stats-note{margin:14px 0 0;font-size:.875rem;color:var(--muted)}.home-stats-note.done{color:var(--green)}.home-due{padding:20px 24px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--red);border-radius:10px;margin-bottom:26px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.home-due h2{font-size:1.0625rem;display:flex;align-items:center;gap:8px}.home-due h2 svg{width:19px;height:19px;color:var(--red)}.home-due h2 small{padding:1px 8px;border-radius:20px;background:var(--red);color:#fff;font-size:.75rem;font-weight:600}.home-due p{font-size:.875rem;color:var(--muted);margin-top:6px}.home-due-other{display:block;margin-top:10px;color:var(--muted);font-size:.8125rem}.home-due>div:last-child{flex:1;max-width:640px}.home-due button{display:flex;align-items:center;gap:16px;width:100%;text-align:left;padding:10px;border:0;border-bottom:1px solid var(--line);background:transparent}.home-due button span{color:var(--muted);font-size:.875rem;white-space:nowrap}.home-due button strong{flex:1;font-weight:500}.home-due-more{display:block;padding:8px 10px;color:var(--muted);font-size:.8125rem}.home-due .home-due-actions button{display:inline-flex;align-items:center;gap:8px;width:auto;margin-top:14px;padding:10px 18px;border:0}.home-footer-links{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:24px;margin-top:24px}.home-footer-links button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);font-size:.875rem}.home-empty{padding:64px 24px;text-align:center;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.home-empty-icon{color:var(--green);margin:0 auto 22px}.home-empty-icon svg{width:40px;height:40px}.home-empty h2{font-size:1.65rem;margin-bottom:14px}.home-empty p{font-size:1rem;color:var(--muted);line-height:1.9}.home-empty .home-actions{justify-content:center;margin:24px 0}.home-example dl{display:grid;grid-template-columns:100px 1fr;gap:16px;margin:24px 0}.home-example dd{margin:0}.home-example dt{color:var(--green)}
.recovery-panel{font-size:1rem}.recovery-note{font-size:.9375rem;color:var(--muted);line-height:1.8;margin-bottom:20px}.recovery-list{border:1px solid var(--line);border-radius:8px;overflow:hidden}.recovery-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;width:100%;background:var(--paper);border:0;border-bottom:1px solid var(--line);text-align:left}.recovery-row:last-child{border-bottom:0}.recovery-row:hover{background:var(--green-soft)}.recovery-row strong,.recovery-row small{display:block}.recovery-row strong{font-size:1rem;overflow-wrap:anywhere}.recovery-row small{font-size:.875rem;color:var(--muted);margin-top:7px}.recovery-pagination,.recovery-actions{margin-top:22px;flex-wrap:wrap;font-size:.875rem}.recovery-panel h3{margin:20px 0 10px}.history-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-height:48vh;overflow-y:auto;overscroll-behavior:contain}.history-compare section{border:1px solid var(--line);border-radius:8px;min-width:0;padding:0 16px 16px}.history-compare .history-head{position:sticky;top:0;z-index:1;background:#fff;padding:16px 0 10px}.history-compare h4{font-size:1rem;margin:0 0 4px}.history-compare small{display:block;font-size:.875rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-compare pre{font-family:inherit;font-size:1rem;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.history-compare mark{color:var(--ink);background:#fff0ca}.history-compare .history-after{background:#dcefdc}.recovery-items{padding-left:24px;line-height:2;max-height:50vh;overflow:auto}.recovery-error{color:var(--red);white-space:pre-wrap}.chapter-review-start{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;padding:24px;margin-bottom:20px}.chapter-review-start h2{font-size:1.125rem;margin-bottom:10px}.chapter-review-start p{font-size:.9375rem;line-height:1.8;color:var(--muted);max-width:700px}.chapter-review-start button{flex-shrink:0}.chapter-review-steps{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.chapter-review-start .chapter-review-note{font-size:.8125rem;margin-top:6px}.calibration-extract-hint{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:18px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;background:var(--gold-bg)}.calibration-extract-hint strong{display:block;font-size:.9375rem;color:var(--ink);margin-bottom:6px}.calibration-extract-hint p{font-size:.875rem;line-height:1.7;color:var(--muted);margin:0}.extract-hint-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.extract-hint-actions button{white-space:nowrap}.calibration-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 6px}.calibration-actions button{display:inline-flex;align-items:center;gap:8px}.calibration-actions-note{font-size:.8125rem;line-height:1.8;color:var(--muted);margin:2px 0 8px}.calibration-actions-note .writing-text-button{display:inline-flex;align-items:center;margin-left:6px}.calibration-upgrade-note{color:var(--ink);background:var(--gold-bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:6px}.calibration-quota-note{padding:14px 16px;margin:10px 0 6px;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:10px;background:#fdf3f0}.calibration-quota-note strong{display:block;font-size:.9375rem;color:var(--ink);margin-bottom:6px}.calibration-quota-note p{font-size:.875rem;line-height:1.7;color:var(--muted);margin:0}.calibration-quota-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.calibration-quota-actions button{display:inline-flex;align-items:center;gap:8px}.member-benefits{padding:14px 16px;margin:4px 0 16px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;background:var(--gold-bg)}.member-benefits h4{font-size:.9375rem;color:var(--ink);margin:0 0 8px}.member-benefits ul{margin:0 0 8px;padding-left:20px}.member-benefits li{font-size:.875rem;line-height:1.9;color:var(--text)}.member-benefits p{font-size:.8125rem;line-height:1.7;color:var(--muted);margin:0}.calibration-timeline-group{flex-basis:100%}
.calibration-timeline{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.calibration-timeline li{margin:0}
.calibration-timeline button{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;width:100%;text-align:left;padding:7px 10px;border-radius:8px;background:rgba(120,90,200,.07)}
.calibration-timeline b{font-weight:600}
.calibration-timeline small{color:#7a54c4;font-size:12px}
.calibration-timeline em{font-style:normal;color:var(--ink-soft,#666);font-size:13px}
.clue-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:9px;font-size:12px;font-weight:400;line-height:18px;vertical-align:middle;background:rgba(122,84,196,.12);color:#6b46c1;white-space:nowrap}
.clue-tag-main{background:rgba(198,120,32,.14);color:#a05a12}
.clue-tag-ai{background:rgba(36,120,196,.12);color:#1f5f9e}
.clue-tag-warn{background:rgba(180,60,60,.12);color:#a33}
.credit-pack{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:8px 0;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.credit-pack-info{display:flex;flex-direction:column;gap:4px}.credit-pack-info small{color:var(--muted);font-size:.8125rem}.chapter-review-report{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:24px;margin-bottom:20px}.chapter-ai-options{border:1px solid var(--line);border-radius:10px;padding:20px;background:var(--paper);margin-bottom:20px}.chapter-ai-options>summary{cursor:pointer;font-weight:600;font-size:1rem;color:var(--green);padding:4px}.chapter-ai-options>.personal-hint{margin:16px 0}.chapter-ai-options .personal-grid{margin-top:20px}.writing-page-head>div{display:flex;gap:12px;flex-wrap:wrap}.writing-save-row{flex-wrap:wrap}.writing-save-row #writing-save-status{font-size:.875rem}.writing-recovery-actions,.local-draft-notice{background:var(--gold-bg);border:1px solid var(--line);padding:16px;border-radius:8px;font-size:.9375rem;line-height:1.8}.writing-recovery-actions{flex-basis:100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.writing-recovery-actions strong{flex-basis:100%;color:var(--ink)}.local-draft-notice{margin:12px 0}.local-draft-notice p{margin:8px 0 12px}.local-draft-notice button{margin:4px}.chapter-review-report .calibration-card{font-size:.9375rem}
@media(max-width:760px){.home-heading,.home-resume,.home-due,.home-reminders,.chapter-review-start{align-items:flex-start;flex-direction:column}.chapter-review-steps,.calibration-extract-hint,.extract-hint-actions{width:100%}.calibration-actions{width:100%;flex-direction:column;align-items:stretch}.calibration-extract-hint{flex-direction:column}.home-resume,.home-empty{padding:24px}.home-book-row{padding:18px;flex-wrap:wrap;gap:14px}.home-book-copy{flex-basis:calc(100% - 70px)}.home-book-row>button{margin-left:60px}.home-heading h1{font-size:1.7rem}.home-resume h2{font-size:1.4rem}.home-due>div:last-child,.home-reminders>div:last-child{width:100%}.history-compare{grid-template-columns:1fr;max-height:60vh}.chapter-ai-options,.chapter-review-report{padding:16px}.home-section-head{padding:18px}.home-footer-links{justify-content:flex-start}}

.chapter-references{border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:22px;background:var(--paper)}.chapter-references summary{font-size:1rem;font-weight:600;color:var(--green);cursor:pointer}.chapter-references>button{display:grid;gap:6px;text-align:left;width:100%;background:transparent;border:0;border-top:1px solid var(--line);padding:12px 0;margin-top:10px}.chapter-references small,.chapter-references p{font-size:.875rem;color:var(--muted);line-height:1.7}.chapter-references p{margin-top:12px}.chapter-references strong{font-size:.9375rem}.chapter-references span{font-size:.875rem;line-height:1.8}.chapter-reference-people{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chapter-reference-people button{font-size:.875rem;background:var(--green-soft);color:var(--green);border:1px solid var(--line);border-radius:5px;padding:5px 9px}

/* Chapter extraction review and cross-workspace reference search. */
.batch-navigation,.batch-toolbar,.batch-tabs,.work-search-tabs,.work-search-result-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.batch-navigation{align-items:flex-end}.batch-navigation label{display:grid;gap:8px;flex:1;min-width:220px}.batch-navigation select,.work-search-controls select,.work-search-query input{width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:10px 12px;font:inherit}.batch-toolbar{padding:14px 0}.batch-toolbar label,.batch-item label,.work-search-references{display:flex;gap:10px;align-items:center}.batch-toolbar input,.batch-item input,.work-search-references input{width:16px;height:16px;accent-color:var(--green);flex:none}.batch-tabs{padding:16px 0 4px}.batch-tabs .active,.work-search-tabs .active{background:var(--green-soft);color:var(--green);border-color:var(--green)}.batch-summary{padding:16px;border-radius:10px;background:var(--green-soft);line-height:1.8}.batch-summary p{margin:6px 0}.batch-message{min-height:20px;line-height:1.7;color:var(--green)}.batch-message.error{color:#b0443b}.batch-item blockquote{margin-left:26px}.batch-undo,.batch-destinations{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.batch-undo p{color:var(--muted);font-size:13px;line-height:1.8}.batch-undo button{margin-right:8px}.work-search{max-width:1280px;margin:auto}.work-search-controls{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:20px;background:var(--paper);border:1px solid var(--line);padding:24px;border-radius:12px}.work-search-controls>label:not(.work-search-references){display:grid;gap:9px;font-weight:600}.work-search-query>span{display:flex;align-items:center;position:relative}.work-search-query svg{position:absolute;left:12px;width:18px;color:var(--muted)}.work-search-query input{padding-left:40px}.work-search-references{grid-column:1/-1;font-size:13px;color:var(--muted)}.work-search-tabs{padding:22px 0 8px}.work-search-tabs button{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid transparent;border-radius:8px}.work-search-tabs small{font-size:11px;opacity:.7}.work-search-layout{display:grid;gap:24px}.work-search-layout.with-relations{grid-template-columns:minmax(0,1fr) minmax(240px,320px)}.work-search-count{font-size:12px;color:var(--muted);margin:14px 0}.work-search-result{border:1px solid var(--line);border-radius:10px;background:var(--paper);margin-bottom:12px;padding:20px 22px;overflow-wrap:anywhere}.work-search-result-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.work-search-result-meta>span{color:var(--green);font-weight:600}.work-search-result h3{margin:12px 0 8px;font-size:16px}.work-search-result h3 button{text-align:left;font-weight:600;color:var(--ink)}.work-search-result p{font-size:13px;line-height:1.85;white-space:pre-line;color:var(--muted);max-height:190px;overflow:auto}.work-search mark{background:var(--green-soft);color:var(--green);border-radius:2px;padding:0 2px}.work-search-result-actions{margin-top:16px}.work-search-result-actions button{min-height:34px}.work-search-relations{align-self:start;position:sticky;top:16px;margin-top:14px;border:1px solid var(--line);border-radius:10px;padding:18px;background:var(--paper);max-height:75vh;overflow:auto;overflow-wrap:anywhere}.work-search-relation-heading{display:flex;align-items:center;justify-content:space-between}.work-search-relations>p,.work-search-relations>small{font-size:12px;color:var(--muted);line-height:1.8}.work-search-link{display:grid;text-align:left;gap:6px;padding:14px 0;width:100%;border-bottom:1px solid var(--line)}.work-search-link small,.work-search-link span{font-size:11px;color:var(--muted);line-height:1.6}.work-search-link strong{font-size:13px;color:var(--green)}
@media(max-width:800px){.work-search-layout.with-relations{grid-template-columns:1fr}.work-search-relations{position:static;grid-row:1;max-height:420px}.work-search-controls{grid-template-columns:1fr;padding:18px;gap:14px}.batch-navigation label{min-width:100%}.work-search-result{padding:16px}.work-search-launch{white-space:nowrap}}

.setting-card .card-delete-row{justify-content:flex-end}

.character-library-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.character-library-controls>.search-field{flex:1;min-width:min(100%,280px);max-width:520px}.character-library-controls .plan-layout-switch{flex-shrink:0}.character-profile-grid{align-items:start}.character-profile-card header{gap:8px;min-height:76px}.character-profile-card .character-name{flex:1}.character-profile-card .character-name strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:1rem}.character-card-tools{display:flex;align-items:center;gap:8px;flex-shrink:0}.character-card-tools small{font-size:.75rem}.character-collapse{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:6px;color:var(--green);background:var(--green-soft)}.character-collapse span{font-size:12px;transition:transform .15s}.character-collapse[aria-expanded=false] span{transform:rotate(-90deg)}.character-card-body[hidden]{display:none!important}.character-card-body footer{margin:0}.character-card-body dl>div{font-size:.875rem}.character-card-body footer button{font-size:.875rem}.character-card-body dt small{font-size:.75rem}.character-library-controls .plan-layout-switch button,.character-library-controls .plan-layout-switch>span{font-size:.875rem}
@media(max-width:600px){.character-library-controls>.search-field{max-width:none;flex-basis:100%}.character-card-tools{gap:5px}.character-profile-card header{padding:12px}}

/* Unified character workspace */
.plan-modules{grid-template-columns:repeat(3,minmax(0,1fr))}.plan-modules .plan-module:last-child{grid-column:auto}
.people-tabs{overflow-x:auto;white-space:nowrap}.people-tabs .filter-tab{flex-shrink:0}
.people-relations-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 0}.people-relations-actions>span{font-size:.875rem;color:var(--muted)}
.character-source-group+.character-source-group{margin-top:24px}.character-source-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}.character-source-heading h4{font-size:.875rem;margin:0}.character-source-heading>span{font-size:.75rem;color:var(--muted)}
@media(min-width:1500px){.plan-modules{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:900px){.plan-modules{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.people-tabs{gap:18px}.people-relations-actions{padding:16px 16px 0}.character-source-heading{align-items:flex-start;flex-direction:column;gap:5px}}
/* Character development and story chronology reuse the workspace palette. */
.development-stages{padding:24px}.development-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.development-heading h3{font-size:1.125rem;color:var(--ink)}.development-heading p,.development-note{font-size:.875rem;color:var(--muted);line-height:1.8}.development-heading p{margin-top:5px}.development-heading>button{flex-shrink:0}.development-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:24px}.development-filters>label{display:flex;flex-direction:column;gap:5px;font-size:.875rem;color:var(--muted);min-width:180px;max-width:100%}.development-filters select{max-width:300px;min-height:38px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--text);padding:6px 10px}.development-rail{list-style:none;padding:0 0 0 24px;margin:0 0 24px;border-left:2px solid var(--line)}.development-rail>li{position:relative;margin:0 0 16px;min-width:0}.development-pin{position:absolute;left:-31px;top:24px;width:12px;height:12px;border:3px solid var(--paper);border-radius:50%;background:var(--green);box-shadow:0 0 0 1px var(--line)}.development-stage{border:1px solid var(--line);background:var(--paper);border-radius:10px;overflow:hidden}.development-stage>summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:16px;list-style:none}.development-stage>summary::-webkit-details-marker{display:none}.development-stage>summary>span:first-child{flex:1;min-width:0}.development-stage summary strong,.development-stage summary small{display:block;overflow-wrap:anywhere}.development-stage summary strong{font-size:1rem;color:var(--ink);margin-top:4px}.development-stage summary small{font-size:.875rem;color:var(--muted)}.development-chevron{color:var(--green);font-size:.75rem;transform:rotate(-90deg)}.development-stage[open] .development-chevron{transform:none}.development-current{font-size:.75rem;color:var(--green);background:var(--green-soft);padding:3px 8px;border-radius:5px;font-weight:500;white-space:nowrap}.development-stage-body{border-top:1px solid var(--line);padding:18px}.development-stage-body dl{margin:0}.development-stage-body dl>div{display:grid;grid-template-columns:135px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.development-stage-body dt{font-size:.875rem;color:var(--muted)}.development-stage-body dd{margin:0;font-size:1rem;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.development-diff{margin:18px 0;background:var(--bg);border-radius:8px;padding:14px}.development-diff summary{cursor:pointer;font-size:.875rem;color:var(--green)}.development-diff>div{margin-top:16px}.development-diff strong{font-size:.875rem}.development-diff p{display:flex;gap:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.875rem;margin-top:7px}.development-diff p small{flex:0 0 42px;color:var(--muted);font-size:.875rem}.development-stage-body footer,.development-source-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.development-stage-body footer{justify-content:flex-end}.development-empty{padding:38px 16px;text-align:center;border:1px dashed var(--line);border-radius:10px;margin-bottom:24px}.development-empty h4{font-size:1rem}.development-empty p{font-size:.875rem;color:var(--muted);margin:8px 0 16px}.development-bonds{padding-top:24px;border-top:1px solid var(--line)}.development-bond{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow-wrap:anywhere}.development-bond:hover{background:var(--green-soft)}.development-bond small,.development-bond span{color:var(--muted);font-size:.875rem}.development-bond strong,.development-bond p{font-size:1rem}.development-axis-controls{padding:18px 24px;display:flex;flex-wrap:wrap;gap:12px;border-bottom:1px solid var(--line)}.story-time-edit{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--green);padding:7px 10px;margin:8px 0;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.story-time-edit:hover{background:var(--green-soft)}.story-time-edit .icon{width:14px;height:14px}.story-unplaced{margin:20px 0 0;padding:18px;border:1px dashed var(--line);border-radius:9px}.story-unplaced>summary{cursor:pointer;font-size:1rem;color:var(--ink);margin-bottom:10px}.story-unplaced-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.story-unplaced-row:last-child{border-bottom:0}.story-unplaced-row>span{min-width:0}.story-unplaced-row strong{display:block;overflow-wrap:anywhere;font-size:1rem}.story-unplaced-row small{display:block;font-size:.875rem;color:var(--muted)}.story-unplaced-row button{flex-shrink:0}.story-filtered-times{padding:24px;border-top:1px solid var(--line)}.story-time-record{padding:16px 0;border-bottom:1px solid var(--line)}.story-time-record>.development-note{margin-bottom:12px}
@media(max-width:680px){.development-stages,.story-filtered-times{padding:16px}.development-heading{align-items:flex-start;flex-wrap:wrap}.development-filters>label{min-width:0;flex:1 1 130px}.development-filters select{max-width:100%;width:100%}.development-stage>summary{flex-wrap:wrap;padding:12px}.development-stage-body{padding:14px}.development-stage-body dl>div{grid-template-columns:1fr;gap:6px}.development-current{order:3}.story-unplaced-row{align-items:flex-start;flex-wrap:wrap}.development-axis-controls{padding:16px}.development-rail{padding-left:18px}.development-pin{left:-25px}.development-stage-body footer button{font-size:.875rem}}

/* Group relationship records by character, then chapter. */
/* 第235批（清单第 8 条 · 作者 2026-10-12 拍板「按默认」）：地名树形与联动 —— 13 档分层 + 上下级缩进 + 跟距离互相跳 */
.place-tree-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.place-tree-note{margin:0;max-width:760px;color:var(--muted);font-size:.8125rem;line-height:1.8}
.place-tree-stats{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.8125rem}
.place-tree-missing{margin:0 0 14px;padding:10px 14px;border-radius:12px;background:var(--green-soft);color:var(--ink);font-size:.8125rem;line-height:1.8}
.place-level-group{border:1px solid var(--line);border-radius:14px;background:var(--paper);margin-bottom:10px}
.place-level-group>summary{display:flex;align-items:center;gap:10px;padding:11px 15px;cursor:pointer;list-style:none}
.place-level-group>summary::-webkit-details-marker{display:none}
.place-level-group[open]>summary{border-bottom:1px solid var(--line)}
.place-level-code{font-weight:700;color:var(--green);background:var(--green-soft);border-radius:999px;padding:2px 9px;font-size:.75rem;letter-spacing:.04em}
.place-level-name{font-weight:600;color:var(--ink)}
.place-level-count{margin-left:auto;color:var(--muted);font-size:.8125rem}
.place-level-body{padding:10px 12px 12px}
.place-node{margin:4px 0}
.place-node-children{margin:4px 0 4px 16px;padding-left:12px;border-left:1px dashed var(--line)}
.place-node-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:var(--bg)}
.place-node-row.is-focus{box-shadow:inset 0 0 0 2px var(--green)}
.place-node-caret{width:26px;height:26px;flex:0 0 auto;border:0;border-radius:8px;background:var(--paper);color:var(--green);font-size:.75rem;line-height:1;cursor:pointer}
.place-node-caret.is-leaf{display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--muted);cursor:default}
.place-node-name{font-weight:600;color:var(--ink)}
.place-node-level{font-size:.75rem;color:var(--green);background:var(--green-soft);border-radius:999px;padding:2px 8px}
.place-node-level.is-unknown{color:var(--muted);background:var(--paper)}
.place-node-meta{color:var(--muted);font-size:.8125rem}
.place-node-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.place-node-actions button{min-height:32px;padding:0 12px;font-size:.8125rem}
.place-node-missing{border:0;background:none;padding:0;color:var(--green);font:inherit;font-size:.8125rem;text-decoration:underline;cursor:pointer}
.place-node-cycle{color:var(--muted);font-size:.8125rem}
.place-node-up{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.8125rem}
.place-node-up button{border:0;background:none;padding:0;color:var(--green);font:inherit;font-size:.8125rem;text-decoration:underline;cursor:pointer}
.place-node-arrow{color:var(--muted)}
.place-tree-links .place-tree-path{margin:6px 0 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.place-tree-links .place-tree-path button{border:0;background:none;padding:0;color:var(--green);font:inherit;text-decoration:underline;cursor:pointer}
.place-tree-link-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:760px){.place-node-children{margin-left:8px;padding-left:8px}.place-node-actions{margin-left:0}}
/* 第237批（清单第 9 条）：手机极简码字第一次进来的一句话（点「知道了」就不再出现；只在极简条里，桌面端看不到） */
.writing-mini-intro{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;padding:10px 12px;border-radius:12px;background:var(--green-soft);color:var(--ink);font-size:.8125rem;line-height:1.75}
.writing-mini-intro strong{display:block;margin-bottom:2px}
.writing-mini-intro p{margin:0}
.writing-mini-intro button{flex:0 0 auto;align-self:center}
.bond-person-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.bond-person-toolbar .relationship-note{margin:0;flex:1;min-width:220px;color:var(--muted);line-height:1.7}.bond-person-toolbar .plan-layout-switch{flex-shrink:0}.bond-person-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.bond-person-card{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--paper);overflow:hidden}.bond-person-card.is-open{grid-column:1/-1}.bond-person-heading{display:flex;width:100%;align-items:center;gap:12px;padding:18px;text-align:left;background:var(--paper);color:var(--ink)}.bond-person-heading:hover{background:var(--green-soft)}.bond-person-heading:focus-visible{outline:2px solid var(--green);outline-offset:-3px}.bond-person-avatar{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:1rem}.bond-person-name{flex:1;min-width:0}.bond-person-name strong{display:block;font-size:1rem;overflow-wrap:anywhere}.bond-person-name small{display:block;margin-top:5px;font-size:.875rem;color:var(--muted);line-height:1.6}.bond-person-chevron{color:var(--green);transition:transform .15s}.bond-person-heading[aria-expanded=false] .bond-person-chevron{transform:rotate(-90deg)}.bond-person-body[hidden]{display:none!important}.bond-person-body{padding:0 18px 18px;border-top:1px solid var(--line)}.bond-person-profile{display:flex;justify-content:flex-end;padding:14px 0}.bond-chapter-group+.bond-chapter-group{margin-top:22px}.bond-chapter-group>h3{font-size:.875rem;font-weight:600;color:var(--green);padding:0 0 10px;border-bottom:1px solid var(--line);margin:0 0 12px}.bond-chapter-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bond-chapter-records .bond-card-wrap{display:flex;flex-direction:column;min-width:0;border-color:var(--line);background:var(--paper)}.bond-chapter-records .bond-card{flex:1;background:var(--paper);padding:14px}.bond-chapter-records .bond-card:hover{background:var(--green-soft)}.bond-chapter-records .bond-card strong{color:var(--ink);font-size:1rem}.bond-chapter-records .bond-card p{color:var(--text);font-size:1rem;overflow-wrap:anywhere}.bond-chapter-records .bond-type,.bond-chapter-records .bond-meta{color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}.bond-chapter-records .card-delete-row{border-top:1px solid var(--line)}
@media(max-width:760px){.bond-person-grid,.bond-chapter-records{grid-template-columns:minmax(0,1fr)}.bond-person-heading{padding:14px}.bond-person-body{padding:0 12px 12px}.bond-person-toolbar .relationship-note{min-width:0;flex-basis:100%}}

.bond-person-card.is-open{border-color:var(--green)}
.bond-person-card.is-open>.bond-person-heading{background:var(--green-soft);background:color-mix(in srgb,var(--green) 12%,var(--green-soft));box-shadow:inset 4px 0 0 var(--green);color:var(--ink)}
.bond-person-card.is-open>.bond-person-heading .bond-person-name small{color:var(--text)}
.bond-person-card.is-open>.bond-person-heading .bond-person-avatar{background:var(--paper)}

/* Two-level lists for chapter extraction results. */
.extraction-groups.batch-result-list{display:flex;flex-direction:column;gap:10px}
.batch-result-list details.batch-result-group{padding:0;min-width:0;overflow:hidden;background:var(--paper)}
.batch-result-list .batch-result-group>summary{padding:14px 16px;justify-content:flex-start;color:var(--ink)}
.batch-result-list .batch-result-group[open]>summary{background:var(--green-soft);border-bottom:1px solid var(--line)}
.batch-result-list .batch-group-count{margin-left:auto;font-size:.875rem;font-weight:400;color:var(--text)}
.batch-result-list .batch-chevron{flex:0 0 auto;color:var(--green);transform:rotate(-90deg);transition:transform .15s}
.batch-result-list details[open]>summary>.batch-chevron{transform:none}
.batch-result-rows{padding:0 16px}
.batch-result-list article.batch-result-row{display:flex;gap:12px;align-items:flex-start;padding:0;margin:0;border-top:0;border-bottom:1px solid var(--line)}
.batch-result-list article.batch-result-row:last-child{border-bottom:0}
.batch-result-list .batch-item-select{display:flex;flex:0 0 18px;align-items:center;padding:17px 0 0;margin:0;cursor:pointer}
.batch-result-list .batch-item-select input{display:block;width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:var(--green)}
.batch-result-list details.batch-item-detail{flex:1;min-width:0;border:0;border-radius:0;padding:0}
.batch-result-list .batch-item-detail>summary{min-height:52px;padding:13px 0;align-items:flex-start;font-weight:500;color:var(--ink)}
.batch-result-list .batch-item-detail>summary strong{font-size:1rem;font-weight:500;overflow-wrap:anywhere}
.batch-result-list .batch-item-detail>summary:hover{color:var(--green)}
.batch-result-list .batch-item-content{padding:0 0 16px;font-size:1rem;color:var(--text)}
.batch-result-list .batch-item-content blockquote{margin:10px 0 0}
.batch-result-list .profile-evidence{margin:12px 0}.batch-result-list .profile-evidence dd{margin:10px 0;overflow-wrap:anywhere}
@media(max-width:600px){.batch-result-rows{padding:0 12px}.batch-result-list .batch-result-group>summary{padding:12px}.batch-result-list article.batch-result-row{gap:10px}}

.batch-destinations-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.batch-destinations-heading>button{flex-shrink:0}

/* Compact horizontal brand, with larger membership details below. */
.brand-row{flex-direction:column;align-items:center;gap:8px;padding:0 4px;margin-bottom:4px}
.brand-row .brand{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center;align-items:center;width:100%;min-width:0;gap:4px;padding:0;margin:0}
.brand-emblem{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;min-width:0;width:100%}
.brand-row .brand img.brand-symbol{display:block;width:64px;max-width:34%;height:auto;object-fit:contain;border-radius:0}
.brand-row .brand img.brand-wordmark{display:block;width:104px;max-width:56%;height:auto;object-fit:contain;border-radius:0}
.brand-tagline{display:block;color:var(--text);font-size:.875rem;line-height:1.6;letter-spacing:0;white-space:nowrap;text-align:center}
.member-signature{align-items:center;text-align:center;gap:0;margin-bottom:16px;padding:4px 0 10px}
.member-emblem{display:block;position:relative;width:100%;max-width:13.75rem;aspect-ratio:220/78}
.member-emblem .member-icon{position:absolute;left:50%;top:0;transform:translateX(-50%);width:2.75rem;height:2.75rem;padding:.1875rem;pointer-events:none}
.member-signature .member-line{display:block;width:100%;height:100%;line-height:1;letter-spacing:0}
.member-name-arc{display:block;width:100%;height:100%;overflow:visible;fill:currentColor;font-family:inherit;font-weight:600}
.member-signature:focus-visible{outline:2px solid #b99a59;outline-offset:3px;border-radius:6px}
.member-signature small{font-size:.875rem;line-height:1.6;letter-spacing:0;color:var(--text);white-space:normal}
.account-login-mark{width:108px;height:108px;background:#fff;border-radius:10px}
.account-login-mark img{display:block;width:96px;height:96px;object-fit:contain}
.initial img,.empty-work img{width:104px;height:112px;object-fit:contain;border-radius:0}


.initial img,.empty-work img{background:#fff;border-radius:10px}
/* batch228 · 未登录访客第一屏 = 官网首页（应用名称 / 介绍 / 功能详情 / 示例 / 协议 / 联系方式） */
.initial.account-entry{justify-content:flex-start;padding:42px 20px 26px;gap:26px}
.account-entry>section{width:100%;max-width:880px;margin:0 auto}
.account-entry .entry-hero{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.account-entry .entry-mark{width:88px;height:88px;padding:6px;background:#fff;border-radius:14px;object-fit:contain}
.account-entry .entry-eyebrow{margin:2px 0 0;font-size:.875rem;letter-spacing:3px;color:#7d8f76}
.account-entry h1{margin:0;font-size:2.125rem;line-height:1.35;color:var(--ink);letter-spacing:2px}
.account-entry .entry-lede{margin:0;max-width:640px;font-size:1rem;line-height:1.95;color:var(--text)}
.account-entry .entry-lede b{color:var(--green)}
.account-entry .entry-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:8px 0 0}
.account-entry .entry-actions .primary{display:inline-flex;align-items:center;gap:6px;padding:12px 22px}
.account-entry .entry-secondary{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--green);font-weight:550}
.account-entry .entry-secondary:hover{border-color:var(--green);background:var(--green-soft)}
.account-entry .entry-features h2{margin:0 0 12px;font-size:1.0625rem;letter-spacing:1px;color:var(--ink);text-align:center}
.account-entry .entry-features ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:0;padding:0;list-style:none}
.account-entry .entry-features li{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.account-entry .entry-features b{font-size:.9375rem;color:var(--ink)}
.account-entry .entry-features span{font-size:.875rem;line-height:1.85;color:var(--text)}
.account-entry .entry-preview svg{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}
.account-entry .entry-links{margin:0;text-align:center;font-size:.875rem;line-height:2.2;color:var(--muted)}
.account-entry .entry-links a{color:var(--green);border-bottom:1px solid rgba(45,89,68,.35)}
.account-entry .entry-link{padding:0;border:0;background:none;color:var(--green);font-size:.875rem;font-weight:600;border-bottom:1px solid rgba(45,89,68,.35)}
.account-entry .entry-note{margin:0;text-align:center;font-size:.8125rem;color:var(--muted)}
/* batch229 · 极简码字（手机）顶部那一句：现在在哪、下一步干什么 */
.writing-mini-next{margin:2px 0 0;font-size:.8125rem;line-height:1.55;color:#74836c;text-align:center}
.writing-mini-next:empty{display:none}
/* batch230 · 对外第一句（首页）与演示页痛点句 */
.account-entry .entry-claim{margin:2px 0 0;font-size:1.125rem;font-weight:650;letter-spacing:1px;color:var(--green)}
.demo-pitch{margin:10px 0 0;font-size:1rem;font-weight:600;color:var(--green)}


/* Device-clock rest reminder, independent from writing forms and dialogs. */
.rest-toolbar{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}
.rest-system-clock{font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.rest-menu{position:relative}
.rest-menu>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;color:var(--green);font-size:.8125rem;white-space:nowrap}
.rest-menu>summary::-webkit-details-marker{display:none}
.rest-menu>summary .icon{width:16px;height:16px}
.rest-menu>summary strong{font-size:.8125rem;min-width:3em;font-variant-numeric:tabular-nums}
.rest-menu[open]>summary,.rest-menu>summary:hover{background:var(--green-soft)}
.rest-is-due .rest-menu>summary{border-color:var(--gold);background:var(--gold-bg);color:var(--ink)}
.rest-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(20rem,calc(100vw - 32px));padding:18px;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #102b401f;background:var(--paper);color:var(--text);font-size:.875rem}
.rest-popover h3{margin:0 0 6px;font-size:1rem;color:var(--ink)}
.rest-popover p{margin:0 0 12px;line-height:1.6}
.rest-popover label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.rest-minutes-field{display:flex;align-items:center;gap:6px}
.rest-minutes-field input{width:5rem;padding:7px 8px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--text);font-size:.875rem}
.rest-popover>.primary{width:100%;justify-content:center}
.rest-controls{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.rest-controls button{flex:1;justify-content:center}
.rest-popover small{display:block;color:var(--muted);font-size:.8125rem;line-height:1.6}
.rest-settings-error{color:var(--red)}
.rest-notice{position:fixed;right:20px;bottom:20px;z-index:80;width:min(24rem,calc(100vw - 32px));padding:18px;border:1px solid var(--gold);border-radius:10px;box-shadow:0 8px 28px #102b401f;background:var(--paper);color:var(--text);font-size:.875rem}
.rest-notice[hidden]{display:none}
.rest-notice>strong{font-size:1rem;color:var(--ink)}
.rest-notice p{margin:6px 0 14px;line-height:1.7}
.rest-notice>div{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:680px){.rest-toolbar{position:relative;margin-left:0;gap:8px}.rest-menu{position:static}.rest-popover{right:auto;left:0}.rest-notice{right:16px;bottom:16px}}

/* Collapsible application rail: class-only toggling preserves active editors. */
.sidebar-tools{display:flex;justify-content:flex-end;flex-shrink:0;position:sticky;top:0;z-index:4;margin-bottom:6px;background:var(--sidebar)}
.sidebar-toggle{display:flex;align-items:center;justify-content:center;gap:4px;min-width:36px;min-height:36px;padding:6px;border:1px solid var(--line);border-radius:7px;color:var(--green);font-size:.8125rem}
.sidebar-toggle:hover{background:var(--green-soft)}
.sidebar-toggle>.icon{width:17px;height:17px;transform:rotate(180deg)}
.sidebar-collapsed .sidebar-toggle>.icon{transform:none}
.sidebar.sidebar-collapsed .sidebar-tools{justify-content:center}
.sidebar.sidebar-collapsed .sidebar-toggle-label,.sidebar.sidebar-collapsed .nav-label,.sidebar.sidebar-collapsed .workspace-label,.sidebar.sidebar-collapsed .books-heading,.sidebar.sidebar-collapsed #my-books-panel,.sidebar.sidebar-collapsed .brand-wordmark,.sidebar.sidebar-collapsed .brand-tagline{display:none}
.sidebar.sidebar-collapsed .brand-row{padding:0;margin:0 0 6px}
.sidebar.sidebar-collapsed .brand{padding:0;margin:0}
.sidebar.sidebar-collapsed .brand img.brand-symbol{width:38px;max-width:100%;height:42px;object-fit:contain}
.sidebar.sidebar-collapsed .member-signature{width:100%;margin:0 0 10px;padding:0;border:0}
.sidebar.sidebar-collapsed .member-signature .member-line,.sidebar.sidebar-collapsed .member-signature small{display:none}
.sidebar.sidebar-collapsed .member-emblem{height:40px;aspect-ratio:auto}
.sidebar.sidebar-collapsed .member-emblem .member-icon{width:36px;height:36px}
.sidebar.sidebar-collapsed nav{gap:5px;margin:0}
.sidebar.sidebar-collapsed .nav-item{justify-content:center;gap:0;min-height:44px;padding:10px 6px}
.sidebar.sidebar-collapsed .nav-item>.icon{width:20px;height:20px}
.sidebar.sidebar-collapsed .nav-item.active i{display:none}
.sidebar.sidebar-collapsed .nav-item>.ai-unread-dot{position:absolute;top:6px;right:6px;margin:0}
.sidebar.sidebar-collapsed .inbox-unread-count{position:absolute;top:1px;right:0;margin:0;min-width:16px;height:16px;padding:0 3px;font-size:.625rem}
.sidebar.sidebar-collapsed .sidebar-bottom{padding-top:16px}
.sidebar.sidebar-collapsed .private-note,.sidebar.sidebar-collapsed .utility,.sidebar.sidebar-collapsed .owner{display:flex;align-items:center;justify-content:center;gap:0;min-height:44px;width:100%;padding:8px 4px;margin:0}
.sidebar.sidebar-collapsed .private-note>span,.sidebar.sidebar-collapsed .utility>span,.sidebar.sidebar-collapsed .utility>.icon:last-child,.sidebar.sidebar-collapsed .owner>span:not(.avatar),.sidebar.sidebar-collapsed .owner>.icon{display:none}
.sidebar.sidebar-collapsed .utility>.icon:first-child,.sidebar.sidebar-collapsed .private-note>.icon{display:block;width:19px;height:19px}
@media(min-width:681px){.sidebar{padding-top:8px}.sidebar-tools{margin-top:0;margin-bottom:14px}html[data-font-size] .sidebar.sidebar-collapsed{width:4rem;flex:0 0 4rem;padding:8px 7px 12px;overflow-x:hidden;overflow-y:auto}}
@media(max-width:680px){.sidebar.sidebar-collapsed{padding:8px 12px}.sidebar.sidebar-collapsed .sidebar-tools{justify-content:flex-end;margin-bottom:4px}.sidebar.sidebar-collapsed .brand-row,.sidebar.sidebar-collapsed .member-signature,.sidebar.sidebar-collapsed .sidebar-bottom{display:none}.sidebar.sidebar-collapsed nav{display:flex;flex-wrap:wrap;gap:4px}.sidebar.sidebar-collapsed .nav-item{flex:0 0 44px}}

.sidebar.sidebar-collapsed .brand img.brand-wordmark{display:none}

/* Give the three writing panes more space above the fold. */
.content:has(>.writing-intro){padding-top:16px}
.writing-intro{margin:0 0 12px}
.writing-intro h1{margin:3px 0}

/* Compact the chapter heading while keeping responsive horizontal gutters. */
.writing-page-head{padding-top:12px;padding-bottom:4px}
.writing-title{padding-top:4px!important;padding-bottom:4px!important}
.writing-context{padding-top:2px;padding-bottom:10px}
.writing-body{padding-top:14px!important}

.chapter-delete-options{margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:8px}
.chapter-delete-options legend{padding:0 6px;font-weight:600}
.chapter-delete-options label{display:flex;align-items:flex-start;gap:10px;padding:10px 0;cursor:pointer}
.chapter-delete-options input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:3px 0 0;accent-color:var(--green)}
.chapter-delete-options strong,.chapter-delete-options small{display:block}
.chapter-delete-options small{margin-top:4px;color:var(--muted);font-size:.875rem;line-height:1.6}
.retained-report-group{margin-top:16px;border:1px solid var(--line);border-radius:8px;padding:12px}
.retained-report-group summary{cursor:pointer;font-weight:600}
.retained-report-group article{padding:12px 0;border-top:1px solid var(--line);margin-top:10px}
.retained-report-group blockquote{margin:8px 0 0;padding-left:12px;border-left:3px solid var(--line);color:var(--muted)}
.chapter-delete-impact{padding:12px;margin-top:10px;border-radius:7px;background:var(--green-soft);font-size:.875rem;line-height:1.7}
.chapter-delete-impact details{margin-top:8px}.chapter-delete-impact summary{cursor:pointer}.chapter-delete-impact small{display:block;margin-top:4px}

.writing-book-title{display:block;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;border-radius:4px}
.writing-book-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.writing-book-title:focus-visible{outline:2px solid var(--green);outline-offset:4px}

/* Chapters expand inside their own volume, in the normal page scroll. */
.plan-board .chapter-volume-grid{grid-template-columns:1fr;max-height:none;overflow:visible;align-items:start}
.chapter-volume-inline{grid-column:1/-1;min-width:0;width:100%;border-top:1px solid var(--line)}
.chapter-volume-card:has(>.chapter-volume-inline){padding-bottom:0}
.chapter-volume-inline .chapter-volume-detail{border-top:0}
.chapter-volume-inline .chapter-volume-detail-heading{display:none}
.chapter-volume-inline .planning-source-heading{padding:12px 16px}

.bulk-organize{margin-bottom:20px}.bulk-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:16px 0}.bulk-controls label{display:grid;gap:7px;flex:1;min-width:180px}.bulk-controls select{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px;background:var(--paper);color:var(--ink);font:inherit}.bulk-calibrate{display:flex;align-items:center;gap:8px;font-size:.875rem}.bulk-progress-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:18px}.bulk-progress-head span{color:var(--muted);font-size:.875rem}.bulk-organize progress{width:100%;height:8px;margin:12px 0;accent-color:var(--green)}.bulk-chapter-list{max-height:320px;overflow:auto}.bulk-chapter-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:10px 0;flex-wrap:wrap}.bulk-chapter-row>span{flex:1;min-width:160px;overflow-wrap:anywhere}.bulk-chapter-row small{color:var(--muted);font-size:.8125rem}.bulk-chapter-row .secondary{font-size:.8125rem}.bulk-organize #bulk-extraction-result:not(:empty){border-top:1px solid var(--line);padding-top:20px;margin-top:20px}

/* Keep bulk controls independent of the full-width model form fields. */
.personal-card.bulk-organize{padding:20px 22px}
.bulk-organize .personal-card-head{margin-bottom:8px;gap:10px;flex-wrap:wrap}
.bulk-organize.is-collapsed .personal-card-head{margin-bottom:0}
.bulk-card-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-left:auto}
.bulk-organize [hidden]{display:none!important}
.bulk-collapse-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}
.bulk-organize .personal-card-head h2{font-size:1.125rem}
.bulk-organize-content>.personal-hint{margin:6px 0;line-height:1.7}
.bulk-organize .bulk-controls{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:10px;margin:16px 0 12px}
.bulk-organize .bulk-controls label{display:grid;gap:6px;min-width:0;margin:0;font-size:.875rem}
.bulk-organize .bulk-controls select{min-width:0;min-height:40px;height:40px;padding:8px 10px;background:var(--paper);font-size:.875rem}
.bulk-organize .bulk-controls>button{min-height:40px;justify-content:center;white-space:nowrap}
.bulk-organize label.bulk-calibrate{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 0;font-size:.875rem;line-height:1.6;cursor:pointer}
.bulk-organize .bulk-calibrate input[type=checkbox]{display:block;flex:0 0 16px;width:16px;height:16px;min-height:0;margin:3px 0 0;padding:0;accent-color:var(--green)}
.bulk-calibrate>span{min-width:0}
.bulk-calibrate small{display:inline;margin-left:8px;color:var(--muted);font-size:.8125rem}
.bulk-organize [data-bulk-count]{font-size:.8125rem;color:var(--muted);margin:0 0 10px}
.bulk-help{border-top:1px solid var(--line);padding-top:10px;font-size:.8125rem;color:var(--muted)}
.bulk-help summary{cursor:pointer;width:fit-content;line-height:1.8}
.bulk-help .personal-hint{margin:8px 0 0;font-size:.8125rem}
@media(max-width:900px){.bulk-organize .bulk-controls{grid-template-columns:1fr 1fr}.bulk-organize .bulk-controls label{grid-column:1/-1}}
@media(max-width:480px){.personal-card.bulk-organize{padding:16px}.bulk-organize .bulk-controls{grid-template-columns:minmax(0,1fr)}.bulk-calibrate small{display:block;margin-left:0}.bulk-organize .personal-card-head h2{font-size:1rem}}

/* The opening scene is independent of data loading and never restarts on navigation. */
.fubi-entrance{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#f7f8f2;color:#193c46;overflow:hidden;transition:opacity .22s ease,visibility .22s ease}
.fubi-entrance.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.entrance-content{width:min(680px,94vw);text-align:center;transform:translateY(-4vh)}
.entrance-brand{display:block;width:132px;height:64px;object-fit:contain;margin:0 auto 14px}
.entrance-scene{width:100%;margin:0 auto 18px}
.entrance-scene svg{display:block;width:100%;height:auto;overflow:visible}
.entrance-skip{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));display:flex;gap:10px;align-items:center;border:1px solid #d9dfd2;border-radius:20px;padding:8px 14px;background:transparent;color:#62776c;font-size:13px;cursor:pointer}
.entrance-skip:hover{background:#e9eee4;color:#193c46}.entrance-skip:focus-visible{outline:2px solid #315950;outline-offset:4px}
.entrance-status{font-size:14px;letter-spacing:.08em;line-height:1.8;margin:0 0 9px;color:#3f6258}
.entrance-caption{font-size:12px;letter-spacing:.18em;color:#879584}

@media(max-width:480px){.entrance-brand{width:110px;height:54px;margin-bottom:24px}.entrance-skip{top:18px;right:18px}.entrance-status{font-size:13px}}
@media(prefers-reduced-motion:reduce){.fubi-entrance{display:none}.fubi-entrance *{animation:none!important}}

.bulk-organize #bulk-model-setup{margin:12px 0 16px;padding:16px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;background:var(--paper)}
.bulk-setup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.bulk-scope{font-size:.875rem;line-height:1.7;margin:8px 0 14px;color:var(--green)}
.bulk-setup-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.bulk-organize .bulk-setup-fields label{display:grid;gap:6px;margin:0;font-size:.875rem}.bulk-setup-fields .bulk-key-field{grid-column:1/-1}
.bulk-organize .bulk-setup-fields input,.bulk-organize .bulk-setup-fields select{min-width:0;min-height:40px;padding:9px 10px;font-size:.875rem;background:var(--paper)}
.bulk-setup-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.bulk-setup-footer>span{font-size:.8125rem;color:var(--muted)}
.bulk-organize .bulk-setup-footer button[type=submit]{width:auto;margin:0;min-height:40px}.bulk-organize [data-bulk-setup-error]{color:#a53128;font-size:.875rem;margin:10px 0 0}
@media(max-width:600px){.bulk-setup-fields{grid-template-columns:minmax(0,1fr)}.bulk-organize .bulk-setup-footer button[type=submit]{width:100%}}

.fubi-entrance .entrance-traveler{opacity:1;transition:opacity .45s ease}
.fubi-entrance.is-written .entrance-traveler{opacity:0}

.bulk-chapter-row small.bulk-result-status{color:var(--green);font-weight:500}

.bulk-apply-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--green-soft)}
.bulk-apply-bar strong{font-size:.875rem}.bulk-apply-bar small{display:block;margin-top:5px;color:var(--muted);font-size:.8125rem;line-height:1.6}.bulk-apply-bar>button{flex-shrink:0}
.bulk-apply-actions,.home-book-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.bulk-apply-actions button,.home-book-actions button{white-space:nowrap}
.bulk-confirm-message,.home-book-copy .home-backfill-count{color:var(--green)}
.home-backfill-count{display:block;margin-top:5px}
.home-book-actions [hidden],.home-backfill-count[hidden]{display:none!important}
@media(max-width:760px){.home-book-actions{margin-left:60px;justify-content:flex-start}}
.bulk-row-error{flex-basis:100%;margin:0;color:#a53128;font-size:.8125rem;line-height:1.6}.bulk-apply-error{color:#a53128}

/* Keep the model form and its extraction history readable as one compact workspace. */
.personal-page .personal-grid{align-items:stretch}
.bulk-speed-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0}
.bulk-speed-control label{margin:0!important}.bulk-speed-control select{width:auto!important;min-width:130px;margin:0!important}.bulk-speed-control small{color:var(--muted);font-size:.875rem}
.account-wechat{margin:18px 0;padding-top:16px;border-top:1px solid var(--line)}.account-wechat-button{width:100%;justify-content:center;text-decoration:none}.account-wechat .account-small{margin-bottom:0}
.payoff-result-status{font-size:.875rem;white-space:nowrap;color:var(--green);margin-left:auto}
@media(max-width:600px){.payoff-result-status{white-space:normal}}
.personal-page>.personal-grid{grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:18px}
.personal-page>.personal-grid>.personal-card{padding:20px 22px}
.personal-page>.personal-grid>.personal-card .personal-card-head{margin-bottom:14px;gap:12px}
.personal-page>.personal-grid>.personal-card .personal-card-head h2{font-size:1.15rem}
.personal-page>.personal-grid>.personal-card label{font-size:.9rem;margin:12px 0 6px}
.personal-page>.personal-grid>.personal-card input,.personal-page>.personal-grid>.personal-card select{min-height:42px;padding:9px 11px}
.personal-page>.personal-grid>.personal-card textarea{min-height:12rem;max-height:28rem;line-height:1.75}
.personal-page>.personal-grid>.personal-card .personal-hint{margin:8px 0;font-size:.8125rem;line-height:1.65}
.personal-page>.personal-grid>.personal-card .personal-doc-link{font-size:.8125rem;line-height:1.7}
.personal-page>.personal-grid>.personal-card .model-test,.personal-page>.personal-grid>.personal-card [type=submit]{min-height:42px;margin-top:12px}
.personal-page>.extraction-output{margin-top:18px;padding:20px 22px}
.personal-page>.extraction-output .personal-card-head{margin-bottom:10px;gap:12px}
.personal-page>.extraction-output .personal-card-head h2{font-size:1.15rem}
.personal-page>.extraction-output .batch-navigation{padding-top:2px}
.personal-page>.extraction-output .batch-toolbar{padding:10px 0}
.personal-page>.extraction-output .batch-tabs{padding:10px 0 2px}
.personal-page>.extraction-output .batch-summary{margin-top:10px;padding:13px 15px}
.personal-page>.extraction-output .batch-result-list{margin-top:10px}
@media(max-width:1100px){.personal-page>.personal-grid{grid-template-columns:1fr}}
@media(max-width:680px){.personal-page>.personal-grid>.personal-card,.personal-page>.extraction-output{padding:16px}.personal-page>.personal-grid>.personal-card textarea{min-height:10rem}.personal-page>.extraction-output .personal-card-head>div{width:100%}.personal-page>.extraction-output .personal-card-head>div button{flex:1}}

/* First chapter guidance and a quiet writing surface use the active skin. */
.writer-onboarding{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;margin:0 0 22px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:var(--radius);background:var(--paper)}
.writer-onboarding strong{color:var(--ink);font-size:1rem}.writer-onboarding p{margin:5px 0 0;font-size:.9375rem;line-height:1.7}.writer-onboarding>div:last-child,.writer-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.writer-onboarding>div:last-child{flex-shrink:0}
.writer-guide p,.writer-backup p{line-height:1.8;font-size:1rem}.writer-guide-selectors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.writer-guide select{width:100%;min-width:0}.writer-steps{list-style:none;padding:0;margin:22px 0}.writer-steps>li{display:flex;align-items:flex-start;gap:16px;border-top:1px solid var(--line);padding:20px 0}.writer-steps>li>div{flex:1;min-width:0}.writer-steps h3{font-size:1.125rem;margin:0;color:var(--ink)}.writer-steps p{margin:8px 0}.writer-step-number{display:inline-flex;width:30px;height:30px;flex-shrink:0;align-items:center;justify-content:center;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:700}.writer-guide-optional,.writer-guide-note{color:var(--muted)}.writer-backup-stats{display:flex;gap:12px;flex-wrap:wrap;background:var(--green-soft);padding:16px;border-radius:8px}.writer-backup section{padding:18px 0;border-bottom:1px solid var(--line)}.writer-backup h3{margin:0;color:var(--ink);font-size:1.125rem}.writer-warning{color:var(--red);font-size:.9375rem;line-height:1.7}.writer-backup [data-writer-backup-status]{font-size:.9375rem}.home-footer-links{flex-wrap:wrap}
.single-task-context{background:var(--green-soft);border-left:3px solid var(--green);padding:12px 14px;margin:0 0 18px;font-size:.9375rem;line-height:1.7;border-radius:6px}.single-task-context:empty{display:none}.model-advanced{border:1px solid var(--line);padding:12px 14px;border-radius:8px;margin-bottom:16px}.model-advanced>summary{cursor:pointer;color:var(--ink);font-size:.9375rem}.model-advanced[open]>summary{margin-bottom:14px}.bulk-task-receipt{font-size:.9375rem;line-height:1.7;margin:8px 0 14px;color:var(--text)}.writer-guided-task{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--green-soft);padding:14px;border-radius:8px;margin:14px 0}.chapter-ai-options>summary{list-style-position:inside}.bulk-changes-receipt{padding:12px 14px;border:1px solid var(--line);border-radius:6px;line-height:1.7;font-size:.9375rem}
.batch-change-summary{margin:18px 0;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;padding:16px;background:var(--bg)}.batch-change-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.batch-change-heading h3{margin:0;color:var(--ink);font-size:1.125rem}.batch-change-heading p{margin:6px 0;line-height:1.7;font-size:.9375rem}.batch-change-records{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;max-height:160px;overflow:auto}.batch-change-records span{font-size:.875rem;line-height:1.6;border:1px solid var(--line);border-radius:4px;padding:4px 8px;background:var(--paper);overflow-wrap:anywhere}.batch-change-details>details,.clue-evidence>details{border-top:1px solid var(--line);margin-top:10px}.batch-change-details summary,.clue-evidence summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;padding:12px 0;list-style:none;font-size:1rem}.batch-change-details details[open]>summary,.clue-evidence details[open]>summary{color:var(--green)}.change-table-wrap{overflow:auto}.change-table-wrap table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.9375rem;min-width:420px}.change-table-wrap th,.change-table-wrap td{vertical-align:top;white-space:normal;padding:10px;text-align:left;border:1px solid var(--line);background:var(--paper)}.change-table-wrap th:first-child{width:22%}.change-table-wrap pre{font:inherit;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;max-height:240px;overflow:auto}.payoff-evidence{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.payoff-evidence>div{border:1px solid var(--line);padding:14px;border-radius:6px}.payoff-evidence h4{font-size:1rem;margin:0;color:var(--ink)}.payoff-evidence small{display:block;margin-top:8px}.clue-evidence{padding:18px 0;line-height:1.8}.clue-evidence h4{margin:0;color:var(--ink)}.clue-evidence blockquote,.payoff-evidence blockquote{margin:12px 0;border-left:3px solid var(--green);background:var(--bg);padding:10px 14px;white-space:pre-wrap;overflow-wrap:anywhere}.clue-evidence details>p{white-space:pre-wrap}.clue-evidence details[open]{padding-bottom:12px}
.writer-focus-reference{display:none}#app.writer-focus>.sidebar{display:none}#app.writer-focus>main{margin-left:0;width:100%}#app.writer-focus .content{max-width:1240px;margin:0 auto;padding-top:14px}#app.writer-focus .writing-shell{grid-template-columns:minmax(0,1fr)}#app.writer-focus .writing-directory,#app.writer-focus .calibration-panel{display:none}#app.writer-focus .writing-total,#app.writer-focus .writing-intro .eyebrow,#app.writer-focus .writing-intro p{display:none}#app.writer-focus .writing-intro{margin-bottom:12px}#app.writer-focus .writing-intro h1{font-size:1.125rem}#app.writer-focus .writer-focus-reference{display:inline-flex}#app.writer-focus .writing-body{min-height:60vh;max-height:75vh}
#app.writer-focus .topbar{display:none}
#app.writer-focus .content{padding-top:10px}
/* 第195批（作者 2026-10-08：「太窄了」）：专注模式的正文栏 820 → 1080（内容区 1120 → 1240），
   宽屏上左右留白从 500+ 收到 340 左右；只影响"专注写作"这一个状态。 */
#app.writer-focus .writing-page{max-width:1080px;margin:0 auto;width:100%}
.writing-tool-label input[type=checkbox]{width:15px;height:15px;min-height:0;margin:0;accent-color:var(--green);flex:0 0 auto}
/* 打字机跟随：在正文末尾垫一段空白，光标才有可滚动空间停到选定高度（写作时一直停在靠上/偏上/居中） */
.writing-typewriter-on #writing-body{padding-bottom:70vh!important}
/* 正文面板的底：背景板 + 稿纸网格线（多层背景合并，逐层控制尺寸/位置/是否随文字滚动）。
   只作用于 #writing-body —— 标题头、工具栏、侧栏都不受影响。 */
.writing-canvas-on #writing-body{background-image:var(--writing-canvas-image,none)!important;background-size:var(--writing-canvas-size,auto)!important;background-position:var(--writing-canvas-position,0 0)!important;background-repeat:var(--writing-canvas-repeat,repeat)!important;background-attachment:var(--writing-canvas-attachment,local)!important}
#writing-editor #writing-body,#writing-editor .writing-preview{color:var(--writing-ink,var(--text))!important}
/* 背景板：垫在正文下方，图片固定不跟着滚动，浅色半透明罩保证文字清晰 */
/* 背景板不再铺在整页上（那样会把标题头一起染色），改由正文面板自己的背景承载。 */
.writing-appearance{display:block;width:100%;margin:4px 0 0;padding-top:2px}
.writing-appearance>summary{cursor:pointer;font-size:.875rem;color:var(--green);display:inline-flex;align-items:center;gap:6px;list-style:none;padding:2px 0}
.writing-appearance>summary::-webkit-details-marker{display:none}
.writing-appearance[open]>summary{color:var(--ink);font-weight:600}
.writing-appearance-body{display:flex;flex-direction:column;gap:10px;padding:8px 0 4px}
.writing-appearance-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.writing-paper-swatches{display:flex;flex-wrap:wrap;gap:8px}
.writing-paper-swatch{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:5px 10px;font-size:.8125rem;color:var(--text)}
.writing-paper-swatch{transition:border-color .15s,box-shadow .15s,background-color .15s}
.writing-paper-swatch:hover{border-color:var(--green)}
.writing-paper-swatch[aria-pressed=true]{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.writing-paper-swatch i{display:block;width:24px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.12);flex:0 0 auto;background-size:cover;background-position:center}
.writing-paper-upload{position:relative;overflow:hidden;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:9px}
.writing-paper-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.writing-paper-hint{font-size:.8125rem;color:var(--muted);line-height:1.75;margin:0;max-width:74ch}
/* 章节标题：比正文大一号并加粗（宋体没有 550 字重，原来看着不粗） */
#writing-editor .writing-title{font-size:1.75rem!important;font-weight:700!important;line-height:1.35!important;text-align:center!important}
/* 正文第一行当标题行：比正文大一号 + 加粗；行高锁死，不打乱稿纸格线 */
#writing-body::first-line{font-size:calc(var(--writing-size,1.125rem) + 4px);font-weight:700;line-height:var(--writing-lineh,2.05em)}
/* 中文标点栏：成对符号按钮稍宽一点 */
.writing-punct-group button{min-width:auto;padding:5px 9px;font-size:1rem;letter-spacing:.5px}
/* 校准建议标题行里的「确定」按钮 */
.calibration-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.calibration-title-row h3{margin:0;flex:1 1 auto}
.calibration-title-row select{width:auto;min-width:96px}
.calibration-confirm{white-space:nowrap;padding:6px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper)}
.calibration-confirm:not(:disabled):hover{border-color:var(--green);color:var(--green)}
/* 排版预览与正文用同一内边距：否则同一行"居中"在预览里正、在写作页里偏 */
.writing-preview{padding:28px!important}
@media(max-width:1500px){.writing-preview{padding:35px 46px!important}}
#writing-editor .writing-tools button[data-action="write-editor-fullscreen"]{white-space:nowrap}#app.writer-focus .topbar .breadcrumb,#app.writer-focus .topbar>.skin-button:not([data-action="writer-backup"]),#app.writer-focus .topbar>.font-size-control,#app.writer-focus .topbar>.private-pill{display:none}#app.writer-focus.writer-reference-open .writing-shell{grid-template-columns:minmax(0,1fr) 320px}#app.writer-focus.writer-reference-open .calibration-panel{display:block;grid-column:auto;max-height:80vh;overflow:auto}#app.writer-focus .writing-page-head>div{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.writer-onboarding{align-items:flex-start;flex-direction:column;gap:12px}.writer-onboarding>div:last-child{flex-shrink:1}.writer-guide-selectors,.payoff-evidence{grid-template-columns:1fr}.batch-change-heading>.writer-actions{width:100%}.batch-change-summary{padding:12px}.writer-steps{margin:16px 0}.writer-steps>li{gap:10px}#app.writer-focus .content{padding:12px}#app.writer-focus.writer-reference-open .writing-shell{grid-template-columns:minmax(0,1fr)}#app.writer-focus.writer-reference-open .calibration-panel{grid-column:1;max-height:65vh}.topbar [data-action="writer-backup"]{margin-left:auto}}
/* Manuscript tools share the paper surface and follow the reader's font scale. */
.writing-tools{min-width:0;margin:0;padding:9px 18px;border:0;border-bottom:1px solid var(--line);background:var(--paper)}
.writing-tool-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:2px 0}
.writing-tool-group{display:flex;align-items:center;flex-wrap:wrap;gap:3px;padding-right:8px;border-right:1px solid var(--line)}
.writing-tool-group:last-child{border-right:0;padding-right:0}
.writing-tools button,.writing-find button{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;padding:5px 8px;border-radius:5px;color:var(--text);font-size:.875rem;line-height:1.5;white-space:nowrap}
.writing-tools button:hover:not(:disabled),.writing-find button:hover:not(:disabled){background:var(--green-soft);color:var(--green)}
.writing-tools button:focus-visible,.writing-find button:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.writing-tools button:disabled{opacity:.35;cursor:default}.writing-tools button[aria-pressed=true]{background:var(--green-soft);color:var(--green)}
.writing-tools [data-action=write-editor-undo],.writing-tools [data-action=write-editor-redo]{font-size:1.375rem;line-height:1}
.writing-tools [data-action=write-editor-proof]{color:var(--green);font-weight:600}
.writing-tool-label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.875rem;white-space:nowrap;margin:0}
.writing-tool-label select{width:auto;max-width:140px;min-height:34px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--text);padding:4px 6px;font-size:.875rem}
#writing-body,.writing-preview{font-family:var(--writing-font,'Songti SC','SimSun',serif)!important;font-size:var(--writing-size,1.125rem)!important;line-height:var(--writing-line,2.05)!important;color:var(--text)!important}
#writing-body[hidden],#writing-preview[hidden],#writing-find[hidden]{display:none!important}
.writing-preview{flex:1;min-width:0;min-height:590px;padding:18px 28px;overflow:auto;overflow-wrap:anywhere;max-height:80vh;letter-spacing:.03em}
.writing-preview p{margin:0 0 1em;white-space:pre-wrap}.writing-preview h2,.writing-preview h3,.writing-preview h4{line-height:1.6;margin:1em 0 .5em;color:var(--ink)}
.writing-preview blockquote{margin:1em 0;padding:8px 16px;border-left:3px solid var(--green);background:var(--bg)}
.writing-preview ul,.writing-preview ol{padding-left:1.8em;margin:1em 0}.writing-preview hr{border:0;border-top:1px solid var(--line);margin:1.5em 0}
.writing-preview pre{white-space:pre-wrap;background:var(--bg);padding:14px;border-radius:6px}.writing-preview .md-table{max-width:100%;overflow:auto;margin:16px 0}
.writing-preview table{width:100%;border-collapse:collapse;table-layout:auto;font-size:inherit}.writing-preview th,.writing-preview td{text-align:left;vertical-align:top;border:1px solid var(--line);padding:8px 12px;min-width:90px;white-space:pre-wrap}.writing-preview th{background:var(--green-soft);font-weight:600}
.writing-find{padding:10px 18px;border-bottom:1px solid var(--line);background:var(--bg)}.writing-find>div{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:4px 0}.writing-find label{display:flex;align-items:center;gap:8px;font-size:.875rem;flex:1;min-width:160px;max-width:380px}.writing-find input{flex:1;min-width:0;width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:var(--paper);font-size:.875rem}.writing-find [role=status]{font-size:.875rem;color:var(--muted)}
.writing-table-dialog>p{font-size:1rem;line-height:1.7;margin:0 0 16px}.writing-table-size{display:flex;gap:20px;margin:12px 0}.writing-table-size label{display:flex;align-items:center;gap:8px;font-size:1rem}.writing-table-size input{width:80px}.writing-table-grid{max-height:52vh;overflow:auto;border:1px solid var(--line);margin:16px 0;border-radius:6px}.writing-table-grid table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:420px}.writing-table-grid th,.writing-table-grid td{border:1px solid var(--line);padding:6px;min-width:120px}.writing-table-grid th{background:var(--green-soft)}.writing-table-grid input{display:block;width:100%;min-width:100px;padding:8px;font-size:1rem;background:var(--paper);border:1px solid var(--line);border-radius:4px;color:var(--text)}
#writing-report.proofreader-panel{background:var(--paper)}.proofread-head{padding:18px 16px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:1}.proofread-head>div:first-child{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.proofread-head h2{margin:0;font-size:1.125rem;color:var(--ink)}.proofread-head p{margin:10px 0;font-size:.875rem;color:var(--muted)}.proofread-controls{display:flex;flex-wrap:wrap;gap:8px}.proofread-controls button{font-size:.875rem;padding:8px 12px;min-height:38px}
.proofread-summary{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px 0}.proofread-summary span{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text);border:1px solid var(--line);border-radius:5px;padding:4px 7px}.proofread-summary b{color:var(--green)}
.proofread-message,.proofread-footnote{margin:0;padding:14px 16px;color:var(--muted);font-size:.875rem;line-height:1.7}.proofread-message.is-error{color:var(--red)}.proofread-progress{padding:16px;background:var(--green-soft);margin:14px 16px 0;border-radius:6px}.proofread-progress strong{font-size:1rem;color:var(--ink)}.proofread-progress p{font-size:.875rem;line-height:1.7;margin:10px 0}.proofread-progress progress{width:100%;height:5px;accent-color:var(--green);display:block;margin:10px 0}
.proofread-issues{padding:0 12px}.proofread-issue{margin:0 0 12px;border:1px solid var(--line);border-radius:8px;padding:13px;background:var(--paper);overflow-wrap:anywhere}.proofread-issue-meta{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:.875rem;margin-bottom:10px;color:var(--muted)}.proofread-issue-meta strong{color:var(--ink)}.proofread-issue.applied{border-left:3px solid var(--green)}.proofread-issue.ignored,.proofread-issue.stale{background:var(--bg)}.proofread-before,.proofread-after{padding:9px 10px;border-radius:5px;background:var(--bg);margin:8px 0}.proofread-after{background:var(--green-soft)}.proofread-before small,.proofread-after small{font-size:.8125rem;color:var(--muted)}.proofread-before p,.proofread-after p{font-size:1rem;line-height:1.7;white-space:pre-wrap;margin:4px 0 0}.proofread-reason{font-size:.875rem;line-height:1.7;margin:12px 0;color:var(--text)}.proofread-item-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.proofread-item-actions button{font-size:.875rem;min-height:34px;padding:5px 8px;color:var(--green)}.proofread-item-actions .primary{color:#fff}.proofread-item-actions button:first-child{margin-right:auto}.proofread-item-actions button:disabled{opacity:.45;cursor:default}.proofread-item-actions small{font-size:.8125rem;color:var(--muted)}
.proofread-setup{display:grid;gap:16px}.proofread-setup label{display:grid;gap:7px;font-size:1rem;color:var(--text)}.proofread-setup input,.proofread-setup select{width:100%;min-width:0;min-height:42px;font-size:1rem;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--text)}.proofread-setup p{margin:0;line-height:1.7;font-size:.9375rem}.proofread-task-title{font-weight:600;color:var(--ink)}.proofread-privacy{color:var(--muted)}.proofread-setup a{font-size:.9375rem;color:var(--green)}
@media(max-width:1300px){.proofread-issues{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.proofread-issue{margin:0}.proofread-head{position:static}}
@media(max-width:760px){.writing-tools{padding:8px 12px}.writing-tool-row{gap:5px}.writing-tool-group{gap:1px;padding-right:4px}.writing-tool-label select{max-width:110px}.writing-preview{padding:16px 20px;min-height:440px}.writing-find{padding:10px 12px}.proofread-issues{grid-template-columns:1fr}.writing-table-size{gap:12px;flex-wrap:wrap}}

.analysis-progress{margin:10px 0;padding:12px 14px;border-radius:10px;background:rgba(122,84,196,.06)}
.analysis-progress-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.analysis-progress-head strong{font-size:14px}
.analysis-progress-head small{color:#7a54c4}
.analysis-progress p{margin:8px 0 0;font-size:13px;color:var(--ink-soft,#666)}
.analysis-progress-bar{position:relative;overflow:hidden;height:6px;margin-top:10px;border-radius:99px;background:rgba(122,84,196,.15)}
.analysis-progress-bar>span{position:absolute;top:0;bottom:0;left:-40%;width:40%;border-radius:99px;background:linear-gradient(90deg,#a685e6,#6b46c1);animation:analysisSlide 1.4s ease-in-out infinite}
@keyframes analysisSlide{0%{left:-40%}100%{left:100%}}
.analysis-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(122,84,196,.25);border-top-color:#6b46c1;animation:analysisSpin .8s linear infinite}
@keyframes analysisSpin{to{transform:rotate(360deg)}}
.analysis-progress-slim{padding:0;background:transparent;margin:6px 0}


/* 第47批：整本导出 + 批量保留 */
.writer-export-parts{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0}
.writer-export-parts label{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.batch-group-actions{display:inline-flex;gap:6px;margin-left:10px}
.batch-group-actions .small-button{padding:2px 8px;font-size:12px}
.batch-bulk-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}
.batch-bulk-actions .personal-hint{margin:0}


/* 第48批：按分卷设定同步分卷 */
.setting-sync{white-space:nowrap}
.volume-sync-table{display:flex;flex-direction:column;gap:8px;margin:12px 0;max-height:44vh;overflow:auto}
.volume-sync-row{display:grid;grid-template-columns:minmax(150px,2fr) 1fr 1fr;gap:10px;align-items:end}
.volume-sync-row label{display:flex;flex-direction:column;gap:4px;font-size:13px}
.volume-sync-summary{margin:6px 0;font-size:14px}
.volume-sync-note{margin:6px 0;font-size:13px;color:var(--muted)}
.volume-sync-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}


/* 第48批：库页面底部说明 */
.corpus-foot{margin:10px 2px 0;font-size:12px;color:var(--muted)}


/* 第48批：道具设定库的分组卡片 */
.artifact-group{margin:16px 0;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.artifact-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
.artifact-group-head h3{margin:0;font-size:15px}
.artifact-group-count{margin-left:8px;font-size:12px;color:var(--muted)}
.artifact-group .corpus-grid{margin-top:2px}
.md-import-row .md-import-book{display:block;margin:6px 0;font-size:12px;color:var(--muted)}
.md-import-row .md-import-book select{display:block;margin-top:4px;font-size:13px}
.artifact-group-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;padding:0}
.artifact-group-toggle:focus{outline:2px solid #88a893;outline-offset:2px}
.artifact-group-chevron{display:inline-block;color:var(--green);font-size:.8rem;line-height:1;transition:transform .18s ease}
.artifact-group-toggle[aria-expanded=true] .artifact-group-chevron{transform:rotate(180deg)}
.artifact-group-title{font-size:15px;font-weight:600}
.artifact-group .corpus-grid[hidden]{display:none!important}
.onboarding-card{margin:14px 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#f6faf7,#ffffff)}
.onboarding-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.onboarding-head h2{margin:2px 0 4px;font-size:17px}
.onboarding-head p{margin:0;color:var(--muted);font-size:13px}
.onboarding-bar{height:6px;border-radius:99px;background:#e6efe9;overflow:hidden;margin:12px 0 10px}
.onboarding-bar span{display:block;height:100%;background:var(--green);transition:width .2s ease}
.onboarding-steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.onboarding-step{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.onboarding-step.active{border-color:var(--green);box-shadow:0 0 0 1px #88a89333}
.onboarding-step.done{background:#f7fbf8}
.onboarding-check{flex:0 0 22px;height:22px;line-height:22px;text-align:center;border-radius:50%;background:#eef4f0;color:var(--muted);font-size:12px;font-weight:600}
.onboarding-step.done .onboarding-check{background:var(--green);color:#fff}
.onboarding-copy{flex:1;min-width:0}
.onboarding-copy strong{display:block;font-size:14px}
.onboarding-copy small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.onboarding-done{color:var(--green);font-size:12px;white-space:nowrap}
.onboarding-foot{margin:10px 0 0;color:var(--muted);font-size:12px}
.onboarding-reopen{margin:10px 0 0}
.calibration-hook{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfdfc}
.calibration-hook h3{margin:0 0 10px;font-size:15px}
.calibration-hook h3 small{margin-left:6px;color:var(--muted);font-size:12px;font-weight:400}
.hook-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.hook-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}
.hook-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.hook-badge{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;border:1px solid var(--line)}
.hook-badge.hook-strong{background:#e8f5ec;border-color:#9dc9ad;color:#1f6b3a}
.hook-badge.hook-ok{background:#f2f6f3;color:var(--muted)}
.hook-badge.hook-weak{background:#fdf3e7;border-color:#e6c79a;color:#8a5a12}
.hook-score{color:var(--muted);font-size:12px}
.hook-card p{margin:0 0 6px;font-size:13px;line-height:1.6}
.hook-card blockquote{margin:6px 0 0;padding:6px 10px;border-left:3px solid var(--line);color:var(--muted);font-size:12px;line-height:1.6}
.hook-note{color:var(--muted);font-size:12px}
.hook-tips{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.7}
.hook-foot{margin:8px 0 0;color:var(--muted);font-size:12px}
@media(max-width:760px){.hook-grid{grid-template-columns:1fr}}
.writing-money-notice{display:flex;align-items:center;gap:8px;margin:8px 0 0;padding:8px 10px;border:1px solid #e6c79a;border-radius:10px;background:#fdf7ee;font-size:13px;line-height:1.5}
.writing-money-notice strong{color:#8a5a12;white-space:nowrap}
.writing-money-notice span{flex:1;min-width:0;color:var(--muted)}
.writing-money-notice button{white-space:nowrap}
.batch-compare{display:flex;align-items:flex-start;gap:12px;justify-content:space-between;margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f6faf7}
.batch-compare-copy{min-width:0;display:grid;gap:2px}
.batch-compare-copy strong{font-size:14px}
.batch-compare-copy span{font-size:13px;color:var(--ink)}
.batch-compare-copy small{font-size:12px;color:var(--muted)}
.batch-compare button{white-space:nowrap}
@media(max-width:760px){.batch-compare{flex-direction:column;align-items:stretch}}
.batch-old-warning{margin:8px 0 0;padding:8px 10px;border:1px solid #e6c79a;border-radius:10px;background:#fdf7ee;font-size:13px;color:#8a5a12}
.clue-tag-seen{background:#eef4f0;color:var(--muted)}
.batch-coverage{margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 12px}
.batch-coverage>summary{cursor:pointer;display:flex;align-items:center;gap:8px}
.batch-coverage>summary span{color:var(--muted);font-size:12px}
.batch-coverage-rows{display:grid;gap:8px;margin-top:8px}
.batch-coverage-rows article{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fbfdfc}
.batch-coverage-rows p{margin:6px 0;font-size:13px;line-height:1.6}
.batch-coverage-rows small{color:var(--muted);font-size:12px;display:block;margin-bottom:4px}
@media(max-width:760px){.batch-coverage>summary{flex-wrap:wrap}}

/* 第59批：恢复备份后的"你现在看的就是它"提示条（别让慌了的人自己在作品列表里找） */
.restore-strip{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin:0 0 18px;padding:16px 18px;border:1px solid var(--gold);border-radius:var(--radius);background:var(--gold-bg)}
.restore-strip-text{flex:1 1 320px;min-width:0}
.restore-strip-text strong{display:block;margin-bottom:6px;font-size:1.05rem;color:var(--ink)}
.restore-strip-text p{margin:0 0 6px;line-height:1.7}
.restore-strip-hint{color:var(--muted)}
.restore-strip-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.restore-strip-books{display:flex;gap:6px;flex-wrap:wrap}

/* 第60批：换账号 / 换电脑搬作品 —— 空工作台多一个"导入备份"的落点，导入确认页多一段"什么过来、什么不过来" */
.empty-hint{max-width:32rem;color:var(--muted)}
.empty-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.migrate-scope{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);text-align:left}
.migrate-scope p{margin:0 0 8px;line-height:1.7}
.migrate-scope p:last-child{margin-bottom:0}
.migrate-scope strong{color:var(--ink)}

/* ============================================================
   第63批 · 手机端「档 1」（补齐 + 触摸友好）—— 2026-09-25
   原则：① 只追加，不改动上面已有的手机档规则；② 不重排版面，只把挤在一起的地方理顺；
        ③ 桌面不受影响（触摸与 hover 的规则都包在 @media 里）。
   ============================================================ */

/* 1) 手机浏览器地址栏伸缩时，页面高度跟着变，不再"跳一下" */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@supports (height:100dvh){
  #app{min-height:100dvh}
  .initial{min-height:100dvh}
}
@media (min-width:681px){
  @supports (height:100dvh){
    .sidebar{height:100dvh}
  }
}

/* 2) 小屏：最近几批新加的区块（原来只有桌面样式，手机上会挤成一团） */
@media (max-width:680px){
  /* iOS 上输入框字号小于 16px，一点就自动放大整页 —— 这条是手机上最省心的一改 */
  input,select,textarea{font-size:16px}
  /* 恢复备份后的提示条：改成竖向堆叠，按钮满宽好点 */
  .restore-strip{flex-direction:column;gap:10px;padding:14px 15px;margin-bottom:14px}
  .restore-strip-text{flex:1 1 auto;width:100%}
  .restore-strip-text strong{font-size:1rem}
  .restore-strip-text p{font-size:.9375rem}
  .restore-strip-actions{width:100%;flex-direction:column;align-items:stretch;gap:8px}
  .restore-strip-actions>button{width:100%}
  .restore-strip-books{width:100%;flex-direction:column;gap:8px}
  .restore-strip-books>button{width:100%}
  /* 换账号 / 换电脑的迁移清单 */
  .migrate-scope{padding:12px;margin:10px 0}
  .migrate-scope p{font-size:.9375rem;line-height:1.75}
  .import-preview{padding:13px}
  /* 空工作台：两颗按钮竖着排，别挤成一条 */
  .empty-hint{text-align:center;padding:0 4px}
  .empty-actions{flex-direction:column;width:100%;gap:8px}
  .empty-actions>button{width:100%}
  /* 新手引导卡片 */
  .onboarding-card{padding:13px 14px}
  /* 写作页顶部那行"刚才想做的没做成"提示 */
  .writing-money-notice{flex-wrap:wrap;gap:6px}
  .writing-money-notice strong{white-space:normal}
  .writing-money-notice span{flex:1 1 100%}
  /* 章末钩子 / 节奏卡片 */
  .calibration-hook{padding:11px 12px}
  .calibration-hook h3{font-size:.9375rem}
  /* 稿纸与背景那一栏 */
  .writing-appearance-row{flex-wrap:wrap}
  .writing-appearance-row>label{flex:1 1 100%}
  .writing-paper-swatches{flex-wrap:wrap}
  /* 首次自动备份的说明弹窗（列表项本来就窄，这里只收紧行距） */
  .auto-export-points li{line-height:1.7}
  /* 宽表格（伏笔台账 / AI 整理预览 / 章节设定）：手机上横向滑动看，不把整页顶宽 */
  table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .change-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
}


/* ============================================================
   第64批 · 手机端「档 2（前一半）」—— 先把手机上的"导航和工具"收起来，让人先看到正文
   原则：只追加；桌面完全不受影响（所有规则都包在 @media 里，开关按钮在桌面隐藏）。
   ============================================================ */
@media (max-width:680px){
  /* 1) 首页"写作统计"：固定两列。原来窄屏会塌成一列，四张卡占掉一整屏 */
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 2) 侧栏收起时，不显示"删除当前作品"（红色危险按钮，别让它躺在最上面等误触；要删先展开侧栏） */
  .sidebar-collapsed .delete-current-book{display:none}
  /* 3) 章节目录可以收起来：收起后只留标题行 + 右侧「目录」开关 */
  .writing-directory.directory-collapsed>input,
  .writing-directory.directory-collapsed>select,
  .writing-directory.directory-collapsed>#writing-list,
  .writing-directory.directory-collapsed>.secondary{display:none}
  /* 4) 章节卡片标题允许换行（以前被截成"冻层下的三十七…"） */
  .writing-directory[data-layout="list"] .writing-chapter-card .writing-chapter strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}
  /* 5) 编辑区标题字号收一点，长标题能多显示几个字 */
  .writing-title{font-size:1.25rem!important}
  /* 6) 编辑器工具行：默认只留最上面一行（撤销/重做 + 字体），其余收进「更多工具」 */
  .writing-tools-toggle{display:flex;align-items:center;justify-content:center;width:100%;margin-top:8px}
  #app:not(.tools-open) .writing-tools .writing-tool-row:not(:first-child){display:none}
  .writing-directory-toggle{font-size:.875rem;padding:5px 11px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text)}
}
/* 桌面端不显示这两个开关（工具行照旧全显示、目录照旧常开） */
@media (min-width:681px){
  .writing-tools-toggle,.writing-directory-toggle{display:none}
}

/* 第67批：登录 / 注册改版 —— 微信一键登录放第一位 */
/* 第238批（作者 2026-10-12）：手机浏览器里给一条"在微信里打开"的路（只在这一种情况下出现，桌面端看不到） */
.account-wechat-mobile{margin:10px 0 0;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:var(--green-soft);color:var(--ink);font-size:.8125rem;line-height:1.75}
.account-wechat-mobile strong{display:block;margin-bottom:2px}
.account-wechat-mobile p{margin:0 0 8px}
.account-wechat-mobile .account-wechat-link{margin:8px 0 0;word-break:break-all;color:var(--muted)}
/* 第239批（作者 2026-10-12）：微信里点了会跳微信自己的「扫码提醒」—— 那里不给按钮了，直接说实话 + 指路 */
.account-wechat-noscan{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:.8125rem;line-height:1.75}
.account-wechat-noscan strong{display:block;margin-bottom:2px}
.account-wechat-noscan p{margin:0}
.account-wechat-primary{margin:0 0 10px;padding-top:0;border-top:0}
.account-wechat-primary .account-wechat-button{font-weight:600}
.account-or{display:flex;align-items:center;gap:10px;margin:16px 0 4px;color:var(--muted);font-size:.8125rem}
.account-or::before,.account-or::after{content:'';flex:1;height:1px;background:var(--line)}
.account-legacy-entry{font-size:.8125rem;color:var(--muted)}

/* 第68批：登录验证方式（验证码登录 / 密码登录） */
.account-verify-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 4px}
.account-verify-mode button{padding:9px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:.875rem;line-height:1.5}
.account-verify-mode button:hover{background:var(--green-soft);color:var(--green)}
.account-verify-mode button.selected{background:var(--green-soft);border-color:var(--green);font-weight:600;color:var(--green)}
.account-verify-mode+.account-small{margin-top:6px}
@media (pointer:coarse){.account-verify-mode button{min-height:44px}}
@media (max-width:500px){.account-verify-mode{gap:5px}}

/* 第69批：首页三槽轮换（拉新活动；以后广告可以直接占一槽） */
.home-slots{margin:0 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fbfaf3,#f5f8f1)}
.home-slot-item{display:none}
.home-slot-item.active{display:block}
.home-slot-tag{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.75rem;font-weight:600}
.home-slots h2{margin:8px 0 6px;font-size:1.0625rem;line-height:1.6}
.home-slots h2 b{color:var(--green)}
.home-slots p{margin:4px 0 10px;font-size:.875rem;line-height:1.8;color:var(--text)}
.home-slot-code{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.26em;font-size:1.5rem;color:var(--green)}
.home-slot-link{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.8125rem}
.home-slot-actions{display:flex;gap:8px;flex-wrap:wrap}
.home-slot-list{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.home-slot-list span{padding:3px 9px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.8125rem}
.home-slot-dots{display:flex;gap:6px;justify-content:center;margin-top:12px}
.home-slot-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#d9ded3;cursor:pointer}
.home-slot-dots button.active{width:20px;border-radius:999px;background:var(--green)}
@media (max-width:680px){.home-slots{padding:12px 12px;margin-bottom:14px}.home-slot-code{letter-spacing:.18em;font-size:1.25rem}.home-slot-actions .primary,.home-slot-actions .secondary{flex:1 1 auto}}
@media (pointer:coarse){.home-slot-dots button{width:14px;height:14px}.home-slots .primary,.home-slots .secondary{min-height:44px}}

/* 第70批：活动/广告位 —— 固定尺寸 + 倒三角收起 + 单卡详情 */
.home-slots{padding:0;overflow:hidden}
.home-slots-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px}
.home-slots-toggle{border:0;background:transparent;color:var(--muted);font-size:.8125rem;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1.4}
.home-slots-toggle:hover{background:var(--green-soft);color:var(--green)}
.home-slot-body{height:118px;overflow:hidden;padding:0 16px 14px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.home-slots.collapsed .home-slot-body{display:none}
.home-slot-card{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:0;background:transparent;padding:0;cursor:pointer;font:inherit;color:inherit}
.home-slot-card:hover .home-slot-more{text-decoration:underline}
.home-slot-title{font-size:1.0625rem;line-height:1.5;font-weight:600}
.home-slot-title b,.home-slot-sub b{color:var(--green)}
.home-slot-sub{font-size:.875rem;color:var(--text);line-height:1.6}
.home-slot-more{font-size:.8125rem;color:var(--green)}
.home-slot-actions{display:flex;gap:8px;flex-wrap:wrap}
.referral-detail .referral-lead{margin:0 0 10px;font-size:1rem}
.referral-detail .referral-lead b{color:var(--green)}
.referral-rules{margin:0 0 14px;padding-left:20px;font-size:.875rem;line-height:1.8;color:var(--text)}
.referral-code-box{margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfaf3;display:flex;flex-direction:column;gap:6px}
.referral-code-box>span{font-size:.8125rem;color:var(--muted)}
.referral-code-box>strong{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.26em;font-size:1.5rem;color:var(--green)}
.referral-code-box>code{overflow-wrap:anywhere;font-size:.8125rem}
.referral-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}
.referral-stats>div{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;flex-direction:column;gap:2px}
.referral-stats span{font-size:.75rem;color:var(--muted)}
.referral-stats strong{font-size:.9375rem}
.referral-sub{margin:0 0 8px;font-size:.9375rem}
.referral-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:7px 2px;border-bottom:1px solid var(--line);font-size:.8125rem}
.referral-row:last-child{border-bottom:0}
.referral-row span:first-child{color:var(--muted)}
@media (max-width:680px){.home-slot-body{height:164px;padding:0 12px 12px}.home-slot-actions .primary,.home-slot-actions .secondary{flex:1 1 auto}.referral-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (pointer:coarse){.home-slots-toggle{min-height:44px}.home-slots .primary,.home-slots .secondary{min-height:44px}}

/* 第71批：广告位三条槽（矮一点、圆点在框里、尺寸仍然固定死） */
.home-slot-body{height:96px;padding:0 16px 8px;justify-content:flex-start;gap:0}
.home-slot-stage{flex:1;min-height:0;overflow:hidden}
.home-slot-item{display:none}
.home-slot-item.active{display:block}
.home-slot-dots{display:flex;gap:6px;justify-content:center;padding-top:2px}
.home-slot-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#d9ded3;cursor:pointer}
.home-slot-dots button.active{width:20px;border-radius:999px;background:var(--green)}
.home-slot-card{gap:2px}
@media (max-width:680px){.home-slot-body{height:132px;padding:0 12px 6px}}
@media (pointer:coarse){.home-slot-dots button{width:14px;height:14px;padding:0}}

/* 第80批c：空工作台那行小字（.empty-hint）有 max-width 但没居中，看起来偏在左边 —— 跟标题 / 按钮一样居中 */
.empty-work .empty-hint{margin-left:auto;margin-right:auto;text-align:center}

/* 第80批d：那行小字挪到两颗按钮下面，给它一点上间距（覆盖 .empty p 的 8px） */
.empty-work .empty-actions+.empty-hint{margin-top:14px}

/* 第81批：设定与大纲页脚那颗「备份与导入」加深颜色（左侧侧栏那条已合并到顶栏，这是留着的备用入口） */
.planning-foot>button{color:var(--ink);font-weight:500}
.planning-foot>button:hover{color:var(--green)}

/* 第82批：写作页「先点整理排版」提醒条（导入正文后 / 第一次点「完成与整理」时出现一次） */
.writing-tidy-hint{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:14px 16px;border:1px solid var(--gold);border-radius:var(--radius);background:var(--gold-bg);color:var(--text)}
.writing-tidy-hint>.icon{width:18px;height:18px;flex:none;margin-top:2px;color:var(--gold)}
.writing-tidy-hint>div:first-of-type{flex:1 1 auto;min-width:0}
.writing-tidy-hint strong{display:block;font-weight:500;color:var(--ink);margin-bottom:3px}
.writing-tidy-hint p{margin:0;font-size:.875rem;color:var(--muted);line-height:1.55}
.writing-tidy-actions{display:flex;gap:8px;align-items:center;flex:none}
.writing-tidy-actions .icon{width:14px;height:14px}
@media (max-width:680px){.writing-tidy-hint{flex-wrap:wrap;padding:12px 13px}.writing-tidy-actions{width:100%;justify-content:flex-end}}
/* 第91批：注册 / 登录面板的协议勾选行 */
.account-consent{display:flex;gap:.5rem;align-items:flex-start;margin:.85rem 0 .35rem;font-size:.86rem;line-height:1.6;color:var(--ink,#2f2a24)}
.account-consent input{margin:.2rem 0 0;flex:none;width:1rem;height:1rem}
.account-consent a{color:var(--accent,#8a5a2f);text-decoration:underline}
.account-consent a:hover{text-decoration:none}
/* 第92批：登录 / 注册面板排版修正 —— 协议勾选框（小方框、排在条款文字前面）与"获取验证码"行对齐 */
#account-form .account-consent{display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;text-align:left;margin:14px 0 0;font-size:.875rem;line-height:1.8}
#account-form .account-consent input{width:18px;min-height:18px;height:18px;flex:0 0 18px;margin:4px 0 0}
#account-form .account-consent a{color:var(--green);text-decoration:underline}
#account-form .account-consent a:hover{text-decoration:none}
#account-form .security-code-row{align-items:flex-end}
#account-form .security-code-row input,#account-form .security-code-row button{min-height:46px;height:46px}
@media(max-width:500px){#account-form .account-consent input{margin-top:6px}}
/* 第93批：验证码行对齐的真正原因 —— `#account-form label{margin-bottom:16px}`（ID 选择器 1-0-1）压过了
   `.security-code-row label{margin:0}`（0-1-1），label 底部多出 16px，按钮按 flex-end 对齐就整体低了一截。
   这里用同层 ID+类（1-1-1）把外边距归零，配合上面第92批的 46px 等高，输入框与按钮才对得齐。 */
#account-form .security-code-row>label{margin-bottom:0}
#account-form .security-code-row input,#account-form .security-code-row button{margin-bottom:0}
/* 第94批：协议入口（侧栏底部 / 首页页脚）+ 注销账号区块 */
.site-legal{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:14px 8px 4px;font-size:.78rem;line-height:1.6;color:var(--muted,#7a7268)}
.site-legal a{color:inherit;text-decoration:underline}
.site-legal a:hover{color:var(--green)}
.site-legal small{display:block;width:100%;opacity:.75}
.site-legal-home{margin:22px auto 6px;justify-content:center;text-align:center}
.account-danger{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.account-danger-toggle{border:0;background:none;padding:6px 0;font-size:.82rem;color:var(--muted,#7a7268);text-decoration:underline;cursor:pointer}
.account-danger-toggle:hover{color:#a33}
.account-danger-body{margin-top:10px;padding:12px;border:1px solid #e7cdcd;border-radius:10px;background:#fdf7f7;text-align:left}
.account-danger-body .account-signout{width:100%;justify-content:center;margin-top:6px}

/* 第97批 · 首屏只服务"写"（继续写大按钮 + 到手权益）+ 顶栏常驻额度 */
.home-start{padding:28px 32px;border:1px solid var(--line);border-left:5px solid var(--green);border-radius:12px;background:var(--paper);margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.home-start-copy{min-width:0}
.home-start h2{font-size:1.65rem;margin:8px 0 10px}
.home-start p{font-size:1.0625rem;margin-bottom:10px}
.home-start small{font-size:.875rem;color:var(--muted)}
.home-start-button{min-height:64px;padding:0 30px;font-size:1.0625rem;white-space:nowrap;flex-shrink:0}
.home-entitlement{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 18px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfbf7;font-size:.875rem;color:var(--muted)}
.home-entitlement b{color:var(--ink);font-weight:600}
.home-entitlement .writing-text-button{margin-left:auto}
.topbar-credit{display:flex;gap:6px;align-items:center;font-size:.875rem;color:#6f7d68;padding:5px 11px;border:1px solid #e0e6d9;border-radius:999px;background:#f7f9f4;white-space:nowrap}
.topbar-credit b{color:var(--green);font-weight:600}
.topbar-credit:hover{border-color:var(--green)}
.credit-center .credit-lines{display:grid;gap:12px;margin-bottom:14px}
.credit-center .credit-lines>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.credit-center .credit-lines span{display:block;font-size:.8125rem;color:var(--muted);margin-bottom:4px}
.credit-center .credit-lines strong{display:block;font-size:1.0625rem;color:var(--ink);margin-bottom:4px}
.credit-center .credit-lines small{font-size:.8125rem;line-height:1.7;color:var(--muted)}
@media(max-width:680px){.home-start{flex-direction:column;align-items:stretch;padding:20px 18px;gap:14px}.home-start-button{width:100%;min-height:56px;white-space:normal}.home-entitlement{font-size:.8125rem;padding:9px 12px}.home-entitlement .writing-text-button{margin-left:0}.topbar-credit{padding:4px 8px;font-size:.8125rem}.topbar-credit .topbar-credit-label{display:none}}

/* 第98批 · 侧栏只留 3 项 + 「资料库」分组 + 快捷键面板 */
.nav-group{margin:2px 0}
.nav-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:.875rem;cursor:pointer;text-align:left}
.nav-group-head:hover{background:#f2f5ef}
.nav-group.open .nav-group-head{color:var(--ink)}
.nav-group-triangle{width:10px;font-size:.625rem;color:#9aa79a}
.nav-group-count{margin-left:auto;font-size:.75rem;color:#9aa79a}
.nav-group-body{padding-left:6px;display:flex;flex-direction:column;gap:1px}
.library-entry-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfbf7}
.library-entry-card strong{display:block;font-size:.9375rem;color:var(--ink);margin-bottom:4px}
.library-entry-card p{margin:0;font-size:.8125rem;line-height:1.7;color:var(--muted)}
.shortcut-panel{display:grid;gap:8px}
.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:var(--paper);font-size:.875rem}
.shortcut-row kbd{font-family:inherit;font-size:.8125rem;color:var(--ink);background:#f2f5ef;border:1px solid #e0e6d9;border-radius:6px;padding:3px 8px;white-space:nowrap}
.shortcut-row span{color:var(--muted)}
@media(max-width:680px){.nav-group-head{display:none}.nav-group-body{padding-left:0;flex-direction:row;gap:3px}}


/* 第98b批 · 体验额度「一共 30 条，怎么拿满」说明块 */
.credit-howto{margin:0 0 14px;padding:12px 14px;border:1px solid var(--gold);border-radius:10px;background:var(--gold-bg)}
.credit-howto strong{display:block;font-size:.9375rem;color:var(--ink);margin-bottom:6px}
.credit-howto p{margin:0;font-size:.8125rem;line-height:1.85;color:var(--muted)}
.credit-howto b{color:var(--ink)}
/* 第98d批：注册页的「邀请码（选填）」 */
.account-invite-tip{display:block;font-size:.875rem;line-height:1.8;color:var(--muted);margin-top:8px}
.account-invite-warn{color:var(--red)}
/* 第98g批：修「更多工具」在桌面端是摆设（点了没反应）—— ① 折叠规则原来只写在 @media(max-width:680px) 里；② 桌面端隐藏开关的规则权重不够 */
/* ① 折叠规则不再限手机端：桌面端点「更多工具」也能收起 / 展开第 2 行之后的工具 */
#app:not(.tools-open) .writing-tools .writing-tool-row:not(:first-child){display:none}
/* ② 开关在桌面端也显示：旧规则 .writing-tools-toggle 是 0-1-0，被 .writing-tools button 的 0-1-1 盖掉了，这里用 0-2-0 拿回来 */
@media (min-width:681px){.writing-tools .writing-tools-toggle{display:flex}}
/* 第197批（作者 2026-10-08）：专注写作的一键预览 —— 预览区可聚焦（这样 ↑ ↓ 才有人接），并给一句人话提示 */
.writing-preview:focus{outline:none}
.writing-preview:focus-visible{outline:2px solid var(--green-soft);outline-offset:-2px}
.writing-preview-tip{margin:0;padding:8px 28px 0;font-size:.8125rem;color:var(--muted)}
#app.writer-focus .writing-preview-tip{padding-left:0}
/* 第194批（作者 2026-10-08）：「专注写作」时整条写作工具条收起 —— 他的原话"上面这些工具还是有影响"。
   进专注会自动收起（见 writer-tools.js 的 syncFocus），点那颗倒三角随时关 / 开；退出专注恢复你上次的样子。
   只在"专注"这一个状态下整条收起；平时（非专注）照旧：收起时仍留第一行（撤销 / 字体 / 字号 / 行距）。 */
#app.writer-focus:not(.tools-open) .writing-tools{padding:2px 18px;border-bottom:0}
#app.writer-focus:not(.tools-open) .writing-tools .writing-tool-row{display:none}
#app.writer-focus:not(.tools-open) .writing-tools .writing-appearance{display:none}
#app.writer-focus .writing-tools-toggle{margin-top:2px}
#app.writer-focus:not(.tools-open) .writing-tools-toggle{min-height:26px;font-size:.8125rem;color:var(--muted)}

/* 第100批（第26条）：手机端最小码字版 —— 只留章名 + 正文。所有规则都在 @media(max-width:680px) 里，桌面端一个字都不变 */
.writing-mini-bar,.writing-mini-foot,.writing-mini-backdrop{display:none}
#app .writing-page-head div [data-action="write-mini-toggle"]{display:none}
@media (max-width:680px){
  #app .writing-page-head div [data-action="write-mini-toggle"]{display:inline-flex}
  #app.writer-mini .topbar,
  #app.writer-mini>.sidebar,
  #app.writer-mini .writing-intro,
  #app.writer-mini .writing-page-head,
  #app.writer-mini #writing-title,
  #app.writer-mini .writing-context,
  #app.writer-mini .writing-tools,
  #app.writer-mini .writing-save-row,
  #app.writer-mini .writing-actions,
  #app.writer-mini .calibration-panel,
  #app.writer-mini .writing-tidy-hint,
  #app.writer-mini .local-draft-notice,
  #app.writer-mini .content>footer{display:none}
  #app.writer-mini .content{padding:0;max-width:none}
  #app.writer-mini .writing-page{max-width:none;margin:0}
  #app.writer-mini .writing-shell{display:block;margin:0;border:0;border-radius:0}
  #app.writer-mini #writing-editor{padding:0}
  #app.writer-mini .writing-body{min-height:calc(100dvh - 132px);padding:16px;border:0;border-radius:0}
  #app.writer-mini .writing-mini-bar{display:block;position:sticky;top:0;z-index:43;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 12px}
  #app.writer-mini .writing-mini-top{display:flex;align-items:center;gap:8px}
  #app.writer-mini .writing-mini-chapter{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;color:var(--ink);text-align:left;background:none;border:0;padding:0}
  #app.writer-mini .writing-mini-meta{display:flex;gap:10px;margin-top:4px;font-size:.75rem;color:var(--muted)}
  #app.writer-mini .writing-mini-meta .save-failed{color:var(--red)}
  #app.writer-mini .writing-mini-foot{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:44;gap:8px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}
  #app.writer-mini .writing-mini-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:42px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--text);font-size:.9375rem;white-space:nowrap}
  #app.writer-mini .writing-mini-btn:active{background:var(--green-soft)}
  #app.writer-mini .writing-mini-btn.primary{flex:1;background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
  #app.writer-mini .writing-mini-btn[data-action="write-editor-undo"]{min-width:46px;font-size:1.25rem}
  #app.writer-mini .writing-directory{position:fixed;left:0;top:0;bottom:0;z-index:46;width:86%;max-width:340px;margin:0;padding:14px;overflow:auto;background:var(--paper);border-right:1px solid var(--line);border-bottom:0;border-radius:0;transform:translateX(-102%);transition:transform .2s ease}
  #app.writer-mini.writer-mini-nav .writing-directory{transform:translateX(0);box-shadow:0 12px 40px rgba(20,30,20,.28)}
  #app.writer-mini .writing-mini-backdrop{position:fixed;inset:0;z-index:45;border:0;padding:0;background:rgba(20,30,20,.35)}
  #app.writer-mini.writer-mini-nav .writing-mini-backdrop{display:block}
  /* 第112批 · ② 极简码字底栏补「‹ 上一章 / 下一章 ›」：原来只有键盘 Alt + ↑ / ↓，手机上够不到。
     底栏改成两行（上一行换章、下一行原有三件事），正文区相应让出高度，不加重量级覆盖。 */
  #app.writer-mini .writing-mini-foot{flex-direction:column;align-items:stretch;gap:6px}
  #app.writer-mini .writing-mini-step-row,#app.writer-mini .writing-mini-main-row{display:flex;gap:8px}
  #app.writer-mini .writing-mini-step-row .writing-mini-btn{flex:1;min-height:38px;font-size:.875rem;color:var(--muted)}
  #app.writer-mini .writing-body{min-height:calc(100dvh - 184px)}

  /* 第112g批：极简底栏第二行变成 4 颗（↶ 撤销 / ① 体检本章 / 完成本章并整理 / 全屏）——
     收一点尺寸，保证 360px 的小屏也挤得下；撤销那颗会按"有没有可撤销"置灰。 */
  #app.writer-mini .writing-mini-main-row{gap:6px}
  #app.writer-mini .writing-mini-main-row .writing-mini-btn{font-size:.875rem;padding:6px 10px}
  #app.writer-mini .writing-mini-btn[data-action="write-editor-undo"]{min-width:40px;padding:6px 6px;font-size:1.0625rem}
  #app.writer-mini .writing-mini-btn[data-action="write-editor-fullscreen"]{min-width:52px;padding:6px 8px;font-size:.8125rem}
  #app.writer-mini .writing-mini-btn:disabled{opacity:.35;background:var(--paper);color:var(--muted)}
}
/* 第101批：手机上「资料库」够不到 —— 折叠开关原来在窄屏被 display:none 隐藏、入口默认又是收起的，等于进不去 */
@media(max-width:680px){
  .sidebar nav .nav-group{grid-column:1/-1;display:block;margin:2px 0}
  .sidebar nav .nav-group-head{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;padding:8px 4px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--green);font-size:.875rem;font-weight:600;text-align:center}
  .sidebar nav .nav-group.open .nav-group-head{color:var(--ink);background:var(--green-soft);border-color:var(--green)}
  .sidebar nav .nav-group-head .nav-group-count{display:none}
  .sidebar nav .nav-group-body{display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;padding:4px 0 0}
  .sidebar nav .nav-group-body .nav-item{flex:1 1 calc(33.333% - 3px);justify-content:center}
}
/* 第102批：章数包 / 会员的「来源」一行（额度与密钥弹窗） */
.credit-lines .credit-source{display:block;margin-top:6px;color:#8a967f}
.credit-lines .credit-source b{color:#5b7848;font-weight:600}
/* 第105批：整本体检（第182批起并入《通稿体检》第一段） / 作品存证 / 投稿格式导出 */
.checkup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}
.checkup-stat{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper)}
.checkup-stat strong{display:block;font-size:1.375rem;color:var(--green);line-height:1.25}
.checkup-stat span{display:block;font-size:.875rem;color:var(--ink)}
.checkup-stat small{display:block;margin-top:2px;font-size:.8125rem;color:#8a967f}
.work-checkup section,.work-attest section{margin:18px 0;padding-top:12px;border-top:1px solid var(--line)}
.work-checkup section h3,.work-attest section h3{margin:0 0 8px;font-size:1.0625rem}
.work-checkup p,.work-attest p{margin:6px 0;line-height:1.8}
.checkup-item{margin:8px 0;padding:2px 0 2px 10px;border-left:3px solid var(--green-soft)}
.checkup-link{border:0;background:none;padding:0;color:var(--green);font:inherit;text-decoration:underline;cursor:pointer}
.attest-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--line);padding:8px 0;font-size:.9375rem}
.attest-row code{font-size:.8125rem;color:#5b7848}
.attest-fresh{border:1px solid var(--green);border-radius:10px;padding:12px 14px;background:var(--green-soft)}
.attest-hash{display:flex;flex-direction:column;gap:4px}
.attest-hash code,.work-attest code,.work-attest .attest-row code{word-break:break-all;font-size:.8125rem}
.submission-stats{display:flex;gap:14px;align-items:baseline;margin:12px 0}
.submission-stats strong{font-size:1.25rem;color:var(--green)}
.submission-stats span{color:#8a967f}
.submission-check{display:flex;align-items:center;gap:8px;margin:12px 0;line-height:1.6}
@media(max-width:680px){.checkup-grid{grid-template-columns:1fr 1fr}}
/* 第107b批：正文字色（挑一个看着舒服的颜色；只影响这台设备上的显示，导出与存证不受影响） */
#writing-editor #writing-title{color:var(--writing-ink,var(--text))}
.writing-ink-label{margin-right:2px;color:#6b7a6b}
.writing-ink-swatches{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.writing-ink-swatch{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:.8125rem;cursor:pointer}
.writing-ink-swatch i{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.18)}
.writing-ink-swatch[aria-pressed="true"]{border-color:var(--green);background:var(--green-soft);font-weight:600}
/* 第108批：字色亮度 —— 在选好的字色上再叠一档，深色背景 / 黑底图上往右拉就看得清 */
.writing-ink-light{gap:8px;color:#6b7a6b}
.writing-ink-light span{white-space:nowrap}
.writing-ink-light input[type="range"]{width:150px;accent-color:var(--green);vertical-align:middle}
.writing-ink-light b{min-width:46px;color:var(--text);font-variant-numeric:tabular-nums}
/* 第108b批：自定义调色板（作者反馈「手机上自定义调不出色盘」）——
   只用 <input type="range">，不依赖系统取色器；手机上「系统取色器」那颗直接隐藏。 */
.writing-ink-picker{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}
.writing-ink-picker[hidden]{display:none}
.writing-ink-hue,.writing-ink-level{gap:8px;color:#6b7a6b}
.writing-ink-hue span,.writing-ink-level span{white-space:nowrap}
.writing-ink-hue input[type="range"],.writing-ink-level input[type="range"]{-webkit-appearance:none;appearance:none;width:160px;height:10px;border:0;border-radius:999px;vertical-align:middle;cursor:pointer}
.writing-ink-hue input[type="range"]{background:linear-gradient(90deg,#e5484d,#e5a54b,#d9d94b,#68c05a,#4bc9c0,#4b8fe5,#8a63dd,#e5484d)}
.writing-ink-level input[type="range"]{background:linear-gradient(90deg,#000,#767676,#fff)}
.writing-ink-hue input[type="range"]::-webkit-slider-thumb,.writing-ink-level input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--green);box-shadow:0 1px 3px rgba(0,0,0,.3)}
.writing-ink-hue input[type="range"]::-moz-range-thumb,.writing-ink-level input[type="range"]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--green)}
.writing-ink-preview{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--muted)}
.writing-ink-preview i{display:inline-block;width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}
.writing-ink-preview b{color:var(--text);font-variant-numeric:tabular-nums}
.writing-ink-native{position:relative;overflow:hidden;cursor:pointer}
.writing-ink-native input[type="color"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;cursor:pointer}
@media(max-width:680px){.writing-ink-swatch{min-height:36px}.writing-ink-light{flex:1 1 100%}.writing-ink-light input[type="range"]{width:auto;flex:1 1 120px}.writing-ink-picker{gap:8px 10px}.writing-ink-hue,.writing-ink-level{flex:1 1 100%}.writing-ink-hue input[type="range"],.writing-ink-level input[type="range"]{flex:1 1 auto;width:auto;min-width:100px}.writing-ink-native{display:none}}
/* 第109批（路线清单 8）：额度明细弹窗里的逐条流水（时间 / 来源 / ±条 / 余额） */
.credit-log{margin:10px 0 2px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:10px 12px}
.credit-log-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px}
.credit-log-head strong{font-size:.95rem}
.credit-log-head .muted{flex:1 1 auto;font-size:.8125rem}
.credit-log-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}
.credit-log-row{display:flex;align-items:baseline;gap:10px;font-size:.8125rem;border-bottom:1px dashed var(--line);padding-bottom:6px}
.credit-log-row:last-child{border-bottom:0;padding-bottom:0}
.credit-log-when{flex:0 0 auto;min-width:92px;color:var(--muted)}
.credit-log-what{flex:1 1 auto;min-width:0}
.credit-log-what small{display:block;color:var(--muted);font-size:.75rem}
.credit-log-delta{flex:0 0 auto;font-variant-numeric:tabular-nums}
.credit-log-delta.plus{color:var(--green)}
.credit-log-delta.minus{color:#b4584f}
.credit-log-balance{flex:0 0 auto;min-width:66px;text-align:right;font-size:.75rem;color:var(--muted)}
@media(max-width:680px){.credit-log-row{flex-wrap:wrap}.credit-log-when{min-width:0}.credit-log-list{max-height:none}}

/* 第109批（路线清单 9）：日更分享图 —— 首页统计卡片上的按钮 + 弹窗里那张图 */
.home-stats-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.share-card-body{display:flex;flex-direction:column;gap:10px}
.share-card-image{display:block;width:100%;max-width:420px;margin:0 auto;border-radius:12px;border:1px solid var(--line);background:#0d1116}
@media(max-width:680px){.home-stats-actions{gap:6px}.share-card-image{max-width:100%}}

/* 第111批（作者点单）：报障截图 —— 表单里的截图区 + 记录里的缩略图 */
.feedback-images{margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.feedback-images legend{font-weight:600;color:var(--ink);padding:0 6px}
.feedback-images legend span{font-weight:400;color:var(--muted);font-size:.8125rem}
.feedback-image-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.feedback-image-item{position:relative;margin:0;width:132px}
.feedback-image-item img{display:block;width:132px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.feedback-image-item button{width:100%;margin-top:4px;font-size:.75rem;padding:3px 6px}
.feedback-image-add{display:inline-flex;align-items:center;justify-content:center;min-width:132px;min-height:96px;border:1px dashed var(--green);border-radius:8px;color:var(--green);font-size:.8125rem;cursor:pointer;background:var(--green-soft)}
.feedback-image-add.busy{opacity:.6;cursor:progress}
.feedback-image-add input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.feedback-image-note{margin:8px 0 0;font-size:.8125rem;color:#b4584f}
.feedback-shots{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.feedback-shots img{display:block;width:120px;height:88px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
@media(max-width:680px){.feedback-image-item,.feedback-image-item img{width:104px}.feedback-image-item img{height:78px}.feedback-image-add{min-width:104px;min-height:78px}}

/* 第111b批（作者补充）：报障还能传文件 —— 文件清单与附件小卡片 */
.feedback-file-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.feedback-file-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.feedback-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;color:var(--ink)}
.feedback-file-item small{flex:0 0 auto;color:var(--muted);font-size:.75rem}
.feedback-file-item button{flex:0 0 auto;font-size:.75rem;padding:3px 8px}
.feedback-file-add{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;cursor:pointer;overflow:hidden}
.feedback-file-add.busy{opacity:.6;cursor:progress}
.feedback-file-add input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.feedback-file-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.feedback-file-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:.8125rem;color:var(--ink);text-decoration:none}
.feedback-file-chip:hover{border-color:var(--green);color:var(--green)}
@media(max-width:680px){.feedback-file-item{flex-wrap:wrap}.feedback-file-name{flex:1 1 100%}}

/* ===== 第112批 · ① 手机端底部导航条 + ③「回到顶部」浮标 =====
   三条规矩：新样式一律插在这段「手机兜底」之前；不加重量级覆盖（全文计数保持 102）；桌面端零变化（可见规则全在窄屏媒体查询里）。 */
.phone-tabbar,.phone-sheet,.scroll-top-button{display:none}
@media(max-width:680px){
  /* ① 底部导航条：5 格（写字 / 作品 / 资料库 / 消息 / 我的），当前页高亮，带 iPhone 安全区 */
  .phone-tabbar{display:flex;flex-direction:row;position:fixed;left:0;right:0;top:auto;bottom:0;z-index:42;gap:2px;padding:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(20,30,20,.06)}
  #app.writer-mini .phone-tabbar,#app.writer-mini .phone-sheet{display:none}
  .phone-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:46px;padding:4px 2px;border:0;border-radius:10px;background:none;color:var(--muted);font-size:.6875rem;line-height:1.2}
  .phone-tab svg{width:19px;height:19px}
  .phone-tab.active{color:var(--green);background:var(--green-soft);font-weight:600}
  /* 「资料库」那一格点开的小弹层 */
  .phone-sheet{display:block;position:fixed;inset:0;z-index:47;background:rgba(20,30,20,.32)}
  .phone-sheet[hidden]{display:none}
  .phone-sheet-body{position:absolute;left:0;right:0;bottom:0;display:grid;gap:8px;padding:16px 14px calc(16px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);border-radius:14px 14px 0 0}
  .phone-sheet-title{margin:0 0 2px;font-size:.8125rem;color:var(--muted)}
  .phone-sheet-item{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font-size:.9375rem;text-align:left}
  .phone-sheet-item svg{width:18px;height:18px;color:var(--green)}
  .phone-sheet-close{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--muted);font-size:.9375rem}
  /* 底栏占位：内容区留白，别让最后一行被挡住 */
  #app .content{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  /* ③ 回到顶部：手机上缩成一颗圆钮，浮在底栏之上 */
  .scroll-top-button:not([hidden]){display:inline-flex;position:fixed;right:14px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:43;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.0625rem;box-shadow:0 8px 24px rgba(20,30,20,.16)}
  .scroll-top-label{display:none}
}
@media(min-width:681px){
  /* ③ 桌面端：右下角的小胶囊（避让朱雀新手指南浮标时自动上移，见 .with-zhuque） */
  .scroll-top-button:not([hidden]){display:inline-flex;position:fixed;right:26px;bottom:26px;z-index:56;align-items:center;gap:6px;min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-size:.875rem;box-shadow:0 8px 24px rgba(20,30,20,.14)}
}
.scroll-top-button.with-zhuque{bottom:96px}

/* ===== 第112h批 · 手机端：① 顶部那一排工具默认收起（点倒三角展开）② 页面最顶上那一条加全局「全屏」 =====
   来由（作者 2026-09-29）："写作页不留全屏按钮；图1增加倒三角，可以收缩，默认收缩，图二增加全屏按钮"。
   桌面端：顶部那排工具保持原样（三角在桌面不出现），只多出侧栏那颗「全屏」（跟「收起」并排）。 */
.topbar-toggle{display:none}
.sidebar-tools{gap:6px}
.sidebar-tools .sidebar-fullscreen{white-space:nowrap;padding:0 12px}
/* 桌面「收起」状态下侧栏只有 4rem 宽、放不下两颗按钮 → 那一刻只留原来那颗 */
@media(min-width:681px){.sidebar.sidebar-collapsed .sidebar-fullscreen{display:none}}
@media(max-width:680px){
  /* ① 默认收起：只留面包屑 + 倒三角；点一下把额度 / 休息提醒 / 备份 / 搜索 / 皮肤 / 快捷键 / 字号 / 同步都放出来 */
  #app:not(.topbar-open) .topbar > :not(.breadcrumb):not(.topbar-toggle){display:none}
  /* 收起时顺便压薄这一条：默认那套是 min-height:74px + 上下 12px，收起后还白占 91px —— 现在就是一行 44px 的按钮 */
  #app:not(.topbar-open) .topbar{min-height:0;padding-top:8px;padding-bottom:8px;flex-wrap:nowrap}
  /* 面包屑不许换行、也不许按 12rem 起步（不然三角会被挤到第二行，这一条就又变高了） */
  #app:not(.topbar-open) .topbar .breadcrumb{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #app:not(.topbar-open) .topbar .topbar-toggle{flex:0 0 auto}
  .topbar-toggle{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--muted);font-size:.9375rem;line-height:1}
  #app.topbar-open .topbar-toggle{color:var(--ink);background:var(--green-soft);border-color:var(--green)}
  /* ② 写作页里那颗「全屏」（完整版页头）手机上也不显示：全屏统一走最顶上那颗 */
  .writing-page-head [data-action="write-editor-fullscreen"]{display:none}
}

/* ===== 第112c批 · 手机端：顶部那排导航去掉 + 上方空间收紧 + 提示条抬高 =====
   来由（作者 2026-09-29 反馈）："导航改到下面了，把上面的导航删除，缩小上面的空间"。 */
@media(max-width:680px){
  /* ① 底部导航已经覆盖「作品 / 写字 / 资料库 / 消息 / 我的」——顶部这排就不要了（省下约 150px 竖向空间） */
  .sidebar nav .nav-item,.sidebar nav .nav-group{display:none}
  /* ② 上方空间收紧：侧栏内边距 / 品牌行 / 「我的作品」标题 */
  .sidebar{padding:12px 14px 0}
  .sidebar .brand{margin:0 0 10px}
  .sidebar .brand-tagline{display:none}
  .sidebar .workspace-label{display:none}
  .sidebar .books-heading{margin:10px 0 6px}
  /* ③ 提示条抬高：原来固定在底部 30px 处，会被新的底部导航压住半边 */
  #toast{bottom:calc(74px + env(safe-area-inset-bottom))}
}
/* ===== 第112f批 · 手机端：收掉顶部残留的法务块 + 极简底栏去掉「↶ 撤销」（作者 2026-09-29 要求）===== */
@media(max-width:680px){
  /* ① 侧栏里那块「用户服务协议 · 隐私政策 · 备案号申请中」—— 首页页脚已经有一模一样的一块（"毕竟底部有了"）。
     只收侧栏这一块（首页页脚那块 .site-legal-home 保留，别把手机上的法务入口全关了）。 */
  .sidebar .site-legal{display:none}
}


/* 第214批（作者 2026-10-09「按默认」）：《修复方案》换成"记账员"口径 ——
   卡上先列「还没还的 N 条」清单（每条一个勾选框），勾了才出方案；驳回过的收进「已驳回」那块（可撤回）。
   样式复用现有的行 / 药丸按钮长相（不另造一套），只补勾选行与两块折叠区。 */
.clue-repair-listbox,.clue-repair-rejected{margin:6px 0 0;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.clue-repair-listbox>summary,.clue-repair-rejected>summary{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer;list-style:none}
.clue-repair-listbox>summary::-webkit-details-marker,.clue-repair-rejected>summary::-webkit-details-marker{display:none}
.clue-repair-listbox>summary span,.clue-repair-rejected>summary span{font-size:.75rem;color:var(--muted)}
.clue-repair-picks{display:flex;flex-direction:column;gap:2px;padding:0 8px 8px}
.clue-repair-pick{display:flex;align-items:flex-start;gap:8px;padding:6px 6px;border-radius:6px;cursor:pointer}
.clue-repair-pick:hover{background:var(--green-soft)}
.clue-repair-pick.on{background:var(--green-soft)}
.clue-repair-pick input{margin:3px 0 0;width:auto;flex:0 0 auto}
.clue-repair-pick-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.clue-repair-pick-main strong{font-weight:600;color:var(--text);font-size:.8125rem}
.clue-repair-pick-main small{color:var(--muted);font-size:.75rem;line-height:1.5}
.clue-repair-rejected-body{display:flex;flex-direction:column;gap:4px;padding:0 10px 8px}
.clue-repair-rejected-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.8125rem;color:var(--text)}
.clue-repair-rejected-row span{flex:1 1 200px;min-width:0}
.ledger-scan .clue-repair-rejected-row button{flex:0 0 auto;font-size:.75rem;padding:2px 9px}
@media(max-width:760px){.clue-repair-pick{align-items:center}.clue-repair-rejected-row button{min-height:32px}}
/* ⚠️ 以后新批次的 CSS 请插在下面这段「手机兜底」之前 ——
   _test-mobile 第 61 条要求 pointer:coarse / hover:none 两段落在文件最后 10%，
   追加在文件末尾会把它们挤出去（109 批踩过，111 批又踩了一次）。 */

/* 第109批 · 手机兜底：这两段"触屏专用"规则原本排在第63批那一段里，
   因为后面批次又追加了样式（108 字色/调色板、109 额度明细/分享图），位置被挤出文件末尾 ——
   这里挪到真正的最末，保证手指档规则在最后生效（_test-mobile 第 61 条盯着这件事）。 */
/* 4) 触屏上不要保留鼠标的"悬停抬起"效果（手指点完会一直粘着） */
@media (hover:none){
  button:hover,.nav-item:hover,.book-item:hover,.filter-tab:hover,.primary:hover,.secondary:hover{transform:none;box-shadow:none}
}

/* 3) 触屏：手指点得准（44px 是公认的舒适下限），并给点击一点反馈 */
@media (pointer:coarse){
  .primary,.secondary,.nav-item,.filter-tab,.account-methods button,.modal-foot button,.writer-actions button{min-height:44px}
  .nav-item{display:flex;align-items:center}
  a,button,[data-action]{-webkit-tap-highlight-color:rgba(45,89,68,.12)}
}

/* 第110批（路线清单 10）：报障前的自查清单 + 工单编号 */
.feedback-selfcheck{margin:0 0 14px;padding:12px 14px;border:1px solid var(--gold);border-radius:10px;background:var(--gold-soft,#fdf8ee)}
.feedback-selfcheck>summary{cursor:pointer;font-weight:600;color:var(--ink)}
.feedback-selfcheck ul{margin:10px 0 0;padding-left:18px;display:grid;gap:8px;font-size:.8125rem;line-height:1.7}
.feedback-selfcheck b{display:block;color:var(--ink)}
.feedback-selfcheck span{color:var(--muted)}
.feedback-ticket{margin:8px 0 0;font-size:.8125rem}

/* 第116批：站内信正文按原样换行（多行消息不再挤成一团；以前公告里的 ①②③ 也是被挤成一段的） */
.inbox-message-body{white-space:pre-wrap;word-break:break-word}

/* 第118批：没勾协议时把那一行滚进视野并闪一下（作者反馈：点「获取验证码」没反应、看不到要勾什么） */
.account-consent-nudge{border-radius:8px;background:#fdf4e6;outline:2px solid #e7cfa5;outline-offset:4px;animation:accountConsentNudge 1.4s ease-out 1}
@keyframes accountConsentNudge{0%{transform:translateY(-3px)}40%{transform:translateY(0)}70%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.account-consent-nudge{animation:none}}

/* 第121批：错误提示（红字）滚进视野后闪一下（作者反馈：点了没反应，应该跳到上面红字那里） */
.form-error-flash{border-radius:8px;outline:2px solid #d9a1a1;outline-offset:3px;animation:accountErrorFlash 1.6s ease-out 1}
@keyframes accountErrorFlash{0%{transform:translateY(3px)}40%{transform:translateY(0)}70%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.form-error-flash{animation:none}}
/* 第126批 · 11 通稿体检（原《回收体检》→ 第182批并入《整本体检》→ 第188批定名《通稿体检》）：发在「伏笔台账」顶部的一张卡，
   分两段 —— ① 台账体检（免 AI、秒出）② AI 通读体检（只提示，作者点「写回」才改台账）*/
.ledger-scan{flex-direction:column;align-items:stretch;gap:12px;border-left-color:var(--gold)}
.ledger-scan h2 svg{color:var(--gold)}
.ledger-scan h2 small{background:var(--gold)}
.clue-scan-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.clue-scan-body{display:flex;flex-direction:column;gap:10px;width:100%;max-width:100%}
.clue-scan-list{display:flex;flex-direction:column;gap:8px}
.clue-scan-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;background:var(--bg)}
.clue-scan-row.on{border-left-color:var(--green);background:var(--green-soft)}
.clue-scan-row>button{flex:none}
.clue-scan-rowacts{display:flex;flex-direction:column;gap:6px;flex:none}
.clue-scan-rowacts>button{width:auto}
.clue-scan-text{min-width:0}
.clue-scan-text small{display:block;margin-top:3px;color:var(--muted);font-size:.8125rem}
.clue-scan-quote,.clue-scan-why{margin:6px 0 0;font-size:.8125rem;line-height:1.7;color:var(--text)}
.clue-scan-quote{padding-left:8px;border-left:2px solid var(--gold);color:var(--muted)}
.clue-scan-miss{margin:4px 0 0;font-size:.8125rem;line-height:1.7;color:var(--muted)}
.clue-scan-grade{margin-left:8px;padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;vertical-align:middle}
.clue-scan-grade.solid{border-color:var(--green);color:var(--green);background:var(--green-soft)}
.clue-scan-grade.weak{border-color:var(--gold);color:var(--gold)}
.clue-scan-grade.forced{border-color:#d9534f;color:#d9534f}
.clue-scan-done{padding:6px 10px;border:1px solid var(--green);border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.8125rem;font-weight:600;white-space:nowrap;text-align:center}
.clue-scan-done.off{border-color:var(--line);background:var(--bg);color:var(--muted);font-weight:500}
.badge.candidate{border-color:var(--gold);color:var(--gold)}
.badge.reinforced{border-color:var(--gold);color:var(--gold)}
.badge.weak_payoff{border-color:var(--gold);color:var(--gold)}
.badge.false_positive{border-color:var(--line);color:var(--muted)}
.badge.intentional_open{border-color:var(--line);color:var(--muted)}
.clue-scan-three{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.clue-scan-three li{display:flex;gap:6px;align-items:baseline;font-size:.8125rem;line-height:1.6;color:var(--text)}
.clue-scan-three li>b{flex:none;min-width:34px;color:var(--muted);font-weight:600}
.clue-scan-three li.ok>b{color:var(--green)}
.clue-scan-three li.miss>b{color:var(--gold)}
.clue-scan-three li.miss i{color:var(--gold);font-style:normal}
.clue-scan-three li em{margin-left:4px;color:var(--muted);font-style:normal;font-size:.75rem}
.clue-scan-extra{margin:6px 0 0;font-size:.75rem;line-height:1.6;color:var(--muted)}
.clue-scan-weakbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.clue-scan-weakbar>button{width:auto;flex:none}
.clue-scan-weakbar>span{flex:1 1 200px;min-width:0}
.clue-scan-confirm{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:8px;line-height:1.7}
.clue-scan-confirm small{display:block;margin-top:2px;color:var(--muted)}
@media(max-width:760px){.ledger-scan{padding:16px}.clue-scan-row{flex-direction:column;align-items:stretch}.clue-scan-row>button{width:100%}.clue-scan-rowacts{flex-direction:row;flex-wrap:wrap;width:100%}.clue-scan-rowacts>button{flex:1 1 30%;min-width:0;min-height:44px}.clue-scan-actions button{flex:1 1 auto}}
/* 第182批 · 《通稿体检》的两段式：① 台账体检（免 AI、秒出）② AI 通读体检（回收核对 + 7 个维度）——
   两段各有自己的小标题；第一段用「数字小方块 + 待办 3 条」把它跟第二段区分开。 */
.clue-scan-head{display:flex;flex-direction:column;gap:10px;width:100%;max-width:100%}
.clue-scan-seg{display:flex;flex-direction:column;gap:10px}
.clue-scan-seg-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px dashed var(--line)}
.clue-scan-seg-head:first-child{padding-top:0;border-top:0}
.clue-scan-seg-head h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0;font-size:1rem;color:var(--text)}
.clue-scan-seg-head h3 small{padding:2px 8px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.75rem;font-weight:600}
/* 第217批（作者 2026-10-09「按默认」）：通稿体检两段各自能收起来 —— 倒三角 + 收起后留一行摘要（跟卡片同一个 ▾ 长相） */
.clue-scan-seg>summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px dashed var(--line);cursor:pointer;list-style:none}
.clue-scan-seg>summary::-webkit-details-marker{display:none}
.clue-scan-seg:first-child>summary{padding-top:0;border-top:0}
.clue-scan-seg>summary>h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0;font-size:1rem;color:var(--text)}
.clue-scan-seg>summary>h3 small{padding:2px 8px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.75rem;font-weight:600}
.clue-scan-seg>summary:hover>h3{color:var(--green)}
.clue-scan-seg-digest{margin-left:auto;font-size:.8125rem}
.clue-scan-seg-body{display:flex;flex-direction:column;gap:10px;width:100%;max-width:100%}
.clue-scan-seg>summary .fold-caret{transform:rotate(-90deg)}
.clue-scan-seg[open]>summary .fold-caret{transform:none}
/* 卡片自己那条 .ledger-fold[open] .fold-caret 会把里面这两个也一起转开 → 用更高权重按"每一段自己"的状态转 */
.ledger-scan details.clue-scan-seg:not([open])>summary .fold-caret{transform:rotate(-90deg)}
.ledger-scan details.clue-scan-seg[open]>summary .fold-caret{transform:none}
.audit-chips{display:flex;flex-wrap:wrap;gap:8px}
.audit-chip{display:flex;flex-direction:column;gap:2px;flex:1 1 116px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.audit-chip strong{font-size:1.0625rem;color:var(--text)}
.audit-chip span{font-size:.8125rem;color:var(--muted)}
.audit-chip small{font-size:.75rem;color:var(--muted);line-height:1.5}
.audit-todos{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px;font-size:.8125rem;line-height:1.7;color:var(--text)}.audit-marks{display:inline-flex;align-items:center;gap:6px;margin-left:8px;vertical-align:middle}
.audit-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;padding:8px 12px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;background:var(--bg)}
.audit-total strong{font-size:1.375rem;color:var(--gold)}
.audit-total span{font-size:.8125rem;color:var(--muted)}
/* 第184批（作者 2026-10-05：「卡片排列 4/3，卡片里的字就不用这么挤了」）：
   7 张卡固定排成 4 + 3（桌面 4 列；窄屏依次 3 / 2 / 1 列），不再用 auto-fit 挤成 5~6 列。 */
.audit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.audit-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.audit-row-head{display:flex;align-items:baseline;gap:8px}
.audit-row-head b{flex:1 1 auto;min-width:0;font-size:.9375rem;color:var(--text)}
.audit-row-head .audit-score{flex:none;font-weight:600;color:var(--text)}
.audit-row-head .audit-count{flex:none;font-size:.75rem;color:var(--muted)}
.audit-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.audit-bar i{display:block;height:100%;border-radius:999px;background:var(--green)}
/* 第186批（作者：「都 100 分了咋还黄不等的呢」）：颜色只跟**分数**走，不跟维度走 ——
   ≥90 绿、60–89 黄、<60 红（进度条 + 分数数字一起变）。 */
.audit-row.warn .audit-bar i{background:var(--gold)}
.audit-row.bad .audit-bar i{background:#d9534f}
.audit-row .audit-score{color:var(--green)}
.audit-row.warn .audit-score{color:var(--gold)}
.audit-row.bad .audit-score{color:#d9534f}
.audit-hint{font-size:.75rem;line-height:1.6;color:var(--muted)}
/* 第183批（作者 2026-10-05「点击条目直达」）：条目里的章号是"文字链接"，不是按钮 ——
   必须用 .ledger-scan .audit-link 两段选择器，否则会被上面 .ledger-scan button 的按钮样式（内边距 / 边框 / nowrap）吃掉。 */
.ledger-scan .audit-link{display:inline;width:auto;padding:0 2px;border:0;border-radius:4px;background:none;color:var(--green);font:inherit;font-weight:600;white-space:normal;text-align:left;text-decoration:underline;text-underline-offset:3px}
.ledger-scan .audit-link:hover{background:var(--green-soft);color:var(--ink)}
/* 整行都是按钮（点条目任何位置都跳章）；章号那一小段仍是绿色下划线 */
.ledger-scan .audit-link-row{display:block;width:100%;padding:3px 4px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-weight:400;white-space:normal;text-align:left;cursor:pointer}
.ledger-scan .audit-link-row:hover{background:var(--green-soft)}
.ledger-scan .audit-link-row .audit-link{padding:0;border:0;background:none;color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.audit-items li{display:block}
.audit-items{margin:2px 0 0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px;font-size:.8125rem;line-height:1.65;color:var(--text)}
.audit-items b{color:var(--muted);font-weight:600}
/* 第212批（作者 2026-10-09「按默认」）：AI 通读的条目 —— ① 原文引用单独一行；② 每条后面能判「我要改 / 不用改」。
   ⚠️ 判定那两颗小按钮必须用 `.ledger-scan .audit-item .hk-mark` 三段选择器，否则会被下面 `.ledger-scan button`
   那套药丸按钮样式（内边距 9px 14px / white-space:nowrap）吃掉（第183 / 189 / 203 批踩过同一个坑）。 */
.audit-items li.audit-item{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px 8px}
.audit-item>button.audit-link-row,.audit-item>div.audit-link-row-frame{flex:1 1 200px;min-width:200px}
.audit-item>div.audit-link-row-frame{padding:3px 4px;color:var(--text)}
.audit-quote{display:block;margin-top:2px;color:var(--muted);font-size:.75rem;line-height:1.5}
.audit-item .audit-marks{margin-left:0;flex:0 1 auto;flex-wrap:wrap;max-width:100%}
.ledger-scan .audit-item .hk-mark{display:inline-flex;align-items:center;min-height:28px;padding:2px 9px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font:inherit;font-size:.75rem;white-space:nowrap;cursor:pointer}
.ledger-scan .audit-item .hk-mark:hover{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.ledger-scan .audit-item .hk-mark[aria-pressed=true]{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:600}
.audit-item .hk-badge{flex:0 0 auto;font-size:.7rem}
@media(max-width:760px){.audit-items li.audit-item{flex-direction:column;gap:4px}.audit-item .audit-marks{flex-wrap:wrap}.ledger-scan .audit-item .hk-mark{min-height:32px}}
@media(max-width:1180px){.audit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.audit-grid{grid-template-columns:1fr}.audit-chip{flex:1 1 100%}}
/* 第126批b（作者截图：一行字被压成"一字一行"、主色按钮白字看不见）：
   通稿体检卡里的按钮**不能**继承 .home-due button 的「整行按钮」样式（width:100% / border-bottom / 背景透明）*/
.ledger-scan button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);text-align:center;font:inherit;white-space:nowrap}
.ledger-scan button:hover{background:var(--green-soft)}
.ledger-scan button.primary{background:var(--green);border-color:var(--green);color:#fff}
.ledger-scan button.primary:hover{opacity:.9}
.ledger-scan button:disabled{background:var(--paper);border-color:var(--line);color:var(--muted);cursor:default}
.ledger-scan button.primary:disabled{background:var(--green-soft);border-color:var(--line);color:var(--muted)}
.ledger-scan .clue-scan-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ledger-scan .clue-scan-row>button{width:auto;flex:none}
.ledger-scan .clue-scan-scopes{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.ledger-scan .clue-scan-scopes button{width:auto}
.ledger-scan .clue-scan-scopes button.active{background:var(--green-soft);border-color:var(--green);color:var(--green);font-weight:600}

/* 第126批i：跑 AI 通读体检时的进度条（条纹流动 + 每秒都在动，免得看着像卡住）*/
.ledger-scan .clue-scan-progressbar{position:relative;height:8px;margin:10px 0 0;border-radius:6px;background:var(--line);overflow:hidden}
.ledger-scan .clue-scan-progressbar>i{display:block;height:100%;width:0;border-radius:6px;background:var(--green);transition:width .4s ease}
.ledger-scan .clue-scan-progressbar.running>i{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 6px,transparent 6px 12px);background-size:24px 24px;animation:clueScanStripes 1s linear infinite}
@keyframes clueScanStripes{from{background-position:0 0}to{background-position:24px 0}}
@media(prefers-reduced-motion:reduce){.ledger-scan .clue-scan-progressbar.running>i{animation:none}}
.clue-scan-short{color:var(--gold)}
.ledger-scan .clue-scan-mode{margin:8px 0;padding:9px 12px;border:1px dashed var(--line);border-radius:8px;background:var(--bg);font-size:.8125rem;line-height:1.7;color:var(--muted)}

/* 第126批p：作品完结（作品行上的「标记完结」按钮 + 「已完结」徽章；手机上也不挤） */
.home-book-actions .book-finish-button{white-space:nowrap}
.home-book-actions .book-finish-button.is-finished{color:#4d6b57;border-color:#cfded3;background:#eff4f0}
h3 .book-finished-tag{margin-left:6px;padding:1px 7px;border:1px solid #cfded3;border-radius:999px;background:#eff4f0;color:#4d6b57;font-size:11px;font-weight:500;vertical-align:middle}
.home-book-finished{color:#7e877f;font-size:12px}
.home-account-line{margin:4px 0 0;color:var(--muted,#8a938a);font-size:12.5px}
.home-account-line strong{color:var(--text,#3e4942)}
.clue-scan-finished{margin-top:6px}
@media (max-width:640px){.home-book-actions .book-finish-button{width:100%}}

/* ===== 第127批（作者「按默认」· 手机端布局打磨）=====
   ① 台账一行一卡（桌面端仍是表格）② 首页作品行按钮两级 ③ 通稿体检卡按钮整行
   ④ 手机上把过小的说明字抬到 12px ⑤ 触摸设备：44px 热区 + 轻触反馈。全都不改桌面端。 */
@media (max-width:680px){
 .ledger-cards{overflow:visible}
 .ledger-cards table{display:block;max-width:none;overflow:visible}
 .ledger-cards thead{display:none}
 .ledger-cards tbody{display:block}
 .ledger-cards tr{display:block;border:1px solid var(--line,#e5e9e1);border-radius:10px;background:var(--paper,#fff);padding:10px 12px;margin:0 0 10px}
 .ledger-cards tr.selected{border-color:var(--green,#2d5944)}
 .ledger-cards td{display:flex;gap:8px;align-items:baseline;border:0;padding:2px 0;white-space:normal;height:auto}
 .ledger-cards td::before{flex:0 0 58px;color:var(--muted,#8a938a);font-size:12px}
 .ledger-cards td:nth-child(1){padding-bottom:4px;display:block}
 .ledger-cards td:nth-child(1)::before{content:"";display:none}
 .ledger-cards td:nth-child(1) .clue-title strong{font-size:15px;line-height:1.4}
 .ledger-cards td:nth-child(2)::before{content:'埋设'}
 .ledger-cards td:nth-child(3)::before{content:'计划回收'}
 .ledger-cards td:nth-child(4)::before{content:'状态'}
 .ledger-cards td:nth-child(5)::before{content:'人物'}
 .ledger-cards td:nth-child(6)::before{content:'操作'}
 .ledger-cards td:nth-child(6){margin-top:6px;align-items:center}
 .home-book-actions{flex-direction:column;align-items:stretch;margin-left:0}
 .home-book-actions .secondary,.home-book-actions .book-finish-button{width:100%;min-height:44px}
 .ledger-scan .clue-scan-scopes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .ledger-scan .clue-scan-scopes button{width:100%;min-width:0;font-size:12px;padding:8px 6px;white-space:normal;line-height:1.3}
 .ledger-scan .clue-scan-actions{display:grid;gap:8px}
 .ledger-scan .clue-scan-actions button{width:100%;min-height:44px}
 .writing-directory[data-layout="list"] .writing-chapter>span small,
 .writing-directory[data-layout="list"] .writing-chapter em,
 .writing-directory[data-layout="list"] .writing-chapter-delete,
 .chapter-volume-toggle,.extraction-destination,.character-library-heading,
 .ledger-group-toolbar,.home-book-finished{font-size:12px}
}
@media (pointer:coarse){
 button{-webkit-tap-highlight-color:transparent}
 button:active{filter:brightness(.96)}
 .writing-text-button,.ledger-scan .clue-scan-scopes button,.ledger-scan .clue-scan-actions button,.ledger-group-toolbar button,.home-book-actions button{min-height:44px}
}

/* ===== 第128批（手机端清单第 ⑩ 项）：弹窗底部按钮吸底 =====
   .modal 本身是滚动容器（overflow-y:auto + max-height），所以底部按钮用 sticky 就能一直吸在屏幕下沿：
   长表单（新建伏笔 / 作品设置 / 导入 / 皮肤…）不用滑到底才能按保存。标题栏也吸顶，滚的时候知道在改什么。
   sticky 元素仍占布局空间，不会盖住最后一行内容；底部额外留 iPhone 安全区。只在手机上生效。 */
@media (max-width:680px){
 .modal .modal-foot{position:sticky;bottom:0;z-index:3;background:var(--paper,#fff);box-shadow:0 -8px 18px rgba(20,46,35,.08);padding-bottom:calc(13px + env(safe-area-inset-bottom))}
 .modal .modal-head{position:sticky;top:0;z-index:4;background:var(--paper,#fff);box-shadow:0 6px 14px rgba(20,46,35,.06)}
 .modal .modal-body{padding-bottom:20px}
}

/* 第159批（作者 2026-10-03）：「《修复方案》和《回收体检》（第182批起并入这张大卡；第188批按作者口径定名《通稿体检》）增设倒三角，提供收缩功能」
   这两张大卡现在是 <details>：标题那一行可以点，右边一个倒三角；收起后只留标题行（数字还看得见）。
   收起 / 展开的选择记在浏览器本地，下次进来自动还是你上次的样子。 */
.ledger-fold>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.ledger-fold>summary::-webkit-details-marker{display:none}
.ledger-fold>summary>h2{margin:0}
.ledger-fold>summary:hover>h2{color:var(--green)}
.ledger-fold .fold-caret{flex:0 0 auto;display:inline-block;line-height:1;font-size:1rem;color:var(--green);transform:rotate(-90deg);transition:transform .15s ease}
.ledger-fold[open] .fold-caret{transform:none}
@media(prefers-reduced-motion:reduce){.ledger-fold .fold-caret{transition:none}}

/* 第166批（作者 2026-10-03：「《该回收了》《又被提到过》《回收体检》《修复方案》这四张卡片增设倒三角，默认一直关闭状态」）
   两张新卡也做成 <details>：标题行在上、内容仍保持原来的两栏（左说明 / 右条目）。
   通稿体检、修复方案两张卡展开后的内容也不再被 640px 卡住（跟另外两张一样铺满）。 */
.ledger-fold.ledger-due,.ledger-fold.ledger-reinforce,.ledger-fold.ledger-hint-blank{display:flex;flex-direction:column;align-items:stretch;gap:14px}
/* 第167批（他截图：条目被挤成"一字一行"）—— 说明那一栏原来是 flex-basis:auto，
   它按"整段不换行的最大宽度"撑住容器，把右边那栏压到几乎为零。
   修法：说明栏 flex:1 1 0（只吃剩下多少），条目栏固定 640px。 */
.ledger-fold>div.ledger-fold-body{max-width:none;width:100%}
.ledger-fold-body{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.ledger-fold-body>div:first-child{flex:1 1 0;min-width:0}
.ledger-fold-body>div:last-child{flex:0 0 auto;width:640px;max-width:100%}
.ledger-scan>div.clue-scan-head{max-width:none}
@media(max-width:760px){.ledger-fold-body{flex-direction:column}.ledger-fold-body>div:first-child,.ledger-fold-body>div:last-child{flex:1 1 auto;width:100%;max-width:none}}
/* 第168批（作者 2026-10-03：「这些按钮点击后下方不显示任何东西」）：筛选结果行 —— 页签挪到列表正上方后，点一下就在下面看到生效。 */
.ledger-filter-result{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 10px;font-size:.875rem;color:var(--muted)}
.ledger-filter-result b{color:var(--ink)}
.ledger-filter-result .muted{font-size:.8125rem}
/* 第169批（作者：「默认，倒三角和其他卡片一样」）：留白（不催）也做成可收起的一块，那一列名字改成可点的按钮。 */
.ledger-hint-blank>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.ledger-hint-blank>summary::-webkit-details-marker{display:none}
.ledger-hint-blank>summary>h2{margin:0}
/* 第170批（作者截图：留白那块跟其他卡片长得不一样）—— 统一成同一套卡片外观 + 中性灰（不催，不该是警示红）。 */
.ledger-hint-blank{border-left-color:var(--muted)}
.ledger-hint-blank h2 svg{color:var(--muted)}
.ledger-hint-blank h2 small{background:var(--muted)}

/* 第187批（作者 2026-10-06「做第4条」· 编辑视角锐评第 1 条）：《追读断点》——
   把「章末钩子 + 章节节奏」的纯规则结论按章排成一张表（免费、秒出、不调 AI）。
   每一行都是"整行按钮"：点哪里都跳到那一章；高风险红左边框、一般黄、在线绿。 */
.hook-strip{border-left-color:var(--gold)}
.hook-strip h2 svg{color:var(--gold)}
.hook-strip h2 small{background:var(--gold)}
.hk-body{display:flex;flex-direction:column;gap:10px;width:100%;max-width:100%}
.hk-list{display:flex;flex-direction:column;gap:8px}
.hook-strip .hk-row{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-weight:400;text-align:left;white-space:normal;cursor:pointer}
.hook-strip .hk-row:hover{background:var(--green-soft)}
.hook-strip .hk-row.risk{border-left-color:#d9534f}
.hk-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.hk-head>b{font-weight:600}
.hk-score{font-style:normal;font-weight:600}
.hk-score.weak{color:#d9534f}
.hk-score.ok{color:var(--gold)}
.hk-score.strong{color:var(--green)}
.hk-badge{padding:1px 6px;border:1px solid var(--gold);border-radius:999px;color:var(--gold);font-size:.75rem;font-style:normal}
.hk-name{min-width:0}
/* 第188批（作者：「排版不一样，倒三角位置不同，要统一格式」）：《追读断点》这张卡补上 .ledger-scan，
   跟《通稿体检》《修复方案》同一套卡片外观 —— 倒三角回到最右边、整卡铺满、按钮是药丸形。
   下面两条是"把 .home-due 那套挤压规则顶回去"：正文里的 span 别被 nowrap 顶出去（章名会长），
   内容块别被 .home-due>div:last-child 的 max-width:640px 卡窄。 */
.hook-strip .hk-row span{white-space:normal}
.ledger-scan>div.hk-body{max-width:none}
.hk-chars{margin-left:auto;color:var(--muted);font-size:.75rem}
.hk-note{color:var(--muted);font-size:.8125rem;line-height:1.6}
@media(max-width:760px){.hk-chars{margin-left:0}}

/* 第189批（作者 2026-10-06：「上面四个卡片还无法点」/「章序排列太乱」）：
   ① 《追读断点》卡片上那四个小方块现在是**按钮**（点一下筛：要收 / 够用 / 在线 / 全部），
      两段选择器是为了压过 `.ledger-scan button` 的药丸按钮样式；
   ② 顶部四张统计卡点击后的反馈：滚到列表 + 结果行描一圈金边。 */
.hook-strip .audit-chip{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;flex:1 1 116px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-weight:400;text-align:left;white-space:normal;cursor:pointer}
.hook-strip .audit-chip:hover{border-color:var(--gold);background:var(--gold-bg)}
.hook-strip .audit-chip.active{border-color:var(--gold);background:var(--gold-bg);box-shadow:inset 0 0 0 1px var(--gold)}
.hook-strip .audit-chip strong{font-size:1.0625rem;font-weight:600;color:var(--text)}
.hook-strip .audit-chip span{font-size:.8125rem;color:var(--muted);white-space:normal}
.hook-strip .audit-chip small{font-size:.75rem;color:var(--muted);line-height:1.5;white-space:normal}
.ledger-filter-flash{box-shadow:0 0 0 2px var(--gold);border-radius:8px}

/* 第200批（作者 2026-10-08「按默认」）：《作者判定》—— 追读断点每行的「我要改 / 不提醒」+ 台账体检那条「人没建档」的下拉 */
.hk-item{display:flex;align-items:stretch;gap:8px}
.hk-item .hk-row{flex:1;min-width:0}
.hk-marks{display:flex;flex-direction:column;gap:4px;justify-content:center}
.hk-mark{min-height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font:inherit;font-size:.8125rem;cursor:pointer;white-space:nowrap}
.hk-mark:hover{border-color:var(--green);color:var(--green)}
.hk-mark[aria-pressed=true]{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:600}
.author-mark{display:inline-block;margin-left:8px;min-height:32px;padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--text);font:inherit;font-size:.8125rem;vertical-align:middle}
.author-mark:hover{border-color:var(--green)}
@media(max-width:760px){.hk-item{flex-direction:column}.hk-marks{flex-direction:row;flex-wrap:wrap}}

/* 第201/203批（作者 2026-10-08）：被「不提醒」收走的章 —— 卡片按原样（标准卡 + 倒三角），卡里只剩这一行细字；卡片底部也有它 */
.hook-muted-note{margin:2px 0 0;color:var(--muted);font-size:.8125rem}
.hook-muted-note button{border:0;background:none;padding:0;color:var(--green);font:inherit;font-size:.8125rem;text-decoration:underline;cursor:pointer}
@media(max-width:760px){.hook-muted-note{font-size:.8125rem}}
