На ваш вопрос нет
правильного ответа.
Логика определения того, нужно ли выносить общие стили в какой-то общий селектор проста:
если это действительно общие стили, то есть изменять их в будущем тоже нужно будет для всех селекторов разом, то лучше написать их так, как во втором варианте;
если это просто совпадение (например, какие-то одинаковые отступы у двух элементов), то лучше правила продублировать.
Есть и лучший вариант - использовать препроцессор, например,
SCSS, тогда можно будет вынести общие правила в миксин или в переменные или просто наследовать селекторы.
Вот пара примеров соглашений о стиле:
www.phpied.com/css-coding-conventions
google-styleguide.googlecode.com/svn/trunk/htmlcss...
Вообще, по запросу "
css styleguide" много всего находится, выбирайте соглашение по вкусу.
По поводу порядка объявления селекторов, рекомендую почитать ответы к
этому вопросу.