*{box-sizing:border-box}:root{--paper:#faf7f0;--paper-2:#f1ece1;--ink:#1f1c18;--ink-2:#6f675c;--ink-3:#a89f90;--line:#e2dbcc;--seal:#c3422f;--win:#e3edf6;--win-b:#8fb2d0;--unsure:#f9e0bd;--unsure-b:#d9a35b;--night-bg:#201d19;--night-paper:#282420;--night-ink:#d9d2c4}#__nuxt,body,html{min-height:100%;margin:0}body{background:var(--paper);font-family:Songti TC,Noto Serif TC,serif}body,button{color:var(--ink)}button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;padding:5px 12px;font:13.5px -apple-system,sans-serif}button:hover{background:var(--paper-2)}button.quiet{color:var(--ink-2);background:0 0;border-color:#0000}button.quiet:hover{color:var(--ink);background:var(--paper-2)}button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}button.primary:hover{background:#3a352e}button.danger:hover{color:var(--seal);border-color:var(--seal)}button:disabled{opacity:.35;cursor:default}.spacer{flex:1}a.crumb{color:var(--ink-2);cursor:pointer;font:13px -apple-system,sans-serif;text-decoration:none}a.crumb:hover{color:var(--ink)}.seal{border:1.5px solid var(--seal);width:22px;height:22px;color:var(--seal);-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;font-family:Songti TC,serif;font-size:13px;font-weight:700;display:inline-flex;transform:rotate(-4deg)}.seal.big{width:30px;height:30px;font-size:17px}.seal.ghost{border-color:var(--ink-3);color:var(--ink-3);opacity:.5;transform:none}.page-pad{max-width:1200px;margin:0 auto;padding:34px 30px 60px}h1.lib{letter-spacing:.14em;margin:0 0 26px;font-size:22px;font-weight:600}.shelf{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;display:grid}.bookcard{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;transition:box-shadow .15s,transform .15s;overflow:hidden}.bookcard:hover{transform:translateY(-2px);box-shadow:0 8px 22px #3c2d191a}.bookcard .cover{background:var(--paper-2) center top/cover no-repeat;height:190px;color:var(--ink-3);justify-content:center;align-items:center;font-size:34px;display:flex}.bookcard .meta{border-top:1px solid var(--line);padding:11px 14px 13px}.bookcard .title{margin-bottom:3px;font-size:15.5px;font-weight:600}.bookcard .sub{color:var(--ink-2);font:11.5px/1.6 -apple-system,sans-serif}.newcard{border:1.5px dashed var(--line);cursor:pointer;min-height:240px;color:var(--ink-3);border-radius:10px;justify-content:center;align-items:center;font-size:15px;display:flex}.newcard:hover{color:var(--ink-2);background:#fff}.bookhead{flex-wrap:wrap;align-items:baseline;gap:14px;margin:0 0 6px;display:flex}.bookhead h2{letter-spacing:.06em;margin:0;font-size:20px;font-weight:600}.bookhead .sub{color:var(--ink-2);font:12.5px -apple-system,sans-serif}.toolrow{color:var(--ink-2);flex-wrap:wrap;gap:8px;margin:16px 0 22px;font:13px -apple-system,sans-serif}.toolrow,.toolrow label{align-items:center;display:flex}.toolrow label{cursor:pointer;gap:4px}progress{width:170px;accent-color:var(--ink)}.warnline{color:var(--seal);margin:-10px 0 16px;font:12.5px -apple-system,sans-serif}.pagewall{grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:12px;display:grid}.pagecard{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;position:relative;overflow:hidden}.pagecard:hover{box-shadow:0 4px 14px #3c2d191a}.pagecard img{-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;width:100%;height:148px;display:block}.pagecard .noimg{width:100%;height:148px;color:var(--ink-3);background:var(--paper-2);justify-content:center;align-items:center;font-size:24px;display:flex}.pagecard .plabel{color:var(--ink-2);justify-content:space-between;align-items:center;min-height:30px;padding:5px 9px;font:11px -apple-system,sans-serif;display:flex}.tag{border:1px solid var(--line);color:var(--ink-2);border-radius:8px;padding:1px 6px;font-size:10.5px}.tag.warn{border-color:var(--unsure-b);color:#a06a20;background:var(--unsure)}.tag.error{border-color:var(--seal);color:var(--seal);background:#f9e5e1}.tag.mute{opacity:.7}.pagecard .del{color:#fff;background:#1f1c18a6;border:none;border-radius:5px;padding:0 7px;font-size:12px;display:none;position:absolute;top:5px;right:5px}.pagecard:hover .del{display:block}.editbar{z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);color:var(--ink-2);align-items:center;gap:6px;padding:6px 14px;font:12.5px -apple-system,sans-serif;display:flex;position:sticky;top:0}.editbar .pn{text-align:center;min-width:70px}.sealbtn{cursor:pointer;color:var(--ink-2);background:0 0;border:none;align-items:center;gap:7px;padding:2px 6px;font:12.5px -apple-system,sans-serif;display:flex}.sealbtn:hover{color:var(--ink);background:0 0}.duo{height:calc(100vh - 42px);display:flex}.pane{flex:1;overflow:auto}.pane.imgp{background:#2c2925}.pane.imgp img{width:100%;display:block}.pane.txtp{letter-spacing:.04em;background:var(--paper);border-left:1px solid var(--line);padding:28px 38px 60px;font-size:20px;line-height:2.05}.ptext{white-space:pre-wrap;outline:none;min-height:70%}.win{background:var(--win);box-shadow:inset 0 -2px var(--win-b)}.unsure,.win{cursor:pointer;border-radius:2px}.unsure{background:var(--unsure);box-shadow:inset 0 -2px var(--unsure-b)}.furniture{color:var(--ink-3);background:var(--paper-2);cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);border-radius:3px}.furniture:before{content:attr(data-badge);border:1px solid var(--line);color:var(--ink-2);writing-mode:horizontal-tb;vertical-align:middle;border-radius:4px;margin:0 .35em;padding:0 .35em;font:9px/1.5 -apple-system,sans-serif;text-decoration:none;display:inline-block}.furniture.candidate{outline:1px dashed var(--ink-3);outline-offset:2px}.furniture.kept{color:var(--ink-2);background:0 0}.merge-banner{color:var(--seal);background:#f9e5e1;border-bottom:1px solid #e8b5aa;align-items:center;gap:10px;padding:9px 16px;font:12.5px -apple-system,sans-serif;display:flex}.reader{background:var(--paper);z-index:60;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}.reader.night{background:var(--night-bg);color:var(--night-ink)}.rpages{flex:1;max-width:1500px;display:flex}.rpage{font-size:var(--rfs,21px);letter-spacing:.045em;white-space:pre-wrap;flex:1;padding:52px 58px;line-height:2.15;overflow-y:auto}.reader.night .rpage{color:var(--night-ink)}.rpage+.rpage{border-left:1px solid var(--line)}.reader.night .rpage+.rpage{border-color:#3a352e}.reader.vert .rpage{writing-mode:vertical-rl;padding:56px 40px;overflow:auto hidden}.reader.vert .rpages{flex-direction:row-reverse}.reader.vert .rpage+.rpage{border-left:none;border-right:1px solid var(--line)}.rnum{color:var(--ink-3);-webkit-user-select:none;user-select:none;font:11.5px -apple-system,sans-serif;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.reader.night .rnum{color:#5f574a}.edge{z-index:61;cursor:pointer;width:16%;position:fixed;top:0;bottom:0}.edge.l{left:0}.edge.r{right:0}.corner{z-index:70;border:1px solid var(--line);width:30px;height:30px;color:var(--ink-3);cursor:pointer;opacity:.35;-webkit-user-select:none;user-select:none;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:opacity .2s;display:flex;position:fixed;bottom:16px;right:18px}.corner.on,.corner:hover{opacity:1;background:var(--paper)}.reader.night .corner{color:#8a8172;border-color:#3a352e}.reader.night .corner.on,.reader.night .corner:hover{background:var(--night-paper)}.cmenu{z-index:70;border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;gap:2px;min-width:150px;padding:6px;font:13px -apple-system,sans-serif;display:flex;position:fixed;bottom:54px;right:18px;box-shadow:0 10px 30px #281e0f2e}.reader.night .cmenu{background:var(--night-paper);border-color:#3a352e}.cmenu button{text-align:left;color:var(--ink);background:0 0;border:none;border-radius:6px;width:100%;padding:7px 10px}.reader.night .cmenu button{color:var(--night-ink)}.cmenu button:hover{background:var(--paper-2)}.reader.night .cmenu button:hover{background:#332e28}.cmenu .sep{background:var(--line);height:1px;margin:4px 6px}.reader.night .cmenu .sep{background:#3a352e}.cmenu .fs{gap:4px;padding:2px 6px;display:flex}.cmenu .fs button{text-align:center;border:1px solid var(--line);flex:1}.candidate-pop{z-index:100;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;max-width:330px;padding:8px;position:fixed;box-shadow:0 8px 28px #281e0f33}.candidate-pop .cand{text-align:left;background:0 0;border:none;border-radius:6px;width:100%;margin:2px 0;padding:6px 9px;display:block}.candidate-pop .cand:hover{background:var(--paper-2)}.candidate-pop .cand b{font-family:Songti TC,serif;font-size:16px}.candidate-pop .who{color:var(--ink-3);margin-left:6px;font-size:11.5px}.modal-bg{z-index:80;background:#19140e6b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border-radius:12px;width:min(540px,92vw);padding:24px 28px;font:14px -apple-system,sans-serif}.modal h3{letter-spacing:.08em;margin:0 0 14px;font-family:Songti TC,serif}.modal input[type=password],.modal input[type=text],.modal textarea{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:15px}.modal textarea{min-height:140px;font-family:Songti TC,serif}.modal .row{margin:12px 0}.drop{border:1.5px dashed var(--line);text-align:center;color:var(--ink-3);cursor:pointer;border-radius:8px;padding:26px}.drop.on{background:var(--paper-2);border-color:var(--ink-2)}.hint{color:var(--ink-3);font-size:12px;line-height:1.6}.login-page{place-items:center;min-height:100vh;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:min(340px,90vw);padding:32px;display:flex;box-shadow:0 10px 30px #281e0f14}.login-card h1.lib{margin:0}.login-card input{border:1px solid var(--line);border-radius:6px;padding:9px 10px;font-size:15px}.login-card .warnline{margin:0}@media (width<=760px){.duo{flex-direction:column;height:auto;min-height:calc(100vh - 42px)}.pane.imgp{max-height:45vh}.pane.txtp{border-left:0;padding:22px}.rpage{padding:42px 28px}}
