*{box-sizing:border-box;margin:0;padding:0}body{color:#eee;background:#111;font-family:system-ui,-apple-system,sans-serif}.app{max-width:1200px;margin:0 auto;padding:2rem 1rem}header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:2rem;display:flex}header h1{font-size:1.5rem}header .count{color:#888;font-size:.9rem}header input{color:#eee;background:#1a1a1a;border:1px solid #333;border-radius:6px;width:260px;margin-left:auto;padding:.5rem .75rem;font-size:.9rem}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.book{cursor:pointer;background:#1a1a1a;border-radius:8px;gap:.75rem;padding:.75rem;transition:background .15s;display:flex}.book:hover{background:#222}.book img{object-fit:cover;border-radius:4px;flex-shrink:0;width:64px;height:96px}.no-cover{color:#666;background:#333;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:96px;font-size:1.5rem;display:flex}.info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.info strong{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;overflow:hidden}.subtitle{color:#999;font-size:.8rem}.author{color:#aaa;font-size:.85rem}.details{color:#999;flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.8rem;display:flex}.isbn{font-family:monospace;font-size:.75rem}.synopsis{max-height:120px;line-height:1.4;overflow-y:auto}
