.outer {
    display: table;
    position: absolute;
    height: 100%;
    width: 100%;
}

.middle {
    display: table-cell;
    vertical-align: middle;
}

.inner {
    margin-left: auto;
    margin-right: auto; 
    text-align: center;
    position: relative;
}

#controls {
	display: inline-block;
	margin-top: 10px;
}

#board {
    margin-left: auto;
    margin-right: auto; 
}

#board-body td {
	background-color: #17527c;
	border: 5px solid #17527c;
	width: 50px;
	height: 50px;
}

#board-body .slot {
	margin: 0 auto;
	width: 80%;
	height: 80%;
	border-radius: 50%;
	background-color: #fff;
	box-shadow:  4px  4px 4px rgba(0,0,0,0.2) inset,
				-1px -1px 4px rgba(0,0,0,0.2) inset,
				 2px  2px     rgba(0,0,0,0.1),
				-2px -2px     rgba(0,0,0,0.1);
}

#board-body .player-one .slot {
	background-color: rgba(193,36,36,1.0);
}

#board-body .player-two .slot {
	background-color: rgba(255,216,25,1.0);
}

.do-move:after {
	vertical-align: middle;
	content: '\25BC';
}

#board-head th {
	padding: 5px;
	vertical-align: middle;
	position: relative;
}

#board-head th:before {
	content: '';
	width: 40px;
	height: 40px;
	display: inline-block;
	position: absolute;
	bottom: 40px;
	left: 50%;
	margin-left: -20px;
	border-radius: 50%;
	box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
	opacity: 0.1;
}

.player-one #board-head th:before {
	background-color: rgba(193,36,36,1.0);
}

.player-two #board-head th:before {
	background-color: rgba(255,216,25,1.0);	
}

#board-head th:hover:before {
	opacity: 1;
}

#winner {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #fafafa;
	border: 1px solid #ccc;
	box-shadow: 2px 2px 4px #000;
	padding: 10px 20px;
	opacity: 0.95;
}

#message {
	font-size: 1.5em;
	font-weight: bold;
}

#winner.player-one {
	background-color: rgba(255,232,232,1.0);	
}

#winner.player-two {
	background-color: rgba(255,242,193,1.0);
}

#recentMatchesContainer {
	margin-top: 20px;
}

#recentMatchesList {
	width: 300px;
	height: 150px;
	border: 1px solid #ccc;
	overflow-y: scroll;
	padding: 0;
    margin: 5px auto;
}

#recentMatchesList li {
	list-style: none;
	padding: 5px;
	text-align: center;
	background-color: #eee;
	border: 2px solid #fff;
	cursor: pointer;
}

#recentMatchesList li:hover {
	background-color: #ccc;
}