.hub-library{width:100%;max-width:900px;margin:0 auto;padding:0 24px}.library-new{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;min-height:40px;border:1px solid var(--border-strong);border-radius:8px;color:var(--text-primary);background:var(--surface-1);text-decoration:none;cursor:pointer}.library-new:hover{border-color:var(--accent)}.library-new-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);border-color:var(--btn-primary-border)}.hub-library .book-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;justify-content:start;gap:28px;padding:0;transition:none}.hub-library .book-card{aspect-ratio:7/8;min-height:240px;max-height:300px;border-color:var(--border-strong);border-radius:5px 12px 12px 5px;padding:24px;justify-content:center;overflow:visible;box-shadow:0 2px 5px rgba(0,0,0,.07)}.hub-library .book-card:before{display:none}.hub-library .book-card:hover{box-shadow:0 4px 10px rgba(0,0,0,.1)}.hub-library .library-book-title{text-align:center;font-family:var(--font-serif);font-size:var(--text-2xl);width:100%;margin:0;line-height:1.15;font-weight:500;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.library-book-title-trigger{display:block;width:100%;transform:translateY(-16px)}.library-book-meta{position:absolute;bottom:24px;left:24px;right:24px;text-align:center;color:var(--text-muted)}.library-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}.library-card-menu{position:absolute;top:10px;right:10px;z-index:2}.library-menu-trigger{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.library-menu-trigger:hover{background:var(--hover-bg);color:var(--text-primary)}.library-menu-popup{position:absolute;top:36px;right:0;min-width:165px;padding:5px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-1);box-shadow:0 4px 12px rgba(0,0,0,.12)}.library-menu-popup button{display:flex;align-items:center;gap:8px;width:100%;padding:9px;border:0;border-radius:4px;background:transparent;color:var(--danger-text);cursor:pointer}.library-menu-popup button:hover{background:var(--hover-bg)}.library-empty{text-align:center;padding:90px 24px 120px}.library-empty p{margin:16px auto 28px;color:var(--text-secondary);max-width:400px}.library-empty-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.hub-library a:focus-visible,.hub-library button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}@media(max-width:900px){.hub-library .book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.hub-library .book-card{padding:16px;min-height:220px}}@media(prefers-reduced-motion:reduce){.hub-library .book-card{transition:none}}.hub-library-heading{font-family:var(--font-serif);font-weight:500;color:var(--text-primary);margin:0 0 24px}.hub-library .hub-create-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;background:transparent;border:1.5px dashed var(--border-strong);box-shadow:none;color:var(--text-secondary);font:inherit;text-align:center;text-decoration:none;cursor:pointer}.hub-library .hub-create-card:not(.dragging):hover{transform:none;background:transparent;border-color:var(--accent);color:var(--text-primary);box-shadow:none}.hub-library .hub-create-card:disabled{cursor:default}.hub-create-card__icon{color:var(--text-muted);transition:color .14s ease}.hub-create-card:hover .hub-create-card__icon{color:var(--text-secondary)}.hub-create-card__label{font-size:var(--text-sm);font-weight:500}.hub-create-card__sub{font-size:var(--text-xs);color:var(--text-muted)}.hub-library .hub-create-card--locked:not(.dragging):hover{border-color:var(--border-strong);color:var(--text-secondary)}.hub-create-card--locked:hover .hub-create-card__sub{color:var(--text-link);text-decoration:underline}.hub-create-card__spinner{animation:hub-create-spin 1s linear infinite}@keyframes hub-create-spin{to{transform:rotate(1turn)}}.hub-library .hub-create-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.hub-library--mobile{max-width:none;padding:0}.hub-library--mobile .hub-library-heading{font-size:var(--text-2xl);margin:4px 0 16px}.hub-library--mobile .book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:none}.hub-library--mobile .book-card{aspect-ratio:3/4;min-height:0;max-height:none;padding:14px}.hub-library--mobile .library-book-title{font-size:var(--text-lg)}.hub-library--mobile .library-book-title-trigger{transform:translateY(-10px)}.hub-library--mobile .library-book-meta{left:12px;right:12px;bottom:14px}.hub-library--mobile .library-description{display:none}.hub-library--mobile .library-card-menu{top:4px;right:4px}.hub-library--mobile .hub-create-card{gap:6px;padding:14px}.hub-library--mobile .book-card:active:not(.dragging){transform:scale(.98)}@media(hover:none){.hub-library .book-card:not(.dragging):hover{transform:none}}@media(prefers-reduced-motion:reduce){.hub-create-card__spinner{animation:none}.hub-create-card__icon{transition:none}}