:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#0f0f0f;color:#e8e8e8;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.upload-zone{border:2px dashed #2a2a40;border-radius:12px;padding:3rem;text-align:center;cursor:pointer;transition:all .2s ease;background:#141420}.upload-zone:hover{border-color:#6366f1;background:#1a1a30}.upload-zone.dragging{border-color:#6366f1;background:#1a1a30;box-shadow:0 0 20px #6366f126}.upload-zone.uploading{pointer-events:none;opacity:.7}.upload-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#8888a0}.upload-zone-content svg{color:#8888a0}.upload-spinner{width:24px;height:24px;border:3px solid #2a2a40;border-top-color:#6366f1;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:600px){.upload-zone{padding:2rem 1.5rem}}.book-card{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;background:#1a1a2e;border:1px solid rgba(255,255,255,.06);transition:transform .2s ease,border-color .2s ease}.book-card:hover{transform:scale(1.03);border-color:#6366f14d}.book-cover{position:relative;aspect-ratio:2/3;background:#141425;cursor:pointer;overflow:hidden}.book-cover img{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#8888a0}.book-progress-section{padding:.5rem .6rem 0}.book-progress{width:100%;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden}.book-progress-bar{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:2px;transition:width .3s ease}.book-progress-text{font-size:.7rem;color:#a0a0b8;text-align:right;margin-top:.2rem}.book-new-badge{font-size:.65rem;color:#6366f1;font-weight:600;text-align:right;padding:.4rem .6rem 0;text-transform:uppercase;letter-spacing:.05em}.book-info{padding:.4rem .6rem .6rem}.book-title{font-size:.85rem;font-weight:600;margin:0 0 .2rem;color:#e8e8e8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{font-size:.75rem;color:#8888a0;margin:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.book-delete{padding:.25rem .5rem;font-size:.7rem;background:#ffffff0f;color:#8888a0;border:none;border-radius:4px;cursor:pointer;transition:background .2s ease,color .2s ease;opacity:0;margin-top:.4rem}.book-card:hover .book-delete{opacity:1}.book-delete:hover{background:#ef444433;color:#ef4444}@media(hover:none){.book-delete{opacity:1}}.library{max-width:1200px;margin:0 auto;padding:2rem}.library-title{font-size:2rem;font-weight:700;margin:0 0 2rem;color:#e8e8e8}.library-loading{text-align:center;padding:3rem;color:#8888a0}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1.5rem;margin-top:2rem}.library-empty{text-align:center;color:#8888a0;margin-top:2rem}.library-version{margin-top:3rem;text-align:center;font-size:.75rem;color:#8888a0b3;letter-spacing:.02em}@media(max-width:600px){.library{padding:1rem}.library-grid{gap:1rem}.library-title{font-size:1.5rem;margin-bottom:1.5rem}.library-version{margin-top:2.5rem}}.reading-options-panel{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;z-index:200;transform:translateY(100%);transition:transform .3s ease;display:flex;flex-direction:column;max-height:70vh}.reading-options-panel.open{transform:translateY(0)}.reading-options-header{background:linear-gradient(135deg,#0f766e,#0ea5a3);color:#fff;padding:16px 20px;display:flex;gap:10px;align-items:center;border-radius:16px 16px 0 0;flex-shrink:0}.reading-options-header-tab{flex:1;border:1px solid rgba(255,255,255,.18);background:#ffffff1f;color:#fff;border-radius:999px;padding:10px 12px;font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.reading-options-header-tab:hover{background:#ffffff47}.reading-options-header-tab-active{background:#fff;color:#0f766e;border-color:#fff}.reading-options-close{flex:0 0 46px;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s ease,border-color .2s ease}.reading-options-close:hover{background:#ffffff4d}.reading-options-content{padding:20px;overflow-y:auto}.reading-options-section{margin-bottom:20px}.reading-options-label{display:block;font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.text-size-controls{display:flex;align-items:center;gap:16px}.text-size-btn{width:44px;height:44px;border-radius:8px;border:1px solid #E5E7EB;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1f2937;transition:all .2s ease}.text-size-btn:hover:not(:disabled){background:#f3f4f6;border-color:#0f766e}.text-size-btn:disabled{opacity:.4;cursor:not-allowed}.text-size-value{font-size:20px;font-weight:600;color:#1f2937;min-width:30px;text-align:center}.reading-theme-select-wrap{position:relative}.reading-theme-select{width:100%;padding:12px 14px;border:1px solid #E5E7EB;border-radius:10px;background:#fff;color:#1f2937;font-size:14px;font-weight:500;outline:none;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.reading-theme-select:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e24}.progress-container{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#0f766e,#0ea5a3);transition:width .3s ease}.progress-text{font-size:14px;font-weight:600;color:#1f2937;min-width:45px;text-align:right}.navigation-buttons{display:flex;gap:12px}.nav-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#0f766e;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.nav-btn:hover:not(:disabled){background:#115e59}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.reading-options-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-top:16px;border-top:1px solid #E5E7EB}.action-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f3f4f6;border:none;border-radius:8px;font-size:14px;font-weight:500;color:#1f2937;cursor:pointer;transition:all .2s ease}.action-btn:hover{background:#e5e7eb}.toc-count{margin-left:auto;font-size:12px;color:#6b7280;font-weight:400}.ai-assistant-panel{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;z-index:200;transform:translateY(100%);transition:transform .3s ease;display:flex;flex-direction:column;max-height:70vh}.ai-assistant-panel.open{transform:translateY(0)}.ai-assistant-header{background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;padding:16px 20px;display:flex;gap:10px;align-items:center;border-radius:16px 16px 0 0;flex-shrink:0}.ai-assistant-header-tab{flex:1;border:1px solid rgba(255,255,255,.18);background:#ffffff1f;color:#fff;border-radius:999px;padding:10px 12px;font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.ai-assistant-header-tab:hover{background:#ffffff47}.ai-assistant-header-tab-active{background:#fff;color:#6d28d9;border-color:#fff}.ai-assistant-close{flex:0 0 46px;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s ease,border-color .2s ease}.ai-assistant-close:hover{background:#ffffff4d}.ai-assistant-content{padding:16px 20px;display:flex;flex-direction:column;flex:1;min-height:0}.context-selector{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;flex-shrink:0}.context-tab{padding:8px 14px;border-radius:20px;border:1px solid #E5E7EB;background:#fff;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s ease}.context-tab:hover{border-color:#7c3aed;color:#7c3aed}.context-tab.active{background:#7c3aed;border-color:#7c3aed;color:#fff}.messages-container{flex:1;overflow-y:auto;min-height:150px;max-height:300px;margin-bottom:16px;padding-right:8px}.messages-placeholder{color:#9ca3af;font-size:14px;text-align:center;padding:40px 20px}.message{margin-bottom:12px}.message.user{display:flex;justify-content:flex-end}.message.user .message-content{background:#7c3aed;color:#fff;border-radius:16px 16px 4px;padding:10px 14px;max-width:80%}.message.assistant .message-content{background:#f3f4f6;color:#1f2937;border-radius:16px 16px 16px 4px;padding:10px 14px;max-width:80%}.typing-indicator{display:flex;gap:4px;padding:12px 14px!important}.typing-indicator span{width:8px;height:8px;background:#9ca3af;border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.input-container{display:flex;gap:10px;flex-shrink:0}.input-container input{flex:1;padding:12px 16px;border:1px solid #E5E7EB;border-radius:24px;font-size:14px;outline:none;transition:border-color .2s ease}.input-container input:focus{border-color:#7c3aed}.input-container input:disabled{background:#f9fafb;cursor:not-allowed}.send-btn{width:44px;height:44px;border-radius:50%;border:none;background:#7c3aed;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.send-btn:hover:not(:disabled){background:#6d28d9}.send-btn:disabled{opacity:.5;cursor:not-allowed}.toc-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.toc-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.toc-modal-header{background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.toc-modal-header h2{margin:0;font-size:20px;font-weight:600}.toc-modal-close{background:#fff3;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s ease}.toc-modal-close:hover{background:#ffffff4d}.toc-modal-content{flex:1;overflow-y:auto;padding:8px 0}.toc-empty{padding:40px 24px;text-align:center;color:#6b7280;font-size:14px}.toc-list{list-style:none;margin:0;padding:0}.toc-item{width:100%;display:flex;align-items:center;gap:16px;padding:14px 24px;border:none;background:none;text-align:left;cursor:pointer;transition:background .2s ease;font-size:14px}.toc-item:hover{background:#f3f4f6}.toc-item-number{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.toc-item:hover .toc-item-number{background:#7c3aed;color:#fff}.toc-item-label{color:#1f2937;flex:1;line-height:1.4}.toc-item:hover .toc-item-label{color:#7c3aed}.reader{position:fixed;inset:0;padding-top:calc(env(safe-area-inset-top,0px) + 2px);background:var(--reader-surface-color, #f5f5f5);z-index:50;box-sizing:border-box;--reader-surface-color: #fffdf7;--reader-surface-edge: rgba(31, 41, 55, .08);--reader-credit-color: rgba(33, 41, 55, .64);--reader-credit-text-shadow: 0 1px 0 rgba(255, 255, 255, .72), 0 0 10px rgba(255, 255, 255, .4);--reader-credit-check-color: rgba(33, 41, 55, .24);--reader-credit-check-complete-color: rgba(48, 86, 168, .82)}.reader[data-reader-theme=sepia]{--reader-surface-color: #f3e7d1;--reader-surface-edge: rgba(74, 56, 37, .1)}.reader[data-reader-theme=dusk]{--reader-surface-color: #1f2937;--reader-surface-edge: rgba(216, 225, 241, .1);--reader-credit-color: rgba(226, 232, 240, .82);--reader-credit-text-shadow: 0 1px 8px rgba(15, 23, 42, .32);--reader-credit-check-color: rgba(148, 163, 184, .48);--reader-credit-check-complete-color: rgba(147, 197, 253, .92)}.reader[data-reader-theme=midnight]{--reader-surface-color: #09090b;--reader-surface-edge: rgba(229, 231, 235, .08);--reader-credit-color: rgba(244, 244, 245, .84);--reader-credit-text-shadow: 0 1px 8px rgba(3, 7, 18, .42);--reader-credit-check-color: rgba(161, 161, 170, .5);--reader-credit-check-complete-color: rgba(103, 232, 249, .92)}.reader-view{width:100%;height:100%;box-sizing:border-box;background:var(--reader-surface-color)}.reader-view foliate-view{display:block;width:100%;height:100%}.reader-credit-overlay{position:absolute;right:18px;bottom:18px;z-index:115;display:inline-flex;align-items:center;gap:.42rem;padding:0;color:var(--reader-credit-color);pointer-events:none;transition:opacity .2s ease,transform .2s ease;text-shadow:var(--reader-credit-text-shadow)}.reader-credit-overlay--hidden{opacity:0;transform:translateY(4px)}.reader-credit-overlay__minutes{font-size:.84rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-weight:500;font-style:normal;font-variant-numeric:tabular-nums;font-synthesis:none;-webkit-font-smoothing:antialiased;letter-spacing:.02em}.reader-credit-overlay__check{color:var(--reader-credit-check-color);font-size:.78rem;line-height:1;transition:color .2s ease}.reader-credit-overlay__check.is-complete{color:var(--reader-credit-check-complete-color)}.reader-click-zone{position:absolute;left:0;right:0;z-index:100;cursor:pointer;background:transparent}.reader-click-zone-top{top:0;height:48px}.reader-click-zone-bottom{bottom:0;height:48px}@media(max-width:640px){.reader-credit-overlay{right:22px;bottom:12px}}*{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;--books-bg: #0b0d12;--books-bg-accent: #121722;--books-surface: rgba(14, 18, 28, .9);--books-surface-strong: rgba(21, 26, 39, .96);--books-border: rgba(125, 151, 190, .18);--books-border-strong: rgba(129, 167, 255, .34);--books-text: #edf2ff;--books-text-muted: #98a5c3;--books-text-soft: #74829f;--books-accent: #8ab4ff;--books-accent-strong: #6c9fff;--books-danger-bg: rgba(101, 28, 38, .7);--books-danger-border: rgba(255, 118, 138, .35);--books-danger-text: #ffd7dd}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top left,rgba(73,97,162,.28),transparent 30%),radial-gradient(circle at top right,rgba(32,167,172,.18),transparent 24%),linear-gradient(180deg,var(--books-bg-accent) 0%,var(--books-bg) 32%,#08090d 100%);color:var(--books-text)}#root{min-height:100vh}button,input{font:inherit}.app-shell{min-height:100vh}.books-topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.1rem 1.25rem;background:#080b12d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--books-border)}.books-topbar__brand{display:flex;flex-direction:column;gap:.35rem}.books-topbar__eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--books-text-soft)}.books-topbar__title{font-size:clamp(1.4rem,2.8vw,2rem);line-height:1;letter-spacing:-.03em}.books-topbar__subtitle{margin-top:.35rem;color:var(--books-text-muted);font-size:.95rem}.books-session-card{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid var(--books-border);border-radius:18px;background:linear-gradient(180deg,#141925f5,#0b0e16f5);box-shadow:0 18px 40px #0000003d}.books-session-card--signed-out{max-width:34rem}.books-session-card__label{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:var(--books-text-soft)}.books-session-card__value{font-size:1rem;color:var(--books-text)}.books-session-card__hint{margin-top:.25rem;max-width:32rem;color:var(--books-text-muted);font-size:.9rem}.books-button{border:1px solid var(--books-border-strong);border-radius:999px;padding:.78rem 1.1rem;background:linear-gradient(180deg,var(--books-accent),var(--books-accent-strong));color:#08101d;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;box-shadow:0 12px 30px #3573f947}.books-button:hover{transform:translateY(-1px);box-shadow:0 16px 34px #3573f957}.books-button--ghost{background:#101622e6;color:var(--books-text);box-shadow:none}.books-button--ghost:hover{border-color:#b0c4e966;box-shadow:none}.books-button--sync{font-size:.85rem;padding:.65rem .95rem;border:1px solid rgba(138,180,255,.5);background:#8ab4ff1f;color:var(--books-accent);box-shadow:none}.books-button--sync:hover:not(:disabled){border-color:var(--books-accent-strong);background:#8ab4ff33}.books-button--sync:disabled{opacity:.6;cursor:not-allowed}.books-session-card__reading-value{display:flex;align-items:center;gap:.5rem}.books-session-card__pending{font-size:.75rem;padding:.2rem .45rem;border-radius:999px;background:#ffbd5926;color:#ffd780;border:1px solid rgba(255,189,89,.3)}.books-auth-error{margin:1rem auto 0;width:min(1100px,calc(100% - 2rem));padding:.9rem 1rem;border:1px solid var(--books-danger-border);border-radius:14px;background:var(--books-danger-bg);color:var(--books-danger-text)}foliate-view{display:block;width:100%;height:100%;background:var(--reader-surface-color, #fffdf7);box-shadow:inset 0 0 0 1px var(--reader-surface-edge, rgba(31, 41, 55, .08))}@media(max-width:820px){.books-topbar{position:static;flex-direction:column;align-items:stretch;padding:1rem}.books-session-card{flex-direction:column;align-items:flex-start}.books-button{width:100%}}
