:root{--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-caps:var(--font-body);--caps-transform:none;--caps-spacing:0;--caps-size:.78rem;--caps-weight:500;--display-weight:500;--accent:#ff7a59;--accent-strong:#ff9c82;--text-on-accent:#1a0c06;--accent-soft:color-mix(in srgb, var(--accent) 15%, transparent);--accent-glow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);--line-accent:color-mix(in srgb, var(--accent) 50%, transparent);--tone:var(--accent);--tone-soft:color-mix(in srgb, var(--accent) 18%, transparent);--cover-tint:var(--surface-2);--bg-texture:none;--ornament:none;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px}[data-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--overlay:#0000009e;--line:#ffffff14;--line-strong:#ffffff29;--text:#f2f2f4;--text-muted:#a9adb6;--text-faint:#9399a3;--paper:#f3eee3;--paper-text:#22201c;--paper-muted:#5e584f;--paper-sheen:#ffffff4d;--paper-edge:#0000001f;--paper-sepia:#ecdfc4;--paper-night:#1a1b1e;--paper-night-text:#d8d6d0;--ai:#bba6f7;--ai-soft:#a082f01f;--ai-line:#aa8cf552;--ok:#6fcf94;--warn:#f2b552;--danger:#f27c6e;--on-status:#fff;--on-status-dark:#0e0f12;--scrim-soft:#0003;--scrim:#00000080;--scrim-strong:#000000c7;--sheen:#ffffff0d;--cover-ink:#fff;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000059;--shadow-lg:0 20px 50px #00000080;--shadow-cover:0 8px 20px #00000073, 0 1px 3px #0006}[data-mode=dark][data-tone=neutral]{--bg:#0e0f12;--surface-1:#16181d;--surface-2:#1e2127;--surface-3:#282b33;--sidebar:#121418}[data-mode=dark][data-tone=warm]{--bg:#12100e;--surface-1:#1c1916;--surface-2:#25211d;--surface-3:#302b26;--sidebar:#161412}[data-mode=dark][data-tone=cool]{--bg:#0c1016;--surface-1:#141a23;--surface-2:#1b232f;--surface-3:#25303e;--sidebar:#10151c}[data-mode=dark][data-tone=black]{--bg:#000;--surface-1:#0f0f11;--surface-2:#18181b;--surface-3:#232327;--sidebar:#070708}[data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--overlay:#14161c66;--line:#14161c17;--line-strong:#14161c2b;--text:#15171b;--text-muted:#4f5560;--text-faint:#5b616c;--paper:#fffdf8;--paper-text:#1d1b17;--paper-muted:#5e584f;--paper-sheen:#ffffff80;--paper-edge:#00000014;--paper-sepia:#f1e4c9;--paper-night:#1d1e21;--paper-night-text:#dedcd6;--ai:#6a49c9;--ai-soft:#6a49c914;--ai-line:#6a49c947;--ok:#1b6b3c;--warn:#864d00;--danger:#ab2e22;--on-status:#fff;--on-status-dark:#fff;--scrim-soft:#14161c0f;--scrim:#14161c59;--scrim-strong:#14161cb8;--sheen:#fff6;--cover-ink:#fff;--shadow-sm:0 1px 2px #14161c14;--shadow-md:0 8px 24px #14161c1a;--shadow-lg:0 20px 50px #14161c2e;--shadow-cover:0 8px 18px #14161c2e, 0 1px 3px #14161c24}[data-mode=light][data-tone=neutral]{--bg:#f6f7f8;--surface-1:#fff;--surface-2:#eef0f2;--surface-3:#e3e6ea;--sidebar:#eceef1}[data-mode=light][data-tone=warm]{--bg:#f7f4ee;--surface-1:#fffdf9;--surface-2:#efe9df;--surface-3:#e5ddd0;--sidebar:#efe9df}[data-mode=light][data-tone=cool]{--bg:#f2f5f9;--surface-1:#fff;--surface-2:#e8edf4;--surface-3:#dce3ed;--sidebar:#e8edf4}[data-mode=light][data-tone=black]{--bg:#fff;--surface-1:#fff;--surface-2:#f1f2f4;--surface-3:#e6e8eb;--sidebar:#f4f5f6}html[data-theme=retro-fantasy][data-mode][data-tone]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#120e0c;--bg-texture:radial-gradient(1200px 600px at 85% -10%, #6e1f2a47, transparent 60%), radial-gradient(900px 500px at -10% 110%, #5c3a224d, transparent 60%);--surface-1:#1d1613;--surface-2:#261c17;--surface-3:#31241d;--sidebar:#17110e;--overlay:#080504b8;--line:#c9a25a24;--line-strong:#c9a25a4d;--line-accent:#c9a25a8c;--text:#f1e6d2;--text-muted:#bba98d;--text-faint:#9a8a72;--text-on-accent:#1d130b;--accent:#c9a25a;--accent-strong:#e3c27c;--accent-soft:#c9a25a24;--accent-glow:0 0 0 1px #c9a25a66, 0 0 24px #c9a25a2e;--tone:#7d2533;--tone-soft:#7d253347;--paper:#efe2c4;--paper-text:#2b1f15;--paper-muted:#6f5a43;--paper-sheen:#ffffff40;--paper-edge:#78501e38;--paper-sepia:#e8d3ab;--paper-night:#1c1714;--paper-night-text:#d9c9ad;--ai:#c4a3f5;--ai-soft:#966edc1f;--ai-line:#b48cf052;--ok:#9cc58a;--warn:#e3ae55;--danger:#e58472;--on-status:#fff;--on-status-dark:#1a0d08;--scrim-soft:#00000038;--scrim:#00000080;--scrim-strong:#0a0604d1;--sheen:#ffffff0f;--cover-ink:#f6ecd8;--font-display:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;--font-caps:"Cinzel", "Cormorant Garamond", Georgia, serif;--caps-transform:uppercase;--caps-spacing:.14em;--caps-size:.7rem;--caps-weight:600;--display-weight:600;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000059;--shadow-lg:0 18px 50px #00000080;--shadow-cover:0 10px 22px #0000008c, 0 2px 4px #00000080;--ornament:inset 0 0 0 1px var(--line), inset 0 0 0 4px transparent, inset 0 0 0 5px #c9a25a0f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background-color:var(--bg);background-image:var(--bg-texture);min-height:100dvh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:.9375rem;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:-.01em;margin:0 0 .5rem;line-height:1.15}h1{font-size:2rem}h2{font-size:1.65rem}h3{font-size:1.3rem}h4{font-size:1.1rem}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}code{background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.88em}img{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}:focus:not(:focus-visible){outline:none}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.84rem}.tiny{font-size:.74rem}.error{color:var(--danger)}.success{color:var(--ok)}.serif{font-family:var(--font-display)}.caps{font-family:var(--font-caps);text-transform:var(--caps-transform);letter-spacing:var(--caps-spacing);font-size:var(--caps-size);font-weight:var(--caps-weight)}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.spread{justify-content:space-between}.stack{gap:.75rem;display:grid}.grow{flex:1;min-width:0}button,.btn{font:inherit;border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-2);min-height:44px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-3);border-color:var(--line-accent);color:var(--text)}button:active:not(:disabled){transform:translateY(1px)}button:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}button.primary,.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:600}button.primary:hover:not(:disabled),.btn-primary:hover{background:var(--accent);filter:brightness(1.08);color:var(--text-on-accent);border-color:var(--accent)}.btn-ghost,button.ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover,button.ghost:hover:not(:disabled){background:var(--accent-soft);color:var(--text);border-color:#0000}button.link{min-height:0;color:var(--accent);background:0 0;border:none;padding:0;font-weight:500}button.link:hover:not(:disabled){color:var(--accent-strong);background:0 0;text-decoration:underline}button.danger,.btn-danger{color:var(--danger)}button.danger-solid{background:var(--danger);border-color:var(--danger);color:var(--on-status)}button.danger-solid:hover:not(:disabled){background:var(--danger);filter:brightness(1.1);color:var(--on-status)}.icon-btn{border-radius:var(--radius-pill);width:44px;min-height:44px;color:var(--text-muted);background:0 0;border-color:#0000;padding:0}.icon-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong);border-color:#0000}.icon-btn.active{color:var(--accent);background:var(--accent-soft)}a.button-link,button.button-link{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-2);min-height:40px;color:var(--text);align-items:center;gap:.4rem;padding:.35rem .95rem;font-size:.88rem;text-decoration:none;display:inline-flex}a.button-link:hover,button.button-link:hover:not(:disabled){border-color:var(--line-accent);color:var(--text);background:var(--surface-3)}button.button-link.danger{color:var(--danger)}input,select,textarea{font:inherit;color:var(--text)}.form{gap:.8rem;max-width:560px;margin:1rem 0;display:grid}.form label,.form .field{gap:.3rem;display:grid}.form label>span,.form .field>span{color:var(--text-muted);font-size:.8rem;font-weight:500}.form input,.form select,.form textarea,.input{border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-1);width:100%;min-height:42px;color:var(--text);padding:.55rem .8rem}.form input:focus,.form select:focus,.form textarea:focus,.input:focus{border-color:var(--accent);box-shadow:var(--accent-glow);outline:none}.form input:disabled,.form select:disabled{opacity:.55}.form-row{gap:.6rem;display:flex}.form-row .grow{flex:1}.form-row .narrow{flex-shrink:0;width:6rem}.badge{letter-spacing:.02em;border-radius:var(--radius-pill);color:var(--text-muted);white-space:nowrap;border:1px solid;align-items:center;gap:.3rem;padding:2px 8px;font-size:.72rem;font-weight:600;line-height:1.5;display:inline-flex}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.badge.gold{color:var(--accent);background:var(--accent-soft);border-color:var(--line-accent)}.badge.soon{color:var(--text-faint);border-style:dashed}.badge.preview{color:var(--warn);border-style:dashed}.badge.ai{color:var(--ai);background:var(--ai-soft);border-color:var(--ai-line)}.chip{border-radius:var(--radius-pill);background:var(--surface-2);min-height:38px;color:var(--text-muted);white-space:nowrap;cursor:pointer;border:1px solid #0000;align-items:center;gap:.35rem;padding:.3rem .9rem;font-size:.85rem;font-weight:500;display:inline-flex}.chip:hover{color:var(--text);background:var(--surface-3)}.chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}.chip.active .count{color:inherit;opacity:.7}.chip .count{color:var(--text-faint);font-size:.72rem}.tag{border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--text-muted);white-space:nowrap;padding:1px 7px;font-size:.7rem}.tag.audio{color:var(--accent);border-color:currentColor}.tag.summary{color:var(--ok);border-color:currentColor}.tag.other{opacity:.7}.bar{background:var(--surface-3);border-radius:var(--radius-pill);flex:1;height:6px;overflow:hidden}.bar>div{background:var(--accent);border-radius:inherit;height:100%}.quota{align-items:center;gap:.6rem;display:flex}.panel,.card,.notice{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg)}.panel{padding:1rem}.card{gap:.6rem;padding:14px 16px;display:grid}.notice{margin:.75rem 0;padding:12px 14px}.notice .bar{margin:.5rem 0 .25rem}.notice button{margin-top:.5rem}.cards{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.actions button{min-height:34px;padding:.3rem .75rem;font-size:.85rem}.empty{text-align:center;padding:2rem 1rem}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.9rem;min-height:100dvh;padding:24px 16px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.mini-stat strong,.streak-num,.slider-readout,.stat-card strong,.glance strong,.goal-text strong,.big-number,.series-num,.chapter-n,.rank,.page-title,.book-title,.now-title,.player-title,.book-card-title,.serif{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}.shell{--topbar-h:58px;--bottomnav-h:64px;--sidebar-w:252px;--safe-bottom:env(safe-area-inset-bottom,0px);min-height:100dvh}.skip-link{z-index:100;background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-md);padding:8px 12px;position:absolute;top:8px;left:-999px}.skip-link:focus{left:8px}.desktop-only{display:none!important}.mobile-only{display:inline-flex}.main-col{min-width:0;padding-bottom:calc(var(--bottomnav-h) + var(--safe-bottom) + 12px)}.shell:has(.mini-player) .main-col{padding-bottom:calc(var(--bottomnav-h) + var(--safe-bottom) + 84px)}.page{--page-x:16px;padding:16px var(--page-x) 24px;max-width:1480px;margin:0 auto}.topbar{z-index:30;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-bottom:1px solid #0000;align-items:center;gap:.6rem;padding:0 12px;display:flex;position:sticky;top:0}.topbar-title{color:var(--text);font-size:1.3rem;font-weight:600}.topbar-actions{align-items:center;gap:.35rem;margin-left:auto;display:flex}.top-search{border-radius:var(--radius-pill);background:var(--surface-1);border:1px solid var(--line-strong);max-width:460px;height:40px;color:var(--text-faint);flex:1;align-items:center;gap:.5rem;padding:0 .8rem;display:flex}.top-search:focus-within{border-color:var(--accent);box-shadow:var(--accent-glow)}.top-search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.top-search kbd{font:600 .68rem var(--font-body);color:var(--text-faint);border:1px solid var(--line-strong);border-radius:5px;padding:1px 5px}.admin-switch{border-radius:var(--radius-pill);background:var(--surface-1);border-color:var(--line-strong);min-height:36px;color:var(--text-muted);gap:.45rem;padding:0 .6rem 0 .65rem;font-size:.8rem;display:none}.admin-switch span:not(.switch-track):not(.switch-thumb){display:none}.admin-switch.on{background:var(--accent-soft);border-color:var(--line-accent);color:var(--text)}.switch-track{border-radius:var(--radius-pill);background:var(--surface-3);border:1px solid var(--line-strong);flex-shrink:0;width:34px;height:20px;transition:background .2s;position:relative}.switch-thumb{background:var(--text-muted);border-radius:50%;width:14px;height:14px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.on>.switch-track,.on .switch-track{background:var(--accent-soft);border-color:var(--accent)}.on>.switch-track .switch-thumb,.on .switch-thumb{background:var(--accent);transform:translate(14px)}.admin-banner{color:var(--text);background:var(--accent-soft);border-bottom:1px solid var(--line);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem .6rem;padding:6px 12px;font-size:.78rem;display:flex}.admin-banner button.link{font-size:inherit}.user-menu{position:relative}.avatar{border:1px solid var(--line-strong);background:var(--surface-3);width:38px;height:38px;min-height:0;color:var(--text);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.05rem;font-weight:600;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.large{flex-shrink:0;width:64px;height:64px;font-size:1.8rem}.menu{z-index:40;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-lg);min-width:240px;box-shadow:var(--shadow-lg);padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.menu-head{border-bottom:1px solid var(--line);gap:2px;margin-bottom:4px;padding:8px 10px 10px;display:grid}.menu-head .badge{justify-self:start;margin-top:4px}.menu a,.menu button{border-radius:var(--radius-md);min-height:40px;color:var(--text);background:0 0;border:none;justify-content:flex-start;align-items:center;gap:.6rem;padding:0 10px;font-size:.9rem;font-weight:400;display:flex}.menu a:hover,.menu button:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.bottom-nav{z-index:35;height:calc(var(--bottomnav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{color:var(--text-faint);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:500;display:flex;position:relative}.bottom-nav a.active{color:var(--text)}.bottom-nav a.active svg{color:var(--accent)}.mini-player{z-index:34;left:8px;right:8px;bottom:calc(var(--bottomnav-h) + var(--safe-bottom) + 8px);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--cover-tint) 55%, var(--surface-2));border:1px solid var(--line);box-shadow:var(--shadow-md);align-items:center;gap:.4rem;padding:7px 6px 9px 7px;display:flex;position:fixed;overflow:hidden}.mini-main{min-width:0;color:var(--text);flex:1;align-items:center;gap:.65rem;display:flex}.mini-main:hover{color:var(--text)}.mini-player .cover.mini-cover{border-radius:var(--radius-sm);flex-shrink:0;width:44px;height:44px}.mini-text{min-width:0;line-height:1.25;display:grid}.mini-text strong{font-size:.92rem;font-weight:600}.clamp-1{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.mini-badge{display:none}.mini-play{color:var(--text)}.mini-progress{background:var(--surface-3);height:2px;position:absolute;bottom:0;left:0;right:0}.mini-progress>div{background:var(--accent);height:100%}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;display:none}.sidebar-brand{border-bottom:1px solid var(--line);padding:18px 16px 14px}.brand{color:var(--text);align-items:center;gap:.7rem;display:inline-flex}.brand:hover{color:var(--text)}.brand-text{line-height:1.05;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.45rem;font-weight:600}.brand-tag{color:var(--text-faint);margin-top:3px;font-size:.72rem}.sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto}.sidebar-nav ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.nav-group{color:var(--text-faint);align-items:center;gap:.4rem;margin:18px 10px 6px;font-size:.75rem;display:flex}.nav-group-admin{color:var(--text-muted)}.nav-link{border-radius:var(--radius-md);min-height:40px;color:var(--text-muted);border:1px solid #0000;align-items:center;gap:.7rem;padding:0 10px;font-size:.9rem;display:flex;position:relative}.nav-link:hover,li.active>.nav-link,.nav-link.active{color:var(--text);background:var(--surface-2)}li.active>.nav-link svg{color:var(--accent)}li.active>.nav-link:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.nav-link.soon{cursor:default;opacity:.6}.nav-link.soon:hover{color:var(--text-muted);background:0 0}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-count{text-align:center;min-width:26px;color:var(--text-faint);font-variant-numeric:tabular-nums;padding:1px 7px;font-size:.7rem;font-weight:600}.nav-soon{font:600 .66rem var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);border:1px dashed var(--line-strong);border-radius:4px;padding:0 4px}.sidebar-foot{border-top:1px solid var(--line);padding:10px}.sidebar-foot .nav-link.active{color:var(--text);background:var(--surface-2)}@media (width>=640px){.page{--page-x:22px;padding:20px var(--page-x) 28px}.mini-player{width:min(560px,100% - 24px);left:50%;right:auto;transform:translate(-50%)}.mini-badge{display:inline-flex}}@media (width>=900px){.desktop-only{display:inline-flex!important}.mobile-only{display:none!important}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);display:grid}.shell.sidebar-collapsed{--sidebar-w:76px}.sidebar{height:100dvh;display:flex;position:sticky;top:0}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-count,.sidebar.collapsed .nav-soon,.sidebar.collapsed .nav-group{display:none}.sidebar.collapsed .nav-link{justify-content:center;padding:0}.sidebar.collapsed .sidebar-brand{text-align:center;padding:16px 0}.sidebar.collapsed ul+ul{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.main-col{padding-bottom:32px}.shell:has(.mini-player) .main-col{padding-bottom:32px}.shell:has(.mini-player) .main-col{padding-bottom:110px}.shell{--topbar-h:64px}.topbar{height:var(--topbar-h);gap:.75rem;padding:0 24px 0 14px}.admin-switch{display:inline-flex}.admin-switch span:not(.switch-track):not(.switch-thumb){display:inline}.page{--page-x:28px;padding:22px var(--page-x) 36px}.bottom-nav{display:none}.mini-player{width:440px;bottom:22px;left:auto;right:24px;transform:none}}@media (width>=1400px){.page{--page-x:36px;padding:26px var(--page-x) 40px}}.admin-banner{white-space:nowrap;flex-wrap:nowrap}.banner-long{display:none}@media (width>=640px){.banner-long{display:inline}}.sidebar-nav{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.mini-play.busy{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.mini-progress.downloading>div{background:repeating-linear-gradient(90deg, var(--accent), var(--accent) 6px, var(--accent-strong) 6px, var(--accent-strong) 12px)}.route-player .main-col{padding-bottom:0}.route-player .page{padding-top:0;padding-bottom:0}.panel-frame{position:relative}html[data-theme=retro-fantasy] .panel-frame{background:linear-gradient(180deg, var(--surface-2), var(--surface-1));border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--ornament), var(--shadow-sm)}html[data-theme=retro-fantasy] .panel-frame:before,html[data-theme=retro-fantasy] .panel-frame:after{content:"";border-color:var(--line-accent);pointer-events:none;opacity:.7;border-style:solid;width:14px;height:14px;position:absolute}html[data-theme=retro-fantasy] .panel-frame:before{border-width:1px 0 0 1px;border-top-left-radius:6px;top:5px;left:5px}html[data-theme=retro-fantasy] .panel-frame:after{border-width:0 1px 1px 0;border-bottom-right-radius:6px;bottom:5px;right:5px}.page-header{margin:8px 0 20px}.page-header-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.eyebrow{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:4px;display:inline-flex}html[data-theme=retro-fantasy] .eyebrow{color:var(--accent)}html[data-theme=retro-fantasy] .eyebrow:after{content:"◆";opacity:.7;font-size:.5rem}.page-title{margin:0;font-size:2rem}.page-subtitle{margin-top:4px;font-size:.9rem}.page-actions{flex-wrap:wrap;gap:.5rem;display:flex}.back-link{min-height:44px;color:var(--text-muted);align-items:center;gap:.2rem;margin:-8px 0 2px -6px;padding:0 6px;font-size:.9rem;display:inline-flex}.back-link:hover{color:var(--text)}.page-filter{max-width:360px;margin-bottom:16px}.section-header{align-items:baseline;gap:.5rem;min-height:32px;margin-bottom:12px;display:flex}.section-icon{display:none}.section-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.25rem;overflow:hidden}.count-pill{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:.85rem}.section-rule{flex:1}html[data-theme=retro-fantasy] .section-header{align-items:center;gap:.6rem;min-height:40px}html[data-theme=retro-fantasy] .section-icon{width:28px;height:28px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--line);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}html[data-theme=retro-fantasy] .count-pill{border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-muted);border:1px solid var(--line);padding:1px 8px;font-size:.72rem;font-weight:600}html[data-theme=retro-fantasy] .section-rule{background:linear-gradient(90deg, var(--line-accent), transparent 85%);min-width:12px;height:1px;position:relative}html[data-theme=retro-fantasy] .section-rule:before{content:"";border:1px solid var(--line-accent);background:var(--bg);width:7px;height:7px;position:absolute;top:-3px;left:0;transform:rotate(45deg)}.shelf-actions{flex-wrap:nowrap;gap:.25rem}.shelf-arrows{display:none}.cover{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--surface-3);width:100%;box-shadow:var(--shadow-cover);display:block;position:relative;overflow:hidden}.cover.portrait{aspect-ratio:2/3}.cover>img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.cover.fit>.cover-art{object-fit:contain;filter:drop-shadow(0 4px 10px #00000073)}.cover.fit>.cover-blur{filter:blur(14px)saturate(1.15)brightness(.6);transform:scale(1.25)}.cover.loading{background:linear-gradient(160deg, var(--surface-3), var(--surface-2))}.cover.placeholder{background:linear-gradient(160deg, hsl(var(--hue) 38% 32%), hsl(calc(var(--hue) + 30) 45% 16%)), var(--surface-3);color:var(--cover-ink);font-family:var(--font-display);box-shadow:var(--shadow-cover), inset 0 0 0 1px var(--sheen), inset 6px 0 0 var(--scrim-soft);align-items:flex-end;padding:10px;font-size:.95rem;font-weight:600;line-height:1.15;display:flex;overflow:hidden}.cover.placeholder span{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.cover.thumb{flex-shrink:0;width:56px}.cover.large{width:100%}.book-card{color:var(--text);align-content:start;gap:.55rem;display:grid}.book-card:hover{color:var(--text)}.book-card-cover{border-radius:var(--radius-sm);transition:transform .18s;position:relative}.book-card:hover .book-card-cover{transform:translateY(-3px)}.book-card:hover .cover{box-shadow:var(--shadow-cover), 0 0 0 1px var(--line-accent)}.book-card-text{gap:1px;line-height:1.25;display:grid}.book-card-title{font-family:var(--font-display);font-size:1.02rem;font-weight:600}.book-card-author{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.book-card-num{color:var(--text-muted);font-size:var(--caps-size)}.format-badges{gap:3px;display:flex;position:absolute;bottom:6px;left:6px}.fmt{height:18px;font:700 .66rem var(--font-body);letter-spacing:.04em;color:var(--cover-ink);background:var(--scrim-strong);-webkit-backdrop-filter:blur(6px);border-radius:4px;align-items:center;gap:3px;padding:0 5px;display:inline-flex}html[data-theme=retro-fantasy] .fmt{color:var(--text-on-accent);background:var(--accent);box-shadow:0 1px 3px var(--scrim)}html[data-theme=retro-fantasy] .fmt-epub{background:var(--ok);color:var(--on-status-dark)}html[data-theme=retro-fantasy] .fmt-pdf{background:var(--danger);color:var(--on-status-dark)}.series-row .format-badges,.book-hero .format-badges{position:static}.cover-progress{background:var(--scrim);border-radius:2px;height:3px;position:absolute;bottom:4px;left:6px;right:6px;overflow:hidden}.cover-progress>div{background:var(--accent-strong);height:100%}.series-stack{isolation:isolate;margin:8px 8px 0 0}.series-stack:before,.series-stack:after{content:"";border-radius:var(--radius-sm);background:var(--surface-3);border:1px solid var(--line);z-index:-1;position:absolute;inset:0}.series-stack:before{transform:translate(4px,-4px)}.series-stack:after{opacity:.6;transform:translate(8px,-8px)}.series-count{border-radius:var(--radius-pill);background:var(--scrim-strong);color:var(--accent-strong);border:1px solid var(--line-accent);align-items:center;gap:3px;padding:1px 7px;font-size:.72rem;font-weight:700;display:inline-flex;position:absolute;bottom:6px;right:6px}.shelf{margin-bottom:30px}.shelf-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 var(--page-x,16px);margin:0 calc(-1 * var(--page-x,16px));padding:2px var(--page-x,16px) 6px;scrollbar-width:none;grid-auto-columns:124px;grid-auto-flow:column;gap:12px;display:grid;overflow-x:auto}html[data-theme=retro-fantasy] .shelf{margin-bottom:18px;padding:14px 0 16px}html[data-theme=retro-fantasy] .shelf>.section-header{padding:0 14px}html[data-theme=retro-fantasy] .shelf-track{margin:0;padding:2px 14px 6px;scroll-padding:0 14px}.shelf-track::-webkit-scrollbar{display:none}.shelf-track>*{scroll-snap-align:start}.shelf-empty{margin:0}.book-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:20px 14px;margin:0;padding:0;list-style:none;display:grid}.tabs{scrollbar-width:none;border-bottom:1px solid var(--line-strong);gap:2px;margin:0 -16px 16px;padding:0 16px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{min-height:44px;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-radius:0;align-items:center;gap:.4rem;padding:0 12px;font-size:.88rem;font-weight:500;display:inline-flex;position:relative}.tab:hover:not(:disabled){color:var(--text);background:0 0}.tab.active{color:var(--text)}.tab.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.tab-count{color:var(--text-faint);font-size:.7rem}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:18px;display:flex}.toolbar .chips{scrollbar-width:none;flex-wrap:nowrap;max-width:100%;overflow-x:auto}.toolbar-right{flex-wrap:wrap;flex:1;gap:.5rem;min-width:0;display:flex}.toolbar-filter{flex:100%;min-width:0;min-height:38px}.toolbar-sort{flex:1;width:auto;min-height:38px}@media (width>=640px){.toolbar-filter{flex-basis:160px}.toolbar-sort{flex:0 auto}}.input{border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-1);min-height:42px;color:var(--text);padding:.5rem .75rem}.empty-state{text-align:center;justify-items:center;gap:.5rem;padding:40px 16px;display:grid}.empty-state h3{margin:4px 0 0}.empty-icon{width:58px;height:58px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--line-accent);box-shadow:0 0 0 6px var(--accent-soft);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.empty-body{max-width:420px}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.grid-skeleton,.shelf-skeleton,.book-skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface-1) 0%, var(--surface-2) 50%, var(--surface-1) 100%);background-size:800px 100%;height:220px;animation:1.4s linear infinite shimmer}.book-skeleton{height:360px}.loading-mark{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tiles-row{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:minmax(250px,78%);grid-auto-flow:column;gap:12px;margin:0 -16px 20px;padding:2px 16px 6px;display:grid;overflow-x:auto}.tiles-row::-webkit-scrollbar{display:none}.tiles-row>*{scroll-snap-align:start}.tile{flex-direction:column;min-height:176px;padding:14px 16px;display:flex}.tile-head{color:var(--accent);align-items:center;gap:.45rem;margin-bottom:10px;display:flex}.tile-head h3{font-family:var(--font-body);color:var(--text);flex:1;margin:0;font-size:.86rem;font-weight:600}.tile-body{flex-direction:column;flex:1;justify-content:center;gap:.4rem;display:flex}.streak{justify-items:center;gap:2px;display:grid}.streak-num{color:var(--accent-strong);text-shadow:0 0 18px var(--accent-soft);font-size:2.6rem;font-weight:700;line-height:1}.streak-dots{gap:6px;margin:8px 0 4px;display:flex}.streak-dots span{background:var(--surface-3);border:1px solid var(--line-strong);border-radius:50%;width:11px;height:11px}.streak-dots span.on{background:var(--accent);border-color:var(--accent-strong);box-shadow:0 0 6px var(--accent-soft)}.goal{place-items:center;display:grid;position:relative}.goal-text{justify-items:center;line-height:1.1;display:grid;position:absolute}.goal-text strong{font-size:1.6rem}.dna-quote{text-align:center;color:var(--accent-strong);margin:0 0 6px;font-size:1.05rem;font-style:italic}.dna-rows{gap:7px;display:grid}.dna-row{grid-template-columns:52px 1fr;align-items:center;gap:8px;display:grid}.dna-row .bar{height:5px}.dna-ends{grid-column:2;margin-top:-5px;font-size:.7rem}.glance{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}.glance>div{display:grid}.glance strong{color:var(--accent-strong);font-size:1.7rem;line-height:1.1}.continue-row{color:var(--text);align-items:center;gap:.75rem;display:flex}.continue-row:hover{color:var(--text)}.continue-row>span.grow{gap:1px;display:grid}.continue-cover{flex-shrink:0;width:64px}.greeting{color:var(--accent);align-items:center;gap:.5rem;margin:2px 0 14px;display:flex}.greeting h1{color:var(--text);margin:0;font-size:1.6rem}.ai-panel{border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--ai-soft), transparent 70%), var(--surface-1);border:1px solid var(--ai-line);box-shadow:inset 3px 0 0 var(--ai);padding:14px 16px;position:relative}.ai-head{color:var(--ai);flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:10px;display:flex}.ai-head h3{color:var(--text);margin:0;font-size:1.15rem}.ai-chip{border-radius:var(--radius-pill);background:var(--ai-soft);border:1px solid var(--ai-line);min-height:30px;color:var(--ai);padding:0 10px;font-size:.78rem}.ai-chip:hover:not(:disabled){background:var(--ai-soft);border-color:var(--ai);color:var(--ai)}.ai-inline{border-left:2px solid var(--ai-line);margin:6px 0 4px 18px;padding-left:12px}.spoiler{min-height:64px;position:relative}.spoiler.hidden .spoiler-content{filter:blur(7px);-webkit-user-select:none;user-select:none;pointer-events:none;max-height:140px;overflow:hidden}.spoiler-reveal{white-space:normal;text-align:center;background:var(--surface-2);border-color:var(--ai-line);width:max-content;max-width:calc(100% - 16px);height:max-content;color:var(--text);box-shadow:var(--shadow-md);margin:auto;padding-block:8px;line-height:1.3;position:absolute;inset:0}.spoiler-controls{border-radius:var(--radius-md);border:1px dashed var(--ai-line);color:var(--ai);flex-wrap:wrap;align-items:center;gap:.5rem;padding:10px 12px;display:flex}.spoiler-controls .small{color:var(--text)}.spoiler-controls select{width:auto;min-height:34px}.paper{padding:0}.paper h3{font-size:1.15rem}.paper .description{white-space:pre-line;color:var(--text);margin:0;font-size:1rem;line-height:1.65}.paper-muted{color:var(--text-muted);margin:0}html[data-theme=retro-fantasy] .paper{border-radius:var(--radius-lg);background:radial-gradient(120% 80% at 50% 0%, var(--paper-sheen), transparent 60%), var(--paper);color:var(--paper-text);box-shadow:inset 0 0 0 1px var(--paper-edge), inset 0 0 40px var(--paper-edge), var(--shadow-md);padding:16px 18px}html[data-theme=retro-fantasy] .paper h3{color:var(--paper-text)}html[data-theme=retro-fantasy] .paper .description{font-family:var(--font-display);color:var(--paper-text);font-size:1.12rem;line-height:1.55}html[data-theme=retro-fantasy] .paper-muted{color:var(--paper-muted);font-style:italic}.paper-sepia{background:var(--paper-sepia)}.paper-night{background:var(--paper-night);color:var(--paper-night-text);box-shadow:inset 0 0 0 1px var(--line)}.markdown p,.markdown ul,.markdown ol{margin:.5rem 0}.markdown h4{margin:.9rem 0 .3rem}.modal-backdrop{z-index:60;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal{background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom,0px));width:100%;box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 .8rem}.modal-book{flex-wrap:nowrap;gap:.8rem;margin-bottom:.5rem}.modal-actions{justify-content:flex-end;margin-top:1rem}.modal code{overflow-wrap:anywhere}.combo{display:flex;position:relative}.combo input{padding-right:2.4rem}.combo-toggle{border:none;border-left:1px solid var(--line);border-radius:0 var(--radius-md) var(--radius-md) 0;width:2.2rem;min-height:0;color:var(--text-muted);background:0 0;padding:0;position:absolute;top:1px;bottom:1px;right:1px}.combo-list{z-index:20;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-md);max-height:260px;box-shadow:var(--shadow-lg);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.combo-list li{border-radius:var(--radius-sm);cursor:pointer;padding:.55rem .7rem}.combo-list li.active,.combo-list li:hover{background:var(--accent-soft);color:var(--accent-strong)}.combo-list li.combo-empty{cursor:default;color:var(--text-faint);background:0 0}.toggle{background:0 0;border:none;min-height:0;padding:0}.toggle:hover:not(:disabled){background:0 0}.toggle .switch-track{width:44px;height:26px}.toggle .switch-thumb{width:20px;height:20px}.toggle.on .switch-thumb{transform:translate(18px)}@media (width>=640px){.book-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:24px 18px}.shelf-track{grid-auto-columns:132px;gap:18px}.tiles-row{grid-auto-columns:minmax(250px,42%)}.cover.thumb{width:64px}.modal-backdrop{align-items:center;padding:16px}.modal{border-radius:var(--radius-xl);width:min(460px,100%);padding:22px}}@media (width>=900px){.shelf-arrows{display:inline-flex}.shelf-track{grid-auto-columns:148px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tiles-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-auto-flow:row;margin:0 0 22px;padding:0;overflow:visible}.tabs{margin:0 0 18px;padding:0}.page-title{font-size:2.5rem}.greeting h1{font-size:1.9rem}}@media (width<=639px){.tile{min-height:0;padding:12px 14px}.tiles-row{grid-auto-columns:minmax(230px,72%);align-items:start}.streak-num{font-size:2.2rem}.goal svg{width:84px;height:84px}}.cover-done{background:var(--accent);width:22px;height:22px;color:var(--text-on-accent);box-shadow:0 1px 4px var(--scrim);border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:6px;right:6px}.continue-row{align-items:center}.continue-title{color:var(--text);font-size:1.02rem;font-weight:600;line-height:1.2}.continue-title:hover{color:var(--accent-strong)}.continue-bar{height:4px;margin:4px 0 2px;display:block}.continue-play{width:44px;min-height:44px;color:var(--text-on-accent);background:linear-gradient(180deg, var(--accent-strong), var(--accent));box-shadow:0 4px 12px var(--scrim);flex-shrink:0}.continue-play:hover:not(:disabled){background:var(--accent-strong);color:var(--text-on-accent)}.goal-input{width:90px}.dialog{text-align:center;justify-items:center;gap:.5rem;display:grid}.dialog h3{margin:0;font-size:1.4rem}.dialog-body{max-width:360px}.dialog-icon{width:48px;height:48px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--line-accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.dialog-danger .dialog-icon{color:var(--danger);background:var(--tone-soft);border-color:var(--danger)}.dialog-field{text-align:left;gap:.3rem;width:100%;margin-top:4px;display:grid}.dialog-actions{grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:10px;display:grid}.dialog-actions button{min-height:46px}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.modal{animation:.18s ease-out sheet-up}.view-switch{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-2);flex-shrink:0;gap:2px;padding:2px;display:inline-flex}.view-switch button{border-radius:var(--radius-pill);width:34px;height:30px;min-height:0;color:var(--text-muted);background:0 0;border:none;place-items:center;padding:0;display:inline-grid}.view-switch button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.view-switch button.active{background:var(--accent-soft);color:var(--accent-strong);box-shadow:inset 0 0 0 1px var(--line-accent)}.ok-text{color:var(--ok)}.accent-text{color:var(--accent-strong)}.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.book-grid.compact{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:14px 10px}.book-card-sm{gap:.35rem}.book-card-sm .book-card-title{-webkit-line-clamp:1;line-clamp:1;font-size:.8rem}.book-card-sm .book-card-author{font-size:.68rem}.book-card-sm .fmt{height:16px;padding:0 3px;font-size:.6rem}.book-card-sm .format-badges{bottom:4px;left:4px}.book-list{margin:0;padding:0;list-style:none}.book-list>li{border-bottom:1px solid var(--line)}.book-row{color:var(--text);align-items:center;gap:.8rem;min-width:0;padding:9px 2px;display:flex}.book-row:hover{color:var(--text);background:color-mix(in srgb, var(--surface-2) 60%, transparent)}.book-row:hover .book-row-title{color:var(--accent-strong)}.book-row .cover.thumb{width:44px}.book-row-text{flex:1;gap:1px;min-width:0;display:grid}.book-row-title{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;line-height:1.2;overflow:hidden}.book-row-side{text-align:right;flex-shrink:0;justify-items:end;gap:4px;display:grid}.book-row-side .format-badges{position:static}.row-progress{background:var(--surface-3);border-radius:2px;max-width:220px;height:3px;margin-top:3px;display:block;overflow:hidden}.row-progress>span{background:var(--accent-strong);height:100%;display:block}.book-cards{gap:12px;margin:0;padding:0;list-style:none;display:grid}.book-detail{color:var(--text);grid-template-columns:92px minmax(0,1fr);align-items:start;gap:14px;padding:12px;display:grid}.book-detail:hover{color:var(--text)}.book-detail-body{align-content:start;gap:3px;min-width:0;display:grid}.book-detail-series{color:var(--text-muted);font-size:var(--caps-size)}.book-detail-title{color:var(--text);font-size:1.2rem;font-weight:600;line-height:1.15}a.book-detail-title:hover{color:var(--accent-strong)}.book-detail-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.book-detail-meta .format-badges{position:static}.book-detail-synopsis{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:4px 0 0;line-height:1.45;display:-webkit-box;overflow:hidden}.book-detail-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.book-detail-progress{flex:1;gap:2px;min-width:120px;display:grid}.book-detail-actions{gap:6px}.small-btn,a.button-link.small-btn{gap:5px;min-height:32px;padding:0 12px;font-size:.82rem}.series-detail{grid-template-columns:120px minmax(0,1fr)}.series-fan{height:128px;display:block;position:relative}.series-fan .cover{width:72px;position:absolute;top:0}.series-fan .cover:first-child{z-index:5;left:0}.series-fan .cover:nth-child(2){z-index:4;top:4px;left:12px}.series-fan .cover:nth-child(3){z-index:3;top:8px;left:24px}.series-fan .cover:nth-child(4){z-index:2;top:12px;left:36px}.series-fan .cover:nth-child(5){z-index:1;top:16px;left:48px}.view-bar{justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;display:flex}@media (width>=640px){.book-grid.compact{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:18px 12px}.book-row .cover.thumb{width:52px}.book-detail{grid-template-columns:120px minmax(0,1fr);gap:18px;padding:14px}.book-detail-synopsis{-webkit-line-clamp:4;line-clamp:4}.series-detail{grid-template-columns:150px minmax(0,1fr)}.series-fan{height:150px}.series-fan .cover{width:86px}}@media (width>=1100px){.book-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.library-sections{scrollbar-width:none;margin:0 calc(-1 * var(--page-x,16px)) 14px;padding:2px var(--page-x,16px);gap:6px;display:flex;overflow-x:auto}.library-sections::-webkit-scrollbar{display:none}.library-sections a{border-radius:var(--radius-pill);background:var(--surface-2);min-height:40px;color:var(--text-muted);white-space:nowrap;align-items:center;padding:0 16px;font-size:.9rem;font-weight:500;display:inline-flex}.library-sections a:hover{color:var(--text);background:var(--surface-3)}.library-sections a.active{background:var(--text);color:var(--bg)}@media (width>=900px){.library-sections{display:none}}.book-hero{margin:-16px calc(-1 * var(--page-x,16px)) 14px;padding:10px var(--page-x,16px) 22px;isolation:isolate;position:relative;overflow:hidden}.book-hero[data-tinted=true]{background:linear-gradient(180deg, var(--cover-tint) 0%, var(--cover-tint) 45%, var(--bg) 100%)}.book-hero-backdrop{display:none}html[data-theme=retro-fantasy] .book-hero{border-bottom:1px solid var(--line)}html[data-theme=retro-fantasy] .book-hero-backdrop{z-index:-1;opacity:.38;filter:blur(42px)saturate(1.2);display:block;position:absolute;inset:-40px}html[data-theme=retro-fantasy] .book-hero:after{content:"";z-index:-1;background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 35%, transparent), var(--bg) 92%);position:absolute;inset:0}.book-hero-backdrop .cover{aspect-ratio:auto;width:100%;height:100%;box-shadow:none;border-radius:0}.book-hero-body{text-align:center;justify-items:center;gap:16px;display:grid}.book-hero-cover{width:min(52vw,230px)}.book-hero-cover .cover{box-shadow:var(--shadow-lg);border-radius:var(--radius-md)}.book-hero-info{justify-items:center;gap:4px;min-width:0;display:grid}.book-series-link{color:var(--text-muted)}.book-series-link:hover{color:var(--text)}.book-title{margin:0;font-size:1.85rem;line-height:1.1}.book-author{color:var(--text-muted);margin:0}.book-author a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px}.book-meta{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:4px 0 2px;font-size:.86rem}.book-meta .done{color:var(--ok);font-weight:500}.meta-chips{flex-wrap:wrap;justify-content:center;gap:6px;margin:6px 0 4px;display:flex}.meta-chip{border-radius:var(--radius-pill);background:var(--surface-1);border:1px solid var(--line);color:var(--text-muted);align-items:center;gap:.3rem;padding:3px 10px;font-size:.78rem;display:inline-flex}.book-actions{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:10px;display:flex}.btn-lg{border-radius:var(--radius-pill);min-height:50px;padding:0 1.4rem;font-size:1rem}.book-actions .primary{flex:160px;max-width:300px}.btn-note{opacity:.8;font-size:.7rem;font-weight:500}.icon-btn.bordered{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-1) 70%, transparent);border-radius:var(--radius-pill);width:50px;min-height:50px}.admin-actions{border-radius:var(--radius-md);border:1px dashed var(--line-strong);background:color-mix(in srgb, var(--surface-1) 70%, transparent);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:12px;padding:10px;display:flex}.admin-label{color:var(--text-muted);justify-content:center;align-items:center;gap:.3rem;width:100%;display:inline-flex}.book-page>.tabs{top:var(--topbar-h);z-index:15;background:var(--bg);position:sticky}.book-dock{z-index:34;left:8px;right:8px;bottom:calc(var(--bottomnav-h) + var(--safe-bottom) + 8px);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--cover-tint) 60%, var(--surface-2));border:1px solid var(--line);box-shadow:var(--shadow-md);gap:8px;padding:8px;display:flex;position:fixed}.book-dock .primary,.book-dock .btn{flex:1;min-height:46px}.dock-open .mini-player{display:none}@media (width>=900px){.book-dock{display:none}.dock-open .mini-player{display:flex}}.overview-grid{gap:16px;display:grid}.format-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.format-list li{border-bottom:1px solid var(--line);color:var(--accent);align-items:center;gap:.7rem;padding:10px 4px;display:flex}.format-list li:last-child{border-bottom:none}.format-list li .grow{color:var(--text);display:grid}.format-list li.missing{opacity:.5}.details{gap:0;margin:0;display:grid}.detail-row{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;gap:.6rem;padding:8px 0;display:grid}.detail-row:last-child{border-bottom:none}.detail-row dt{color:var(--text-muted);font-size:var(--caps-size);padding-top:2px}.detail-row dd{min-width:0;margin:0}.path-line{overflow-wrap:anywhere;display:block}.chapter-list{margin:0;padding:0;list-style:none}.chapter-item{border-bottom:1px solid var(--line)}.chapter-line{align-items:center;gap:.7rem;min-height:56px;padding:6px 0;display:flex}.chapter-play{background:var(--surface-1);border-color:var(--line-strong);border-radius:50%;flex-shrink:0;width:40px;height:40px;min-height:0;padding:0;position:relative}.chapter-play .icon{opacity:0;color:var(--accent-strong);transition:opacity .15s;position:absolute}.chapter-play:hover .icon,.chapter-play:focus-visible .icon{opacity:1}.chapter-play:hover .chapter-n,.chapter-play:focus-visible .chapter-n{opacity:0}.chapter-n{color:var(--accent);font-variant-numeric:lining-nums tabular-nums;font-size:1rem;font-weight:600}.chapter-title{line-height:1.3}.chapter-summary{padding:4px 0 12px}.world-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px;display:grid}.world-card{border-radius:var(--radius-md);border:1px dashed var(--ai-line);color:var(--ai);opacity:.85;gap:4px;padding:12px;display:grid}.world-card strong{color:var(--text);font-size:1.05rem}.bookmark-sample{border-radius:var(--radius-md);border:1px dashed var(--line-strong);opacity:.6;align-items:center;gap:.8rem;padding:12px;display:flex}.bookmark-sample>span:last-child{display:grid}.bookmark-time{font:600 .8rem var(--font-body);color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:4px 8px}.edit-details{max-width:none;margin:0 0 16px}.soon-fields{border-radius:var(--radius-md);border:1px dashed var(--line-strong);gap:.8rem;padding:12px;display:grid}.soon-fields label>span{align-items:center;gap:.4rem;display:flex}.soon-fields button{justify-self:start}.manage-panel{max-width:none;margin:0 0 16px}.manage-panel .bar{margin-top:.25rem}.player{isolation:isolate;margin:0 calc(-1 * var(--page-x));padding:max(8px, env(safe-area-inset-top)) var(--page-x) calc(20px + env(safe-area-inset-bottom));background:var(--bg);min-height:100dvh;position:relative;overflow:hidden}.player[data-tinted=true]{background:linear-gradient(180deg, var(--cover-tint) 0%, var(--cover-tint) 60%, color-mix(in srgb, var(--cover-tint) 45%, var(--bg)) 100%)}.player-backdrop{display:none}html[data-theme=retro-fantasy] .player-backdrop{z-index:-1;opacity:.45;filter:blur(60px)saturate(1.3);display:block;position:absolute;inset:-60px}html[data-theme=retro-fantasy] .player:after{content:"";z-index:-1;background:linear-gradient(180deg, transparent, var(--bg) 85%);position:absolute;inset:0}.player-backdrop .cover{aspect-ratio:auto;width:100%;height:100%;box-shadow:none;border-radius:0}.player-top{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.player-top .icon-btn{color:var(--text)}.player-where{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.82rem}.player-preview-note{border-radius:var(--radius-md);background:var(--surface-1);border:1px dashed var(--line-strong);max-width:520px;color:var(--text-muted);align-items:center;gap:.5rem;margin:6px auto 4px;padding:8px 12px;display:flex}.player-body{gap:16px;max-width:520px;margin:0 auto;display:grid}.player-cover{width:min(80vw,42dvh,360px);margin:12px auto 4px}.player-cover .cover{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.player-info{gap:4px;min-width:0;display:grid}.player-chapter-title{max-width:100%;min-height:0;color:var(--text);font-family:var(--font-display);font-size:1.45rem;font-weight:var(--display-weight);text-align:left;white-space:normal;background:0 0;border:none;border-radius:6px;justify-self:start;padding:0;line-height:1.2}.player-chapter-title:hover:not(:disabled){color:var(--text);text-underline-offset:4px;background:0 0;text-decoration:underline;text-decoration-thickness:1px}.player-title{font-family:var(--font-body);letter-spacing:0;color:var(--text-muted);margin:0;font-size:.92rem;font-weight:500}.player-info p{margin:0}.scrubber input{width:100%;accent-color:var(--accent)}.scrubber-times{font-variant-numeric:tabular-nums;color:var(--text-muted);justify-content:space-between;margin-top:4px;display:flex}.book-progress{color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:10px;font-size:.78rem;display:flex}.book-progress-track{background:color-mix(in srgb, var(--text) 16%, transparent);border-radius:2px;flex:1;height:3px;overflow:hidden}.book-progress-track>div{background:color-mix(in srgb, var(--text) 55%, transparent);height:100%}.transport{justify-content:space-between;align-items:center;padding:0 2px;display:flex}.transport .icon-btn{width:52px;min-height:52px;color:var(--text)}.transport .skip{position:relative}.skip-n{font:700 .55rem var(--font-body);opacity:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.play-btn{background:var(--accent);width:74px;height:74px;min-height:0;color:var(--text-on-accent);box-shadow:var(--shadow-md);border:none;border-radius:50%;padding:0}.play-btn:hover:not(:disabled){background:var(--accent);filter:brightness(1.06);color:var(--text-on-accent)}html[data-theme=retro-fantasy] .play-btn{background:radial-gradient(circle at 35% 30%, var(--accent-strong), var(--accent) 60%, color-mix(in srgb, var(--accent) 70%, black));border:1px solid var(--accent-strong);box-shadow:0 10px 30px var(--scrim), 0 0 0 6px var(--accent-soft)}.play-btn:disabled{opacity:.6}.player-tools{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tool{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--text) 9%, transparent);min-height:40px;color:var(--text);border-color:#0000;gap:6px;padding:0 14px;font-size:.84rem}.tool:hover:not(:disabled){background:color-mix(in srgb, var(--text) 15%, transparent);color:var(--text);border-color:#0000}.tool.active{background:var(--text);color:var(--bg);border-color:#0000}.sheet{border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--line);box-shadow:var(--shadow-md);padding:14px}.sheet-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:10px;display:flex}.speed-grid{flex-wrap:wrap;gap:6px;display:flex}.speed-grid .chip{justify-content:center;min-width:56px}.sheet-chapters{max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.sheet-chapters button{border-radius:var(--radius-md);text-align:left;background:0 0;border:none;justify-content:flex-start;gap:.7rem;width:100%;font-weight:400}.sheet-chapters button.current{background:var(--accent-soft);color:var(--text);font-weight:600}.player-footnotes{flex-wrap:wrap;justify-content:center;gap:6px 16px;display:flex}.player-footnotes span{align-items:center;gap:.3rem;display:inline-flex}.series-gaps{color:var(--warn);align-items:center;gap:.4rem;display:flex}.series-list{margin:0;padding:0;list-style:none}.series-list li{border-bottom:1px solid var(--line)}.series-row{color:var(--text);align-items:center;gap:.85rem;padding:10px 0;display:flex}.series-row:hover{color:var(--text)}.series-row:hover .series-row-title{color:var(--accent-strong)}.series-num{border:1px solid var(--line-accent);background:var(--accent-soft);width:34px;height:34px;color:var(--accent-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.series-row>.grow{gap:2px;display:grid}.series-row-title{font-size:1.1rem;line-height:1.2}.series-row .format-badges{display:none}.author-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.author-card{text-align:center;color:var(--text);justify-items:center;gap:4px;height:100%;padding:16px 12px 14px;display:grid}.author-card:hover{color:var(--text);border-color:var(--line-accent)}.author-covers{margin-bottom:-22px;display:flex}.author-covers .cover{border-radius:4px;width:46px}.author-covers .cover+.cover{margin-left:-18px}.author-monogram{background:var(--tone);border:1.5px solid var(--accent);width:48px;height:48px;color:var(--paper);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:inline-flex;position:relative}.author-name{margin-top:4px;font-size:1.1rem;line-height:1.2}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin:16px 0 0;padding:0;list-style:none;display:grid}.collection-card{opacity:.85;gap:3px;padding:14px;display:grid}.collection-card strong{font-size:1.2rem}.collection-spines{align-items:flex-end;gap:4px;height:64px;margin-bottom:8px;display:flex}.collection-spines span{background:linear-gradient(90deg, hsl(var(--hue) 35% 26%), hsl(var(--hue) 40% 36%) 50%, hsl(var(--hue) 35% 24%));width:16px;box-shadow:inset 0 6px 0 -4px var(--accent), inset 0 -6px 0 -4px var(--accent);border-radius:3px 3px 1px 1px}.collection-spines span:first-child{height:92%}.collection-spines span:nth-child(2){width:13px;height:76%}.collection-spines span:nth-child(3){width:18px;height:100%}.collection-spines span:nth-child(4){transform-origin:0 100%;height:70%;margin-left:2px;transform:rotate(9deg)}.search-page section{margin-top:22px}.search-hero{border-radius:var(--radius-pill);background:var(--surface-1);border:1px solid var(--line-accent);height:54px;color:var(--accent);box-shadow:var(--shadow-md);align-items:center;gap:.6rem;padding:0 16px;display:flex}.search-hero input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:1.05rem}.search-note{align-items:center;gap:.4rem;margin:8px 6px 0;display:flex}.stat-cards{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-card{color:var(--accent);gap:2px;padding:14px;display:grid}.stat-card strong{color:var(--text);font-size:1.7rem;line-height:1.1}.stats-grid{gap:12px;display:grid}.week-chart{align-items:flex-end;gap:8px;height:140px;display:flex}.week-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.week-bar{background:linear-gradient(180deg, var(--accent-strong), var(--tone));border-radius:6px 6px 2px 2px;width:100%;max-width:28px;min-height:4px}.rank-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.rank-list li{align-items:center;gap:.7rem;display:flex}.rank{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-strong);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.big-number{color:var(--accent-strong);margin:0;font-size:2rem}.settings-layout{gap:16px;display:grid}.settings-nav{gap:6px;display:grid}.settings-link{border-radius:var(--radius-lg);background:var(--surface-1);border:1px solid var(--line);min-height:60px;color:var(--accent);align-items:center;gap:.8rem;padding:10px 14px;display:flex}.settings-link .grow{color:var(--text);display:grid}.settings-link:hover{border-color:var(--line-accent);color:var(--accent-strong)}.settings-panel,.settings.has-section .settings-nav{display:none}.settings.has-section .settings-panel{display:block}.settings.has-section .page-header{display:none}.settings-panel h2{margin-bottom:8px}.setting{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:14px 0;display:flex}.setting:last-child{border-bottom:none}.setting-text{flex:200px;gap:2px;display:grid}.setting-control select{width:auto;min-width:150px}.setting-control input[type=range]{accent-color:var(--accent);width:180px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 8px;display:grid}.preset-card{border-radius:var(--radius-lg);background:var(--surface-1);border:1px solid var(--line);text-align:left;justify-items:start;gap:4px;min-height:0;padding:10px;font-weight:400;display:grid}.preset-card strong{font-weight:600}.preset-card.active{border-color:var(--accent);box-shadow:var(--accent-glow)}.preset-sample{border-radius:var(--radius-md);border:1px solid var(--line);width:100%;height:48px;margin-bottom:4px;display:block;position:relative;overflow:hidden}.preset-sample span:first-child{border-radius:50%;width:28px;height:28px;position:absolute;bottom:9px;right:10px}.preset-sample span:last-child{color:#0000;border-radius:4px;width:46%;height:8px;position:absolute;top:10px;left:10px;box-shadow:0 14px}.segmented{border-radius:var(--radius-pill);background:var(--surface-2);gap:2px;padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-pill);min-height:38px;color:var(--text-muted);background:0 0;border:none;padding:0 16px;font-weight:500}.segmented button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.segmented button.active{background:var(--text);color:var(--bg)}.swatches{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;min-height:0;padding:0;display:inline-flex;position:relative}.swatch.active{outline:2px solid var(--text);outline-offset:2px}.swatch.custom{background:var(--surface-3);color:var(--text);overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.tone-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.tone-card{border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--line);justify-content:flex-start;gap:8px;min-height:44px;padding:0 10px;font-weight:500}.tone-card.active{border-color:var(--accent);box-shadow:var(--accent-glow)}.tone-sample{border:1px solid var(--line-strong);border-radius:6px;flex-shrink:0;width:22px;height:22px}.text-size{flex-wrap:nowrap;gap:10px;width:100%}.text-size input{accent-color:var(--accent);flex:1}@media (width>=640px){.preset-grid,.tone-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.reading-sample{margin:6px 0 4px}.reading-sample p{margin:0;line-height:1.6}.account-card{border-bottom:1px solid var(--line);align-items:center;gap:.9rem;padding:4px 0 14px;display:flex}.account-card>span:last-child{gap:2px;display:grid}.account-card .badge{justify-self:start}.admin-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:0 0 16px;display:grid}.admin-card{color:var(--accent);align-content:start;gap:4px;padding:14px;display:grid}.admin-card strong{color:var(--text);font-size:1.15rem}.admin-card:hover{color:var(--accent-strong);border-color:var(--line-accent)}.health-list{margin:0 0 8px;padding:0;list-style:none}.health-list li{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:9px 0;display:flex}.health-list li:last-child{border-bottom:none}.warn-text,.warn-notice{color:var(--warn)}.panel+.panel,.admin-grid+.panel{margin-top:12px}.dup-list{margin:0 0 8px;padding:0;list-style:none}.dup-list li{border-bottom:1px solid var(--line);align-items:center;gap:.8rem;padding:10px 0;display:flex}.dup-list li .grow{gap:1px;min-width:0;display:grid}.upload h2,.page-accounts h2{font-size:2rem}.pickers{margin-top:.5rem}.upload-list{border-top:1px solid var(--line);margin:1rem 0 .5rem;padding:0;list-style:none}.upload-list li{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto 2.5rem;align-items:center;gap:.6rem;padding:.5rem 0;display:grid}.upload-list .path{overflow-wrap:anywhere;font-size:.88rem}.upload-list .pct{text-align:right;font-variant-numeric:tabular-nums}.tag-note{flex-wrap:nowrap;gap:.75rem;margin:.5rem 0}.tag-note img{object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;width:48px;height:72px}.hint button.link{font-size:inherit}.page-accounts .card .row strong{font-family:var(--font-display);font-size:1.15rem}.gate{background:radial-gradient(600px 400px at 50% 30%, var(--tone-soft), transparent 70%)}.gate-card{justify-items:center;gap:.5rem;width:min(420px,100%);padding:32px 24px 28px;display:grid}.gate-title{margin:6px 0 0;font-size:2.8rem}.gate-tag{color:var(--accent)}.gate-copy{max-width:320px;margin:6px 0 14px}.gate-btn{width:100%}@media (width>=640px){.stat-cards,.admin-grid{grid-template-columns:repeat(4,1fr)}}@media (width>=900px){.book-hero{margin:-22px -28px 22px;padding:20px 28px 30px}.book-hero-body{text-align:left;grid-template-columns:260px 1fr;place-items:end start;gap:32px}.book-hero-cover{width:260px}.book-hero-info{justify-items:start}.book-title{font-size:3rem}.meta-chips,.book-actions,.admin-actions{justify-content:flex-start}.admin-label{width:auto}.book-actions .primary{flex:none}.overview-grid{grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);align-items:start}.series-row .format-badges{display:flex}.player-body{grid-template-columns:1fr}.stats-grid{grid-template-columns:2fr 1fr 1fr}.settings-layout{grid-template-columns:280px minmax(0,1fr);align-items:start}.settings-panel,.settings.has-section .settings-panel{display:block}.settings.has-section .settings-nav{display:grid}.settings.has-section .page-header{display:block}.settings-link.active{border-color:var(--accent);background:var(--accent-soft)}}@media (height<=740px){.player-cover{width:min(70vw,36dvh,340px);margin-top:4px}.player-body{gap:12px}.player-chapter-title{font-size:1.3rem}}.play-btn.busy{opacity:.85}.play-spinner{border:3px solid color-mix(in srgb, var(--text-on-accent) 30%, transparent);border-top-color:var(--text-on-accent);border-radius:50%;width:30px;height:30px;animation:.9s linear infinite spin}.player-error{margin:0}.player-hint{text-align:center;margin:-4px 0 0}.scrubber input[type=range]{appearance:none;border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--accent) var(--fill,0%), color-mix(in srgb, var(--text) 18%, transparent) var(--fill,0%));outline-offset:6px;height:6px}.scrubber input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);width:18px;height:18px;box-shadow:0 1px 4px var(--scrim);border:none;border-radius:50%}.scrubber input[type=range]::-moz-range-thumb{background:var(--text);border:none;border-radius:50%;width:16px;height:16px}.scrubber input[type=range]:disabled{opacity:.55}.scrubber-times span:nth-child(2){color:var(--text)}.sheet textarea{resize:vertical;width:100%}.hero-progress{border-radius:var(--radius-pill);background:var(--surface-3);width:min(320px,100%);height:5px;margin:2px 0 4px;overflow:hidden}.hero-progress>div{background:linear-gradient(90deg, var(--accent), var(--accent-strong));height:100%}.meta-chip.status-completed{color:var(--accent-strong);border-color:var(--line-accent);background:var(--accent-soft)}.meta-chip.status-in-progress{color:var(--text);border-color:var(--line-strong)}.progress-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:4px;display:flex}.progress-actions button.link{color:var(--text-muted);font-size:.82rem}.icon-btn.bordered.active{color:var(--accent-strong);border-color:var(--line-accent);background:var(--accent-soft)}.icon-btn.bordered.busy{animation:1.2s ease-in-out infinite pulse}.bookmark-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.bookmark{align-items:center;gap:.4rem;display:flex}.bookmark-jump{text-align:left;background:var(--surface-1);border-color:var(--line);border-radius:var(--radius-lg);flex:1;justify-content:flex-start;gap:.8rem;min-width:0;padding:10px 12px;font-weight:400}.bookmark-jump .grow{gap:2px;min-width:0;display:grid}.bookmark-jump>.icon{color:var(--accent);flex-shrink:0}.bookmark-note{font-family:var(--font-display);color:var(--text-muted);font-size:1.02rem;font-style:italic}@media (width>=900px){.progress-actions{justify-content:flex-start}}.week-value{min-height:1em}.rank-cover{flex-shrink:0;width:34px}.rank-list a.grow{color:var(--text)}.history-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.history-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:4px 0;display:flex}@media (width>=900px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.download-list{margin:0;padding:0;list-style:none}.download-list li{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:8px 0;display:flex}.download-list li .grow{min-width:0;display:grid}.download-list .cover.thumb{width:44px}.slider-block{justify-items:center;gap:10px;display:grid}.slider-readout{color:var(--accent-strong);font-size:2rem;font-weight:700;line-height:1}.slider-row{align-items:center;gap:10px;width:100%;display:flex}.slider-row .icon-btn.bordered{border-radius:50%;width:40px;min-height:40px}.gold-slider{appearance:none;border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--accent) var(--fill,0%), var(--surface-3) var(--fill,0%));touch-action:none;flex:1;width:100%;height:8px}.gold-slider::-webkit-slider-thumb{-webkit-appearance:none;background:radial-gradient(circle at 35% 30%, var(--accent-strong), var(--accent));border:2px solid var(--bg);width:26px;height:26px;box-shadow:0 0 0 1px var(--accent), 0 3px 8px var(--scrim);border-radius:50%}.gold-slider::-moz-range-thumb{background:var(--accent-strong);border:2px solid var(--bg);border-radius:50%;width:24px;height:24px}.slider-ticks{justify-content:space-between;width:100%;padding:0 2px;display:flex}.tick{min-height:30px;color:var(--text-faint);background:0 0;border:none;padding:0 6px;font-size:.75rem}.tick.active,.tick:hover:not(:disabled){color:var(--accent-strong);background:0 0}.tick-label{color:var(--text-faint);font-size:.72rem}.chip.chapter-end{margin-top:4px}.listen-head{margin:4px 0 16px}.listen-head h1{margin:0;font-size:2rem}.listen-head p{color:var(--text-muted);margin:2px 0 0}.home-top{gap:12px;margin-bottom:28px;display:grid}.now-card{isolation:isolate;border-radius:var(--radius-xl);background:color-mix(in srgb, var(--cover-tint) 100%, transparent);grid-template-columns:96px minmax(0,1fr);grid-template-areas:"cover info""actions actions";gap:14px;padding:14px;display:grid;position:relative;overflow:hidden}.now-backdrop{display:none}html[data-theme=retro-fantasy] .now-backdrop{z-index:-2;opacity:.35;filter:blur(30px)saturate(1.3);display:block;position:absolute;inset:-30px}html[data-theme=retro-fantasy] .now-card:after{content:"";z-index:-1;background:linear-gradient(110deg, color-mix(in srgb, var(--surface-1) 70%, transparent), color-mix(in srgb, var(--surface-1) 92%, transparent));position:absolute;inset:0}.now-backdrop .cover{aspect-ratio:auto;width:100%;height:100%;box-shadow:none;border-radius:0}.now-cover{grid-area:cover;align-self:start}.now-cover .cover{border-radius:var(--radius-md)}.now-info{grid-area:info;align-content:center;gap:2px;min-width:0;display:grid}.now-eyebrow{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:2px;display:inline-flex}.now-eyebrow svg{color:var(--accent)}.now-title{color:var(--text);font-family:var(--font-display);font-size:1.3rem;font-weight:var(--display-weight);line-height:1.15}.now-title:hover{color:var(--text);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.now-author{color:var(--text-muted);font-size:.86rem}.now-chapter{color:var(--text-muted);font-size:.8rem}.now-actions{grid-area:actions;align-items:center;gap:12px;display:flex}.now-progress{flex:1;gap:4px;min-width:0;display:grid}.now-progress .bar{background:color-mix(in srgb, var(--text) 16%, transparent);height:4px;display:block}.now-progress .tiny{color:var(--text-muted)}.now-play{border-radius:50%;flex-shrink:0;width:56px;height:56px;min-height:0;padding:0}.now-open{color:var(--text)}.stats-line{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:.86rem;display:flex}.stats-line a{min-height:32px;color:var(--text-muted);align-items:center;gap:.35rem;display:inline-flex}.stats-line a:hover{color:var(--text)}.stats-line svg{color:var(--accent)}@media (width>=640px){.now-card{grid-template-columns:132px minmax(0,1fr);grid-template-areas:"cover info""cover actions";gap:6px 20px;padding:18px}.now-title{font-size:1.65rem}.now-actions{align-self:end}}@media (width>=1100px){.home-top{max-width:820px}}.reader{--reader-bg:var(--paper);--reader-fg:var(--paper-text);z-index:45;background:var(--reader-bg);color:var(--reader-fg);grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.reader.paper-sepia{--reader-bg:var(--paper-sepia)}.reader.paper-night{--reader-bg:var(--paper-night);--reader-fg:var(--paper-night-text)}.reader-top{padding:calc(6px + env(safe-area-inset-top,0px)) 8px 6px;border-bottom:1px solid color-mix(in srgb, var(--reader-fg) 12%, transparent);align-items:center;gap:4px;transition:opacity .2s;display:flex}.reader .icon-btn{color:var(--reader-fg)}.reader .icon-btn:hover:not(:disabled),.reader .icon-btn.active{background:color-mix(in srgb, var(--reader-fg) 10%, transparent);color:var(--reader-fg)}.reader-aa{font-family:var(--font-display);font-size:1.15rem;font-weight:700}.reader-title{text-align:center;flex:1;min-width:0;line-height:1.2;display:grid}.reader-title .tiny{opacity:.65}.reader-stage{grid-template-columns:1fr;min-height:0;display:grid;position:relative}.reader-viewer{height:100%;min-height:0;padding:8px 10px}.reader-edge{display:none}.reader-status{place-content:center;justify-items:center;gap:10px;display:grid;position:absolute;inset:0}.reader-bottom{padding:8px 16px calc(10px + env(safe-area-inset-bottom,0px));align-items:center;gap:10px;transition:opacity .2s;display:flex}.reader-bottom .bar{background:color-mix(in srgb, var(--reader-fg) 15%, transparent);height:3px}.reader:not(.with-chrome) .reader-top,.reader:not(.with-chrome) .reader-bottom{opacity:0;pointer-events:none}.reader-panel{left:8px;right:8px;top:calc(58px + env(safe-area-inset-top,0px));z-index:2;max-height:70dvh;color:var(--text);position:absolute;overflow-y:auto}.reader-toc{margin:0;padding:0;list-style:none}.reader-toc button{text-align:left;width:100%;font-weight:400;font-family:var(--font-display);background:0 0;border:none;justify-content:flex-start;font-size:1.05rem}.reader-toc button.current{color:var(--accent-strong);background:var(--accent-soft)}.paper-choices{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;display:grid}.paper-choice{min-height:52px;font-family:var(--font-display);border-width:2px;font-size:1.05rem}.paper-choice.paper-parchment{background:var(--paper);color:var(--paper-text)}.paper-choice.paper-sepia{background:var(--paper-sepia);color:var(--paper-text)}.paper-choice.paper-night{background:var(--paper-night);color:var(--paper-night-text)}.paper-choice.active{border-color:var(--accent);box-shadow:var(--accent-glow)}@media (width>=900px){.reader-stage{grid-template-columns:56px 1fr 56px}.reader-edge{color:var(--reader-fg);opacity:.4;background:0 0;border:none;justify-content:center;align-items:center;min-height:0;display:flex}.reader-edge:hover:not(:disabled){opacity:1;color:var(--reader-fg);background:0 0}.reader-viewer{justify-self:center;width:100%;max-width:1200px;padding:16px 0}.reader-panel{width:380px;left:auto;right:16px}}.guide{border-radius:var(--radius-lg);background:linear-gradient(180deg, var(--accent-soft), transparent 70%), var(--surface-1);border:1px solid var(--line-accent);margin:0 0 16px;padding:12px 14px}.guide-head{color:var(--accent);align-items:center;gap:.5rem;margin-bottom:4px;display:flex}.guide-head strong{color:var(--text);font-size:1.15rem}.guide details{border-top:1px solid var(--line);padding:2px 0}.guide summary{cursor:pointer;align-items:center;gap:.5rem;min-height:42px;font-size:.9rem;font-weight:600;list-style:none;display:flex}.guide summary::-webkit-details-marker{display:none}.guide summary:before{content:"◆";color:var(--accent);font-size:.55rem;transition:transform .15s}.guide details[open] summary:before{transform:rotate(45deg)}.guide ul{color:var(--text-muted);gap:6px;margin:0 0 10px;padding-left:1.2rem;font-size:.86rem;display:grid}.guide li strong{color:var(--text)}.guide-tree{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--line);color:var(--text-muted);margin:4px 0 12px;padding:10px 12px;font-size:.78rem;overflow-x:auto}.bulk-step{margin-bottom:14px}.bulk-step h3{align-items:center;gap:.6rem;margin:0 0 6px;display:flex}.step-num{width:26px;height:26px;font:700 .85rem var(--font-body);color:var(--text-on-accent);background:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.mini-spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}.bulk-default{margin:4px 0 12px}.bulk-default select{width:auto;min-height:36px}.bulk-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.bulk-row{border-radius:var(--radius-lg);background:var(--surface-1);border:1px solid var(--line);gap:8px;padding:12px;display:grid}.bulk-row.excluded{opacity:.5}.bulk-row.st-done{border-color:var(--ok)}.bulk-row.st-error{border-color:var(--danger)}.bulk-row.st-uploading{border-color:var(--line-accent);box-shadow:var(--accent-glow)}.bulk-row-head{align-items:center;gap:10px;display:flex}.bulk-row-head input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.bulk-cover{border-radius:var(--radius-sm);background:var(--surface-3);width:48px;height:48px;color:var(--text-faint);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.bulk-cover img{object-fit:cover;width:100%;height:100%}.bulk-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.bulk-chips .fmt{position:static}.ok-icon{color:var(--ok)}.bulk-fields{grid-template-columns:1fr 4.5rem;gap:6px 8px;display:grid}.bulk-fields label{gap:2px;min-width:0;display:grid}.bulk-fields label>span{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.bulk-fields .input{width:100%;min-height:38px;padding:.4rem .6rem}.bulk-fields label:first-child,.bulk-fields .bulk-title{grid-column:1/-1}.bulk-dest{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.bulk-dest code{overflow-wrap:anywhere}.bulk-acc{width:auto;min-height:30px;padding:.15rem .4rem;font-size:.8rem}.bulk-progress{align-items:center;gap:8px;display:flex}.bulk-progress .bar{height:5px}.bulk-go{box-shadow:var(--shadow-md)}@media (width>=900px){.bulk-fields{grid-template-columns:1.1fr 1.3fr 4.5rem 1.6fr}.bulk-fields label:first-child,.bulk-fields .bulk-title{grid-column:auto}.bulk-go{z-index:5;box-shadow:var(--shadow-lg);position:sticky;bottom:12px}.shell:has(.mini-player) .bulk-go{bottom:96px}}.collection-card{color:var(--text);opacity:1;gap:3px;padding:12px;display:grid}.collection-card:hover{color:var(--text);border-color:var(--line-accent)}.collection-covers{grid-template-columns:repeat(4,1fr);align-items:end;gap:4px;min-height:64px;margin-bottom:8px;display:grid}.collection-covers .cover{border-radius:3px}.collection-covers .collection-spines{grid-column:1/-1;margin:0}.suggestions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:18px;display:flex}.shelf-item{position:relative}.shelf-remove{background:var(--danger);border-color:var(--danger);width:30px;min-height:30px;color:var(--on-status);box-shadow:var(--shadow-md);border-radius:50%;padding:0;position:absolute;top:6px;right:6px}.collection-picker{text-align:left}.collection-picker h3,.collection-picker>p{text-align:center}.picker-list{gap:4px;width:100%;max-height:50dvh;margin:4px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.picker-row{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-1);cursor:pointer;align-items:center;gap:10px;min-height:48px;padding:0 12px;display:flex}.picker-row.on{border-color:var(--line-accent);background:var(--accent-soft)}.picker-row input{width:20px;height:20px;accent-color:var(--accent)}.picker-swatch{background:linear-gradient(180deg, hsl(var(--hue) 40% 38%), hsl(var(--hue) 40% 24%));border-radius:3px;width:12px;height:28px}.edit-details textarea{resize:vertical;min-height:96px}.cover-edit{border:1px solid var(--line);border-radius:var(--radius-md);align-items:flex-start;gap:14px;padding:10px;display:flex}.cover-edit-preview{flex-shrink:0;width:96px}.cover-edit-preview img{aspect-ratio:2/3;object-fit:contain;background:var(--surface-3);border-radius:var(--radius-sm);width:100%;box-shadow:var(--shadow-cover)}.cover-edit .stack{gap:6px}:is(.book-hero-backdrop,.player-backdrop,.now-backdrop) .cover>img{object-fit:cover;filter:none;transform:none}:is(.book-hero-backdrop,.player-backdrop,.now-backdrop) .cover>.cover-blur{display:none}.settings-subhead{margin:26px 0 4px;font-size:1.15rem}.layout-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 8px;display:grid}.layout-card{text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);min-height:0;color:var(--text);justify-items:start;gap:4px;padding:12px;display:grid}.layout-card strong{align-items:center;gap:6px;display:inline-flex}.layout-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 18px var(--accent-soft)}.layout-sample{gap:4px;width:100%;height:54px;margin-bottom:6px;display:grid}.layout-sample>span{background:var(--surface-3);border:1px solid var(--line);border-radius:3px}.layout-sample-grid{grid-template-columns:repeat(3,1fr)}.layout-sample-compact{grid-template-columns:repeat(4,1fr)}.layout-sample-list{grid-template-rows:repeat(2,1fr)}.layout-sample-list>span{background:linear-gradient(90deg, var(--accent-soft) 0 14%, var(--surface-3) 14%)}.layout-sample-cards{grid-template-rows:repeat(2,1fr)}.layout-sample-cards>span{background:linear-gradient(90deg, var(--accent-soft) 0 24%, var(--surface-3) 24%)}.page-section{margin-bottom:28px}@media (width>=640px){.layout-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.code-line{border-radius:var(--radius-sm);background:var(--surface-3);max-width:100%;color:var(--text);text-align:left;white-space:pre;margin:10px auto 0;padding:8px 12px;font-size:.8rem;display:block;overflow-x:auto}.ai-steps{gap:6px;margin:0;padding-left:1.2rem;display:grid}.split-list{gap:2px;max-height:60vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.split-list li{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:4px 10px;padding:8px 4px;display:grid}.split-list li.excluded{opacity:.55}.split-list input[type=checkbox]{margin-top:10px}.split-main{gap:2px;min-width:0;display:grid}.split-main .tiny{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.split-title{min-height:34px;padding:4px 8px;font-weight:600}.split-audio{grid-column:2;min-height:34px;font-size:.82rem}.ai-start{border-color:var(--ai-line);background:color-mix(in srgb, var(--ai-soft) 60%, var(--surface-1));gap:10px;display:grid}.ai-bar{background:var(--surface-3);border-radius:4px;height:8px;overflow:hidden}.ai-bar>div{background:linear-gradient(90deg, var(--ai), var(--accent-strong));height:100%;transition:width .4s}.ai-chapter-progress{gap:2px;margin:0;padding:0;list-style:none;display:grid}.ai-chapter-progress li{border-radius:var(--radius-sm);color:var(--text-faint);align-items:center;gap:8px;padding:5px 8px;font-size:.85rem;display:flex}.ai-chapter-progress li.done{color:var(--text-muted)}.ai-chapter-progress li.done svg{color:var(--ok)}.ai-chapter-progress li.current{color:var(--text);background:var(--ai-soft)}.ai-unverified ul,.ai-admin details ul{gap:4px;margin:8px 0 0;padding-left:1.1rem;display:grid}.ai-review-chapters{margin:0;padding:0;list-style:none}.ai-review-chapters>li{border-bottom:1px solid var(--line)}.ai-review-head{width:100%;min-height:0;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 2px;font-weight:500;display:flex}.ai-review-head:hover:not(:disabled){color:var(--accent-strong);background:0 0}.ai-review-body{padding:0 2px 12px}@media (width>=640px){.split-list li{grid-template-columns:auto minmax(0,1fr) minmax(180px,34%)}.split-audio{grid-column:3}}.ai-chip.locked{color:var(--text-faint);border-style:dashed}.world-progress{border-radius:var(--radius-sm);background:var(--ai-soft);color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.world-sections{scrollbar-width:none;flex-wrap:nowrap;margin-bottom:10px;overflow-x:auto}.world-sections .chip{flex-shrink:0}.world-list{gap:2px;margin:10px 0 0;padding:0;list-style:none;display:grid}.world-entity{border-bottom:1px solid var(--line)}.world-entity-head{width:100%;min-height:0;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 2px;display:flex}.world-entity-head:hover:not(:disabled){background:0 0}.world-entity-head strong{font-size:1.05rem}.world-who{margin-top:1px;display:block}.world-entity-body{gap:6px;padding:0 2px 12px;display:grid}.world-arc{border-left:2px solid var(--ai-line);background:var(--ai-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0;padding:8px 10px}.world-facts{gap:4px;margin:0;padding:0;list-style:none;display:grid}.world-fact-line{min-height:0;color:var(--text);text-align:left;font:inherit;background:0 0;border:none;padding:0;line-height:1.45;display:inline}.world-fact-line:hover:not(:disabled){color:var(--accent-strong);background:0 0}.world-fact-line .badge{vertical-align:1px;margin-left:6px}.world-quote{border-left:2px solid var(--line-accent);color:var(--text-muted);margin:3px 0 2px 10px;padding-left:8px;font-style:italic;display:block}.world-quote q{display:block}.world-timeline{border-left:2px solid var(--ai-line);gap:6px;margin:10px 0 0;padding:0 0 0 14px;list-style:none;display:grid}.world-timeline li{position:relative}.world-timeline li.major:before{content:"";background:var(--ai);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:-20px}.world-ch{color:var(--accent);margin-top:8px;display:block}.world-question{border-bottom:1px solid var(--line);padding:10px 2px}.world-question p{margin:4px 0 0}.stack>*,.ai-panel,.ai-panel>*{min-width:0}.world-sections{max-width:100%}.ai-redo{gap:10px;display:grid}.ai-redo>summary{cursor:pointer;font-weight:600}.summary-hits{gap:8px;margin:0;padding:0;list-style:none;display:grid}.summary-hit{border:1px solid var(--ai-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--ai-soft) 50%, var(--surface-1));color:var(--text);gap:3px;padding:10px 12px;display:grid}.summary-hit:hover{color:var(--text);border-color:var(--ai)}.summary-hit mark{background:var(--accent-soft);color:var(--accent-strong);border-radius:3px;padding:0 2px}
