How do I create a custom Drupal 7 login? On my site there are 3 types of users: 


Public users who do not need to log in
Public users who need to log in in order to access documents (pdfs, excel, etc)
Users who maintain the web site (add, edit, delete content, etc)


I need to have a login form on my web site for the public users to log in to access what are otherwise "hidden" documents. These users will be public users so they will not have the ability to access anything related to the Drupal administration, such as adding content. I don't see how I can use Drupal's built-in Users system by adding a new role and modifying its permissions, especially since permissions are inherited from the authenticated user role.

What's the best way to go about this?
Drupal's administrative permissions are not necessarily linked to any specific role, and individual permissions can define access to anything from viewing individual content types to administrative functions like creating and editing--they aren't all tied to administrative features. 

While it is true that all authenticated users will inherit permissions from Authenticated User, you can organize your permissions like so:


Anonymous User: (Permissions for users that don't need to log in.)
Authenticated User: (Remove all permissions except those needed to view documents)
Administrator (new role): (Permissions necessary to administer the site)


Then, give the Administrator role only to the accounts used to administer the site. Nothing says you have to give that role to every Authenticated User. Administrators will be able to view documents (as with any other authenticated user), though this sounds perfectly reasonable if I understand your use case.

Additional contributed modules allow for more fine-tuning over access control. For instance, the Field Permissions module may be useful if the files you're looking to distribute have been attached to nodes via File fields; this will allow you to determine access control at the field level if necessary.