@charset "UTF-8";
:root{--bg:#eeece5;--surface:#f8f7f2;--ink:#303a34;--muted:#7a8178;--line:#d9ded3;--accent:#3c6354;--soft:#e4eadf;--prose-size:21px;--prose-line:2.1;--prose-font:"Songti SC","Noto Serif CJK SC",SimSun,serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;border-radius:6px;padding:9px 13px}button:hover{background:var(--soft)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,p:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"Songti SC",SimSun,serif}button.primary{display:flex;justify-content:space-between;align-items:center;background:var(--accent);color:#fff;padding:12px 20px;border-radius:5px;width:100%;font-weight:600}.outline{border:1px solid var(--line);width:100%;background:var(--surface)}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--accent);font-weight:700}.subtle{color:var(--muted);font-size:12px}.dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px}
.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;gap:12px}.brand{font:600 27px "Songti SC",serif;letter-spacing:.08em;display:flex;align-items:center;gap:18px}.brand span{font:11px system-ui;letter-spacing:.1em;color:var(--muted);border-left:1px solid var(--line);padding-left:18px}.header-actions{display:flex;align-items:center;gap:4px;font-size:12px}.shelf{max-width:1180px;padding:66px 36px;margin:auto}.shelf>h1{font-size:44px;margin:14px 0 12px;font-weight:500;letter-spacing:.02em}.intro{color:var(--muted);margin-bottom:54px}.shelf-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:28px}.shelf-heading h2{margin:0;font:600 18px system-ui}.shelf-heading span{font-size:11px;color:var(--muted)}#book-count{margin-left:9px}.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.book{padding:25px;display:flex;text-align:left;align-items:center;gap:25px;background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:212px;transition:transform .2s,box-shadow .2s}.book:hover{transform:translateY(-3px);box-shadow:0 8px 24px #3447380d;background:var(--surface)}.cover{flex-shrink:0;width:96px;height:143px;background:#365649;box-shadow:4px 6px 9px #15282124;border-radius:2px 5px 5px 2px;color:#efe7cd;padding:17px 14px;display:flex;flex-direction:column;justify-content:space-between;font:19px/1.5 "Songti SC",serif;border-left:4px solid #ffffff20}.cover.demo{background:#77745d}.cover small{font:8px/1.8 system-ui;letter-spacing:.17em;opacity:.6}.book h3{font:600 19px "Songti SC",serif;margin-bottom:10px}.book p{font-size:12px;color:var(--muted);margin:8px 0}.badge{display:inline-block;border-radius:3px;font:11px system-ui;padding:4px 7px;background:var(--soft);color:var(--accent)}.badge.warning{background:#eee3ce;color:#8d6b34}.shelf-note{margin-top:44px;color:var(--muted);font-size:12px}
.reader-tools{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 4vw;display:flex;align-items:center;gap:20px;font-size:12px;min-height:54px}#chapter-label{margin-right:auto;color:var(--muted)}select{border:1px solid var(--line);padding:7px 10px;border-radius:5px;background:var(--surface);max-width:100%}.reading-layout{display:grid;grid-template-columns:minmax(0,760px) 320px;gap:60px;max-width:1180px;margin:auto;padding:54px 30px 90px}#manuscript{min-width:0;padding:0 26px}.chapter-kicker{color:var(--accent);font-size:11px;letter-spacing:.13em;margin:10px 0 14px}#chapter-title{font-size:33px;line-height:1.5;font-weight:600;margin-bottom:14px}#chapter-meta{color:var(--muted);font-size:11px;margin-bottom:40px}.prose{font:var(--prose-size)/var(--prose-line) var(--prose-font);letter-spacing:.025em}.paragraph{position:relative;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:1.1em}.paragraph p{margin:0;text-indent:2em}.paragraph button{position:absolute;left:-33px;top:4px;font:14px system-ui;padding:4px;width:26px;height:26px;color:var(--muted);opacity:.2;border:1px solid transparent}.paragraph:hover button,.paragraph button:focus-visible{opacity:1;border-color:var(--line)}.paragraph.annotated button{opacity:1;color:var(--accent);background:var(--soft)}.chapter-nav{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:24px 0 0;margin-top:56px;font-size:13px}.end-note{text-align:center;color:var(--muted);font-size:12px;letter-spacing:.13em;margin:32px 0}
#review-panel{position:sticky;top:76px;max-height:calc(100vh - 110px);overflow-y:auto;height:fit-content;font-size:13px;padding:0 6px 20px 12px;border-left:1px solid var(--line)}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.panel-heading h2{font:600 19px "Songti SC",serif;margin:4px 0}.panel-heading button{font-size:23px;line-height:1;padding:8px}.panel-help{font-size:12px;color:var(--muted)}#review-close{display:block}.approval-box{border-top:1px solid var(--line);padding-top:22px;margin-top:26px}.approval-box h3{font:600 16px system-ui}.approval-box details{border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.approval-box summary{cursor:pointer;color:var(--accent);list-style-position:inside}.approval-box details>div{padding:12px 4px}.field{padding:4px 0;overflow-wrap:anywhere}.field-label{color:var(--muted);margin-right:8px}.change-card{background:var(--soft);padding:12px;margin:8px 0;border-radius:5px}.finding{border-left:2px solid #b2965e;padding-left:12px;margin:14px 0}.finding p{margin:6px 0}.decision-buttons{display:grid;gap:9px;margin-top:20px}.decision-buttons button{font-size:13px}.notes-section{margin-top:28px}.notes-section h3{font:600 13px system-ui;color:var(--muted)}.note{border-top:1px solid var(--line);padding:14px 0;overflow-wrap:anywhere}.note blockquote{margin:0 0 8px;border-left:2px solid var(--accent);padding-left:10px;color:var(--muted);font-size:12px;max-height:100px;overflow:auto;white-space:pre-wrap}.note p{margin-bottom:8px;white-space:pre-wrap}.note small{color:var(--muted);font-size:10px}.empty{color:var(--muted);padding:22px 0;font-size:13px}.reading-progress{position:fixed;bottom:0;left:0;right:0;background:var(--bg);border-top:1px solid var(--line);padding:8px 4vw calc(8px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:16px;font-size:10px;color:var(--muted);z-index:6}.reading-progress>div{height:2px;flex:1;background:var(--line)}.reading-progress i{display:block;width:0;height:2px;background:var(--accent)}
#toc{position:fixed;z-index:21;top:0;bottom:0;left:0;width:340px;max-width:88vw;background:var(--surface);padding:28px 24px;overflow:auto;box-shadow:10px 0 40px #1112}#toc-list h3{font-size:11px;color:var(--muted);margin:23px 0 8px}#toc-list button{display:block;width:100%;text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);font-size:14px}#toc-list small{display:block;font-size:10px;color:var(--muted)}#toc-list .selected{background:var(--soft);color:var(--accent)}#scrim{position:fixed;inset:0;background:#1e282540;z-index:20;backdrop-filter:blur(2px)}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:26px;width:420px;max-width:calc(100vw - 32px);box-shadow:0 15px 70px #0002}dialog::backdrop{background:#1e282560;backdrop-filter:blur(3px)}dialog label{display:block;font-size:13px;margin:18px 0 8px}dialog input[type=range],dialog select,textarea{width:100%}textarea,input[type=password]{border:1px solid var(--line);border-radius:5px;padding:13px;background:var(--bg);outline-color:var(--accent)}textarea{resize:vertical;line-height:1.8}dialog blockquote{border-left:2px solid var(--accent);padding:8px 12px;margin:10px 0;max-height:170px;overflow:auto;color:var(--muted);font:14px/1.8 var(--prose-font);white-space:pre-wrap}.check{display:flex!important;align-items:flex-start;gap:8px;font-size:12px!important}.check input{margin-top:5px}.login{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(ellipse at 30% 20%,#dde4d7,transparent 65%),var(--bg)}.login-card{width:410px;max-width:100%;padding:30px 20px}.wordmark{font:600 35px "Songti SC",serif;margin-bottom:50px}.wordmark span{display:block;font:9px system-ui;letter-spacing:.18em;color:var(--muted);margin-top:12px}.login h1{font-size:28px;font-weight:500}.login p,.login small{color:var(--muted);font-size:12px}.login label{display:block;font-size:12px;margin:34px 0 9px}.login input{width:100%;margin-bottom:15px}.login small{display:block;border-top:1px solid var(--line);padding-top:22px;margin-top:30px;font-size:11px}#login-error{color:#b05b4a;margin-top:12px}#toast{position:fixed;bottom:70px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);font-size:13px;padding:13px 22px;z-index:40;max-width:90vw;border-radius:7px;box-shadow:0 6px 25px #0002}.no-panel .reading-layout{grid-template-columns:minmax(0,760px);justify-content:center}.no-panel #review-panel{display:none}
body[data-theme=white]{--bg:#fff;--surface:#fafafa;--line:#e3e5e1;--soft:#edf1ec}body[data-theme=night]{--bg:#1f2523;--surface:#252e29;--ink:#d4d8cc;--muted:#929e92;--line:#3b463e;--accent:#a4bc9e;--soft:#313f34;color-scheme:dark}body[data-theme=night] button.primary{color:#1f2523}
@media(min-width:1400px){.reading-layout{gap:88px;max-width:1250px}}@media(max-width:1000px){.reading-layout{display:block;max-width:790px;padding:40px 32px 80px}#review-panel{display:none;position:fixed;z-index:22;top:0;bottom:0;right:0;max-height:100%;height:100%;width:360px;max-width:94vw;background:var(--surface);padding:24px;border:0;box-shadow:-5px 0 40px #0002}body.panel-open #review-panel{display:block}#review-close{display:block}.desktop{display:none}.shelf{padding-top:48px}}@media(max-width:600px){.topbar{height:63px;padding:0 14px}.brand{font-size:23px;padding:5px}.header-actions{gap:0;font-size:11px}.header-actions button{padding:8px}#header-title{display:none}.shelf{padding:36px 22px}.shelf>h1{font-size:31px}.intro{font-size:13px;margin-bottom:36px}.shelf-heading{align-items:flex-start;gap:12px}.shelf-heading>span{max-width:140px;text-align:right;font-size:10px}.books{grid-template-columns:1fr}.book{min-height:190px}.reader-tools{padding:7px 12px;gap:6px}.reader-tools button{padding:8px 7px}#chapter-label{display:none}#versions{margin-right:auto;max-width:180px;font-size:11px}.reading-layout{padding:30px 25px 65px}#manuscript{padding:0 7px}#chapter-title{font-size:27px}.paragraph button{left:-25px;font-size:12px;width:23px;opacity:.5}#chapter-meta{margin-bottom:30px}.prose{letter-spacing:0}.reading-progress{padding-left:14px;padding-right:14px}#sync-label{max-width:175px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.login h1{font-size:26px}.empty{padding:30px 0}}

@media(max-width:600px){.paragraph button::after{content:"";position:absolute;inset:-9px -10px}.topbar button,.reader-tools button{min-height:44px}.chapter-nav button{min-height:44px}dialog input,dialog select,dialog textarea,.login input{font-size:16px}.panel-heading button{min-width:44px;min-height:44px}.decision-buttons button{min-height:48px}}
