Что не так?

   <meta charset="utf-8">
</head>
<body>
    <table>
    <caption>Посещения по городам</caption>
        <tr>
            <th>Город</th>
            <th>Посещения</th>
            <th>Страниц</th>
            <th>Время</th>
        </tr>
        <tr>
            <td>СПБ</td>
            <td>199</td>
            <td>18,02</td>
            <td>00:13:45</td>
        </tr>
        <tr>
            <td>Москва</td>
            <td>69</td>
            <td rowspan="2">нет данных</td>
            <td>00:00:44</td>
        </tr>
        <tr>
            <td>Киев</td>
            <td>5</td>
            <td>00:18:07</td>
        </tr>
        <tr>
            <td colspan="3">Всего посещений</td>
            <td>273<td>
        </tr>
    </table>
</body>

<================= CSS ================>

body {
width: 350px;
margin: 30px;
padding: 0 10px;
font-size: 14px;
font-family: Arial, sans-serif;
}

caption{
border-collapse:collapse;
caption-side:bottom;
text-align:left;
}
table{
border-collapse:collapse;
}
th{
border-collapse:collapse;
padding:10px;
border-collapse:collapse;
border-bottom:2px solid black;
}
td{
border-collapse:collapse;
padding:10px;
border:1px solid #ccc;

Свойство border-collapse:collapse; задается единожды для table. Все остальные убирайте. И закройте последний тег td.

Сделал по-другому, не могу понять в чем теперь ошибка. Подскажите, пожалуйста

Не надо менять стили у body. Margin: 30px; там написано не было.