:root{--paper: #faf8f3;--paper-raised: #fffdf8;--ink: #1a1917;--ink-soft: #57534c;--ink-faint: #8c877d;--rule: #d8d4cb;--rule-soft: #e8e4db;--seal: #9c2b22;--seal-wash: rgba(156, 43, 34, .08);--serif: "Noto Serif SC", "Source Han Serif SC", "STSong", "SimSun", serif;--sans: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--mono: "Cascadia Mono", "Consolas", "SF Mono", monospace;--h-top: 52px;--h-bottom: 32px;--w-toc: 232px;--w-leaf: 380px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow:hidden}button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;border-radius:0;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}button{cursor:pointer;text-align:left}textarea{resize:none;overflow:auto;display:block;width:100%}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}::selection{background:var(--seal-wash);color:var(--ink)}:focus-visible{outline:2px solid var(--seal);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rule);border:3px solid var(--paper)}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.shell{display:grid;grid-template-rows:var(--h-top) 1fr var(--h-bottom);height:100%}.body-row{display:grid;grid-template-columns:var(--w-toc) 1fr 0px;overflow:hidden;transition:grid-template-columns .32s cubic-bezier(.19,1,.22,1);min-height:0}.body-row.leaf-open{grid-template-columns:var(--w-toc) 1fr var(--w-leaf)}.top-bar{display:flex;align-items:center;gap:14px;padding:0 152px 0 20px;border-bottom:1px solid var(--rule);background:var(--paper);-webkit-app-region:drag}.top-bar button,.top-bar nav,.top-bar .tab-row{-webkit-app-region:no-drag}.book-title{font-family:var(--serif);font-size:15px;font-weight:600;letter-spacing:.02em;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0;padding:2px 0}.top-spacer{flex:1}.view-switch{display:flex;border:1px solid var(--rule);flex-shrink:0}.view-switch button{font-size:12px;padding:5px 13px;color:var(--ink-soft);letter-spacing:.05em;white-space:nowrap}.view-switch button+button{border-left:1px solid var(--rule)}.view-switch button:hover{color:var(--ink);background:var(--seal-wash)}.view-switch button.on{background:var(--ink);color:var(--paper)}.icon-btn{width:30px;height:28px;border:1px solid var(--rule);display:grid;place-items:center;flex-shrink:0;color:var(--ink-soft)}.icon-btn:hover{border-color:var(--ink-soft);color:var(--ink)}.icon-btn.on{background:var(--seal-wash);border-color:var(--seal);color:var(--seal)}.icon-btn .fold{width:12px;height:9px;border:1.5px solid currentColor;border-bottom:none;position:relative}.icon-btn .fold:after{content:"";position:absolute;left:50%;bottom:-1px;width:1px;height:6px;background:currentColor;transform:translate(-50%)}.icon-btn .gear{width:13px;height:13px;border:1.5px solid currentColor;border-radius:50%;position:relative}.icon-btn .gear:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1.5px solid currentColor;border-radius:50%}.toc{border-right:1px solid var(--rule);overflow-y:auto;padding:10px 0 24px;background:var(--paper)}.toc-head{font-size:10px;letter-spacing:.16em;color:var(--ink-faint);padding:12px 16px 6px;display:flex;align-items:center;justify-content:space-between}.toc-head button{font-size:10px;color:var(--ink-faint);letter-spacing:.08em;padding:2px 4px}.toc-head button:hover{color:var(--seal)}.toc-ch{display:grid;grid-template-columns:26px 1fr auto;align-items:baseline;gap:8px;padding:7px 14px 7px 12px;width:100%;color:var(--ink-soft);position:relative}.toc-ch:hover{background:var(--seal-wash)}.toc-ch.current{color:var(--ink);background:var(--seal-wash)}.toc-ch.current:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--seal)}.toc-num{font-family:var(--mono);font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.toc-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-wc{font-family:var(--mono);font-size:10px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.toc-empty{font-size:12px;color:var(--ink-faint);padding:8px 16px;line-height:1.8}.side-item{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;padding:7px 14px;font-family:var(--serif);font-size:13px;color:var(--ink-soft);position:relative;text-align:left}.side-item:hover{background:var(--seal-wash);color:var(--ink)}.side-item.on{color:var(--ink);background:var(--seal-wash)}.side-item.on:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--seal)}.side-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-badge{font-family:var(--mono);font-size:10px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.editor-wrap{overflow-y:auto;display:flex;justify-content:center;padding:48px 40px 120px;min-width:0}.editor-measure{width:100%;max-width:578px}.chapter-title-input{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.02em;padding:0 0 10px;margin-bottom:24px;border-bottom:1px solid transparent;width:100%;caret-color:var(--seal)}.chapter-title-input:hover{border-bottom-color:var(--rule-soft)}.chapter-title-input:focus{border-bottom-color:var(--seal)}.chapter-title-input::placeholder{color:var(--ink-faint)}.manuscript{font-family:var(--serif);font-size:17px;line-height:1.9;letter-spacing:.01em;color:var(--ink);min-height:55vh;caret-color:var(--seal);overflow:hidden}.manuscript::placeholder{color:var(--ink-faint)}.docs-view{overflow-y:auto;padding:36px 44px 120px;min-width:0}.docs-measure{max-width:62em}.sub-tabs{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:28px}.sub-tabs button{font-size:12px;padding:8px 16px;color:var(--ink-faint);letter-spacing:.04em;border-bottom:2px solid transparent;margin-bottom:-1px}.sub-tabs button:hover{color:var(--ink)}.sub-tabs button.on{color:var(--ink);border-bottom-color:var(--seal)}.section-head{font-size:10px;letter-spacing:.16em;color:var(--ink-faint);padding-bottom:6px;border-bottom:1px solid var(--rule);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.section-head .head-actions{display:flex;gap:8px;letter-spacing:0}.block{margin-bottom:34px}.field{font-family:var(--serif);font-size:15px;line-height:1.85;color:var(--ink);border:1px solid var(--rule-soft);background:var(--paper-raised);padding:10px 12px;width:100%;caret-color:var(--seal);min-height:84px}.field:hover{border-color:var(--rule)}.field:focus{border-color:var(--seal)}.field::placeholder{color:var(--ink-faint)}.field.tall{min-height:160px}.field.single{min-height:0;height:38px;font-family:var(--sans);font-size:13px}.btn-seal{font-size:12px;padding:6px 14px;background:var(--seal);color:#fffdf8;border:1px solid var(--seal);white-space:nowrap}.btn-seal:hover{background:#85231b}.btn-seal:disabled{opacity:.42;cursor:not-allowed}.btn-quiet{font-size:12px;padding:6px 14px;color:var(--ink-soft);border:1px solid var(--rule);background:var(--paper);white-space:nowrap}.btn-quiet:hover{border-color:var(--ink-soft);color:var(--ink)}.btn-quiet:disabled{opacity:.42;cursor:not-allowed}.btn-text{font-size:11px;color:var(--ink-faint);padding:2px 4px;white-space:nowrap}.btn-text:hover{color:var(--seal)}.btn-text.danger:hover{color:#a01d0f}.char-grid{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:start}.char-list{border-right:1px solid var(--rule-soft);padding-right:16px}.char-list-item{display:block;width:100%;padding:8px 10px;font-size:13px;color:var(--ink-soft);border-left:2px solid transparent}.char-list-item:hover{background:var(--seal-wash);color:var(--ink)}.char-list-item.on{border-left-color:var(--seal);background:var(--seal-wash);color:var(--ink)}.char-list-item .sub{display:block;font-size:11px;color:var(--ink-faint);margin-top:2px}.char-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.char-fields .full{grid-column:1 / -1}.label{font-size:10px;letter-spacing:.1em;color:var(--ink-faint);display:block;margin-bottom:5px}.bible-item{border:1px solid var(--rule-soft);background:var(--paper-raised);padding:12px 14px;margin-bottom:10px}.bible-item-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.bible-cat{font-family:var(--mono);font-size:10px;color:var(--seal);border:1px solid var(--seal);padding:1px 6px;white-space:nowrap}.bible-title-input{flex:1;font-family:var(--serif);font-size:14px;font-weight:600;border-bottom:1px solid transparent;padding:2px 0;caret-color:var(--seal)}.bible-title-input:focus{border-bottom-color:var(--seal)}.bible-title-input::placeholder{color:var(--ink-faint);font-weight:400}.bible-body{font-family:var(--serif);font-size:14px;line-height:1.85;border:none;background:none;padding:0;min-height:60px;caret-color:var(--seal)}.bible-body::placeholder{color:var(--ink-faint)}.memory-add{display:flex;gap:8px;margin-bottom:20px}.memory-add .input-line{flex:1}.memory-list{list-style:none;margin:0;padding:0}.memory-item{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--rule-soft)}.memory-kind{font-size:10px;color:var(--ink-soft);border:1px solid var(--rule);padding:3px 16px 3px 5px;background:var(--paper);flex-shrink:0;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-faint) 50%),linear-gradient(135deg,var(--ink-faint) 50%,transparent 50%);background-position:calc(100% - 9px) calc(50% + 1px),calc(100% - 5px) calc(50% + 1px);background-size:4px 4px,4px 4px;background-repeat:no-repeat}.memory-text{flex:1;font-family:var(--serif);font-size:13px;color:var(--ink);min-width:0;padding:2px 0}.memory-text:focus{outline:1px solid var(--seal);outline-offset:3px}.thread-table{width:100%;border-collapse:collapse}.thread-table th{font-size:10px;letter-spacing:.12em;color:var(--ink-faint);text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--rule);font-weight:500}.thread-table td{font-size:13px;padding:8px 10px 8px 0;border-bottom:1px solid var(--rule-soft);vertical-align:middle}.thread-table input{font-size:13px;width:100%;padding:4px 0;border-bottom:1px solid transparent;caret-color:var(--seal)}.thread-table input:focus{border-bottom-color:var(--seal)}.thread-table input::placeholder{color:var(--ink-faint)}.thread-status-select{font-family:var(--mono);font-size:10px;border:1px solid var(--rule);padding:3px 18px 3px 6px;background:var(--paper);color:var(--ink-soft);background-image:linear-gradient(45deg,transparent 50%,var(--ink-faint) 50%),linear-gradient(135deg,var(--ink-faint) 50%,transparent 50%);background-position:calc(100% - 9px) calc(50% + 1px),calc(100% - 5px) calc(50% + 1px);background-size:4px 4px,4px 4px;background-repeat:no-repeat}.thread-status-select:focus{border-color:var(--seal)}.num-input{font-family:var(--mono);font-variant-numeric:tabular-nums;width:46px;text-align:center;border:1px solid var(--rule-soft);padding:3px 4px;font-size:12px}.num-input:focus{border-color:var(--seal)}.dormant{font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-faint)}.dormant.overdue{color:var(--seal);font-weight:600}.leaf{border-left:1px solid var(--rule);background:var(--paper-raised);display:flex;flex-direction:column;overflow:hidden;min-width:0}.leaf-head{display:flex;align-items:center;gap:6px;padding:0 12px;height:40px;border-bottom:1px solid var(--rule);flex-shrink:0;overflow-x:auto}.leaf-title{font-size:10px;letter-spacing:.14em;color:var(--ink-faint);flex-shrink:0}.leaf-sub{font-family:var(--serif);font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.leaf-clear{font-size:10px;color:var(--ink-faint);padding:3px 6px;flex-shrink:0}.leaf-clear:hover{color:var(--seal)}.leaf-empty{padding:8px 2px}.leaf-empty p{font-family:var(--serif);font-size:14px;color:var(--ink-soft);line-height:1.9}.leaf-empty p.dim{margin-top:10px;font-size:12.5px;color:var(--ink-faint)}.leaf-body{flex:1;overflow-y:auto;padding:18px 14px;display:flex;flex-direction:column;gap:16px}.msg-text{font-family:var(--serif);font-size:14px;line-height:1.85;white-space:pre-wrap;word-break:break-word;padding:9px 11px}.msg.user{align-items:flex-end}.msg.user .msg-text{color:var(--ink);background:var(--seal-wash);border-right:2px solid var(--seal);max-width:92%}.msg.assistant{align-items:flex-start}.msg.assistant .msg-text{color:var(--ink);background:var(--paper-raised);border:1px solid var(--rule-soft);max-width:96%}.msg{display:flex;flex-direction:column}.caret{display:inline-block;width:2px;height:1em;background:var(--seal);vertical-align:text-bottom;margin-left:2px;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.msg-dots{color:var(--ink-faint);letter-spacing:.2em}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.msg-actions{display:flex;gap:10px;margin-top:4px;opacity:0;transition:opacity .12s}.msg:hover .msg-actions,.msg-actions:focus-within{opacity:1}.msg.user .msg-actions{justify-content:flex-end}.msg-actions button{font-size:10px;letter-spacing:.08em;color:var(--ink-faint);padding:2px 0;border-bottom:1px solid transparent}.msg-actions button:hover{color:var(--seal);border-bottom-color:var(--seal)}.msg-edit{width:100%;font-family:var(--serif);font-size:14px;line-height:1.85;color:var(--ink);background:var(--paper);border:1px solid var(--seal);padding:9px 11px;resize:none;overflow:hidden;min-height:60px}.msg-edit-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;align-items:center}.msg-edit-warn{font-size:10px;color:var(--seal);margin-right:auto;letter-spacing:.04em}.msg-edit-actions .btn-text{font-size:11px;color:var(--ink-faint)}.msg-edit-actions .btn-seal{font-size:11px;padding:4px 12px}.msg-edit-actions .btn-seal:disabled{opacity:.42}.msg.assistant .msg-actions{justify-content:flex-start}.memo-slip{display:flex;align-items:flex-start;gap:8px;margin-top:6px;padding:8px 10px;background:var(--paper);border-top:1px solid var(--seal);border-bottom:1px solid var(--rule-soft);text-align:left;max-width:96%;transition:background .12s}.memo-slip:hover{background:var(--seal-wash)}.memo-mark{font-family:var(--mono);font-size:9px;line-height:1.6;letter-spacing:.1em;color:var(--seal);border:1px solid var(--seal);padding:0 3px;flex-shrink:0}.memo-line{font-family:var(--serif);font-size:12.5px;line-height:1.7;color:var(--ink-soft);word-break:break-word}.memo-edit{display:flex;align-items:flex-start;gap:8px;margin-top:6px;padding:8px 10px;background:var(--paper);border-top:1px solid var(--seal);border-bottom:1px solid var(--rule-soft);max-width:96%;flex-wrap:wrap}.memo-edit .memo-mark{margin-top:3px}.memo-input{flex:1;min-width:0;font-family:var(--serif);font-size:12.5px;line-height:1.7;color:var(--ink);background:none;border:none;padding:2px 0;resize:none;overflow:hidden}.memo-actions{display:flex;gap:12px;justify-content:flex-end;width:100%;align-items:center;margin-top:4px}.memo-actions .btn-text{font-size:11px;color:var(--ink-faint)}.memo-actions .btn-seal{font-size:11px;padding:3px 10px}.memo-actions .btn-seal:disabled{opacity:.42}.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--paper)}.gate-box{width:100%;max-width:320px}.gate-title{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.12em;text-align:center;margin-bottom:34px;color:var(--ink)}.gate-input{font-family:var(--serif);font-size:15px;padding:9px 11px;letter-spacing:.1em}.gate-go{width:100%;margin-top:22px;padding:10px;font-size:14px}.gate-go:disabled{opacity:.42}.gate-err{font-size:12px;color:var(--seal);text-align:center;margin-top:12px}.gate-note{font-size:11.5px;line-height:1.7;color:var(--ink-faint);text-align:center;margin-top:22px}.gate-skip{display:block;width:100%;margin-top:26px;font-size:11.5px;color:var(--ink-faint);text-align:center;padding:6px 0}.gate-skip:hover{color:var(--seal)}.msg-error{font-size:12px;color:var(--seal);line-height:1.7;border:1px solid var(--seal);padding:8px 10px;background:var(--seal-wash)}.leaf-foot{border-top:1px solid var(--rule);padding:10px 12px;flex-shrink:0}.leaf-input{font-family:var(--serif);font-size:14px;line-height:1.7;padding:8px 10px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);min-height:64px;caret-color:var(--seal)}.leaf-input:focus{border-color:var(--seal)}.leaf-input::placeholder{color:var(--ink-faint)}.leaf-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px;gap:8px}.leaf-hint{font-size:10px;color:var(--ink-faint)}.status-bar{display:flex;align-items:center;gap:18px;padding:0 20px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums;background:var(--paper)}.status-spacer{flex:1}.status-item b{color:var(--ink-soft);font-weight:500}.status-warn{color:var(--seal)}.home{height:100%;display:grid;grid-template-rows:var(--h-top) 1fr;overflow:hidden}.home-row{display:grid;grid-template-columns:1fr;min-height:0;overflow:hidden}.home-row:has(.leaf){grid-template-columns:1fr 380px}.home-top{display:flex;align-items:center;padding:0 152px 0 24px;border-bottom:1px solid var(--rule);-webkit-app-region:drag}.home-top button{-webkit-app-region:no-drag}.home-brand{font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.06em}.home-body{overflow-y:auto;padding:44px 56px 100px}.home-measure{max-width:68em}.home-lede{font-family:var(--serif);font-size:15px;color:var(--ink-soft);line-height:1.9;margin-bottom:30px;max-width:30em}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft)}.shelf-card{background:var(--paper-raised);padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;min-height:150px;position:relative}.shelf-card:hover{background:var(--paper)}.shelf-card:hover .shelf-more{opacity:1}.shelf-open{display:flex;flex-direction:column;gap:6px;flex:1;width:100%}.shelf-title{font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.5}.shelf-meta{font-family:var(--mono);font-size:10px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.shelf-stage{font-size:11px;color:var(--seal);margin-top:auto}.shelf-more{position:absolute;top:10px;right:10px;opacity:0;font-size:12px;color:var(--ink-faint);padding:2px 6px}.shelf-more:hover{color:var(--seal)}.shelf-new{border:1px dashed var(--rule);background:transparent;min-height:150px;display:grid;place-items:center;font-size:13px;color:var(--ink-faint)}.shelf-new:hover{border-color:var(--seal);color:var(--seal)}.home-empty{font-family:var(--serif);font-size:15px;color:var(--ink-faint);line-height:2}.settings{height:100%;display:grid;grid-template-rows:var(--h-top) 1fr;overflow:hidden}.settings-body{overflow-y:auto;padding:36px 56px 100px}.settings-measure{max-width:58em}.route-card{border:1px solid var(--rule);background:var(--paper-raised);margin-bottom:12px}.route-card.active{border-color:var(--seal)}.route-head{display:flex;align-items:center;gap:10px;width:100%;padding:14px 18px;text-align:left;transition:background .12s}.route-head:hover{background:var(--seal-wash)}.route-fold{font-family:var(--mono);font-size:13px;color:var(--ink-faint);width:12px;flex-shrink:0;line-height:1}.route-card.open .route-fold{color:var(--seal)}.route-title{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.route-model{font-family:var(--mono);font-size:10.5px;color:var(--ink-faint);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.route-body{padding:14px 18px;border-top:1px solid var(--rule-soft)}.route-model-row{display:flex;gap:8px}.route-model-row .select-line{flex:1}.route-foot{display:flex;align-items:center;gap:16px;padding-top:12px;border-top:1px solid var(--rule-soft)}.route-foot .btn-text{font-size:11.5px;color:var(--ink-faint)}.route-foot .btn-text:hover,.route-foot .btn-text.danger:hover{color:var(--seal)}.setting-line{font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:12px}.route-badge{font-family:var(--mono);font-size:9px;letter-spacing:.1em;padding:2px 7px;border:1px solid var(--ink-faint);color:var(--ink-faint);white-space:nowrap}.route-badge.on{border-color:var(--seal);color:var(--seal);background:var(--seal-wash)}.route-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}.route-row .full{grid-column:1 / -1}.input-line{font-family:var(--mono);font-size:12px;border:1px solid var(--rule);background:var(--paper);padding:7px 10px;width:100%;caret-color:var(--seal)}.input-line:focus{border-color:var(--seal)}.input-line::placeholder{color:var(--ink-faint)}.select-line{font-family:var(--mono);font-size:12px;border:1px solid var(--rule);background:var(--paper);padding:7px 26px 7px 10px;width:100%;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 13px) calc(50% + 1px),calc(100% - 8px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.select-line:hover{border-color:var(--ink-soft)}.select-line:focus{border-color:var(--seal)}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status-line{font-size:11px;color:var(--ink-faint);line-height:1.7}.status-line.ok{color:var(--ink-soft)}.status-line.err{color:var(--seal)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a191747;display:grid;place-items:center;z-index:100}.dialog{background:var(--paper-raised);border:1px solid var(--rule);padding:24px 26px 20px;width:min(460px,calc(100vw - 48px))}.dialog h2{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:8px}.dialog-hint{font-size:12px;line-height:1.7;color:var(--ink-soft);margin-bottom:16px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.empty-note{font-family:var(--serif);color:var(--ink-faint);font-size:14px;line-height:1.9}.empty-note button{font:inherit;color:var(--seal);border-bottom:1px solid currentColor;padding:0 0 1px}@media(max-width:900px){.body-row,.body-row.leaf-open{grid-template-columns:1fr;grid-template-rows:auto 1fr;position:relative}.home-row,.home-row:has(.leaf){grid-template-columns:1fr;position:relative}.home-row>.leaf{position:absolute}.toc{display:flex;flex-wrap:wrap;align-items:center;gap:0 2px;padding:6px 10px;border-right:none;border-bottom:1px solid var(--rule);overflow:visible}.toc-head{padding:0 6px 0 0;width:auto}.toc-head button{padding:4px 6px}.side-item{width:auto;padding:5px 9px}.side-item.on:before{display:none}.toc-ch{width:auto;grid-template-columns:auto auto auto;padding:5px 9px}.toc-ch.current:before{display:none}.toc-ch.current{margin-left:0}.leaf{position:absolute;inset:0 0 0 auto;width:min(380px,100%);z-index:10;box-shadow:-1px 0 0 var(--rule)}.editor-wrap{padding:28px 20px 96px}.docs-view,.settings-body,.home-body{padding:24px 20px 96px}.char-grid{grid-template-columns:1fr}.char-list{border-right:none;border-bottom:1px solid var(--rule-soft);padding-right:0;padding-bottom:10px}.char-fields,.route-row{grid-template-columns:1fr}.home-top{padding:0 152px 0 16px}.top-bar{padding:0 10px;gap:8px;-webkit-app-region:no-drag}.book-title{max-width:78px;display:block}.view-switch button{padding:5px 9px}.status-bar{gap:10px;padding:0 10px;font-size:10px}.route-head{flex-wrap:wrap}.route-name{min-width:100%}}@media(prefers-reduced-motion:reduce){.body-row{transition:none}}
