@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Playfair+Display:ital,wght@0,400;0,700;0,800;1,400;1,700&display=swap";.reader-back-btn{display:flex;align-items:center;gap:8px;color:var(--text-primary);width:auto;padding:.5rem 1rem!important;font-weight:600;font-size:.72rem!important;border-radius:var(--radius-full)!important;transition:all .2s ease;cursor:pointer;background:var(--bg-elevated)!important;border:1px solid var(--border-color)!important;text-transform:uppercase;letter-spacing:.1em}.reader-back-btn:hover{background:var(--btn-icon-hover)!important;border-color:var(--border-hover)!important}html,body{overflow-x:hidden;width:100%;max-width:100%;position:relative;overscroll-behavior-x:none}*,*:before,*:after{transition-property:background-color,border-color,color,box-shadow;transition-duration:.25s;transition-timing-function:cubic-bezier(.16,1,.3,1)}:root{--bg-primary: #000000;--bg-secondary: #0a0a0a;--bg-elevated: #111111;--bg-input: rgba(255, 255, 255, .05);--bg-sidebar: rgba(0, 0, 0, .5);--bg-header: rgba(0, 0, 0, .75);--bg-reader-header: rgba(0, 0, 0, .85);--bg-dock: rgba(10, 10, 10, .8);--bg-popover: rgba(15, 15, 15, .92);--bg-cover-content: linear-gradient(135deg, rgba(20, 20, 20, .9) 0%, rgba(5, 5, 5, .95) 100%);--bg-app-gradient: radial-gradient(ellipse 80% 50% at 50% 110%, rgba(252, 255, 130, .04) 0%, transparent 70%), #000000;--text-primary: #ffffff;--text-secondary: #a1a1aa;--text-muted: #71717a;--text-body: #d4d4d8;--text-body-hover: #ffffff;--text-cover-author: rgba(255, 255, 255, .6);--accent: #fcff82;--accent-blue: #3b82f6;--accent-dim: rgba(252, 255, 130, .15);--font-display: "Playfair Display", Georgia, serif;--font-sans: "Instrument Sans", system-ui, sans-serif;--border-color: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .16);--border-active: rgba(252, 255, 130, .25);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .5);--shadow-md: 0 8px 16px -4px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .05);--shadow-lg: 0 20px 48px -12px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08);--shadow-dock: 0 24px 64px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .1);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 28px;--radius-full: 9999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--select-bg: rgba(255, 255, 255, .06);--select-bg-hover: rgba(255, 255, 255, .08);--select-arrow: rgba(255, 255, 255, .5);--select-option-bg: #1a1a1a;--select-option-color: #ffffff;--select-disabled-color: #52525b;--range-track: rgba(255, 255, 255, .12);--scrubber-track: rgba(255, 255, 255, .08);--scrubber-fill: rgba(255, 255, 255, .35);--progress-bar-track: rgba(255, 255, 255, .08);--progress-bar-fill: rgba(255, 255, 255, .35);--scrollbar-thumb: rgba(255, 255, 255, .1);--spinner-border: rgba(255, 255, 255, .15);--sidebar-item-hover: rgba(255, 255, 255, .04);--sidebar-item-active: rgba(255, 255, 255, .08);--sidebar-item-active-border: rgba(255, 255, 255, .12);--btn-icon-hover: rgba(255, 255, 255, .08);--btn-icon-active: rgba(255, 255, 255, .1);--btn-icon-active-shadow: rgba(255, 255, 255, .15);--btn-text-border: rgba(255, 255, 255, .18);--toc-hover: rgba(255, 255, 255, .05);--toc-active: rgba(255, 255, 255, .04);--toc-active-border: rgba(255, 255, 255, .1);--dock-btn-hover: rgba(255, 255, 255, .08);--dock-play-border: rgba(255, 255, 255, .2);--reader-content-scrollbar: rgba(255, 255, 255, .08);--color-scheme: dark;--reader-font: "Playfair Display", Georgia, serif;--reader-line-height: 2;--reader-letter-spacing: 0em;--reader-para-spacing: 1.85rem;--transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--transition-base: all .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .4s cubic-bezier(.4, 0, .2, 1);--transition-spring: all .5s cubic-bezier(.175, .885, .32, 1.275)}[data-theme=light]{--bg-primary: #fbfbf8;--bg-secondary: #f4f4f2;--bg-elevated: #ffffff;--bg-input: rgba(0, 0, 0, .04);--bg-sidebar: rgba(255, 255, 255, .65);--bg-header: rgba(255, 255, 255, .75);--bg-reader-header: rgba(255, 255, 255, .85);--bg-dock: rgba(255, 255, 255, .8);--bg-popover: rgba(255, 255, 255, .96);--bg-cover-content: linear-gradient(135deg, rgba(230, 225, 215, .9) 0%, rgba(215, 210, 200, .95) 100%);--bg-app-gradient: radial-gradient(ellipse 80% 50% at 50% 110%, rgba(0, 71, 255, .02) 0%, transparent 70%), #fbfbf8;--text-primary: #18181b;--text-secondary: #52525b;--text-muted: #94949e;--text-body: #27272a;--text-body-hover: #000000;--text-cover-author: rgba(0, 0, 0, .55);--accent: #854d0e;--accent-blue: #2563eb;--accent-dim: rgba(133, 77, 14, .1);--border-color: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .16);--border-active: rgba(0, 0, 0, .25);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .1), 0 0 0 1px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .14), 0 0 0 1px rgba(0, 0, 0, .07);--shadow-dock: 0 24px 48px rgba(0, 0, 0, .15), 0 0 0 1px rgba(0, 0, 0, .1);--select-bg: rgba(0, 0, 0, .05);--select-bg-hover: rgba(0, 0, 0, .08);--select-arrow: rgba(0, 0, 0, .45);--select-option-bg: #f7f5f0;--select-option-color: #1a1a1a;--select-disabled-color: #a8a29e;--range-track: rgba(0, 0, 0, .12);--scrubber-track: rgba(0, 0, 0, .12);--scrubber-fill: rgba(0, 0, 0, .3);--progress-bar-track: rgba(0, 0, 0, .08);--progress-bar-fill: rgba(0, 0, 0, .3);--scrollbar-thumb: rgba(0, 0, 0, .12);--spinner-border: rgba(0, 0, 0, .12);--sidebar-item-hover: rgba(0, 0, 0, .04);--sidebar-item-active: rgba(0, 0, 0, .08);--sidebar-item-active-border: rgba(0, 0, 0, .12);--btn-icon-hover: rgba(0, 0, 0, .06);--btn-icon-active: rgba(0, 0, 0, .08);--btn-icon-active-shadow: rgba(0, 0, 0, .12);--btn-text-border: rgba(0, 0, 0, .2);--toc-hover: rgba(0, 0, 0, .05);--toc-active: rgba(0, 0, 0, .05);--toc-active-border: rgba(0, 0, 0, .1);--dock-btn-hover: rgba(0, 0, 0, .06);--dock-play-border: rgba(0, 0, 0, .2);--reader-content-scrollbar: rgba(0, 0, 0, .1);--color-scheme: light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{height:100vh;display:flex}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden;background:var(--bg-app-gradient)}.sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--border-color);background:var(--bg-sidebar);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;padding:1.75rem 1.25rem;z-index:10}.sidebar-logo{padding:0 .5rem;margin-bottom:2rem}.search-bar{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:.65rem 1.1rem;display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.875rem;margin-bottom:2rem;transition:var(--transition)}.search-bar:focus-within{border-color:var(--border-hover);box-shadow:0 0 0 3px #ffffff0a;color:var(--text-secondary)}.search-bar input{border:none;background:transparent;outline:none;color:var(--text-primary);width:100%;font-family:var(--font-sans);font-size:.875rem}.search-bar input::placeholder{color:var(--text-muted)}.sidebar-settings{border-top:none;padding-bottom:20px}.sidebar-settings-header{display:flex;align-items:center;justify-content:space-between;padding:0 8px;margin-bottom:16px;cursor:pointer}.sidebar-settings-content{display:flex;flex-direction:column;gap:16px;padding:0 4px}.sidebar-setting-row label{font-size:11px;color:var(--text-muted);display:block;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.sidebar-setting-row select,.sidebar-setting-row input[type=range]{width:100%}.search-kbd{font-size:10px;color:var(--text-muted);border:1px solid rgba(255,255,255,.1);padding:2px 5px;border-radius:4px;letter-spacing:0;pointer-events:none}.sidebar-section{margin-bottom:2rem}.sidebar-heading{font-family:var(--font-sans);font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.18em;margin-bottom:1rem;padding-left:.75rem;display:block}.sidebar-category{margin-bottom:2.25rem}.sidebar-item{display:flex;align-items:center;gap:12px;padding:.75rem 1rem;margin-bottom:4px;font-size:.93rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);border-radius:var(--radius-md);border:1px solid transparent;-webkit-user-select:none;user-select:none}.sidebar-item:hover{background:var(--sidebar-item-hover);color:var(--text-primary);transform:translate(2px)}.sidebar-item:active{transform:scale(.98)}.sidebar-item.active{background:var(--sidebar-item-active);color:var(--text-primary);border-color:var(--sidebar-item-active-border);font-weight:600}.sidebar-item .icon{color:var(--text-muted);display:flex;flex-shrink:0;transition:color .15s ease}.sidebar-item:hover .icon,.sidebar-item.active .icon{color:var(--text-primary)}.main-content{flex:1;background:transparent;display:flex;flex-direction:column;position:relative;overflow-y:auto}.main-content::-webkit-scrollbar{width:4px}.main-content::-webkit-scrollbar-track{background:transparent}.main-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}.header{min-height:80px;height:auto;padding:0 3.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10;background:var(--bg-header);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.header-title{font-family:var(--font-display);font-size:2.2rem;font-weight:700;font-style:italic;letter-spacing:-.01em;color:var(--text-primary)}.btn-pill{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem 1.25rem;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:.72rem;font-weight:600;cursor:pointer;transition:var(--transition-fast)}.btn-pill:hover{background:var(--btn-icon-hover);color:var(--text-primary);border-color:var(--border-hover)}.dropdown-menu{background:var(--bg-popover);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;box-sizing:border-box;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:dropdownEnter .2s cubic-bezier(.16,1,.3,1) both}.dropdown-item{display:block;width:100%;padding:.75rem 1rem;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:.82rem;font-weight:500;text-align:left;cursor:pointer;transition:var(--transition-fast)}.dropdown-item:hover{background:var(--btn-icon-hover);color:var(--text-primary)}.dropdown-item.active{background:var(--text-primary);color:var(--bg-primary);font-weight:600}@keyframes dropdownEnter{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.header-actions{display:flex;gap:1rem;align-items:center}.btn-icon{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);padding:0;border-radius:var(--radius-full);width:44px;height:44px;flex-shrink:0;outline:none}.btn-icon:hover{color:var(--text-primary);background:var(--btn-icon-hover)}.btn-icon:active{transform:scale(.96);background:var(--btn-icon-active)}.btn-icon.active{color:var(--text-primary);background:var(--btn-icon-active);box-shadow:0 0 0 1px var(--btn-icon-active-shadow)}.page-enter{animation:pageEnter .55s cubic-bezier(.16,1,.3,1) both}@keyframes pageEnter{0%{opacity:0;transform:scale(.985) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.btn-text{background:transparent;border:1px solid var(--btn-text-border);color:var(--text-primary);padding:.55rem 1.4rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition);font-family:var(--font-sans)}.btn-text:hover,.btn-text.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.btn-text:hover{transform:translateY(-1px)}.btn-text:active{transform:translateY(0) scale(.98)}.theme-toggle{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);flex-shrink:0;font-size:1rem;line-height:1}.theme-toggle:hover{background:var(--btn-icon-hover);color:var(--text-primary);border-color:var(--border-hover)}.library-grid{padding:3.5rem 3.5rem 6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:3.5rem 2.5rem;animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) both}.book-card{display:flex;flex-direction:column;cursor:pointer;position:relative;transition:var(--transition);animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) both;max-width:320px}.book-cover{width:100%;aspect-ratio:1 / 1.6;height:auto;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:1.15rem;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;box-shadow:var(--shadow-sm);transition:var(--transition)}.book-card:hover .book-cover{border-color:var(--border-hover);box-shadow:var(--shadow-lg)}.empty-library{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;min-height:calc(100vh - 200px)}.btn-primary{display:inline-flex;align-items:center;gap:.75rem;background-color:var(--accent);color:#000;padding:.8rem 1.75rem;border:2px solid #000;border-radius:var(--radius-sm);font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;box-shadow:4px 4px #000;transition:transform .1s ease,box-shadow .1s ease;cursor:pointer}.btn-primary:hover{transform:translate(-1px,-1px);box-shadow:5px 5px #000}.book-cover-content{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;padding:1.5rem;text-align:center;background:var(--bg-cover-content)}.default-cover-title{color:var(--text-primary);font-family:var(--font-display);font-weight:700;font-style:italic;font-size:1.3rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:1rem}.default-cover-author{color:var(--text-cover-author);font-family:var(--font-sans);font-weight:500;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;position:relative;z-index:1}.book-cover img{width:100%;height:100%;object-fit:cover;transition:var(--transition);filter:brightness(.88)}.book-card:hover .book-cover img{filter:brightness(1)}.delete-book-btn{position:absolute;top:.65rem;right:.65rem;width:32px;height:32px;background:#000000b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;z-index:20;opacity:0;transform:scale(.9) translateY(-2px);transition:all .2s cubic-bezier(.16,1,.3,1);cursor:pointer}.book-card:hover .delete-book-btn{opacity:1;transform:scale(1) translateY(0)}.delete-book-btn:hover{background:#fff;border-color:#fff;color:#000;box-shadow:0 4px 12px #0000004d}.delete-book-btn:active{transform:scale(.92)}.book-card.is-parsing{cursor:default;opacity:.8;filter:grayscale(.2)}.book-card.is-parsing:hover{transform:scale(1)}.parsing-overlay{position:absolute;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:5}.spinner-small{width:24px;height:24px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.book-title{font-family:var(--font-display);font-size:1.05rem;font-weight:400;color:var(--text-primary);line-height:1.35;margin-bottom:.3rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{font-family:var(--font-sans);font-size:.78rem;color:var(--text-secondary);margin-bottom:.6rem}.book-progress{font-family:var(--font-sans);font-size:.72rem;color:var(--text-muted);display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.06em}.book-progress-bar-track{flex:1;height:2px;background:var(--progress-bar-track);border-radius:var(--radius-full);overflow:hidden}.book-progress-bar-fill{height:100%;background:var(--progress-bar-fill);border-radius:var(--radius-full);transition:width .4s ease}.book-count{font-size:.72rem;font-weight:700;letter-spacing:.12rem;opacity:.5;text-transform:uppercase;color:var(--text-primary)}.book-progress-container{margin-top:auto;padding-top:1rem}.book-progress-labels{display:flex;justify-content:space-between;font-size:.65rem;font-weight:700;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.08em}.book-progress-track{height:2px;background:var(--border-color);width:100%;border-radius:var(--radius-full);overflow:hidden}.book-progress-fill{height:100%;background:var(--text-secondary);transition:width .35s ease}@keyframes pulseGlow{0%,to{box-shadow:0 0 #fcff8200}50%{box-shadow:0 0 30px 4px #fcff8214}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-muted);text-align:center;padding:3rem;animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) both}.empty-state-icon{width:80px;height:80px;border-radius:50%;background:var(--bg-input);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;margin-bottom:2rem;animation:pulseGlow 3s ease-in-out infinite}.empty-state h2{font-family:var(--font-display);font-size:2.25rem;font-weight:400;font-style:italic;color:var(--text-primary);margin-bottom:1rem;letter-spacing:-.01em}.empty-state p{font-family:var(--font-sans);font-size:.95rem;margin-bottom:2.5rem;max-width:340px;line-height:1.7;color:var(--text-secondary)}@keyframes slideUpFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.reader-wrapper{background-color:var(--bg-primary);color:var(--text-primary);height:100%;width:100%;display:flex;flex-direction:column;position:absolute;inset:0;z-index:20;animation:slideUpFade .45s cubic-bezier(.16,1,.3,1) forwards;overflow-x:hidden;touch-action:pan-y}.reader-header{min-height:72px;height:auto;display:flex;align-items:center;justify-content:space-between;padding:0 3.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-reader-header);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);position:relative;z-index:10;flex-shrink:0}.reader-progress-bar{position:absolute;bottom:0;left:0;height:1px;background:var(--accent);transition:width .3s ease;opacity:.7}.reader-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:5rem 2rem 18rem;display:flex;flex-direction:column;align-items:center;scroll-behavior:smooth;scroll-padding:80px 0 200px 0;touch-action:pan-y}.reader-content::-webkit-scrollbar{width:4px}.reader-content::-webkit-scrollbar-track{background:transparent}.reader-content::-webkit-scrollbar-thumb{background:var(--reader-content-scrollbar);border-radius:var(--radius-full)}.book-page{max-width:680px;width:100%;font-size:1.2rem;line-height:var(--reader-line-height);color:var(--text-primary);font-family:var(--reader-font);letter-spacing:var(--reader-letter-spacing);transition:font-family .3s ease,line-height .3s ease,letter-spacing .3s ease}.book-page h1,.book-page h2,.book-page h3,.book-page h4,.book-page h5,.book-page h6{font-family:var(--font-display);font-weight:400;color:var(--text-primary);margin-top:4.5rem;margin-bottom:1.75rem;line-height:1.2}.book-page h1{font-size:3rem;font-style:italic}.book-page h2{font-size:2.25rem}.book-page h3{font-size:1.75rem}.book-page h4,.book-page h5,.book-page h6{font-size:1.4rem}.book-page p{margin-bottom:var(--reader-para-spacing);text-align:left;font-family:var(--reader-font);color:var(--text-body);font-weight:400;cursor:text;letter-spacing:var(--reader-letter-spacing);line-height:var(--reader-line-height);transition:color .2s ease,margin-bottom .3s ease,letter-spacing .3s ease,line-height .3s ease}.book-page p:hover{color:var(--text-body-hover)}.audio-dock{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);background:var(--bg-dock);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:1.1rem 2.25rem;display:flex;align-items:center;gap:2.25rem;z-index:50;width:min(88%,740px);box-shadow:var(--shadow-dock);transition:var(--transition)}.audio-dock:hover{border-color:var(--border-hover)}.dock-info{flex:1;display:flex;flex-direction:column;min-width:0}.dock-title{font-family:var(--font-display);font-size:1.05rem;font-weight:400;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.dock-subtitle{font-family:var(--font-sans);font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);margin-top:.35rem}.dock-controls{display:flex;align-items:center;gap:1rem}.dock-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);border-radius:var(--radius-full);width:44px;height:44px;flex-shrink:0}.dock-btn:hover{background:var(--dock-btn-hover);color:var(--text-primary)}.dock-btn.play{width:52px;height:52px;border:1px solid var(--dock-play-border);color:var(--text-primary)}.dock-btn.play:hover{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary);transform:scale(1.04)}.dock-btn.play:active{transform:scale(.97)}.dock-progress{display:flex;align-items:center;gap:1rem;font-family:var(--font-sans);font-size:.68rem;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:.85rem;letter-spacing:.03em}.scrubber{flex:1;height:2px;background:var(--scrubber-track);position:relative;cursor:pointer;border-radius:var(--radius-full);margin:0 4px;transition:height .2s cubic-bezier(.16,1,.3,1)}.scrubber:hover{height:4px}.scrubber-fill{position:absolute;top:0;left:0;height:100%;background:var(--scrubber-fill);border-radius:var(--radius-full);transition:width .25s linear,background-color .2s ease}.scrubber:hover .scrubber-fill{background:var(--text-primary)}.scrubber-thumb{position:absolute;top:50%;width:12px;height:12px;background:var(--text-primary);border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:transform .2s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-sm);pointer-events:none;z-index:2}.scrubber:hover .scrubber-thumb{transform:translate(-50%,-50%) scale(1)}.spinner{width:20px;height:20px;border:2px solid var(--spinner-border);border-top-color:var(--text-primary);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.book-page p,.book-page h1,.book-page h2,.book-page h3,.book-page h4,.book-page h5,.book-page h6{transition:opacity .4s ease,color .4s ease,background-color .4s ease}.settings-popover{position:absolute;top:68px;right:1.5rem;z-index:200;width:320px;background:var(--bg-popover);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:spEnter .2s cubic-bezier(.16,1,.3,1) both;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.sp-drag-handle{display:none}@keyframes spEnter{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sp-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.25rem .75rem;border-bottom:1px solid var(--border-color)}.sp-title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1rem;color:var(--text-primary);letter-spacing:-.01em}.sp-close{width:30px!important;height:30px!important;padding:0!important;color:var(--text-muted)!important;flex-shrink:0}.sp-close:hover{color:var(--text-primary)!important}.sp-group{padding:.875rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;border-bottom:1px solid var(--border-color)}.sp-group:last-child{border-bottom:none}.sp-group-label{font-family:var(--font-sans);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}.sp-timer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.sp-btn-small{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-secondary);padding:8px 4px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.72rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);text-align:center}.sp-btn-small:hover{background:var(--btn-icon-hover);color:var(--text-primary)}.sp-btn-small.active{background:var(--highlight-color);color:#000;border-color:var(--highlight-color)}.sp-step-badge.accent{background:var(--highlight-color-dim);color:var(--highlight-color);font-weight:700}.timer-badge{font-size:10px;color:var(--highlight-color);font-weight:700;background:var(--highlight-color-dim);padding:2px 8px;border-radius:4px;letter-spacing:.02em}.sp-row{display:flex;align-items:center;gap:.75rem;min-height:36px}.sp-row-col{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-height:unset}.sp-row-label{font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--text-secondary);min-width:48px;flex-shrink:0}.sp-label-between{display:flex;align-items:baseline;justify-content:space-between}.sp-step-badge{font-family:var(--font-sans);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.sp-step-wrap{display:flex;flex-direction:column;gap:4px}.sp-step-ticks{display:flex;justify-content:space-between;padding:0 2px}.sp-tick{font-family:var(--font-sans);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);cursor:pointer;padding:4px 8px;transition:color .12s ease;-webkit-user-select:none;user-select:none}.sp-tick:hover{color:var(--text-secondary)}.sp-tick.active{color:var(--text-primary)}.sp-theme-row{display:flex;gap:6px}.sp-segmented-control{display:flex;background:var(--bg-input);border-radius:var(--radius-sm);padding:3px;gap:4px;width:100%}.sp-seg-btn{flex:1;border:none;background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:.75rem;font-weight:700;height:30px;border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center}.sp-seg-btn:hover{color:var(--text-primary);background:#ffffff0a}[data-theme=light] .sp-seg-btn:hover{background:#0000000a}.sp-seg-btn.active{background:var(--text-primary);color:var(--bg-primary);box-shadow:0 1px 4px #0000001f}.sp-theme-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;padding:.7rem .5rem .6rem;background:transparent;border:1px solid var(--btn-text-border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;font-family:var(--font-sans)}.sp-theme-btn span{font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;line-height:1}.sp-theme-btn:hover{background:var(--btn-icon-hover);color:var(--text-primary);border-color:var(--border-hover)}.sp-theme-btn.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.sp-theme-btn.active svg{stroke:var(--bg-primary)}.sp-font-select{font-family:var(--reader-font)}.sp-color-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:4px 0}.sp-color-btn{aspect-ratio:1;border-radius:50%;border:1px solid var(--border-color);background:var(--swatch-bg);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;padding:0;position:relative}.sp-color-btn:hover{transform:scale(1.1);border-color:var(--text-muted)}.sp-color-btn.active{transform:scale(1.1);box-shadow:0 0 0 2px var(--bg-popover),0 0 0 4px var(--text-primary);border-color:transparent;z-index:1}:root{--highlight-color: #fcff82}.sp-options{display:flex;flex-wrap:wrap;gap:6px;flex:1}.sp-opt{background:transparent;border:1px solid var(--btn-text-border);color:var(--text-secondary);padding:.38rem .85rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;border-radius:var(--radius-full);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;font-family:var(--font-sans);white-space:nowrap;line-height:1;min-height:30px;display:inline-flex;align-items:center}.sp-opt:hover{background:var(--btn-icon-hover);color:var(--text-primary);border-color:var(--border-hover)}.sp-opt:active{transform:scale(.97)}.sp-opt.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.sp-select{width:100%}.sp-number{width:100%;background:transparent;color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.4rem .7rem;font-family:var(--font-sans);font-size:.82rem}.sp-slider-wrap{flex:1;display:flex;align-items:center;gap:.75rem}.sp-range{flex:1;height:3px;appearance:none;-webkit-appearance:none;background:var(--range-track);border-radius:var(--radius-full);cursor:pointer;outline:none}.sp-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--text-primary);border:2.5px solid var(--bg-popover);border-radius:50%;cursor:pointer;box-shadow:0 0 0 1px var(--border-hover);transition:transform .15s ease}.sp-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.sp-range-val{font-family:var(--font-sans);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.bookmarks-popover,.toc-popover,.settings-popover,.sort-popover{position:absolute;top:72px;right:1.5rem;z-index:200;width:290px;background:var(--bg-popover);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:spEnter .2s cubic-bezier(.16,1,.3,1) both;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 120px)}.settings-popover{width:330px}.sp-scroller{padding:1.25rem;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}.sp-scroller::-webkit-scrollbar{width:6px}.sp-scroller::-webkit-scrollbar-track{background:transparent}.sp-scroller::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}.sp-scroller::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.sort-popover{width:220px}.sp-card{margin-top:1.25rem;padding:1.1rem;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:0 4px 12px #0000000d}.sp-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.sp-badge-ai{padding:2px 8px;background:var(--accent);color:#000;font-size:10px;font-weight:900;border-radius:4px;letter-spacing:1px}.sp-label-between{display:flex;align-items:center;justify-content:space-between;width:100%}.sp-step-badge{font-family:var(--font-sans);font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.sp-toggle{width:38px;height:20px;border-radius:20px;background:var(--border-color);position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);border:none;cursor:pointer;flex-shrink:0}.sp-toggle.active{background:var(--accent)}.sp-toggle-dot{width:14px;height:14px;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0003}.sp-toggle.active .sp-toggle-dot{left:21px}.sp-drag-handle,.sp-header .sp-close{display:none!important}.sp-header{margin-bottom:.75rem}.settings-section-title,.sp-title{font-family:var(--font-sans);font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.18em;display:block}.toc-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:70vh}.toc-item{font-family:var(--font-sans);font-size:.9rem;padding:.75rem 1rem;border-radius:var(--radius-md);color:var(--text-secondary);background:transparent;cursor:pointer;transition:var(--transition-fast);border:1px solid transparent;line-height:1.4}.toc-item:hover{background:var(--toc-hover);color:var(--text-primary)}.toc-item.active{color:var(--text-primary);background:var(--toc-active);border-color:var(--toc-active-border);font-weight:500}select{font-family:var(--font-sans);background-color:var(--select-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-opacity='0.45' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:14px;-webkit-appearance:none;appearance:none;border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-primary);padding:.7rem 2.5rem .7rem 1.1rem;cursor:pointer;transition:var(--transition-fast);font-size:.875rem;color-scheme:var(--color-scheme);width:100%}select:hover{border-color:var(--border-hover);background-color:var(--select-bg-hover)}select:focus{outline:none;border-color:var(--border-hover);box-shadow:0 0 0 3px var(--bg-input)}select option{background-color:var(--select-option-bg);color:var(--select-option-color)}select option:disabled{color:var(--select-disabled-color)}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;background:transparent;height:3px;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{width:100%;height:2px;background:var(--range-track);border-radius:var(--radius-full)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:14px;width:14px;margin-top:-6px;border-radius:50%;background:var(--text-primary);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25);box-shadow:0 0 0 4px var(--bg-input)}input[type=number]{font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:.65rem 1rem;background:var(--bg-input);color:var(--text-primary);font-size:.875rem;transition:var(--transition-fast);width:100%}input[type=number]:focus{outline:none;border-color:var(--border-hover)}.highlight,.book-page p.highlight,.book-page h1.highlight,.book-page h2.highlight,.book-page h3.highlight{background-color:var(--highlight-color)!important;color:#000!important;border-radius:var(--radius-xs)!important;transition:background-color .35s ease,color .35s ease!important;padding:.25rem .5rem!important}a,button,[role=button]{cursor:pointer}:focus-visible{outline:2px solid var(--border-hover);outline-offset:2px}.mobile-menu-btn{display:none}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;opacity:0;transition:opacity .3s ease;pointer-events:none}.sidebar-overlay.active{display:block;opacity:1;pointer-events:auto}@media(max-width:1024px){.header{padding:0 1.5rem}}@media(max-width:768px){.mobile-menu-btn{display:flex}.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);z-index:101;transition:transform .35s cubic-bezier(.16,1,.3,1)}.sidebar.open{transform:translate(0)}.header{min-height:56px!important;height:auto!important;padding-top:env(safe-area-inset-top,0)!important;padding-left:1rem!important;padding-right:1rem!important;padding-bottom:.5rem!important;display:flex!important;justify-content:space-between!important;align-items:center!important;width:100%!important}.header-actions{margin-left:auto!important;display:flex!important;gap:8px!important;align-items:center!important;flex:none!important}.header-title{font-size:1.5rem}.library-grid{padding:1.5rem 1rem 8rem;grid-template-columns:repeat(2,1fr);gap:1.5rem 1rem}.book-cover{aspect-ratio:1 / 1.6;height:auto}.default-cover-title{font-size:.9rem;padding:.75rem}.sidebar-overlay{display:block}.main-content{width:100%;max-width:100%;overflow-x:hidden}.book-page{padding:1.5rem 1rem 10rem;font-size:1.125rem}.reader-header .btn-icon span{display:none}.delete-book-btn{opacity:1;transform:scale(1);width:36px;height:36px}.mobile-hide{display:none!important}.btn-import-mobile span{display:none}.btn-import-mobile{padding:.5rem!important;min-width:40px;justify-content:center}.voice-warmup-indicator .voice-warmup-text{display:none}.voice-warmup-indicator{margin-right:.5rem}.reader-header{padding-top:env(safe-area-inset-top,0)!important;padding-left:1rem!important;padding-right:1rem!important;padding-bottom:0!important;min-height:56px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}.reader-header-inner{display:flex!important;width:100%!important;height:100%!important;align-items:center!important;justify-content:space-between!important;padding:0 1rem!important;gap:0}.reader-back-btn{margin-right:auto!important}.reader-header-actions{margin-left:auto!important}.reader-header-title{display:none!important}.reader-header-actions{display:flex;gap:4px;align-items:center}.reader-header-actions .btn-icon{padding:.4rem}.audio-dock{width:calc(100% - 1.5rem);bottom:.75rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;border-radius:100px;flex-direction:row;gap:1.25rem;height:80px;background:var(--bg-dock);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.dock-controls{width:auto;justify-content:center;gap:.75rem}.dock-info{flex:1;display:flex!important;flex-direction:column;gap:2px;align-items:center;min-width:0}.dock-title{display:none}.dock-progress{width:100%;margin:0;font-size:10px}.settings-popover,.toc-popover,.bookmarks-popover,.sort-popover{position:fixed!important;inset:auto 0 0!important;width:100%!important;max-width:100%!important;z-index:1000!important;border-radius:24px 24px 0 0!important;border:none!important;border-top:1px solid var(--border-color)!important;padding-bottom:env(safe-area-inset-bottom,40px)!important;margin:0!important;box-shadow:0 -10px 40px #0006!important;display:flex!important;flex-direction:column!important;height:70vh!important;overflow:hidden!important;animation:spEnter .3s cubic-bezier(.16,1,.3,1) both!important}.sp-scroller,.toc-list,.sort-list{flex:1!important;overflow-y:auto!important;padding:0 .5rem 1rem!important}.sp-drag-handle{display:block!important;width:36px!important;height:5px!important;background:#fff3!important;margin:12px auto 0!important;border-radius:10px!important;flex-shrink:0!important}.sp-header .sp-close{display:flex!important}.sp-header{margin-bottom:0}.sp-title{font-size:.75rem!important}.sp-header,.toc-header,.bookmarks-header{padding:1.25rem 1.5rem .75rem!important}}.voice-warmup-indicator{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted);letter-spacing:.05em;padding:4px 10px;background:#0000000d;border-radius:100px;margin-right:1rem}[data-theme=dark] .voice-warmup-indicator{background:#ffffff0d}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;animation:pulse 1.5s infinite}.reader-header-inner{display:flex;width:100%;height:100%;align-items:center;justify-content:space-between;padding:0 1.5rem}.reader-header-title{position:absolute;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--text-secondary);letter-spacing:.01em;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-header-actions{display:flex;gap:16px;align-items:center}
