Испытание: Итоговая таблица

Я пошёл вообще в какие то лютые дебри,но это сработало. Вот теперь хочу понять где я мог оптимизировать данный код, потому что уверен что это вообще не так делается

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Испытание: итоговая таблица</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1>Итоговая таблица</h1>
<table>
  <tr>
    <tr>
    <th class="city">Город</th>       <th class="pos">Посещений</th>        <th class="last">%</th> 
    </tr>
    <tr class="spb">
   <td> СПб</td>         <td class="center1"> 199</td>              <td class="last2">65.12</td>
   </tr>
   <tr class="msk">
   <td> Москва</td>      <td class="center2"> 69 </td>              <td class="last3">21.3</td> 
   </tr>
   <tr>
    <td>Киев</td>        <td class="center3"> 5 </td>              <td class="last4"> 8</td> 
    </tr>
    <tr class="ob">
   <td colspan="2"> Посещений за весь период </td>    <td class="last5">273</td> 
   </tr>
  </tr>
</table>
  </body>
</html>

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

font-size: 14px;
font-family: “Arial”, sans-serif;
}
table{
width:100%;
height: auto;
border-collapse: collapse;
}
th{
background-color:darkcyan;
color:white;
height:33px;
border-bottom: 1px solid black;
border-top: 1px solid black;
padding-left: 10px;
padding-right: 10px;
}
.city{
text-align: left;
width: 97px
}
.last{
text-align: right;
width: 97px

    }
.pos{
  background-color:lightblue;
  
  }

td{
border-bottom: 1px solid lightgray;
height:33px;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 1.8px;
padding-top: 1.8px;

}
.msk{
  background-color:lightyellow;
  }
.ob{
  background-color:lightyellow;
  }
  .last2{
    text-align: right;
    }
  .last3{
    text-align: right;
    }
    .last4{
    text-align: right;
    }
    .last5{
    text-align: right;
    }
    .center1{
      text-align: center;
      }
      .center2{
      text-align: center;
      }
      .center3{
      text-align: center;
      }