I think there is no CSS based solution for this, unless you can add a width, maybe a different width to each li item.
You already have a change in bg color on hover and selected states, I suggest you drop the font-weight change. Visually it's not a big change, and in terms of usability you already have the bg color change that I think is enough.