:root{--app-font-family:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-card:#fff;--bg-hover:#0000000a;--bg-active:#0000000f;--bg-input:#f2f2f7;--bg-overlay:#00000061;--blur-bg:#ffffffc7;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#86868b;--text-inverse:#fff;--accent:#007aff;--accent-hover:#007aff1a;--accent-active:#007aff29;--accent-subtle:#007aff0f;--danger:#ff3b30;--warning:#ff9500;--border:#e5e5ea;--border-subtle:#00000014;--border-light:#78788014;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 3px 12px #00000026;--shadow-lg:0 20px 60px #0000004d}[data-theme=sepia]{--bg-primary:#f4ecd8;--bg-secondary:#f4ecd8;--bg-card:#f4ecd8;--bg-hover:#5b46360f;--bg-active:#5b463614;--bg-input:#5b46361f;--bg-overlay:#5b463666;--blur-bg:#f4ecd8d1;--text-primary:#5b4636;--text-secondary:#5b4636b3;--text-tertiary:#5b463699;--text-inverse:#fff;--accent:#8b6914;--accent-hover:#8b69141f;--accent-active:#8b69142e;--accent-subtle:#8b691414;--danger:#c0392b;--warning:#b8860b;--border:#5b463626;--border-subtle:#5b46361f;--border-light:#5b463614;--shadow-sm:0 1px 3px #5b46361a;--shadow-md:0 3px 12px #5b463626;--shadow-lg:0 20px 60px #5b46364d}[data-theme=dark]{--bg-primary:#1c1c1e;--bg-secondary:#1c1c1e;--bg-card:#2c2c2e;--bg-hover:#ffffff0f;--bg-active:#ffffff1a;--bg-input:#ffffff14;--bg-overlay:#00000080;--blur-bg:#1c1c1ed1;--text-primary:#f5f5f7;--text-secondary:#8e8e93;--text-tertiary:#f5f5f7;--text-inverse:#000;--accent:#0a84ff;--accent-hover:#0a84ff26;--accent-active:#0a84ff40;--accent-subtle:#0a84ff1a;--danger:#ff453a;--warning:#ff9f0a;--border:#ffffff1a;--border-subtle:#ffffff14;--border-light:#ffffff0f;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 3px 12px #0006;--shadow-lg:0 20px 60px #00000080}[data-theme=custom]{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-card:#fff;--bg-hover:#0000000a;--bg-active:#0000000f;--bg-input:#f2f2f7;--bg-overlay:#00000061;--blur-bg:#ffffffc7;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#86868b;--text-inverse:#fff;--accent:#007aff;--accent-hover:#007aff1a;--accent-active:#007aff29;--accent-subtle:#007aff0f;--danger:#ff3b30;--warning:#ff9500;--border:#e5e5ea;--border-subtle:#00000014;--border-light:#78788014;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 3px 12px #00000026;--shadow-lg:0 20px 60px #0000004d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:var(--app-font-family)}html,body{overscroll-behavior:none;-webkit-overflow-scrolling:touch;width:100%;height:100%;margin:0;padding:0;overflow:hidden}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6;transition:background-color .3s,color .3s}#root{flex-direction:column;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}input{font-family:inherit}::-webkit-scrollbar{display:none}.about-overlay{background:var(--bg-overlay);z-index:1000;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.about-modal{background:var(--bg-card);width:90%;max-width:340px;max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;animation:.3s slideUp;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.about-header{border-bottom:1px solid var(--border);justify-content:center;align-items:center;padding:18px 20px;display:flex;position:relative}.about-header h2{color:var(--text-primary);margin:0;font-size:17px;font-weight:600}.about-close{width:28px;height:28px;color:var(--accent);border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.about-close:active{background:var(--accent-hover)}.about-content{text-align:center;-webkit-overflow-scrolling:touch;max-height:calc(85vh - 60px);padding:24px 20px;overflow-y:auto}.about-icon{margin-bottom:16px}.about-title{color:var(--text-primary);margin:0 0 4px;font-size:28px;font-weight:700}.about-version{color:var(--text-tertiary);margin:0 0 20px;font-size:15px}.about-check-btn{background:var(--accent);color:var(--text-inverse);border-radius:20px;margin-bottom:24px;padding:8px 20px;font-size:14px;font-weight:600;transition:opacity .15s}.about-check-btn:active{opacity:.8}.about-divider{background:var(--border);height:1px;margin-bottom:24px}.about-copyright{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.5}.about-license{color:var(--text-secondary);text-align:left;font-size:12px;line-height:1.6}.about-license p{margin:0 0 12px}.about-license a{color:var(--accent);text-decoration:none}.about-license a:active{text-decoration:underline}.about-source{text-align:center;margin-top:8px}.alert-root{z-index:9999;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.alert-overlay{-webkit-backdrop-filter:blur(4px);background:#00000061;animation:.2s cubic-bezier(.22,1,.36,1) alertFadeIn;position:absolute;inset:0}.alert-overlay-sepia{background:#5b463659}.alert-overlay-dark{background:#0000008c}.alert-overlay-custom{background:#00000073}@keyframes alertFadeIn{0%{opacity:0}to{opacity:1}}@keyframes alertDialogIn{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.alert-dialog{background:#fff;border-radius:16px;outline:none;width:min(320px,85vw);animation:.24s cubic-bezier(.22,1,.36,1) alertDialogIn;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000040,0 4px 16px #0000001f}.alert-dialog-sepia{background:#f4ecd8;box-shadow:0 20px 60px #5b46364d,0 4px 16px #5b463626}.alert-dialog-dark{background:#2c2c2e;box-shadow:0 20px 60px #00000080,0 4px 16px #0000004d}.alert-dialog-custom{background:#fff;box-shadow:0 20px 60px #0000004d,0 4px 16px #00000026}.alert-header{text-align:center;padding:20px 20px 8px}.alert-header span{color:#1d1d1f;letter-spacing:.2px;font-size:17px;font-weight:600}.alert-dialog-sepia .alert-header span{color:#5b4636}.alert-dialog-dark .alert-header span{color:#f5f5f7}.alert-dialog-custom .alert-header span{color:#1d1d1f}.alert-body{text-align:center;padding:8px 20px 20px}.alert-body p{color:#6e6e73;word-break:break-word;margin:0;font-size:15px;line-height:1.5}.alert-dialog-sepia .alert-body p{color:#5b4636cc}.alert-dialog-dark .alert-body p{color:#8e8e93}.alert-dialog-custom .alert-body p{color:#6e6e73}.alert-footer{border-top:.5px solid #78788026;display:flex}.alert-dialog-sepia .alert-footer{border-top-color:#5b463626}.alert-dialog-dark .alert-footer{border-top-color:#ffffff1a}.alert-dialog-custom .alert-footer{border-top-color:#00000014}.alert-btn{color:#007aff;letter-spacing:.2px;background:0 0;flex:1;padding:16px;font-size:16px;font-weight:600;transition:background .14s,transform 80ms}.alert-btn:active{background:#007aff1a;transform:scale(.98)}.alert-btn-sepia{color:#8b6914}.alert-btn-sepia:active{background:#8b69141f}.alert-btn-dark{color:#0a84ff}.alert-btn-dark:active{background:#0a84ff26}.alert-btn-custom{color:#007aff}.alert-btn-custom:active{background:#007aff1a}.alert-btn-cancel{color:#6e6e73;letter-spacing:.2px;background:0 0;border-right:.5px solid #78788026;flex:1;padding:16px;font-size:16px;font-weight:500;transition:background .14s,transform 80ms}.alert-btn-cancel:active{background:#0000000d;transform:scale(.98)}.alert-dialog-sepia .alert-btn-cancel{color:#5b4636b3;border-right-color:#5b463626}.alert-dialog-sepia .alert-btn-cancel:active{background:#8b691414}.alert-dialog-dark .alert-btn-cancel{color:#8e8e93;border-right-color:#ffffff1a}.alert-dialog-dark .alert-btn-cancel:active{background:#ffffff0f}.alert-dialog-custom .alert-btn-cancel{color:#6e6e73;border-right-color:#00000014}.alert-dialog-custom .alert-btn-cancel:active{background:#0000000d}.alert-btn-danger{font-weight:600;color:#ff3b30!important}.alert-btn-danger:active{background:#ff3b301f!important}.alert-dialog-sepia .alert-btn-danger{color:#c0392b!important}.alert-dialog-sepia .alert-btn-danger:active{background:#c0392b1f!important}.alert-dialog-dark .alert-btn-danger{color:#ff453a!important}.alert-dialog-dark .alert-btn-danger:active{background:#ff453a26!important}.alert-footer-confirm{display:flex}.alert-footer-confirm .alert-btn{flex:1}.bookshelf{background:var(--bg-primary);flex-direction:column;width:100%;height:100%;display:flex}.shelf-header{padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));background:var(--blur-bg);-webkit-backdrop-filter:saturate(180%)blur(24px);border-bottom:.5px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.shelf-header h1{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.shelf-header .icon-btn{width:40px;height:40px;color:var(--text-primary);border-radius:8px;justify-content:center;align-items:center;transition:background .15s;display:flex}.shelf-header .icon-btn:active{background:var(--accent-hover)}.shelf-content{-webkit-overflow-scrolling:touch;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.shelf-loading{color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 20px;display:flex}.shelf-loading .spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.shelf-loading p{margin:0;font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.empty-icon{margin-bottom:16px;font-size:64px}.empty-state p{color:var(--text-secondary);margin:4px 0}.empty-hint{font-size:14px;margin-top:8px!important}.empty-import-btn{background:var(--accent);color:var(--text-inverse);border-radius:24px;align-items:center;gap:8px;margin-top:28px;padding:12px 24px;font-size:15px;font-weight:600;transition:opacity .15s,transform .15s;display:inline-flex}.empty-import-btn:active{opacity:.85;transform:scale(.97)}@media (width>=768px){.empty-import-btn:hover{opacity:.9}}.book-grid{grid-template-columns:repeat(3,1fr);gap:20px 16px;display:grid}@media (width>=768px){.book-grid{grid-template-columns:repeat(4,1fr);gap:24px 20px}}@media (width>=1024px){.shelf-content{padding:24px 32px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.book-grid{grid-template-columns:repeat(6,1fr);gap:28px 24px}}@media (width>=1440px){.shelf-content{padding:32px 48px;padding-bottom:calc(32px + env(safe-area-inset-bottom))}.book-grid{grid-template-columns:repeat(8,1fr);gap:32px 28px}}.book-card{cursor:pointer;flex-direction:column;gap:8px;display:flex;position:relative}.book-card:active .book-card-cover{transform:scale(.96)}.book-card-cover{aspect-ratio:2/3;box-shadow:var(--shadow-md);background:var(--bg-card);border-radius:8px;justify-content:center;align-items:center;transition:transform .15s;display:flex;overflow:hidden}.book-card-cover-img{object-fit:cover;width:100%;height:100%;display:block}.book-card-text{color:#fff;text-shadow:0 1px 3px #0000004d;letter-spacing:1px;text-align:center;word-break:break-all;padding:0 8px;font-size:22px;font-weight:600}@media (width>=768px){.book-card:hover .book-card-cover{transform:scale(1.02)}}.book-card-add .book-card-cover{background:var(--bg-card);border:2px dashed var(--border);box-shadow:none}.book-card-add-icon{color:var(--text-tertiary);font-size:36px;font-weight:300}.book-card-info{flex-direction:column;gap:4px;display:flex}.book-card-title{color:var(--text-primary);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:500;line-height:1.3;display:-webkit-box;overflow:hidden}.book-card-progress{align-items:center;gap:6px;display:flex}.book-card-progress-track{background:var(--border);border-radius:2px;flex:1;height:3px;overflow:hidden}.book-card-progress-bar{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.book-card-progress span{color:var(--text-tertiary);text-align:right;min-width:28px;font-size:11px}.book-card-delete{width:24px;height:24px;color:var(--text-tertiary);background:var(--bg-card);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 1px 4px #0000001f}.book-card-delete:active{background:var(--danger);color:#fff}@media (width>=768px){.book-card-delete:hover{background:var(--danger);color:#fff}}.app-container{width:100%;height:100%;position:relative;overflow:hidden}.app-shelf-layer{z-index:1;position:absolute;inset:0}.app-reader-overlay{z-index:10;will-change:transform, opacity;transition:transform .32s cubic-bezier(.32,.72,0,1),opacity .28s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.app-reader-overlay.app-reader-hidden{opacity:0;pointer-events:none;transform:translate(100%)}.app-reader-overlay.app-reader-visible{opacity:1;pointer-events:auto;transform:translate(0)}@keyframes readerEnter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes readerExit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.reader-initial-loading{color:#6e6e73;z-index:100;background:#ffffffe6;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;inset:0}[data-theme=dark] .reader-initial-loading{color:#8e8e93;background:#1c1c1ee6}[data-theme=sepia] .reader-initial-loading{color:#5b4636;background:#f4ecd8e6}[data-theme=custom] .reader-initial-loading{color:#6e6e73;background:#ffffffe6}
