table {
    border-collapse: collapse;
    border: 2px solid gray;
}

tr:nth-child(even){background-color: #eef;}

td {
    padding: .5rem;
}

thead {
    font-weight: bold;
    letter-spacing: 1px;
    text-align: center;
}

tr.error {
    border: red dashed 2px;
    box-sizing: border-box;
}

td.error {
    column-span: 3;
    color: #911
}

tr.selected {
    outline: 2px solid #4b4bb6;
    background-color: #cee2ff;
}

.edit-enabled tbody tr:hover:not(.selected) {
    outline: 1px solid cadetblue;
    background-color: #c2e3e4;
}

tbody {
    counter-reset: rowNumber;
}

tbody tr {
    counter-increment: rowNumber;
}

tbody tr td:first-child::before {
    content: counter(rowNumber);
}
