:root{font-family:ui-rounded,"PingFang SC","Microsoft YaHei",sans-serif;color:#3d433b;background:#f6f1e7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a.primary{border:0;border-radius:30px;background:#536b54;color:#fff;padding:13px 24px;cursor:pointer;text-decoration:none}button:disabled{opacity:.3;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #bc874d;outline-offset:4px}[hidden]{display:none!important}.eyebrow{font-size:10px;letter-spacing:2.1px;color:#8b917e;font-weight:600}.muted{font-size:13px;color:#878a7d;line-height:1.8}h1{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:34px;font-weight:600;letter-spacing:2px;line-height:1.5;margin:12px 0}h1 span{display:block;font-family:ui-rounded,"PingFang SC",sans-serif;font-size:13px;font-weight:400;letter-spacing:1px;color:#858b7c;margin-top:12px}.shelf-header{display:flex;justify-content:space-between;align-items:flex-start}.quiet{background:transparent;color:inherit;border:1px solid #d5d9ce;padding:9px 15px;font-size:13px}#shelf{max-width:980px;margin:auto;padding:calc(36px + env(safe-area-inset-top)) 24px calc(30px + env(safe-area-inset-bottom))}.books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px;margin-top:30px}.book{padding:0;border:0;text-align:left;background:transparent;color:inherit;border-radius:0;min-width:0}.book-cover{height:190px;background:#e9e4d6;border-radius:8px 14px 14px 8px;display:flex;align-items:center;justify-content:center;padding:8px;box-shadow:3px 6px 12px #57492a12,0 1px 0 #fff inset;border-left:4px solid #0000000a;overflow:hidden}.book:nth-child(2n) .book-cover{background:#e2e8da}.book:nth-child(3n) .book-cover{background:#eadfd3}.book-cover img{width:100%;height:100%;object-fit:contain;border-radius:2px}.book h2{font-size:16px;line-height:1.6;font-weight:600;margin:13px 0 4px;letter-spacing:.3px}.book p{font-size:11px;color:#858b7b;margin:0;line-height:1.8}.shelf-note{text-align:center;font-size:12px;line-height:2;color:#9b9e90;margin-top:50px}.welcome{max-width:520px;margin:10vh auto;padding:36px 28px;text-align:center}.welcome .emblem{font-size:48px;color:#b19568;margin-bottom:30px}.welcome p{line-height:1.9}.welcome .primary{display:inline-block;margin:24px 0}.note{font-size:12px;color:#8c9184}.welcome button{margin:20px auto}body.reading,html:has(body.reading){overflow:hidden;overscroll-behavior:none}#reader{--sa-t:env(safe-area-inset-top,0px);--sa-r:env(safe-area-inset-right,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);position:fixed;inset:0;height:100dvh;background:#222721;color:#f6f1e7;display:flex;flex-direction:column;overflow:hidden}.reader-top{height:calc(58px + var(--sa-t));padding:var(--sa-t) calc(14px + var(--sa-r)) 0 calc(14px + var(--sa-l));display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.reader-top>span{flex:1;min-width:0;text-align:center;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tools{display:flex;gap:8px;flex-shrink:0}.reader-top .quiet{border-color:#ffffff25;min-width:58px;padding:9px 12px;white-space:nowrap}#reader #rotate[aria-pressed=true]{background:#bc874d;border-color:#bc874d;color:#fff}.reader-bottom{padding:8px calc(18px + var(--sa-r)) calc(12px + var(--sa-b)) calc(18px + var(--sa-l));flex-shrink:0}.pager{display:flex;justify-content:center;align-items:center;gap:22px}.pager button{background:#ffffff12;padding:7px 25px;font-size:24px}.page-select{display:flex;align-items:center;gap:4px;font-size:13px}.page-select select{color:inherit;background:#222721;border:0;border-radius:6px;padding:10px 6px;font-size:14px}.reader-actions{font-size:10px;color:#a9b3a6;display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:12px}.reader-actions a{padding:5px}#stage{flex:1;min-height:0;width:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y pinch-zoom;user-select:none}#page-image{display:block;max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto;-webkit-user-drag:none}#loading{position:absolute;background:#222b;padding:10px 18px;border-radius:20px;font-size:13px;pointer-events:none}#reader.immersive .reader-top,#reader.immersive .reader-bottom{display:none}#reader.zoomed #stage{display:block;overflow:auto;touch-action:pan-x pan-y pinch-zoom}#reader.zoomed #page-image{width:200%;max-width:none;max-height:none;height:auto}#notice{position:fixed;bottom:130px;left:50%;transform:translateX(-50%);border-radius:20px;padding:12px 22px;background:#fff;color:#3d433b;font-size:13px;box-shadow:0 4px 20px #0002;z-index:10;white-space:nowrap}@media(min-width:700px){#shelf{padding-top:65px}.books{grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}.book-cover{height:230px}h1{font-size:40px}}@media(max-width:370px){#shelf{padding-left:18px;padding-right:18px}h1{font-size:28px}.book-cover{height:155px}}#page-pill{position:absolute;right:calc(10px + var(--sa-r));bottom:calc(8px + var(--sa-b));margin:0;padding:3px 10px;border-radius:12px;background:#0007;color:#f6f1e7d9;font-size:11px;letter-spacing:.5px;pointer-events:none;z-index:1;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}#reader.immersive.pill-on #page-pill{opacity:1;visibility:visible}#reader.rotated{inset:auto;top:0;left:0;width:var(--app-h,100dvh);height:var(--app-w,100dvw);transform-origin:0 0;transform:translateX(var(--app-w,100dvw)) rotate(90deg);--sa-t:env(safe-area-inset-right,0px);--sa-r:env(safe-area-inset-bottom,0px);--sa-b:env(safe-area-inset-left,0px);--sa-l:env(safe-area-inset-top,0px)}#reader.land #stage{position:absolute;inset:0;padding:var(--sa-t) var(--sa-r) var(--sa-b) var(--sa-l)}#reader.rotated #stage{touch-action:pan-x pinch-zoom}#reader.rotated.zoomed #stage{touch-action:pan-x pan-y pinch-zoom}#reader.land .reader-top,#reader.land .reader-bottom{position:absolute;left:0;right:0;z-index:2;transition:opacity .25s,visibility .25s}#reader.land .reader-top{top:0;height:auto;padding:calc(6px + var(--sa-t)) calc(12px + var(--sa-r)) 16px calc(12px + var(--sa-l));background:linear-gradient(#1b1f1ae6,#1b1f1a00)}#reader.land .reader-bottom{bottom:0;padding:16px calc(12px + var(--sa-r)) calc(6px + var(--sa-b)) calc(12px + var(--sa-l));background:linear-gradient(#1b1f1a00,#1b1f1ae6)}#reader.rotated .reader-actions{display:none}@media(max-height:550px){#reader.land .reader-actions{display:none}}#reader.land .reader-actions{margin-top:4px}#reader.land .pager button{padding:2px 24px}#reader.land .page-select select{padding:6px;background:transparent}#reader.land .reader-top .quiet{padding:6px 12px;background:#1b1f1a99}#reader.land.immersive .reader-top{display:flex}#reader.land.immersive .reader-bottom{display:block}#reader.land.immersive .reader-top,#reader.land.immersive .reader-bottom{opacity:0;visibility:hidden;pointer-events:none}#reader.land #notice{bottom:calc(70px + var(--sa-b))}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.shelf-nav{display:flex;gap:8px;flex-shrink:0}.shelf-nav a.quiet{border-radius:30px;text-decoration:none}h1 b{font-weight:inherit}.tip{font-size:13px;background:#efe6d2;border-radius:10px;padding:10px 14px;line-height:1.7}
.doc{max-width:640px;margin:auto;padding:calc(20px + env(safe-area-inset-top)) 20px calc(40px + env(safe-area-inset-bottom));line-height:1.75}.doc h1{font-size:26px}.doc h2{font-size:18px;margin:6px 0 10px}.doc h3{font-size:14px;margin:18px 0 6px;color:#6f7466}
.panel{background:#fffdf8;border-radius:16px;padding:16px 18px;margin:14px 0;box-shadow:0 1px 6px #57492a12}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grow{flex:1;min-width:0}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#6f7466;text-align:left}input,select{font:inherit;font-size:16px;padding:10px 12px;border:1px solid #d5d9ce;border-radius:10px;background:#fff;color:#3d433b;min-width:0}
.list{list-style:none;padding:0;margin:0}.list li{padding:10px 0;border-top:1px solid #eee7d8;font-size:14px}.list li:first-child{border-top:0}.list button{padding:8px 14px;font-size:13px}
.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0}.avatars{display:grid;grid-template-columns:repeat(4,56px);gap:10px}.avatar-choice{padding:4px;background:transparent;border:2px solid transparent;border-radius:50%}.avatar-choice .avatar{width:44px;height:44px}.avatar-choice[aria-checked=true]{border-color:#536b54}
.invite-result{background:#f6f1e7;border-radius:12px;padding:14px;margin:10px 0}.qr svg{display:block;width:220px;height:220px;margin:6px auto;background:#fff;border-radius:8px}.qr path{fill:#222}
.doc #notice{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#3d433bee;color:#fff;padding:10px 18px;border-radius:20px;font-size:14px}
.welcome form{display:flex;flex-direction:column;gap:14px;margin:20px 0}
#shelf .shelf-header h1{font-size:clamp(26px,7.4vw,34px)}#shelf .shelf-header .eyebrow{margin-right:8px}
#shelf .shelf-header{position:relative}#shelf .shelf-header>div{width:100%}#shelf .shelf-nav{position:absolute;top:-8px;right:0}#shelf .shelf-header .eyebrow{padding-right:150px}
.center{text-align:center;justify-content:center}.section-title{font-size:17px;font-weight:600;letter-spacing:.5px;margin:34px 0 0;color:#4b5246}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}.tabs{display:flex;gap:6px}.tabs button{padding:7px 14px;font-size:13px}.tabs button[aria-pressed=true]{background:#536b54;color:#fff;border-color:#536b54}#public-section .books{margin-top:20px}
.end-card{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#222721e6;padding:calc(16px + var(--sa-t)) calc(16px + var(--sa-r)) calc(16px + var(--sa-b)) calc(16px + var(--sa-l));overflow:auto}
.end-inner{background:#fffdf8;color:#3d433b;border-radius:18px;padding:22px 20px;max-width:440px;width:100%;line-height:1.7;max-height:100%;overflow:auto}.end-inner h2{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:22px;margin:0 0 10px;text-align:center}.end-inner .row{margin:12px 0}.end-inner .status{text-align:center;font-weight:600}
.like{font-size:16px;padding:12px 22px}.like[aria-pressed=true]{background:#b5523b}.report summary{font-size:12px;color:#8c9184;cursor:pointer;text-align:center}.report select{font-size:14px;padding:8px}
.sheet fieldset{border:1px solid #e3ddcf;border-radius:10px;margin:10px 0}.sheet label{font-size:14px}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0}.thumb{position:relative;display:block}.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}.thumb input{position:absolute;left:4px;top:4px;width:18px;height:18px}.thumb span{position:absolute;right:4px;bottom:2px;font-size:11px;color:#fff;text-shadow:0 0 3px #000}
#reader.rotated .end-card{padding:calc(16px + var(--sa-l)) calc(16px + var(--sa-t)) calc(16px + var(--sa-r)) calc(16px + var(--sa-b))}
.admin .tabs{flex-wrap:wrap;margin:6px 0 10px}.admin-cover{width:72px;height:56px;object-fit:cover;border-radius:6px}.warn{background:#fbe6d8;color:#8a3b1c;border-radius:8px;padding:8px 12px;font-size:13px}
.admin-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:10px 0}.admin-pages figure{margin:0;font-size:12px;line-height:1.5}.admin-pages img{width:100%;border-radius:6px;display:block}.admin-pages .off{opacity:.45}.admin textarea{width:100%;font:inherit;padding:10px;border:1px solid #d5d9ce;border-radius:10px}
#reader #notice{z-index:30}
.create-entry{margin-top:26px;display:flex;flex-direction:column;gap:10px;align-items:stretch}.create-entry .primary{text-align:center;font-size:16px}.creation-card{display:flex;justify-content:space-between;gap:10px;background:#fffdf8;border-radius:12px;padding:12px 14px;text-decoration:none;box-shadow:0 1px 6px #57492a12;font-size:14px}.creation-card b{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.creation-card .muted{flex-shrink:0;font-size:12px;line-height:1.6}
#shelf .shelf-header.crowded{flex-direction:column-reverse}#shelf .shelf-header.crowded .shelf-nav{position:static;align-self:flex-end;margin-bottom:6px}#shelf .shelf-header.crowded .eyebrow{padding-right:0}
.doc textarea,.create textarea{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid #d5d9ce;border-radius:10px;background:#fff;color:#3d433b;resize:vertical}.doc h3{font-size:14px}
.stack{display:flex;flex-direction:column;gap:10px;margin:8px 0 14px}.small{font-size:12px}.tag{background:#efe6d2;border-radius:8px;padding:1px 7px;font-size:11px;color:#6f6448}
.choices{display:flex;flex-direction:column;gap:8px}.choices.row{flex-direction:row}.choice{display:flex;gap:10px;align-items:flex-start;border:1px solid #e3ddcf;border-radius:12px;padding:10px 12px;background:#fff;flex:1;min-width:0}.choice input{margin-top:4px;flex-shrink:0}.choice span{display:flex;flex-direction:column;min-width:0}.choice small{font-size:12px;color:#878a7d;line-height:1.6}.choice:has(input:checked){border-color:#536b54;background:#f2f5ef}
.chat{display:flex;flex-direction:column;gap:10px;margin:4px 0 12px}.bubble{max-width:88%;border-radius:16px;padding:10px 14px;font-size:15px;line-height:1.7}.bubble p{margin:0;white-space:pre-line}.bubble.user{align-self:flex-end;background:#536b54;color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:#f3ecdc;border-bottom-left-radius:4px}.bubble.event{align-self:center;background:transparent;color:#878a7d;font-size:12px;padding:2px}
.question{margin-top:8px}.question .muted{margin:0}.chips{gap:6px;margin:4px 0 0}.chip{padding:7px 13px;font-size:14px;background:#fff}.chip[aria-pressed=true]{background:#536b54;color:#fff;border-color:#536b54}
.answer .row{margin:8px 0 0}.thinking{font-weight:600;color:#536b54}.thinking::before{content:'';display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:#bc874d;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.25;transform:scale(.7)}}
.script-page{border-top:1px solid #eee7d8;padding:10px 0}.script-page h3{margin:0 0 4px;font-size:13px;color:#8b917e;font-weight:600}.script-page .muted{margin:4px 0 0;font-size:12px;line-height:1.6}.page-text{display:block;width:100%;text-align:left;background:transparent;color:inherit;border:1px dashed transparent;border-radius:8px;padding:4px 6px;margin:0 -6px;font-size:17px;line-height:1.7;white-space:pre-line;cursor:text}.page-text:hover,.page-text:focus-visible{border-color:#d5d9ce}
.create{padding-bottom:calc(100px + env(safe-area-inset-bottom))}.confirm-bar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;align-items:center;gap:10px;padding:12px calc(16px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:#fffdf8f2;box-shadow:0 -2px 14px #57492a1f;font-size:13px}.confirm-bar button{flex-shrink:0;padding:12px 18px}.create #notice{bottom:calc(90px + env(safe-area-inset-bottom));white-space:normal;max-width:86vw;text-align:center}
.refs{display:flex;flex-direction:column;gap:14px}.ref-card{margin:0}.ref-card img,.page-big{width:100%;border-radius:10px;display:block;background:#eee7d8}.ref-card .placeholder{aspect-ratio:2/1;border-radius:10px;background:#efe9dc;display:flex;align-items:center;justify-content:center;color:#878a7d}.ref-card figcaption{margin:6px 0}.ref-card .row{margin:6px 0}.ref-card input{flex:1}
.bar{height:8px;border-radius:4px;background:#eee7d8;overflow:hidden;margin:8px 0}.bar span{display:block;height:100%;background:#536b54;border-radius:4px;transition:width .4s}
.page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.tile{position:relative;padding:0;border-radius:8px;overflow:hidden;background:#efe9dc;border:2px solid transparent;aspect-ratio:2/1}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile .placeholder{display:block;width:100%;height:100%}.tile-label{position:absolute;left:4px;bottom:3px;font-size:11px;color:#fff;background:#0008;border-radius:8px;padding:0 6px;line-height:1.6}.tile.qc_failed,.tile.failed{border-color:#c46b3a}.tile.on{border-color:#536b54;box-shadow:0 0 0 2px #536b5455}.tile.pending img,.tile.running img{opacity:.45}
.problems{margin:8px 0;padding-left:18px;color:#8a3b1c;font-size:13px;line-height:1.7}.page-words{white-space:pre-line;font-size:14px;margin:8px 0}
.photo-card{border-top:1px solid #eee7d8;padding:12px 0}.photo-frame{position:relative;display:block;max-width:100%;user-select:none;-webkit-user-select:none}.photo-frame img{display:block;width:100%;border-radius:8px;-webkit-user-drag:none}.photo-frame.framing{touch-action:none;cursor:crosshair}.face-rect{position:absolute;border:3px solid #ffcf4d;box-shadow:0 0 0 9999px #0006;border-radius:6px;pointer-events:none}.photo-frame{overflow:hidden;border-radius:8px}.crop-check{margin:10px 0}.crop{width:96px;height:auto;max-height:140px;object-fit:contain;border-radius:10px;border:2px solid #e3ddcf;flex-shrink:0}
.file-pick{position:relative;overflow:hidden;display:inline-block;border:1px solid #d5d9ce;border-radius:30px;padding:9px 15px;font-size:13px;cursor:pointer}.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.char-group h3{margin:12px 0 6px}.char-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.char-list figure{margin:0;font-size:12px;color:#6f7466}.char-list img{width:100%;border-radius:8px;display:block;background:#eee7d8}
.mini{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0}.mini th,.mini td{text-align:left;padding:5px 4px;border-top:1px solid #eee7d8;vertical-align:top}.mini th{color:#8b917e;font-weight:600}.num{width:84px}.code{font-family:ui-monospace,Menlo,monospace!important;font-size:12px!important}.creation-link{text-decoration:none}
.tile-detail{border-top:1px solid #eee7d8;margin-top:12px;padding-top:4px}.nowrap{white-space:nowrap}.mini small{font-size:11px;line-height:1.5}

button.link{background:none;border:0;padding:0 .4em;min-height:auto;color:inherit;text-decoration:underline;font:inherit;cursor:pointer}
