Решение же на поверхности.
Нужно указать параметр min-width для #sidebar и .main, чтобы не сжималось в ноль, а до каких-то разумных пределов.
После этого уже как минимум, на мобилах смотрибельно будет.
Ну а если уж доводить до ума мобильную версию, то надо брать media queries и после определенной ширины отменять float у обоих классов, указанных выше.
Для большей крутости можно для мобил кастомизировать меню с помощью superfish.js