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: #7d12db;
}

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

.bracketed {
  color: #12db18;
}

.bracketed,
h1 a {
  text-shadow: 1px 1px 1px #000;
}

.bracketed:before {
  content: '[\00a0';
}

.bracketed:after {
  content: '\00a0]';
}

.bracketed:hover,
.bracketed:active {
  color: #db7d12;
}

.grow-1 {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
}

.flex-wrap {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.flex-no-wrap {
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
}

.flex-align-end {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
  -ms-flex-align: end;
  align-items: flex-end;
}

.flex-align-space-around {
  -webkit-align-content: space-around;
  -ms-flex-line-pack: distribute;
  align-content: space-around;
}

.flex-justify-space-around {
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

.flex-self-center {
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
}

.flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}

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

.justify {
  text-align: justify;
}

.align_center {
  text-align: center;
}

.align_left {
  text-align: left;
}

.align_right {
  text-align: right;
}

.valign_top {
  vertical-align: top;
}

.no_border {
  border: none;
}

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

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

.cssload-loader {
  position: relative;
  left: calc(50% - 31px);
  width: 62px;
  height: 62px;
  border-radius: 50%;
  -webkit-perspective: 780px;
  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%;
  -webkit-animation: cssload-rotate-one 1.15s linear infinite;
  animation: cssload-rotate-one 1.15s linear infinite;
  border-bottom: 3px solid rgb(0,0,0);
}

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

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

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

  100% {
    -webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  }
}

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

  100% {
    -webkit-transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
    transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
  }
}

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

  100% {
    -webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
    transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  }
}

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

  100% {
    -webkit-transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
    transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
  }
}

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

  100% {
    -webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
    transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
  }
}

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

  100% {
    -webkit-transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
    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;
  min-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 {
  position: relative;
  vertical-align: top;
  display: inline-block;
  text-align: center;
  width: 220px;
  height: 319px;
  margin: 0.25em;
}

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

.name,
.media_metadata > div,
.medium_metadata > div,
.row {
  text-shadow: 1px 2px 1px rgba(0, 0, 0, 0.85);
  background: rgba(0, 0, 0, 0.45);
  color: #ffffff;
  padding: 0.25em;
  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 {
  -webkit-transition: .25s ease;
  transition: .25s ease;
  background: rgba(0,0,0,0.75);
}

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

.media > .name > a {
  /*text-align:justify;*/
  background: none;
  color: #fff;
  text-shadow: 1px 2px 1px rgba(0, 0, 0, 0.85);
}

/* -----------------------------------------------------------------------------
	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: rgba(0, 0, 0, 0.45);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-content: space-around;
  -ms-flex-line-pack: distribute;
  align-content: space-around;
  -webkit-justify-content: space-around;
  -ms-flex-pack: distribute;
  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;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  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;
  width: 200px;
  height: 290px;
  margin: 0.25em;
}

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

/* -----------------------------------------------------------------------------
	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 {
  -webkit-transition: .25s ease;
  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: 5px;
  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;
  height: 100%;
  width: 100%;
  vertical-align: middle;
}

/* ----------------------------------------------------------------------------
	Details page styles
-----------------------------------------------------------------------------*/

.details {
  margin: 1.5rem auto 0 auto;
  max-width: 93rem;
  padding: 1rem;
  font-size: inherit;
}

.details .cover {
  max-width: 300px;
  max-height: 435px;
}

.details h2 {
  margin-top: 0;
}

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

.details table {
  max-width: 300px;
}

.details td {
  padding: 0 1.5rem;
}

.details p {
  text-align: justify;
}

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

.details td:nth-child(even) {
  text-align: left;
}