: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;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 #ccc;border-radius:12px;padding:3rem;text-align:center;cursor:pointer;transition:all .2s ease;background:#f9f9f9}.upload-zone:hover{border-color:#999;background:#f0f0f0}.upload-zone.dragging{border-color:#4a90d9;background:#e8f4ff}.upload-zone.uploading{pointer-events:none;opacity:.7}.upload-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem;color:#666}.upload-zone-content svg{color:#999}.upload-spinner{width:24px;height:24px;border:3px solid #ddd;border-top-color:#4a90d9;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.book-card{display:flex;flex-direction:column;gap:.5rem;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.book-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.book-cover{position:relative;aspect-ratio:2/3;background:#f0f0f0;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:#999}.book-progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:#0003}.book-progress-bar{height:100%;background:#4a90d9;transition:width .3s ease}.book-info{padding:.75rem}.book-title{font-size:.9rem;font-weight:600;margin:0 0 .25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-author{font-size:.8rem;color:#666;margin:0 0 .5rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.book-delete{padding:.25rem .5rem;font-size:.75rem;background:#f0f0f0;border:none;border-radius:4px;cursor:pointer;transition:background .2s ease}.book-delete:hover{background:#e0e0e0}.library{max-width:1200px;margin:0 auto;padding:2rem}.library-title{font-size:2rem;font-weight:700;margin:0 0 2rem}.library-loading{text-align:center;padding:3rem;color:#666}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.5rem;margin-top:2rem}.library-empty{text-align:center;color:#999;margin-top:2rem}.reading-options-panel{position:fixed;top:0;left:0;right:0;background:#fff;border-radius:0 0 16px 16px;box-shadow:0 4px 20px #00000026;z-index:200;transform:translateY(-100%);transition:transform .3s ease}.reading-options-panel.open{transform:translateY(0)}.reading-options-header{background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-radius:0;cursor:pointer}.reading-options-header-content h2{margin:0;font-size:18px;font-weight:600}.reading-options-header-content p{margin:4px 0 0;font-size:12px;opacity:.8}.reading-options-close{background:#fff3;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s ease}.reading-options-close:hover{background:#ffffff4d}.reading-options-content{padding:20px}.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:#7c3aed}.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}.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,#7c3aed,#6366f1);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:#7c3aed;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:#6d28d9}.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;justify-content:space-between;align-items:center;border-radius:16px 16px 0 0;cursor:pointer;flex-shrink:0}.ai-assistant-header-content h2{margin:0;font-size:18px;font-weight:600}.ai-assistant-close{background:#fff3;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .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;background:#f5f5f5;z-index:50}.reader-view{width:100%;height:100%;box-sizing:border-box}.reader-view foliate-view{display:block;width:100%;height:100%}.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}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fafafa}#root{min-height:100vh}foliate-view{display:block;width:100%;height:100%}
