@font-face {
	font-family: 'Material Icons';
	font-style: normal;
	font-weight: 400;
	src: url("/static/icons.ttf");
	src: local('Material Icons'),
		local('MaterialIcons-Regular'),
		url("/static/icons.ttf") format('truetype');
}

.material-icons {
	transform: translateY(3px);
	font-family: 'Material Icons';
	font-weight: normal;
	font-style: normal;
	font-size: 24px;  /* Preferred icon size */
	display: inline-block;
	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
	word-wrap: normal;
	white-space: nowrap;
	direction: ltr;

	/* Support for all WebKit browsers. */

	/* Support for Safari and Chrome. */
	text-rendering: optimizeLegibility;

	/* Support for Firefox. */
	-moz-osx-font-smoothing: grayscale;

	/* Support for IE. */
	font-feature-settings: 'liga';
}

:root {
	--bookmark-width: 10em;
	--bookmark-height: 10em;
	--bookmark-margin: 0.5em;
	--bookmark-padding: 1em;
}

* {
	margin: 0;
	padding: 0;
}

html, body {
	width: 100%;
	min-height: 100vh;
	font-size: 100%;
}

body {
	background-color: #2b2a33;
}

main {
	width: 100%;
	min-height: 100vh;
}

#main-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-bottom: 0.5em;
}

#bookmark-container {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-content: center;
}

#search {
	margin: 3em auto;
	max-width: calc(100% - 2em);
}

#search form {
	--input-font-size: 1.2em;
	--width: 30rem;
	--height: 2.5rem;

	position: relative;
	display: block;
	width: var(--width);
	height: var(--height);

	max-width: 100%;

	background-color: rgba(0, 0, 0, 0.5);
	border: 1px solid black;
	border-radius: 0.25em;
}

#search form input[type="search"] {
	position: absolute;
	top: 0;
	left: 0;
	display: inline-block;
	width: calc(100% - var(--height));
	height: var(--height);
	border: 0;
	padding: 0 0.5em;
	box-sizing: border-box;
	outline: 0;
	color: inherit;
	background-color: transparent;
	transition: all 0.2s ease-in-out;
	font-size: var(--input-font-size);
}

#search form label[for="submit"] {
	position: absolute;
	top: 0;
	right: 0;
	display: inline-block;
	width: var(--height);
	height: var(--height);
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;

	transition: all 0.2s ease-in-out;
	font-size: var(--input-font-size);
	cursor: pointer;
}

#search form label[for="submit"] span {
	transform: translate(0.3em, 0.3em);
}

#search form input[type="submit"] {
	display: none;
}

.bookmark {
	display: block;
	box-sizing: border-box;
	transition: all 0.2s ease-in-out;

	width: var(--bookmark-width);
	height: var(--bookmark-height);
	margin: var(--bookmark-margin);
	padding: var(--bookmark-padding);
	border-radius: var(--bookmark-border-radius);
}

.bookmark:hover {
	transform: scale(1.1, 1.1);
	transition: all 0.2s ease-in-out;
}

.background {
	width: 100%;
	height: 100%;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;

	border-radius: var(--bookmark-border-radius);
}

@media screen and (max-width: 30em) {
	.bookmark {
		width: calc(var(--bookmark-width) * 0.5);
		height: calc(var(--bookmark-height) * 0.5);
		padding: calc(var(--bookmark-padding) * 0.5);
	}
}

#button {
	display: block;
	position: absolute;
	top: 0.25em;
	right: 0.5em;
	color: white;
}

#customize-container {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: center;
}

.customizer {
	margin: 1em;
	position: relative;

	display: flex;
	flex-direction: row;
	justify-content: center;

	background-color: rgba(255, 255, 255, 0.15);
	border-radius: 0.25em;
}

.customizer > form {
	margin: 0.5em;
	display: grid;
	grid-template-columns: auto auto;
	grid-auto-rows: max-content;
	gap: 0.25em;
}

form label {
	margin-right: 0.25em;
}

.customizer > form input {
	background-color: rgba(0, 0, 0, 0.25);
	border: 1px solid black;
	color: inherit;
	padding: 0.25em;
	border-radius: 0.2em;
}

.customizer > form input:not([type="checkbox"]):not([type="file"]):not([type="color"]):focus {
	outline-style: solid;
	outline-color: #aaa;
}

#add-bookmark {
	margin: 1em;
	color: white;
	background-color: darkgreen;
	text-align: center;
	border-radius: 0.25em;
	cursor: pointer;
	transition: all 0.25s ease-in-out;

	width: 618px;
	height: 259px;
	line-height: 259px;
}

#add-bookmark:hover,
#add-bookmark:focus {
	background-color: green;
	transition: all 0.25s ease-in-out;
}

#add-bookmark .material-icons {
	font-size: 8em;
	line-height: inherit;
}

.delete {
	background-color: #cc0000;
	color: white;
	position: absolute;
	bottom: 0.5em;
	left: 0.5em;
	width: 2em;
	height: 2em;
	text-align: center;
	border-radius: 0.25em;
	box-shadow: 0px 0px 3px #333;
	cursor: pointer;
	transition: all 0.25s ease-in-out;
}

.delete:hover,
.delete:focus {
	transform: scale(1.25);
	transition: all 0.25s ease-in-out;
}

.fixed {
	position: fixed !important;
}

#top-panel {
	background-color: rgba(255, 255, 255, 0.15);
	padding: 1em;
	border-bottom: 1px solid black;
}

#top-panel h1 {
	text-align: center;
	margin-bottom: 0.5em;
}

#top-panel > form {
	max-width: 30em;
	display: grid;
	grid-template-columns: auto auto;
	grid-auto-rows: max-content;
	gap: 0.25em;
	margin: 0 auto;
}

#top-panel > form input {
	background-color: rgba(0, 0, 0, 0.25);
	border: 1px solid black;
	color: inherit;
	padding: 0.25em;
	border-radius: 0.2em;
}

#top-panel > form input:not([type="checkbox"]):not([type="file"]):not([type="color"]):focus {
	outline-style: solid;
	outline-color: #aaa;
}

#top-panel > form > * {
	display: block;
}