body {
	display: flex;
	flex-direction: column;
	align-items: center;
}

* {
	padding: 0;
	margin: 0;
}

.controls {
	display: flex;
	padding: 5px;
}

select {
	font-size: 2rem;
	padding: 5px;
	margin: 5px;
}

table {
	border: 1px solid black;
	text-align: center;
	border-collapse: collapse;
}

thead {
	position: sticky;
	top: 0;
}

.row-label {
	font-weight: bold;
	font-size: 0.8rem;
}

th, td {
	vertical-align: bottom;
	padding: 3px;
	min-width: 50px;
}

th {
	background-color: #333;
	color: #ddd;
	z-index: 10;
}

td {
	background-color: #fff;
	z-index: -1;
}

tr:nth-child(2n+1) td {
	background-color: #eee;
}

td:nth-child(2n) {
	background-color: #eee;
}

tr:nth-child(2n+1) td:nth-child(2n) {
	background-color: #ddd;
}

dt {
	font-weight: bold;
	margin-top: 5px;
}

dl {
	width: 500px;
}

ul {
	padding-left: 20px;
}

td[data-mod="0"],
td[data-mod="-12"],
td[data-mod="12"] {
	width: 200px;
}

td[data-mod="-12"] .row-label {
	position: sticky;
	left: 0;
}

td[data-mod="12"] .row-label {
	position: sticky;
	right: 0;
}
