:root{--color-bg-primary: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-bg-hover: #2d3d55;--color-text-primary: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-button: #94a3b8;--color-border: #334155;--color-border-hover: #475569;--color-link: #60a5fa;--color-accent: #3b82f6;--color-accent-secondary: #1e3a5f;--color-accent-tertiary: #422006;--color-hover: rgba(var(--color-text-primary-rgb, 241, 245, 249), .1);--color-danger: #ef4444;--color-danger-light: #7f1d1d;--color-danger-bg: #450a0a;--color-success: #22c55e;--color-overlay: rgba(var(--overlay-color-rgb, 15, 23, 42), var(--overlay-med, .5));--color-scrollbar: #0c1222;--shadow-color-rgb: 0, 0, 0;--shadow-sm: .15;--shadow-md: .25;--shadow-lg: .35;--overlay-color-rgb: 0, 0, 0;--overlay-light: .4;--overlay-med: .6;--overlay-heavy: .9;--color-accent-rgb: 59, 130, 246;--color-highlight-rgb: 255, 255, 0;--color-text-primary-rgb: 241, 245, 249;--font-ui: "Lexend", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", "Noto Sans CJK SC", "Noto Sans CJK TC", "Noto Sans CJK JP", "Noto Sans CJK KR", sans-serif;--color-header-bg: #1e293b;--color-header-text: #f1f5f9;--color-footer-bg: #1e293b;--color-footer-text: #f1f5f9;--color-reader-secondary: #94a3b8;--color-tooltip-bg: var(--color-bg-secondary);--color-tooltip-text: var(--color-text-primary);--color-progress-slice: var(--color-text-secondary);--color-progress-current: var(--color-text-muted);--color-card-bg: var(--color-bg-secondary);--color-card-title: var(--color-text-primary);--color-card-author: var(--color-text-secondary);--color-card-meta: var(--color-text-muted);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text-primary);background-color:var(--color-bg-primary);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}button,input,select,textarea,label,summary,details,option{font-family:inherit}html{height:100%;overflow:hidden}body{margin:0;position:fixed;top:0;left:0;width:100%;height:100dvh;height:var(--vh, 100dvh);overflow:hidden;overscroll-behavior:none;background:radial-gradient(circle at 20% 20%,var(--color-accent-secondary),transparent 25%),radial-gradient(circle at 80% 0%,var(--color-accent-tertiary),transparent 25%),var(--color-bg-primary);font-family:var(--font-ui)}#app{width:100%;height:100%;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar)}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar) transparent}.library-view{width:92%;max-width:1600px;height:calc(var(--vh, 100dvh) - 48px);margin:24px auto;padding:32px 40px;padding-bottom:max(32px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px;box-sizing:border-box;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.library-settings-btn{position:relative;width:50px;height:50px;min-width:50px;flex:0 0 50px;padding:0;border:none;background:transparent;color:var(--color-button);cursor:pointer;border-radius:50%;transition:background .15s ease;display:flex;align-items:center;justify-content:center}.top-actions-right{display:flex;align-items:center;gap:8px;min-width:0}.library-settings-btn:hover{background:var(--color-hover)}.library-settings-btn:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;padding:4px 8px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-border);font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.library-settings-btn:hover:after{opacity:1}.library-settings-btn:active:after{opacity:0!important}.stats-btn:hover:after{opacity:1}.stats-btn:active:after{opacity:0!important}.topbar h1{margin:0 0 4px;font-size:28px}.subtitle{margin:0;color:var(--color-text-secondary);font-size:15px}.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:4px 14px;background:var(--color-accent);color:var(--color-text-primary);border-radius:8px;cursor:pointer;font-weight:600;white-space:nowrap;line-height:32px;font-size:14px;transition:background .2s ease}.file-button:hover{filter:brightness(var(--hover-brightness, .9))}.file-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.library-container{padding:8px 16px 8px 0;flex:1;align-content:start;overflow-y:auto;overflow-x:hidden;min-height:0}.library-grid{display:grid;--card-size: var(--card-size-desktop, 220px);grid-template-columns:repeat(auto-fill,minmax(var(--card-size),1fr));gap:20px}@media(max-width:768px),(max-height:500px)and (max-width:932px){.library-grid{--card-size: var(--card-size-mobile, 115px);gap:12px}.library-container{padding-right:8px}}.library-view.drag-active{border:2px dashed var(--color-accent);border-radius:12px;background:var(--color-bg-tertiary)}.empty-message{grid-column:1 / -1;text-align:left;color:var(--color-text-secondary);font-size:16px;padding:24px;background:var(--color-bg-secondary);border:2px dashed var(--color-border-hover);border-radius:12px;align-self:start}.folder-back-btn{grid-column:1 / -1;justify-self:start;padding:10px 16px;margin-bottom:8px;font-size:14px;color:var(--color-accent);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background .15s ease}.folder-back-btn:hover{background:var(--color-hover)}.folder-back-in-grid{grid-column:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;margin-bottom:0;border-radius:12px;box-sizing:border-box}.folder-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;overflow:visible;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;position:relative;z-index:1}.folder-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(var(--shadow-color-rgb),var(--shadow-sm));z-index:2}.folder-card.menu-open{z-index:100}.folder-cover-wrapper{width:100%;aspect-ratio:2 / 3;padding:8px;box-sizing:border-box;background:var(--color-bg-tertiary);border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:center;overflow:hidden}.folder-cover-composite{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;width:100%;height:100%;border-radius:6px;overflow:hidden}.folder-cover-cell{min-height:0;border-radius:4px;overflow:hidden;background:var(--color-bg-secondary)}.folder-cover-tile{width:100%;height:100%;object-fit:cover}.folder-cover-placeholder{width:100%;height:100%;min-height:40px;background:var(--color-bg-secondary)}.folder-info{padding:12px 32px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1;position:relative;min-height:0}.folder-title{margin:0;font-size:clamp(12px,3.5vw,16px);font-weight:600;color:var(--color-card-title);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.folder-custom-line1{margin:0;font-size:clamp(10px,2.5vw,13px);color:var(--color-card-author);font-weight:500;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.folder-custom-line2,.folder-custom-line3{margin:0;font-size:clamp(9px,2vw,11px);color:var(--color-card-meta);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.folder-card .folder-menu-wrapper{position:absolute;top:8px;right:0;z-index:10}.folder-options-btn{flex-shrink:0;width:32px;height:32px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.folder-options-btn:hover{background:var(--color-hover);color:var(--color-text-primary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal-content{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:24px;max-width:400px;width:100%;box-shadow:0 20px 40px rgba(var(--shadow-color-rgb),var(--shadow-md))}.modal-title{margin:0 0 16px;font-size:18px;color:var(--color-text-primary)}.rename-folder-input{width:100%;padding:10px 12px;font-size:16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-primary);color:var(--color-text-primary);margin-bottom:16px;box-sizing:border-box}.rename-folder-input:focus{outline:none;border-color:var(--color-accent)}.edit-folder-label{display:block;margin-bottom:4px;font-size:12px;color:var(--color-card-meta)}.edit-folder-modal .edit-folder-line{margin-bottom:12px}.remove-folder-confirm{max-width:420px}.remove-folder-text{margin:0;font-size:15px;color:var(--color-text-primary);line-height:1.5}.remove-folder-checkbox-group{margin-top:4px}.remove-folder-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.remove-folder-hint{margin:4px 0 0 26px;font-size:12px;color:var(--color-text-secondary);line-height:1.4}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-btn{padding:10px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s ease}.modal-btn.secondary{background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary)}.modal-btn.primary{background:var(--color-accent);border:none;color:#fff}.modal-btn.primary:disabled{opacity:.5;cursor:not-allowed}.modal-btn.secondary:disabled{opacity:.5;cursor:not-allowed}.book-counter{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px;color:var(--color-text-secondary)}.book-counter-text{font-variant-numeric:tabular-nums}.book-counter-note{color:var(--color-text-secondary);opacity:.8;font-style:italic}.book-counter.near-limit .book-counter-text,.book-counter.at-limit .book-counter-text{color:var(--color-danger)}.book-counter-unlock{background:none;border:none;color:var(--color-link);cursor:pointer;font-size:13px;padding:0;text-decoration:underline;text-underline-offset:2px}.book-counter-unlock:hover{opacity:.8}.book-counter-support{background:none;border:none;color:var(--color-link);cursor:pointer;font-size:13px;padding:0;text-decoration:underline;text-underline-offset:2px}.book-counter-support:hover{opacity:.8}.donation-modal{max-width:460px;text-align:center}.donation-modal .modal-actions{justify-content:center}.donation-modal .modal-title{font-size:20px;margin-bottom:12px}.donation-body{margin:0 0 20px;font-size:15px;line-height:1.6;color:var(--color-text-primary)}.donation-presets{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px}.donation-preset{position:relative;padding:10px 18px;border-radius:8px;border:1.5px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:15px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease}.donation-preset:hover{border-color:var(--color-border-hover);background:var(--color-bg-hover)}.donation-preset.selected{border-color:var(--color-accent);background:var(--color-accent-secondary)}.donation-preset.has-badge{padding-bottom:26px}.preset-badge{position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:calc(100% - 8px);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-accent);line-height:1.2}.donation-error{margin:0 0 12px;font-size:13px;color:var(--color-danger)}.donation-btn{min-width:160px}.thank-you-modal{max-width:400px;text-align:center}.thank-you-icon{font-size:48px;margin-bottom:8px;color:var(--color-danger)}.thank-you-modal .modal-title{font-size:22px;margin-bottom:12px}.thank-you-body{margin:0 0 24px;font-size:15px;line-height:1.6;color:var(--color-text-primary)}.at-limit-btn{cursor:pointer;border:none;font-size:inherit}.add-to-folder-modal{max-width:360px}.add-to-folder-subtitle{margin:0 0 16px;font-size:14px;color:var(--color-text-secondary)}.add-to-folder-list{max-height:240px;overflow-y:auto;margin-bottom:16px;padding:4px 0}.add-to-folder-empty{margin:0;font-size:14px;color:var(--color-text-secondary)}.add-to-folder-item{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;font-size:15px;color:var(--color-text-primary)}.add-to-folder-item input{flex-shrink:0}.add-to-folder-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-to-folder-item-count{font-size:13px;color:var(--color-text-secondary)}.add-to-folder-new{margin-bottom:16px}.add-to-folder-new-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-primary);cursor:pointer;margin-bottom:8px}.add-to-folder-new .rename-folder-input{margin-bottom:0}.folder-list-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:background .15s ease}.folder-list-row:hover{background:var(--color-hover)}.folder-list-name{font-weight:600;color:var(--color-text-primary)}.folder-list-count{font-size:14px;color:var(--color-text-secondary)}.folder-compact-row{padding:10px 12px;margin-bottom:4px}.book-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;overflow:visible;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column;position:relative;z-index:1}.book-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(var(--shadow-color-rgb),var(--shadow-sm));z-index:2}.book-card.menu-open,.book-list-item.menu-open,.book-compact-item.menu-open{z-index:100}.book-cover-wrapper{width:100%;aspect-ratio:2 / 3;background:var(--color-bg-tertiary);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;border-radius:12px 12px 0 0}.book-cover{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:64px;background:linear-gradient(135deg,var(--color-accent-secondary) 0%,var(--color-accent-tertiary) 100%)}.book-card-loading{position:absolute;bottom:0;left:0;right:0;top:0;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(var(--overlay-color-rgb),var(--overlay-light));z-index:10}.book-card-loading-track{height:12px;background:rgba(var(--color-text-primary-rgb),.3);overflow:hidden}.book-card-loading-bar{height:100%;width:40%;background:var(--color-accent);animation:loading-slide 1s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.book-info{padding:12px 32px 12px 12px;display:flex;flex-direction:column;gap:4px;flex:1;position:relative;min-width:0}.book-title{margin:0;font-size:clamp(12px,3.5vw,16px);font-weight:600;color:var(--color-card-title);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.book-author{margin:0;font-size:clamp(10px,2.5vw,13px);color:var(--color-card-author);font-weight:500;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.book-meta{margin:0;font-size:clamp(9px,2vw,11px);color:var(--color-card-meta);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.book-description{margin:4px 0 0;font-size:clamp(10px,2vw,12px);color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;-webkit-hyphens:none;hyphens:none}.book-last-read{margin:4px 0 0;font-size:clamp(9px,1.8vw,11px);color:var(--color-card-meta);line-height:1.3;font-style:italic}.book-card .book-menu-wrapper{position:absolute;top:8px;right:0;z-index:10}.book-menu-btn{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--color-button);transition:background .15s ease,color .15s ease;flex-shrink:0}.book-menu-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.book-menu-btn:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:10px;padding:4px 8px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-border);font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.book-menu-btn:hover:after{opacity:1}.book-menu-btn:active:after{opacity:0!important}.book-menu-dots{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.book-menu-dots .dot{width:4px;height:4px;border-radius:50%;background:currentColor}.book-menu-dropdown{position:absolute;min-width:130px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px rgba(var(--shadow-color-rgb),var(--shadow-md));z-index:1000;overflow:hidden}.book-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s ease}.book-menu-item:hover{background:var(--color-bg-hover)}.book-menu-item.is-danger{color:var(--color-danger)}.book-menu-item.is-danger:hover{background:var(--color-danger-bg)}.book-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.book-menu-icon svg{display:block}@media(max-width:768px){.book-menu-icon{width:14px;height:14px}.book-menu-icon svg{width:10px;height:10px}}.progress-pie-container{display:inline-flex;align-items:center;gap:6px}.progress-pie-svg{flex-shrink:0}.progress-pie-text{font-size:12px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.book-card-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;margin-right:-16px}.book-card-footer .book-last-read{margin:0;flex:1;min-width:0}.book-card-footer .progress-pie-container{flex-shrink:0;margin-left:auto}.book-list-item .progress-pie-container{position:absolute;bottom:8px;right:8px}.book-compact-item .progress-pie-container{flex-shrink:0;margin-left:auto;margin-right:8px}.reader-view{display:flex;flex-direction:column;height:100dvh;height:var(--vh, 100dvh);background:var(--color-bg-secondary);width:100%;overflow:hidden}.reader-header{position:fixed;top:0;left:0;width:100%;display:flex;align-items:center;gap:12px;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));background:var(--color-header-bg);z-index:100;box-sizing:border-box;outline:none}.header-btn{position:relative;width:44px;height:44px;padding:0;border:none;background:transparent;color:var(--color-button);cursor:pointer;border-radius:50%;transition:background .15s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-btn:hover{background:var(--color-hover)}.header-btn.is-active{background:var(--color-accent);color:var(--color-text-primary)}.header-btn.is-disabled{opacity:.5;cursor:not-allowed}.header-btn.is-disabled:hover{background:transparent}.header-btn:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:16px;padding:4px 8px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-border);font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.header-btn:hover:after{opacity:1}.header-btn:active:after{opacity:0!important}#settingsBtn{margin-left:auto}.back-icon{width:22px;height:22px;position:relative}.back-icon:before{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-left:3px solid var(--color-button);border-bottom:3px solid var(--color-button);transform:translate(-30%,-50%) rotate(45deg)}.toc-icon{width:22px;height:22px;position:relative;display:flex;align-items:center;justify-content:center}.toc-icon:before{content:"";position:absolute;left:1px;top:3px;width:3px;height:3px;background:var(--color-button);box-shadow:0 7px 0 var(--color-button),0 14px 0 var(--color-button)}.toc-icon:after{content:"";position:absolute;left:7px;top:3px;width:14px;height:3px;background:var(--color-button);box-shadow:0 7px 0 var(--color-button),0 14px 0 var(--color-button)}.gear-icon{transition:transform .3s ease;color:var(--color-button)}.library-settings-btn .gear-icon{color:var(--color-button)}button:hover .gear-icon,.library-settings-btn:hover .gear-icon{transform:rotate(45deg)}.fullscreen-icon{width:22px;height:22px;position:relative;display:block;background:linear-gradient(var(--color-button),var(--color-button)) 0 0 / 8px 3px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 0 0 / 3px 8px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 100% 0 / 8px 3px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 100% 0 / 3px 8px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 0 100% / 8px 3px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 0 100% / 3px 8px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 100% 100% / 8px 3px no-repeat,linear-gradient(var(--color-button),var(--color-button)) 100% 100% / 3px 8px no-repeat}.reader-options-menu{position:relative}.options-dots{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center}.options-dots .dot{width:4px;height:4px;border-radius:50%;background:var(--color-button)}.header-btn.menu-open:after,.header-btn.menu-open:hover:after{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:none!important}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:transparent}.reader-options-dropdown{position:absolute;top:100%;right:0;margin-top:8px;min-width:160px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px rgba(var(--shadow-color-rgb),var(--shadow-md));z-index:1000;overflow:hidden}.reader-options-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s ease}.reader-options-item:hover{background:var(--color-hover)}.reader-options-item.is-active{color:var(--color-accent)}.menu-icon{width:16px;height:16px;flex-shrink:0;color:var(--color-button)}.reader-options-item:hover .menu-icon,.reader-options-item.is-active .menu-icon{color:inherit}.exit-highlight-mode-btn{position:fixed;top:calc(var(--reader-header-height, 56px) + 8px);right:16px;z-index:150;padding:8px 16px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:0 4px 12px rgba(var(--shadow-color-rgb),var(--shadow-md));transition:transform .15s ease,box-shadow .15s ease}.exit-highlight-mode-btn:hover{transform:scale(1.03);box-shadow:0 6px 16px rgba(var(--shadow-color-rgb),var(--shadow-md))}.reader-title{flex:1;font-size:16px;font-weight:600;color:var(--color-header-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer{flex:1;background:var(--color-bg-secondary);padding:0;min-height:0;width:100%;outline:none}.viewer.paginated{padding-top:var(--reader-header-height, 56px);padding-bottom:var(--reader-footer-height, 60px)}.viewer:focus{outline:none}.viewer iframe{border:none!important;opacity:0;transition:opacity .15s ease-in-out}.viewer iframe.no-transition{transition:none!important;opacity:1!important}.epub-view>.divider,.epub-container .divider,.epub-view:after,.epub-container:after{display:none!important}.epub-viewer.inverse-scroll,.epub-viewer.inverse-scroll iframe{transform:scaleY(-1)}.viewer:not(.paginated){overflow-y:auto;overflow-x:hidden;overflow-anchor:auto}.viewer:not(.paginated) iframe{width:100%;max-width:100%;height:100%;border-radius:8px;overflow-x:hidden}.viewer:not(.paginated) .epub-container,.viewer:not(.paginated) .epub-view{background:inherit!important}.viewer:not(.paginated) .epub-view{margin-bottom:0!important;padding-bottom:0!important}.viewer-container{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.settings-panel{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--overlay-color-rgb),var(--overlay-light));display:flex;align-items:center;justify-content:center;z-index:1000;overflow:hidden;overscroll-behavior:contain;touch-action:none}.settings-panel[hidden]{display:none!important}.settings-content{background:var(--color-bg-primary);border-radius:12px;padding:12px 28px 28px;width:460px;min-width:440px;max-width:calc(100% - 32px);min-height:200px;max-height:calc(var(--vh, 100dvh) - 32px);box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-sm));display:flex;flex-direction:column;gap:20px;resize:both;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;position:relative;scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-bg-secondary)}.settings-content::-webkit-scrollbar{width:8px;height:8px}.settings-content::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:4px}.settings-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.settings-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.settings-content.library-preview-mode{background:rgba(var(--color-bg-primary-rgb, 15, 23, 42),var(--library-preview-opacity, .4))}.settings-content>.settings-title:first-child{margin-bottom:24px}.settings-list{margin-top:27px}.settings-title{margin:0;font-size:20px}#settingsHome>.settings-title,.settings-header .settings-title{cursor:move;-webkit-user-select:none;user-select:none}#settingsHome>.settings-title{padding:8px 0;margin-bottom:16px}.settings-header{display:flex;align-items:center;gap:10px;cursor:move;padding:4px 0;margin:-4px 0 8px}.settings-back,.back-btn,.reset-btn,.apply-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--color-border-hover);cursor:pointer;background:var(--color-bg-secondary);color:var(--color-text-primary);font-weight:600;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}.settings-back:hover,.back-btn:hover,.reset-btn:hover,.apply-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.reset-btn{margin-left:auto;white-space:nowrap}.settings-header-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.settings-header-actions .reset-btn{margin-left:0}.settings-header-actions .apply-btn{background:var(--color-accent);color:var(--color-text-primary);border-color:transparent}.settings-list{display:flex;flex-direction:column;gap:12px}.settings-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:14px;border-radius:10px;border:1px solid var(--color-border-hover);background:var(--color-bg-secondary);cursor:pointer;font-weight:700;font-family:inherit;color:var(--color-text-primary);transition:transform .15s ease,box-shadow .15s ease}.settings-item:hover{transform:scale(1.02);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.settings-item-hint{font-weight:600;color:var(--color-text-secondary);font-size:12px}#appearanceScreen,#themeScreen,#layoutScreen{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:0 14px}#appearanceScreen[hidden],#themeScreen[hidden],#layoutScreen[hidden],#settingsHome[hidden]{display:none!important}.settings-row{display:flex;align-items:center;gap:14px;padding:6px 0;flex:0 0 auto}.settings-row label{font-weight:400;font-size:14px;color:var(--color-text-primary);pointer-events:none;flex:0 0 160px;width:160px}.settings-select{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-size:14px;outline:none;cursor:pointer}.color-control{display:flex;align-items:center;gap:8px;flex-shrink:0}.opacity-control{display:flex;align-items:center;gap:4px;flex-shrink:0;position:relative}.opacity-control input[type=range]{width:100px;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-bg-primary);border-radius:3px;cursor:pointer;border:1px solid var(--color-border);margin-left:-4px}.opacity-control input#highlight-opacity{background:var(--color-bg-secondary)}.opacity-control input#highlight-opacity::-webkit-slider-runnable-track{background:var(--color-bg-secondary)}.opacity-control input#highlight-opacity::-moz-range-track{background:var(--color-bg-secondary);border:1px solid var(--color-border)}.opacity-control input[type=range]::-webkit-slider-runnable-track{height:6px;background:var(--color-bg-primary);border-radius:3px}.opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-accent);border-radius:50%;cursor:pointer;margin-top:-5px}.opacity-control input[type=range]::-moz-range-track{height:6px;background:var(--color-bg-primary);border-radius:3px;border:1px solid var(--color-border)}.opacity-control input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--color-accent);border-radius:50%;cursor:pointer;border:none}.opacity-value{font-size:13px;color:var(--color-text-secondary);min-width:36px;text-align:left}.settings-row:has(.hover-preview-swatch) label{padding-right:36px}.settings-row:has(.tier-preview-cluster) label{padding-right:72px}.hover-preview-swatch{width:32px;height:20px;border-radius:4px;border:1px solid var(--color-border);position:absolute;left:-48px;top:50%;transform:translateY(-50%)}.tier-preview-cluster{position:absolute;left:-80px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px;flex-shrink:0}.tier-preview-cluster .hover-preview-swatch{position:relative;left:auto;top:auto;transform:none;flex-shrink:0}.tier-info-wrapper{position:relative;flex-shrink:0}.tier-info-btn{width:20px;height:20px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:border-color .15s ease,color .15s ease}.tier-info-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.tier-info-popup-portal{box-sizing:border-box;padding:10px 12px;margin:0;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;font-size:12px;line-height:1.5;color:var(--color-text-secondary);box-shadow:0 8px 24px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.hover-mode-toggle{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:1;min-width:0}.hover-mode-btn{flex:0 0 auto;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.hover-mode-btn:hover{border-color:var(--color-accent)}.hover-mode-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}@media(max-width:768px){.settings-advanced .settings-row:has(.opacity-control){flex-direction:column;align-items:flex-start;gap:6px}.settings-advanced .settings-row:has(.opacity-control) label{flex:none;width:auto}.settings-advanced .opacity-control{width:100%;margin-left:0}.settings-advanced .opacity-control input[type=range]{flex:1;width:auto;max-width:none;margin-left:0}.settings-advanced .opacity-value{min-width:36px;font-size:12px}.settings-advanced .hover-preview-swatch,.settings-advanced .tier-preview-cluster{position:relative;left:auto;transform:none;flex-shrink:0;order:1;margin-left:8px;margin-right:0;align-self:center}.settings-advanced .tier-preview-cluster .hover-preview-swatch{order:unset;margin-left:0}.settings-advanced .settings-row:has(.tier-preview-cluster) label{padding-right:0}.settings-advanced .settings-row:has(.hover-mode-toggle){flex-direction:column;align-items:flex-start;gap:6px}.settings-advanced .settings-row:has(.hover-mode-toggle) label{flex:none;width:auto}.settings-advanced .hover-mode-toggle{width:100%}.settings-advanced .hover-mode-btn{flex:1 1 calc(50% - 2px);min-width:0;padding:6px 10px;font-size:12px;text-align:center}}.mobile-hover-notice{margin-top:8px;padding:8px 12px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:6px;font-size:12px;color:var(--color-text-secondary);text-align:center}.color-swatch-wrapper{position:relative;width:36px;height:28px;border:1px solid var(--color-border);border-radius:4px;overflow:hidden;cursor:pointer}.color-swatch-wrapper input[type=color]{position:absolute;top:-4px;left:-4px;width:calc(100% + 8px);height:calc(100% + 8px);border:none;cursor:pointer}.color-match-wrapper{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-text-secondary);position:relative}.color-match-wrapper:after{content:"▼";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:8px;color:var(--color-text-secondary);pointer-events:none}.color-match-select{padding:4px 20px 4px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:12px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;width:120px;min-width:120px}.color-match-select:disabled{opacity:.5;cursor:not-allowed}.settings-help{font-size:13px;color:var(--color-text-secondary);margin:0 0 12px}.settings-advanced{margin:12px 0;border:1px solid var(--color-border);border-radius:8px;padding:0;background:var(--color-bg-secondary);overflow:hidden}.settings-advanced summary{padding:10px 14px;cursor:pointer;font-weight:600;color:var(--color-text-primary);list-style:none;display:flex;align-items:center;justify-content:space-between}.settings-advanced summary::-webkit-details-marker{display:none}.settings-advanced summary:after{content:"▼";font-size:10px;color:var(--color-text-secondary);transition:transform .15s ease}.settings-advanced[open] summary:after{transform:rotate(180deg)}.color-inputs-grid{display:flex;flex-wrap:wrap;gap:12px 24px;width:100%;box-sizing:border-box}.advanced-content{display:flex;flex-wrap:wrap;gap:12px 24px;padding:10px 14px;width:100%;box-sizing:border-box}.theme-controls{display:flex;flex-direction:column;gap:12px;padding:16px;margin-top:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px}.set-control,.save-control{display:flex;align-items:center;gap:8px}.set-control label,.save-control label{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.theme-preset-select-wrapper{position:relative;flex:1;display:flex}.theme-preset-select-wrapper:after{content:"▼";position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--color-text-secondary);pointer-events:none}.theme-preset-select{flex:1;padding:6px 24px 6px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.set-btn,.save-theme-btn,.delete-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.set-btn:hover,.save-theme-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.delete-btn{color:var(--color-danger);border-color:var(--color-danger-light);background:var(--color-danger-bg)}.delete-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.delete-btn:disabled{opacity:.4;cursor:not-allowed}.theme-name-input{flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;font-family:inherit}.theme-name-input::placeholder{color:var(--color-text-muted)}.settings-actions-row{display:flex;justify-content:space-between;align-items:flex-start;margin-top:10px;gap:16px}.settings-actions-left{display:flex;flex-direction:column;gap:4px;padding-top:4px}.haze-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.settings-support-link{font-size:11px;color:var(--color-text-secondary);opacity:.6;text-decoration:none;transition:opacity .15s ease}.settings-support-link:hover{opacity:1;text-decoration:underline}.toggle-row{display:flex;align-items:center;justify-content:space-between}.toggle-row>span{font-size:14px;color:var(--color-text-primary)}.settings-actions{display:flex;gap:10px;margin-bottom:16px}.settings-actions button{flex:1;padding:10px 16px;border-radius:8px;border:1px solid var(--color-border-hover);background:var(--color-bg-secondary);color:var(--color-text-primary);font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.settings-actions button:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.settings-section{margin-bottom:24px}.settings-label{display:block;font-weight:600;color:var(--color-text-primary);margin-bottom:8px;font-size:14px}.slider-container{display:flex;align-items:center;gap:12px;margin-bottom:4px}.settings-slider{flex:1;height:6px;border-radius:3px;background:var(--color-bg-tertiary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.settings-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg-secondary);box-shadow:0 2px 4px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.settings-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-accent);cursor:pointer;border:2px solid var(--color-bg-secondary);box-shadow:0 2px 4px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.slider-value{min-width:50px;text-align:right;font-size:13px;color:var(--color-text-secondary);font-family:inherit}.slider-value-input{width:50px;padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;font-family:inherit;text-align:right}.slider-value-input:focus{outline:none;border-color:var(--color-accent)}.slider-value-unit{font-size:13px;color:var(--color-text-secondary);font-family:inherit}.settings-hint{font-size:12px;color:var(--color-text-muted);margin:4px 0 12px}.card-size-preview{background:var(--color-bg-tertiary);border-radius:8px;padding:12px;margin-top:8px}.preview-label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;text-align:center}.preview-grid{display:grid;gap:8px;overflow:hidden}.desktop-preview .preview-grid{max-width:100%}.mobile-preview-container{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.mobile-preview{flex:0 0 auto}.mobile-preview.portrait .preview-grid,.mobile-preview.landscape .preview-grid{border:1px solid var(--color-border);border-radius:8px;padding:8px;background:var(--color-bg-secondary)}.preview-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.preview-card-cover{flex:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent-secondary) 0%,var(--color-accent-tertiary) 100%);font-size:10px}.preview-card-info{padding:4px}.preview-card-title{height:6px;background:var(--color-text-muted);border-radius:2px;margin-bottom:3px;opacity:.4}.preview-card-author{height:4px;width:60%;background:var(--color-text-muted);border-radius:2px;opacity:.3}.library-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px}.library-actions .action-buttons{display:flex;gap:8px}.library-actions .restore-btn{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}.library-actions .restore-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)));color:var(--color-text-primary)}.library-actions .apply-btn{background:var(--color-accent);color:#fff;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}.library-actions .apply-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),calc(1 - var(--hover-brightness, .9)))}.settings-row-top{justify-content:flex-start}.option-list{display:flex;flex-direction:column;gap:10px}.layout-options{display:flex;flex-direction:column;gap:12px}.option-item{text-align:left;display:flex;flex-direction:column;gap:4px;width:100%;padding:14px;border-radius:12px;border:2px solid var(--color-border);background:var(--color-bg-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease;font-family:inherit}.option-label{font-weight:600;color:var(--color-text-primary)}.option-description{font-size:12px;color:var(--color-text-secondary)}.option-item:hover:not(.is-selected),.option-item.is-hovered{border-color:var(--color-accent)}.option-item.is-selected{border-color:var(--color-accent);background:var(--color-bg-secondary)}.option-title{font-weight:800;color:var(--color-text-primary)}.option-subtitle{font-weight:600;color:var(--color-text-secondary);font-size:12px}.sort-controls{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--color-bg-secondary);border-radius:8px;padding:4px 12px}.sort-label{font-size:12px;color:var(--color-text-primary);white-space:nowrap;font-family:inherit}.sort-select-wrapper{position:relative;display:inline-flex}.sort-select-wrapper:after{content:"▼";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:8px;color:var(--color-text-secondary);pointer-events:none}.sort-select{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-secondary);padding:4px 24px 4px 8px;font-size:12px;font-family:inherit;cursor:pointer;min-width:100px;appearance:none;-webkit-appearance:none;-moz-appearance:none}.sort-select:hover{border-color:var(--color-border-hover)}.sort-select:focus{outline:none;border-color:var(--color-accent)}.sort-direction-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-button);border-radius:6px;cursor:pointer;font-size:16px;line-height:1;transition:all .15s ease}.sort-direction-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.sort-direction-text{display:none;color:var(--color-text-secondary)}.view-controls-row{display:flex;gap:8px;align-items:center}.view-mode-toggle{display:flex;gap:4px;background:var(--color-bg-secondary);border-radius:8px;padding:4px}.select-mode-toggle{display:flex;background:var(--color-bg-secondary);border-radius:8px;padding:4px}.view-mode-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--color-button);border-radius:6px;cursor:pointer;transition:all .15s ease}.view-mode-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.view-mode-btn.active{background:var(--color-accent);color:var(--color-text-primary)}.library-list{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%}.book-list-item{display:flex;gap:16px;padding:12px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:12px;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease;position:relative;width:calc(100% - 32px);margin-left:0;margin-right:32px;box-sizing:border-box;transform-origin:bottom left}.book-list-item:hover{box-shadow:0 4px 12px rgba(var(--shadow-color-rgb),var(--shadow-sm));transform:scale(1.01)}.book-list-cover{width:100px;height:150px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--color-bg-tertiary)}.book-list-cover img{width:100%;height:100%;object-fit:cover}.book-list-cover .book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:32px;background:linear-gradient(135deg,var(--color-accent-secondary) 0%,var(--color-accent-tertiary) 100%)}.book-list-info{display:flex;flex-direction:column;gap:4px;justify-content:center;min-width:0;flex:1;padding-right:32px}.book-list-title{margin:0;font-size:16px;font-weight:600;color:var(--color-card-title);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.book-list-author{margin:0;font-size:13px;color:var(--color-card-author);word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.book-list-meta{margin:0;font-size:11px;color:var(--color-card-meta);word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}.book-list-item .book-menu-wrapper{position:absolute;top:12px;right:8px;z-index:10}.book-compact-item .book-menu-wrapper{position:absolute;top:50%;right:12px;transform:translateY(-50%);z-index:10}.library-compact{display:flex;flex-direction:column;gap:2px;width:100%;max-width:100%}.book-compact-item{display:flex;align-items:center;gap:16px;padding:12px 48px 12px 16px;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease;position:relative;width:calc(100% - 32px);margin-left:0;margin-right:32px;box-sizing:border-box;transform-origin:bottom left}.book-compact-item:hover{box-shadow:0 4px 12px rgba(var(--shadow-color-rgb),var(--shadow-sm));transform:scale(1.01)}.book-compact-item:has(.book-menu-btn:hover),.book-list-item:has(.book-menu-btn:hover){z-index:101}.book-compact-title{font-size:15px;font-weight:500;color:var(--color-card-title);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;flex:1;min-width:0}.book-compact-author{font-size:12px;color:var(--color-card-author);flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}@media(max-width:768px){.settings-content{width:100%;min-width:0;max-width:100%;max-height:var(--vh, 100dvh);border-radius:0;resize:none}.library-view{width:94%;margin:16px auto;height:calc(var(--vh, 100dvh) - 32px);padding:24px 16px}.topbar h1{font-size:24px}.topbar .subtitle{font-size:12px}.reader-header{padding:6px 8px;gap:2px}.reader-view .header-btn{width:36px;height:36px}.header-left,.header-right{gap:0}.book-info{padding:8px 28px 8px 8px}.book-list-cover{width:80px;height:120px}.book-list-title{font-size:14px}.book-list-author{font-size:12px}.book-list-meta{font-size:10px}.book-compact-item{padding-right:40px;width:calc(100% - 24px);margin-right:24px}.book-compact-title{font-size:14px}.book-compact-author{font-size:11px;max-width:35%}}@media(max-width:768px)and (orientation:portrait){.topbar{flex-direction:column;align-items:stretch;gap:8px}.top-actions{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:8px;width:100%;align-items:center}.sort-controls{grid-column:1;grid-row:1;justify-content:flex-start;padding:4px 8px;gap:4px}.sort-select{min-width:72px;padding:4px 20px 4px 6px}.sort-direction-btn{width:24px;height:28px}.top-actions-right{grid-column:3;grid-row:1;justify-self:end;overflow:visible}.file-button{flex:1 1 auto;min-width:80px;padding:0 12px!important;font-size:13px;line-height:1;height:36px;white-space:nowrap}.library-settings-btn{width:36px;height:36px;min-width:36px;flex:0 0 36px}.view-controls-row{grid-column:1 / -1;grid-row:2;width:fit-content}}@media(max-width:480px){.book-info{padding:6px 24px 6px 6px;gap:2px}.book-title{font-size:11px;-webkit-line-clamp:2}.book-author{font-size:9px}.book-meta{font-size:8px;display:none}.book-description{display:none}.book-cover-placeholder{font-size:24px}.book-card .book-menu-wrapper{top:4px;right:4px}.book-menu-btn{width:28px;height:28px}.book-menu-dots .dot{width:3px;height:3px}}.reader-footer{position:fixed;bottom:0;left:0;width:100%;display:flex;flex-direction:column;gap:8px;padding:10px 20px;padding-bottom:max(16px,calc(env(safe-area-inset-bottom) + 10px));padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));background:var(--color-footer-bg);z-index:100;box-sizing:border-box}.reader-footer:after{content:"";position:absolute;left:0;right:0;bottom:-100px;height:100px;background:var(--color-footer-bg);pointer-events:none}.progress-text{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.progress-chapter{font-size:13px;font-weight:600;color:var(--color-footer-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.progress-stats{font-size:13px;font-weight:500;color:var(--color-reader-secondary);white-space:nowrap}.progress-bar{display:flex;gap:1px;height:8px;align-items:flex-end;width:100%}.progress-slice{flex-shrink:0;min-width:2px;background:var(--color-progress-slice);height:5px;border-radius:1px;transition:height .15s ease,background .15s ease}.progress-slice.is-current{height:8px;background:var(--color-progress-current)}.progress-slice.progress-slice--fill{flex:1 1 0;min-width:2px}.reader-view.is-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999}.reader-view .reader-header{transition:transform .3s ease}.reader-view.is-fullscreen .reader-header{transform:translateY(-100%)}.reader-view .reader-footer{transition:transform .3s ease}.reader-view.is-fullscreen .reader-footer{transform:translateY(100%)}.reader-view.is-fullscreen .viewer-container{height:var(--vh, 100dvh)}.reader-view.is-fullscreen .viewer.paginated{height:var(--vh, 100dvh);overflow:hidden}.loading-spinner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;pointer-events:none}.loading-spinner-overlay--blocking{background:var(--color-bg-primary);pointer-events:auto;z-index:10000}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-bg-secondary);border-top:3px solid var(--color-accent);border-radius:50%;animation:spin .5s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner-text{margin-top:16px;font-size:14px;color:var(--color-text-secondary)}.sync-failed-modal{max-width:380px}.sync-failed-body{margin:0 0 20px;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.sync-failed-actions{display:flex;flex-direction:column;gap:8px}.sync-failed-btn{padding:10px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}.sync-failed-btn:hover{background:var(--color-bg-tertiary)}.sync-failed-btn:disabled{opacity:.6;cursor:not-allowed}.sync-failed-btn-primary{background:var(--color-accent);color:var(--color-text-primary);border-color:transparent}.sync-failed-btn-primary:hover{filter:brightness(.9);background:var(--color-accent)}.sync-failed-btn-exit{color:var(--color-text-secondary);border-color:transparent;background:transparent}.sync-failed-btn-exit:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.nav-arrow{position:fixed;top:50%;transform:translateY(-50%) scale(1);width:67px;height:168px;background:transparent;border:none;color:var(--color-bg-secondary);cursor:pointer;z-index:50;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;padding:0}.nav-arrow:hover{transform:translateY(-50%) scale(1.15)}.nav-arrow:active{transform:translateY(-50%) scale(1.25)}.nav-arrow-left{left:8px}.nav-arrow-right{right:8px}.nav-arrow svg{width:50px;height:50px}@media(max-width:768px){.nav-arrow{display:none}}@media(pointer:coarse){.nav-arrow{display:none}}.image-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-color-rgb),var(--overlay-heavy));display:flex;align-items:center;justify-content:center;z-index:10000;cursor:zoom-out}.lightbox-content{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:95vw;max-height:95vh}.lightbox-content img{max-width:100%;max-height:calc(95vh - 60px);object-fit:contain;border-radius:4px;cursor:default}.lightbox-controls{display:flex;gap:12px}.lightbox-save-btn,.lightbox-close-btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s ease,transform .1s ease;font-family:inherit}.lightbox-save-btn{background:var(--color-accent);color:#fff;border:none}.lightbox-save-btn:hover{background:var(--color-accent);filter:brightness(1.1)}.lightbox-close-btn{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.lightbox-close-btn:hover{background:var(--color-bg-hover)}.toc-panel{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-color-rgb),var(--overlay-light));display:flex;align-items:center;justify-content:center;z-index:1000}.toc-panel[hidden]{display:none!important}.toc-content{background:var(--color-bg-secondary);border-radius:12px;width:420px;max-width:calc(100% - 32px);max-height:calc(var(--vh, 100dvh) - 64px);box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-sm));display:flex;flex-direction:column;overflow:hidden}.toc-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.toc-title{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.toc-close{position:relative;width:32px;height:32px;padding:6px;margin-left:12px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;flex-shrink:0}.toc-close:hover{background:var(--color-hover)}.toc-close:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;padding:4px 8px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-border);font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.toc-close:hover:after{opacity:1}.toc-close-icon{width:16px;height:16px;position:relative}.toc-close-icon:before,.toc-close-icon:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:2px;background:var(--color-button);border-radius:1px}.toc-close-icon:before{transform:translate(-50%,-50%) rotate(45deg)}.toc-close-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.toc-close:hover .toc-close-icon:before,.toc-close:hover .toc-close-icon:after{background:var(--color-text-primary)}.toc-list{list-style:none;margin:0;padding:8px 0;overflow-y:auto;flex:1}.toc-item{padding:0;margin:0}.toc-link{display:block;padding:10px 20px;color:var(--color-text-secondary);text-decoration:none;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease;border:none;background:none;width:100%;text-align:left}.toc-link:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.toc-link.is-current{background:var(--color-bg-tertiary);color:var(--color-accent);font-weight:600;border-left:3px solid var(--color-accent)}.toc-item .toc-item .toc-link{padding-left:36px;font-size:14px}.toc-item .toc-item .toc-item .toc-link{padding-left:52px;font-size:14px}.app{min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--color-header-bg);border-bottom:1px solid var(--color-border)}.app-header h1{margin:0;font-size:24px;font-weight:700;color:var(--color-text-primary)}.app-main{flex:1;display:flex;flex-direction:column}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 20%,var(--color-accent-secondary),transparent 25%),radial-gradient(circle at 80% 0%,var(--color-accent-tertiary),transparent 25%),var(--color-bg-primary);padding:24px}.auth-container{width:100%;max-width:420px;display:flex;flex-direction:column;gap:24px}.auth-header{text-align:center}.auth-title{margin:0 0 8px;font-size:36px;font-weight:800;color:var(--color-text-primary)}.auth-subtitle{margin:0;font-size:16px;color:var(--color-text-secondary)}.auth-toggle{display:flex;gap:8px;padding:4px;background:var(--color-bg-secondary);border-radius:12px;border:1px solid var(--color-border)}.auth-toggle-btn{flex:1;padding:12px 16px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease}.auth-toggle-btn.active{background:var(--color-accent);color:#fff}.auth-toggle-btn:hover:not(.active){background:var(--color-bg-hover)}.auth-form{display:flex;justify-content:center}.clerk-root{width:100%}.clerk-card{box-shadow:none!important;border:1px solid var(--color-border)!important}.reader-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 24px;background:var(--color-bg-primary)}.placeholder-content{text-align:center;max-width:400px}.placeholder-content h2{margin:0 0 16px;font-size:28px;font-weight:700;color:var(--color-text-primary)}.placeholder-content p{margin:0 0 12px;font-size:16px;color:var(--color-text-secondary)}.placeholder-note{font-size:14px!important;color:var(--color-text-muted)!important;font-style:italic}.library-app{min-height:100dvh;display:flex;flex-direction:column;align-items:center;overflow:hidden}.app-user-button{position:absolute;top:16px;right:24px;z-index:100;display:flex;align-items:center;gap:10px}.app-user-name{font-size:14px;color:var(--color-text-secondary)}.header-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.reader-title{margin:0;font-size:16px;font-weight:600;color:var(--color-header-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.toc-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-color-rgb),var(--overlay-med));display:flex;align-items:center;justify-content:center;z-index:1000}.toc-panel{background:var(--color-bg-secondary);border-radius:12px;width:420px;max-width:calc(100% - 32px);max-height:calc(var(--vh, 100dvh) - 64px);box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-md));display:flex;flex-direction:column;overflow:hidden}.toc-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.toc-header h3{margin:0;font-size:18px;color:var(--color-text-primary)}.toc-content{flex:1;overflow-y:auto;padding:8px 0}.toc-empty{padding:24px;text-align:center;color:var(--color-text-secondary)}.toc-nested{list-style:none;margin:0;padding:0}.settings-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.settings-overlay.no-haze{background:transparent}.settings-screen{display:flex;flex-direction:column}.settings-body{display:flex;flex-direction:column;gap:12px;padding:16px}.theme-section-header{font-size:18px;font-weight:600;color:var(--color-text-primary);margin-top:8px;margin-bottom:8px}.theme-section-divider{height:1px;background:var(--color-border);margin:8px 0}.preview-row{margin-top:8px}.preview-row label{display:flex;align-items:center;gap:8px;cursor:pointer}.preview-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.theme-preset-row,.theme-save-row{display:flex;align-items:center;gap:8px;min-width:0}.theme-preset-row select{flex:1;padding:8px 28px 8px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer}.theme-preset-row select:focus{outline:none;border-color:var(--color-border)}.theme-select-wrapper{position:relative;flex:1;display:flex}.theme-select-wrapper:after{content:"▼";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--color-text-secondary);pointer-events:none}.theme-select-wrapper select{flex:1}.theme-save-row input{flex:1 1 auto;min-width:0;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px}.theme-save-row input::placeholder{color:var(--color-text-secondary)}.theme-save-row button{flex:0 0 auto;white-space:nowrap;padding:8px 16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary)!important;color:var(--color-text-primary);font-weight:500;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.theme-preset-row button:not(.delete-btn):hover,.theme-save-row button:hover{transform:scale(1.03);filter:brightness(var(--hover-brightness, .9))}.theme-preset-row .delete-btn{color:var(--color-danger);border-color:var(--color-danger-light);background:var(--color-danger-bg)}.theme-preset-row .delete-btn:hover{transform:scale(1.03);filter:brightness(var(--hover-brightness, .9))}.theme-preset-row .delete-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.theme-preset-row,.theme-save-row{flex-wrap:wrap;gap:6px}.theme-save-row input{flex:1 1 100%;min-width:0}.theme-save-row button{flex:1 1 calc(50% - 3px);min-width:0;padding:6px 8px;font-size:clamp(11px,2.5vw,13px)}.theme-preset-row button:not(.delete-btn){flex:1 1 calc(50% - 3px);min-width:0;padding:6px 8px;font-size:clamp(11px,2.5vw,13px)}.theme-preset-row .delete-btn{flex:1 1 calc(50% - 3px);min-width:0;padding:6px 8px;font-size:clamp(11px,2.5vw,13px)}.theme-select-wrapper{flex:1 1 100%}}.primary-btn{background:var(--color-accent)!important;border-color:var(--color-accent)!important;color:var(--color-text-primary)!important;font-family:inherit}.primary-btn:hover{filter:brightness(var(--hover-brightness, .9))}.secondary-btn{background:var(--color-bg-secondary)!important;border:1px solid var(--color-border)!important;color:var(--color-text-primary)!important;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease!important}.secondary-btn:hover{transform:scale(1.03);filter:brightness(var(--hover-brightness, .9))}.font-settings-body{display:flex;flex-direction:column;gap:20px;padding:16px;overflow-y:auto}.font-settings-footer{display:flex;justify-content:center;padding-top:16px;margin-top:8px}.font-setting-group{display:flex;flex-direction:column;gap:8px}.font-setting-label{font-size:13px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.5px}.font-family-row{display:flex;gap:8px}.font-select-wrapper{position:relative;flex:1;display:flex}.font-select-wrapper:after{content:"▼";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--color-text-secondary);pointer-events:none}.font-select{flex:1;padding:10px 30px 10px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.font-select:focus{outline:none;border-color:var(--color-accent)}.upload-font-btn{display:flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.upload-font-btn:hover{transform:scale(1.03);box-shadow:0 2px 8px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.upload-status{font-size:12px;color:var(--color-text-secondary);padding:4px 0}.upload-status.uploading{color:var(--color-accent)}.font-size-row{display:flex;gap:4px}.font-size-input{width:60px;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-family:inherit;text-align:center;-moz-appearance:textfield}.font-size-input::-webkit-inner-spin-button,.font-size-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.font-size-input:focus{outline:none;border-color:var(--color-accent)}.font-size-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:18px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s ease}.font-size-btn:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-accent)}.font-size-btn:disabled{opacity:.5;cursor:not-allowed}.line-height-options{display:flex;flex-wrap:wrap;gap:6px}.line-height-btn{padding:8px 14px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .15s ease}.line-height-btn:hover{border-color:var(--color-accent)}.line-height-btn.is-selected{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.custom-options-row{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:8px;width:100%}.custom-options-row .custom-options-btn{flex:0 0 33.333%;min-width:0}.custom-options-row .custom-options-input,.custom-options-row .custom-options-apply{flex:1 1 33.333%;min-width:0}.custom-line-height-input{width:80px;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-family:inherit}.custom-line-height-input:focus{outline:none;border-color:var(--color-accent)}.custom-number-input{text-align:center;-moz-appearance:textfield}.custom-number-input::-webkit-outer-spin-button,.custom-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.custom-line-height-apply{padding:8px 16px;border:1px solid var(--color-accent);border-radius:6px;background:var(--color-accent);color:#fff;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:filter .15s ease}.custom-line-height-apply:hover{filter:brightness(.9)}.alignment-options{display:flex;gap:6px}.alignment-btn{flex:1;padding:10px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .15s ease}.alignment-btn:hover{border-color:var(--color-accent)}.alignment-btn.is-selected{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.paragraph-style-options{display:flex;gap:8px}.paragraph-style-btn{flex:1;display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-primary);font-family:inherit;cursor:pointer;transition:all .15s ease;text-align:left}.paragraph-style-btn:hover{border-color:var(--color-accent)}.paragraph-style-btn.is-selected{background:var(--color-accent-secondary);border-color:var(--color-accent)}.paragraph-style-name{font-size:14px;font-weight:600;color:var(--color-text-primary)}.paragraph-style-desc{font-size:12px;color:var(--color-text-secondary)}.paragraph-style-btn.is-selected .paragraph-style-name,.paragraph-style-btn.is-selected .paragraph-style-desc{color:var(--color-text-primary)}.hyphenation-row{display:flex;align-items:center;justify-content:space-between}.toggle-switch{position:relative;display:flex;align-items:center;gap:8px;padding:4px;border:none;background:transparent;cursor:pointer}.toggle-slider{position:relative;width:44px;height:24px;background:var(--color-bg-hover);border-radius:12px;transition:background .2s ease}.toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--color-text-primary);border-radius:50%;transition:transform .2s ease}.toggle-switch.is-on .toggle-slider{background:var(--color-accent)}.toggle-switch.is-on .toggle-slider:after{transform:translate(20px)}.toggle-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);min-width:28px}.hyphenation-hint{font-size:12px;color:var(--color-text-secondary);margin:0;line-height:1.4}@media(pointer:coarse){.header-btn:hover:after,.book-menu-btn:hover:after,.library-settings-btn:hover:after,.toc-close:hover:after,.stats-btn:hover:after{opacity:0}.header-btn:active:after,.book-menu-btn:active:after,.library-settings-btn:active:after,.toc-close:active:after,.stats-btn:active:after{opacity:1!important;transition-delay:50ms}.header-btn:focus,.book-menu-btn:focus,.library-settings-btn:focus,.toc-close:focus,.stats-btn:focus{outline:none}.no-hover-mobile:hover{background:transparent!important;color:var(--color-button)!important}.select-mode-btn.no-hover-mobile:hover{background:var(--color-bg-tertiary)!important}.view-mode-btn.active.no-hover-mobile:hover{background:var(--color-accent)!important;color:var(--color-text-primary)!important}.book-card:hover,.folder-card:hover{transform:none;box-shadow:none}.header-btn{padding:4px}}.select-mode-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:6px 12px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-button);cursor:pointer;border-radius:8px;box-sizing:border-box;transition:background .15s ease,color .15s ease,border-color .15s ease}.select-mode-btn:hover{background:var(--color-hover);border-color:var(--color-border-hover)}.select-mode-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-primary)}.select-label{font-size:13px;font-weight:500}.selection-checkbox{position:absolute;top:8px;left:8px;z-index:10}.selection-checkbox .checkbox{width:24px;height:24px;border:2px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.selection-checkbox .checkbox.checked{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-primary)}.book-list-item .selection-checkbox,.book-compact-item .selection-checkbox{position:static;flex-shrink:0;margin-right:8px}.book-list-item .selection-checkbox .checkbox,.book-compact-item .selection-checkbox .checkbox{width:20px;height:20px}.book-card.is-selected,.book-list-item.is-selected,.book-compact-item.is-selected{box-shadow:inset 0 0 0 3px var(--color-accent)}.book-list-item.is-selected,.book-compact-item.is-selected{background:var(--color-bg-tertiary)}.selection-bar{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;z-index:100;box-shadow:0 -4px 12px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.selection-info{display:flex;align-items:center;gap:12px}.selection-count{font-size:14px;font-weight:600;color:var(--color-text-primary)}.selection-actions{display:flex;align-items:center;gap:8px}.selection-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,transform .15s ease}.selection-btn:hover:not(:disabled){background:var(--color-hover);transform:scale(1.02)}.selection-btn:disabled{opacity:.5;cursor:not-allowed}.selection-btn.is-danger{color:var(--color-danger);border-color:var(--color-danger-light)}.selection-btn.is-danger:hover:not(:disabled){background:var(--color-danger-bg)}.selection-btn.select-all-btn{min-width:7.5em}.library-view:has(.selection-bar) .library-container{padding-bottom:80px}@media(max-width:768px){.selection-bar{padding:10px 16px;flex-direction:column;gap:10px}.selection-actions{width:100%;justify-content:center;flex-wrap:wrap}.selection-btn{padding:8px 12px;font-size:13px}.selection-btn.select-all-btn{min-width:7.5em}}.metadata-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:2000}.metadata-editor{background:var(--color-bg-primary);border-radius:12px;width:500px;max-width:calc(100% - 32px);max-height:calc(var(--vh, 100dvh) - 64px);display:flex;flex-direction:column;box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.metadata-editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.metadata-editor-header h3{margin:0;font-size:18px;color:var(--color-text-primary)}.metadata-close-btn{width:32px;height:32px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.metadata-close-btn:hover{background:var(--color-hover)}.metadata-close-btn .close-icon{width:14px;height:14px;position:relative}.metadata-close-btn .close-icon:before,.metadata-close-btn .close-icon:after{content:"";position:absolute;top:50%;left:50%;width:14px;height:2px;background:var(--color-button);border-radius:1px}.metadata-close-btn .close-icon:before{transform:translate(-50%,-50%) rotate(45deg)}.metadata-close-btn .close-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}.metadata-editor .edit-folder-form{display:flex;flex-direction:column;flex:1;min-height:0}.metadata-editor-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.metadata-error{padding:10px 14px;background:var(--color-danger-bg);border:1px solid var(--color-danger-light);border-radius:8px;color:var(--color-danger);font-size:14px}.metadata-loading{padding:10px 14px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);font-size:14px;text-align:center}.metadata-cover-section{display:flex;flex-direction:column;gap:8px}.metadata-cover-section>label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.metadata-cover-row{display:flex;gap:16px;align-items:flex-start}.metadata-cover-preview{width:80px;height:120px;border-radius:6px;overflow:hidden;background:var(--color-bg-tertiary);border:1px solid var(--color-border);flex-shrink:0}.metadata-cover-preview img{width:100%;height:100%;object-fit:cover}.metadata-cover-preview .cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:11px;text-align:center}.metadata-cover-actions{display:flex;flex-direction:column;gap:8px}.cover-upload-btn{cursor:pointer}.cover-remove-btn{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-light)}.cover-remove-btn:hover{background:var(--color-danger-light)}.metadata-field{display:flex;flex-direction:column;gap:6px}.metadata-field label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.metadata-field input,.metadata-field textarea{padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-family:inherit;transition:border-color .15s ease}.metadata-field input:focus,.metadata-field textarea:focus{outline:none;border-color:var(--color-accent)}.metadata-field textarea{resize:vertical;min-height:80px}.metadata-hint{font-size:12px;color:var(--color-text-secondary)}.metadata-row{display:flex;gap:12px}.metadata-row .metadata-field{flex:1}.metadata-field-small{flex:0 0 80px!important}.metadata-editor-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--color-border)}.metadata-btn{padding:10px 20px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,transform .15s ease}.metadata-btn:hover:not(:disabled){background:var(--color-hover);transform:scale(1.02)}.metadata-btn:disabled{opacity:.5;cursor:not-allowed}.metadata-btn-primary{background:var(--color-accent);border-color:var(--color-accent)}.metadata-btn-primary:hover:not(:disabled){background:var(--color-accent);opacity:.9}@media(max-width:768px){.metadata-editor{width:100%;max-width:none;max-height:var(--vh, 100dvh);border-radius:0}.metadata-row{flex-direction:column;gap:16px}.metadata-field-small{flex:1!important}}.font-setting-label-row{display:flex;align-items:center;gap:8px}.info-link{color:var(--color-link);text-decoration:underline;text-decoration-style:dotted;cursor:pointer;font-size:12px;transition:color .15s ease}.info-link:hover{color:var(--color-text-secondary)}.info-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-color-rgb),var(--overlay-med));display:flex;align-items:center;justify-content:center;z-index:3000}.info-dialog{background:var(--color-bg-primary);border-radius:12px;width:400px;max-width:calc(100% - 32px);box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.info-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.info-dialog-header h4{margin:0;font-size:16px;color:var(--color-text-primary)}.info-dialog-close{width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--color-button);font-size:20px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.info-dialog-close:hover{background:var(--color-hover)}.info-dialog-content{padding:20px;color:var(--color-text-primary);font-size:14px;line-height:1.6}.info-dialog-content p{margin:0 0 12px}.info-dialog-content p:last-child{margin-bottom:0}.info-dialog-summary{color:var(--color-text-secondary)}.info-dialog-link{color:var(--color-accent);text-decoration:none;transition:opacity .15s ease}.info-dialog-link:hover{opacity:.8;text-decoration:underline}.font-setting-label{display:flex;align-items:center;justify-content:space-between}.font-weight-value{font-weight:400;color:var(--color-text-tertiary);font-size:12px}.font-weight-slider-row{display:flex;align-items:center;gap:12px}.font-weight-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--color-bg-tertiary);border-radius:3px;outline:none;cursor:pointer}.font-weight-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-accent);border-radius:50%;cursor:pointer;transition:transform .15s ease}.font-weight-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.font-weight-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-accent);border:none;border-radius:50%;cursor:pointer;transition:transform .15s ease}.font-weight-slider::-moz-range-thumb:hover{transform:scale(1.1)}.font-weight-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--color-text-tertiary);margin-top:4px}.toc-header{gap:16px}.toc-tabs{display:flex;gap:8px;flex:1}.toc-tabs button{padding:8px 12px;border:none;background:transparent;color:var(--color-text-secondary);font-size:15px;cursor:pointer;border-bottom:2px solid transparent}.toc-tabs button.active{color:var(--color-text-primary);border-bottom-color:var(--color-accent)}.annotation-filters{display:flex;gap:8px;padding:8px 16px 12px;border-bottom:1px solid var(--color-border)}.annotation-filters button{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);padding:6px 10px;border-radius:8px;cursor:pointer}.annotation-filters button.active{color:var(--color-text-primary);border-color:var(--color-accent)}.annotation-list{padding:8px 0;overflow-y:auto}.annotation-empty{padding:24px;text-align:center;color:var(--color-text-secondary)}.annotation-chapter-group{margin-bottom:8px}.annotation-chapter-header{font-weight:600;padding:8px 12px;margin:8px 16px;background:var(--color-reader-bg, var(--color-bg-tertiary));border-radius:6px;color:var(--color-text-primary)}.annotation-item{display:flex;flex-direction:column;padding:12px 16px;gap:4px}.annotation-divider{height:1px;background:var(--color-border);margin:12px 16px 0}.annotation-date{font-size:12px;color:var(--color-text-secondary);flex-shrink:0}.annotation-text{font-style:italic;color:var(--color-text-primary);max-height:60px;overflow-y:auto;flex-shrink:0}.annotation-note{color:var(--color-text-primary);max-height:80px;overflow-y:auto}.annotation-actions{display:flex;gap:8px;margin-top:4px;flex-shrink:0}.annotation-actions button{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);padding:4px 8px;border-radius:6px;cursor:pointer;font-size:12px}.selection-menu{position:fixed;z-index:2000;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 20px rgba(var(--shadow-color-rgb),var(--shadow-md));display:flex;gap:8px;padding:8px}.selection-menu-btn{border:none;background:var(--color-accent);color:#fff;padding:6px 10px;border-radius:6px;cursor:pointer}.annotation-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(var(--overlay-color-rgb),var(--overlay-med));display:flex;align-items:center;justify-content:center;z-index:10001}.annotation-editor{background:var(--color-bg-secondary);border-radius:12px;width:480px;max-width:calc(100% - 32px);max-height:calc(var(--vh, 100dvh) - 64px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 16px 40px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.annotation-editor-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-bottom:1px solid var(--color-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.annotation-editor-header h3{margin:2px 0}.annotation-editor-header:active{cursor:grabbing}.annotation-editor-content{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.annotation-selected-text{font-style:italic;color:var(--color-text-primary);background:var(--color-bg-tertiary);padding:10px 12px;border-radius:8px}.annotation-field{display:flex;flex-direction:column;gap:8px}.annotation-field label{font-weight:600;color:var(--color-text-primary);font-size:13px}.annotation-field textarea{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px;color:var(--color-text-primary);font-family:inherit;font-size:14px;resize:vertical;min-height:80px}.annotation-field textarea:focus{outline:none;border-color:var(--color-accent)}.annotation-field select{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px;padding:8px 32px 8px 12px;color:var(--color-text-primary);font-family:inherit;font-size:14px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;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='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s ease,background-color .15s ease}.annotation-field select:hover{border-color:var(--color-accent);background-color:var(--color-bg-hover)}.annotation-field select:focus{outline:none;border-color:var(--color-accent)}.annotation-field select option{background:var(--color-bg-secondary);color:var(--color-text-primary);padding:8px}.annotation-field input[type=color]{width:48px;height:32px;border:1px solid var(--color-border);border-radius:6px;padding:2px;cursor:pointer;background:var(--color-bg-tertiary)}.annotation-editor-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--color-border)}.annotation-btn{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);padding:6px 12px;border-radius:8px;cursor:pointer}.annotation-btn-primary{background:var(--color-accent);color:#fff;border:none}.annotation-btn.is-danger{color:var(--color-danger);border-color:var(--color-danger)}.search-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--overlay-color-rgb),var(--overlay-med));z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:calc(var(--reader-header-height, 56px) + 20px)}.search-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;width:90%;max-width:500px;max-height:calc(var(--vh, 100dvh) - var(--reader-header-height, 56px) - 100px);display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.search-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.search-panel-header h3{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.search-close-btn{background:none;border:none;font-size:24px;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1;transition:color .15s ease}.search-close-btn:hover{color:var(--color-text-primary)}.search-input-wrapper{display:flex;gap:8px;padding:16px 20px;border-bottom:1px solid var(--color-border)}.search-input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-family:inherit;font-size:14px}.search-input:focus{outline:none;border-color:var(--color-accent)}.search-input::placeholder{color:var(--color-text-secondary)}.search-btn{padding:10px 18px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s ease}.search-btn:disabled{opacity:.5;cursor:not-allowed}.search-btn:hover:not(:disabled){opacity:.9}.search-results{flex:1;overflow-y:auto;padding:8px 0}.search-loading,.search-no-results{padding:20px;text-align:center;color:var(--color-text-secondary)}.search-chapter-group{border-bottom:1px solid var(--color-border)}.search-chapter-group:last-child{border-bottom:none}.search-chapter-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--color-reader-bg)}.search-chapter-title{font-weight:600;color:var(--color-text-primary);font-size:14px}.search-chapter-count{background:var(--color-accent);color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;min-width:24px;text-align:center}.search-chapter-results{display:flex;flex-direction:column}.search-result-item{display:block;width:100%;padding:10px 20px;background:none;border:none;text-align:left;color:var(--color-text-primary);font-family:inherit;font-size:13px;cursor:pointer;transition:background .15s ease;line-height:1.5}.search-result-item:hover{background:var(--color-hover)}.search-result-excerpt{word-break:break-word}.search-highlight-flash{background:rgba(var(--color-highlight-rgb),.6);border-radius:2px;transition:background .4s ease-out}.search-total{padding:12px 20px;text-align:center;color:var(--color-text-secondary);font-size:13px;border-top:1px solid var(--color-border)}.dn-prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--overlay-color-rgb),var(--overlay-med));display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.dn-prompt{background:var(--color-bg-primary);border-radius:16px;padding:36px 32px 28px;max-width:420px;width:100%;box-shadow:0 20px 50px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.dn-prompt-title{margin:0 0 8px;font-size:22px;font-weight:700;color:var(--color-text-primary)}.dn-prompt-subtitle{margin:0 0 24px;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.dn-prompt-form{display:flex;flex-direction:column;gap:12px}.dn-input-wrapper{position:relative;display:flex;align-items:center}.dn-input{width:100%;padding:12px 40px 12px 14px;border:2px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:16px;outline:none;transition:border-color .15s ease;box-sizing:border-box}.dn-input:focus{border-color:var(--color-accent)}.dn-input-ok{border-color:var(--color-success)}.dn-input-err{border-color:var(--color-danger)}.dn-status{position:absolute;right:12px;font-size:18px;font-weight:700;pointer-events:none}.dn-checking{width:16px;height:16px;border:2px solid var(--color-text-secondary);border-top-color:transparent;border-radius:50%;animation:dn-spin .6s linear infinite}@keyframes dn-spin{to{transform:rotate(360deg)}}.dn-available{color:var(--color-success)}.dn-error{color:var(--color-danger)}.dn-error-msg{margin:0;font-size:13px;color:var(--color-danger);line-height:1.4}.dn-hint{margin:0;font-size:12px;color:var(--color-text-secondary)}.dn-submit{margin-top:8px;padding:12px;border:none;border-radius:10px;background:var(--color-accent);color:var(--color-text-primary);font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.dn-submit:disabled{opacity:.4;cursor:not-allowed}.dn-submit:not(:disabled):hover{opacity:.9}.profile-field{display:flex;flex-direction:column;gap:8px;padding:16px}.profile-field-label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.profile-saved-msg{margin:0;font-size:13px;color:var(--color-success)}.profile-save-btn{align-self:flex-start;padding:8px 20px;border:none;border-radius:8px;background:var(--color-accent);color:var(--color-text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s ease;margin-top:4px}.profile-save-btn:disabled{opacity:.4;cursor:not-allowed}.profile-save-btn:not(:disabled):hover{opacity:.9}.profile-support{display:flex;align-items:center;gap:6px;padding:12px 16px;font-size:12px;color:var(--color-text-secondary);opacity:.6}.profile-support a{color:var(--color-text-secondary);text-decoration:none;transition:opacity .15s ease}.profile-support a:hover{opacity:.8;text-decoration:underline}.page-tabs{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:48px;padding:8px 0 12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--color-bg-primary);z-index:50}.page-tab{position:relative;padding:8px 16px;background:none;border:none;font-size:16px;font-weight:500;font-family:inherit;color:var(--color-text-secondary);cursor:pointer;transition:color .2s ease}.page-tab:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background:var(--color-accent);transition:width .2s ease}.page-tab.active{color:var(--color-accent)}.page-tab.active:after{width:100%}.page-tab:hover:not(.active){color:var(--color-text-primary)}@media(max-width:768px){.page-tabs{gap:32px;padding:6px 0 10px}.page-tab{font-size:14px;padding:6px 12px}}.about-page{width:100%;height:calc(var(--vh, 100dvh) - 40px);overflow-y:auto;overflow-x:hidden;padding:40px 24px 60px}.about-page-content{max-width:1200px;margin:0 auto}.about-hero{text-align:center;padding:60px 0 80px}.about-logo{width:120px;height:120px;margin-bottom:24px;border-radius:18px}.about-title{font-size:48px;font-weight:700;color:var(--color-text-primary);margin:0 0 12px;letter-spacing:-.02em}.about-tagline{font-size:24px;font-weight:500;color:var(--color-accent);margin:0 0 16px}.about-description{font-size:18px;color:var(--color-text-secondary);max-width:600px;margin:0 auto 32px;line-height:1.6}.about-cta-buttons{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.about-cta-primary,.about-cta-secondary{padding:14px 32px;font-size:16px;font-weight:600;font-family:inherit;border-radius:8px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.about-cta-primary{background:var(--color-accent);color:#fff;border:none}.about-cta-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-accent-rgb),var(--shadow-md))}.about-cta-secondary{background:transparent;color:var(--color-accent);border:2px solid var(--color-accent)}.about-cta-secondary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-accent-rgb),var(--shadow-sm))}.about-auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--overlay-color-rgb),var(--overlay-heavy));display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.about-auth-modal{position:relative;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:16px;padding:32px;max-width:450px;width:100%;max-height:90vh;overflow-y:auto}.about-auth-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:none;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:8px;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.about-auth-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.about-auth-toggle{display:flex;gap:8px;margin-bottom:24px;background:var(--color-bg-tertiary);padding:4px;border-radius:8px}.about-auth-toggle-btn{flex:1;padding:10px 16px;border:none;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;font-family:inherit;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.about-auth-toggle-btn.active{background:var(--color-accent);color:#fff}.about-auth-toggle-btn:hover:not(.active){color:var(--color-text-primary)}.about-section-title{font-size:32px;font-weight:700;color:var(--color-text-primary);text-align:center;margin:0 0 40px}.about-what-is{padding:40px 0 24px}.about-what-is-body{max-width:640px;margin:0 auto;font-size:18px;line-height:1.65;color:var(--color-text-primary);text-align:center}.about-features{padding:32px 0 60px}.about-features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.about-feature-card{position:relative;background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:16px;min-height:220px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.about-feature-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.feature-info-btn{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease,background .15s ease;z-index:10}.feature-info-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-bg-tertiary)}.feature-card-front,.feature-card-back{padding:32px;backface-visibility:hidden;transition:transform .5s ease,opacity .3s ease}.feature-card-front{opacity:1}.feature-card-back{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;opacity:0;pointer-events:none}.about-feature-card.flipped .feature-card-front{opacity:0;pointer-events:none}.about-feature-card.flipped .feature-card-back{opacity:1;pointer-events:auto}.feature-card-details{font-size:14px;color:var(--color-text-secondary);line-height:1.6;margin:12px 0 0;text-align:center}.about-feature-icon{width:48px;height:48px;margin:0 auto 16px;color:var(--color-accent)}.about-feature-icon svg{width:100%;height:100%}.about-feature-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.about-feature-description{font-size:15px;color:var(--color-text-secondary);margin:0;line-height:1.5}.about-how-it-works{padding:60px 0}.about-steps{display:flex;justify-content:center;gap:48px;flex-wrap:wrap}.about-step{text-align:center;max-width:250px}.about-step-number{width:56px;height:56px;margin:0 auto 16px;background:var(--color-accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.about-step-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.about-step-description{font-size:15px;color:var(--color-text-secondary);margin:0;line-height:1.5}.about-footer{text-align:center;padding:24px 0 0;border-top:1px solid var(--color-border);margin-top:40px}.about-footer-text{font-size:14px;color:var(--color-text-secondary);margin:0}.about-footer-links{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding-bottom:8px}.about-footer-link{font-size:13px;color:var(--color-text-secondary);text-decoration:none;opacity:.7;transition:opacity .15s}.about-footer-link:hover{opacity:1;text-decoration:underline}.about-footer-separator{color:var(--color-text-secondary);opacity:.4;font-size:13px}@media(max-width:768px){.about-page{padding:24px 16px 60px;height:calc(var(--vh, 100dvh) - 36px)}.about-hero{padding:40px 0 60px}.about-logo{width:80px;height:80px}.about-title{font-size:36px}.about-tagline{font-size:18px}.about-description{font-size:16px}.about-cta-primary,.about-cta-secondary{padding:12px 24px;font-size:14px}.about-section-title{font-size:24px;margin-bottom:32px}.about-features-grid{grid-template-columns:1fr;gap:16px}.about-feature-card{min-height:200px}.feature-card-front,.feature-card-back{padding:24px}.about-steps{flex-direction:column;align-items:center;gap:32px}.about-step{max-width:100%}}.library-preview-notice{text-align:center;padding:12px 20px;margin-bottom:16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:8px}.library-preview-notice p{margin:0;color:var(--color-text-secondary);font-size:14px}.book-card.preview-mode,.book-list-item.preview-mode,.book-compact-item.preview-mode{opacity:.9}.stats-btn-desktop,.stats-btn-mobile{display:inline-flex;background:var(--color-bg-secondary);border-radius:8px;padding:4px}.stats-btn-mobile{display:none}@media(max-width:768px)and (orientation:portrait){.stats-btn-desktop{display:none}.stats-btn-mobile{display:inline-flex}}.stats-btn{display:flex;align-items:center;justify-content:center;position:relative;width:32px;height:32px;border:none;background:transparent;border-radius:6px;color:var(--color-button);cursor:pointer;transition:background .15s ease,color .15s ease}.stats-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.stats-btn:after{content:attr(data-tooltip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:8px;padding:4px 8px;background:var(--color-tooltip-bg);color:var(--color-tooltip-text);border:1px solid var(--color-border);font-size:12px;font-weight:500;border-radius:4px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:100}.stats-modal{max-width:480px;width:90vw}.stats-modal-content{padding:16px 20px 20px}.stats-preview-banner{text-align:center;font-size:13px;font-style:italic;color:var(--color-text-secondary);padding:8px 12px;margin-bottom:12px;border-radius:8px;background:var(--color-bg-tertiary)}.stats-modal-loading,.stats-modal-empty{text-align:center;padding:20px 0;color:var(--color-text-muted);font-size:14px}.stats-modal-empty p{margin:0}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:var(--color-bg-tertiary);border-radius:8px;text-align:center}.stat-card-value{font-size:24px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.stat-card-unit{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:1px}.stat-card-label{font-size:12px;color:var(--color-text-secondary);margin-top:4px}.stats-streaks{margin-top:14px}.stats-streak-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.stats-streak-item{display:flex;align-items:baseline;gap:6px}.stats-streak-value{font-size:20px;font-weight:700;color:var(--color-text-primary)}.stats-streak-label{font-size:13px;color:var(--color-text-secondary)}.stats-sparkline-container{margin-top:16px}.stats-sparkline-label{margin:0 0 6px;font-size:12px;color:var(--color-text-muted)}.stats-sparkline{display:flex;align-items:flex-end;gap:2px;height:48px}.stats-sparkline-bar{flex:1;min-width:0;background:var(--color-accent);border-radius:2px 2px 0 0;transition:height .2s ease;opacity:.8}.stats-sparkline-bar:hover{opacity:1}.delete-book-confirm{max-width:440px}.delete-book-text{margin:0;color:var(--color-text-secondary);font-size:14px;line-height:1.5}.delete-book-warning{display:flex;gap:12px;align-items:flex-start;padding:14px;background:var(--color-danger-bg);border:1px solid var(--color-danger);border-radius:8px}.delete-book-warning-icon{flex-shrink:0;color:var(--color-danger);margin-top:1px}.delete-book-stat-count{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--color-text-primary)}.delete-book-stat-detail{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.delete-book-footer{justify-content:center}.metadata-btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-text-primary)}.metadata-btn-danger:hover:not(:disabled){background:var(--color-danger);opacity:.9}.toast-container{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:20000;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.toast-message{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:10px;padding:12px 20px;font-size:13px;line-height:1.5;max-width:360px;text-align:center;box-shadow:0 4px 20px rgba(var(--shadow-color-rgb),var(--shadow-lg));animation:toast-in .3s ease-out;pointer-events:auto}.toast-exit{animation:toast-out .3s ease-in forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}.auto-scroll-controls{position:fixed;bottom:calc(var(--reader-footer-height, 60px) + 12px);right:20px;display:flex;align-items:center;gap:10px;z-index:99;transition:transform .3s ease,opacity .3s ease}.reader-view.is-fullscreen .auto-scroll-controls{transform:translateY(200%);opacity:0;pointer-events:none}.auto-scroll-play-btn{width:44px;height:44px;border-radius:50%;border:none;background:var(--color-accent);color:var(--color-reader-text);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:0 2px 10px rgba(var(--shadow-color-rgb),var(--shadow-md));transition:transform .15s ease,box-shadow .15s ease}.auto-scroll-play-btn:hover{transform:scale(1.08);box-shadow:0 3px 14px rgba(var(--shadow-color-rgb),var(--shadow-lg))}.auto-scroll-play-btn:active{transform:scale(.96)}.auto-scroll-speed-row{display:flex;align-items:center;gap:8px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:22px;padding:6px 12px;box-shadow:0 2px 10px rgba(var(--shadow-color-rgb),var(--shadow-sm))}.auto-scroll-slider{width:100px;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-bg-primary);border-radius:3px;cursor:pointer;border:1px solid var(--color-border)}.auto-scroll-slider::-webkit-slider-runnable-track{height:6px;background:var(--color-bg-primary);border-radius:3px}.auto-scroll-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-scrollbar);border-radius:50%;cursor:pointer;margin-top:-5px}.auto-scroll-slider::-moz-range-track{height:6px;background:var(--color-bg-primary);border-radius:3px;border:1px solid var(--color-border)}.auto-scroll-slider::-moz-range-thumb{width:16px;height:16px;background:var(--color-scrollbar);border-radius:50%;cursor:pointer;border:none}.auto-scroll-speed-input{width:40px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-primary);font-size:13px;text-align:center;padding:3px 4px;font-family:inherit}.auto-scroll-speed-input:focus{outline:none;border-color:var(--color-accent)}.still-there-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999998;background:rgba(var(--overlay-color-rgb),var(--overlay-med));display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease}.still-there-modal{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:16px;padding:28px 32px;max-width:380px;width:calc(100vw - 32px);box-shadow:0 8px 40px rgba(var(--shadow-color-rgb),var(--shadow-lg));text-align:center;font-family:inherit}.still-there-modal h3{margin:0 0 20px;font-size:20px;font-weight:600}.still-there-options{display:flex;flex-direction:column;gap:12px}.still-there-resume{padding:10px 20px;border-radius:10px;border:none;background:var(--color-accent);color:var(--color-text-primary);font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s}.still-there-resume:hover{opacity:.85}.still-there-snooze-label{font-size:13px;color:var(--color-text-secondary);margin-top:4px}.still-there-snooze-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.still-there-snooze-btn{padding:8px 12px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:13px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.still-there-snooze-btn:hover{border-color:var(--color-accent);background:var(--color-bg-secondary)}.still-there-no-more{padding:8px 16px;border-radius:8px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:13px;cursor:pointer;font-family:inherit;margin-top:2px;transition:color .15s,border-color .15s}.still-there-no-more:hover{color:var(--color-text-primary);border-color:var(--color-accent)}.still-there-custom{display:flex;flex-direction:column;gap:14px}.still-there-custom-label{font-size:14px;color:var(--color-text-secondary)}.still-there-custom-row{display:flex;gap:16px;justify-content:center}.still-there-custom-row label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--color-text-secondary)}.still-there-custom-row select{padding:6px 10px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:14px;font-family:inherit;cursor:pointer}.still-there-custom-row select:focus{outline:none;border-color:var(--color-accent)}.still-there-custom-actions{display:flex;gap:8px;justify-content:center}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(max-width:480px){.auto-scroll-controls{right:12px;bottom:calc(var(--reader-footer-height, 60px) + 8px)}.auto-scroll-slider{width:70px}}.viewer-container.slide-enabled .viewer.paginated{cursor:grab}.viewer-container.slide-enabled.is-dragging .viewer.paginated{cursor:grabbing}
