@charset "UTF-8";:root{--serif: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg: #f5efe3;--bg-soft: #efe7d6;--surface: #fbf7ee;--surface-2: #f3ecde;--line: rgba(38, 28, 18, .1);--line-2: rgba(38, 28, 18, .06);--ink: #1d1812;--ink-2: #3a322a;--ink-3: #6b5f4f;--ink-4: #9b8f7d;--accent: #c8702b;--accent-ink: #ffffff;--accent-soft: rgba(200, 112, 43, .12);--good: #2e7d57;--warn: #b6531c;--danger: #c0392b;--danger-soft: rgba(192, 57, 43, .1);--shadow: 0 1px 2px rgba(38, 28, 18, .06), 0 8px 24px rgba(38, 28, 18, .06);--shadow-lg: 0 2px 6px rgba(38, 28, 18, .08), 0 24px 60px rgba(38, 28, 18, .16);--sidebar-w: 220px;--tabbar-h: 64px;--radius-s: 8px;--radius: 14px;--radius-l: 22px;--radius-xl: 32px}:root[data-theme=dark]{--bg: #15110d;--bg-soft: #1c1813;--surface: #1f1a14;--surface-2: #25201a;--line: rgba(245, 235, 215, .1);--line-2: rgba(245, 235, 215, .06);--ink: #f4ead4;--ink-2: #d8cdb5;--ink-3: #9c907a;--ink-4: #6e6453;--accent: #e08a3f;--accent-ink: #1a140d;--accent-soft: rgba(224, 138, 63, .16);--good: #6dc294;--warn: #e0a06b;--danger: #e05555;--danger-soft: rgba(224, 85, 85, .12);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .4), 0 24px 60px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);background:radial-gradient(1200px 800px at 20% -10%,color-mix(in oklab,var(--accent) 8%,transparent),transparent 50%),var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}input,textarea{font:inherit;color:inherit}a{color:inherit}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.app-shell{display:flex;min-height:100dvh}.sidebar{display:none;flex-direction:column;width:var(--sidebar-w);flex:0 0 var(--sidebar-w);min-height:100dvh;position:sticky;top:0;background:var(--surface);border-right:1px solid var(--line);overflow:hidden;padding:env(safe-area-inset-top,0px) 0 16px;transition:width .25s ease,flex-basis .25s ease}.app-shell.sidebar-collapsed{--sidebar-w: 60px}.app-shell.sidebar-collapsed>nav>img{width:65px}.brand-deco{overflow:hidden;max-height:220px;transition:max-height .25s ease,opacity .2s ease}.sidebar.collapsed .brand-deco{max-height:0;opacity:0}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:14px 18px 18px;font-family:var(--serif);font-size:24px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;transition:padding .25s ease,justify-content .25s ease}.brand-icon-mark{color:var(--accent);flex-shrink:0}.brand-label{overflow:hidden;transition:opacity .15s ease,max-width .25s ease;max-width:200px;margin:0 auto;font-size:2rem;padding-bottom:1rem}.sidebar.collapsed .sidebar-brand{padding:14px 0 18px;justify-content:center}.app-shell.sidebar-collapsed nav>img{padding:10px}.app-shell nav>img{padding:1rem;width:100px;margin:0 auto}.sidebar.collapsed .brand-label{opacity:0;max-width:0}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--ink-3);transition:background .15s,color .15s,padding .25s,justify-content .25s;width:100%;text-align:left;white-space:nowrap;overflow:hidden}.sidebar-link:hover,.sidebar-link.active{background:var(--surface-2);color:var(--ink)}.sidebar-link svg{width:20px;height:20px;flex-shrink:0}.link-label{overflow:hidden;transition:opacity .15s ease,max-width .25s ease;max-width:200px}.sidebar.collapsed .sidebar-link{padding:10px}.sidebar.collapsed .link-label{opacity:0;max-width:0}.sidebar-footer{margin-top:auto;padding:8px;display:flex;justify-content:flex-end;transition:justify-content .25s}.sidebar.collapsed .sidebar-footer{justify-content:center}.sidebar-toggle{padding:8px;border-radius:8px;color:var(--ink-3);flex-shrink:0;transition:background .15s,color .15s}.sidebar-toggle:hover{background:var(--surface-2);color:var(--ink)}.app-body{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;height:100dvh;overflow:hidden}@media(min-width:768px){.sidebar{display:flex}.tabbar{display:none!important}.statusbar{display:none}}.statusbar{height:calc(48px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 22px 0;display:none;align-items:center;justify-content:start;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);flex:0 0 auto;gap:1rem}.statusbar .right{display:flex;align-items:center;gap:5px;opacity:.85}.statusbar svg{display:block}.screen{flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column}.scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.scroll::-webkit-scrollbar{width:4px;height:4px}.scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.tabbar{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:color-mix(in oklab,var(--bg) 80%,transparent);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-top:1px solid var(--line-2);position:relative;z-index:5}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;color:var(--ink-3);font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:500;transition:color .15s}.tabbar button.active{color:var(--accent)}.tabbar button svg{width:22px;height:22px}.header{padding:14px 22px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto}.header .greet{display:flex;flex-direction:column;gap:2px}.header .greet .kicker{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.header .greet{min-width:0;flex:1 1 auto}.header .greet h1{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.05;margin:0;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iconbtn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--ink-2);background:transparent;transition:background .15s,color .15s}.iconbtn:hover{background:var(--surface-2);color:var(--ink)}.iconbtn:active{transform:scale(.96)}.iconbtn svg{width:20px;height:20px}.iconbtn.solid{background:var(--surface)}.iconbtn.solid:hover{background:var(--surface-2)}.section-h{display:flex;align-items:baseline;justify-content:space-between;padding:22px 22px 10px}.section-h h2{font-family:var(--serif);font-weight:400;font-size:22px;margin:0;letter-spacing:-.005em;white-space:nowrap}.section-h .more{font-size:12px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}.lib-hdr-actions{display:flex;gap:4px;align-items:center;position:relative}.lib-search-bar{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;animation:lib-search-in .15s ease;color:var(--ink-3)}.lib-search-bar svg{flex-shrink:0}@keyframes lib-search-in{0%{opacity:0;transform:scaleX(.96)}to{opacity:1;transform:scaleX(1)}}.lib-search-input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-family:var(--sans);font-size:15px;color:var(--ink)}.lib-search-input::placeholder{color:var(--ink-4)}.lib-search-input::-webkit-search-cancel-button{display:none}.lib-search-clear{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--ink-4);color:var(--bg);border:none;cursor:pointer;flex-shrink:0}.lib-search-cancel{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--accent);background:none;border:none;cursor:pointer;flex-shrink:0;padding:0 2px;white-space:nowrap}.lib-options-wrap{position:relative}.lib-options-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:6px;z-index:200;animation:lib-menu-in .14s ease}@keyframes lib-menu-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.lib-options-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:4px 10px 6px}.lib-options-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border-radius:9px;font-family:var(--sans);font-size:13px;color:var(--ink-2);background:transparent;border:none;cursor:pointer;text-align:left;gap:8px}.lib-options-item:hover{background:var(--surface-2);color:var(--ink)}.lib-options-item.active{color:var(--ink);font-weight:500}.lib-options-sep{height:1px;background:var(--line-2);margin:4px 6px}.hero{margin:4px 16px 0;padding:16px;border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);display:grid;grid-template-columns:96px 1fr;gap:14px;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:-40% -20% auto auto;width:180px;height:180px;background:radial-gradient(circle,var(--accent-soft),transparent 70%);pointer-events:none}.hero .meta{display:flex;flex-direction:column;min-width:0}.hero .meta .kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:4px}.hero .meta .title{font-family:var(--serif);font-size:20px;line-height:1.1;letter-spacing:-.005em;margin:0 0 2px;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hero .meta .author{font-size:12px;color:var(--ink-3);margin-bottom:auto}.hero .meta .row{display:flex;align-items:center;gap:8px;margin-top:10px}.hero .pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 6px;background:var(--accent);color:var(--accent-ink);border-radius:999px;font-size:12px;font-weight:600}.hero .pill .ply{width:22px;height:22px;border-radius:999px;background:#ffffff2e;display:inline-flex;align-items:center;justify-content:center}.hero .pill .ply svg{width:10px;height:10px}.hero .timeleft{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.hero .bar{height:3px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:12px}.hero .bar>div{height:100%;background:var(--accent);border-radius:99px}.cover{aspect-ratio:1;border-radius:10px;overflow:hidden;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:10px;color:var(--cover-ink, #fff);background:var(--cover-bg, #444);box-shadow:0 1px 2px #00000026,0 6px 18px #0000002e;isolation:isolate;-webkit-user-select:none;user-select:none}.cover.small{border-radius:8px;padding:7px}.cover .ctitle{font-family:var(--serif);font-size:14px;line-height:1.08;letter-spacing:-.005em;text-wrap:pretty;word-break:break-word}.cover.small .ctitle{font-size:11px}.cover.lg .ctitle{font-size:28px}.cover.xl .ctitle{font-size:40px;line-height:1.02}.cover .cauthor{font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.cover.small .cauthor{font-size:7px}.cover.lg .cauthor,.cover.xl .cauthor{font-size:11px}.cover[data-style=type]{justify-content:flex-end}.cover[data-style=type] .ctitle{font-style:italic}.cover[data-style=gradient]{background:linear-gradient(155deg,var(--cover-a),var(--cover-b) 60%,var(--cover-c, var(--cover-b)))}.cover[data-style=pattern]:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 20% 10%,color-mix(in oklab,var(--cover-a) 70%,white 30%) 0%,transparent 40%),radial-gradient(circle at 80% 90%,color-mix(in oklab,var(--cover-b) 70%,black 20%) 0%,transparent 40%),var(--cover-a)}.cover[data-style=pattern]:after{content:"";position:absolute;inset:0;z-index:-1;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 14px);mix-blend-mode:overlay}.row-h{display:flex;gap:14px;padding:0 22px 4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.row-h::-webkit-scrollbar{display:none}.row-h>*{scroll-snap-align:start;flex:0 0 auto}.row-h .card{width:116px;display:flex;flex-direction:column;gap:8px}.row-h .card .cover{width:116px}.row-h .card .t{font-family:var(--serif);font-size:14px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.005em}.row-h .card .a{font-size:11px;color:var(--ink-3)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:16px 12px;padding:4px 22px 24px}.grid .card{display:flex;flex-direction:column;gap:6px;min-width:0}.grid .card .t{font-family:var(--serif);font-size:13px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px;letter-spacing:-.005em}.grid .card .a{font-size:10.5px;color:var(--ink-3)}.grid .card .prog{height:2px;background:var(--line);border-radius:99px;margin-top:4px;overflow:hidden}.grid .card .prog>div{height:100%;background:var(--accent)}.chip-scroll{display:flex;gap:8px;padding:0 22px 4px;overflow-x:auto;scrollbar-width:none}.chip-scroll::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;height:32px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-size:12.5px;font-weight:500;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip.ghost{background:transparent}.miniplayer{position:fixed;left:8px;right:8px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 8px);z-index:4}@media(max-width:768px){.statusbar{display:flex}}@media(min-width:768px){.miniplayer{left:calc(var(--sidebar-w) + 16px);right:16px;bottom:16px}}.miniplayer{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:8px 10px 8px 8px;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;box-shadow:var(--shadow);transition:transform .3s ease-out,opacity .2s}.miniplayer .cover{width:44px;border-radius:8px;padding:5px;box-shadow:none}.miniplayer .cover .ctitle{font-size:8px;line-height:1}.miniplayer .cover .cauthor{display:none}.miniplayer .info{min-width:0}.miniplayer .info .t{font-family:var(--serif);font-size:14px;line-height:1.1;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.miniplayer .info .a{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.miniplayer .ctrl{display:flex;align-items:center;gap:4px}.miniplayer .play{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);background:transparent}.miniplayer .play:hover{background:var(--surface-2)}.miniplayer .play svg{width:18px;height:18px}.miniplayer .progress{position:absolute;left:14px;right:14px;bottom:4px;display:flex;flex-direction:column;gap:2px}.miniplayer .prog-chapter{height:2px;border-radius:99px;background:linear-gradient(to right,var(--accent) var(--pct, 0%),color-mix(in srgb,var(--accent) 22%,var(--line)) var(--pct, 0%));transition:background .2s linear}.miniplayer .prog-book{height:1.5px;border-radius:99px;background:linear-gradient(to right,var(--ink-3) var(--pct, 0%),var(--line) var(--pct, 0%));transition:background .2s linear}.np{position:fixed;inset:0;z-index:10;background:radial-gradient(120% 80% at 50% -10%,var(--np-glow, var(--accent-soft)),transparent 60%),var(--bg);display:flex;flex-direction:column;transform:translateY(110%);transition:transform .32s ease-out;border-radius:18px 18px 0 0;overflow-y:auto;scrollbar-width:none}.np::-webkit-scrollbar{display:none}.np.open{transform:translateY(0)!important}.np-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 6px}.np-head .label{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.np-head .label .b{color:var(--ink);font-size:12px;letter-spacing:.04em;text-transform:none;font-weight:500}.np-cover{flex:1 1 0;min-height:120px;padding:8px 28px;display:flex;justify-content:center;align-items:center}.np-cover .cover{aspect-ratio:1;width:min(300px,55vw);box-shadow:0 4px 16px #00000040,0 24px 48px #00000052}.np-meta{padding:8px 28px 4px;text-align:center}.np-meta .title{font-family:var(--serif);font-size:22px;line-height:1.1;letter-spacing:-.01em;margin:0;text-wrap:balance}.np-meta .author{font-size:12.5px;color:var(--ink-3);margin-top:4px}.np-meta .chapter{font-size:11.5px;color:var(--ink-2);margin-top:8px;display:inline-flex;align-items:center;gap:6px}.np-meta .chapter .dot{width:4px;height:4px;border-radius:99px;background:var(--accent)}.np-meta .chapter-status{margin-top:10px;width:100%}.np-meta .ch-label{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:6px}.np-meta .ch-num{font-size:10px;font-family:var(--mono);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.np-meta .ch-title{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.np-meta .ch-prog-track{height:44px;display:flex;align-items:center;width:80%;margin:0 auto;cursor:pointer}.np-meta .ch-slider{-webkit-appearance:none;appearance:none;width:100%;height:3px;border-radius:99px;cursor:pointer;outline:none;border:none;padding:0;background:transparent}.np-meta .ch-slider::-webkit-slider-runnable-track{height:3px;border-radius:99px;background:linear-gradient(to right,var(--accent) var(--pct, 0%),var(--line) var(--pct, 0%));transition:background .25s linear}.np-meta .ch-slider::-moz-range-track{height:3px;border-radius:99px;background:var(--line)}.np-meta .ch-slider::-moz-range-progress{height:3px;border-radius:99px;background:var(--accent)}.np-meta .ch-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 5px #0006;cursor:grab;opacity:0;transition:opacity .15s;margin-top:-5.5px}.np-meta .ch-slider:hover::-webkit-slider-thumb,.np-meta .ch-slider:active::-webkit-slider-thumb{opacity:1;cursor:grabbing}.np-meta .ch-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:none;background:#fff;box-shadow:0 1px 5px #0006;cursor:grab;opacity:0;transition:opacity .15s}.np-meta .ch-slider:hover::-moz-range-thumb,.np-meta .ch-slider:active::-moz-range-thumb{opacity:1;cursor:grabbing}.np-scrub{padding:6px 22px 4px}.wave{position:relative;height:44px;display:flex;align-items:center;cursor:pointer;touch-action:none}.wave svg{width:100%;height:100%;display:block}.wave .marker{position:absolute;top:0;bottom:0;width:1px;background:var(--ink-4);opacity:.45}.wave .marker:after{content:"";position:absolute;top:-3px;left:-2px;width:5px;height:5px;background:var(--ink-4);border-radius:99px}.wave .head{position:absolute;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklab,var(--accent) 25%,transparent);pointer-events:none}.np-times{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:6px;font-family:var(--mono);letter-spacing:-.02em}.np-ctrl{padding:8px 24px 2px;display:grid;grid-template-columns:1fr 1fr auto 1fr 1fr;gap:4px;align-items:center;justify-items:center}.np-ctrl .big{width:64px;height:64px;border-radius:999px;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 24px color-mix(in oklab,var(--ink) 30%,transparent);transition:transform .1s}.np-ctrl .big:active{transform:scale(.95)}.np-ctrl .big svg{width:28px;height:28px}.np-ctrl .skip{width:52px;height:52px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);position:relative}.np-ctrl .skip:hover{background:var(--surface-2);color:var(--ink)}.np-ctrl .skip svg{width:30px;height:30px}.np-ctrl .skip .n{position:absolute;font-size:9px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0}.np-ctrl .iconbtn{color:var(--ink-3)}.np-ctrl .iconbtn svg{width:22px;height:22px}.np-ctrl .ch-nav-btn{transition:opacity .15s,color .15s}.np-ctrl .ch-nav-btn:disabled{opacity:.25;pointer-events:none}.np-ctrl .ch-nav-btn.invisible{visibility:hidden;pointer-events:none}.np-volume{padding:6px 28px 10px;display:flex;align-items:center;gap:10px}.np-volume .vol-icon-btn{color:var(--ink-3);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;transition:color .15s,background .15s}.np-volume .vol-icon-btn:hover{background:var(--surface-2);color:var(--ink)}.np-volume .vol-icon-btn.vol-muted{color:var(--line)}.np-volume .vol-pct{font-size:10px;font-family:var(--mono);font-weight:600;color:var(--ink-3);letter-spacing:.04em;min-width:30px;text-align:right;flex-shrink:0}.np-volume .vol-slider{-webkit-appearance:none;appearance:none;flex:1;height:3px;border-radius:99px;cursor:pointer;outline:none;border:none;padding:0;background:transparent}.np-volume .vol-slider::-webkit-slider-runnable-track{height:3px;border-radius:99px;background:linear-gradient(to right,var(--ink-2) var(--pct, 100%),var(--line) var(--pct, 100%))}.np-volume .vol-slider::-moz-range-track{height:3px;border-radius:99px;background:var(--line)}.np-volume .vol-slider::-moz-range-progress{height:3px;border-radius:99px;background:var(--ink-2)}.np-volume .vol-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 5px #0006;cursor:grab;margin-top:-5.5px}.np-volume .vol-slider:active::-webkit-slider-thumb{cursor:grabbing}.np-volume .vol-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:none;background:#fff;box-shadow:0 1px 5px #0006;cursor:grab}.np-volume .vol-slider:active::-moz-range-thumb{cursor:grabbing}.np-foot{padding:10px 18px 18px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:6px;align-items:center}.np-foot button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:var(--radius);color:var(--ink-3);font-size:10.5px;font-weight:500;letter-spacing:.02em;transition:background .15s,color .15s}.np-foot button:hover{background:var(--surface-2);color:var(--ink)}.np-foot button.on{color:var(--accent)}.np-foot button.speed-on{color:var(--accent);background:var(--accent-soft)}.np-foot button svg{width:20px;height:20px}.np-foot button .speedlabel{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:-.02em}.scrim{position:fixed;inset:0;z-index:20;background:#0a060066;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.scrim.open{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;background:var(--bg-soft);border-radius:24px 24px 0 0;max-height:80%;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s ease-out;box-shadow:0 -10px 40px #0003}.sheet.open{transform:translateY(0)!important}.sheet .grabber{width:38px;height:4px;border-radius:99px;background:var(--ink-4);opacity:.4;margin:8px auto 0}.sheet header{padding:12px 22px 10px;display:flex;align-items:center;justify-content:space-between}.sheet header h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:0;letter-spacing:-.005em}.sheet header .close{font-size:13px;color:var(--ink-3)}.sheet .body{flex:1 1 auto;overflow-y:auto;padding:4px 0 24px}.sheet .body::-webkit-scrollbar{width:4px}.sheet .body::-webkit-scrollbar-thumb{background:var(--line)}.chap{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:12px 22px;border-bottom:1px solid var(--line-2)}.chap:last-child{border-bottom:0}.chap .num{font-family:var(--mono);font-size:12px;color:var(--ink-3);letter-spacing:-.02em}.chap .t{font-family:var(--serif);font-size:16px;line-height:1.2;letter-spacing:-.005em}.chap .dur{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:-.02em}.chap.current .num,.chap.current .t{color:var(--accent)}.chap.current .t{font-style:italic}.chap.done .num,.chap.done .t{color:var(--ink-4)}.chap.done .t{text-decoration-thickness:1px;text-decoration-color:var(--line)}.bmk{display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:start;padding:14px 22px;border-bottom:1px solid var(--line-2)}.bmk:last-child{border-bottom:0}.bmk .ts{font-family:var(--mono);font-size:13px;color:var(--accent);font-weight:600;letter-spacing:-.02em;padding-top:2px}.bmk .note{font-size:13.5px;line-height:1.35;color:var(--ink-2);text-wrap:pretty}.bmk .chap{font-size:11px;color:var(--ink-3);margin-top:4px;display:block;padding:0;border:0}.bmk .actions{display:flex;gap:4px}.bmk .actions button{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3)}.bmk .actions button:hover{background:var(--surface-2);color:var(--ink)}.bmk .actions svg{width:14px;height:14px}.speed-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 22px 16px}.speed-grid button{height:56px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--ink-2)}.speed-grid button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.sleep-list{padding:0 8px 16px}.sleep-list button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px;border-radius:10px;font-size:14.5px;color:var(--ink-2)}.sleep-list button.on{color:var(--accent)}.sleep-list button:hover{background:var(--surface-2)}.sleep-list button .check{color:var(--accent)}.bd-head{padding:8px 18px 16px;display:flex;align-items:flex-start;gap:14px}.bd-head .cover{width:110px;flex:0 0 auto}.bd-head .info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto;padding-top:4px}.bd-head .info .t{font-family:var(--serif);font-size:22px;line-height:1.08;letter-spacing:-.01em;margin:0;word-wrap:break-word;overflow-wrap:anywhere}.bd-head .info .a{font-size:13px;color:var(--ink-3);margin-bottom:8px}.bd-head .info .badges{display:flex;gap:6px;flex-wrap:wrap}.bd-head .info .badge{font-family:var(--mono);font-size:10px;letter-spacing:0;padding:3px 6px;border-radius:4px;background:var(--surface-2);color:var(--ink-3)}.bd-stats{display:grid;grid-template-columns:repeat(3,1fr);padding:10px 22px 0;border-top:1px solid var(--line-2);margin:0 4px}.bd-stats .s{padding:12px 4px;text-align:center}.bd-stats .s .v{font-family:var(--serif);font-size:18px}.bd-stats .s .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}.bd-cta{padding:16px 22px 8px;display:flex;gap:8px}.bd-cta .listen{flex:1 1 auto;height:48px;border-radius:14px;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px}.bd-cta .icon-cta{width:48px;height:48px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}.bd-cta .icon-cta:hover{background:var(--surface-2)}.bd-desc{padding:12px 22px 20px;font-size:13.5px;line-height:1.55;color:var(--ink-2);text-wrap:pretty}.bd-section{padding:8px 22px 22px}.bd-section h4{font-family:var(--serif);font-weight:400;font-size:18px;margin:0 0 8px;letter-spacing:-.005em}.bd-chapter-list{max-height:480px;overflow-y:auto;overscroll-behavior:contain;border-radius:8px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.file-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:12px 22px;border-bottom:1px solid var(--line-2)}.file-row .fic{width:42px;height:42px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:0;color:var(--ink-3)}.file-row .fic.folder{color:var(--accent)}.file-row.audio .fic{color:var(--ink)}.file-row .name{font-size:14px;line-height:1.2;min-width:0}.file-row .name .n{font-weight:500;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-row .name .m{font-size:11px;color:var(--ink-3);margin-top:2px;font-family:var(--mono);letter-spacing:-.02em}.file-row .chev{color:var(--ink-4)}.import-card{margin:8px 22px 18px;padding:18px;border-radius:var(--radius);border:1.5px dashed var(--line);background:var(--surface);text-align:center;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;gap:6px}.import-card .ti{font-family:var(--serif);font-size:18px;color:var(--ink)}.import-card .formats{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;line-height:1.5}.import-card button{margin-top:6px;height:36px;padding:0 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:600}.import-card.drag-over{border-color:var(--accent);background:var(--accent-soft)}.meta-input{width:100%;height:40px;padding:0 12px;border-radius:var(--radius-s);background:var(--bg);border:1px solid var(--line);color:var(--ink);font-size:14px;outline:none;transition:border-color .15s}.meta-input:focus{border-color:var(--accent)}.meta-input::placeholder{color:var(--ink-4)}.stats-hero{margin:10px 16px 12px;padding:22px 20px 18px;border-radius:var(--radius-l);background:linear-gradient(160deg,var(--accent),color-mix(in oklab,var(--accent) 70%,black 30%));color:var(--accent-ink);position:relative;overflow:hidden}.stats-hero .kicker{font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.8;font-weight:600}.stats-hero .big{font-family:var(--serif);font-size:56px;line-height:1;margin-top:4px;letter-spacing:-.015em}.stats-hero .sub{font-size:12px;opacity:.85;margin-top:4px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 14px}.stat-card{padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.stat-card .k{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.stat-card .v{font-family:var(--serif);font-size:26px;letter-spacing:-.01em;margin-top:4px}.stat-card .v small{font-size:13px;color:var(--ink-3);font-family:var(--sans)}.stat-card .d{font-size:11px;color:var(--ink-3);margin-top:2px}.chart{margin:0 16px 16px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.chart h4{font-family:var(--serif);font-weight:400;font-size:16px;margin:0 0 10px;letter-spacing:-.005em;white-space:nowrap}.bars{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;height:80px;margin-bottom:4px}.bars .b{background:var(--accent-soft);border-radius:4px 4px 2px 2px;position:relative;transition:background .2s}.bars .b.today{background:var(--accent)}.bars .labels{font-size:9px;color:var(--ink-3)}.daylabels{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:10px;color:var(--ink-3);text-align:center;letter-spacing:.04em;text-transform:uppercase;font-weight:500}.daylabels span.today{color:var(--accent);font-weight:700}.settings-group{margin:16px 16px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.settings-group .ghead{padding:12px 16px 4px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.settings-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 16px;border-top:1px solid var(--line-2)}.settings-row.col{grid-template-columns:1fr;gap:8px}.settings-row.faded{opacity:.45;pointer-events:none}.settings-row:first-of-type{border-top:0}.settings-row .l{display:flex;flex-direction:column;gap:2px;min-width:0}.settings-row .l .t{font-size:14px}.settings-row .l .s{font-size:11.5px;color:var(--ink-3)}.settings-row .r{font-size:13px;color:var(--ink-3);display:flex;align-items:center;gap:6px;font-family:var(--mono);letter-spacing:-.02em}.install-btn{padding:6px;border-radius:8px;color:var(--accent)}.seg{display:inline-flex;padding:3px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:999px}.seg.seg-wrap{flex-wrap:wrap;border-radius:12px}.seg button{padding:5px 12px;border-radius:99px;font-size:11.5px;color:var(--ink-3);font-weight:500}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000f}.switch{width:38px;height:22px;border-radius:999px;background:var(--ink-4);position:relative;transition:background .15s}.switch.on{background:var(--accent)}button.switch:disabled:after{opacity:.3}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:99px;box-shadow:0 1px 2px #0003;transition:transform .15s}.switch.on:after{transform:translate(16px)}.danger-icon-btn{padding:5px 7px;border-radius:8px;color:var(--danger);transition:background .15s}.danger-icon-btn:hover{background:var(--danger-soft)}.about-row{width:100%;text-align:left;background:transparent;border:none;cursor:pointer}.about-row .chev-r{transition:transform .2s ease}.about-row .chev-open{transform:rotate(90deg)}.about-panel{margin:0 0 4px;padding:16px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;display:flex;flex-direction:column;gap:12px;animation:about-in .18s ease}@keyframes about-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.about-app{display:flex;flex-direction:column;gap:3px}.about-name{font-family:var(--serif);font-size:17px;letter-spacing:-.01em;color:var(--ink)}.about-version{font-family:var(--mono);font-size:11px;color:var(--accent);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.about-desc{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:2px}.about-divider{height:1px;background:var(--line-2)}.about-author{display:flex;align-items:baseline;justify-content:space-between}.about-author-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.about-author-name{font-family:var(--serif);font-size:15px;color:var(--ink);letter-spacing:-.005em}.clear-overlay{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease}.clear-dialog{background:var(--surface);border-radius:var(--radius-xl);padding:28px 24px 24px;max-width:360px;width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:var(--shadow-lg);animation:slide-up .2s ease}.clear-dialog-icon{width:60px;height:60px;border-radius:50%;background:var(--danger-soft);color:var(--danger);display:flex;align-items:center;justify-content:center;flex-shrink:0}.clear-dialog-title{font-size:19px;font-weight:700;text-align:center;color:var(--ink);margin:0}.clear-dialog-body{font-size:13.5px;color:var(--ink-3);text-align:center;line-height:1.55;margin:0}.clear-dialog-body strong{color:var(--danger)}.clear-what{width:100%;background:var(--bg-soft);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:7px}.clear-what-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3)}.clear-what-item svg{color:var(--danger);flex-shrink:0}.clear-dialog-actions{display:flex;gap:10px;width:100%;margin-top:2px}.clear-cancel{flex:1;padding:13px;border-radius:var(--radius);background:var(--surface-2);font-size:14px;font-weight:600;color:var(--ink);transition:background .15s}.clear-cancel:hover{background:var(--bg-soft)}.clear-confirm-btn{flex:1;padding:13px;border-radius:var(--radius);background:var(--danger);font-size:14px;font-weight:600;color:#fff;transition:opacity .15s}.clear-confirm-btn:hover{opacity:.88}.clear-cancel:disabled,.clear-confirm-btn:disabled{opacity:.55;pointer-events:none}.toast{position:fixed;left:50%;bottom:140px;transform:translate(-50%,20px);z-index:30;padding:10px 16px;background:var(--ink);color:var(--bg);border-radius:999px;font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:8px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:var(--shadow-lg)}.toast.show{opacity:1!important;transform:translate(-50%)!important;pointer-events:auto}.toast svg{width:14px;height:14px}.fmt-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 22px 8px}.fmt{font-family:var(--mono);font-size:10.5px;font-weight:600;padding:4px 8px;border-radius:6px;background:var(--surface-2);color:var(--ink-2);letter-spacing:0}.search{margin:0 22px 12px;height:40px;border-radius:999px;background:var(--surface);border:1px solid var(--line-2);display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--ink-3);font-size:13px}.search input{background:transparent;border:0;outline:0;flex:1}.search svg{width:16px;height:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:64px 32px;color:var(--ink-3)}.empty-state .e-icon{font-size:48px;opacity:.4}.empty-state .e-title{font-family:var(--serif);font-size:22px;color:var(--ink);margin:0}.empty-state .e-sub{font-size:14px;line-height:1.5;max-width:280px}.empty-state .e-btn{margin-top:8px;height:40px;padding:0 20px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:600}.shelf-empty{margin:8px 16px 20px;padding:24px 20px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);font-size:14px;color:var(--ink-3);text-align:center}.spacer{height:100px;flex:0 0 auto}@media(max-width:767.98px){.spacer{height:calc(var(--tabbar-h) + 80px + env(safe-area-inset-bottom,0px))}}.divider{height:1px;background:var(--line-2);margin:12px 22px}app-library,app-files,app-stats,app-settings,app-book-detail{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}app-chapters-sheet,app-bookmarks-sheet,app-speed-sheet,app-sleep-sheet,app-sheet{display:contents}
