.app-shell{flex-direction:column;min-height:100dvh;display:flex}.main-content{padding:16px 16px calc(var(--nav-height) + var(--safe-bottom) + 16px);flex:1;overflow-y:auto}.reader-mode{z-index:100;background:var(--bg-primary);flex:1;position:fixed;inset:0;overflow:hidden}.bottom-nav{z-index:50;height:var(--nav-height);padding-bottom:var(--safe-bottom);border-bottom:none;border-left:none;border-right:none;border-top:1px solid var(--border-glass);-webkit-backdrop-filter:blur(30px);background:#0a0a0fd9;border-radius:0;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{border-radius:var(--radius-md);color:var(--text-tertiary);letter-spacing:.02em;flex-direction:column;align-items:center;gap:2px;padding:6px 16px;font-size:11px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:var(--text-secondary);background:var(--bg-glass)}.nav-item.active{color:var(--accent-purple)}.nav-item.active svg{filter:drop-shadow(0 0 8px #8b5cf666)}.nav-item svg{width:22px;height:22px}.page-header{padding:12px 0 20px}.page-header h1{color:var(--text-primary);letter-spacing:-.02em;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400}.page-header p{color:var(--text-secondary);margin-top:4px;font-size:14px}.search-bar{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-lg);align-items:center;gap:10px;margin-bottom:20px;padding:10px 14px;display:flex}.search-bar svg{color:var(--text-tertiary);flex-shrink:0}.search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.search-bar input::placeholder{color:var(--text-tertiary)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.series-card{color:inherit;text-decoration:none;animation:.3s ease-out both fadeIn}.series-card-inner{border-radius:var(--radius-lg);background:var(--bg-glass);border:1px solid var(--border-glass);transition:all .2s;overflow:hidden}.series-card:active .series-card-inner{border-color:var(--border-glass-strong);transform:scale(.97)}.series-card-cover{aspect-ratio:2/3;background:var(--bg-elevated);position:relative;overflow:hidden}.series-card-cover img{object-fit:cover;width:100%;height:100%}.series-card-cover .placeholder-cover{background:linear-gradient(135deg, var(--bg-surface), var(--bg-elevated));justify-content:center;align-items:center;width:100%;height:100%;font-size:48px;display:flex}.series-card-info{padding:10px 12px}.series-card-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.series-card-meta{color:var(--text-tertiary);margin-top:2px;font-size:11px}.tag{color:var(--accent-purple);background:#8b5cf626;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:500;display:inline-flex}.tag-green{color:var(--accent-green);background:#10b9811f}.tag-amber{color:var(--accent-amber);background:#f59e0b1f}.empty-state{text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state svg{opacity:.4;width:48px;height:48px;margin-bottom:16px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px;font-family:Georgia,serif;font-size:18px}.empty-state p{max-width:280px;font-size:14px;line-height:1.5}.reader-container{touch-action:none;background:#000;flex-direction:column;width:100%;height:100%;display:flex;position:relative}.reader-header{z-index:10;padding:calc(var(--safe-top) + 12px) 16px 12px;opacity:1;background:linear-gradient(#000c,#0000);justify-content:space-between;align-items:center;transition:opacity .3s;display:flex;position:absolute;top:0;left:0;right:0}.reader-header.hidden{opacity:0;pointer-events:none}.reader-back{color:#fff;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:4px 0;font-size:14px;font-weight:500;text-decoration:none;display:flex}.reader-title{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;max-width:60%;font-family:Georgia,serif;font-size:16px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.reader-page-info{color:#fff9;font-variant-numeric:tabular-nums;font-size:13px}.reader-image-area{flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.reader-image-area img{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;max-height:100%}.reader-tap-zone{z-index:5;cursor:pointer;position:absolute;top:0;bottom:0}.reader-tap-left{width:35%;left:0}.reader-tap-right{width:35%;right:0}.reader-tap-center{width:30%;left:35%}.reader-footer{z-index:10;padding:12px 16px calc(var(--safe-bottom) + 12px);opacity:1;background:linear-gradient(#0000,#000c);transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.reader-footer.hidden{opacity:0;pointer-events:none}.progress-bar{background:#ffffff26;border-radius:2px;width:100%;height:3px;overflow:hidden}.progress-bar-fill{background:var(--accent-purple);border-radius:2px;height:100%;transition:width .2s}.gallery-grid{columns:3;column-gap:4px}.gallery-item{break-inside:avoid;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:4px;position:relative;overflow:hidden}.gallery-item img{width:100%;transition:transform .2s;display:block}.gallery-item:active img{transform:scale(1.02)}.lightbox-backdrop{z-index:200;background:#000000f2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-backdrop img{object-fit:contain;max-width:100%;max-height:100%}.lightbox-close{top:calc(var(--safe-top) + 12px);color:#fff;cursor:pointer;z-index:201;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute;right:16px}.upload-zone{border:2px dashed var(--border-glass);border-radius:var(--radius-xl);text-align:center;cursor:pointer;background:var(--bg-surface);padding:40px 20px;transition:all .2s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent-purple);background:#8b5cf60d}.upload-zone svg{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:12px}.upload-zone h3{color:var(--text-secondary);margin-bottom:6px;font-size:16px}.upload-zone p{color:var(--text-tertiary);font-size:13px}.upload-form{margin-top:20px}.form-group{margin-bottom:16px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:var(--radius-md);width:100%;color:var(--text-primary);outline:none;padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent-purple)}.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='rgba(255,255,255,0.5)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.upload-preview-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:16px;display:grid}.upload-preview-item{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-elevated);position:relative;overflow:hidden}.upload-preview-item img{object-fit:cover;width:100%;height:100%}.upload-preview-item .remove-btn{color:#fff;cursor:pointer;background:#ef4444e6;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex;position:absolute;top:4px;right:4px}.btn-primary{background:var(--accent-purple);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary:hover{background:#7c3aed}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-glass);border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover{background:var(--bg-glass-hover);border-color:var(--border-glass-strong)}.section-divider{align-items:center;gap:12px;margin:24px 0 16px;display:flex}.section-divider:before,.section-divider:after{content:"";background:var(--border-glass);flex:1;height:1px}.section-divider span{text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-size:12px;font-weight:500}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.status-reading{color:var(--accent-purple);background:#8b5cf626}.status-new{color:var(--accent-green);background:#10b9811f}.folder-tabs{-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:16px;padding-bottom:12px;display:flex;overflow-x:auto}.folder-tabs::-webkit-scrollbar{display:none}.folder-tab{background:var(--bg-glass);border:1px solid var(--border-glass);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;transition:all .2s}.folder-tab.active{background:var(--accent-purple);border-color:var(--accent-purple);color:#fff}.toast{bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);background:var(--accent-purple);color:#fff;border-radius:var(--radius-md);z-index:999;opacity:0;pointer-events:none;padding:12px 20px;font-size:14px;font-weight:500;transition:all .3s;position:fixed;left:50%;transform:translate(-50%)translateY(100px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{background:var(--accent-green)}.toast.error{background:var(--accent-red)}@media (width>=768px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.gallery-grid{columns:4;column-gap:6px}}@media (width>=1024px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.gallery-grid{columns:5}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a0f;--bg-surface:#ffffff08;--bg-elevated:#ffffff0f;--bg-glass:#ffffff14;--bg-glass-hover:#ffffff1f;--border-glass:#ffffff1a;--border-glass-strong:#ffffff2e;--text-primary:#ffffffeb;--text-secondary:#ffffff8c;--text-tertiary:#ffffff59;--accent-purple:#8b5cf6;--accent-blue:#3b82f6;--accent-green:#10b981;--accent-amber:#f59e0b;--accent-pink:#ec4899;--accent-red:#ef4444;--blur-amount:20px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--nav-height:64px}html{-webkit-text-size-adjust:100%;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(var(--blur-amount));border:1px solid var(--border-glass);border-radius:var(--radius-lg)}.glass-elevated{background:var(--bg-elevated);-webkit-backdrop-filter:blur(calc(var(--blur-amount) * 1.5));border:1px solid var(--border-glass-strong);border-radius:var(--radius-lg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}a,button{-webkit-tap-highlight-color:transparent}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.font-serif{font-family:Georgia,Times New Roman,serif}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:.3s ease-out both fadeIn}.animate-stagger-1{animation-delay:50ms}.animate-stagger-2{animation-delay:.1s}.animate-stagger-3{animation-delay:.15s}.animate-stagger-4{animation-delay:.2s}
