@charset "UTF-8";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{min-height:100%;width:100%;background-color:var(--bg-app);color:var(--text-primary);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-y:auto;touch-action:manipulation}#root{min-height:100%;width:100%;display:flex;flex-direction:column}:root,[data-theme=porcelain]{--bg-app: #FAF9F6;--bg-surface: #FFFFFF;--bg-surface-elevated: #F5F5F4;--text-primary: #1C1917;--text-secondary: #78716C;--text-muted: #A8A29E;--border-color: #E7E5E4;--accent-color: #0F766E;--accent-hover: #115E59;--accent-subtle: #F0FDFA;--accent-border: #99F6E4;--reader-bg: #FAF9F6;--reader-color: #1C1917;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .08)}[data-theme=sepia]{--bg-app: #F4ECD8;--bg-surface: #FBF4E3;--bg-surface-elevated: #EDE2C7;--text-primary: #382B1B;--text-secondary: #6B563D;--text-muted: #9E8565;--border-color: #DFD2B4;--accent-color: #B45309;--accent-hover: #92400E;--accent-subtle: #FEF3C7;--accent-border: #FDE68A;--reader-bg: #F4ECD8;--reader-color: #382B1B;--shadow-sm: 0 1px 3px rgba(56, 43, 27, .08);--shadow-md: 0 4px 12px rgba(56, 43, 27, .1);--shadow-lg: 0 10px 25px rgba(56, 43, 27, .15)}[data-theme=midnight]{--bg-app: #0B1120;--bg-surface: #111B30;--bg-surface-elevated: #1A2846;--text-primary: #F1F5F9;--text-secondary: #94A3B8;--text-muted: #64748B;--border-color: #1E2E4E;--accent-color: #2DD4BF;--accent-hover: #14B8A6;--accent-subtle: rgba(45, 212, 191, .12);--accent-border: rgba(45, 212, 191, .3);--reader-bg: #0B1120;--reader-color: #E2E8F0;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .5)}[data-theme=oled]{--bg-app: #000000;--bg-surface: #121212;--bg-surface-elevated: #1E1E1E;--text-primary: #E5E7EB;--text-secondary: #9CA3AF;--text-muted: #6B7280;--border-color: #27272A;--accent-color: #2DD4BF;--accent-hover: #14B8A6;--accent-subtle: rgba(45, 212, 191, .12);--accent-border: rgba(45, 212, 191, .3);--reader-bg: #000000;--reader-color: #CCCCCC;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .7);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .9)}.reader-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;background-color:var(--reader-bg);color:var(--reader-color);-webkit-user-select:none;user-select:none;overflow:hidden}foliate-view{display:block;width:100%;height:100%;background-color:var(--reader-bg);color:var(--reader-color);outline:none}.reader-header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);z-index:20;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.reader-header.chrome-hidden{transform:translateY(-100%);opacity:0;pointer-events:none}.reader-footer{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background-color:var(--bg-surface);border-top:1px solid var(--border-color);font-size:13px;color:var(--text-secondary);z-index:20;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.reader-footer.chrome-hidden{transform:translateY(100%);opacity:0;pointer-events:none}.reader-stage{flex:1;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}.nav-zone{position:absolute;top:0;bottom:0;z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease,background-color .2s ease}.nav-zone.left{left:0;width:20%;min-width:50px;max-width:140px}.nav-zone.right{right:0;width:20%;min-width:50px;max-width:140px}.nav-zone.center{left:20%;right:20%;width:auto;z-index:5;cursor:pointer}.nav-zone .nav-button{opacity:0;transition:opacity .2s ease;background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);cursor:pointer}@media(hover:hover)and (pointer:fine){.nav-zone:hover .nav-button{opacity:.9}.nav-zone:hover{background-color:#00000004}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#1c191780;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:120;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out}.modal-content{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-lg);color:var(--text-primary);max-height:85vh;display:flex;flex-direction:column;overflow:hidden;-webkit-overflow-scrolling:touch}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.btn-icon{background:transparent;border:none;color:var(--text-secondary);padding:8px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease;min-width:36px;min-height:36px}.btn-icon:hover{background-color:var(--bg-surface-elevated);color:var(--text-primary)}.btn-icon.active{background-color:var(--accent-subtle);color:var(--accent-color)}@media(max-width:640px){.reader-header{height:50px;padding:0 12px}.reader-footer{height:40px;padding:0 12px;font-size:11px}.desktop-only{display:none!important}.modal-content{width:94%!important;border-radius:14px}}.shelf-nav{padding:12px 24px}.shelf-main{padding:28px 24px 60px}.shelf-hero{padding:36px 40px;border-radius:20px}.shelf-hero-title{font-size:28px}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:22px}@media(max-width:640px){.shelf-nav{padding:10px 14px}.shelf-nav-user{display:none!important}.shelf-main{padding:16px 12px 40px}.shelf-hero{padding:22px 18px;border-radius:14px;margin-bottom:20px}.shelf-hero-title{font-size:20px!important}.shelf-counter{width:100%;margin-top:8px}.shelf-grid{gap:16px}}
