23/23 Не выравнивает правый и левый столбцы

Помогите пожалуйста, не понимаю почему не работает центровка.

<html>
  <head>
    <meta charset="utf-8">
    <title>Испытание: итоговая таблица</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1>Итоговая таблица</h1>
<table>
   <tr>
    <th class="st_1">Город</th>
    <th class="st_2">Посещений</th>
    <th class="st_3">%</th>
    </tr>
    <tr>
   <td class="cl1"> СПб</td>
   <td class="cl2"> 199</td>
   <td class="cl3"> 65.12</td>
    </tr>
    <tr class="st_4">
  <td class="cl1">  Москва</td>
  <td class="cl2">  69</td>
  <td class="cl3">  21.3</td>
    </tr>
    <tr>
   <td class="cl1"> Киев</td>
   <td class="cl2"> 5</td>
   <td class="cl3"> 8</td>
    </tr>
    <tr class="st_5">
   <td class="cl1"  colspan="2">Посещений за весь период</td>
   <td class="cl3"> 273</td>
    </tr>
</table>
  </body>
</html>

body {
width: 350px;
margin: 0;
padding: 0 10px;

font-size: 14px;
font-family: “Arial”, sans-serif;
}
table {
border-collapse: collapse;
/border: 2px solid black;/
}

td {
padding: 10px;
padding-right: 30px;
border-top: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}

th {
padding: 10px;
border-top: 1px solid black;
border-bottom: 1px solid black;
width: 33%;
color: white;
}
.st_1{
text-align: left;
background-color: darkcyan;
}
.st_2{
text-align: center;
background-color: lightblue;
}
.st_3{
text-align: right;
background-color: darkcyan;
}
.st_4{
background-color: lightyellow;
}
.st_5{
background-color: lightyellow;
}
.cl1{
vertical-align: left;
}
.cl2{
vertical-align: center;
}
.cl3{
vertical-align: right;
}

Вертикальное выравнивание здесь не нужно.
Тем более, что таких значений свойств в спецификации нет.
https://webref.ru/css/vertical-align


td {
padding: 10px;
padding-right: 30px;
border-top: 1px solid lightgray;
border-bottom: 1px solid lightgray;
}

Спасибо большое!!!