body {
	margin: 0;
	font-family: sans-serif;
	background-color: #f2f2e2;
	margin-bottom: 30px;
}

body > * {
	padding-left: 1em;
	padding-right: 1em;
}

nav {
	padding: 0;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	overflow-x: auto;
	background-color: #ffca4b;
}

nav > * {
	margin-top: auto;
	margin-bottom: auto;
	padding: 20px;
	color: black;
}

main {
	width: 80%;
	margin: auto;
}

a {
	text-decoration: none;
}

p {
	margin-top: 0.7em;
	margin-bottom: 0.7em;
}

table {
	border-collapse: collapse;
	width: 100%;
}

tr:not(:last-child) {
	/* FIXME this is sometimes invisible depending on zoom level in Firefox. */
	border-bottom: 1px solid;
}

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

textarea {
	width: min(100%, 500px);
	height: 15em;
	font-size: 1em;
}

input[type=text], input[type=password] {
	width: min(100%, 20em);
	font-family: monospace;
	font-size: 1em;
}

td > input[type=text], td > input[type=password] {
	width: min(100%, 500px);
}

.logo {
	margin: 0;
	padding: 5px;
	padding-left: 15px;
	font-size: 3em;
	font-weight: bold;
}

form.form {
	width: 90%;
}

table.form {
	width: 100%;
}

table.form > * > tr > td, th {
	vertical-align: top;
}

.comment {
	margin-left: 20px;
	margin-top: 15px;
	margin-bottom: 15px;
	padding-left: 10px;
	border-left: 1px dotted;
}

.flash.success {
	background-color: lightgreen;
	border-radius: 5px;
	padding: 8px;
}

.flash.error {
	background-color: #ff4646;
	border-radius: 5px;
	padding: 8px;
}

/* Abuse checkboxes to collapse comments */
.collapse {
	appearance: none;
	cursor: pointer;
}
.collapse:checked + * {
	display: none
}
.collapse:after {
	content: '[-]';
}
.collapse:checked:after {
	content: '[+]';
}

.small {
	font-size: 85%;
}

.spoiler {
	background-color: black;
	color: black;
}
.spoiler:hover {
	opacity: 1;
	color: white;
}
