.install-banner.svelte-h5ro01{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,#1a3a5c,#0a1628);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -4px 20px #0000004d;z-index:100;gap:12px}.install-text.svelte-h5ro01{font-size:15px;font-weight:700}.install-actions.svelte-h5ro01{display:flex;gap:8px;flex-shrink:0}.install-btn.svelte-h5ro01{padding:8px 16px;background:var(--coral);border-radius:var(--radius-sm);font-weight:700;font-size:14px}.dismiss-btn.svelte-h5ro01{padding:8px 12px;background:#ffffff1a;border-radius:var(--radius-sm);font-weight:600;font-size:14px;opacity:.7}.library.svelte-1uha8ag{height:100%;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.header.svelte-1uha8ag{padding:20px 20px 12px;text-align:center;flex-shrink:0}.header-top.svelte-1uha8ag{display:flex;justify-content:center;align-items:center;gap:12px}.settings-btn.svelte-1uha8ag{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1a;opacity:.6;transition:opacity .2s}.settings-btn.svelte-1uha8ag:active{opacity:1}.title.svelte-1uha8ag{font-size:28px;font-weight:800;letter-spacing:-.5px}.profile-badge.svelte-1uha8ag{display:flex;align-items:center;gap:6px;background:#ffffff26;padding:4px 12px 4px 8px;border-radius:20px;font-size:14px;transition:background .2s}.profile-badge.svelte-1uha8ag:active{background:#ffffff40}.avatar.svelte-1uha8ag{font-size:20px}.subtitle.svelte-1uha8ag{font-size:14px;opacity:.7;margin-top:4px}.category-tabs.svelte-1uha8ag{display:flex;gap:4px;padding:4px 20px 8px;flex-shrink:0}.cat-tab.svelte-1uha8ag{flex:1;padding:8px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;background:#ffffff0f;transition:all .2s;text-align:center}.cat-tab.active.svelte-1uha8ag{background:#ffffff2e}.level-tabs.svelte-1uha8ag{display:flex;gap:8px;padding:8px 20px;overflow-x:auto;flex-shrink:0;scrollbar-width:none}.level-tabs.svelte-1uha8ag::-webkit-scrollbar{display:none}.tab.svelte-1uha8ag{flex-shrink:0;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff1a;transition:all .2s;font-weight:700;font-size:16px}.tab.active.svelte-1uha8ag{background:var(--coral);transform:scale(1.1);box-shadow:0 4px 12px #ff6b6b66}.tab.locked.svelte-1uha8ag{opacity:.3;cursor:default}.level-label.svelte-1uha8ag{text-align:center;font-size:13px;opacity:.6;padding-bottom:8px;flex-shrink:0}.books-grid.svelte-1uha8ag{flex:none;overflow:visible;padding:0 16px 24px;display:grid;gap:16px;align-content:start;align-items:start}.shelf-section.svelte-1uha8ag{padding-top:4px}.shelf-title.svelte-1uha8ag{padding:8px 20px 0;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.75}.book-card.svelte-1uha8ag{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;background:#ffffff14;transition:transform .2s,box-shadow .2s}.book-card.svelte-1uha8ag:active{transform:scale(.96)}.book-card.read.svelte-1uha8ag{box-shadow:0 0 0 2px #5eb8e066}.book-card.completed.svelte-1uha8ag{box-shadow:0 0 0 2px #4ade80bf}.cover-wrap.svelte-1uha8ag{aspect-ratio:2/3;overflow:hidden;background:var(--ocean-mid);position:relative}.info-btn.svelte-1uha8ag{position:absolute;top:8px;left:8px;width:24px;height:24px;border-radius:50%;background:#0006;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:2}.cover.svelte-1uha8ag{width:100%;height:100%;object-fit:contain}.read-badge.svelte-1uha8ag{position:absolute;top:8px;right:8px;min-width:24px;height:24px;background:var(--ocean-surface);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;padding:0 6px;box-shadow:0 2px 6px #0000004d}.read-badge.completed.svelte-1uha8ag{background:#4ade80;color:#0f2847;padding:0 7px}.book-info.svelte-1uha8ag{padding:8px 10px;display:flex;flex-direction:column;gap:2px}.book-title.svelte-1uha8ag{font-size:13px;font-weight:700;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.page-count.svelte-1uha8ag{font-size:11px;opacity:.5}.loading.svelte-1uha8ag{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.wave.svelte-1uha8ag{width:60px;height:60px;border:4px solid var(--ocean-surface);border-radius:50%;border-top-color:transparent;animation:svelte-1uha8ag-spin 1s linear infinite}@keyframes svelte-1uha8ag-spin{to{transform:rotate(360deg)}}.empty.svelte-1uha8ag{flex:1;display:flex;align-items:center;justify-content:center;opacity:.5}.modal-overlay.svelte-1uha8ag{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal.svelte-1uha8ag{background:linear-gradient(180deg,#1a3a5c,#0f2847);border-radius:var(--radius);padding:24px;max-width:420px;width:100%;display:flex;flex-direction:column;gap:12px}.modal-desc.svelte-1uha8ag{font-size:14px;opacity:.7}.modal-actions.svelte-1uha8ag{display:flex;gap:12px}.btn-primary.svelte-1uha8ag,.btn-cancel.svelte-1uha8ag{flex:1;padding:12px;border-radius:var(--radius-sm);font-weight:700;font-size:15px}.btn-primary.svelte-1uha8ag{background:var(--coral)}.btn-cancel.svelte-1uha8ag{background:#ffffff1a}.gate-row.svelte-1uha8ag{display:flex;align-items:center;gap:12px;justify-content:center}.gate-problem.svelte-1uha8ag{font-size:20px;font-weight:700}.gate-input.svelte-1uha8ag{width:80px;padding:10px;text-align:center;background:#ffffff1a;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.15);color:#fff;font-size:18px;font-weight:700;outline:none}.gate-error.svelte-1uha8ag{font-size:13px;color:var(--coral)}.info-grid.svelte-1uha8ag{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.info-grid.svelte-1uha8ag div:where(.svelte-1uha8ag){background:#ffffff14;border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;gap:2px;font-size:12px}.info-grid.svelte-1uha8ag strong:where(.svelte-1uha8ag){font-size:14px}.attribution-block.svelte-1uha8ag{max-height:180px;overflow-y:auto;background:#ffffff14;border-radius:var(--radius-sm);padding:10px;font-size:12px;line-height:1.4;text-align:left}.attribution-heading.svelte-1uha8ag{font-weight:700;margin-bottom:6px}.attribution-line.svelte-1uha8ag{overflow-wrap:anywhere}
