html, body {
	overscroll-behavior-x: none;
}

/* Game list and thumbnails */
.game-thumbnail {
	display: inline-block;
	width: 3rem;
	height: 3rem;
	border: 1px solid #cc9;
	position: relative;
}
.game-thumbnail::before {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 1em;
	height: 1em;
}
.game-thumbnail.voice-chat-enabled::before {
	content: '\1F3A4';
}
.game-thumbnail > span {
	display: table;
	width: 100%;
	height: 100%;
	background: #ecedba;
}
.game-thumbnail > span > span {
	display: table-row;
}
.game-thumbnail > span > span > span {
	display: table-cell;
}
.game-thumbnail > span > span:nth-child(odd) > span:nth-child(odd):not([class^=p]),
.game-thumbnail > span > span:nth-child(even) > span:nth-child(even):not([class^=p]) {
	background: #fbf8cd;
}
	
.game-thumbnail > span > span > span.p1 {
	background: black;
}
.game-thumbnail > span > span > span.p2,
.game-thumbnail > span > span > span.p0 {
	background-color: #c12;
}
.game-thumbnail > span > span > span.p3 {
	background-color: green;
}
.game-thumbnail > span > span > span.p4 {
	background-color: gold;
}

.game-list {
	list-style: none;
	margin-left: 0;
}
.game-list li .game-thumbnail {
	float: left;
	margin: 0 0.5em 0.5em 0;
}
.game-list li + li {
	margin-top: 0.5em;
}

.game-list li::after {
	content: '';
	display: block;
	clear: both;
}

.game-list .locked {
	opacity: 0.3;
	filter: saturate(0);
}

/* In-game page structure */
#board_container {
	width: 100%;
	overflow: hidden;
}
#board_canvas {
	width: 100%;
	display: block;
}
#board_toolbar {
	text-align: center;
	background: #369;
	position: relative;
	z-index: 3;
}
#board_toolbar button {
	background-color: #69c;
}

.game-board-tile {
	display: inline-block;
	color: white;
	background: black;
	box-shadow: 0.05em 0.05em 0.2em rgba(0, 0, 0, 0.4);
	border-radius: 0.2em;
	width: 1.52em;
	height: 1.52em;
	font-size: 1.15em;
	line-height: 1.45em;
	box-sizing: border-box;
	text-align: center;
	vertical-align: middle;
	text-transform: uppercase;
	margin: 0.2em;
	z-index: 1;
	user-select: none;
	border-radius: 100%;
}

.game-player-list {
	list-style: none;
	margin-left: 0;
}
.game-player-list li {
	margin: 0 0 1em 0;
}
.game-player-list .game-board-tile {
	vertical-align: top;
}
.game-player-list .name {
	margin-left: 0.5em;
}
.game-player-list .current .name,
.game-player-list .winner .name {
	font-weight: bold;
}
.game-player-list .score {
	float: right;
	font-size: 0.75em;
}
.game-player-list .score .numerator {
	font-size: 1.33em;
}
.game-player-list .score .separator,
.game-player-list .score .denominator {
	display: none;
}
.game-player-list .score.limited .separator,
.game-player-list .score.limited .denominator {
	display: inline;
}
.game-player-list .progress {
	margin-left: 2.75em;
	margin-top: -0.5em;
	display: block;
	height: 0.3em;
	background: #eee;
	position: relative;
	z-index: 0;
}
.game-player-list .progress .progress-bar {
	display: block;
	height: 100%;
	background-color: #369;
	position: absolute;
}
.game-player-list .winning .progress .progress-bar {
	background-color: #6c6;
}
.game-player-list .progress .progress-bar-change {
	display: block;
	height: 100%;
	background-color: #999;
	position: absolute;
}
.game-player-list .progress .progress-bar-change-value {
	position: absolute;
	line-height: 1.375em;
	left: 100%;
	top: 50%;
	background: #999;
	font-size: 0.8em;
	height: 1.55em;
	width: 1.55em;
	text-align: center;
	border-radius: 100%;
	margin-left: -0.775em;
	margin-top: -0.775em;
	z-index: 1;
}
.game-player-list .progress .progress-bar-change-value:empty {
	display: none;
}
.game-player-list .progress .progress-bar-change.increase,
.game-player-list .progress .progress-bar-change label {
	background-color: #3c6;
}
.game-player-list .progress .progress-bar-change.decrease,
.game-player-list .progress .progress-bar label {
	background-color: #f66;
}

.game-player-list li.you .name::after {
	content: ' (You)';
}
.header-toolbar .game-player-list {
	display: none;
	white-space: nowrap;
	margin: 0.25rem;
	border-radius: 0.5rem;
	z-index: 3;
	cursor: pointer;
}
.header-toolbar .game-player-list li {
	display: inline-block;
	white-space: normal;
	vertical-align: bottom;
	position: relative;
	margin: 0;
	border: 2px solid transparent;
	border-radius: 0.35em;
}
.header-toolbar .game-player-list li.current {
	border-color: white;
	background-color: rgba(255, 255, 255, 0.2);
}
.header-toolbar .game-player-list.shown li {
	border-color: transparent;
	background-color: transparent;
}
.header-toolbar .game-player-list li .game-board-tile {
	margin: 0.1em;
}
.header-toolbar .game-player-list li.score-threshold,
.header-toolbar .game-player-list li.round-counter {
	font-weight: normal;
	display: none;
}
.header-toolbar .game-player-list li.score-threshold.limited,
.header-toolbar .game-player-list li.round-counter.limited {
	display: inline-block;
}
	
.header-toolbar .game-player-list li.score-threshold,
.header-toolbar .game-player-list li.score-threshold * {
	
}
.header-toolbar .game-player-list li .separator {
	font-size: 1.35em;
}
.header-toolbar .game-player-list li .numerator,
.header-toolbar .game-player-list li .denominator {
	font-size: 1em;
	position: relative;
}
.header-toolbar .game-player-list li .numerator {
	right: -0.2em;
	vertical-align: top;
}
.header-toolbar .game-player-list li .denominator {
	left: -0.2em;
	vertical-align: bottom;
}
.header-toolbar .game-player-list .name,
.header-toolbar .game-player-list .score {
	display: none;
}
.header-toolbar .game-player-list .progress {
	width: 0;
	height: 0;
	margin: 0;
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
}
.header-toolbar .game-player-list .progress .progress-bar-change-value {
	margin: 0;
}
.header-toolbar .game-player-list .progress-bar-change-value {
	margin: 0;
	top: auto;
	left: auto;
	bottom: -0.3em;
	right: -0.3em;
	width: 1.5em;
	height: 1.5em;
	line-height: 1.5em;
	font-size: 0.6em;
}

.header-toolbar .game-player-list {
	display: block;
}
.header-toolbar .game-player-list::before {
	content: '\25BC';
	display: block;
	position: absolute;
	left: -1rem;
	top: 1rem;
	width: 1rem;
	height: 1rem;
	line-height: 1rem;
	font-size: 0.75rem;
	color: white;
}
.header-toolbar .game-player-list.shown::before {
	content: '\25B2';
}
.header-toolbar .game-player-list.shown {
	background: white;
	color: black;
	padding-bottom: 1rem;
}
.header-toolbar .game-player-list.shown .progress {
	display: none;
}
#game_player_list_container {
	display: none;
	position: absolute;
	z-index: 2;
	background: white;
	width: calc(100% - 1rem);
	max-width: 20rem;
	right: 0.25rem;
	border-radius: 0.5rem 0rem 0.5rem 0.5rem;
	box-shadow: 0 1rem 1rem rgba(0, 0, 0, 0.1);
}
#game_player_list_container .game-player-list li:last-child {
	margin-bottom: 0.5em;
}
#game_player_list_container.shown {
	display: block;
	z-index: 5;
}

#board_status_container {
	background: #369;
	color: white;
	text-align: center;
	padding: 0.5rem 1rem;
	position: relative;
}
@media screen and (max-width: 960px) {
	#board_status_container {
		background-color: #69c;
	}
}
#board_status_container.error {
	background: #903;
	border-radius: 0;
	border: none;
}
#board_status {
	position: relative;
	z-index: 1;
}


#board_timer_container {
	position: absolute;
	inset: 0;
}
#game_tile_move_timer {
	margin: 0 1.5rem 1rem 1.5rem;
	padding: 1rem 0;
}
@media screen and (max-width: 600px) {
	#game_tile_move_timer {
		padding-top: 0.5rem;
		padding-bottom: 0.5rem;
		margin-bottom: 0;
	}
}

#board_timer_container.background #game_tile_move_timer {
	padding: 0;
	margin: 0;
	inset: 0;
	position: absolute;
}

#game_tile_move_timer_bar {
	background: #eee;
	height: 0.5rem;
	position: relative;
	border-radius: 1em;
	overflow: hidden;
}

#board_timer_container.background #game_tile_move_timer_bar {
	background: #1d551b;
	position: absolute;
	height: 100%;
	inset: 0;
	border-radius: 0;
}

#game_tile_move_timer_shade {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 50%;
	background: #369;
}

#board_timer_container.background #game_tile_move_timer_shade {
	background: #339966;
}

#game_tile_move_timer_toolbar {
	text-align: center;
	color: #666;
}
#game_tile_move_timer_toolbar span {
	opacity: 0.3;
	white-space: nowrap;
	display: inline-block;
	margin: 0.5em;
}
@media screen and (max-width: 600px) {
	#game_tile_move_timer_toolbar span {
		margin-top: 0.25em;
		margin-bottom: 0.25em;
	}
}

#board_timer_container.background #game_tile_move_timer_pause,
#board_timer_container.background #game_tile_move_timer_resume {
	left: 0;
}
#board_timer_container.background #game_tile_move_timer_skip {
	right: 0;
}

#game_tile_move_timer.running #game_tile_move_timer_pause,
#game_tile_move_timer.running #game_tile_move_timer_skip,
#game_tile_move_timer.paused #game_tile_move_timer_resume,
#game_tile_move_timer.paused #game_tile_move_timer_skip {
	opacity: 1;
	cursor: pointer;
}
#game_tile_move_timer.running #game_tile_move_timer_pause:hover,
#game_tile_move_timer.running #game_tile_move_timer_skip:hover,
#game_tile_move_timer.paused #game_tile_move_timer_resume:hover,
#game_tile_move_timer.paused #game_tile_move_timer_skip:hover {
	text-decoration: underline;
}

#board_timer_container.background #game_tile_move_timer_toolbar span {
	display: none;
	position: absolute;
	margin: 0;
	width: 3rem;
	font-size: 1.45rem;
	height: 100%;
	overflow: hidden;
	opacity: 1;
	z-index: 1;
	text-indent: 4rem;
	background: transparent no-repeat scroll center center;
	background-size: 2rem 2rem;
}

#board_timer_container.background #game_tile_move_timer_toolbar #game_tile_move_timer_pause { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50"><path d="M25 0A25 25 0 0 0 0 25a25 25 0 0 0 25 25 25 25 0 0 0 25-25A25 25 0 0 0 25 0zM13.962 11.728h7.831v26.545h-7.831zm14.246 0h7.831v26.545h-7.831z" fill="white"/></svg>'); }
#board_timer_container.background #game_tile_move_timer_toolbar #game_tile_move_timer_resume { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50"><path d="M25 0A25 25 0 0 0 0 25a25 25 0 0 0 25 25 25 25 0 0 0 25-25A25 25 0 0 0 25 0zm-7.79 11.727L40.199 25 17.21 38.273z" fill="white"/></svg>'); }
#board_timer_container.background #game_tile_move_timer_toolbar #game_tile_move_timer_skip { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50"><path d="M25 0A25 25 0 0 0 0 25a25 25 0 0 0 25 25 25 25 0 0 0 25-25A25 25 0 0 0 25 0zM13.262 11.728l9.525 12.726V11.728l9.423 12.59v-12.59h3.831v26.545H32.21v-12.59l-9.423 12.59V25.547l-9.525 12.726z" fill="white"/></svg>'); }

#board_timer_container.background #game_tile_move_timer.running #game_tile_move_timer_pause,
#board_timer_container.background #game_tile_move_timer.running #game_tile_move_timer_skip,
#board_timer_container.background #game_tile_move_timer.paused #game_tile_move_timer_resume,
#board_timer_container.background #game_tile_move_timer.paused #game_tile_move_timer_skip {
	display: block;
}

#game_tile_move_timer.paused #game_tile_move_timer_shade {
	animation: 0.3s infinite alternate blink;
}
#game_tile_move_container.other-player.computer #game_tile_move_timer {
	display: block;
	cursor: pointer;
}
@keyframes blink {
	0% { opacity: 0.8; }
	100% { opacity: 0.2; }
}

.dialog.question .dialog-body,
.dialog.answer .dialog-body {
	font-size: 1.25rem;
}
.dialog.question .image-attribution,
.dialog.answer .image-attribution {
	font-size: 0.6em;
	opacity: 0.7;
}
.dialog-container.fixed {
	padding-bottom: 4.5rem;
}

.game-activity-log-description td, th {
	padding-left: 0;
	padding-right: 0;
}
.game-activity-log-description th {
	padding-right: 0.25em;
}