@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: local("Roboto-Light"), url("/public/fonts/Roboto/Roboto-Light.ttf") format("truetype");
}

html,
body {
	font-family: Roboto, Arial, Sans-Serif;
	font-weight: 300;
	background: url("/public/_util/crossword.png");
	text-rendering: optimizeLegibility;
	align-content: center;
	font-size: 36px;
}

body {
	display: flex;
}

h2 {
	font-size: 2em;
	display: inline-block;
}

#login-form,
#tool-list,
#calc-form,
.list {
	border: 1px solid lightgrey;
	width: 100%;
	max-width: 1200px;
	margin: 4em auto;
	padding: 2em;
	font-size: 1.1em;
	border-radius: 5px;
	background: rgba(255, 255, 255, 0.8);
	box-sizing: border-box;
}

@media screen and (min-width: 800px) {

	#login-form,
	#tool-list,
	#calc-form,
	.list {
		font-size: 32px;
	}

	@media screen and (min-width: 1000px) {

		#login-form,
		#tool-list,
		#calc-form,
		.list {
			width: 80%;
			font-size: 24px;
		}

		@media screen and (min-width: 1400px) {

			#login-form,
			#tool-list,
			#calc-form,
			.list {
				font-size: 20px;
			}
		}
	}
}

.list {
	font-size: 0.5em;
}

.list>div {
	padding: 1em;
	position: relative;
}

.urllist {
	padding: 0;
	color: #444;
}

strong,
.bold {
	font-weight: 400;
}

.grey {
	opacity: 0.8;
}

.small {
	font-size: 0.7em;
}

.label {
	opacity: 0.6;
}

.table {
	display: table;
	width: 100%;
	table-layout: fixed;
	box-sizing: border-box;
}

.table>* {
	display: table-cell;
	vertical-align: middle;
}

.table>.buttons {
	width: 10%;
}

.table>.buttons>a {
	margin: 0;
}

.copycat {
	cursor: pointer;
}

ul li {
	border-top: 1px solid #ddd;
	padding: 0.5em;
}

ul li a {
	padding: 0.5em;
	display: inline-block;
}

ul li:nth-child(odd) {
	background: rgba(0, 0, 0, 0.0075)
}

input,
p#error,
button {
	font-family: Roboto, Arial, Sans-Serif;
	font-size: 1.1em;
	padding: 0.5em 0.75em;
	margin-bottom: 0.5em;
	font-weight: 300;
	border-radius: 3px;
	border: 1px solid grey;
	width: 100%;
	text-align: center;
	box-sizing: border-box;
}

#calc-form {
	position: relative;
}

#calc-form p {
	margin-bottom: 1em;
	padding-bottom: 1em;
}

#calc-form input,
#calc-form button {
	width: 70%;
	right: 2em;
	position: absolute;
	font-size: 1em;
	padding: 0.25em 0.5em;
	margin-top: -0.5em;
}

#calc-form .result {
	background-color: rgba(0, 255, 0, 0.1)
}

p#error {
	background: rgba(255, 50, 0, 0.2);
	border: 1px solid rgba(255, 50, 0, 0.6);
	color: white;
	font-weight: 500;
}

input,
button {
	border: 1px solid lightgrey;
}

input[type=submit],
input[type=button],
button[type=submit] {
	background: #f8f8f8;
	position: relative;
}

input[type=submit]:hover,
input[type=button]:hover,
button[type=submit]:hover {
	top: -1px;
	left: -1px;
}

input:last-child,
button:last-child {
	margin: 0;
}

input:focus,
button:focus {
	border: 1px solid black;
}

.submit {
	opacity: 0.4;
	cursor: pointer;
}

.submit:hover {
	opacity: 1;
}

hr {
	margin-bottom: 2em;
	border: none;
	border-top: 1px solid lightgrey;
}

a {
	font-weight: 400;
	text-decoration: none;
	color: inherit;
	position: relative;
}

a:hover,
input[type=submit]:hover,
input[type=button]:hover,
button[type=submit]:hover,
button.ibutton:hover {
	color: #000;
	top: -1px;
	left: -1px;
}

a:active,
input[type=submit]:active,
input[type=button]:active,
button[type=submit]:active,
button.ibutton:active {
	top: 0;
	left: 0;
}

a.reservable {
	color: #444;
}

a.reservable .lock {
	color: #444;
	margin-left: 0.5em;
	opacity: 0.2;
}

a.reserved,
a.reserved~* {
	color: #bbb;
}

a.reserved .lock {
	opacity: 0.4;
}

a.locked,
a.locked~* {
	color: #ddd;
}

a.locked .lock,
a.locked_by_me .lock {
	opacity: 0.8;
}

a.locked_by_me,
a.locked_by_me~*,
a.locked_by_me .lock {
	color: #8b8;
}

.ibutton {
	font-weight: 100;
	float: right;
	margin-right: 1em;
	margin-top: 1em;
	opacity: 0.4;
	font-size: 0.75em;
}

.ibutton:hover {
	opacity: 1;
}

button.ibutton {
	border: none;
	background: transparent;
	width: auto;
	margin-top: 0.85em;
	padding: 0;
	position: relative;
}

#overlay {
	background: rgba(0, 0, 0, 0.2);
	position: fixed;
	width: 100%;
	height: 100%;
	display: none;
}

#overlay div {
	display: flex;
	width: 100%;
	height: 100%;
}

#message {
	background: #fff;
	border: 2px solid #999;
	font-size: 0.5em;
	border-radius: 0.25em;
	width: 40%;
	min-width: 750px;
	max-width: 1250px;
	height: auto;
	min-height: 100px;
	margin: auto;
	line-height: 100px;
	text-align: center;
}

input,
button {
	cursor: pointer;
}

input:disabled {
	cursor: default;
	opacity: 0.7;
}

pre {
	font-size: 12px;
	padding: 0.5em;
	color: black;
	background: white;
	opacity: 0.4;
	position: fixed;
	top: 1em;
	left: 1em;
	border: 1px solid #ccc;
	border-radius: 5px;
	z-index: 10000;
}

pre:hover {
	opacity: 1;
}

div.searchWrap {
	position: relative;
	float: right;
	opacity: 0.8;
	margin-right: 0.5em;
}

div.searchWrap:hover {
	opacity: 1;
}

input.searchField {
	width: auto;
	font-size: 0.75em;
	padding: 0.25em;
	float: right;
	margin-top: 0.5em;
	margin-right: 1em;
}

i.searchIcon {
	position: absolute;
	top: 0.875em;
	right: 1.5em;
	opacity: 0.5;
	font-size: 0.75em;
}

div.searchWrap:hover i.searchIcon,
div.searchWrap.active i.searchIcon {
	opacity: 1;
}

div.searchWrap:hover input.searchField {
	border: 1px solid black;
}

li.warning {
	padding: 1em;
	text-align: center;
	color: firebrick;
}

button.small {
	background: transparent;
	border: none;
}

.opac {
	opacity: 0.5;
}

.opac:hover {
	opacity: 1;
}

#message.large {
	height: auto;
	max-height: 80%;
	padding: 2em;
	font-size: 0.8em;
	font-size: 40%;
	overflow-y: auto
}

#message.large input,
#message.large button {
	margin: 1em 0;
	display: block;
}