Испытание: многоуровневое меню 15/28 и выпадающее меню 28/28 100% на оценку

Получился такой код, если есть замечания или советы по улучшению, буду рад почитать.

html,
body {
  margin: 0;
  padding: 0;
}

body {
  width: 280px;
  min-height: 280px;
  padding: 10px;

  font-size: 14px;
  line-height: 1.4;
  font-family: "Arial", sans-serif;

  background-color: #ecf0f1;
}

.main-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 200px;
}

.main-menu ul {
  list-style: none;
  padding: 10px;
  border-bottom: 2px solid #2c3e50;
  background-color: #fff;
}

.main-menu > li > a {
  display: block;
  background-color: #2980b9;
  padding: 10px 15px;
  border-bottom: 2px solid #2c3e50;
  color: white;  
  text-decoration: 0;
}

.main-menu > .active > a{
  background-color: #1abc9c;  
}

.main-menu ul a {
  display: block;
  color: #2980b9;
  padding: 5px;
}

28/28

.main-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 200px;
  background-color: #2980b9;
}

.main-menu .sub-menu {
  list-style: none;  
}

.main-menu  a {
  display: block;
  text-decoration: none;
  color: white;
  padding: 10px;
  border-bottom: 2px solid #2c3e50;
  padding-left: 15px;
}

.main-menu > li {
  position: relative;
}

.main-menu .open {
  background-color: #1abc9c;  
}

.main-menu .sub-menu {
  width: 200px;
  padding: 0;
  position: absolute;
  z-index: 10;
  background-color: #1abc9c;
  top: 0;
  left: 180px;
}

.main-menu .sub-menu a{
  border-bottom: 2px solid #2ecc71;  
}