:root{--text:#eef1df;--soft:#bbc3a5;--panel:rgba(22,31,18,.78);--line:rgba(225,235,204,.14);--track:rgba(32,40,8,.48);--green:#566343;--bright:#9ca463;--orange:#d97757;--dark:#202808;color-scheme:dark;font:400 14px/1.75 'Noto Serif SC','Songti SC',serif;color:var(--text);background:var(--reading-bg,#192218)}
*{box-sizing:border-box}body{max-width:1180px;margin:auto;padding:32px 28px 64px;background:radial-gradient(ellipse at top left,rgba(98,111,65,.15),transparent 60%);min-height:100vh}h1,h2,h3,p{margin:0;font-weight:400}h1{font-size:32px;line-height:1.35}h2{font-size:19px}h3{font-size:15px}.meta{font-size:12px;color:var(--soft)}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.top .meta{display:block;margin-top:6px}.panel{background:var(--panel);border-radius:16px;padding:24px}.import{margin-bottom:16px;max-width:640px}.import label{margin-top:16px}label{display:block;font-size:12px;color:var(--soft)}button,input,select,textarea{font:inherit;color:var(--text);min-width:0;max-width:100%}button{cursor:pointer;font-size:12px;line-height:1.5;min-height:38px;padding:9px 14px;border:0;border-radius:10px;background:var(--green)}button:active{filter:brightness(.9)}button:disabled{opacity:.45;cursor:default}.save{background:var(--bright);color:var(--dark)}.outline{border:1px solid var(--bright);color:var(--bright);background:transparent}.text{color:var(--soft);background:transparent;padding-left:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,article:focus-visible{outline:2px solid var(--orange);outline-offset:3px}input,select,textarea{width:100%;background:var(--track);border:0;border-radius:10px;padding:10px;font-size:13px}select{height:38px;padding-block:0}option{background:#222d19}textarea{display:block;background:transparent;border:1px solid var(--bright);line-height:1.75;resize:vertical;min-height:110px;margin-top:7px}input::placeholder,textarea::placeholder{color:var(--soft);opacity:.7}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.shelf{display:grid;grid-template-columns:minmax(180px,1fr) 1.2fr;gap:24px;align-items:center}.shelf select{margin-top:6px}.positions{display:flex;flex-direction:column;gap:4px}.positions button{text-align:left;background:transparent;color:var(--soft);padding:4px 0;min-height:32px;white-space:normal}.positions button:hover{color:var(--text)}#status{font-size:13px;min-height:0;margin-bottom:12px;white-space:pre-wrap}#status:empty{margin:0}#status.error{color:#f4b49d}.reader-nav{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:24px 0 16px}.reader-nav>label{flex:1;max-width:680px}.reader-nav select{margin-top:6px}.reader-nav .actions{margin:0;flex:none}.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.reader{min-width:0;padding:28px 32px}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.section-heading h2{margin-top:4px}.section-heading button{flex:none}.instruction{margin:14px 0 24px}article{font-size:16px;line-height:2.1;white-space:pre-wrap;overflow-wrap:anywhere;min-height:180px}article::selection,article *::selection{background:#6b8155;color:white}mark{background:rgba(198,176,92,.22);color:inherit;border-bottom:1px solid #b5aa71}mark.codex{background:rgba(217,119,87,.13);border-bottom-color:var(--orange)}mark.focus{background:#68774e}.annotation-editor{border-top:1px solid var(--line);padding-top:20px;margin-top:32px}.annotation-editor label{margin-top:20px}blockquote{border-left:2px solid var(--bright);margin:8px 0;padding:4px 12px;color:var(--soft);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:145px;overflow:auto}.margin{padding:22px;min-width:0}.search{display:flex;gap:6px;margin-top:6px}.search button{flex:none}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:13px;background:var(--track);margin:24px 0 20px}.tabs button{background:transparent;color:var(--soft);padding:8px 6px}.tabs [aria-pressed=true]{background:var(--green);color:var(--text);box-shadow:0 2px 9px #0a0e043d}.mark,.reading-note{padding:18px 0;border-bottom:1px solid var(--line)}.mark .by{font-size:12px;color:var(--bright)}.mark.codex .by{color:#e1a38b}.mark p,.reading-note p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.mark .actions button{min-height:30px;padding-block:4px}.empty-note{font-size:12px;color:var(--soft);padding:20px 0}.result{display:block;text-align:left;background:transparent;color:var(--soft);width:100%;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.result strong{display:block;color:var(--text);font-weight:400}.reading-note summary{cursor:pointer;font-size:13px;color:var(--bright)}.reading-note p{margin-top:10px}.export{margin-top:24px;padding-top:12px;border-top:1px solid var(--line)}[hidden]{display:none!important}
@media(max-width:800px){body{padding:24px 20px 48px}.layout{grid-template-columns:1fr}.shelf{grid-template-columns:1fr;gap:12px}.reader{padding:22px}.margin{padding:22px}.reader-nav{align-items:stretch;flex-direction:column;gap:10px}.reader-nav>label{max-width:none}.reader-nav .actions{justify-content:space-between}article{font-size:15px}.section-heading{gap:10px}.section-heading button{padding:7px 9px}button{min-height:44px}.top button{padding-inline:12px}select{height:38px}textarea,input{font-size:16px}}
.shelf-tabs{max-width:260px;margin:0 0 16px}.complete-row{display:flex;align-items:center;gap:12px;margin:16px 0}.complete-row button{flex:none}#old-record{margin-top:20px;max-width:780px}#old-record h3{margin-top:28px}#old-record .mark:last-child{border:0}
@media(prefers-reduced-motion:no-preference){button{transition:filter .15s}}

/* Reading layout: one quiet column, with tools opened only when needed. */
:root{--reading-size:18px;--reading-line:2}
body{max-width:1060px;padding:36px 28px 64px}
#library-screen{max-width:780px;margin:auto}.shelf{display:block}.shelf>label{max-width:520px}.shelf h2{font-size:25px;line-height:1.5;margin:30px 0 8px}.shelf #start-reading{margin-top:22px;min-width:150px}.shelf details{border-top:1px solid var(--line);margin-top:28px;padding-top:18px}.shelf summary,.book-management summary{font-size:13px;color:var(--soft);cursor:pointer}.positions{margin:14px 0}.book-management{margin:20px 0 28px;padding:0 4px}.book-management .meta{margin-top:12px;max-width:540px}#old-record{margin-top:24px}.shelf-tabs{margin-bottom:24px}
body.is-reading{max-width:none;padding:0;background:var(--reading-bg,#1d271d)}
.reader-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;padding:8px max(20px,calc((100vw - 880px)/2));background:var(--reading-bar,rgba(29,39,29,.97));border-bottom:1px solid var(--line);padding-top:max(8px,env(safe-area-inset-top))}
.reader-bar span{font-size:13px;color:var(--soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-bar button{flex:none}
.reader{max-width:760px;margin:auto;padding:48px 40px 100px;background:none;border:0;border-radius:0}.reading-heading{margin-bottom:34px}.reading-heading h1{font-size:26px;line-height:1.6;margin-top:8px}.reading-heading .meta{font-size:12px}
article{font-size:var(--reading-size);line-height:var(--reading-line);min-height:180px;letter-spacing:.025em;scroll-margin-top:90px}mark.focus{scroll-margin-block:110px}article:focus{outline-offset:8px}
.chapter-turn{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:38px;padding-top:18px}.chapter-turn .meta{font-variant-numeric:tabular-nums}
.reader-tools{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;align-items:center;justify-content:center;gap:28px;padding:8px 20px max(8px,env(safe-area-inset-bottom));background:var(--reading-bar,rgba(29,39,29,.98));border-top:1px solid var(--line)}.reader-tools button{min-height:42px;padding:8px 12px}.reader-tools button.has-draft:after{content:' · 草稿';color:var(--bright)}
button.text{padding:8px 10px}.selection-tools{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);z-index:8;display:flex;gap:4px;align-items:center;max-width:calc(100vw - 24px);width:max-content;background:#35432e;border-radius:14px;box-shadow:0 8px 36px #0005;padding:5px 7px}.selection-tools button{padding:8px 13px;min-height:40px;background:transparent}.selection-tools button:hover{background:var(--green)}.selection-tools .meta{padding:0 6px;font-size:11px}.selection-tools .text{padding-inline:12px}
dialog{color:var(--text);background:var(--reading-dialog,#222e21);border:1px solid var(--line);border-radius:18px;padding:24px;width:520px;max-width:calc(100vw - 32px);max-height:85dvh;overflow:auto;box-shadow:0 20px 90px #0006;overscroll-behavior:contain}dialog::backdrop{background:#070e09a8}body:has(dialog[open]){overflow:hidden}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.dialog-heading h2{font-size:19px}.dialog-heading button{flex:none}dialog label{margin-top:18px}dialog select{margin-top:8px}dialog textarea{margin-top:8px}dialog blockquote{max-height:150px}dialog .tabs{margin-top:24px}.chapter-select{margin-bottom:18px}#chapter-list{display:flex;flex-direction:column}#chapter-list button{text-align:left;background:transparent;color:var(--soft);border-radius:0;padding:13px 8px;border-bottom:1px solid var(--line);line-height:1.6}#chapter-list button[aria-current=true]{color:var(--text);background:var(--track);border-radius:10px}#chapter-list button[aria-current=true]:before{content:'正在读 · ';color:var(--bright)}#reader-positions button{padding:7px 0}.type-preview{font-size:var(--reading-size);line-height:var(--reading-line);padding:24px 0;margin:8px 0;border-bottom:1px solid var(--line)}#appearance-dialog>.meta{margin-top:18px}
#status{position:fixed;bottom:75px;left:50%;transform:translateX(-50%);z-index:30;max-width:min(620px,calc(100vw - 32px));width:max-content;padding:10px 16px;border-radius:10px;color:var(--text);background:#3b4931;box-shadow:0 4px 22px #0004;font-size:12px;pointer-events:none}#status:empty{display:none}#status.error{color:#ffe0d1;background:#6a3828}.dialog-status{color:var(--bright);font-size:12px;margin-bottom:12px}.dialog-status.error{color:#ffc4a8}
@media(max-width:800px){body{padding:28px 20px 48px}.reader{padding:28px 22px 100px}.reading-heading{margin-bottom:26px}.reading-heading h1{font-size:24px}.reader-bar{padding-inline:12px;gap:8px}.reader-bar span{max-width:60vw}.reader-tools{gap:0;justify-content:space-around;padding-inline:8px}.reader-tools button{font-size:12px;padding-inline:8px}article{font-size:var(--reading-size);line-height:var(--reading-line)}dialog{padding:20px;max-width:calc(100vw - 24px);max-height:82dvh}.selection-tools{bottom:76px}.selection-tools button{padding-inline:10px}.selection-tools .meta{max-width:66px;overflow:hidden;white-space:nowrap}#annotation-dialog{margin:auto auto max(12px,env(safe-area-inset-bottom));width:540px}button{min-height:44px}select{height:36px}}
.dialog-heading{position:sticky;top:0;z-index:2;background:var(--reading-dialog,#222e21);padding-block:8px}

.room-heading{display:flex;align-items:center;gap:18px}.home-return{display:inline-flex;min-height:44px;min-width:44px;align-items:center;justify-content:center;color:var(--soft);text-decoration:none}.room-heading .home-return{font-size:26px}#reading-auth input{margin-top:8px}#auth-error{color:var(--orange);font-size:12px;margin-top:12px}
:root[data-theme="light"]{--text:#493c37;--soft:#76645d;--panel:rgba(255,250,242,.9);--line:rgba(105,79,64,.18);--track:rgba(219,207,191,.35);--green:#b5bc9e;--bright:#a4aa7f;--dark:#343b24;--reading-bg:#f7f3ea;--reading-dialog:#fffaf2;--reading-bar:rgba(247,243,234,.97);color-scheme:light}
:root[data-theme="light"] option{background:#fffaf2}:root[data-theme="light"] .selection-tools{background:#e3dbc7}:root[data-theme="light"] mark.focus{background:#d4dcb7}:root[data-theme="light"] #status{background:#dddcca;color:#343b24}:root[data-theme="light"] .dialog-status{color:#566343}

.shelf-actions{display:flex;align-items:center;gap:8px}.top{gap:12px;flex-wrap:wrap}.reading-theme{max-width:260px;margin:8px 0 12px}dialog .reading-theme{margin-top:8px}.reading-theme button{min-height:44px}
