:root{--font-song:"Songti SC", "STSong", Georgia, "Noto Serif SC", serif;--font-hei:-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-kai:"Kaiti SC", "STKaiti", KaiTi, "Noto Serif SC", serif;--font-yuan:"Yuanti SC", "Yuanti TC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-pian:"HanziPen SC", "Hanzipen SC", "HanziPen TC", "Kaiti SC", KaiTi, cursive;--font-sans:-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-serif:var(--font-song);--paper:#f5ecdd;--surface:#f5ecdd;--page:#efe8da;--card:#fdfaf3;--ink:#2c2822;--ink-soft:#2c28228c;--line:#e2dccd;--accent:#d2573c;--dot:#d2573c;--font:var(--font-song)}:root[data-theme=plain]{--paper:#fff;--surface:#fff;--page:#f2f2f7;--card:#fff;--ink:#2b2b2b;--ink-soft:#2b2b2b80;--line:#ececec;--accent:#ef5b41;--dot:#ef5b41}:root[data-theme=green]{--paper:#e4efdf;--surface:#e4efdf;--page:#dcebd7;--card:#eef5ea;--ink:#29332a;--ink-soft:#29332a8c;--line:#cbdcc4;--accent:#c9563a;--dot:#c9563a}:root[data-theme=night]{--paper:#1a1917;--surface:#1a1917;--page:#141311;--card:#211f1c;--ink:#c9c4ba;--ink-soft:#c9c4ba80;--line:#34322e;--accent:#e8735c;--dot:#e8735c}:root[data-font=song]{--font:var(--font-song)}:root[data-font=hei]{--font:var(--font-hei)}:root[data-font=kai]{--font:var(--font-kai)}:root[data-font=yuan]{--font:var(--font-yuan)}:root[data-font=pian]{--font:var(--font-pian)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior:none;touch-action:pan-y;background:var(--page);height:100%;overflow:hidden}body{font-family:var(--font-sans)}.app{background:var(--page);color:var(--ink);transition:background .45s,color .45s;position:fixed;inset:0;overflow:hidden}.view-slot{opacity:0;pointer-events:none;flex-direction:column;transition:opacity .3s;display:flex;position:absolute;inset:0}.view-slot.active{opacity:1;pointer-events:auto}.nav-top{padding:calc(env(safe-area-inset-top) + 8px) 68px 12px;color:var(--ink);flex:none;justify-content:center;align-items:center;display:flex;position:relative}.nav-top h1{font-family:var(--font-sans);letter-spacing:.5px;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:600;overflow:hidden}.nav-btn{top:calc(env(safe-area-inset-top) + 2px);background:var(--card);width:40px;height:40px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 2px 10px #00000012}.nav-btn--l{left:16px}.nav-btn--r{right:16px}.view-home{background:var(--page);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.home-wrap{min-height:0;padding:4px 16px calc(env(safe-area-inset-bottom) + 104px);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.search-bar{background:var(--card);height:44px;color:var(--ink-soft);border-radius:14px;flex:none;align-items:center;gap:10px;margin-bottom:8px;padding:0 14px;display:flex}.search-bar svg{opacity:.85;flex:none}.search-bar input{font-size:15px;font-family:var(--font-sans);color:var(--ink);background:0 0;border:none;outline:none;flex:1}.search-bar input::placeholder{color:color-mix(in srgb, var(--ink) 55%, transparent)}.home-group{margin-bottom:10px}.home-group__hd{font-family:var(--font-sans);color:var(--ink-soft);cursor:pointer;justify-content:space-between;align-items:center;padding:14px 6px 10px;font-size:15px;font-weight:500;display:flex}.home-group__hd svg{opacity:.6;transition:transform .25s}.home-entry{background:var(--card);cursor:pointer;border-radius:16px;margin-bottom:10px;padding:11px 16px 12px;position:relative;box-shadow:0 4px 14px #0000000f,0 1px 2px #0000000a}.home-entry__date{font-family:var(--font-sans);color:var(--ink-soft);margin-bottom:2px;padding-right:18px;font-size:12.5px}.home-entry__title{font-family:var(--font-sans);letter-spacing:.2px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;font-size:17px;font-weight:600;overflow:hidden}.home-entry__sub{font-family:var(--font-sans);color:var(--ink-soft);align-items:center;gap:5px;font-size:12px;display:flex}.home-entry__sub svg{opacity:.75}.home-entry__dot{background:var(--dot);border-radius:50%;width:8px;height:8px;position:absolute;top:15px;right:16px}.home-empty{color:var(--ink-soft);font-family:var(--font-sans);text-align:center;cursor:pointer;flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.home-fab{background:var(--accent);color:#fff;cursor:pointer;z-index:20;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:absolute;bottom:88px;right:20px;box-shadow:0 10px 24px #00000040}.view-shelf{background:var(--page);flex-direction:column;flex:1;min-height:0;display:flex}.shelf-wrap{min-height:0;padding:4px 16px calc(env(safe-area-inset-bottom) + 104px);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.shelf-sec-hd{font-family:var(--font-sans);color:var(--ink-soft);justify-content:space-between;align-items:baseline;margin:14px 6px;font-size:15px;font-weight:500;display:flex}.shelf-grid2{grid-template-columns:repeat(2,1fr);gap:22px 16px;display:grid}.vol-card{cursor:pointer;flex-direction:column;display:flex}.vol-cover{background:linear-gradient(135deg,#33413a,#26312c);border-radius:4px 8px 8px 4px;position:relative;overflow:hidden;box-shadow:0 14px 26px #00000059,inset 0 0 0 1px #d4b4832e}.vol-cover--grid{aspect-ratio:2/3;width:100%}.vol-cover:before{content:"";background:linear-gradient(90deg,#00000080,#0000000d 60%,#ffffff1f);width:8px;position:absolute;top:0;bottom:0;left:0}.vol-cover__in{color:#e8d5b0;font-family:var(--font-serif);padding:16px 8px 10px 14px;position:absolute;inset:0}.vol-cover__t{letter-spacing:2px;font-size:14px;line-height:1.5}.vol-card__meta{padding-top:10px}.vol-card__title{font-family:var(--font-sans);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:15px;font-weight:500;overflow:hidden}.vol-card__row{justify-content:space-between;align-items:center;gap:6px;display:flex}.vol-card__status{font-family:var(--font-sans);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.vol-card__row svg{opacity:.5;cursor:pointer;flex:none}.view-read{background:var(--paper);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.book-wrap{touch-action:none;cursor:pointer;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.book-wrap--scroll{align-items:stretch}.flip-host{width:100%;height:100%;position:relative}.read-chrome{pointer-events:none;opacity:0;z-index:40;transition:opacity .25s;position:absolute;inset:0}.read-chrome.show{opacity:1}.read-chrome__top{top:calc(env(safe-area-inset-top) + 14px);justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute;left:18px;right:18px}.read-pill,.read-chrome__page{pointer-events:auto;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);font-family:var(--font-sans);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:20px;max-width:60%;padding:7px 16px;font-size:12px;overflow:hidden;box-shadow:0 6px 16px #0000001f}.read-x{pointer-events:auto;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex;box-shadow:0 6px 16px #0000001f}.read-chrome__page{bottom:calc(env(safe-area-inset-bottom) + 76px);position:absolute;left:50%;transform:translate(-50%)}.read-chrome__bottom{bottom:calc(env(safe-area-inset-bottom) + 18px);background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(16px);pointer-events:auto;border-radius:22px;gap:6px;padding:8px 14px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #00000029}.read-tool{color:var(--ink-soft);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:3px;padding:5px 14px;display:flex}.read-tool span{font-family:var(--font-sans);font-size:10px}.toc-sheet{flex-direction:column;max-height:70vh;display:flex}.toc-sheet__hd{margin-bottom:14px}.toc-sheet__title{font-family:var(--font);color:var(--ink);margin-bottom:4px;font-size:17px}.toc-sheet__sub{font-family:var(--font-sans);color:var(--ink-soft);font-size:12px}.toc-sheet__list{-webkit-overflow-scrolling:touch;overflow-y:auto}.page{background:var(--surface);color:var(--ink);overflow:hidden}.page__pad{padding:calc(env(safe-area-inset-top) + 28px) 20px calc(env(safe-area-inset-bottom) + 30px);flex-direction:column;display:flex;position:absolute;inset:0}.page.--cover{color:#e8d5b0;background:linear-gradient(135deg,#33413a,#26312c)}.page.--cover .c-title{font-family:var(--font-serif);letter-spacing:6px;margin-top:10px;font-size:26px;line-height:1.6}.page.--cover .c-sub{letter-spacing:3px;opacity:.7;margin-top:auto;font-size:12px}.page.--cover .c-frame{inset:calc(env(safe-area-inset-top) + 20px) 20px calc(env(safe-area-inset-bottom) + 20px);border:1px solid #d4b48359;border-radius:3px;position:absolute}.toc-h{font-family:var(--font);letter-spacing:4px;color:var(--ink-soft);margin-bottom:22px;font-size:15px}.toc-item{border-bottom:.5px solid var(--line);cursor:pointer;align-items:baseline;gap:12px;padding:11px 0;display:flex}.toc-d{font-family:var(--font);color:var(--ink-soft);flex:none;width:66px;font-size:13px}.toc-t{font-family:var(--font);flex:1;font-size:15px}.art-date{font-family:var(--font);color:var(--ink);letter-spacing:2px;margin-bottom:4px;font-size:15px;font-weight:600}.art-title{font-family:var(--font);letter-spacing:1px;color:var(--ink-soft);margin-bottom:4px;font-size:16px;font-weight:400;line-height:1.5}.art-body{font-family:var(--font);letter-spacing:.2px;text-align:justify;text-justify:inter-ideograph;text-wrap:pretty;font-size:18.5px;line-height:1.95}.art-body p{text-indent:2em;margin:0}.art-body>.art-date+p,.art-body>.art-title+p,.scroll-art .art-body{margin-top:.8em}.art-view{flex:1;min-height:0;position:relative;overflow:hidden}.flow{column-fill:auto;column-gap:40px;position:absolute;inset:0}.flip-measure{visibility:hidden;pointer-events:none;z-index:-1;position:absolute;top:0;left:0}.flip-measure .page{position:relative}.art-foot{font-family:var(--font);color:var(--ink-soft);text-align:center;padding-top:12px;font-size:12px}.scroll-doc-wrap{-webkit-overflow-scrolling:touch;flex:1;width:100%;min-height:0;overflow-y:auto}.scroll-doc{padding:calc(env(safe-area-inset-top) + 84px) 20px calc(env(safe-area-inset-bottom) + 72px)}.scroll-head{font-family:var(--font);text-align:center;color:var(--ink-soft);letter-spacing:3px;margin-bottom:42px;font-size:13px}.scroll-art .art-body{flex:none;overflow:visible}.scroll-sep{text-align:center;color:var(--ink-soft);letter-spacing:8px;opacity:.4;margin:44px 0 40px;font-size:11px}.view-write{background:var(--paper);flex-direction:column;flex:1;display:flex}.w-top{padding:calc(env(safe-area-inset-top) + 12px) 18px 0;color:var(--ink);justify-content:space-between;align-items:center;display:flex}.w-btn{background:var(--card);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 3px 12px #00000014}.w-btn--go{background:var(--accent);color:#fff}.w-btn.busy{opacity:.45}.w-top .w-date{font-family:var(--font);color:var(--ink-soft);font-size:14px}.w-title{width:100%;font-size:22px;font-weight:600;font-family:var(--font);color:var(--ink);background:0 0;border:none;outline:none;padding:24px 26px 4px}.w-title::placeholder{color:var(--ink-soft)}.w-body{resize:none;width:100%;font-size:16px;line-height:2;font-family:var(--font);color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:8px 26px 12px}.w-body::placeholder{color:var(--ink-soft)}.w-bar{margin:0 16px calc(env(safe-area-inset-bottom) + 12px);background:var(--card);border-radius:22px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px 8px 8px;display:flex;box-shadow:0 6px 20px #0000001a}.w-bar__act{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);font-family:var(--font-sans);cursor:pointer;border-radius:18px;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:500;display:flex}.w-bar__act.busy{opacity:.5}.w-bar__n{font-family:var(--font-sans);color:var(--ink-soft);padding-right:8px;font-size:12px}.mask{opacity:0;visibility:hidden;pointer-events:none;z-index:80;background:#00000057;transition:opacity .3s,visibility 0s .34s;position:absolute;inset:0}.mask.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s,visibility}.sheet{background:var(--surface);padding:20px 20px calc(env(safe-area-inset-bottom) + 32px);color:var(--ink);border-radius:22px 22px 0 0;transition:transform .34s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.mask.show .sheet{transform:none}.sheet h3{font-size:15px;font-weight:500;font-family:var(--font-sans);margin-bottom:16px}.opt-row{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.opt-row--font{grid-template-columns:repeat(3,1fr)}.opt-row--mode{grid-template-columns:repeat(2,1fr)}.opt{border:1px solid var(--line);text-align:center;cursor:pointer;font-family:var(--font-sans);border-radius:12px;padding:12px 6px}.opt-pv{color:var(--ink);white-space:nowrap;margin-bottom:7px;font-size:19px;line-height:1.3}.opt.sel{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.opt .sw{border:1px solid var(--line);border-radius:8px;width:100%;height:34px;margin-bottom:8px}.opt .nm{font-size:13px}.sub-h{color:var(--ink-soft);font-size:12px;font-family:var(--font-sans);margin-bottom:10px}.rename-input{border:1px solid var(--line);width:100%;font-size:15px;font-family:var(--font-sans);color:var(--ink);background:var(--paper);border-radius:10px;outline:none;margin-bottom:16px;padding:10px 14px}.rename-actions{gap:10px;display:flex}.rename-actions .opt{flex:1}.sheet-act{border-top:.5px solid var(--line);font-family:var(--font-sans);color:var(--ink);cursor:pointer;align-items:center;gap:12px;padding:14px 4px;font-size:15px;display:flex}.sheet-act svg{opacity:.7}.toast{top:calc(env(safe-area-inset-top) + 44px);color:#f6f1e6;opacity:0;z-index:90;white-space:nowrap;pointer-events:none;background:#1e1a14e6;border-radius:20px;padding:9px 18px;font-size:13px;transition:all .3s;position:absolute;left:50%;transform:translate(-50%)translateY(-12px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.tab-bar{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 10px);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.6);z-index:60;border-radius:30px;gap:2px;width:fit-content;margin:0 auto;padding:6px 8px;display:flex;position:absolute;box-shadow:0 10px 30px #00000024,inset 0 0 0 1px #ffffff0f}.tab-item{min-width:86px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px;transition:color .25s;display:flex}.tab-item.active{color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent)}.tab-item.active svg{fill:currentColor}.tab-label{font-family:var(--font-sans);letter-spacing:.5px;font-size:11px;font-weight:500}.view-settings{background:var(--page);flex-direction:column;flex:1;min-height:0;display:flex}.settings-wrap{-webkit-overflow-scrolling:touch;min-height:0;padding:10px 16px calc(env(safe-area-inset-bottom) + 104px);flex:1;overflow-y:auto}.settings-wrap h3{font-size:15px;font-weight:500;font-family:var(--font-sans);color:var(--ink);margin-bottom:16px}.settings-save{background:var(--accent);color:#fff;height:46px;font-family:var(--font-sans);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;margin-top:6px;font-size:14px;display:flex}.view-overview{background:var(--page);flex-direction:column;flex:1;min-height:0;display:flex}.ov-wrap{-webkit-overflow-scrolling:touch;min-height:0;padding:4px 16px calc(env(safe-area-inset-bottom) + 32px);flex:1;overflow-y:auto}.ov-sec-hd{font-family:var(--font-sans);color:var(--ink-soft);margin:16px 6px 10px;font-size:15px;font-weight:500}.ov-blank{font-family:var(--font-sans);color:var(--ink-soft);padding:10px 6px;font-size:13px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-card{background:var(--card);text-align:center;border-radius:16px;padding:14px 10px 12px;box-shadow:0 4px 14px #0000000f,0 1px 2px #0000000a}.stat-card svg{color:var(--accent);opacity:.9}.stat-card__n{font-family:var(--font-sans);color:var(--ink);margin:6px 0 2px;font-size:24px;font-weight:600;line-height:1.1}.stat-card__l{font-family:var(--font-sans);color:var(--ink-soft);font-size:11.5px}.ov-list{background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 4px 14px #0000000f,0 1px 2px #0000000a}.ov-row{cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.ov-row+.ov-row{border-top:.5px solid var(--line)}.ov-row__ic{background:color-mix(in srgb, var(--accent) 12%, transparent);width:34px;height:34px;color:var(--accent);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.ov-row__main{flex:1;min-width:0}.ov-row__t{font-family:var(--font-sans);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:500;overflow:hidden}.ov-row__s{font-family:var(--font-sans);color:var(--ink-soft);margin-top:2px;font-size:12px}.ov-row__rn{font-family:var(--font-sans);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:999px;flex:none;align-items:center;gap:4px;padding:5px 10px;font-size:12px;display:flex}.ov-row__go{opacity:.35;flex:none}.cal-card{background:var(--card);border-radius:16px;padding:14px 12px 12px;box-shadow:0 4px 14px #0000000f,0 1px 2px #0000000a}.cal-hd{justify-content:space-between;align-items:center;padding:0 4px 10px;display:flex}.cal-hd__t{font-family:var(--font-sans);color:var(--ink);font-size:15px;font-weight:500}.cal-hd__nav{color:var(--ink-soft);gap:6px;display:flex}.cal-hd__nav svg{cursor:pointer}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-wd{text-align:center;font-family:var(--font-sans);color:var(--ink-soft);padding-bottom:4px;font-size:11px}.cal-day{aspect-ratio:1;font-family:var(--font-sans);color:var(--ink-soft);border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex}.cal-day.has{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);cursor:pointer;font-weight:600}.cal-day.today{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent)}.cal-foot{text-align:center;font-family:var(--font-sans);color:var(--ink-soft);padding-top:10px;font-size:11.5px}.view-entry{background:var(--page);flex-direction:column;flex:1;min-height:0;display:flex}.ed-top{padding:calc(env(safe-area-inset-top) + 10px) 16px 6px;flex:none;justify-content:space-between;align-items:center;display:flex}.ed-top__r{align-items:center;gap:10px;display:flex}.ed-btn{background:var(--card);width:38px;height:38px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex;box-shadow:0 3px 12px #00000014}.ed-pill{background:var(--card);height:38px;color:var(--ink);border-radius:19px;align-items:center;display:flex;box-shadow:0 3px 12px #00000014}.ed-pill__b{cursor:pointer;align-items:center;padding:0 14px;display:flex}.ed-pill__sep{background:var(--line);width:.5px;height:18px}.ed-scroll{-webkit-overflow-scrolling:touch;min-height:0;padding:12px 20px calc(env(safe-area-inset-bottom) + 40px);flex:1;overflow-y:auto}.ed-date{font-family:var(--font-sans);color:var(--ink-soft);font-size:13px}.ed-title{font-family:var(--font);color:var(--ink);margin:8px 0 14px;font-size:26px;font-weight:600;line-height:1.4}.ed-count{text-align:center;font-family:var(--font-sans);color:var(--ink-soft);border-bottom:.5px solid var(--line);margin-bottom:20px;padding-bottom:18px;font-size:12px}.ed-body{font-family:var(--font);letter-spacing:.2px;color:var(--ink);text-align:justify;text-wrap:pretty;font-size:19px;line-height:1.85}.ed-body p{margin:0 0 1em}.ed-foot{text-align:center;font-family:var(--font);color:var(--ink-soft);padding-top:16px;font-size:12px}.stf__wrapper,.stf__block{outline:none}
