@import "./marx.css";

:root {
	--link-shadow: 1px 1px 1px #000;
	--shadow: 1px 2px 1px rgba(0, 0, 0, 0.85);
	--title-overlay: rgba(0, 0, 0, 0.45);
	--title-overlay-fallback: #000;
	--text-color: #ffffff;
	--normal-padding: 0.25em 0.125em;
	--link-hover-color: #7d12db;
	--edit-link-hover-color: #db7d12;
	--edit-link-color: #12db18;
	--radius: 5px;
}

template, [hidden="hidden"], .media[hidden] {display:none}

body {margin: 0.5em;}

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

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

td {
	padding:1em;
	padding:1rem;
}

thead td, thead th {
	padding:0.5em;
	padding:0.5rem;
}

input[type=number] {
	width: 4em;
}

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

a:hover, a:active {
	color: var(--link-hover-color)
}

/* -----------------------------------------------------------------------------
	Utility classes
------------------------------------------------------------------------------*/

.bracketed {
	color:  var(--edit-link-color);
}
.bracketed, h1 a {
	text-shadow: var(--link-shadow);
}
.bracketed:before {content: '[\00a0'}
.bracketed:after {content: '\00a0]'}
.bracketed:hover, .bracketed:active {
	color: var(--edit-link-hover-color)
}

.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;
}

.justify {text-align:justify}
.align_center {text-align:center !important}
.align_left {text-align:left !important}
.align_right {text-align:right !important}

.valign_top {vertical-align:top}

.no_border {border:none}

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

.danger {
	background-color: #ff4136;
	border-color: #924949;
	color:#fff;
}

.danger:hover, .danger:active {
	background-color: #924949;
	border-color: #ff4136;
	color:#fff;
}

.user-btn {
	border-color: var(--edit-link-color);
	color: var(--edit-link-color);
	text-shadow: var(--link-shadow);
	padding:0 0.5em;
	padding:0 0.5rem;
}
.user-btn:hover, .user-btn:active {
	border-color: var(--edit-link-hover-color);
	background-color: var(--edit-link-hover-color);
}

.full_width {
	width: 100%;
}

/* -----------------------------------------------------------------------------
	CSS loading icon
------------------------------------------------------------------------------*/

.cssload-loader {
	position: relative;
	left: calc(50% - 31px);
	width: 62px;
	height: 62px;
	border-radius: 50%;
	perspective: 780px;
}

.cssload-inner {
	position: absolute;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	border-radius: 50%;
}

.cssload-inner.cssload-one {
	left: 0%;
	top: 0%;
	animation: cssload-rotate-one 1.15s linear infinite;
	border-bottom: 3px solid rgb(0,0,0);
}

.cssload-inner.cssload-two {
	right: 0%;
	top: 0%;
	animation: cssload-rotate-two 1.15s linear infinite;
	border-right: 3px solid rgb(0,0,0);
}

.cssload-inner.cssload-three {
	right: 0%;
	bottom: 0%;
	animation: cssload-rotate-three 1.15s linear infinite;
	border-top: 3px solid rgb(0,0,0);
}

@keyframes cssload-rotate-one {
	0% {
		transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
	}
	100% {
		transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
	}
}

@keyframes cssload-rotate-two {
	0% {
		transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
	}
	100% {
		transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
	}
}

@keyframes cssload-rotate-three {
	0% {
		transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
	}
	100% {
		transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
	}
}

/* -----------------------------------------------------------------------------
	Table sorting and form styles
------------------------------------------------------------------------------*/
.sorting,
.sorting_asc,
.sorting_desc {
	vertical-align:text-bottom;
}
.sorting::before {
	content: " ↕\00a0";
}
.sorting_asc::before {
	content: " ↑\00a0";
}
.sorting_desc::before {
	content: " ↓\00a0";
}

.form { width:100%; }

.form thead th, .form thead tr {
	background: inherit;
	border:0;
}

.form tr > td:nth-child(odd) {
	text-align:right;
	min-width:25px;
	max-width:30%;
}
.form tr > td:nth-child(even) {
	text-align:left;
	width:70%;
}

.invisible tbody > tr:nth-child(odd) {
	background: inherit;
}
.invisible tr, .invisible td, .invisible th {
	border:0;
}

/* -----------------------------------------------------------------------------
	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:hover .close:after {
	content: '☒';
}

.message:hover {
	cursor:pointer;
}

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

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

	.message.error .icon::after {
		content: '✘';
	}

.message.success{
	border:1px solid #1f8454;
	background: #70dda9;
}
	.message.success .icon::after {
		content: '✔'
	}

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

	.message.info .icon::after {
		content: '⚠';
	}

/* -----------------------------------------------------------------------------
	Base list styles
------------------------------------------------------------------------------*/

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

.media > img,
.character > img,
.small_character > img {
	width: 100%;
}

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

	.name,
	.media_metadata > div,
	.medium_metadata > div,
	.row {
		text-shadow: var(--shadow);
		background: var(--title-overlay-fallback);
		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;
	}
		.small_character:hover > .name,
		.character:hover > .name,
		.media:hover > .name,
		.media:hover > .media_metadata > div,
		.media:hover > .medium_metadata > div,
		.media:hover > .table .row
		{
			transition: .25s ease;
			background:rgba(0,0,0,0.75);
		}

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

		.small_character > .name a,
		.small_character > .name a small,
		.character > .name a,
		.character > .name a small,
		.media > .name a,
		.media > .name a small
		{
			background:none;
			color:#fff;
			text-shadow: var(--shadow);
		}



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

.anime .media_type,
.anime .airing_status,
.anime .user_rating,
.anime .completion,
.anime .age_rating,
.anime .edit,
.anime .delete {
	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-fallback);
	background: var(--title-overlay);
	display: flex;
	align-content: space-around;
	justify-content: space-around;
	text-align:center;
	padding:0 inherit;
}

.anime .row > span, .manga .row > span {
	text-align:left;
}

.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: 138px;
	top: calc(50% - 21.5px);
	left: 44px;
	left: calc(50% - 66.5px);
}

/* -----------------------------------------------------------------------------
	Manga-list-specific styles
------------------------------------------------------------------------------*/
.manga .row {
	padding:1px;
}

.manga .media {
	border:1px solid #ddd;
	height:310px;
	margin:0.25em;
}

.manga .media > .edit_buttons {
	position:absolute;
	top: 86px;
	top: calc(50% - 58.5px);
	left: 43.5px;
	left: calc(50% - 66.5px);
}


/* -----------------------------------------------------------------------------
	Search page styles
------------------------------------------------------------------------------*/
.media.search > .name {
	background-color:#555;
	background-color: rgba(000,000,000,0.35);
	background-size: cover;
	background-size: contain;
	background-repeat: no-repeat;
}

.big-check {
	display:none;
}

.big-check:checked + label {
	transition: .25s ease;
	background:rgba(0,0,0,0.75);
}

.big-check:checked + label:after {
	content: '✓';
	font-size: 15em;
	font-size: 15rem;
	text-align:center;
	color: greenyellow;
	position:absolute;
	top:147px;
	left:0;
	height:100%;
	width:100%;
}

#series_list article.media {
	position:relative;
}
#series_list .name, #series_list .name label {
	position:absolute;
	display:block;
	top:0;
	left:0;
	height:100%;
	width:100%;
	vertical-align:middle;
	line-height: 1.25em;
}
#series_list .name small {
	color: #fff;
}

/* ----------------------------------------------------------------------------
	Details page styles
-----------------------------------------------------------------------------*/
.details {
	margin: 1.5rem auto 0 auto;
	padding:1rem;
	font-size:inherit;
}

.description {
	max-width:80rem;
}

.fixed {
	max-width:93rem;
}

.details .cover {
	display: block;
	width: 284px;
	/* height: 402px; */
}

.details h2 {
	margin-top: 0;
}

.details .flex > div {
	margin: 1rem;
}

.details .media_details {
	max-width:300px;
}
	.details .media_details td {
		padding:0 1.5rem;
	}

.details p {
	text-align:justify;
}

.details .media_details td:nth-child(odd) {
	width:1%;
	white-space:nowrap;
	text-align:right;
}
.details .media_details td:nth-child(even) {
	text-align:left;
}

.character,
.small_character {
	background: rgba(0,0,0,0.5);
	width: 225px;
	height: 350px;
	vertical-align: middle;
	white-space: nowrap;
}
	.small_character a {
		display:inline-block;
		width: 100%;
		height: 100%;
	}

	.small_character .name,
	.character .name {
		position: absolute;
		bottom: 0;
		left: 0;
		z-index: 10;
	}

	.small_character img,
	.character img {
		position: relative;
		top: 50%;
		transform: translateY(-50%);
		z-index: 5;
		width: 100%;
	}

.min-table {
	min-width: 0;
	margin-left: 0;
}

/* ----------------------------------------------------------------------------
	User page styles
-----------------------------------------------------------------------------*/
.small_character {
	width: 160px;
	height: 250px;
}

.user-page .media-wrap {
	text-align: left;
}

.media a {
	display: inline-block;
	width: 100%;
	height: 100%;
}

/* ----------------------------------------------------------------------------
	Viewport-based styles
-----------------------------------------------------------------------------*/

@media screen and (max-width: 40em) {
	nav a {
		line-height:4em;
		line-height:4rem;
	}

	.media {
		margin:2px 0;
	}

	main {
		padding:0 0,5em 0.5em;
		padding:0 0.5rem 0.5rem;
	}
}

/* ----------------------------------------------------------------------------
	Images / Logos
-----------------------------------------------------------------------------*/
.streaming-logo {
	width: 50px;
	height: 50px;
	vertical-align:middle;
}

.cover_streaming_link .streaming-logo {
	width: 20px;
	height: 20px;
}

/* ----------------------------------------------------------------------------
	Loading overlay
-----------------------------------------------------------------------------*/
#loading-shadow {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.8);
	z-index: 500;
}

	#loading-shadow .loading-wrapper {
		position: fixed;
		z-index: 501;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		display:flex;
		align-items: center;
		justify-content: center;
	}

	#loading-shadow .loading-content {
		position: relative;
		color: #fff
	}

	.loading-content .cssload-inner.cssload-one,
	.loading-content .cssload-inner.cssload-two,
	.loading-content .cssload-inner.cssload-three {
		border-color: #fff
	}