15/28 100%

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

body {
width: 280px;
min-height: 280px;
padding: 10px;
font-family: “Arial”, sans-serif;
font-size: 14px;
line-height: 1.4;
background: #ecf0f1;
}

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

.main-menu li ul {
padding: 0;
margin: 0;
list-style: none;
border-bottom: 2px solid #2c3e50;
}

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

.main-menu li ul a {
padding: 5px 15px;
border: 0px;
background-color: #ffffff;
color: #2980b9;
text-decoration: underline;
}

.main-menu li ul {
padding: 10px 0px;
background-color: #ffffff;
}

.main-menu>.active>a {
border-bottom: 2px solid #2c3e50;
background-color: #1abc9c;
}

.main-menu li a:hover {
background-color: #1abc9c;
}

.main-menu li ul a:hover {
background-color: #ffffff;
}

Повторяетесь:

падинг и марджин действительно лишние.
Но почему тогда list-style: none; который у родителя не действует на потомков (подменю)?

Создайте правило просто для ul. Тогда стили будут касаться всех списков.

спасибо, Инеска!