Если у последнего пункта делаю отступ 35, то он перемещается на новую строку. Как исправить? Я увеличил ширину body на 1px, и тогда все получается. Но должно же быть другое решение
Намудрили с отступами. Пишете margin с каждой стороны, хотя в данном случае отрицательные имеют смысл только если они горизонтальные.
Размеры пунктов меню - это размеры ссылок. Тогда при отрицательном отступе ширина пункта меню уменьшаться не будет.