:root{--bg:#f8f7f3;--text:#292b29;--muted:#797d76;--line:#e5e5dd;--accent:#457360;--soft:#eaf0e9;--panel:#fffefa;--size:20px;--leading:1.9;--bodyfont:Georgia,'Times New Roman',serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif;font-size:14px}body[data-theme=warm]{--bg:#f1e9da;--panel:#faf3e7;--line:#ded5c5;--soft:#e4e4d4}body[data-theme=dark]{--bg:#202522;--panel:#2a302c;--text:#e1e5dc;--muted:#a3ada3;--line:#3d453e;--accent:#a3c5ad;--soft:#303e34;color-scheme:dark}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.word:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:3px}a{color:var(--accent)}.topbar{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px;position:relative;z-index:2;background:var(--bg)}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--text);font-family:Georgia,serif;font-size:25px;letter-spacing:-.8px}.brand svg{width:32px;color:var(--accent)}.top-label{color:var(--muted);font-size:12px;letter-spacing:2px}.button{border:1px solid var(--line);border-radius:7px;min-height:43px;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:18px}.button:hover{background:var(--soft)}.button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.layout{display:grid;grid-template-columns:232px minmax(0,1fr);max-width:1500px;margin:auto}.sidebar{padding:42px 24px 30px 38px;position:sticky;top:0;height:calc(100vh - 85px);border-right:1px solid var(--line);display:flex;flex-direction:column}.side-kicker{font-size:11px;color:var(--muted);letter-spacing:2px;margin:0 0 18px 12px}.nav-item{display:flex;align-items:center;gap:13px;width:100%;padding:13px 12px;text-align:left;border-radius:6px;margin-bottom:4px}.nav-item.active{background:var(--soft);color:var(--accent)}.nav-item span{font-size:20px}.nav-item small{margin-left:auto;color:var(--muted)}.side-rule{height:1px;background:var(--line);margin:27px 12px}.toc-link{display:block;width:100%;text-align:left;padding:10px 12px;color:var(--muted);font-size:12px;line-height:1.5;border-left:2px solid transparent}.toc-link:hover,.toc-link.current{color:var(--accent);border-left-color:var(--accent)}.side-bottom{margin-top:auto;font-size:11px;line-height:2.5;color:var(--muted);padding:30px 12px 0}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:6px}main{min-width:0;padding:34px 70px 110px}.reader-meta{display:flex;justify-content:space-between;align-items:center;max-width:700px;margin:0 auto 55px;color:var(--muted);font-size:10px;letter-spacing:1.5px;gap:20px}.text-button{color:var(--muted);min-height:42px;padding:8px}.text-button:hover{color:var(--accent)}#settings-open{font-size:20px;white-space:nowrap}#settings-open span{font-size:11px;margin-left:7px}#reader{max-width:680px;margin:0 auto;font-family:var(--bodyfont);font-size:var(--size);line-height:var(--leading)}.chapter-header{margin-bottom:42px}.eyebrow,.chapter-number{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;letter-spacing:2px;font-size:10px;font-weight:500;color:var(--accent)}.chapter-header h1{font-size:clamp(32px,4vw,46px);line-height:1.2;font-weight:400;letter-spacing:-1px;margin:16px 0}.chapter-subtitle{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:var(--muted);font-size:13px;letter-spacing:2px}.chapter-info{border-top:1px solid var(--line);margin-top:30px;padding-top:14px;display:flex;flex-wrap:wrap;gap:8px 20px;font:11px/1.6 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:var(--muted)}.group{position:relative;margin:0 0 22px;scroll-margin-top:25px;padding:1px 28px 1px 0}.group p{margin:0 0 12px;overflow-wrap:break-word}.group p:last-of-type{margin-bottom:0}.group h2{font-size:1.3em;line-height:1.45;font-weight:400;margin:35px 0 16px}.translate-button{position:absolute;right:-8px;top:7px;font:11px/1 -apple-system,sans-serif;color:var(--muted);width:30px;height:32px;border-radius:50%;opacity:.6}.group:hover .translate-button,.translate-button[aria-expanded=true]{opacity:1;color:var(--accent);background:var(--soft)}.word{cursor:pointer;border-radius:2px}.word:hover,.word.selected{background:var(--soft);color:var(--accent)}.translation{border-left:2px solid var(--line);padding:4px 0 3px 18px;margin:18px 0 15px;font:16px/1.95 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:var(--muted)}.translation p{margin:0 0 9px}.translation .translation-meta{display:flex;align-items:center;gap:10px;font-size:10px;line-height:1.5;margin-top:12px}.translation-meta button{color:var(--accent);padding:6px}.poem p{margin:0;font-style:italic;line-height:1.8}.poem{padding-left:24px;margin:26px 0}.quote{border-left:2px solid var(--line);padding-left:22px;font-style:italic}.list p{margin:0 0 3px;padding-left:18px}.aside-note{font-size:.88em;color:var(--muted)}.chapter-end{max-width:680px;margin:60px auto 0;text-align:center;border-top:1px solid var(--line);padding:45px 0;color:var(--muted);font-size:12px}.chapter-end p{font-size:11px;line-height:2}.reading-bar{position:fixed;bottom:0;background:var(--bg);border-top:1px solid var(--line);height:45px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;font-size:10px;color:var(--muted);z-index:4}.reading-bar button{display:none}.progress-track{position:fixed;bottom:44px;height:2px;width:100%;z-index:5}#progress-fill{height:100%;width:0;background:var(--accent)}dialog{width:min(520px,calc(100% - 32px));max-height:86dvh;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:28px;box-shadow:0 20px 100px #0002}dialog::backdrop{background:#18271f55;backdrop-filter:blur(3px)}dialog h2{font-size:22px;font-weight:500;margin:8px 0 14px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.close{font-size:28px;line-height:1;width:36px;height:36px;color:var(--muted)}.muted{color:var(--muted);line-height:1.9}.fine{color:var(--muted);font-size:11px;line-height:1.9}.file-label{display:block;padding:18px;border:1px dashed var(--line);border-radius:7px;margin:18px 0;color:var(--text);font-size:13px}.file-label input{display:block;width:100%;margin-top:14px;font-size:11px}.file-label input::file-selector-button{background:var(--soft);color:var(--accent);border:0;padding:9px;border-radius:4px;margin-right:10px}.setting{display:block;margin:24px 0;font-size:13px}.setting output{float:right;color:var(--muted)}.setting input[type=range]{width:100%;display:block;margin-top:18px;accent-color:var(--accent)}select{margin-left:15px;padding:8px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:5px}.themes{display:flex;gap:12px;margin-top:12px}.themes button{padding:13px 25px;border:1px solid var(--line);border-radius:7px}.themes button[aria-pressed=true]{outline:2px solid var(--accent)}#word-title{font:36px/1.3 Georgia,serif;overflow-wrap:anywhere}#word-result{min-height:100px;line-height:1.85;margin-bottom:20px}.phonetic{color:var(--muted);font-size:14px}.definition{white-space:pre-line;font-size:17px}.word-source{font-size:11px;color:var(--muted);margin:12px 0}.word-context{font-family:Georgia,serif;color:var(--muted);font-size:15px;border-left:2px solid var(--line);padding-left:15px;margin:16px 0}.vocab-entry{border-bottom:1px solid var(--line);padding:18px 0;overflow-wrap:anywhere}.vocab-entry strong{font:23px Georgia,serif}.vocab-entry .remove-word{float:right;color:var(--muted);padding:8px}.wide-dialog{width:min(690px,calc(100% - 24px))}#edit-original{font:16px/1.8 Georgia,serif;margin:10px 0 20px;max-height:120px;overflow:auto;border-left:2px solid var(--line);padding-left:15px}#zh-search{width:100%;padding:12px;margin:15px 0;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--text)}#zh-options{max-height:34vh;overflow:auto}.zh-option{display:flex;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.8}.zh-option input{accent-color:var(--accent);flex-shrink:0}.selected-row{padding:8px;background:var(--soft);margin:5px 0;font-size:12px;display:flex;gap:10px;align-items:center}.selected-row span{flex:1}.selected-row button{padding:8px}.sticky-actions{display:flex;justify-content:space-between;gap:8px;background:var(--panel);padding-top:20px;position:sticky;bottom:-28px}#toast{position:fixed;left:50%;bottom:70px;transform:translateX(-50%);border-radius:6px;background:var(--text);color:var(--bg);padding:12px 20px;font-size:12px;z-index:20;max-width:90%;display:none}.empty-state{padding:30px 0;line-height:2;color:var(--muted)}@media(min-width:1500px){main{padding-right:180px}}@media(max-width:1000px){.layout{grid-template-columns:190px 1fr}.sidebar{padding-left:20px;padding-right:15px}main{padding:28px 38px 100px}.topbar{padding:0 28px}.top-label{display:none}}@media(max-width:700px){.topbar{height:66px;padding:0 22px}.brand{font-size:22px}.brand svg{width:27px}.topbar .button{font-size:11px;min-height:36px;padding:8px 12px}.layout{display:block}.sidebar{display:none}main{padding:16px 25px 85px}.reader-meta{margin-bottom:28px;letter-spacing:.6px;font-size:9px}#settings-open span{display:none}.chapter-header{margin-bottom:30px}.chapter-header h1{font-size:36px}.chapter-info{margin-top:24px}.group{padding-right:20px;margin-bottom:24px}.translate-button{right:-11px;opacity:.75}.reading-bar{padding:0 16px;height:50px;padding-bottom:env(safe-area-inset-bottom)}.reading-bar button{display:block}.progress-track{bottom:49px}#save-status{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-dialog{margin:auto 0 0;width:100%;max-width:100%;border-radius:18px 18px 0 0;padding:24px 26px calc(24px + env(safe-area-inset-bottom))}dialog{padding:23px}.translation{font-size:15px}.chapter-end{margin-top:35px}.themes button{padding:12px 22px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,color .15s}}

.group ul{margin:8px 0;padding-left:25px}.group li{padding-left:4px;margin:3px 0}.group li::marker{color:var(--muted);font-size:.65em}

.book-image{display:block;max-width:100%;max-height:80vh;margin:20px auto;object-fit:contain}.chapter-navigation{display:flex;justify-content:space-between;margin-bottom:30px}.chapter-choice{display:block;width:100%;text-align:left;padding:16px 8px;border-bottom:1px solid var(--line);line-height:1.6}.chapter-choice.current{color:var(--accent);background:var(--soft)}.review-word{font:40px Georgia,serif;margin:30px 0 20px}.review-total{font-size:19px;margin:20px 0}.review-ratings{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.review-ratings button{flex:1;white-space:nowrap;font-size:12px;padding:12px 8px}.mobile-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}#share-link{width:100%;margin:12px 0;padding:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-size:12px}.sidebar #toc{overflow:auto;min-height:60px}.sidebar{height:calc(100dvh - 84px)}.side-bottom{padding-top:12px}.side-rule{margin:16px 12px}.translation:has(.fine){max-height:60vh;overflow:auto}
#word-result form{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}#word-result input{flex:1;min-width:140px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:inherit}#word-result select{max-width:100%;padding:10px;background:var(--bg);color:inherit}.phrase-query{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:40;white-space:nowrap}.phrase-query[hidden]{display:none}#word-result .definition{white-space:pre-line}

.word-section-title{font-size:13px;font-weight:600;margin:22px 0 8px;color:var(--accent)}.sentence-practice{display:block;font:12px/1.5 -apple-system,sans-serif;margin-top:12px;color:var(--accent)}#practice-content textarea{display:block;width:100%;padding:12px;margin:18px 0;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font:17px/1.6 Georgia,serif;resize:vertical}#practice-content .button{margin:8px 8px 0 0}.practice-dialog::backdrop{background:var(--bg)}#review-content input{max-width:100%;padding:10px;margin-bottom:15px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px}

/* Shared proofreading tools stay outside the main reading flow. */
.wb-dialog{width:min(860px,95vw);max-width:95vw}.wb-dialog .button{margin:5px 6px 5px 0}.wb-field{display:block;margin:15px 0;font-size:14px}.wb-field input,.wb-field textarea,.wb-dialog select{display:block;width:100%;box-sizing:border-box;padding:10px;margin-top:7px;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:6px;font:inherit}.wb-field textarea{line-height:1.7;min-height:100px;resize:vertical}.wb-scroll{max-height:50vh;overflow:auto;margin:15px 0}.wb-history{padding:18px 0;border-bottom:1px solid var(--line)}.wb-history label{display:block}.wb-text{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 -apple-system,sans-serif;max-height:350px;overflow:auto}.wb-warning{font-size:13px;color:var(--accent);line-height:1.7}.wb-option{display:block;width:100%;text-align:left;padding:10px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.7}.proof-edit{font-size:12px;opacity:.7;margin:6px 0}.parse-badge{display:inline-block;font-size:11px;color:var(--muted);margin:0 12px}.pdf-page{max-width:100%;height:auto;background:white}.wb-dialog blockquote{max-height:180px;overflow:auto}.wb-dialog pre{user-select:text}.source-unit{min-width:0}
body[data-reading-mode=parallel] #main{max-width:1300px}body[data-reading-mode=parallel] .group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:32px}body[data-reading-mode=parallel] .source-unit{grid-column:1;grid-row:1}body[data-reading-mode=parallel] .translation{grid-column:2;grid-row:1;margin-top:0;max-height:none;overflow:visible}body[data-reading-mode=parallel] .proof-edit,body[data-reading-mode=parallel] .parse-badge{grid-column:1}body[data-reading-mode=english] .translation{display:none}body[data-reading-mode=english] .translate-button{display:none}
@media(max-width:760px){body[data-reading-mode=parallel] .group{display:block}.wb-dialog{padding:20px}.wb-dialog .button{font-size:13px}.translation-meta{flex-wrap:wrap}.sidebar{overflow:auto}}

.file-drop-overlay{position:fixed;inset:12px;z-index:99999;display:grid;place-items:center;background:color-mix(in srgb,var(--bg,#f6f4ef) 92%,transparent);border:2px dashed #729380;border-radius:18px;font-size:28px;pointer-events:none}.file-drop-overlay[hidden]{display:none}
.book-details{width:min(980px,96vw)}.book-hero{padding:10px 0 20px}.book-hero h1{font:30px/1.3 Georgia,'PingFang SC',serif;margin:12px 0}.detail-actions{display:flex;flex-wrap:wrap;gap:8px}.source-files{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0;padding:22px 0;border-block:1px solid var(--line)}.source-files p{overflow-wrap:anywhere;font-size:13px;line-height:1.6}.source-files small{color:var(--muted)}.progress-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:15px 0}.progress-metrics strong{font:30px Georgia,serif;display:block;color:var(--accent)}.progress-metrics span{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.chapter-status-row{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.chapter-state{font-size:12px;color:var(--accent);background:var(--soft);padding:5px 9px;border-radius:20px}.chapter-status-row strong{font-size:14px;line-height:1.7}.import-hint{padding:25px;border:1px dashed var(--accent);line-height:1.8}.update-notice{position:fixed;z-index:999;bottom:70px;right:20px}.file-drop-overlay:popover-open{display:grid;width:auto;height:auto;margin:0;color:var(--text)}@media(max-width:600px){.source-files{grid-template-columns:1fr;gap:16px}.chapter-status-row{grid-template-columns:1fr;gap:8px}.progress-metrics{gap:15px}.book-hero h1{font-size:24px}}
@media(min-width:761px){.progress-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.book-details .source-files{margin:20px 0;padding:18px 0}.book-hero{padding-bottom:12px}}
