:root {
	--shadow: 1px 2px 1px rgba(0, 0, 0, 0.85);
	--title-overlay: rgba(0, 0, 0, 0.45);
	--text-color: #ffffff;
	--normal-padding: 0.25em;
}

template {display:none}

body {margin: 0.5em;}

table {
	width:85%;
	margin: 0 auto;
}

tbody > tr:nth-child(odd) {
	background: #ddd;
}

.grow-1 {flex-grow: 1}
.flex-wrap {flex-wrap: wrap}
.flex-no-wrap {flex-wrap: nowrap}
.flex-align-end {align-items: flex-end}
.flex-align-space-around {align-content: space-around}
.flex-justify-space-around {justify-content: space-around}
.flex-self-center {align-self:center}
.flex {display: flex}

.small-font {
	font-size:1.6rem;
}

.align_center {text-align:center}
.align_left {text-align:left;}
.align_right {text-align:right;}

.media-wrap {
	text-align:center;
	margin:0 auto;
}

.media {
	position:relative;
	vertical-align:top;
	display:inline-block;
	text-align:center;
	width:220px;
	height:319px;
	margin: var(--normal-padding);
}

button {
	background:rgba(255,255,255,0.65);
	margin: 0;
}

.media .edit_buttons > button {
	margin:0.5em auto;
}

	.name,
	.media_metadata > div,
	.medium_metadata > div,
	.row {
		text-shadow: var(--shadow);
		background: var(--title-overlay);
		color: var(--text-color);
		padding: var(--normal-padding);
		text-align:right;
	}

	.media_type, .age_rating {
		text-align:left;
	}

	.media > .media_metadata {
		position:absolute;
		bottom:0;
		right:0;
	}

	.media > .medium_metadata {
		position:absolute;
		bottom: 0;
		left:0;
	}

	.media > .name {
		position:absolute;
		top: 0;
	}

		.media:hover > .name,
		.media:hover > .media_metadata > div,
		.media:hover > .medium_metadata > div,
		.media:hover > .table .row
		{
			background:rgba(0,0,0,0.75);
		}

		.media:hover > button[hidden],
		.media:hover > .edit_buttons[hidden]
		{
			display:block;
		}

		.media > .name > a {
			text-align:justify;
			background:none;
			color:#fff;
			text-shadow: var(--shadow);
		}

/* -----------------------------------------------------------------------------
	Message boxes
------------------------------------------------------------------------------*/

.message{
	position:relative;
	margin:0.5em auto;
	padding:0.5em;
	width:95%;
}

.message .close{
	width:1em;
	height:1em;
	position:absolute;
	right:0.5em;
	top:0.5em;
	text-align:center;
	vertical-align:middle;
	line-height:1em;
}

.message .close:hover {
	cursor:pointer;
}

.message .icon{
	left:0.5em;
	top:0.5em;
	margin-right:1em;
}

.message.error{
	border:1px solid #924949;
	background: #f3e6e6;
}

.message.success{
	border:1px solid #1f8454;
	background: #70dda9;
}

.message.info{
	border:1px solid #bfbe3a;
	background: #FFFFCC;
}

/* -----------------------------------------------------------------------------
	Anime-list-specific styles
------------------------------------------------------------------------------*/
.anime .name, .manga .name {
	text-align:center;
	width:100%;
	padding:0.5em 0;
}

	.anime .name > a {
		text-align:center;
		width:100%;
		padding:0.5em 1em;
	}

.anime .media_type,
.anime .airing_status,
.anime .user_rating,
.anime .completion,
.anime .age_rating {
	background: none;
	text-align:center;
}


.anime .table, .manga .table {
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
}

.anime .row, .manga .row {
	width:100%;
	background: var(--title-overlay);
	display: flex;
	align-content: space-around;
	justify-content: space-around;
	text-align:center;
	padding:0 inherit;
}

.anime .row > div, .manga .row > div {
	font-size:0.8em;
	display:flex-item;
	align-self:center;
	text-align:center;
	vertical-align:middle;
}

.anime .media > button.plus_one {
	position:absolute;
	top: calc(50% - (43px / 2));
	left: calc(50% - (97px / 2 + 18));
}

/* -----------------------------------------------------------------------------
	Manga-list-specific styles
------------------------------------------------------------------------------*/
.manga .media {
	border:1px solid #ddd;
	width:200px;
	height:290px;
	margin:0.25em;
}

.manga .media > .edit_buttons {
	position:absolute;
	top: calc(50% - (117px / 2));
	left: calc(50% - (190px / 2));
}