Почему не работает margin:0 auto; }?
потому что не автоМОБИЛЬ,
а auto
Во-первых, опечатка, а во-вторых, вы задали ширину 100% (при такой ширине займёт всё доступное пространство родительского элемента, и выровняться в нём по центру не сможет).