* {
  box-sizing: border-box;
}

html,
body,
#app {
  margin: 0;
  padding: 0;
  height: 100%;
  color: white;
  background-color: black;
  font-family: "Roboto";
}

h2 {
  font-weight: 100;
}

ul,
li {
  margin: 0;
  padding: 0;
}

ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 1px;
}

li {
  list-style: none;
  display: flex;
  flex-direction: column;
  position: relative;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.hidden {
  display: None;
}

.profile-image > img {
  transform: scale(1);
  border-radius: 50%;
  transition: transform ease-in-out 0.2s;
  width: 100%;
  border: 1px solid white;
}

#backdrop {
  width: 100%;
  height: 100%;
  position: fixed;
  z-index: 2;
  background-color: rgba(0, 0, 0, 0.5);
}

.fade-enter-active {
  animation: fade-in 0.5s;
}
.fade-leave-active {
  animation: fade-in 0.5s reverse;
}

@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

main {
  display: flex;
  flex-direction: column;
}

main a:not(.followersCount) {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

main a {
  padding: 1em;
  color: inherit;
  text-decoration: none;
  text-align: center;
}

.followersCount {
  width: 100%;
  display: block;
}

.tFollowersCount {
  background-color: #1da1f2;
}

.tFollowersCount:hover,
.tFollowersCount:focus {
  background-color: #0c84cf;
}

.ytFollowersCount {
  background-color: #ff0000;
}

.ytFollowersCount:hover,
.ytFollowersCount:focus {
  background-color: #cc0000;
}

.bFollowersCount {
  background-color: #23aee5;
}

.bFollowersCount:hover,
.bFollowersCount:focus {
  background-color: #1690c0;
}

a:focus {
  outline: none;
}

main a:hover {
  text-shadow: 0 0 5px #777;
}

.simpleBackgrounds main a:hover {
  text-shadow: 0 0 5px;
}

a:hover .profile-image > img,
a:focus .profile-image > img {
  transform: scale(1.1);
}

.profile-image {
  margin-bottom: 1em;
  display: flex;
  max-width: 200px;
}

.thumbnail {
  max-width: calc(100vw - 3em);
  width: 500px;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: white;
}

.thumbnail-title {
  font-size: 1.5rem;
}

.thumbnail > img {
  max-width: inherit;
  width: inherit;
}

li.retired {
  opacity: 0.7;
}

.badges,
.actions {
  position: absolute;
  top: 10px;
  right: 10px;
  display: flex;
  flex-direction: row;
  z-index: 1;
}

.actions {
  left: 10px;
  right: auto;
}

.badges a {
  padding: 0;
  margin: 0;
}

.badge,
.action {
  background-color: red;
  padding: 3px;
  border-radius: 6px;
  display: flex;
  flex-direction: row;
  align-items: stretch;
}

.icon {
  width: 22px;
  height: 22px;
}

.action {
  background: none;
  width: 22px;
  height: 22px;
  transition: transform ease-in-out 0.2s;
  padding: 0;
  margin: 0 10px 0 0;
  cursor: pointer;
}

.action-hidden {
  opacity: 0;
}

.member:hover .actions .action-hidden,
.member:hover .actions .action-hidden-desktop,
.actions .action:focus {
  opacity: 1;
}

.action:hover,
.action:focus {
  transform: scale(1.3);
}

.icon {
  margin-right: 10px;
}

.icon::before {
  display: block;
}

.action-icon::before,
.icon::before {
  height: inherit;
  width: inherit;
}

.badge-icon::before,
.action-icon::before,
.icon::before {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center left;
  width: 22px;
}

.badge-scheduled {
  background-color: #607d8b;
}

.badge-live::before,
.badge-scheduled::before {
  background-image: url("../icons/radio.svg");
}

.action-calendar::before {
  background-image: url("../icons/calendar.svg");
}

.action-rss::before {
  background-image: url("../icons/rss.svg");
}

.action-heart::before {
  background-image: url("../icons/heart.svg");
}

.action-heart-full::before {
  background-image: url("../icons/heart-full.svg");
}

.action-export::before,
.icon-export::before {
  background-image: url("../icons/export.svg");
}

.badge-retired {
  background-color: grey;
}

.buttons {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}

footer {
  text-align: center;
  font-size: 0.8em;
  margin: 0;
  background: inherit;
  line-height: 1.5em;
  padding-bottom: 5em;
}

footer a {
  color: hotpink;
}

#meta {
  padding: 1em 0;
}

/* roboto-100 - latin */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 100;
  src: local(""), url("../fonts/roboto-v20-latin-100.woff2") format("woff2"),
    /* Chrome 26+, Opera 23+, Firefox 39+ */ url("../fonts/roboto-v20-latin-100.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* roboto-regular - latin */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 400;
  src: local(""), url("../fonts/roboto-v20-latin-regular.woff2") format("woff2"),
    /* Chrome 26+, Opera 23+, Firefox 39+ */ url("../fonts/roboto-v20-latin-regular.woff") format("woff"); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

@media (min-width: 768px) {
  ul {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .action-hidden-desktop {
    opacity: 0;
  }

  ul {
    grid-template-columns: repeat(4, 1fr);
  }

  footer {
    padding-bottom: 4.5em;
  }

  #settings {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1440px) {
  ul {
    grid-template-columns: repeat(5, 1fr);
  }
}

@media (min-width: 2560px) {
  ul {
    grid-template-columns: repeat(6, 1fr);
  }
}

@media (min-width: 2560px) {
  ul {
    grid-template-columns: repeat(6, 1fr);
  }
}

@media (min-width: 3440px) {
  ul {
    grid-template-columns: repeat(7, 1fr);
  }
}

@media (min-width: 3840px) {
  ul {
    grid-template-columns: repeat(8, 1fr);
  }
}

#settings-wrapper {
  position: fixed;
  bottom: 0;
  margin: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  width: calc(100% - 20px);
}

#settings {
  background-color: black;
  border: 1px solid black;
  border-radius: 2em;
  transition: all 0.4s ease;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 3em;
  box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}

#settings.open {
  width: 100%;
  height: auto;
  cursor: auto;
}

#settings-popup {
  width: 100%;
  display: grid;
  grid-template-columns: inherit;
  transition: all 0.4s ease;
  min-height: 3em;
}

#settings.open #settings-popup {
  max-height: 1000px;
}

.sticky-button {
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#settings-popup a {
  border: 1px solid darkgrey;
  border-radius: 2em;
  flex-direction: row;
  padding: 10px;
  margin: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  text-decoration: none;
  text-align: center;
}

#settings-popup a:hover,
#settings-popup a:focus {
  background-color: rgb(255 255 255 / 10%);
}
#settings-popup a:active {
  background-color: rgb(255 255 255 / 15%);
}

#settings-popup input[type="checkbox"] {
  margin-right: 5px;
  transform: scale(1.2);
  transition: all 0.2s ease;
}

#settings-popup label {
  flex: 1 1 auto;
  padding: 10px;
  position: relative;
  display: flex;
  align-items: flex-start;
  cursor: pointer;
}

#settings-popup span.checkbox {
  position: absolute;
  cursor: pointer;
  font-weight: bold;
}

#settings-popup input[type="checkbox"] {
  display: none;
}

#settings-popup input[type="checkbox"] + span.checkbox {
  position: relative;
  width: 30px;
  height: 15px;
  border-radius: 15px;
  background: #bdc3c7;
  display: inline-block;
  margin-right: 10px;
  transition: all 0.3s ease;
  margin-top: 2px;
}

#settings-popup input[type="checkbox"]:checked + span.checkbox {
  background: #3498db;
}

#settings-popup input[type="checkbox"] + span.checkbox:before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #ecf0f1;
  transition: all 0.3s ease;
}

#settings-popup input[type="checkbox"]:checked + span.checkbox:before {
  left: 17px;
}

#settings-popup.settings-enter-active > div {
  animation: settings 0.7s ease;
}
#settings-popup.settings-leave-active {
  display: none;
}

@keyframes settings {
  0% {
    opacity: 0;
    min-height: 0;
    max-height: 0;
  }
  100% {
    opacity: 1;
    min-height: 2em;
    max-height: 4em;
  }
}
