.app-layout-root{height:100vh;display:flex;flex-direction:column;background:#fafafa}.app-layout-header{display:none;align-items:center;gap:var(--space-md, 1rem);padding:0 var(--space-xl, 2rem);height:56px;background:#fff;border-bottom:1px solid #eee;flex-shrink:0;z-index:100;font-family:Poppins,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.app-header-brand{display:flex;align-items:center;gap:var(--space-sm, .5rem);flex-shrink:0;padding:0;border:none;background:none;cursor:pointer;font:inherit;color:inherit}.app-header-brand h1{font-size:1.1rem;font-weight:700;color:var(--color-forest-dark, #1A3A2E)}.app-header-logo{width:36px;height:36px;object-fit:contain}.app-header-spacer{flex:1}.app-header-hamburger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--color-ink-muted, #6b7280);transition:background .15s}.app-header-hamburger:hover{background:#0000000d}.app-sidebar-brand-section{padding:16px 16px 8px;flex-shrink:0;border-bottom:1px solid #eee;margin-bottom:4px}.app-sidebar-brand{display:flex;align-items:center;gap:8px;padding:0;border:none;background:none;cursor:pointer;font:inherit;color:inherit}.app-sidebar-brand:focus-visible{outline:2px solid var(--color-forest, #2D5A4A);outline-offset:2px;border-radius:4px}.app-sidebar-brand-logo{width:36px;height:36px;object-fit:contain;flex-shrink:0}.app-sidebar-brand-title{font-size:1.15rem;font-weight:700;color:var(--color-forest-dark, #1A3A2E);margin:0}.app-sidebar-product-nav{display:flex;align-items:center;justify-content:center;gap:0;margin-top:6px}.app-sidebar-product-tab{position:relative;padding:4px 8px 6px;font-size:.8rem;font-weight:500;color:var(--color-ink-muted, #6b7280);text-decoration:none;transition:color .2s;font-family:Poppins,sans-serif}.app-sidebar-product-tab:first-child{padding-left:8px}.app-sidebar-product-tab:hover{color:var(--color-forest-dark, #2D5A4A)}.app-sidebar-product-tab.active{color:var(--color-forest-dark, #1a1a1a);font-weight:600}.app-sidebar-product-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2.5px;background:linear-gradient(90deg,transparent 0%,var(--color-forest, #3A7F5E) 12%,var(--color-forest, #3A7F5E) 88%,transparent 100%);border-radius:2px}.app-sidebar.collapsed .app-sidebar-brand-section{padding:12px 8px 8px;display:flex;justify-content:center}.app-sidebar.collapsed .app-sidebar-brand{justify-content:center}.app-layout-body{flex:1;display:flex;overflow:hidden;position:relative}.app-layout-content{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.app-sidebar{width:192px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid #eee;overflow-y:auto;overflow-x:hidden;transition:width .2s ease;position:relative;font-family:Poppins,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.app-sidebar.collapsed{width:64px}.app-sidebar-nav{display:flex;flex-direction:column;flex:1;padding:12px 8px;gap:2px}.app-sidebar-search{margin-bottom:4px}.app-sidebar-search-wrap{position:relative}.app-sidebar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none}.app-sidebar-search-input{width:100%;padding:6px 10px 6px 30px;font-size:.85rem;font-family:inherit;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;color:#374151;outline:none;transition:border-color .15s,box-shadow .15s}.app-sidebar-search-input::placeholder{color:#9ca3af}.app-sidebar-search-input:focus{border-color:var(--color-forest, #2D5A4A);box-shadow:0 0 0 2px #2d5a4a1a}.app-sidebar-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;padding:4px 12px 2px;white-space:nowrap;overflow:hidden}.app-sidebar-label-spaced{padding-top:16px}.app-sidebar.collapsed .app-sidebar-label{opacity:0;height:0;padding:0;overflow:hidden}.app-sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:.875rem;font-weight:500;color:#4b5563;text-decoration:none;transition:background .15s,color .15s;white-space:nowrap;overflow:hidden;cursor:pointer;border:none;background:transparent;width:100%;text-align:left;font-family:inherit}.app-sidebar-item:hover{background:#0000000a;color:#1f2937}.app-sidebar-item.active{background:#2d5a4a14;color:var(--color-forest, #2D5A4A);font-weight:500}.app-sidebar-item-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.app-sidebar-item-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar.collapsed .app-sidebar-item{justify-content:center;padding:10px}.app-sidebar.collapsed .app-sidebar-item-text{display:none}.app-sidebar-spacer{flex:1}.app-sidebar-bottom{padding:8px;border-top:1px solid #eee}.app-sidebar-user-trigger-wrap{position:relative}.app-sidebar-user-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;transition:background .15s;overflow:hidden;font-family:inherit}.app-sidebar-user-trigger:hover{background:#0000000a}.app-sidebar-account-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--color-forest-light, #8aab9a);overflow:hidden}.app-sidebar-avatar-initials{font-size:.7rem;font-weight:600;color:#fff;line-height:1;letter-spacing:.02em}.app-sidebar-user-trigger-info{flex:1;min-width:0;display:flex;flex-direction:column;text-align:left}.app-sidebar-user-trigger-name{font-size:.875rem;font-weight:600;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar-user-trigger-plan{font-size:.7rem;font-weight:500;color:var(--color-ink-muted, #6b7280);line-height:1.3}.app-sidebar-user-trigger-dots{flex-shrink:0;color:#9ca3af;opacity:0;transition:opacity .15s}.app-sidebar-user-trigger:hover .app-sidebar-user-trigger-dots{opacity:1}.app-sidebar.collapsed .app-sidebar-user-trigger{justify-content:center;padding:8px}.app-sidebar.collapsed .app-sidebar-user-trigger-info,.app-sidebar.collapsed .app-sidebar-user-trigger-dots{display:none}.app-sidebar-user-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55}.app-sidebar-user-menu{min-width:220px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 32px #0000001f;padding:4px 0;z-index:60;animation:userMenuFadeIn .15s ease}@keyframes userMenuFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.app-sidebar-menu-header{padding:10px 14px 6px}.app-sidebar-menu-email{font-size:.75rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.app-sidebar-menu-divider{height:1px;background:#f3f4f6;margin:4px 8px}.app-sidebar-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:#374151;text-decoration:none;transition:background .12s;font-family:inherit}.app-sidebar-menu-item:hover{background:#f3f4f6}.app-sidebar-menu-item svg{flex-shrink:0}.app-sidebar-menu-item span{flex:1;text-align:left}.app-sidebar-menu-chevron{margin-left:auto;color:#9ca3af}.app-sidebar-menu-item-danger{color:#dc2626}.app-sidebar-menu-item-danger:hover{background:#fef2f2}.app-sidebar-menu-item-wrap{position:relative}.app-sidebar-lang-submenu{position:absolute;left:calc(100% + 4px);bottom:0;min-width:140px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px #0000001f;padding:4px 0;z-index:65}.app-sidebar-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 3px #00000014;cursor:pointer;z-index:10;color:#9ca3af;transition:left .2s ease,color .15s,background .15s}.app-sidebar-toggle:hover{background:#f3f4f6;color:#374151}.app-sidebar-toggle svg{width:14px;height:14px}.app-sidebar-lang-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;background:transparent;border:none;font-family:inherit;font-size:.875rem;color:#374151;cursor:pointer;text-align:left;transition:background .15s}.app-sidebar-lang-item:hover{background:#f3f4f6}.app-sidebar-lang-item.active{font-weight:600}.app-sidebar-lang-check{flex-shrink:0;color:var(--color-forest, #2D5A4A)}.app-sidebar-lang-spacer{display:inline-block;width:16px;flex-shrink:0}.app-sidebar-backdrop{display:none}@media (max-width: 1023px){.app-layout-header{display:flex}.app-sidebar-brand-section{display:none}.app-sidebar{position:fixed;top:56px;left:0;bottom:0;z-index:50;width:256px!important;transform:translate(-100%);transition:transform .2s ease;box-shadow:none}.app-sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #0000001a}.app-sidebar-backdrop{position:fixed;top:56px;left:0;right:0;bottom:0;background:#0006;z-index:40}.app-sidebar-backdrop.visible{display:block}.app-sidebar-toggle{display:none}.app-sidebar-user-menu{min-width:200px}.app-sidebar-lang-submenu{left:calc(100% + 2px);bottom:auto;top:0}}[data-auth-library-theme=dark] .app-layout-root{background:var(--reader-bg-deep, #1E394D)}[data-auth-library-theme=dark] .app-layout-header{background:var(--reader-bg-secondary, #2D5668);border-bottom-color:#f3f8fa1f}[data-auth-library-theme=dark] .app-header-brand h1{color:var(--reader-icon, #F3F8FA)}[data-auth-library-theme=dark] .app-header-hamburger{color:#f3f8fab3}[data-auth-library-theme=dark] .app-header-hamburger:hover{background:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-brand-section{border-bottom-color:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-brand-title{color:var(--reader-icon, #F3F8FA)}[data-auth-library-theme=dark] .app-sidebar-product-tab{color:#f3f8fa8c}[data-auth-library-theme=dark] .app-sidebar-product-tab:hover{color:#f3f8fad9}[data-auth-library-theme=dark] .app-sidebar-product-tab.active{color:#f3f8faf2}[data-auth-library-theme=dark] .app-sidebar-product-tab.active:after{background:linear-gradient(90deg,transparent 0%,var(--reader-accent, #5b8fc9) 12%,var(--reader-accent, #5b8fc9) 88%,transparent 100%)}[data-auth-library-theme=dark] .app-sidebar{background:var(--reader-bg-secondary, #2D5668);border-right-color:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-search-icon{color:#f3f8fa66}[data-auth-library-theme=dark] .app-sidebar-search-input{background:#f3f8fa0f;border-color:#f3f8fa1f;color:#f3f8fae6}[data-auth-library-theme=dark] .app-sidebar-search-input::placeholder{color:#f3f8fa59}[data-auth-library-theme=dark] .app-sidebar-search-input:focus{border-color:var(--reader-accent, #5FB9B2);box-shadow:0 0 0 2px #5fb9b226}[data-auth-library-theme=dark] .app-sidebar-label{color:#f3f8fa66}[data-auth-library-theme=dark] .app-sidebar-item{color:#f3f8fab3}[data-auth-library-theme=dark] .app-sidebar-item:hover{background:#f3f8fa0f;color:#f3f8fae6}[data-auth-library-theme=dark] .app-sidebar-item.active{background:#5ba89a26;color:var(--reader-accent, #5FB9B2)}[data-auth-library-theme=dark] .app-sidebar-bottom{border-top-color:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-user-trigger:hover{background:#f3f8fa0f}[data-auth-library-theme=dark] .app-sidebar-user-trigger-name{color:#f3f8fae6}[data-auth-library-theme=dark] .app-sidebar-user-trigger-dots{color:#f3f8fa66}[data-auth-library-theme=dark] .app-sidebar-account-avatar{background:#8cb4d44d}[data-auth-library-theme=dark] .app-sidebar-user-trigger-plan{color:#f3f8fa80}[data-auth-library-theme=dark] .app-sidebar-toggle{background:var(--reader-bg-secondary, #2D5668);border-color:#f3f8fa26;color:#f3f8fa80}[data-auth-library-theme=dark] .app-sidebar-toggle:hover{background:#f3f8fa1a;color:#f3f8facc}[data-auth-library-theme=dark] .app-sidebar-user-menu{background:var(--reader-bg-secondary, #2D5668);border-color:#f3f8fa1f;box-shadow:0 8px 32px #0000004d}[data-auth-library-theme=dark] .app-sidebar-menu-email{color:#f3f8fa8c}[data-auth-library-theme=dark] .app-sidebar-menu-divider{background:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-menu-item{color:#f3f8fad9}[data-auth-library-theme=dark] .app-sidebar-menu-item:hover{background:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-menu-item-danger{color:#f87171}[data-auth-library-theme=dark] .app-sidebar-menu-item-danger:hover{background:#f871711a}[data-auth-library-theme=dark] .app-sidebar-lang-submenu{background:var(--reader-bg-secondary, #2D5668);border-color:#f3f8fa1f}[data-auth-library-theme=dark] .app-sidebar-lang-item{color:#f3f8fad9}[data-auth-library-theme=dark] .app-sidebar-lang-item:hover{background:#f3f8fa14}[data-auth-library-theme=dark] .app-sidebar-backdrop{background:#0009}.sim-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:sim-fade-in .2s ease}@keyframes sim-fade-in{0%{opacity:0}to{opacity:1}}.sim-modal{background:var(--bg-primary, #fff);border-radius:16px;padding:32px 28px 24px;max-width:360px;width:85vw;text-align:center;box-shadow:0 20px 60px #00000040;animation:sim-slide-up .25s ease}@keyframes sim-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.sim-icon{font-size:36px;margin-bottom:12px}.sim-title{font-size:18px;font-weight:600;margin:0 0 12px;color:var(--text-primary, #1a1a1a)}.sim-message{font-size:14px;color:var(--text-secondary, #555);margin:0 0 6px;line-height:1.5;word-break:break-word}.sim-hint{font-size:13px;color:var(--text-tertiary, #888);margin:0 0 20px}.sim-btn{display:inline-block;padding:12px 32px;border:none;border-radius:10px;background:var(--accent-color, #3b82f6);color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:opacity .15s,transform .1s}.sim-btn:hover{opacity:.9}.sim-btn:active{transform:scale(.97)}[data-auth-library-theme=dark] .sim-modal{background:#1e1e2e}[data-auth-library-theme=dark] .sim-title{color:#e5e7eb}[data-auth-library-theme=dark] .sim-message{color:#9ca3af}[data-auth-library-theme=dark] .sim-hint{color:#6b7280}.stats-card{margin:0 var(--space-xl) var(--space-lg);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);padding:var(--space-md) var(--space-lg);position:relative;overflow:visible}.stats-card-loading{height:80px}.stats-shimmer{width:100%;height:100%;border-radius:8px;background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.stats-header-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.stats-goal-text{flex:1;font-size:.85rem;color:var(--color-ink-light);font-weight:500}.stats-goal-empty{color:var(--color-ink-muted);font-style:italic}.stats-streak-badge{display:inline-flex;align-items:center;gap:3px;font-size:.78rem;font-weight:600;color:#e67e22;background:#fef3e2;padding:2px 8px;border-radius:10px;white-space:nowrap}.stats-body{display:flex;gap:var(--space-md)}.stats-left-col{flex:0 0 140px;display:flex;flex-direction:column;gap:var(--space-sm)}.stats-left-col:only-child{flex:1}.stats-month-card,.stats-week-card{background:#faf9f7;border-radius:10px;padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column}.stats-heatmap-wrap{flex:1;min-width:0;display:flex;align-items:center}.stats-month-label,.stats-week-label{font-size:.75rem;color:var(--color-ink-muted);margin-bottom:var(--space-xs)}.stats-month-time{display:flex;align-items:baseline;flex-wrap:wrap}.stats-big-num{font-size:1.4rem;font-weight:700;color:var(--color-ink);line-height:1.1}.stats-unit{font-size:.7rem;color:var(--color-ink-light);margin-left:1px;margin-right:3px}.stats-week-time{display:flex;align-items:baseline;flex-wrap:wrap;margin-bottom:var(--space-xs)}.stats-week-days{display:flex;gap:4px;margin-top:auto}.stats-day-col{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.stats-day-check{width:20px;height:20px;border-radius:50%;border:1.5px solid #d4d0ca;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s}.stats-day-check.met{background:var(--color-forest);border-color:var(--color-forest)}.stats-day-check.future{border-color:#e8e5df;opacity:.5}.stats-day-check.has-ring{border:none}.stats-day-label{font-size:.6rem;color:var(--color-ink-muted)}.stats-day-progress{display:block}.stats-week-threshold{font-size:.55rem;color:var(--color-ink-muted);text-align:center;margin-top:2px;opacity:.7}.stats-day-tooltip{position:fixed;transform:translate(-50%,-100%);background:#000c;color:#fff;font-size:11px;padding:4px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:10000}.stats-yearly-row{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid #ECEFF3}.stats-yearly-label{font-size:.75rem;color:var(--color-ink-muted);white-space:nowrap;flex-shrink:0}.stats-yearly-bar-wrap{flex:1;height:6px;background:#eee;border-radius:3px;overflow:hidden}.stats-yearly-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-forest-light),var(--color-forest));border-radius:3px;transition:width .5s ease;min-width:2px}.stats-yearly-nums{font-size:.7rem;color:var(--color-ink-muted);white-space:nowrap;flex-shrink:0}.stats-view-details{display:block;width:100%;padding:var(--space-sm) 0 0;margin-top:var(--space-sm);border:none;border-top:1px solid #ECEFF3;background:none;font-size:.8rem;font-weight:500;color:var(--color-forest);cursor:pointer;text-align:center;transition:opacity .15s}.stats-view-details:hover{opacity:.7}[data-auth-library-theme=dark] .stats-view-details{border-top-color:#333}.stats-milestone-toast{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);margin:calc(-1 * var(--space-md)) calc(-1 * var(--space-lg)) var(--space-md);background:linear-gradient(135deg,#fef9e7,#fdf2e9);border-bottom:1px solid #f5e6d3;cursor:pointer;animation:milestoneSlide .4s ease}@keyframes milestoneSlide{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.stats-milestone-item{font-size:.82rem;font-weight:600;color:#b45309}.heatmap-wrap{position:relative;width:100%}.heatmap-svg{display:block;color:var(--color-ink-muted)}.heatmap-day-label{font-size:7px;dominant-baseline:middle}.heatmap-month-label{font-size:7px;dominant-baseline:hanging}.heatmap-cell{transition:opacity .1s}.heatmap-cell:hover{opacity:.8;stroke:#666;stroke-width:1}.heatmap-cell-selected{stroke:#111;stroke-width:1}.heatmap-tooltip{background:#2f7d6b;color:#fff;font-size:11px;padding:5px 9px;border-radius:6px;white-space:nowrap;pointer-events:none}.heatmap-tooltip-langs{margin-top:3px;display:flex;flex-direction:column;gap:2px}.heatmap-tooltip-lang{display:flex;align-items:center;gap:4px;font-size:10px;opacity:.9}.heatmap-tooltip-dot{display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.heatmap-tooltip-words{margin-left:auto;padding-left:8px;font-variant-numeric:tabular-nums}.heatmap-eink-summary{margin-top:8px;padding-top:8px;border-top:1px dashed #bbb;font-size:.72rem;color:var(--color-ink-muted)}.heatmap-eink-summary-main{color:var(--color-ink);font-weight:600}.heatmap-eink-summary-langs{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px 10px}.heatmap-eink-summary-lang{white-space:nowrap}[data-auth-library-theme=dark] .heatmap-svg{color:#6b7280}.stats-goal-text.clickable{cursor:pointer;border-radius:4px;padding:1px 4px;margin:-1px -4px;transition:background .15s}.stats-goal-text.clickable:hover{background:#0000000d}@media (max-width: 600px){.stats-card{margin:0 var(--space-md) var(--space-md);padding:var(--space-sm) var(--space-md)}.stats-body{flex-direction:column;gap:var(--space-sm)}.stats-left-col{flex:none;flex-direction:row;gap:var(--space-sm)}.stats-left-col .stats-month-card,.stats-left-col .stats-week-card{flex:1}.stats-big-num{font-size:1.2rem}.stats-day-check,.stats-day-progress{width:16px;height:16px}}.landing-view{display:flex;flex-direction:column;gap:20px;padding:24px 32px;min-height:100%}.landing-mid-row{display:flex;gap:20px;align-items:stretch}.landing-mid-row .landing-hero{flex:1;min-width:0}.landing-quote-card{position:relative;border-radius:14px;overflow:hidden}.landing-quote-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#f0f4f3,#e8eeed 30%,#edf1f0 70%,#f2f5f4)}.landing-quote-card-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 60% at 20% 50%,rgba(45,90,74,.12) 0%,transparent 70%),radial-gradient(ellipse 60% 50% at 80% 35%,rgba(91,168,154,.1) 0%,transparent 65%),radial-gradient(ellipse 50% 40% at 55% 75%,rgba(140,200,190,.08) 0%,transparent 60%);filter:blur(40px)}.landing-quote-card-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff59;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.landing-quote-card-inner{position:relative;padding:20px 28px 16px}.landing-quote-text{font-family:Literata,"PT Serif",Songti SC,STSong,SimSun,"Noto Serif CJK SC",Georgia,serif;font-size:1.05rem;font-weight:400;line-height:1.8;color:var(--color-ink, #2C2416);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:.02em}.landing-quote-row{display:flex;align-items:center;gap:8px}.landing-quote-meta{font-size:.82rem;color:var(--color-ink-muted, #8B7B68);font-family:Poppins,PingFang SC,sans-serif}.landing-quote-source{font-style:italic;opacity:.8}.landing-like-btn,.landing-refresh-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:transparent;border-radius:50%;cursor:pointer;color:var(--color-ink-muted, #8B7B68);transition:all .2s;font-family:inherit;opacity:.6}.landing-like-btn:hover{background:#ef444414;color:#ef4444;opacity:1}.landing-like-btn.liked{color:#ef4444;opacity:1}.landing-refresh-btn:hover{background:#0000000a;color:var(--color-ink-light, #5C4D3C);opacity:1}.landing-hero{display:flex;gap:16px;padding:14px 14px 0;background:#fff;border-radius:14px;box-shadow:0 2px 8px #0000000a;cursor:pointer;transition:box-shadow .2s,transform .2s}.landing-hero:hover{box-shadow:0 6px 20px #00000014;transform:translateY(-1px)}.landing-hero-cover-col{flex-shrink:0;width:130px;display:flex;flex-direction:column;margin-top:8px}.landing-hero-cover{aspect-ratio:3 / 4;border-radius:6px;overflow:hidden;background:#e8e8e8;box-shadow:0 2px 10px #0000001f}.landing-hero-cover-img{width:100%;height:100%;object-fit:cover}.landing-hero-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;color:#00000026;background:linear-gradient(135deg,#f0ebe2,#e0d9cc)}.landing-hero-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding-top:16px}.landing-hero-hello{font-size:1.15rem;font-weight:400;color:var(--color-ink, #2C2416);margin:0;font-family:Poppins,PingFang SC,Noto Sans SC,sans-serif;line-height:1.3}.landing-hero-hello-name{font-weight:700;color:var(--color-forest, #2D5A4A)}.landing-hero-subtitle{font-size:.8rem;line-height:1.5;color:var(--color-ink-muted, #8B7B68);margin:4px 0 0}.landing-hero-chapter{font-size:.75rem;color:var(--color-ink-muted, #8B7B68);margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-daily-chart{position:relative;flex:1;min-height:0;margin-top:8px;padding-bottom:4px;cursor:default}.book-daily-chart-bars{display:flex;align-items:flex-end;gap:3px;height:100%;min-height:48px}.book-daily-chart-bar{flex:1;min-width:4px;max-width:14px;background:var(--color-forest, #2D5A4A);opacity:.55;border-radius:2px 2px 0 0;transition:opacity .15s ease-out;cursor:default}.book-daily-chart-bar:hover,.book-daily-chart-bar.active{opacity:1}.book-daily-chart-tooltip{position:absolute;transform:translate(-50%) translateY(-100%);padding:4px 8px;background:var(--color-ink, #2C2416);color:#fff;font-size:.7rem;line-height:1.3;border-radius:5px;white-space:nowrap;pointer-events:none;z-index:10;box-shadow:0 2px 8px #00000026}.book-daily-chart-empty{display:flex;align-items:center;justify-content:center}.book-daily-chart-empty-text{font-size:.72rem;color:var(--color-ink-muted, #8B7B68);opacity:.5;margin:0;text-align:center}[data-auth-library-theme=dark] .book-daily-chart-bar{background:#5aafa0;opacity:.5}[data-auth-library-theme=dark] .book-daily-chart-bar:hover,[data-auth-library-theme=dark] .book-daily-chart-bar.active{opacity:.9}[data-auth-library-theme=dark] .book-daily-chart-tooltip{background:#e0e0e0;color:#1a1a1a}.landing-books-full{width:100%;padding:0 8px}.landing-books-full .scroll-arrow{top:40%}.landing-books-title{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--color-ink-light, #5C4D3C);margin:0 0 12px;letter-spacing:.01em;background:none;border:none;cursor:pointer;padding:0;font-family:inherit;transition:color .15s}.landing-books-title:hover{color:var(--color-forest, #2D5A4A)}.landing-books-arrow{flex-shrink:0;opacity:.4;transition:transform .2s,opacity .2s}.landing-books-title:hover .landing-books-arrow,.landing-shelf-header:hover .landing-books-arrow{transform:translate(3px);opacity:.8}.landing-aside{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:8px}.landing-aside-card{background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 2px 8px #0000000a}.landing-aside-title{font-size:.82rem;font-weight:600;color:var(--color-ink-light, #5C4D3C);margin:0 0 12px}.landing-aside-stat-row{display:flex;gap:8px}.landing-stat-box{flex:1;background:#fff;border-radius:10px;padding:8px 12px;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column;gap:1px;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:box-shadow .2s,transform .2s}.landing-stat-box:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.landing-aside-card-clickable{cursor:pointer;transition:box-shadow .2s,transform .2s}.landing-aside-card-clickable:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.landing-stat-label{font-size:.72rem;font-weight:500;color:var(--color-ink-muted, #8B7B68)}.landing-stat-value{font-size:1rem;font-weight:700;color:var(--color-ink, #1a1a1a);font-family:Poppins,sans-serif}.landing-shelf{padding:10px 12px;flex:1;display:flex;flex-direction:column}.landing-shelf-header{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:0;margin:0 0 6px;font-family:inherit;font-size:.82rem;font-weight:600;color:var(--color-ink-light, #5C4D3C);transition:color .15s}.landing-shelf-header:hover{color:var(--color-forest, #2D5A4A)}.landing-shelf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;flex:1}.landing-shelf-add{aspect-ratio:3 / 4;border-radius:6px;border:1.5px dashed #d1d5db;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:border-color .15s,color .15s,background .15s}.landing-shelf-add:hover{border-color:var(--color-forest, #2D5A4A);color:var(--color-forest, #2D5A4A);background:#2d5a4a0a}.landing-shelf-book{aspect-ratio:3 / 4;border-radius:6px;overflow:hidden;cursor:pointer;background:#e8e8e8;box-shadow:0 1px 4px #0000001a;transition:transform .2s,box-shadow .2s}.landing-shelf-book:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.landing-shelf-cover{width:100%;height:100%;object-fit:cover}.landing-shelf-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#00000026;background:linear-gradient(135deg,#f0ebe2,#e0d9cc)}.landing-week-days{display:flex;justify-content:space-between;gap:0;padding:0 4px}.landing-day-col{display:flex;flex-direction:column;align-items:center;gap:4px}.landing-day-circle{width:18px;height:18px;border-radius:50%;border:1.5px solid #d4cfc7;display:flex;align-items:center;justify-content:center;position:relative;color:#d4cfc7;transition:all .2s}.landing-day-circle.met{background:var(--color-forest, #2D5A4A);border-color:var(--color-forest, #2D5A4A);color:#fff}.landing-day-circle.future{opacity:.35}.landing-day-circle.partial{border-color:transparent;color:var(--color-forest, #2D5A4A)}.landing-day-ring{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}.landing-day-label{font-size:.55rem;color:var(--color-ink-muted, #8B7B68)}@media (max-width: 1024px){.landing-view{padding:20px 24px}.landing-mid-row{flex-direction:column}.landing-aside{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}.landing-aside-card:first-child,.landing-aside-stat-row{grid-column:1 / -1}}@media (max-width: 768px){.landing-view{padding:16px}.landing-aside{grid-template-columns:1fr}.landing-aside-card:first-child,.landing-aside-stat-row{grid-column:auto}.landing-quote-card-inner{padding:24px 20px 20px}.landing-hero{gap:16px;padding:16px}.landing-hero-cover-col{width:110px}.landing-hero-hello{font-size:1.25rem}}@media (max-width: 480px){.landing-view{padding:12px}.landing-quote-card-inner{padding:20px 16px 16px}.landing-quote-text{font-size:1rem}.landing-hero-cover-col{width:90px}.landing-hero-hello{font-size:1.1rem}}[data-auth-library-theme=dark] .landing-quote-card-bg{background:linear-gradient(135deg,#1a2e3a,#1e3540 30%,#1c3038 70%,#1a2c36)}[data-auth-library-theme=dark] .landing-quote-card-bg:before{background:radial-gradient(ellipse 70% 60% at 20% 50%,rgba(95,185,178,.1) 0%,transparent 70%),radial-gradient(ellipse 60% 50% at 80% 35%,rgba(91,143,201,.08) 0%,transparent 65%),radial-gradient(ellipse 50% 40% at 55% 75%,rgba(140,200,220,.06) 0%,transparent 60%)}[data-auth-library-theme=dark] .landing-quote-card-bg:after{background:#14232d4d;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}[data-auth-library-theme=dark] .landing-quote-text{color:#f3f8fae6}[data-auth-library-theme=dark] .landing-quote-meta{color:#f3f8fa73}[data-auth-library-theme=dark] .landing-like-btn{color:#f3f8fa66}[data-auth-library-theme=dark] .landing-like-btn:hover{background:#ef44441f;color:#f87171}[data-auth-library-theme=dark] .landing-like-btn.liked{color:#f87171}[data-auth-library-theme=dark] .landing-refresh-btn{color:#f3f8fa66}[data-auth-library-theme=dark] .landing-refresh-btn:hover{background:#f3f8fa14;color:#f3f8facc}[data-auth-library-theme=dark] .landing-hero{background:var(--reader-bg-secondary, #2D5668);box-shadow:0 2px 8px #0003}[data-auth-library-theme=dark] .landing-hero:hover{box-shadow:0 6px 20px #0000004d}[data-auth-library-theme=dark] .landing-hero-hello{color:#f3f8fae6}[data-auth-library-theme=dark] .landing-hero-hello-name{color:var(--reader-accent, #5FB9B2)}[data-auth-library-theme=dark] .landing-hero-subtitle{color:#f3f8fa73}[data-auth-library-theme=dark] .landing-hero-chapter{color:#f3f8fa66}[data-auth-library-theme=dark] .landing-hero-cover-placeholder{background:linear-gradient(135deg,#2d5668,#22374a);color:#f3f8fa26}[data-auth-library-theme=dark] .landing-aside-card{background:var(--reader-bg-secondary, #2D5668);box-shadow:0 2px 8px #0003}[data-auth-library-theme=dark] .landing-aside-title{color:#f3f8fa99}[data-auth-library-theme=dark] .landing-stat-box{background:var(--reader-bg-secondary, #2D5668);box-shadow:0 2px 8px #0003}[data-auth-library-theme=dark] .landing-stat-label{color:#f3f8fa73}[data-auth-library-theme=dark] .landing-stat-value{color:#f3f8faf2}[data-auth-library-theme=dark] .landing-day-circle{border-color:#f3f8fa33;color:#f3f8fa33}[data-auth-library-theme=dark] .landing-day-circle.met{background:var(--reader-accent, #5FB9B2);border-color:var(--reader-accent, #5FB9B2);color:#fff}[data-auth-library-theme=dark] .landing-day-circle.partial{color:var(--reader-accent, #5FB9B2)}[data-auth-library-theme=dark] .landing-day-label{color:#f3f8fa66}[data-auth-library-theme=dark] .landing-shelf-header{color:#f3f8fa99}[data-auth-library-theme=dark] .landing-shelf-header:hover{color:var(--reader-accent, #5FB9B2)}[data-auth-library-theme=dark] .landing-shelf-add{border-color:#f3f8fa26;color:#f3f8fa4d}[data-auth-library-theme=dark] .landing-shelf-add:hover{border-color:var(--reader-accent, #5FB9B2);color:var(--reader-accent, #5FB9B2);background:#5fb9b214}[data-auth-library-theme=dark] .landing-shelf-placeholder{background:linear-gradient(135deg,#2d5668,#22374a);color:#f3f8fa26}[data-auth-library-theme=dark] .landing-books-title{color:#f3f8fa99}.library-container{display:flex;flex-direction:column;flex:1;background:#fafafa;position:relative;min-height:0}.library-container.drag-active{pointer-events:none}.library-container.drag-active>*{pointer-events:none}.library-main{flex:1;padding:var(--space-xl) var(--space-2xl);max-width:1400px;margin:0 auto;width:100%}.library-error{background:#fee2e2;color:#991b1b;padding:var(--space-sm) var(--space-md);border-radius:6px;margin-bottom:var(--space-lg);display:flex;align-items:center;justify-content:space-between;font-size:.9rem}.library-error button{font-size:1.25rem;color:#991b1b;padding:0 var(--space-sm);background:none;border:none;cursor:pointer}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(var(--color-forest-rgb),.95);display:flex;align-items:center;justify-content:center;z-index:1000;pointer-events:auto}.drop-content{text-align:center;color:#fff}.drop-content svg{width:64px;height:64px;margin-bottom:var(--space-md);opacity:.9}.drop-content p{font-size:1.5rem;font-weight:500;margin-bottom:var(--space-xs)}.drop-content span{font-size:.9rem;opacity:.7}.books-loading,.books-empty{text-align:center;padding:80px 20px;color:#999}.loading-spinner{width:32px;height:32px;border:3px solid #eee;border-top-color:var(--color-forest);border-radius:50%;margin:0 auto var(--space-md);animation:spin .8s linear infinite}.books-empty svg{width:64px;height:64px;margin-bottom:var(--space-md);opacity:.3}.books-empty p{font-size:1.1rem;color:#666;margin-bottom:var(--space-xs)}.books-empty span{font-size:.9rem}.books-empty-inline{text-align:center;padding:var(--space-xl) var(--space-md);color:#999}.books-empty-inline svg{width:48px;height:48px;margin-bottom:var(--space-sm);opacity:.25}.books-empty-inline p{font-size:.95rem;color:#666;margin-bottom:var(--space-xs)}.books-empty-inline span{font-size:.85rem}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.books-section{margin-bottom:var(--space-2xl)}.books-section h2{font-size:1rem;font-weight:600;color:#333;margin-bottom:var(--space-lg)}.books-row{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.home-top-row{display:flex;gap:var(--space-lg);align-items:flex-start;margin-bottom:var(--space-lg)}.home-top-continue{flex:1;min-width:0;margin-bottom:0!important}.home-top-stats{flex-shrink:0;width:220px}.home-top-stats .stats-card{margin:0;padding:var(--space-sm) var(--space-md);font-size:.9em}.home-top-stats .stats-big-num{font-size:1.15rem}.home-top-stats .stats-day-check{width:17px;height:17px}.home-top-stats .stats-streak-badge{font-size:.7rem;padding:1px 6px}.home-top-stats .stats-week-time{font-size:.88rem}@media (max-width: 768px){.home-top-row{flex-direction:column;margin-bottom:var(--space-md)}.home-top-stats{width:100%}}.continue-reading-section .section-title-row{margin-bottom:var(--space-md)}.continue-row{gap:20px}.continue-card{flex-shrink:0;width:130px;cursor:pointer;animation:fadeIn .3s ease forwards;opacity:0;display:flex;flex-direction:column}.continue-cover{aspect-ratio:3 / 4;border-radius:6px;overflow:hidden;background:#e8e8e8;box-shadow:0 2px 10px #0000001f;transition:all .25s ease;position:relative}.continue-card:hover .continue-cover{box-shadow:0 8px 24px #0000002e;transform:translateY(-3px)}.continue-cover .book-cover-image{width:100%;height:100%;object-fit:cover}.continue-info{padding-top:8px;display:flex;flex-direction:column;gap:6px}.continue-title{font-size:.8rem;font-weight:500;color:#333;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-progress-row{display:flex;align-items:center;gap:6px}.continue-progress-bar{flex:1;height:3px;background:#e5e7eb;border-radius:2px;overflow:hidden}.continue-progress-pct{font-size:.65rem;color:#999;flex-shrink:0;min-width:28px;text-align:right}.continue-progress-fill{height:100%;background:var(--color-forest);border-radius:2px;transition:width .3s ease;min-width:2px}.continue-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 0;background:transparent;border:none;color:var(--color-forest);font-size:.78rem;font-weight:500;cursor:pointer;transition:opacity .2s;width:fit-content}.continue-btn:hover{opacity:.75}.continue-btn svg{width:13px;height:13px}.scroll-row-hidden-bar::-webkit-scrollbar{display:none}.scroll-row-hidden-bar{scrollbar-width:none}.scroll-row-wrap{position:relative}.scroll-arrow{position:absolute;top:35%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:none;background:#ffffffeb;box-shadow:0 2px 8px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-ink-light, #666);z-index:10;transition:background .15s,box-shadow .15s,opacity .15s;opacity:.85}.scroll-arrow:hover{background:#fff;box-shadow:0 3px 12px #0000002e;opacity:1}.scroll-arrow-left{left:-4px}.scroll-arrow-right{right:-4px}.books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar{height:6px}.books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-thumb:hover{background:#aaa}.books-row .book-card{flex-shrink:0;width:130px}.book-card{position:relative;cursor:pointer;animation:fadeIn .3s ease forwards;opacity:0}.book-card.dragging{opacity:.5}@keyframes fadeIn{to{opacity:1}}.book-card:hover .book-delete,.book-card:hover .book-tag-btn,.book-card:hover .book-cloud-btn:not(.uploaded){opacity:1}.book-card:hover .book-cover{box-shadow:0 8px 24px #00000026;transform:translateY(-2px)}.book-time{display:block;font-size:.7rem;color:#999;margin-bottom:6px;height:16px}.book-delete{position:absolute;top:22px;right:4px;width:22px;height:22px;border-radius:50%;background:#0009;border:none;cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;z-index:10}.book-delete:hover{background:#e53e3e}.book-delete svg{width:12px;height:12px;color:#fff}.book-tag-btn{position:absolute;bottom:4px;right:4px;width:24px;height:24px;border-radius:4px;background:transparent;border:none;cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;z-index:10}.book-card:hover .book-tag-btn{background:#0009}.book-card:hover .book-tag-btn:hover{background:var(--color-forest-light)}.book-tag-btn svg{width:14px;height:14px;color:#fff}.book-cloud-btn{position:absolute;bottom:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#0009;border:none;cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;z-index:10}.book-cloud-btn:hover{background:#000000bf}.book-cloud-btn.uploaded{opacity:1;background:transparent;cursor:pointer}.book-cloud-btn.uploading{opacity:1;pointer-events:none}.book-cloud-btn.uploading svg{animation:cloud-spin .8s linear infinite}@keyframes cloud-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.book-cloud-btn svg{width:14px;height:14px;color:#fff}.book-cloud-btn.uploaded svg.cloud-icon-uploaded{width:14px;height:14px;color:#7ab8d9}.book-finished-badge{position:absolute;top:6px;right:6px;left:auto;padding:2px 6px;font-size:11px;font-weight:500;line-height:1.2;color:#fff;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:3px;z-index:5;pointer-events:none}.book-pinned-badge{position:absolute;top:6px;left:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5;pointer-events:none;color:#fff}.book-pinned-badge svg{width:16px;height:16px}.book-card.phantom{opacity:.45}.book-card.phantom .book-cover{filter:grayscale(.6)}.phantom-badge{position:absolute;bottom:6px;left:6px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#787878d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5;pointer-events:none}.phantom-badge svg{width:14px;height:14px;color:#fff}.cloud-badge{position:absolute;bottom:6px;left:6px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#3d5a80d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5;pointer-events:none}.cloud-badge svg{width:14px;height:14px;color:#fff}.cloud-download-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:inherit;z-index:15;pointer-events:none}.cloud-download-icon{width:28px;height:28px;color:#fff;animation:cloud-download-pulse 1.2s ease-in-out infinite}@keyframes cloud-download-pulse{0%,to{opacity:.7}50%{opacity:1}}.cloud-download-pct{font-size:13px;font-weight:600;color:#fff;letter-spacing:.02em}.cloud-download-bar{width:60%;height:3px;background:#ffffff40;border-radius:2px;overflow:hidden}.cloud-download-fill{height:100%;background:#fff;border-radius:2px;transition:width .2s ease}.book-card.downloading,.continue-card.downloading{pointer-events:auto;cursor:wait}.book-cover{aspect-ratio:3 / 4;border-radius:4px;overflow:hidden;background:#e8e8e8;box-shadow:0 2px 8px #0000001a;transition:all .2s;position:relative}.book-cover-image{width:100%;height:100%;object-fit:cover}.book-cover-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;background:linear-gradient(145deg,#f5f5f5,#e0e0e0)}.book-cover-placeholder.no-cover{background:linear-gradient(160deg,#ebe6df,#d4cfc7);border:1px solid rgba(0,0,0,.08);box-shadow:inset 0 1px #ffffff80}.book-cover-initial{font-family:var(--font-reading);font-size:2.5rem;font-weight:400;color:#00000059;line-height:1;margin-bottom:6px}.book-cover-placeholder.no-cover .book-cover-title{color:#5c554d;font-size:.7rem}.book-cover-placeholder.loading{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.cover-spinner{width:20px;height:20px;border:2px solid #ddd;border-top-color:#999;border-radius:50%;animation:spin .8s linear infinite}.book-cover-title{font-family:var(--font-reading);font-size:.75rem;font-weight:500;color:#666;text-align:center;line-height:1.4;display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.book-title{font-size:.8rem;font-weight:500;color:#333;margin-top:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-card[data-finished] .book-title{-webkit-line-clamp:1;line-clamp:1}.book-wpm{display:block;margin-top:2px;font-size:.65rem;color:#999;letter-spacing:.02em}.book-finished-date-wrap{margin-top:4px;font-size:.7rem;color:#666}.book-finished-date{display:block}.books-row-by-month{margin-bottom:var(--space-md)}.books-row-by-month:last-child{margin-bottom:0}.all-books-row{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid #eee}.all-books-title{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:600;color:#333;margin-bottom:var(--space-md)}.all-books-count{font-size:.8rem;font-weight:400;color:#999;background:#f0f0f0;padding:2px 8px;border-radius:10px}.books-row-wrapper{position:relative}.show-all-btn{display:block;margin-top:12px;margin-left:auto;padding:6px 16px;background:transparent;border:1px solid #ddd;border-radius:6px;color:var(--color-forest);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.show-all-btn:hover{background:var(--color-forest);color:#fff;border-color:var(--color-forest)}.shelves-section{border-top:1px solid #eee;padding-top:var(--space-xl)}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:var(--space-lg);flex-wrap:wrap}.section-title-main{display:flex;align-items:center;gap:10px;font-size:1.05rem;font-weight:700;color:#4a4f55;margin:0}.section-title-main-clickable{border:none;background:none;padding:0;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:700;color:#4a4f55}.section-title-main-clickable:hover{opacity:.85}.library-type-btns{display:flex;gap:8px}.library-type-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:transparent;border:1px solid #ddd;border-radius:6px;font-size:.78rem;font-weight:500;color:#666;cursor:pointer;transition:all .2s;white-space:nowrap}.library-type-btn:hover{border-color:var(--color-forest);color:var(--color-forest);background:rgba(var(--color-forest-rgb),.04)}.library-type-count{font-size:.72rem;font-weight:400;color:#999;margin-left:2px}.cloud-usage-badge{font-size:.65rem;font-weight:400;color:#999;margin-left:2px}.section-title-row-sub{margin-top:var(--space-lg);margin-bottom:var(--space-md)}.add-book-card{flex-shrink:0;width:130px;opacity:1!important}.add-card-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:transparent!important;border:2px dashed #ccc;border-radius:6px;cursor:pointer;transition:all .2s}.add-card-cover svg{width:28px;height:28px;color:#aaa;transition:color .2s}.add-card-cover span{font-size:.75rem;font-weight:500;color:#aaa;transition:color .2s}.add-book-card:hover .add-card-cover{border-color:var(--color-forest);background:rgba(var(--color-forest-rgb),.04)!important}.add-book-card:hover .add-card-cover svg,.add-book-card:hover .add-card-cover span{color:var(--color-forest)}.grid-view-header{display:flex;align-items:center;gap:16px;margin-bottom:var(--space-xl)}.grid-view-header-left{display:flex;align-items:center;gap:10px}.grid-view-header-left h2{font-size:1.1rem;font-weight:600;color:#333;margin:0}.grid-view-count{font-size:.85rem;color:#999}.grid-view-header-right{display:flex;align-items:center;gap:12px;margin-left:auto}.grid-view-filter-inline{display:flex;align-items:center;gap:6px}.grid-view-filter-inline button{padding:5px 10px;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;border:1px solid #ddd;background:#fff;color:#666}.grid-view-filter-inline button:hover{background:#f5f5f5;border-color:#ccc;color:#333}.grid-view-filter-inline button.active{background:var(--color-forest-dark, #2D5A4A);border-color:var(--color-forest-dark, #2D5A4A);color:#fff}.grid-view-filter-separator{width:1px;height:18px;background:#ddd;margin:0 2px}[data-auth-library-theme=dark] .grid-view-filter-separator{background:#fff3}.curated-library-entry{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:12px;background:linear-gradient(135deg,#2d5a4a0f,#4a7c5914);border:1px solid rgba(45,90,74,.15);cursor:pointer;transition:all .2s ease}.curated-library-entry:hover{background:linear-gradient(135deg,#2d5a4a1a,#4a7c591f);border-color:#2d5a4a40}.curated-library-entry-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;background:#2d5a4a1a;color:var(--color-forest-dark, #2D5A4A);flex-shrink:0}.curated-library-entry-text{flex:1;min-width:0}.curated-library-entry-text h3{margin:0 0 4px;font-size:1rem;font-weight:600;color:#1a1a1a}.curated-library-entry-text p{margin:0;font-size:.82rem;color:#888;line-height:1.4}.curated-library-entry-arrow{flex-shrink:0;color:#aaa}[data-auth-library-theme=dark] .curated-library-entry{background:linear-gradient(135deg,#2d5a4a26,#4a7c591f);border-color:#2d5a4a4d}[data-auth-library-theme=dark] .curated-library-entry:hover{background:linear-gradient(135deg,#2d5a4a38,#4a7c592e);border-color:#2d5a4a66}[data-auth-library-theme=dark] .curated-library-entry-icon{background:#2d5a4a33;color:#7b9e87}[data-auth-library-theme=dark] .curated-library-entry-text h3{color:var(--reader-icon, #f3f8fa)}[data-auth-library-theme=dark] .curated-library-entry-text p{color:#f3f8fa99}[data-auth-library-theme=dark] .curated-library-entry-arrow{color:#f3f8fa66}.curated-placeholder{padding:60px 20px}.curated-placeholder svg{width:48px;height:48px;opacity:.4}.curated-library-view{padding-bottom:var(--space-2xl)}.curated-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding-top:8px}.curated-book-card{display:flex;gap:16px;padding:16px;border-radius:12px;background:#fff;border:1px solid #e8e8e8;transition:box-shadow .2s,border-color .2s}.curated-book-card:hover{border-color:#d0d0d0;box-shadow:0 2px 12px #0000000f}.curated-book-cover{flex-shrink:0;width:90px;height:130px;border-radius:6px;overflow:hidden;background:#f0f0f0}.curated-book-cover img{width:100%;height:100%;object-fit:cover}.curated-book-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#e8ede9,#d5ddd7);color:#2d5a4a80;font-size:2rem;font-weight:700}.curated-book-info{flex:1;min-width:0;display:flex;flex-direction:column}.curated-book-title{margin:0 0 4px;font-size:.95rem;font-weight:600;color:#1a1a1a;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.curated-book-subtitle{margin:-2px 0 4px;font-size:.82rem;color:#555;font-weight:400}.curated-book-author{margin:0 0 6px;font-size:.8rem;color:#888}.curated-book-quote-wrap{position:relative;margin:0 0 8px}.curated-book-quote{margin:0;font-size:.76rem;color:#777;line-height:1.5}.curated-book-quote-full{display:none;position:absolute;left:0;top:calc(100% + 6px);z-index:20;width:max(100%,240px);max-width:320px;padding:10px 12px;border-radius:8px;background:#fff;border:1px solid #e0e0e0;box-shadow:0 4px 16px #0000001a;font-size:.76rem;color:#555;line-height:1.55;white-space:pre-line;pointer-events:none}.curated-book-quote-wrap:hover .curated-book-quote-full{display:block}.curated-book-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.curated-meta-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:500;background:#2d5a4a14;color:#2d5a4a}.curated-meta-level{background:#5b8fc91a;color:#3b6fa0}.curated-add-btn{margin-top:auto;align-self:flex-start;padding:7px 16px;border:none;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;background:var(--color-forest-dark, #2D5A4A);color:#fff;transition:background .2s,opacity .2s}.curated-add-btn:hover{background:#3a7f5e}.curated-add-btn:disabled,.curated-add-btn-loading{opacity:.6;cursor:not-allowed}.curated-owned-btn{background:#e8f5e9;color:#2d5a4a;cursor:pointer;opacity:1}.curated-owned-btn:hover{background:#c8e6c9}[data-auth-library-theme=dark] .curated-book-card{background:var(--reader-bg-secondary, #1e2a3a);border-color:#f3f8fa1a}[data-auth-library-theme=dark] .curated-book-card:hover{border-color:#f3f8fa33;box-shadow:0 2px 12px #0003}[data-auth-library-theme=dark] .curated-book-cover{background:var(--reader-bg-deep, #0f1923)}[data-auth-library-theme=dark] .curated-book-cover-placeholder{background:linear-gradient(145deg,var(--reader-bg-secondary),var(--reader-bg-deep));color:#f3f8fa4d}[data-auth-library-theme=dark] .curated-book-title{color:var(--reader-icon, #f3f8fa)}[data-auth-library-theme=dark] .curated-book-subtitle{color:#f3f8faa6}[data-auth-library-theme=dark] .curated-book-author{color:#f3f8fa80}[data-auth-library-theme=dark] .curated-book-quote{color:#f3f8fa8c;border-left-color:#7b9e874d}[data-auth-library-theme=dark] .curated-book-quote-full{background:#1e2a3a;border-color:#f3f8fa26;box-shadow:0 4px 16px #0000004d;color:#f3f8fab3}[data-auth-library-theme=dark] .curated-meta-tag{background:#2d5a4a33;color:#7b9e87}[data-auth-library-theme=dark] .curated-meta-level{background:#5b8fc926;color:#8cb4d4}[data-auth-library-theme=dark] .curated-add-btn{background:#2d5a4ab3}[data-auth-library-theme=dark] .curated-add-btn:hover{background:#3a7f5ecc}[data-auth-library-theme=dark] .curated-owned-btn{background:#2d5a4a40;color:#7b9e87}[data-auth-library-theme=dark] .curated-owned-btn:hover{background:#2d5a4a66}@media (max-width: 480px){.curated-grid{grid-template-columns:1fr}.curated-book-cover{width:72px;height:105px}}.btn-back{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-ink-muted, #6b7280);cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.btn-back:hover{background:#0000000d;color:var(--color-ink, #1f2937)}.grid-view-selected-count{font-size:.85rem;color:#666}.btn-select,.btn-cancel-select{padding:6px 14px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;border:1px solid #ddd;background:transparent;color:var(--color-forest-dark, #2D5A4A);transition:all .2s}.btn-select:hover,.btn-cancel-select:hover{background:#3a7f5e14;border-color:var(--color-forest, #3A7F5E)}.btn-back svg{width:16px;height:16px}.grid-view-scroll{overflow-y:auto;padding-bottom:var(--space-2xl)}.grid-view-section{margin-bottom:var(--space-2xl)}.grid-view-section:last-child{margin-bottom:0}.grid-view-section-title{font-size:.95rem;font-weight:600;color:#555;margin-bottom:var(--space-md);padding-bottom:var(--space-xs)}.books-grid-full{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-xl) var(--space-lg)}.book-card.selection-mode{cursor:pointer}.book-selection-check{position:absolute;bottom:6px;right:6px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.9);background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:6;pointer-events:none}.book-selection-check.checked{background:var(--color-forest, #3A7F5E);border-color:var(--color-forest, #3A7F5E)}.book-selection-check svg{width:14px;height:14px;color:#fff}.book-card.selected .book-selection-check{background:var(--color-forest, #3A7F5E);border-color:var(--color-forest, #3A7F5E)}.grid-view-cloud{padding-bottom:80px}.box-select-overlay{position:fixed;pointer-events:none;border:1px dashed rgba(59,130,246,.7);border-radius:2px;background:#3b82f60f;z-index:10;box-sizing:border-box}[data-theme=dark] .box-select-overlay{border-color:#60a5fa99;background:#3b82f61f}.library-container.box-selecting,.library-container.box-selecting *{user-select:none;-webkit-user-select:none}.cloud-selection-bar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:stretch;justify-content:center;gap:6px;padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px));padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px));background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0000000f,0 -1px #0000000a;z-index:100;user-select:none;-webkit-user-select:none;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.cloud-selection-bar::-webkit-scrollbar{display:none}.cloud-selection-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:56px;padding:10px 8px;border-radius:12px;font-size:.7rem;font-weight:500;color:#6b7280;background:transparent;border:none;cursor:pointer;transition:background .2s,color .2s;flex-shrink:0}.cloud-selection-btn:hover{background:#2d5a4a0f;color:#4a5568}.cloud-selection-btn:active{background:#2d5a4a1a}.cloud-selection-btn svg{width:22px;height:22px;flex-shrink:0;opacity:.78}.cloud-selection-btn:hover svg{opacity:.9}.cloud-selection-btn span{line-height:1.2;white-space:nowrap;text-align:center}.cloud-selection-btn-remove{color:#9f1239}.cloud-selection-btn-remove:hover{background:#b91c1c0f;color:#b91c1c}.cloud-selection-btn-remove:active{background:#b91c1c1a}.cloud-selection-btn-uploading{pointer-events:none;opacity:.9}.cloud-selection-btn-uploading svg{animation:cloud-spin .8s linear infinite}[data-auth-library-theme=dark] .grid-view-selected-count{color:#f3f8fab3}[data-auth-library-theme=dark] .btn-select,[data-auth-library-theme=dark] .btn-cancel-select{border-color:#f3f8fa33;color:var(--reader-accent)}[data-auth-library-theme=dark] .btn-select:hover,[data-auth-library-theme=dark] .btn-cancel-select:hover{background:#5b8fc926;border-color:var(--reader-accent)}[data-auth-library-theme=dark] .cloud-selection-bar{background:var(--reader-bg-secondary);box-shadow:0 -4px 24px #00000040,0 -1px #f3f8fa0f}[data-auth-library-theme=dark] .cloud-selection-btn{background:transparent;color:#f3f8fa9e}[data-auth-library-theme=dark] .cloud-selection-btn:hover{background:#f3f8fa14;color:#f3f8fae0}[data-auth-library-theme=dark] .cloud-selection-btn svg{opacity:.75}[data-auth-library-theme=dark] .cloud-selection-btn:hover svg{opacity:.92}[data-auth-library-theme=dark] .cloud-selection-btn-remove{color:#f87171d9}[data-auth-library-theme=dark] .cloud-selection-btn-remove:hover{background:#f871711a;color:#f87171}@media (max-width: 768px){.library-main{padding:var(--space-lg)}.books-row .book-card,.continue-card{width:110px}.book-time{font-size:.65rem}.book-title{font-size:.75rem}.books-grid-full{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-md)}}@media (max-width: 480px){.books-row .book-card,.continue-card{width:100px}.books-grid-full{grid-template-columns:repeat(3,1fr)}}[data-auth-library-theme=dark] .library-container{background:var(--reader-bg-deep);--reader-accent: #5b8fc9;--reader-hover: #4a7ab5;--reader-highlight: #8cb4d4}[data-auth-library-theme=dark] .btn-spinner{border-color:#f3f8fa4d;border-top-color:var(--reader-icon)}[data-auth-library-theme=dark] .drop-overlay{background:#1e394df2}[data-auth-library-theme=dark] .drop-content{color:var(--reader-icon)}[data-auth-library-theme=dark] .books-loading,[data-auth-library-theme=dark] .books-empty{color:#f3f8fab3}[data-auth-library-theme=dark] .loading-spinner{border-color:#f3f8fa33;border-top-color:var(--reader-accent)}[data-auth-library-theme=dark] .books-empty p{color:#f3f8facc}[data-auth-library-theme=dark] .books-empty span,[data-auth-library-theme=dark] .books-empty-inline{color:#f3f8fa99}[data-auth-library-theme=dark] .books-empty-inline p{color:#f3f8facc}[data-auth-library-theme=dark] .books-section h2{color:var(--reader-icon)}[data-auth-library-theme=dark] .continue-cover{background:var(--reader-bg-secondary);box-shadow:0 2px 10px #0000004d}[data-auth-library-theme=dark] .continue-title{color:var(--reader-icon)}[data-auth-library-theme=dark] .continue-progress-bar{background:#f3f8fa1a}[data-auth-library-theme=dark] .continue-progress-fill{background:var(--reader-accent)}[data-auth-library-theme=dark] .continue-btn{color:var(--reader-accent)}[data-auth-library-theme=dark] .book-time{color:#f3f8fa99}[data-auth-library-theme=dark] .book-tag-btn:hover,[data-auth-library-theme=dark] .book-cloud-btn:hover{background:var(--reader-hover)}[data-auth-library-theme=dark] .book-cloud-btn.uploaded{background:transparent}[data-auth-library-theme=dark] .book-cloud-btn.uploaded svg.cloud-icon-uploaded{color:#7ab8d9}[data-auth-library-theme=dark] .book-finished-badge{background:#0009;color:#fffffff2}[data-auth-library-theme=dark] .book-pinned-badge{background:#0000008c;color:#fffffff2}[data-auth-library-theme=dark] .phantom-badge{background:#646464d9}[data-auth-library-theme=dark] .cloud-badge{background:#4ba29ccc}[data-auth-library-theme=dark] .cloud-download-overlay{background:#000000b3}[data-auth-library-theme=dark] .book-cover{background:var(--reader-bg-secondary);box-shadow:0 2px 12px #00000040}[data-auth-library-theme=dark] .book-cover-placeholder{background:linear-gradient(145deg,var(--reader-bg-secondary) 0%,var(--reader-bg-deep) 100%)}[data-auth-library-theme=dark] .book-cover-placeholder.no-cover{background:linear-gradient(160deg,var(--reader-bg-secondary) 0%,var(--reader-bg-deep) 100%);border-color:#f3f8fa1a}[data-auth-library-theme=dark] .book-cover-initial{color:#f3f8fa66}[data-auth-library-theme=dark] .book-cover-placeholder.no-cover .book-cover-title,[data-auth-library-theme=dark] .book-cover-title{color:#f3f8facc}[data-auth-library-theme=dark] .book-title{color:var(--reader-icon)}[data-auth-library-theme=dark] .book-wpm{color:#f3f8fa73}[data-auth-library-theme=dark] .cover-spinner{border-color:#f3f8fa33;border-top-color:var(--reader-accent)}[data-auth-library-theme=dark] .all-books-row{border-bottom-color:#f3f8fa1a}[data-auth-library-theme=dark] .all-books-title{color:var(--reader-icon)}[data-auth-library-theme=dark] .all-books-count{color:#f3f8fab3;background:#f3f8fa14}[data-auth-library-theme=dark] .show-all-btn{color:var(--reader-accent);border-color:#f3f8fa26}[data-auth-library-theme=dark] .show-all-btn:hover{background:var(--reader-accent);color:var(--reader-icon);border-color:var(--reader-accent)}[data-auth-library-theme=dark] .books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-track{background:#f3f8fa0d}[data-auth-library-theme=dark] .books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-thumb{background:#f3f8fa26}[data-auth-library-theme=dark] .books-row:not(.scroll-row-hidden-bar)::-webkit-scrollbar-thumb:hover{background:#f3f8fa40}[data-auth-library-theme=dark] .scroll-arrow{background:#282828eb;color:#999;box-shadow:0 2px 8px #0000004d}[data-auth-library-theme=dark] .scroll-arrow:hover{background:#333;color:#ccc}[data-auth-library-theme=dark] .shelves-section{border-top-color:#f3f8fa1f}[data-auth-library-theme=dark] .section-title-main{color:var(--reader-icon)}[data-auth-library-theme=dark] .library-type-btn{border-color:#f3f8fa26;color:#f3f8fa99}[data-auth-library-theme=dark] .library-type-btn:hover{border-color:var(--reader-accent);color:var(--reader-accent);background:#5b8fc914}[data-auth-library-theme=dark] .library-type-count{color:#f3f8fa80}[data-auth-library-theme=dark] .cloud-usage-badge{color:#f3f8fa66}[data-auth-library-theme=dark] .add-card-cover{border-color:#f3f8fa33}[data-auth-library-theme=dark] .add-card-cover svg,[data-auth-library-theme=dark] .add-card-cover span{color:#f3f8fa66}[data-auth-library-theme=dark] .add-book-card:hover .add-card-cover{border-color:var(--reader-accent);background:#5b8fc914!important}[data-auth-library-theme=dark] .add-book-card:hover .add-card-cover svg,[data-auth-library-theme=dark] .add-book-card:hover .add-card-cover span{color:var(--reader-accent)}[data-auth-library-theme=dark] .continue-progress-pct{color:#f3f8fa80}[data-auth-library-theme=dark] .grid-view-header h2{color:var(--reader-icon)}[data-auth-library-theme=dark] .grid-view-count{color:#f3f8fa99}[data-auth-library-theme=dark] .grid-view-filter-inline button{background:#ffffff14;border-color:#fff3;color:#f3f8facc}[data-auth-library-theme=dark] .grid-view-filter-inline button:hover{background:#ffffff1f;border-color:#ffffff4d;color:var(--reader-icon)}[data-auth-library-theme=dark] .grid-view-filter-inline button.active{background:var(--color-forest-dark, #2D5A4A);border-color:var(--color-forest-dark, #2D5A4A);color:#fff}[data-auth-library-theme=dark] .btn-back{color:#f3f8fa80}[data-auth-library-theme=dark] .btn-back:hover{background:#f3f8fa14;color:#f3f8fae6}[data-auth-library-theme=dark] .grid-view-section-title{color:#f3f8facc}.delete-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease}.delete-dialog{background:#fff;border-radius:14px;padding:24px 24px 16px;width:min(340px,90vw);box-shadow:0 16px 48px #0003;animation:slideUp .2s ease}.delete-dialog-title{margin:0 0 6px;font-size:16px;font-weight:600;color:#1a1a2e;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-dialog-desc{margin:0 0 20px;font-size:13px;color:#6b7280;text-align:center;line-height:1.5}.delete-dialog-actions{display:flex;flex-direction:column;gap:8px}.delete-dialog-btn{width:100%;padding:11px 16px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s}.delete-dialog-btn:hover{opacity:.85}.delete-dialog-btn-local{background:#f0f4ff;color:#3b5998}.delete-dialog-btn-full{background:#fef2f2;color:#dc2626}.delete-dialog-btn-cancel{background:#f3f4f6;color:#6b7280}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}[data-auth-library-theme=dark] .delete-dialog{background:#1f2937;box-shadow:0 16px 48px #00000080}[data-auth-library-theme=dark] .delete-dialog-title{color:#f3f4f6}[data-auth-library-theme=dark] .delete-dialog-desc{color:#9ca3af}[data-auth-library-theme=dark] .delete-dialog-btn-local{background:#3b599826;color:#93b4ff}[data-auth-library-theme=dark] .delete-dialog-btn-full{background:#dc26261f;color:#f87171}[data-auth-library-theme=dark] .delete-dialog-btn-cancel{background:#ffffff14;color:#9ca3af}.library-footer{text-align:center;padding:2rem 0 1.5rem;font-size:.75rem;color:#b0b0b0;letter-spacing:.02em}[data-auth-library-theme=dark] .library-footer{color:#555}.loading-screen{min-height:100vh;display:flex;flex-direction:column;background:var(--color-paper)}.loading-toolbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-paper);border-bottom:1px solid rgba(45,90,74,.1)}.loading-back-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);transition:background-color var(--transition-fast)}.loading-back-btn:hover{background:var(--color-paper-warm)}.loading-title{font-size:1rem;font-weight:500;font-family:var(--font-reading);color:var(--color-ink)}.loading-container{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl)}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg)}.loading-book{position:relative;width:64px;height:40px}.loading-book-svg{width:100%;height:100%;color:var(--color-ink-muted)}.loading-shimmer{position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0%,var(--color-forest) 50%,transparent 100%);background-size:200% 100%;animation:loadingShimmer 1.5s ease-in-out infinite}.loading-static-indicator{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--color-ink-muted)}@keyframes loadingShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.loading-message{font-family:var(--font-reading);color:var(--color-ink-muted);font-size:.95rem;text-align:center}:root{--color-paper: #FAF7F2;--color-paper-warm: #F5F1E8;--color-outer-bg: #FAF7F2;--color-ink: #2C2416;--color-ink-light: #5C4D3C;--color-ink-muted: #8B7B68;--color-forest: #2D5A4A;--color-forest-light: #3D7A64;--color-forest-dark: #1A3A2E;--color-forest-rgb: 45, 90, 74;--color-amber: #C4956A;--color-amber-light: #E5C9A8;--reader-midnight: #28465F;--reader-aurora: #3E8C86;--reader-sky: #8CB4C7;--reader-breathing: #A7D4D1;--reader-icon: #F3F8FA;--reader-bg-deep: #1E394D;--reader-bg-secondary: #2D5668;--reader-hover: #4BA29C;--reader-accent: #5FB9B2;--reader-highlight: #9ED9D6;--highlight-yellow: rgba(255, 235, 120, .5);--highlight-green: rgba(144, 238, 144, .5);--highlight-blue: rgba(135, 206, 250, .5);--highlight-pink: rgba(255, 182, 193, .5);--highlight-orange: rgba(255, 200, 124, .5);--font-reading: "Literata", Georgia, "Times New Roman", serif;--font-ui: "Source Sans 3", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--shadow-sm: 0 1px 2px rgba(44, 36, 22, .05);--shadow-md: 0 4px 6px rgba(44, 36, 22, .07);--shadow-lg: 0 10px 25px rgba(44, 36, 22, .1);--shadow-book: 0 2px 8px rgba(44, 36, 22, .12), 0 0 1px rgba(44, 36, 22, .08);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}[data-theme=parchment]{--color-paper: #F4EDE4;--color-paper-warm: #EDE5DB;--color-outer-bg: #E8DFD3;--color-ink: #2F2B26;--color-ink-light: #524D47;--color-ink-muted: #7D7770}[data-theme=sage]{--color-paper: #F1F6F2;--color-paper-warm: #E7EDE8;--color-outer-bg: #E3ECE5;--color-ink: #263238;--color-ink-light: #455A64;--color-ink-muted: #78909C}[data-theme=midnight]{--color-paper: #1B1F24;--color-paper-warm: #22262C;--color-outer-bg: #14171A;--color-ink: #D6DCE2;--color-ink-light: #A8B2BD;--color-ink-muted: #6B7785;--color-forest: #5BA88A;--color-forest-light: #7BC4A8;--color-forest-rgb: 91, 168, 138;--color-content-link: #8ED4B8;--color-content-link-hover: #B0E6D4}[data-theme=white]{--color-paper: #FFFFFF;--color-paper-warm: #F6F6F6;--color-outer-bg: #F4F4F4;--color-ink: #1A1A1A;--color-ink-light: #666666;--color-ink-muted: #999999;--color-forest: #145C45;--color-forest-light: #1C7A5C;--color-forest-dark: #0E4835;--color-forest-rgb: 20, 92, 69}[data-theme=slate]{--color-paper: #F2F4F6;--color-paper-warm: #E8EAEE;--color-outer-bg: #E5E7EB;--color-ink: #1F2933;--color-ink-light: #3E4C59;--color-ink-muted: #7B8794}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;background-color:var(--color-outer-bg);touch-action:manipulation}body{font-family:var(--font-ui);background-color:var(--color-outer-bg);color:var(--color-ink);line-height:1.6;min-height:100%;touch-action:manipulation}#root{min-height:100%;background-color:var(--color-outer-bg)}h1,h2,h3,h4,h5,h6{font-family:var(--font-reading);font-weight:500;line-height:1.3;color:var(--color-ink)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin-bottom:var(--space-md)}a{color:var(--color-forest);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-forest-light)}button{font-family:var(--font-ui);font-size:.9rem;cursor:pointer;border:none;background:none;transition:all var(--transition-fast)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:500}.btn-primary{background:var(--color-forest);color:#fff}.btn-primary:hover{background:var(--color-forest-light)}.btn-secondary{background:var(--color-paper-warm);color:var(--color-ink);border:1px solid var(--color-ink-muted)}.btn-secondary:hover{background:var(--color-amber-light);border-color:var(--color-amber)}.btn-ghost{background:transparent;color:var(--color-ink-light)}.btn-ghost:hover{background:var(--color-paper-warm);color:var(--color-ink)}input,textarea{font-family:var(--font-ui);font-size:1rem;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-ink-muted);border-radius:var(--radius-md);background:var(--color-paper);color:var(--color-ink);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus{outline:none;border-color:var(--color-forest);box-shadow:0 0 0 3px rgba(var(--color-forest-rgb),.15)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-paper-warm)}::-webkit-scrollbar-thumb{background:var(--color-ink-muted);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-light)}::selection{background:var(--highlight-yellow);color:var(--color-ink)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn var(--transition-normal) ease forwards}.slide-up{animation:slideUp var(--transition-normal) ease forwards}.text-center{text-align:center}.text-muted{color:var(--color-ink-muted)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.w-full{width:100%}.h-full{height:100%}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.library-container{--color-forest: #1e4976;--color-forest-light: #2a5a8f;--color-forest-dark: #153a5e;--color-forest-rgb: 30, 73, 118;--font-reading: "Literata", Georgia, "Times New Roman", serif;--font-ui: "Poppins", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;font-family:var(--font-ui)}.auth-container,.sidebar{--color-forest: #4D845C;--color-forest-light: #5A9669;--color-forest-dark: #3B6847;--color-forest-rgb: 77, 132, 92;--font-reading: "Literata", Georgia, "Times New Roman", serif;--font-ui: "Poppins", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;font-family:var(--font-ui)}[data-eink=true],[data-eink=true] *,[data-eink=true] *:before,[data-eink=true] *:after{animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important;transition-delay:0s!important;scroll-behavior:auto!important}[data-eink=true]{--transition-fast: 0s;--transition-normal: 0s;--transition-slow: 0s;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--shadow-book: none}[data-eink=true]:not([data-theme=midnight]):not([data-auth-library-theme=dark]){--color-ink: #000000;--color-ink-light: #222222;--color-ink-muted: #555555;--color-paper: #FFFFFF;--color-paper-warm: #F5F5F5;--color-outer-bg: #FFFFFF}[data-eink=true][data-theme=midnight],[data-eink=true][data-auth-library-theme=dark]{--color-ink: #FFFFFF;--color-ink-light: #DDDDDD;--color-ink-muted: #AAAAAA;--color-paper: #000000;--color-paper-warm: #111111;--color-outer-bg: #000000}[data-eink=true] .auth-card,[data-eink=true] .book-card,[data-eink=true] .lens-bottom-sheet,[data-eink=true] .lang-dropdown-menu,[data-eink=true] .toolbar-panel,[data-eink=true] .toolbar-settings-dropdown,[data-eink=true] .sidebar{border:1px solid #999}[data-eink=true][data-theme=midnight] .auth-card,[data-eink=true][data-theme=midnight] .book-card,[data-eink=true][data-theme=midnight] .lens-bottom-sheet,[data-eink=true][data-theme=midnight] .lang-dropdown-menu,[data-eink=true][data-theme=midnight] .toolbar-panel,[data-eink=true][data-theme=midnight] .toolbar-settings-dropdown,[data-eink=true][data-theme=midnight] .sidebar,[data-eink=true][data-auth-library-theme=dark] .auth-card,[data-eink=true][data-auth-library-theme=dark] .book-card,[data-eink=true][data-auth-library-theme=dark] .lang-dropdown-menu,[data-eink=true][data-auth-library-theme=dark] .sidebar{border-color:#666}[data-eink=true] .goal-dialog-overlay,[data-eink=true] .reading-summary-toast,[data-eink=true] .library-overlay,[data-eink=true] .cloud-upload-overlay,[data-eink=true] .tag-popup-overlay,[data-eink=true] .stats-card-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}[data-eink=true] *,[data-eink=true] *:before,[data-eink=true] *:after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;will-change:auto!important}[data-eink=true] .library-container{background:var(--color-paper)!important}[data-eink=true] .library-header{background:var(--color-paper)!important;border-bottom-color:#999!important}[data-eink=true] .book-card{box-shadow:none!important}[data-eink=true] .book-cover-placeholder,[data-eink=true] .curated-book-cover-placeholder{background:var(--color-paper-warm)!important;border:1px solid #999!important;box-shadow:none!important}[data-eink=true] .book-cover-placeholder.loading{animation:none!important;opacity:1!important;border-style:dashed!important}[data-eink=true] .loading-spinner,[data-eink=true] .cover-spinner,[data-eink=true] .btn-spinner,[data-eink=true] .book-cloud-btn.uploading svg,[data-eink=true] .cloud-selection-btn-uploading svg,[data-eink=true] .cloud-download-icon{animation:none!important}[data-eink=true] .loading-spinner,[data-eink=true] .cover-spinner{border-color:#999!important;border-top-color:#111!important}[data-eink=true] .dashboard-container{background:var(--color-paper)!important}[data-eink=true] .dashboard-card,[data-eink=true] .dashboard-top-card,[data-eink=true] .dashboard-trend-picker,[data-eink=true] .dashboard-words-popover,[data-eink=true] .dashboard-modal,[data-eink=true] .badges-modal{background:var(--color-paper)!important;border:1px solid #999!important;box-shadow:none!important}[data-eink=true][data-auth-library-theme=dark] .dashboard-card,[data-eink=true][data-auth-library-theme=dark] .dashboard-top-card,[data-eink=true][data-auth-library-theme=dark] .dashboard-trend-picker,[data-eink=true][data-auth-library-theme=dark] .dashboard-words-popover,[data-eink=true][data-auth-library-theme=dark] .dashboard-modal,[data-eink=true][data-auth-library-theme=dark] .badges-modal{border-color:#666!important}[data-eink=true] .dashboard-curve-current{filter:none!important}[data-eink=true] .dashboard-shimmer,[data-eink=true] .dashboard-trend-loading{animation:none!important;background:var(--color-paper-warm)!important;border:1px dashed #999!important}[data-eink=true] .dashboard-yearly-bar-fill,[data-eink=true] .dashboard-book-bar{background:var(--color-ink)!important}[data-eink=true] .dashboard-trend-lang-tag{background:var(--color-paper)!important;color:var(--color-ink)!important;border:1px solid #999}[data-eink=true] .lang-donut-chip.active,[data-eink=true] .dashboard-lang-chip.active{background:var(--color-ink)!important;border-color:var(--color-ink)!important;color:var(--color-paper)!important}[data-eink=true] .dashboard-lang-chip-dot,[data-eink=true] .dashboard-trend-legend-dot,[data-eink=true] .lang-donut-legend-dot{border:1px solid rgba(0,0,0,.3)}[data-eink=true][data-auth-library-theme=dark] .dashboard-lang-chip-dot,[data-eink=true][data-auth-library-theme=dark] .dashboard-trend-legend-dot,[data-eink=true][data-auth-library-theme=dark] .lang-donut-legend-dot{border-color:#ffffff73}[data-eink=true] .dashboard-stat-has-tip .dashboard-stat-tooltip{opacity:1!important}[data-eink=true] .badge-tile-tooltip{opacity:0!important;transition:none!important}[data-eink=true] .badge-tile[data-tip-open=true] .badge-tile-tooltip{opacity:1!important}[data-eink=true] .lang-progress-tick-tooltip{pointer-events:none}[data-eink=true] .lang-progress-tick[data-tip-open=true] .lang-progress-tick-tooltip{opacity:1!important}[data-eink=true] .highlight-toolbar,[data-eink=true] .highlight-bottom-sheet,[data-eink=true] .lens-bubble,[data-eink=true] .lens-panel,[data-eink=true] .lens-sheet,[data-eink=true] .epub-nav-back-btn,[data-eink=true] .chunk-status-toast,[data-eink=true] .chunk-upgrade-banner,[data-eink=true] .mark-finished-tip,[data-eink=true] .mark-finished-confirm{box-shadow:none!important;border:1px solid #999!important}[data-eink=true][data-auth-library-theme=dark] .library-container{background:#000!important}[data-eink=true][data-auth-library-theme=dark] .library-header{background:#000!important;border-bottom-color:#666!important}[data-eink=true]{--highlight-yellow: #E0D080;--highlight-green: #90C090;--highlight-blue: #80B0D0;--highlight-pink: #D0A0A8;--highlight-orange: #D0B080;--eink-tap-min: 40px}[data-eink=true] .book-delete,[data-eink=true] .book-tag-btn,[data-eink=true] .book-cloud-btn,[data-eink=true] .toolbar-progress-hover,[data-eink=true] .toolbar-progress-chapter-arrow-wrap{opacity:1!important;pointer-events:auto!important}[data-eink=true] button:active,[data-eink=true] [role=button]:active,[data-eink=true] a:active{opacity:.65!important}[data-eink=true] .book-delete,[data-eink=true] .book-tag-btn,[data-eink=true] .book-cloud-btn,[data-eink=true] .loading-back-btn,[data-eink=true] .toolbar-toggle-btn,[data-eink=true] .toolbar-inline-btn,[data-eink=true] .toolbar-settings-font-btn,[data-eink=true] .toolbar-settings-theme-btn,[data-eink=true] .highlight-toolbar-note-btn,[data-eink=true] .highlight-toolbar-copy-btn,[data-eink=true] .highlight-toolbar-delete-btn,[data-eink=true] .highlight-toolbar-underline-btn,[data-eink=true] .lens-bubble-btn,[data-eink=true] .lens-panel-icon-btn,[data-eink=true] .lens-sheet-icon-btn,[data-eink=true] .lang-progress-arrow,[data-eink=true] .dashboard-trend-arrow,[data-eink=true] .badges-modal-close,[data-eink=true] .dashboard-modal-close{min-width:var(--eink-tap-min)!important;min-height:var(--eink-tap-min)!important}[data-eink=true] .dashboard-lang-chip{padding:8px 14px!important;min-height:var(--eink-tap-min)!important;font-size:.82rem!important}[data-eink=true] .dashboard-edit-btn,[data-eink=true] .grid-view-filter-inline button{min-height:var(--eink-tap-min)!important;padding:8px 14px!important}[data-eink=true] .btn-back{min-height:var(--eink-tap-min)!important;padding:8px 16px!important}[data-eink=true] .highlight-toolbar-color-btn{min-width:36px!important;min-height:36px!important}[data-eink=true] input[type=checkbox]{min-width:20px!important;min-height:20px!important}[data-eink=true] .toolbar-progress-chapter-bar-fill{background:var(--color-forest)!important}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0s;--transition-normal: 0s;--transition-slow: 0s}}
