@font-face{font-family:Lexend;src:url(../fonts/lexend.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Atkinson;src:url(../fonts/atkinson_regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Merriweather;src:url(../fonts/merriweather-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Merriweather;src:url(../fonts/merriweather-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Atkinson;src:url(../fonts/atkinson_bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{--f-lexend: "Lexend", system-ui, sans-serif;--f-atkinson: "Atkinson", system-ui, sans-serif;--f-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-serif: "Merriweather", "Iowan Old Style", Georgia, serif;--r: 16px;--r-sm: 10px;--ease: cubic-bezier(.2, .8, .2, 1)}[data-theme=light]{--bg: #EFEFEF;--surface: #FFFFFF;--surface2: #F1F1F1;--text: #111111;--muted: #666666;--accent: #86CDF3;--on-accent: #0E2331;--accent-soft: #DDF0FB;--accent-text: #1F7FB6;--track: #D9D9D9;--line: #E2E2E2;--border: #1E1E1E;--goal: #FF9B63;--goal-text: #B8541F;--flame: #F05A4F;--flame-in: #FFC93C;--avatar-bg: #ECEBE7;--avatar-fg: #C9C6BF;--reader-bg: #FBFAF6;--danger: #B3261E;--gold: #B7791F;--shadow: none;color-scheme:light}[data-theme=sepia]{--bg: #EDE3CC;--surface: #F8F1E1;--surface2: #EADFC6;--text: #3B2F20;--muted: #6E5E48;--accent: #E0B98A;--on-accent: #2E2010;--accent-soft: #EBD9BE;--accent-text: #8A4F1C;--track: #DDCFB2;--line: #E2D5BA;--border: #5A4630;--goal: #E58A4E;--goal-text: #9A4716;--flame: #D9533F;--flame-in: #F2BE3A;--avatar-bg: #E8DCC2;--avatar-fg: #C7B593;--reader-bg: #F4ECD8;--danger: #A12A1E;--gold: #94551F;--shadow: none;color-scheme:light}[data-theme=dark]{--bg: #121316;--surface: #1C1D21;--surface2: #26272C;--text: #ECE8DF;--muted: #A29E95;--accent: #86CDF3;--on-accent: #0E2331;--accent-soft: #1F3442;--accent-text: #8ED2F6;--track: #34353B;--line: #2C2D32;--border: #4A4B52;--goal: #FF9B63;--goal-text: #FFA877;--flame: #FF6A5C;--flame-in: #FFD15C;--avatar-bg: #2A2B30;--avatar-fg: #55565D;--reader-bg: #16171A;--danger: #FFB4AB;--gold: #F2C46D;--shadow: none;color-scheme:dark}[data-theme=black]{--bg: #000;--surface: #0E0E0E;--surface2: #181818;--text: #D6D2C9;--muted: #96928A;--accent: #FFB74D;--on-accent: #2B1A00;--accent-soft: #2E2312;--accent-text: #FFB74D;--track: #262626;--line: #1E1E1E;--border: #3A3A3A;--goal: #FF9B63;--goal-text: #FFA877;--flame: #FF6A5C;--flame-in: #FFD15C;--avatar-bg: #1C1C1C;--avatar-fg: #444;--reader-bg: #000;--danger: #FFB4AB;--gold: #FFB74D;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{font-family:var(--f-lexend);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.muted{color:var(--muted)}.small{font-size:14px}.eyebrow{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid transparent;background:var(--surface2);font-weight:500;transition:transform .12s,background .2s,box-shadow .2s}.btn:active:not(:disabled){transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent)}.btn.ghost{background:transparent;border-color:var(--line)}.btn.ghost:hover{background:var(--surface2)}.btn.danger{background:var(--danger);color:var(--bg)}.btn.lg{min-height:52px;padding:0 24px;font-size:17px}.btn.sm{min-height:36px;padding:0 14px;font-size:14px}.btn.link{background:none;padding:0;min-height:44px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--muted);transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface2);color:var(--text)}.icon-btn.sm{width:36px;height:36px}.bar{display:block;height:6px;border-radius:99px;background:var(--track);overflow:hidden}.bar>*{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .5s var(--ease)}.bar.thick{height:10px}.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring svg{position:absolute;inset:0}.ring-inner{position:relative;display:grid;place-items:center;color:var(--accent)}.ring-num{font-size:11px;font-weight:600;color:var(--text)}.ring-big{font-size:26px;font-weight:600;color:var(--text)}.ring-big small{font-size:14px;color:var(--muted);font-weight:400}.serif,.app-title,.section-title,.page-top h1,.serif-btn{font-family:var(--f-serif)}.library,.stats{max-width:980px;margin:0 auto;padding:20px 28px 120px}.lib-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 18px}.app-title{font-size:clamp(26px,4vw,34px);font-weight:700;letter-spacing:-.01em}.lib-actions{display:flex;align-items:center;gap:4px}.icon-btn.strong{color:var(--text);width:48px;height:48px}.card{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:24px}.section-title{font-size:21px;font-weight:400;margin:34px 0 14px}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;background:var(--avatar-bg);overflow:hidden}.flame.off{filter:grayscale(1);opacity:.45}.profile-card{display:grid;gap:12px;width:100%;text-align:left;transition:transform .15s}.profile-card:hover{transform:translateY(-2px)}.profile-row{display:flex;align-items:center;gap:20px}.profile-level{flex:1;display:grid;gap:8px;min-width:0}.profile-level strong{font-size:19px;font-weight:500}.profile-streak{display:grid;justify-items:center;gap:2px;font-weight:500;min-width:60px}.xp-text{color:var(--accent-text);font-weight:500}.goal-text{color:var(--goal-text);font-weight:500;display:inline-flex;align-items:center;gap:6px;margin-top:10px}.goal-text svg{color:var(--text)}.bar.xp{height:14px}.bar.xp>*{background:var(--accent)}.bar.goal{height:14px}.bar.goal>*{background:var(--goal)}.bar.read{height:12px}.bar.read>*{background:var(--accent)}.bar.read.zero>*{width:0!important}.continue{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center}.continue-cover{padding:0;border:0;background:none;border-radius:4px;transition:transform .2s var(--ease)}.continue-cover:hover{transform:translateY(-3px)}.continue-body{display:grid;gap:10px;min-width:0}.continue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.continue-head h3{font-size:clamp(21px,3vw,28px);font-weight:500;line-height:1.2}.author{color:var(--muted);margin-top:10px;font-size:17px}.continue .bar.read{max-width:420px}.pages{color:var(--muted);font-size:17px}.btn.soft{background:var(--accent);color:var(--on-accent);justify-self:start;min-width:220px;margin-top:8px;font-size:19px}.btn.soft:hover{filter:brightness(1.04);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 45%,transparent)}.cover{position:relative;overflow:hidden;border-radius:2px;background:var(--surface2);aspect-ratio:2 / 3}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-s{width:64px}.cover-m{width:100%}.cover-l{width:170px}.cover-art{background:hsl(var(--h) 45% 40%);color:hsl(var(--h) 60% 86%)}.cover-pattern{position:absolute;inset:0;width:100%;height:100%;opacity:.35}.cover-text{position:relative;display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:14% 12%}.cover-title{font-family:var(--f-serif);font-weight:700;font-size:clamp(13px,1.5vw,18px);line-height:1.2;color:#fff;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.cover-l .cover-title{font-size:19px}.cover-author{font-size:11px;letter-spacing:.04em;text-transform:uppercase}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:30px 26px}.book-card{display:grid;gap:10px;align-content:start}.book-open{display:flex;flex-direction:column;gap:12px;width:100%;padding:0;border:0;background:none;text-align:left}.book-open .cover{transition:transform .2s var(--ease)}.book-open:hover .cover{transform:translateY(-4px)}.book-open .bar.read{height:8px;flex:none}.book-info{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.book-info>div:first-child{display:grid;gap:6px;min-width:0}.book-title{font-weight:500;font-size:18px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-meta{font-size:15px;color:var(--muted)}.book-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:2 / 3;border-radius:12px;border:2px dashed var(--track);background:transparent;color:var(--muted);font-weight:500;transition:border-color .15s,color .15s,background .15s}.book-add:hover{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-soft)}.book-add-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--surface2)}.menu-anchor{position:relative}.menu{position:absolute;z-index:40;top:calc(100% + 6px);right:0;min-width:220px;padding:6px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 32px #0000002e;animation:pop .14s var(--ease)}.menu.right{right:0}.menu button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:none;text-align:left}.menu button:hover{background:var(--surface2)}.menu button.danger{color:var(--danger)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.empty{display:grid;justify-items:center;text-align:center;gap:16px;margin-top:28px;padding:40px 24px}.empty h2{font-size:clamp(22px,3.4vw,30px)}.empty p{color:var(--muted);max-width:46ch}.empty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:8px 0}.empty-art{width:200px;padding:24px;border-radius:18px;background:var(--bg);display:grid;gap:12px;margin-bottom:8px}.empty-line{height:10px;border-radius:9px;background:var(--track)}.empty-line.l1{width:70%;opacity:.6}.empty-line.l3{width:50%;opacity:.6}.empty-line.hl{height:16px;background:var(--accent);animation:breathe 2.8s ease-in-out infinite}@keyframes breathe{50%{transform:scaleX(.92);opacity:.75}}.banner{display:flex;align-items:flex-start;gap:12px;padding:14px 14px 14px 18px;border-radius:14px;margin-bottom:16px}.banner.error{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--text)}.banner.error>svg{color:var(--danger);margin-top:2px;flex:none}.banner div{display:grid;gap:2px;flex:1}.fab{position:fixed;right:max(20px,calc(50vw - 470px));bottom:24px;z-index:20;display:inline-flex;align-items:center;gap:12px;min-height:64px;padding:0 30px 0 24px;border-radius:999px;border:0;background:var(--accent);color:var(--on-accent);font-family:var(--f-serif);font-size:19px;box-shadow:0 10px 28px #0000002e;transition:transform .15s}.fab:hover{transform:translateY(-2px)}.drop-overlay{position:fixed;inset:12px;z-index:60;display:grid;place-items:center;border-radius:24px;border:3px dashed var(--accent-text);background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--accent-text);font-size:20px;font-weight:600;text-align:center;pointer-events:none}.modal-backdrop,.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#0a0a0c73;display:grid;place-items:center;padding:20px;animation:fade .18s}@keyframes fade{0%{opacity:0}}.modal{width:min(420px,100%);padding:28px;border-radius:22px;background:var(--surface);color:var(--text);display:grid;gap:14px;box-shadow:0 24px 60px #0000004d;animation:pop .2s var(--ease)}.modal h2{font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.field{display:grid;gap:6px;font-size:14px;color:var(--muted)}.field input{font:inherit;font-size:20px;color:var(--text);min-height:52px;padding:0 14px;border-radius:12px;border:2px solid var(--track);background:var(--bg)}.field input:focus{outline:none;border-color:var(--accent)}.spinner{width:40px;height:40px;border-radius:50%;border:4px solid var(--track);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sheet-backdrop{place-items:stretch end;padding:0}.sheet{width:min(440px,100vw);height:100%;background:var(--surface);color:var(--text);display:flex;flex-direction:column;box-shadow:-12px 0 40px #0003;animation:slide-in .26s var(--ease)}@keyframes slide-in{0%{transform:translate(40px);opacity:0}}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 10px 24px;border-bottom:1px solid var(--line)}.sheet-head h2{font-size:20px}.sheet-body{overflow-y:auto;padding:8px 24px 32px;display:grid;gap:8px}.preview{margin:16px 24px 4px;padding:22px;border-radius:16px;background:var(--bg);border:1px solid var(--line);min-height:120px;display:grid;align-content:center;gap:6px;transition:all .2s}.preview b{font-weight:700}.preview-prev{color:var(--muted);opacity:.6;font-size:.7em}fieldset{border:0;padding:18px 0 8px;margin:0;border-bottom:1px solid var(--line);display:grid;gap:14px}fieldset:last-child{border-bottom:0}legend{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:12px;float:left;width:100%}legend+*{clear:both}.themes{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.theme-swatch{display:grid;justify-items:center;gap:6px;padding:0;border:0;background:none;font-size:13px;color:var(--muted)}.theme-swatch .sw{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:14px;border:2px solid var(--line);font-size:18px;font-weight:600;transition:border-color .15s,transform .15s}.theme-swatch.on .sw{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.theme-swatch.on{color:var(--text);font-weight:500}.t-light .sw{background:#fbfaf6;color:#1f1f1f}.t-sepia .sw{background:#f4ecd8;color:#3b2f20}.t-dark .sw{background:#16171a;color:#e6e1d6}.t-black .sw{background:#000;color:#d6d2c9}.t-system .sw{background:linear-gradient(135deg,#fbfaf6 50%,#16171a 50%);color:#fff;text-shadow:0 0 3px #000,0 0 6px #000}.fonts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.font-card{display:grid;gap:2px;text-align:left;padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:var(--bg)}.font-card.on{border-color:var(--accent)}.fc-sample{font-size:28px;line-height:1.1}.fc-name{font-weight:500;font-size:15px}.fc-note{font-size:12px;color:var(--muted)}.slider{display:grid;gap:8px}.slider-head{display:flex;justify-content:space-between;font-size:15px}.slider-head strong{font-weight:600;font-variant-numeric:tabular-nums}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:0}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--accent) var(--p),var(--track) var(--p))}input[type=range]::-moz-range-track{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--accent) var(--p),var(--track) var(--p))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;background:var(--surface);border:3px solid var(--accent);box-shadow:0 2px 6px #0003}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--surface);border:3px solid var(--accent)}.hint-text{font-size:13px;color:var(--muted);margin-top:-8px}.seg{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:var(--surface2)}.seg button{min-height:40px;border:0;border-radius:999px;background:none;color:var(--muted);font-weight:500}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000001f}.toggle-row{position:relative;display:flex;align-items:center;gap:16px;min-height:52px;cursor:pointer}.toggle-text{display:grid;gap:2px;flex:1}.toggle-text strong{font-weight:500}.toggle-text span{font-size:13px;color:var(--muted)}.toggle-row input{position:absolute;opacity:0;width:1px;height:1px}.switch{flex:none;width:48px;height:28px;border-radius:99px;background:var(--track);position:relative;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s var(--ease)}.toggle-row input:checked+.switch{background:var(--accent)}.toggle-row input:checked+.switch:after{transform:translate(20px)}.toggle-row input:focus-visible+.switch{outline:3px solid var(--accent);outline-offset:2px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-size:14px;font-weight:500}.reader{position:fixed;inset:0;display:grid;grid-template-rows:auto auto 1fr auto;background:var(--reader-bg);overflow:hidden}.chrome{transition:opacity .5s ease}@media (hover: hover){.reader.idle .chrome{opacity:.1}.reader.idle .reader-dock{opacity:.3}.reader.idle .chrome:hover,.reader.idle .chrome:focus-within{opacity:1}}.reader-top{display:flex;align-items:center;gap:8px;padding:max(8px,env(safe-area-inset-top)) 12px 6px}.reader-title{flex:1;min-width:0;display:grid;text-align:left;gap:0;padding:4px 10px;border:0;border-radius:12px;background:none}.reader-title:hover:not(:disabled){background:var(--surface2)}.reader-title:disabled{opacity:1}.reader-title .t{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title .s{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-top-actions{display:flex}.reader-progress{display:grid;gap:3px;padding:0 24px}.rp-book,.rp-chap{height:3px;border-radius:9px;background:var(--track);overflow:hidden}.rp-book>div{height:100%;background:var(--muted);opacity:.5;transition:width .4s var(--ease)}.rp-chap>div{height:100%;background:var(--accent);transition:width .3s var(--ease)}.reader-stage{position:relative;display:grid;place-items:center;padding:24px clamp(24px,8vw,120px);user-select:none;-webkit-user-select:none;touch-action:pan-y;cursor:pointer}.chunk-wrap{width:100%;max-width:34ch;font-family:var(--rfont);font-size:var(--rsize);line-height:var(--rline);max-width:min(100%,calc(var(--rsize) * 19))}.chunk{margin:0;color:var(--text);text-wrap:pretty}.chunk b{font-weight:700}.chunk.heading{font-weight:600;font-size:1.15em;color:var(--accent);line-height:1.2;text-wrap:balance}.chunk-prev{color:var(--muted);opacity:.55;font-size:.62em;line-height:1.4;margin:0 0 .9em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.para-mark{display:block;width:28px;height:4px;border-radius:4px;background:var(--accent);opacity:.5;margin-bottom:.5em}.in-next{animation:in-next .28s var(--ease)}.in-prev{animation:in-prev .28s var(--ease)}@keyframes in-next{0%{opacity:0;transform:translate(18px)}}@keyframes in-prev{0%{opacity:0;transform:translate(-18px)}}@media (prefers-reduced-motion: reduce){.in-next,.in-prev{animation:fade .15s}*{scroll-behavior:auto!important}}.hint{position:absolute;left:50%;bottom:20px;transform:translate(-50%);width:min(520px,calc(100% - 32px));display:grid;gap:12px;padding:18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);cursor:default;font-size:15px;animation:pop .3s var(--ease)}.hint .btn{justify-self:end}.hint-zones{display:grid;grid-template-columns:1fr 2fr;height:44px;border-radius:10px;overflow:hidden;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.hint-zones span{display:grid;place-items:center;background:var(--surface2)}.hint-zones span+span{background:var(--accent-soft);color:var(--text)}.auto-bar{position:absolute;left:0;bottom:0;height:3px;background:var(--accent);animation:grow linear forwards;z-index:5}@keyframes grow{0%{width:0}to{width:100%}}.reader-dock{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px max(14px,env(safe-area-inset-bottom));max-width:760px;width:100%;margin:0 auto}.dock-btn{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:0;background:var(--surface2);color:var(--text);transition:transform .12s,background .15s}.dock-btn.primary{width:68px;height:68px;background:var(--accent);color:var(--on-accent)}.dock-btn:active:not(:disabled){transform:scale(.93)}.dock-mid{display:flex;align-items:center;gap:14px;padding:6px 8px 6px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}.dock-play{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:0;background:var(--surface2);color:var(--muted)}.dock-play.on{background:var(--accent);color:var(--on-accent)}.dock-pos{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.dock-goal{padding:0;border:0;background:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%}.finished{display:grid;justify-items:center;text-align:center;gap:14px;max-width:460px;cursor:default}.finished h1{font-size:32px}.finished-badge{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:var(--accent-soft);color:var(--accent);margin-bottom:6px}.finished-actions{display:grid;gap:8px;margin-top:8px}.chapters{list-style:none;margin:0;padding:8px 12px 24px;overflow-y:auto}.chapters button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 12px;border:0;border-radius:12px;background:none;text-align:left}.chapters button:hover{background:var(--surface2)}.chapters button.active{background:var(--accent-soft)}.ch-dot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface2);font-size:12px;color:var(--muted);font-weight:600}.ch-dot.done{background:var(--accent);color:var(--on-accent)}.ch-title{font-weight:500;line-height:1.3}.ch-page{font-size:13px;color:var(--muted)}.reader-loading,.center-msg{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;text-align:center;padding:24px}.page-top{display:flex;align-items:center;gap:10px;padding:8px 0 18px;margin-left:-8px}.page-top h1{font-size:clamp(24px,3.4vw,30px);font-weight:400}.stats .stack{display:grid;gap:20px}.level-card{display:grid;gap:14px}.level-row{display:flex;align-items:center;gap:20px}.level-row h2{font-size:24px;font-weight:500;margin:2px 0 4px}.streak-card{display:grid;gap:18px}.streak-head{display:flex;align-items:center;gap:16px}.streak-head h2{font-size:20px;font-weight:500}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;height:200px}.day{display:grid;grid-template-rows:1fr auto;gap:8px}.day-bar-wrap{display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.day-bar{width:100%;height:7px;border-radius:99px;background:var(--track);transition:height .6s var(--ease)}.day-bar.on{border-radius:10px;background:color-mix(in srgb,var(--goal) 55%,var(--surface))}.day-bar.met{background:var(--goal)}.day-val{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:6px}.day-label{text-align:center;font-size:15px;color:var(--muted)}.day.today .day-label{color:var(--text);font-weight:500}.goal-card{display:grid;gap:14px}.goal-card h2{font-size:20px;font-weight:500;margin-bottom:8px}.goal-card .goal-text{margin-top:0}.goal-card .chips{margin:8px 0 4px}.chips{display:flex;flex-wrap:wrap;gap:12px}.chip{min-height:48px;padding:0 28px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:16px;font-weight:500}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.totals{display:grid;grid-template-columns:1fr 1fr;gap:26px 20px;padding:30px 36px}.totals div{display:grid;gap:2px}.totals strong{font-size:32px;font-weight:500;font-variant-numeric:tabular-nums}.totals span{font-size:18px;color:var(--muted)}.ach-link{display:flex;align-items:center;gap:16px;width:100%;text-align:left}.ach-link:hover{background:var(--surface2)}.ach-link-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:color-mix(in srgb,var(--gold) 18%,var(--surface));color:var(--gold);flex:none}.ach-link-body{flex:1;display:grid;gap:2px}.ach-link-body strong{font-size:18px;font-weight:500}.ach-count{margin:-6px 0 18px}.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.ach{display:grid;justify-items:center;align-content:start;text-align:center;gap:10px;padding:32px 22px 26px}.ach-icon{display:grid;place-items:center;width:76px;height:76px;border-radius:22px;background:var(--surface2);color:var(--muted);margin-bottom:6px}.ach.done .ach-icon{background:color-mix(in srgb,var(--gold) 18%,var(--surface));color:var(--gold)}.ach strong{font-size:18px;font-weight:500}.ach:not(.done) strong{color:var(--muted)}.ach-desc{display:grid;gap:6px;font-size:14px;color:var(--muted)}.ach-desc em,.ach-num{font-style:normal;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.ach-bar{width:100%;height:12px;margin-top:6px}.ach-bar>*{background:var(--accent)}.reset-row{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:90}.toasts{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:95;display:grid;gap:8px;width:min(420px,calc(100vw - 24px));pointer-events:none}.toast{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:18px;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:0 16px 40px #00000038;animation:toast-in .4s var(--ease)}.toast.big{background:var(--accent);color:var(--on-accent);border-color:transparent}.toast>div{display:grid;gap:2px}.toast span:not(.toast-icon){font-size:14px;opacity:.85}.toast-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.toast.big .toast-icon{background:#fff3;color:inherit}@keyframes toast-in{0%{opacity:0;transform:translateY(-16px) scale(.96)}}@media (max-width: 640px){.library,.stats{padding:12px 14px 120px}.card{padding:18px;border-radius:20px}.icon-btn.strong{width:44px;height:44px}.profile-row{gap:14px}.profile-row .avatar,.level-row .avatar{width:64px!important;height:64px!important}.profile-row .avatar svg,.level-row .avatar svg{width:64px;height:64px}.profile-level strong{font-size:16px}.section-title{font-size:19px;margin:26px 0 12px}.continue{grid-template-columns:112px 1fr;gap:16px;align-items:start}.cover-l{width:112px}.cover-l .cover-title{font-size:14px}.continue-head{margin-bottom:2px}.continue-head h3{font-size:19px}.author,.pages{font-size:15px}.author{margin-top:6px}.btn.soft{min-width:0;width:100%;font-size:17px}.grid{grid-template-columns:repeat(3,1fr);gap:22px 12px}.book-title{font-size:15px}.book-meta{font-size:13px}.book-info .icon-btn.sm{width:28px;height:36px}.fab{right:16px;bottom:18px;min-height:58px;font-size:17px;padding:0 24px 0 18px}.week{height:170px;gap:8px}.day-label{font-size:13px}.chip{padding:0 18px;min-height:44px;font-size:15px}.totals{padding:22px;gap:20px 14px}.totals strong{font-size:26px}.totals span{font-size:15px}.ach-grid{grid-template-columns:1fr 1fr;gap:12px}.ach{padding:22px 12px 18px}.ach-icon{width:60px;height:60px}.ach strong{font-size:15px}.reader-stage{padding:16px 24px}.dock-pos{display:none}.dock-mid{gap:6px}.reader-progress{padding:0 16px}.sheet-backdrop{place-items:end stretch}.sheet{width:100%;height:auto;max-height:88vh;border-radius:24px 24px 0 0;animation:slide-up .28s var(--ease)}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}}}@media (max-width: 340px){.grid{grid-template-columns:repeat(2,1fr)}}
