Your CSS works as expected, in a way that the widths of the table heads and cells are correct. However:
th
by default have text-align: center applied, while the td
element has not.
So you should add either to the td or th the same text alignment. E.g.:
th {
text-align: left;
}