:root{--font-sans:"Inter", "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"Lora", "Merriweather", Georgia, serif;--font-current:var(--font-serif);--text-scale:1;--reader-font-size:calc(1.15rem * var(--text-scale));--reader-line-height:calc(1.75 * var(--text-scale));--bg-primary-light:#fcfbfa;--bg-secondary-light:#f4f2ef;--bg-tertiary-light:#f4f2efb3;--text-primary-light:#2c2a29;--text-secondary-light:#6e6b64;--border-light:#e8e5e0;--accent-light:#8e7c5f;--accent-hover-light:#6e5e45;--shadow-light:#0000000a;--scrollbar-thumb-light:#d0cbc2;--scrollbar-track-light:#f4f2ef;--bg-primary-dark:#121212;--bg-secondary-dark:#1a1a1a;--bg-tertiary-dark:#1a1a1ab3;--text-primary-dark:#e0e0e0;--text-secondary-dark:#a0a0a0;--border-dark:#2c2c2c;--accent-dark:#cbbb9e;--accent-hover-dark:#e6dac3;--shadow-dark:#0003;--scrollbar-thumb-dark:#3a3a3a;--scrollbar-track-dark:#1a1a1a;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:3rem;--header-height:64px;--sidebar-width:320px}:root[data-theme=light]{--bg-primary:var(--bg-primary-light);--bg-secondary:var(--bg-secondary-light);--bg-tertiary:var(--bg-tertiary-light);--text-primary:var(--text-primary-light);--text-secondary:var(--text-secondary-light);--border:var(--border-light);--accent:var(--accent-light);--accent-hover:var(--accent-hover-light);--shadow:var(--shadow-light);--scrollbar-thumb:var(--scrollbar-thumb-light);--scrollbar-track:var(--scrollbar-track-light);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg-primary:var(--bg-primary-dark);--bg-secondary:var(--bg-secondary-dark);--bg-tertiary:var(--bg-tertiary-dark);--text-primary:var(--text-primary-dark);--text-secondary:var(--text-secondary-dark);--border:var(--border-dark);--accent:var(--accent-dark);--accent-hover:var(--accent-hover-dark);--shadow:var(--shadow-dark);--scrollbar-thumb:var(--scrollbar-thumb-dark);--scrollbar-track:var(--scrollbar-track-dark);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5;transition:background-color .3s,color .3s;overflow-x:hidden}:root{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}@supports not (scrollbar-color:auto){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header{height:var(--header-height);background-color:var(--bg-tertiary);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 var(--space-md);z-index:100;justify-content:space-between;align-items:center;transition:background-color .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.header-left,.header-right{align-items:center;gap:var(--space-sm);display:flex}.book-header-title{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text-primary);font-size:1.1rem;font-weight:600}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s,color .2s;display:flex}.icon-btn:hover{background-color:var(--border);color:var(--text-primary)}.icon{width:20px;height:20px}.display-settings-container{display:inline-block;position:relative}.display-popover{margin-top:var(--space-sm);background-color:var(--bg-secondary);border:1px solid var(--border);box-shadow:0 10px 30px var(--shadow);padding:var(--space-md);gap:var(--space-md);z-index:200;border-radius:12px;flex-direction:column;width:270px;animation:.2s cubic-bezier(.16,1,.3,1) forwards slideDown;display:none;position:absolute;top:100%;right:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.display-popover.show{display:flex}.popover-section{gap:var(--space-xs);flex-direction:column;display:flex}.section-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:2px;font-size:.72rem;font-weight:700}.font-size-controls,.font-family-controls{gap:var(--space-xs);display:flex}.popover-btn{background-color:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);padding:8px var(--space-sm);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--font-sans);border-radius:6px;flex:1;justify-content:center;align-items:center;transition:background-color .2s,border-color .2s,color .2s;display:flex}.popover-btn:hover{background-color:var(--border)}.popover-btn.active{background-color:var(--accent);color:var(--bg-primary-light);border-color:var(--accent)}.reset-btn{font-size:.78rem;font-weight:500}.main-layout{margin-top:var(--header-height);height:calc(100vh - var(--header-height));flex:1;display:flex;position:relative}.app-sidebar{width:var(--sidebar-width);background-color:var(--bg-secondary);border-right:1px solid var(--border);z-index:90;flex-direction:column;transition:transform .3s,background-color .3s,border-color .3s;display:flex;overflow-y:auto}.sidebar-header{padding:var(--space-md);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.sidebar-header h3{color:var(--text-primary);font-size:1.1rem;font-weight:600}.toc-navigation{padding:var(--space-md) var(--space-sm);gap:var(--space-xs);flex-direction:column;display:flex}.toc-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-top:var(--space-md);margin-bottom:var(--space-xs);padding-left:var(--space-sm);font-size:.85rem;font-weight:700}.toc-section-title:first-of-type{margin-top:0}.toc-item{padding:var(--space-sm) var(--space-md);color:var(--text-secondary);border-radius:8px;font-size:.95rem;line-height:1.35;text-decoration:none;transition:background-color .2s,color .2s;display:block}.toc-item:hover{background-color:var(--border);color:var(--text-primary)}.toc-item.active{background-color:var(--accent);color:var(--bg-primary-light);font-weight:500}.loading-placeholder{padding:var(--space-lg);text-align:center;color:var(--text-secondary);font-style:italic}.reader-container{padding:var(--space-xl) var(--space-lg);scroll-behavior:smooth;flex-direction:column;flex:1;align-items:center;display:flex;overflow-y:auto}.reader-content{width:100%;max-width:680px;min-height:60vh}.book-cover-view{text-align:center;padding:var(--space-md) 0 var(--space-xl);flex-direction:column;align-items:center;display:flex}.cover-image-container{width:280px;height:280px;box-shadow:0 16px 32px var(--shadow);margin-bottom:var(--space-lg);border:1px solid var(--border);border-radius:12px;transition:transform .3s;overflow:hidden}.cover-image-container:hover{transform:translateY(-8px)}.cover-image-container img{object-fit:cover;width:100%;height:100%}.book-title{font-family:var(--font-sans);letter-spacing:-.02em;margin-bottom:var(--space-xs);color:var(--text-primary);font-size:2.25rem;font-weight:800}.book-author{color:var(--accent);margin-bottom:var(--space-md);font-size:1.1rem;font-weight:500}.book-meta{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.85rem}.book-desc{font-family:var(--font-serif);color:var(--text-secondary);max-width:580px;margin-bottom:var(--space-xl);padding:0 var(--space-md);border-left:3px solid var(--accent);font-size:1.1rem;font-style:italic;line-height:1.6}.start-reading-btn{background-color:var(--accent);color:var(--bg-primary-light);cursor:pointer;border:none;border-radius:30px;padding:12px 32px;font-size:1rem;font-weight:600;transition:background-color .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 12px #8e7c5f33}.start-reading-btn:hover{background-color:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 16px #8e7c5f4d}.chapter-meta{font-family:var(--font-sans);text-transform:uppercase;color:var(--accent);letter-spacing:.05em;margin-bottom:var(--space-sm);font-size:.85rem;font-weight:600}.chapter-title{font-family:var(--font-sans);letter-spacing:-.01em;margin-bottom:var(--space-xl);color:var(--text-primary);border-bottom:2px solid var(--border);padding-bottom:var(--space-md);font-size:2.1rem;font-weight:700;line-height:1.3}.reader-body{font-family:var(--font-current);font-size:var(--reader-font-size);line-height:var(--reader-line-height);color:var(--text-primary);gap:var(--space-lg);flex-direction:column;transition:font-size .2s,line-height .2s;display:flex}.reader-body p{text-align:justify;letter-spacing:.01em}.reader-body p[data-dialogue=true]{padding-left:var(--space-md);border-left:2px solid var(--border);color:var(--text-primary);font-style:normal}.reader-body blockquote{color:var(--text-secondary);border-left:4px solid var(--accent);padding-left:var(--space-md);margin:var(--space-md) 0;font-style:italic}.fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.reader-footer{border-top:1px solid var(--border);width:100%;max-width:680px;margin-top:var(--space-xl);padding-top:var(--space-lg);justify-content:space-between;gap:var(--space-md);transition:border-color .3s;display:flex}.nav-chapter-btn{background-color:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;align-items:center;gap:var(--space-sm);border-radius:8px;padding:10px 20px;font-size:.95rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s;display:flex}.nav-chapter-btn:hover:not(:disabled){background-color:var(--border);border-color:var(--accent)}.nav-chapter-btn:disabled{opacity:.4;cursor:not-allowed}.read-progress{background-color:var(--accent);z-index:1000;transform-origin:0;width:100%;height:4px;transition:transform .1s;position:fixed;top:0;left:0;transform:scaleX(0)}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){@keyframes grow-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.read-progress{transition:none;animation:linear grow-progress;animation-timeline:scroll(root)}}}.back-to-top-btn{background-color:var(--bg-secondary);border:1px solid var(--border);width:44px;height:44px;color:var(--text-primary);box-shadow:0 4px 12px var(--shadow);cursor:pointer;opacity:0;visibility:hidden;z-index:99;border-radius:50%;justify-content:center;align-items:center;transition:opacity .3s,transform .3s,visibility .3s,background-color .2s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(8px)}.back-to-top-btn.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top-btn:hover{background-color:var(--border);color:var(--accent)}.sidebar-overlay{z-index:85;background-color:#0006;width:100vw;height:100vh;display:none;position:fixed;top:0;left:0}.mobile-only{display:none}@media (width<=992px){.app-sidebar{top:var(--header-height);box-shadow:8px 0 24px var(--shadow);position:fixed;bottom:0;left:0;transform:translate(-100%)}.app-sidebar.open{transform:translate(0)}.app-sidebar.open+.sidebar-overlay{display:block}.mobile-only{display:flex}}@media (width<=768px){:root{--space-lg:1.25rem;--space-xl:2rem}.reader-container{padding:var(--space-xl) var(--space-md)}.book-title{font-size:1.8rem}.chapter-title{margin-bottom:var(--space-lg);font-size:1.65rem}.reader-body{--reader-font-size:calc(1.05rem * var(--text-scale));--reader-line-height:calc(1.65 * var(--text-scale))}.book-header-title{display:none}}.chapter-header-container{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-xl);border-bottom:2px solid var(--border);padding-bottom:var(--space-md);display:flex}.chapter-header-container .chapter-title{border-bottom:none;flex:1;margin-bottom:0;padding-bottom:0}.tts-play-btn{background-color:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;align-items:center;gap:var(--space-xs);font-size:.88rem;font-weight:600;font-family:var(--font-sans);border-radius:20px;margin-top:6px;padding:8px 16px;transition:background-color .2s,border-color .2s,color .2s;display:flex}.tts-play-btn:hover{background-color:var(--border);border-color:var(--accent);color:var(--accent)}.tts-play-btn.active-playing{background-color:var(--accent);border-color:var(--accent);color:var(--bg-primary-light)}.tts-play-btn.active-playing:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg-primary-light)}.audio-player-panel{justify-content:space-between;align-items:center;gap:var(--space-md);background-color:var(--bg-secondary);border:1px solid var(--border);margin-bottom:var(--space-lg);box-shadow:0 4px 12px var(--shadow);border-radius:12px;flex-wrap:wrap;padding:12px 16px;animation:.3s forwards fadeIn;display:flex}.player-left{align-items:center;gap:var(--space-xs);display:flex}.player-right{align-items:center;gap:var(--space-md);flex-wrap:wrap;flex:1;justify-content:flex-end;display:flex}.player-control-group{align-items:center;gap:var(--space-xs);display:flex}.control-label{font-family:var(--font-sans);color:var(--text-secondary);white-space:nowrap;font-size:.8rem;font-weight:600}.player-select{background-color:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-size:.82rem;font-family:var(--font-sans);cursor:pointer;border-radius:6px;outline:none;padding:4px 8px;font-weight:500;transition:border-color .2s}.player-select:focus{border-color:var(--accent)}.player-btn{background-color:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background-color .2s,color .2s;display:flex}.player-btn:hover{background-color:var(--border);color:var(--accent)}.player-status{color:var(--text-secondary);font-size:.82rem;font-style:italic;font-family:var(--font-sans);white-space:nowrap}@media (width<=576px){.chapter-header-container{align-items:stretch;gap:var(--space-sm);flex-direction:column}.tts-play-btn{align-self:flex-start;margin-top:0}.audio-player-panel{align-items:stretch;gap:var(--space-sm);flex-direction:column}.player-right{justify-content:flex-start;gap:var(--space-sm)}}
