/* RALLY THE TROOPS - MAIN SITE STYLE */

html {
	image-rendering: -webkit-optimize-contrast; /* try to fix chromium's terrible image rescaling */
	image-rendering: high-quality;
	text-size-adjust: none; /* should disable font boosting - but has no effect ... */
}

* { max-height: 100000px; /* disable chrome's "font boosting" algorithm */ }

:root {
	--font-normal:  "Source Serif", "Georgia", "Noto Emoji", serif;
	--font-small: "Source Serif SmText", "Georgia", "Noto Emoji", serif;
	--font-widget: "Source Sans", "Verdana", "Noto Emoji", sans-serif;

	--drop-shadow: 1px 1px 4px #0004;

	--thin-border: 1px solid black;

	--color-black: black;

	--color-table-active: hsla(55, 100%, 50%, 0.15);
	--color-table-invite: hsla(120, 100%, 50%, 0.15);
}

/* light gray */
:root {
	--color-head: hsl(0, 0%, 85%);
	--color-body: hsl(0, 0%, 95%);
	--color-text: hsl(0, 0%, 100%);

	--color-post-head: hsl(0, 0%, 85%);
	--color-post-body: hsl(0, 0%, 98%);

	--color-table-head: hsl(0, 0%, 85%);
	--color-table-foot: hsl(0, 0%, 90%);
	--color-table-body: hsl(0, 0%, 98%);
	--color-table-stripe: hsl(0, 0%, 96%);

	--color-focus: hsl(210, 40%, 65%);

	--color-blue: hsl(240, 100%, 50%);
	--color-red: hsl(0, 100%, 35%);
	--color-green: hsl(120, 100%, 30%);

	--color-accent: hsl(0, 60%, 40%);
}

/* dark gray */
@media (prefers-color-scheme: dark) {
:root {
	--color-head: hsl(0, 0%, 75%);
	--color-body: hsl(0, 0%, 85%);
	--color-text: hsl(0, 0%, 95%);

	--color-post-head: hsl(0, 0%, 75%);
	--color-post-body: hsl(0, 0%, 90%);

	--color-table-head: hsl(0, 0%, 75%);
	--color-table-foot: hsl(0, 0%, 80%);
	--color-table-body: hsl(0, 0%, 90%);
	--color-table-stripe: hsl(0, 0%, 88%);

	--color-focus: hsl(210, 40%, 60%);

	--color-blue: hsl(240, 100%, 40%);
	--color-red: hsl(0, 100%, 35%);
	--color-green: hsl(120, 100%, 30%);

	--color-accent: hsl(0, 60%, 35%);
}}

/* WIDGETS */

html, input, textarea {
	font-family: var(--font-normal);
	font-size: 16px;
}

button, select, option {
	font-family: var(--font-widget);
	font-size: 16px;
}

input[type="checkbox"], input[type="radio"] {
	margin-right: 7px;
	accent-color: currentcolor;
}

input[type="text"], input[type="password"], input[type="email"], input[type="number"], textarea, select[size] {
	background-color: var(--color-text);
	color: var(--color-black);
	border: var(--thin-border);
	padding: 5px;
	margin: 5px 0;
	max-width: calc(100% - 12px);
	vertical-align: middle;
}

input:focus, textarea:focus, select[size]:focus {
	outline: 2px solid var(--color-focus);
}

button:focus, select:not([size]):focus {
	box-shadow: 0 0 0 3px var(--color-focus);
}

option {
	background-color: var(--color-text);
	color: var(--color-black);
}

button, select:not([size]) {
	margin: 5px 10px 5px 0;
	padding: 1px 10px;
	vertical-align: middle;
	border: 2px solid;

	background-color: gainsboro;
	border-color: white darkgray darkgray white;
	color: var(--color-black);
	outline: 1px solid var(--color-black);
}

button:enabled:active:hover, select:not([size]):active {
	border-color: darkgray white white darkgray;
	padding: 2px 9px 0px 11px;
}

button:disabled {
	color: gray;
	border-color: gainsboro;
	outline-color: gray;
}

/* PAGE LAYOUT */

html, body { margin: 0 }
h1 { margin: 16px 0 16px -1px; font-size: 24px; }
h2 { margin: 16px 0 16px -1px; font-size: 20px; }
h3 { margin: 16px 0 8px -1px; font-size: 16px; }

h1 .icon { font-weight: normal; }

html {
	overflow-y: scroll;
}

body {
	background-color: var(--color-body);
	color: var(--color-black);
}

header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	padding-right: 12px;
	background-color: var(--color-head);
	border-bottom: 2px solid var(--color-accent);
}

header img {
	display: block;
	margin: 0 0 -2px 2px;
}

nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: end;
	min-height: 42px;
	padding: 4px;
	gap: 8px;
}

nav a {
	padding: 0 4px;
	display: block;
}

@media (pointer: coarse) {
	nav {
		padding: 8px;
		gap: 12px;
	}
}

article {
	margin: 0 auto;
	padding: 0 16px;
	max-width: 830px;
}

@media (min-width: 1340px) {
	article.wide { max-width: 1250px; }
}

article hr { border: none; border-top: 2px dotted brown; }
article hr + p { font-style: italic; }

/* COMMON ELEMENTS */

a { color: var(--color-blue); }
nav a, a.black { color: var(--color-black); text-decoration: none; }
nav a:hover, a.black:hover { color: var(--color-blue); text-decoration: underline; }

table a.black { color: var(--color-black); text-decoration: none; }
table a.black:hover { color: var(--color-blue); text-decoration: underline; }

.error { color: var(--color-red); font-style: italic; white-space: pre-wrap; }
.warning { color: var(--color-red); }
p.warning::before { content: "\26a0  "; }

@media (min-width: 500px) {
	div.logo {
		float: right;
		margin: -20px 0px 8px 16px;
		min-width: 150px;
	}
}

div.logo img {
	box-shadow: var(--drop-shadow);
	border: var(--thin-border);
}

/* TABLES */

table {
	background-color: var(--color-table-body);
	border-collapse: collapse;
	border: var(--thin-border);
	box-shadow: var(--drop-shadow);
	margin: 1em 0;
}

table.wide {
	width: 100%;
}

table.half {
	width: 100%;
	max-width: 400px;
}

table.seeds td:nth-child(2) { text-align: right; }
table.pools td:nth-child(2) { text-align: right; }
table.seeds td:nth-child(3) { width: 24px; text-align: right; }
table.pools td:nth-child(3) { width: 24px; text-align: right; }

table.pools a { color: var(--color-black); text-decoration: none; }
table.pools a:hover { color: var(--color-blue); text-decoration: underline; }
table.seeds a { color: var(--color-black); text-decoration: none; }
table.seeds a:hover { color: var(--color-blue); text-decoration: underline; }

thead, th {
	background-color: var(--color-table-head);
}

tfoot {
	background-color: var(--color-table-foot);
}

thead, tfoot {
	border: var(--thin-border);
}

th, td {
	vertical-align: top;
	text-align: left;
	padding: 5px 10px;
}

table.striped tr:nth-child(2n) {
	background-color: var(--color-table-stripe);
}

td.r, th.r { text-align: right; }
td.w, th.w { white-space: nowrap; }
td.n, th.n { width: 0px; white-space: nowrap; text-align: right; }

/* FORUM AND MESSAGE POSTS */

div.post {
	background-color: var(--color-post-body);
	margin-top: 24px;
	border: var(--thin-border);
	box-shadow: var(--drop-shadow);
}

div.post > div.head {
	display: flex;
	justify-content: space-between;
	padding: 5px 10px;
	background-color: var(--color-post-head);
	border-bottom: var(--thin-border);
}

div.post > div.body {
	padding: 15px;
	white-space: pre-wrap;
}

div.post + div.edit {
	margin-top: 5px;
	text-align: right;
}

div.body img {
	max-width: 100%;
}

/* GAME BOXES */

.game_list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 400px));
	gap: 24px;
	margin: 16px 0;
}

.tour_list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 400px));
	gap: 24px;
	margin: 16px 0;
}

.tour_list table { margin: 0; }
.tour_list table + table { margin-top: 24px; }

.game_item {
	border: var(--thin-border);
	box-shadow: var(--drop-shadow);
	color: black;
}

.game_head, .game_main {
	display: flex;
	justify-content: space-between;
	padding: 4px 8px;
}

.game_head {
	border-bottom: var(--thin-border);
	line-height: 23px;
}

.game_info {
	font-family: var(--font-small);
	font-size: 14px;
	line-height: 20px;
}

.game_item a { text-decoration: none; color: black; }
.game_item a:hover { text-decoration: underline; }
.game_item .game_main a:hover { color: blue; }
.game_info .is_active { text-decoration: underline; }
.game_info .is_invite { opacity: 60%; }
.game_info div {
	text-indent: -20px;
	padding-left: 20px;
}

.game_main img {
	display: block;
	max-width: 60px;
	max-height: 72px;
	margin: 4px 0 4px 4px;
	border: var(--thin-border);
}

.game_main img.square { max-width: 60px; max-height: 60px; }
.game_main img.wide { max-width: 72px; max-height: 60px; }
.game_main img.tall { max-width: 60px; max-height: 72px; }

.game_item .game_head { background-color: gainsboro }
.game_item .game_main { background-color: whitesmoke }

.game_item.open .game_head { background-color: lightskyblue }
.game_item.open .game_main { background-color: aliceblue }
.game_item.ready .game_head { background-color: darkseagreen }
.game_item.ready .game_main { background-color: mintcream }
.game_item.replacement .game_head { background-color: thistle }
.game_item.replacement .game_main { background-color: lavenderblush }
.game_item.active .game_head { background-color: tan }
.game_item.active .game_main { background-color: floralwhite }
.game_item.finished .game_head { background-color: silver }
.game_item.finished .game_main { background-color: gainsboro }
.game_item.archived .game_head { background-color: darkgray }
.game_item.archived .game_main { background-color: lightgray }
.game_item.your_turn .game_head { background-color: gold }
.game_item.your_turn .game_main { background-color: lightyellow }